Full Code of chibivue-land/chibivue for AI

main ab71c44c228c cached
4744 files
10.2 MB
3.0M tokens
18112 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (12,569K chars total). Download the full file to get everything.
Repository: chibivue-land/chibivue
Branch: main
Commit: ab71c44c228c
Files: 4744
Total size: 10.2 MB

Directory structure:
gitextract_gbw6qa65/

├── .github/
│   ├── contributing.md
│   └── workflows/
│       ├── check.yml
│       └── deploy.yml
├── .gitignore
├── .oxlintrc.json
├── .textlintrc.json
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── CODEOWNERS
├── LICENSE
├── README-zh-cn.md
├── README-zh-tw.md
├── README.md
├── book/
│   ├── figures-src/
│   │   ├── README.md
│   │   └── legacy-drawio/
│   │       ├── c1c2map.drawio
│   │       ├── c1c2map_deleted.drawio
│   │       ├── c1c2map_inserted.drawio
│   │       ├── c1c2map_inserted_correct.drawio
│   │       └── reactive_observer.drawio
│   ├── impls/
│   │   ├── 00_introduction/
│   │   │   └── 010_project_setup/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   └── index.ts
│   │   │       └── tsconfig.json
│   │   ├── 10_minimum_example/
│   │   │   ├── 010_create_app/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 015_package_architecture/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── renderer.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── nodeOps.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_simple_h_function/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_reactive_system/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_vdom_system/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_system/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_system2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_system3/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_template_compiler/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_template_compiler2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_template_compiler3/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_sfc_compiler/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── plugin-sample/
│   │   │   │   │   ├── .gitignore
│   │   │   │   │   ├── .vscode/
│   │   │   │   │   │   └── extensions.json
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── index.html
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── App.vue
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── HelloWorld.vue
│   │   │   │   │   │   ├── main.ts
│   │   │   │   │   │   ├── plugin.sample.js
│   │   │   │   │   │   ├── style.css
│   │   │   │   │   │   └── vite-env.d.ts
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.node.json
│   │   │   │   │   └── vite.config.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_sfc_compiler2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_sfc_compiler3/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 070_sfc_compiler4/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   ├── App.vue
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   └── reactive.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   └── events.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       └── index.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 20_basic_virtual_dom/
│   │   │   ├── 010_patch_keyed_children/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_bit_flags/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_scheduler/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_next_tick/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 060_other_props/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   └── reactive.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       └── shapeFlags.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 30_basic_reactivity_system/
│   │   │   ├── 010_ref/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_shallow_ref/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_to_ref/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_to_refs/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_computed/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_computed_setter/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_watch/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 080_watch_api_extends/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 090_watch_effect/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 100_reactive_proxy_target_type/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 110_template_refs/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 120_proxy_handler_improvement/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 130_cleanup_effects/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 140_effect_scope/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 150_other_apis/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 40_basic_component_system/
│   │   │   ├── 010_lifecycle_hooks/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_provide_inject/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_component_proxy/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_setup_context/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_slot/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_slot_extend/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 070_options_api/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiDefineComponent.ts
│   │   │       │   │   ├── apiInject.ts
│   │   │       │   │   ├── apiLifecycle.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── componentPublicInstance.ts
│   │   │       │   │   ├── componentSlots.ts
│   │   │       │   │   ├── enums.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 50_basic_template_compiler/
│   │   │   ├── 010_transformer/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── transformElement.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_v_bind/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   └── vBind.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 022_transform_expression/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   └── vBind.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 025_v_on/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 027_event_modifier/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 027_event_modifier2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_fragment/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 035_comment/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_v_if_and_structural_directive/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_v_for/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_resolve_components/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── components/
│   │   │   │   │       │   │   └── Counter.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 080_component_slot_outlet/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Comp.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 085_component_slot_insert/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Comp.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   ├── vOn.ts
│   │   │   │   │   │   │   └── vSlot.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 090_other_directives/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 100_chore_compiler/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   ├── App.vue
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── babelUtils.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   ├── runtimeHelpers.ts
│   │   │       │   │   ├── transform.ts
│   │   │       │   │   ├── transforms/
│   │   │       │   │   │   ├── transformElement.ts
│   │   │       │   │   │   ├── transformExpression.ts
│   │   │       │   │   │   ├── transformSlotOutlet.ts
│   │   │       │   │   │   ├── vBind.ts
│   │   │       │   │   │   ├── vFor.ts
│   │   │       │   │   │   ├── vIf.ts
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   └── utils.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parserOptions.ts
│   │   │       │   │   └── transforms/
│   │   │       │   │       ├── vHtml.ts
│   │   │       │   │       ├── vOn.ts
│   │   │       │   │       └── vText.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiDefineComponent.ts
│   │   │       │   │   ├── apiInject.ts
│   │   │       │   │   ├── apiLifecycle.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── componentPublicInstance.ts
│   │   │       │   │   ├── componentRenderContext.ts
│   │   │       │   │   ├── componentSlots.ts
│   │   │       │   │   ├── enums.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── helpers/
│   │   │       │   │   │   ├── renderList.ts
│   │   │       │   │   │   ├── renderSlot.ts
│   │   │       │   │   │   ├── resolveAssets.ts
│   │   │       │   │   │   └── toHandlers.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── directives/
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   ├── patchProp.ts
│   │   │       │   │   └── runtimeHelpers.ts
│   │   │       │   └── shared/
│   │   │       │       ├── domTagConfig.ts
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── makeMap.ts
│   │   │       │       ├── normalizeProp.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 60_basic_sfc_compiler/
│   │   │   ├── .gitkeep
│   │   │   ├── 010_script_setup/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_define_props/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_define_emits/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_scoped_css/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_props_destructure/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 060_type_based_macros/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   ├── App.vue
│   │   │       │       │   ├── Child.vue
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── babelUtils.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   ├── runtimeHelpers.ts
│   │   │       │   │   ├── transform.ts
│   │   │       │   │   ├── transforms/
│   │   │       │   │   │   ├── transformElement.ts
│   │   │       │   │   │   ├── transformExpression.ts
│   │   │       │   │   │   ├── transformSlotOutlet.ts
│   │   │       │   │   │   ├── vBind.ts
│   │   │       │   │   │   ├── vFor.ts
│   │   │       │   │   │   ├── vIf.ts
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   └── utils.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parserOptions.ts
│   │   │       │   │   └── transforms/
│   │   │       │   │       ├── vHtml.ts
│   │   │       │   │       ├── vOn.ts
│   │   │       │   │       └── vText.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileScript.ts
│   │   │       │   │   ├── compileSfc.ts
│   │   │       │   │   ├── compileStyle.ts
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiDefineComponent.ts
│   │   │       │   │   ├── apiInject.ts
│   │   │       │   │   ├── apiLifecycle.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── componentPublicInstance.ts
│   │   │       │   │   ├── componentRenderContext.ts
│   │   │       │   │   ├── componentSlots.ts
│   │   │       │   │   ├── enums.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── helpers/
│   │   │       │   │   │   ├── renderList.ts
│   │   │       │   │   │   ├── renderSlot.ts
│   │   │       │   │   │   ├── resolveAssets.ts
│   │   │       │   │   │   └── toHandlers.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── directives/
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   ├── patchProp.ts
│   │   │       │   │   └── runtimeHelpers.ts
│   │   │       │   └── shared/
│   │   │       │       ├── domTagConfig.ts
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── makeMap.ts
│   │   │       │       ├── normalizeProp.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 90_web_application_essentials/
│   │   │   ├── 010_ssr/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── hydration.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   ├── server-renderer/
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── ssrInterpolate.ts
│   │   │   │   │   │   │   ├── ssrRenderAttrs.ts
│   │   │   │   │   │   │   ├── ssrRenderList.ts
│   │   │   │   │   │   │   └── ssrUtils.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── render.ts
│   │   │   │   │   │   └── renderToString.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_keep_alive/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Counter.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── KeepAlive.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   ├── server-renderer/
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── ssrInterpolate.ts
│   │   │   │   │   │   │   ├── ssrRenderAttrs.ts
│   │   │   │   │   │   │   ├── ssrRenderList.ts
│   │   │   │   │   │   │   └── ssrUtils.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── render.ts
│   │   │   │   │   │   └── renderToString.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_transition/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── KeepAlive.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── Transition.ts
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   ├── server-renderer/
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── ssrInterpolate.ts
│   │   │   │   │   │   │   ├── ssrRenderAttrs.ts
│   │   │   │   │   │   │   ├── ssrRenderList.ts
│   │   │   │   │   │   │   └── ssrUtils.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── render.ts
│   │   │   │   │   │   └── renderToString.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_static_hoisting/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │

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

================================================
FILE: .github/contributing.md
================================================
# Contributing to chibivue

Are you looking at this page now because you're interested in contributing to chibivue? If so, I'd be very pleased.  
I'd appreciate it if you could create some pull request, no matter how minor.  
I've written some guides below on how to contribute, so please take a moment to read them.
Thank you to all chibivue fans. 💖

ubugeeei.

---

## Guide to the main directories/files

First, let's talk about the top-level directories:

```sh
book # Contains materials related to the online book

impl # Contains the latest source code of chibivue packages (runtime-core, runtime-dom, reactivity, compiler-core, compiler-dom, compiler-sfc, compiler-vapor, runtime-vapor, server-renderer, etc.)

examples # Contains sample code using the packages. Not directly related to the online book.

tools # Development and reader tools for the online book.

.github # Contains CI configuration files and contribution guides.
```

Now, let's take a closer look at the book directory.

```sh
book
  |- images # Contains image files used in the online book.
  |- online-book # The main body of the online book. It is a Vitepress project.
  |- impls # Contains the source code for each chapter.
```

## Guide about the method of contribution

### Before submitting a pull request

### Forking the repository

Access https://github.com/chibivue-land/chibivue and click on the `Fork` button on this page to fork it to your own account.

You can choose any name for the repository. Feel free to set other information as well.

### Setting up the local environment

#### Installing the necessary tools

- [Node.js](https://nodejs.org/en) (v24+)
- [pnpm](https://pnpm.io/) (v10+)

### Getting Started

First, install the dependencies and set up the playground.

```sh
pnpm i && pnpm setup
```

Then, you can start the development server.

```sh
pnpm dev
```

### Available Scripts

| Script | Description |
|--------|-------------|
| **Book** | |
| `dev` | Start online book dev server |
| `build` | Build online book |
| `preview` | Preview built online book |
| `lint:text` | Lint book text |
| **Setup** | |
| `setup` | Install dependencies and generate playground |
| `setup:dev` | Generate playground files to examples/playground |
| `setup:vue` | Set up Vue.js core comparison environment |
| `setup:book` | Generate chibivue implementation for book readers |
| **Implementation** | |
| `impl:dev` | Start playground dev server |
| `impl:dev:app` | Start app example dev server |
| `impl:dev:vapor` | Start vapor mode example dev server |
| `impl:dev:vue` | Start Vue.js core dev server for comparison |
| `impl:build` | Build all packages |
| `impl:clean` | Remove all dist folders |
| `impl:check` | Run all checks (lint, fmt, typecheck, build, test) |
| **Quality** | |
| `check` | Run type checking (tsgo) |
| `lint` | Run linter (oxlint) |
| `lint:fix` | Run linter with auto-fix |
| `fmt` | Format code (oxfmt) |
| `fmt:check` | Check code formatting |
| `test` | Run tests once |
| `test:watch` | Run tests in watch mode |

### Running book chapter implementations

If you want to run the source code for each chapter, you can do so with the following command.

```sh
cd book/impls/${section-name}/${chapter-name}
pnpm dev
```

### Book Playground

The project includes a WebContainer-based playground (`book/playground`) that allows readers to try each chapter's implementation directly in the browser.

To start the playground:

```sh
pnpm play           # Start the playground dev server
```

The playground supports:
- Selecting different chapters to explore
- Editing code with Monaco editor
- Running the development server in the browser
- Persisting edits to localStorage
- Resetting files to their original state

If you modify chapter implementations in `book/impls/`, run `pnpm play:generate` to update the playground data.

#### Creating a branch (start making changes)

Clone the forked repository and create a branch.

Before creating a branch, make sure the upstream is set to the main branch.

As for the branch name, if it is related to a specific issue, please use the format `${issue-number}-${description (kebab-case)}`.  
Please make the description as clear and unique as possible.
There are no strict rules at the moment, but please avoid very short names or names that are too generic (lack uniqueness).  
If it is not related to a specific issue, the issue number is not necessary.

It would be helpful if you could create an issue whenever possible. It is not necessary for simple typo fixes.  
Also, if the changes are expected to be significant or critical in content, it would be appreciated if you could consult with @ubugeeei in advance.  
(If such changes are made without consultation, there is a possibility that the PR will be rejected depending on the case.)

### Creating commits

There are no strict rules regarding the content and granularity of commit messages to the working branch.

For commit messages, we have provided a configuration file for git-cz (changelog.config.cjs), so it is recommended to use it (but not required).

If you want to use git-cz, you need to install it locally.

```sh
npm install -g git-cz
```

```sh
# When you run the cz command with the staged changes, an interactive shell will start.
git cz
```

Of course, if you have any suggestions for the git-cz configuration file, please feel free to send a PR.

Regarding commit messages, if the issue number is included in the branch name, the issue number will be automatically included in the commit message.  
This is achieved by husky, and you can check the details in `/.husky/commit-msg`.

### Creating a Pull Request

Once you have finished making changes locally and pushed the changes, please create a Pull Request to the main branch of https://github.com/chibivue-land/chibivue.  
Please make the title and description of the Pull Request as clear as possible.  
Please always notify @ubugeeei when the work is completed to keep track of whether the work is in progress or completed.  
You can mention @ubugeeei in the PR comment. The same applies when the changes are completed after the review.
Also, please make sure to check that the CI has succeeded before reporting completion.

Basically, all PRs are managed by @ubugeeei, so please contact @ubugeeei for any inquiries.

## Guide about the contents of contribution

This is a guide to the changes you make. Here are a few points to keep in mind.

- When making changes to the online book, please make sure that the content is consistent across all language versions (English, Japanese, Simplified Chinese, Traditional Chinese).
- When making changes to the source code of each chapter, please appropriately incorporate those changes into the source code of subsequent chapters.
- When including images, figures, or text from other sources, please make sure to provide proper attribution.


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

on:
  push:
    branches:
      - '**'

permissions:
  contents: read

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version-file: 'package.json'

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

      - name: Get pnpm store directory
        shell: bash
        run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV

      - uses: actions/cache@v4
        name: Setup pnpm cache
        with:
          path: ${{ env.STORE_PATH }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-store-

      - name: Install dependencies
        run: pnpm install

      - name: Install Playwright browsers
        run: pnpm exec playwright install --with-deps chromium

      - name: Check fmt
        run: pnpm fmt:check

      - name: Check lint
        run: pnpm lint

      - name: Check lint text
        run: pnpm lint:text

      - name: Check types
        run: pnpm check

      - name: Check impl building
        run: pnpm impl:build

      - name: Check test
        run: pnpm test

      - name: Build book
        run: pnpm build


================================================
FILE: .github/workflows/deploy.yml
================================================
name: Deploy chibivue Book to Pages

on:
  push:
    branches: [main]

  workflow_dispatch:

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: pages
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Check if it's the original repo and the main branch
        run: |
          if [[ "${{ github.repository }}" == "ubugeeei/chibivue" && "${{ github.ref }}" == "refs/heads/main" ]]; then
            echo "This is the original repo's main branch, running the workflow."
          else
            echo "This is a fork or a different branch, skipping the workflow."
            exit 0
          fi

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version-file: 'package.json'

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

      - name: Get pnpm store directory
        shell: bash
        run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV

      - uses: actions/cache@v4
        name: Setup pnpm cache
        with:
          path: ${{ env.STORE_PATH }}
          key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
          restore-keys: |
            ${{ runner.os }}-pnpm-store-

      - name: Setup Pages
        uses: actions/configure-pages@v5

      - name: Install dependencies
        run: pnpm install

      - name: Build with VitePress
        run: pnpm build

      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: book/online-book/.vitepress/dist

  deploy:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4


================================================
FILE: .gitignore
================================================
node_modules
dist
examples/playground
examples/vuejs-core
.env
tools/translator/ja2en/input.md
tools/translator/ja2en/output.md
book/online-book/.vitepress/cache
book/online-book/.vitepress/dist

# for dts-bundle
temp

# VSCode extension
*.vsix
.vscode-test
out

================================================
FILE: .oxlintrc.json
================================================
{
  "$schema": "https://raw.githubusercontent.com/oxc-project/oxlint/main/npm/oxlint/configuration_schema.json",
  "ignorePatterns": ["examples/vuejs-core"],
  "rules": {
    "no-unused-vars": "off",
    "no-unused-expressions": "off",
    "no-useless-escape": "off",
    "no-this-alias": "off",
    "no-async-promise-executor": "off",
    "only-used-in-recursion": "off",
    "no-non-null-asserted-optional-chain": "off",
    "no-wrapper-object-types": "off",
    "unicorn/no-new-array": "off",
    "unicorn/no-useless-spread": "off",
    "unicorn/no-useless-fallback-in-spread": "off"
  }
}


================================================
FILE: .textlintrc.json
================================================
{
  "rules": {
    "ja-space-between-half-and-full-width": {
      "space": "always"
    },
    "prh": {
      "rulePaths": ["rules/prh-punctuation-mark.yml"]
    }
  }
}


================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": [
    "oxc.oxc-vscode"
  ]
}


================================================
FILE: .vscode/settings.json
================================================
{
  "cSpell.words": [
    "antfu",
    "augmentor",
    "chainsi",
    "chibi",
    "chibivue",
    "citty",
    "consola",
    "cytoscape",
    "deduped",
    "deindent",
    "estree",
    "fizzbuzz",
    "hyperscript",
    "jiti",
    "klass",
    "lightningcss",
    "nocheck",
    "onwarn",
    "oxfmt",
    "oxlint",
    "paren",
    "Parens",
    "RAWTEXT",
    "RCDATA",
    "resetsix",
    "rolldown",
    "textlint",
    "tokei",
    "unref",
    "vdom",
    "vitepress",
    "vnode",
    "Vnodes",
    "vuejs"
  ],
  "material-icon-theme.folders.associations": {
    "book": "resource",
    "impls": "vue",
    "online-book": "vuepress",
    "vuejs-core": "vue",
    "@extensions": "lib"
  },
  "material-icon-theme.files.associations": {},
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "oxc.oxc-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.oxc": "explicit"
  },
  "oxc.enable": true
}


================================================
FILE: CODEOWNERS
================================================
* @ubugeeei

/book/online-book/src/zh-cn @resetsix
/book/online-book/src/zh-tw @resetsix
/book/online-book/.vitepress/config/zh-cn.ts @resetsix
/book/online-book/.vitepress/config/zh-tw.ts @resetsix


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2023-present ubugeeei

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README-zh-cn.md
================================================
<p align="center">
  <img src="./book/online-book/src/public/og.png" width="480">
</p>

<h1 align="center">chibivue</h1>

<p align="center">
  <b>编写 Vue.js:从一行 "Hello, World" 开始,逐步构建。</b>
</p>

<p align="center">
  <a href="https://book.chibivue.land/zh-cn">在线书籍</a> ·
  <a href="https://discord.gg/aVHvmbmSRy">Discord</a> ·
  <a href="https://github.com/sponsors/ubugeeei">赞助</a>
</p>

<p align="center">
  <a href="./README.md">English</a> ·
  <a href="./README-zh-tw.md">繁體中文</a>
</p>

---

**chibivue** 是 [Vue.js](https://github.com/vuejs/core) 的最小化教学实现.

- 响应式系统
- 虚拟 DOM 和补丁渲染
- 组件系统
- 模板编译器
- SFC 编译器
- Vapor Mode(实验性)

> "chibi" 在日语中意思是 "小"。

## 在线书籍

[![Pages Deploy](https://github.com/chibivue-land/chibivue/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/chibivue-land/chibivue/actions/workflows/deploy.yml)

| 语言 | 链接 |
|------|------|
| English | https://book.chibivue.land |
| 日本語 | https://book.chibivue.land/ja |
| 简体中文 | https://book.chibivue.land/zh-cn |
| 繁體中文 | https://book.chibivue.land/zh-tw |

## 快速开始

### 环境要求

- [Node.js](https://nodejs.org/) v24+
- [pnpm](https://pnpm.io/) v10+

### 本地阅读书籍

```sh
git clone https://github.com/chibivue-land/chibivue
cd chibivue
pnpm install
pnpm dev
```

### 尝试实现

```sh
pnpm setup      # 生成 playground
pnpm impl:dev   # 启动开发服务器
```

## 附加章节

**超极限超极端最小 Vue**

仅用 **110 行**代码实现 createApp,虚拟 DOM,响应式,模板编译器和 SFC 编译器.

[阅读章节](https://book.chibivue.land/zh-cn/bonus/hyper-ultimate-super-extreme-minimal-vue) · [查看源码](https://github.com/chibivue-land/chibivue/blob/main/book/impls/bonus/hyper-ultimate-super-extreme-minimal-vue/packages/index.ts)

## 贡献

请查看 [contributing.md](.github/contributing.md).

## 社区

加入我们的 [Discord 服务器](https://discord.gg/aVHvmbmSRy) 参与讨论,提问和获取公告.

---

<div align="center">

## 赞助商

<a href="https://github.com/sponsors/ubugeeei">
  <img src="https://raw.githubusercontent.com/ubugeeei/sponsors/main/sponsors.png" alt="ubugeeei's sponsors" />
</a>

[成为赞助商](https://github.com/sponsors/ubugeeei)

</div>


================================================
FILE: README-zh-tw.md
================================================
<p align="center">
  <img src="./book/online-book/src/public/og.png" width="480">
</p>

<h1 align="center">chibivue</h1>

<p align="center">
  <b>編寫 Vue.js:從一行 "Hello, World" 開始,逐步構建。</b>
</p>

<p align="center">
  <a href="https://book.chibivue.land/zh-tw">線上書籍</a> ·
  <a href="https://discord.gg/aVHvmbmSRy">Discord</a> ·
  <a href="https://github.com/sponsors/ubugeeei">贊助</a>
</p>

<p align="center">
  <a href="./README.md">English</a> ·
  <a href="./README-zh-cn.md">简体中文</a>
</p>

---

**chibivue** 是 [Vue.js](https://github.com/vuejs/core) 的最小化教學實現.

- 響應式系統
- 虛擬 DOM 和補丁渲染
- 組件系統
- 模板編譯器
- SFC 編譯器
- Vapor Mode(實驗性)

> "chibi" 在日語中意思是 "小"。

## 線上書籍

[![Pages Deploy](https://github.com/chibivue-land/chibivue/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/chibivue-land/chibivue/actions/workflows/deploy.yml)

| 語言 | 連結 |
|------|------|
| English | https://book.chibivue.land |
| 日本語 | https://book.chibivue.land/ja |
| 简体中文 | https://book.chibivue.land/zh-cn |
| 繁體中文 | https://book.chibivue.land/zh-tw |

## 快速開始

### 環境要求

- [Node.js](https://nodejs.org/) v24+
- [pnpm](https://pnpm.io/) v10+

### 本地閱讀書籍

```sh
git clone https://github.com/chibivue-land/chibivue
cd chibivue
pnpm install
pnpm dev
```

### 嘗試實現

```sh
pnpm setup      # 生成 playground
pnpm impl:dev   # 啟動開發伺服器
```

## 附加章節

**超極限超極端最小 Vue**

僅用 **110 行**程式碼實現 createApp,虛擬 DOM,響應式,模板編譯器和 SFC 編譯器.

[閱讀章節](https://book.chibivue.land/zh-tw/bonus/hyper-ultimate-super-extreme-minimal-vue) · [查看原始碼](https://github.com/chibivue-land/chibivue/blob/main/book/impls/bonus/hyper-ultimate-super-extreme-minimal-vue/packages/index.ts)

## 貢獻

請查看 [contributing.md](.github/contributing.md).

## 社群

加入我們的 [Discord 伺服器](https://discord.gg/aVHvmbmSRy) 參與討論,提問和獲取公告.

---

<div align="center">

## 贊助商

<a href="https://github.com/sponsors/ubugeeei">
  <img src="https://raw.githubusercontent.com/ubugeeei/sponsors/main/sponsors.png" alt="ubugeeei's sponsors" />
</a>

[成為贊助商](https://github.com/sponsors/ubugeeei)

</div>


================================================
FILE: README.md
================================================
<p align="center">
  <img src="./book/online-book/src/public/og.png" width="480">
</p>

<h1 align="center">chibivue</h1>

<p align="center">
  <b>Writing Vue.js: Step by Step, from just one line of "Hello, World".</b>
</p>

<p align="center">
  <a href="https://book.chibivue.land">Online Book</a> ·
  <a href="https://discord.gg/aVHvmbmSRy">Discord</a> ·
  <a href="https://github.com/sponsors/ubugeeei">Sponsor</a>
</p>

<p align="center">
  <a href="./README-zh-cn.md">简体中文</a> ·
  <a href="./README-zh-tw.md">繁體中文</a>
</p>

---

**chibivue** is a minimal implementation of [Vue.js](https://github.com/vuejs/core) for educational purposes.

- Reactivity System
- Virtual DOM & Patch Rendering
- Component System
- Template Compiler
- SFC Compiler
- Vapor Mode (experimental)

> "chibi" means "small" in Japanese.

## Online Book

[![Pages Deploy](https://github.com/chibivue-land/chibivue/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/chibivue-land/chibivue/actions/workflows/deploy.yml)

| Language | URL |
|----------|-----|
| English | https://book.chibivue.land |
| 日本語 | https://book.chibivue.land/ja |
| 简体中文 | https://book.chibivue.land/zh-cn |
| 繁體中文 | https://book.chibivue.land/zh-tw |

## Quick Start

### Requirements

- [Node.js](https://nodejs.org/) v24+
- [pnpm](https://pnpm.io/) v10+

### Read the Book Locally

```sh
git clone https://github.com/chibivue-land/chibivue
cd chibivue
pnpm install
pnpm dev
```

### Try the Implementation

```sh
pnpm setup      # Generate playground
pnpm impl:dev   # Start dev server
```

## Bonus Track

**Hyper Ultimate Super Extreme Minimal Vue**

Implements createApp, Virtual DOM, Reactivity, Template Compiler, and SFC Compiler in just **110 lines**.

[Read the Chapter](https://book.chibivue.land/bonus/hyper-ultimate-super-extreme-minimal-vue) · [View Source](https://github.com/chibivue-land/chibivue/blob/main/book/impls/bonus/hyper-ultimate-super-extreme-minimal-vue/packages/index.ts)

## Contributing

See [contributing.md](.github/contributing.md).

## Community

Join our [Discord Server](https://discord.gg/aVHvmbmSRy) for discussions, questions, and announcements.

---

<div align="center">

## Sponsors

<a href="https://github.com/sponsors/ubugeeei">
  <img src="https://raw.githubusercontent.com/ubugeeei/sponsors/main/sponsors.png" alt="ubugeeei's sponsors" />
</a>

[Become a Sponsor](https://github.com/sponsors/ubugeeei)

</div>


================================================
FILE: book/figures-src/README.md
================================================
# Book figure assets

The online book serves figure assets from `book/online-book/src/public/figures`.

Use paths that mirror the book structure:

```txt
figures/<chapter>/<article>/<purpose>.<ext>
```

Examples:

- `figures/_brand/logo.png`
- `figures/_people/ubugeeei-avatar.jpg`
- `figures/_sponsors/ubugeeei-sponsors.png`
- `figures/10-minimum-example/reactivity/target-map-structure.svg`
- `figures/20-basic-virtual-dom/patch-keyed-children/inserted-child-keyed-match.svg`
- `figures/50-basic-template-compiler/v-bind/transform-vbind-flow.svg`

Generated explanatory diagrams are SVG files created by `tools/book-figures/generate.mjs`.
Regenerate them with:

```sh
node tools/book-figures/generate.mjs
```

Screenshots should keep their closest article directory and use descriptive names such as `*-result.png`, `*-console.png`, or `*-flow.png`.

Legacy pre-rebrand assets are archived here:

- `legacy-drawio/`: old draw.io source files
- `legacy-raster/`: old exported raster diagrams
- `unreferenced/`: old files that are not currently used by the online book


================================================
FILE: book/figures-src/legacy-drawio/c1c2map.drawio
================================================
<mxfile host="65bd71144e">
    <diagram id="b-V9glVyOOTkLKbPg4Gc" name="ページ1">
        <mxGraphModel dx="1515" dy="590" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="120" y="270" width="210" height="350" as="geometry"/>
                </mxCell>
                <mxCell id="3" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="145" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="5" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="145" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="6" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="145" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="7" value="li 4" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="145" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="8" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="460" y="270" width="210" height="350" as="geometry"/>
                </mxCell>
                <mxCell id="9" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="485" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="10" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="485" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="11" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="485" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="12" value="li 4" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="485" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="13" value="C1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="205" y="220" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="14" value="C2" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="540" y="220" width="50" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="16" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" edge="1" parent="1" source="3" target="9">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="620" y="480" as="sourcePoint"/>
                        <mxPoint x="670" y="430" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="17" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" edge="1" parent="1" source="5" target="10">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="335" as="sourcePoint"/>
                        <mxPoint x="495" y="335" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="18" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" edge="1" parent="1" source="6" target="11">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="415" as="sourcePoint"/>
                        <mxPoint x="495" y="415" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="19" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" edge="1" parent="1" source="7" target="12">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="495" as="sourcePoint"/>
                        <mxPoint x="495" y="495" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="20" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="320" y="280" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="320" y="370" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="22" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="320" y="440" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="23" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="320" y="530" width="150" height="40" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

================================================
FILE: book/figures-src/legacy-drawio/c1c2map_deleted.drawio
================================================
<mxfile host="65bd71144e">
    <diagram id="b-V9glVyOOTkLKbPg4Gc" name="ページ1">
        <mxGraphModel dx="1515" dy="590" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="120" y="270" width="210" height="350" as="geometry"/>
                </mxCell>
                <mxCell id="3" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="5" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="6" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="7" value="li 4" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="8" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="460" y="270" width="210" height="350" as="geometry"/>
                </mxCell>
                <mxCell id="9" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="10" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="11" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="12" value="????" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;dashed=1;" parent="1" vertex="1">
                    <mxGeometry x="485" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="13" value="C1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="205" y="220" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="14" value="C2" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="540" y="220" width="50" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="16" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="3" target="9" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="620" y="480" as="sourcePoint"/>
                        <mxPoint x="670" y="430" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="17" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="5" target="10" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="335" as="sourcePoint"/>
                        <mxPoint x="495" y="335" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="18" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="6" target="11" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="415" as="sourcePoint"/>
                        <mxPoint x="495" y="415" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="19" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="7" target="12" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="495" as="sourcePoint"/>
                        <mxPoint x="495" y="495" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="20" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="320" y="280" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="320" y="370" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="22" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="320" y="440" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="23" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;???&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="375" y="530" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="26" value="" style="curved=1;endArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="590" y="320" as="sourcePoint"/>
                        <mxPoint x="710" y="240" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="620" y="240"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="27" value="patch loop start" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;" vertex="1" parent="1">
                    <mxGeometry x="700" y="220" width="180" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="28" value="" style="curved=1;endArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" edge="1" parent="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="620" y="490" as="sourcePoint"/>
                        <mxPoint x="750" y="520" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="650" y="540"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="30" value="patch loop end" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;" vertex="1" parent="1">
                    <mxGeometry x="750" y="500" width="160" height="40" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

================================================
FILE: book/figures-src/legacy-drawio/c1c2map_inserted.drawio
================================================
<mxfile host="65bd71144e">
    <diagram id="b-V9glVyOOTkLKbPg4Gc" name="ページ1">
        <mxGraphModel dx="1595" dy="621" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="120" y="270" width="210" height="350" as="geometry"/>
                </mxCell>
                <mxCell id="3" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="5" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="6" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="7" value="li 4" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="8" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="460" y="270" width="210" height="430" as="geometry"/>
                </mxCell>
                <mxCell id="9" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="10" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="11" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="13" value="C1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="205" y="220" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="14" value="C2" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="540" y="220" width="50" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="16" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="3" target="9" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="620" y="480" as="sourcePoint"/>
                        <mxPoint x="670" y="430" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="17" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="5" target="31" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="335" as="sourcePoint"/>
                        <mxPoint x="495" y="335" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="18" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="6" target="10" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="415" as="sourcePoint"/>
                        <mxPoint x="495" y="415" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="19" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="7" target="11" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="495" as="sourcePoint"/>
                        <mxPoint x="485" y="645" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="20" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="320" y="280" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="320" y="370" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="22" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="320" y="440" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="31" value="new element" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="485" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="32" value="li 4" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="485" y="610" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="33" value="create new node" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;" vertex="1" parent="1">
                    <mxGeometry x="750" y="650" width="180" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="28" value="" style="curved=1;endArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" parent="1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="620" y="640" as="sourcePoint"/>
                        <mxPoint x="750" y="670" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="650" y="690"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="35" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="320" y="520" width="150" height="40" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

================================================
FILE: book/figures-src/legacy-drawio/c1c2map_inserted_correct.drawio
================================================
<mxfile host="65bd71144e">
    <diagram id="b-V9glVyOOTkLKbPg4Gc" name="ページ1">
        <mxGraphModel dx="1515" dy="590" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="120" y="270" width="210" height="350" as="geometry"/>
                </mxCell>
                <mxCell id="3" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="5" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="6" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="7" value="li 4" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="145" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="8" value="" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="460" y="270" width="210" height="430" as="geometry"/>
                </mxCell>
                <mxCell id="9" value="li 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="290" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="10" value="li 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="450" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="11" value="li 3" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="530" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="13" value="C1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="205" y="220" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="14" value="C2" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="540" y="220" width="50" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="16" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="3" target="9" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="620" y="480" as="sourcePoint"/>
                        <mxPoint x="670" y="430" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="17" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="5" target="10" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="335" as="sourcePoint"/>
                        <mxPoint x="495" y="335" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="18" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;labelBackgroundColor=none;" parent="1" source="6" target="11" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="415" as="sourcePoint"/>
                        <mxPoint x="495" y="415" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="19" value="" style="endArrow=classic;startArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=-0.031;entryY=0.4;entryDx=0;entryDy=0;labelBackgroundColor=none;entryPerimeter=0;" parent="1" source="7" target="32" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="315" y="495" as="sourcePoint"/>
                        <mxPoint x="485" y="645" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="20" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="320" y="280" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="330" y="420" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="22" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="330" y="500" width="150" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="31" value="new element" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="370" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="32" value="li 4" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;labelBackgroundColor=none;" parent="1" vertex="1">
                    <mxGeometry x="485" y="610" width="160" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="33" value="create new node" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;" parent="1" vertex="1">
                    <mxGeometry x="760" y="420" width="180" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="28" value="" style="curved=1;endArrow=classic;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;" parent="1" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="630" y="410" as="sourcePoint"/>
                        <mxPoint x="760" y="440" as="targetPoint"/>
                        <Array as="points">
                            <mxPoint x="660" y="460"/>
                        </Array>
                    </mxGeometry>
                </mxCell>
                <mxCell id="34" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Compare and patch diffs&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;fontFamily=Architects Daughter;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;labelBackgroundColor=none;" vertex="1" parent="1">
                    <mxGeometry x="330" y="585" width="150" height="40" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

================================================
FILE: book/figures-src/legacy-drawio/reactive_observer.drawio
================================================
<mxfile host="65bd71144e">
    <diagram id="vGUKsrpaSU9UvXaOGbhk" name="ページ1">
        <mxGraphModel dx="3242" dy="2104" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="#ffffff" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="2" value="targetMap&lt;br&gt;(observers)" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="184" y="170" width="146" height="70" as="geometry"/>
                </mxCell>
                <mxCell id="3" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="8" target="2" edge="1">
                    <mxGeometry width="160" relative="1" as="geometry">
                        <mxPoint x="410" y="370" as="sourcePoint"/>
                        <mxPoint x="520" y="300" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="4" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="6" target="2" edge="1">
                    <mxGeometry width="160" relative="1" as="geometry">
                        <mxPoint x="150" y="350" as="sourcePoint"/>
                        <mxPoint x="180" y="280" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="5" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="7" target="2" edge="1">
                    <mxGeometry width="160" relative="1" as="geometry">
                        <mxPoint x="300" y="380" as="sourcePoint"/>
                        <mxPoint x="251.5" y="250" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="6" value="object 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="90" y="330" width="110" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="7" value="object 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="290" y="340" width="110" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="8" value=". . ." style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="490" y="340" width="110" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="9" value="key 1" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="-50" y="480" width="110" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="10" value="key 2" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="180" y="470" width="110" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="11" value=". . ." style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="359" y="480" width="110" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="12" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="11" target="7" edge="1">
                    <mxGeometry width="160" relative="1" as="geometry">
                        <mxPoint x="390" y="460" as="sourcePoint"/>
                        <mxPoint x="390" y="420" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="13" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="9" target="6" edge="1">
                    <mxGeometry width="160" relative="1" as="geometry">
                        <mxPoint x="424" y="490" as="sourcePoint"/>
                        <mxPoint x="355" y="410" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="14" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="10" target="6" edge="1">
                    <mxGeometry width="160" relative="1" as="geometry">
                        <mxPoint x="75" y="460" as="sourcePoint"/>
                        <mxPoint x="155" y="400" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="15" value="Dep&lt;br&gt;&lt;font style=&quot;font-size: 11px;&quot;&gt;update()&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="-70" y="570" width="150" height="80" as="geometry"/>
                </mxCell>
                <mxCell id="17" value="" style="endArrow=none;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="15" target="9" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="410" y="420" as="sourcePoint"/>
                        <mxPoint x="460" y="370" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="18" value=". . ." style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="160" y="570" width="150" height="60" as="geometry"/>
                </mxCell>
                <mxCell id="19" value="" style="endArrow=none;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="18" target="10" edge="1">
                    <mxGeometry width="50" height="50" relative="1" as="geometry">
                        <mxPoint x="75" y="620" as="sourcePoint"/>
                        <mxPoint x="75" y="550" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="20" value="Subject&lt;br&gt;&lt;font style=&quot;font-size: 15px;&quot;&gt;observ(), notify()&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=20;" parent="1" vertex="1">
                    <mxGeometry x="122" y="-60" width="270" height="150" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="" style="endArrow=diamondThin;endFill=0;endSize=24;html=1;sketch=1;hachureGap=4;jiggle=2;curveFitting=1;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=16;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="2" target="20" edge="1">
                    <mxGeometry width="160" relative="1" as="geometry">
                        <mxPoint x="155" y="340" as="sourcePoint"/>
                        <mxPoint x="230.5" y="250" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>

================================================
FILE: book/impls/00_introduction/010_project_setup/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/00_introduction/010_project_setup/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/00_introduction/010_project_setup/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/00_introduction/010_project_setup/examples/playground/src/main.ts
================================================
import "chibivue";


================================================
FILE: book/impls/00_introduction/010_project_setup/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/00_introduction/010_project_setup/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));

export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/00_introduction/010_project_setup/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/00_introduction/010_project_setup/packages/index.ts
================================================
console.log("Hello chibivue!");


================================================
FILE: book/impls/00_introduction/010_project_setup/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "ESNext"],
    "strict": true,
    "paths": {
      "chibivue": ["./packages"]
    },
    "moduleResolution": "Bundler",
    "allowJs": true,
    "esModuleInterop": true
  },
  "include": ["packages/**/*.ts", "examples/**/**.ts"],
  "exclude": ["node_modules", "dist"]
}


================================================
FILE: book/impls/10_minimum_example/010_create_app/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/10_minimum_example/010_create_app/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/10_minimum_example/010_create_app/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/10_minimum_example/010_create_app/examples/playground/src/main.ts
================================================
import { createApp } from "chibivue";

const app = createApp({
  render() {
    return "Hello world.";
  },
});

app.mount("#app");


================================================
FILE: book/impls/10_minimum_example/010_create_app/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/10_minimum_example/010_create_app/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));
export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/10_minimum_example/010_create_app/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/10_minimum_example/010_create_app/packages/index.ts
================================================
export type Options = {
  render: () => string;
};

export type App = {
  mount: (selector: string) => void;
};

export const createApp = (options: Options): App => {
  return {
    mount: (selector) => {
      const root = document.querySelector(selector);
      if (root) {
        root.innerHTML = options.render();
      }
    },
  };
};


================================================
FILE: book/impls/10_minimum_example/010_create_app/tests/e2e.spec.ts
================================================
import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { createApp } from "../packages";

let host: HTMLElement;
const initHost = () => {
  host = document.createElement("div");
  host.setAttribute("id", "host");
  document.body.appendChild(host);
};
beforeEach(() => initHost());
afterEach(() => host.remove());

describe("10_minimum_example/010_create_app", () => {
  it("should render a message", () => {
    const app = createApp({
      render() {
        return "Hello world.";
      },
    });
    app.mount("#host");

    expect(host.innerHTML).toBe("Hello world.");
  });
});


================================================
FILE: book/impls/10_minimum_example/010_create_app/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "ESNext"],
    "strict": true,
    "paths": {
      "chibivue": ["./packages"]
    },
    "moduleResolution": "Bundler",
    "allowJs": true,
    "esModuleInterop": true
  },
  "include": ["packages/**/*.ts", "examples/**/**.ts"],
  "exclude": ["node_modules", "dist"]
}


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/examples/playground/src/main.ts
================================================
import { createApp } from "chibivue";

const app = createApp({
  render() {
    return "Hello world.";
  },
});

app.mount("#app");


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));

export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/index.ts
================================================
export * from "./runtime-dom";


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/apiCreateApp.ts
================================================
import type { Component } from "./component";
import type { RootRenderFunction } from "./renderer";

export interface App<HostElement = any> {
  mount(rootContainer: HostElement | string): void;
}

export type CreateAppFunction<HostElement> = (rootComponent: Component) => App<HostElement>;

export function createAppAPI<HostElement>(
  render: RootRenderFunction<HostElement>,
): CreateAppFunction<HostElement> {
  return function createApp(rootComponent) {
    const app: App = {
      mount(rootContainer: HostElement) {
        const message = rootComponent.render!();
        render(message, rootContainer);
      },
    };

    return app;
  };
}


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/component.ts
================================================
import type { ComponentOptions } from "./componentOptions";

export type Component = ComponentOptions;


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/componentOptions.ts
================================================
export type ComponentOptions = {
  render?: Function;
};


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/index.ts
================================================
export type { App, CreateAppFunction } from "./apiCreateApp";
export { createAppAPI } from "./apiCreateApp";

export type { RendererOptions } from "./renderer";
export { createRenderer } from "./renderer";


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/renderer.ts
================================================
export type RootRenderFunction<HostElement = RendererElement> = (
  message: string,
  container: HostElement,
) => void;

export interface RendererOptions<HostNode = RendererNode> {
  setElementText(node: HostNode, text: string): void;
}

export interface RendererNode {
  [key: string]: any;
}

export interface RendererElement extends RendererNode {}

export function createRenderer(options: RendererOptions) {
  const { setElementText: hostSetElementText } = options;

  const render: RootRenderFunction = (message, container) => {
    hostSetElementText(container, message);
  };

  return { render };
}


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-dom/index.ts
================================================
import { type CreateAppFunction, createAppAPI, createRenderer } from "../runtime-core";
import { nodeOps } from "./nodeOps";

const { render } = createRenderer(nodeOps);
const _createApp = createAppAPI(render);

export const createApp = ((...args) => {
  const app = _createApp(...args);
  const { mount } = app;
  app.mount = (selector: string) => {
    const container = document.querySelector(selector);
    if (!container) return;
    mount(container);
  };

  return app;
}) as CreateAppFunction<Element>;


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-dom/nodeOps.ts
================================================
import type { RendererOptions } from "../runtime-core";

export const nodeOps: RendererOptions<Node> = {
  setElementText(node, text) {
    node.textContent = text;
  },
};


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/tests/e2e.spec.ts
================================================
import { afterEach, beforeEach, describe, expect, it } from "vitest";

import { createApp } from "../packages";

let host: HTMLElement;
const initHost = () => {
  host = document.createElement("div");
  host.setAttribute("id", "host");
  document.body.appendChild(host);
};
beforeEach(() => initHost());
afterEach(() => host.remove());

describe("10_minimum_example/015_package_architecture", () => {
  it("should render a message", () => {
    const app = createApp({
      render() {
        return "Hello world.";
      },
    });
    app.mount("#host");

    expect(host.innerHTML).toBe("Hello world.");
  });
});


================================================
FILE: book/impls/10_minimum_example/015_package_architecture/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "ESNext"],
    "strict": true,
    "paths": {
      "chibivue": ["./packages"]
    },
    "moduleResolution": "Bundler",
    "allowJs": true,
    "esModuleInterop": true
  },
  "include": ["packages/**/*.ts", "examples/**/**.ts"],
  "exclude": ["node_modules", "dist"]
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/examples/playground/src/main.ts
================================================
import { createApp, h } from "chibivue";

const app = createApp({
  render() {
    return h("div", { id: "my-app" }, [
      h("p", { style: "color: red; font-weight: bold;" }, ["Hello world."]),
      h(
        "button",
        {
          onClick() {
            alert("Hello world!");
          },
        },
        ["click me!"],
      ),
    ]);
  },
});

app.mount("#app");


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));

export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/index.ts
================================================
export * from "./runtime-core";
export * from "./runtime-dom";


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/apiCreateApp.ts
================================================
import type { Component } from "./component";
import type { RootRenderFunction } from "./renderer";

export interface App<HostElement = any> {
  mount(rootContainer: HostElement | string): void;
}

export type CreateAppFunction<HostElement> = (rootComponent: Component) => App<HostElement>;

export function createAppAPI<HostElement>(
  render: RootRenderFunction<HostElement>,
): CreateAppFunction<HostElement> {
  return function createApp(rootComponent) {
    const app: App = {
      mount(rootContainer: HostElement) {
        const vnode = rootComponent.render!();
        render(vnode, rootContainer);
      },
    };

    return app;
  };
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/component.ts
================================================
import type { ComponentOptions } from "./componentOptions";

export type Component = ComponentOptions;


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/componentOptions.ts
================================================
export type ComponentOptions = {
  render?: Function;
};


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/h.ts
================================================
import type { VNode, VNodeProps } from "./vnode";

export function h(type: string, props: VNodeProps, children: (VNode | string)[]) {
  return { type, props, children };
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/index.ts
================================================
export type { App, CreateAppFunction } from "./apiCreateApp";
export { createAppAPI } from "./apiCreateApp";

export type { RendererOptions } from "./renderer";
export { createRenderer } from "./renderer";

export { h } from "./h";


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/renderer.ts
================================================
import type { VNode } from "./vnode";

export type RootRenderFunction<HostElement = RendererElement> = (
  vnode: VNode,
  container: HostElement,
) => void;

export interface RendererOptions<HostNode = RendererNode, HostElement = RendererElement> {
  patchProp(el: HostElement, key: string, value: any): void;

  createElement(type: string): HostElement;

  createText(text: string): HostNode;

  setElementText(node: HostNode, text: string): void;

  insert(child: HostNode, parent: HostNode, anchor?: HostNode | null): void;
}

export interface RendererNode {
  [key: string]: any;
}

export interface RendererElement extends RendererNode {}

export function createRenderer(options: RendererOptions) {
  const {
    patchProp: hostPatchProp,
    createElement: hostCreateElement,
    createText: hostCreateText,
    insert: hostInsert,
  } = options;

  function renderVNode(vnode: VNode | string) {
    if (typeof vnode === "string") return hostCreateText(vnode);
    const el = hostCreateElement(vnode.type);

    Object.entries(vnode.props).forEach(([key, value]) => {
      hostPatchProp(el, key, value);
    });

    for (const child of vnode.children) {
      const childEl = renderVNode(child);
      hostInsert(childEl, el);
    }

    return el;
  }

  const render: RootRenderFunction = (vnode, container) => {
    const el = renderVNode(vnode);
    hostInsert(el, container);
  };

  return { render };
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/vnode.ts
================================================
export interface VNode {
  type: string;
  props: VNodeProps;
  children: (VNode | string)[];
}

export interface VNodeProps {
  [key: string]: any;
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/index.ts
================================================
import { type CreateAppFunction, createAppAPI, createRenderer } from "../runtime-core";
import { nodeOps } from "./nodeOps";
import { patchProp } from "./patchProp";

const { render } = createRenderer({ ...nodeOps, patchProp });
const _createApp = createAppAPI(render);

export const createApp = ((...args) => {
  const app = _createApp(...args);
  const { mount } = app;
  app.mount = (selector: string) => {
    const container = document.querySelector(selector);
    if (!container) return;
    mount(container);
  };

  return app;
}) as CreateAppFunction<Element>;


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/modules/attrs.ts
================================================
export function patchAttr(el: Element, key: string, value: any) {
  if (value == null) {
    el.removeAttribute(key);
  } else {
    el.setAttribute(key, value);
  }
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/modules/events.ts
================================================
interface Invoker extends EventListener {
  value: EventValue;
}

type EventValue = Function;

export function addEventListener(el: Element, event: string, handler: EventListener) {
  el.addEventListener(event, handler);
}

export function removeEventListener(el: Element, event: string, handler: EventListener) {
  el.removeEventListener(event, handler);
}

export function patchEvent(
  el: Element & { _vei?: Record<string, Invoker | undefined> },
  rawName: string,
  value: EventValue | null,
) {
  // vei = vue event invokers
  const invokers = el._vei || (el._vei = {});
  const existingInvoker = invokers[rawName];

  if (value && existingInvoker) {
    // patch
    existingInvoker.value = value;
  } else {
    const name = parseName(rawName);
    if (value) {
      // add
      const invoker = (invokers[rawName] = createInvoker(value));
      addEventListener(el, name, invoker);
    } else if (existingInvoker) {
      // remove
      removeEventListener(el, name, existingInvoker);
      invokers[rawName] = undefined;
    }
  }
}

function parseName(rawName: string): string {
  return rawName.slice(2).toLocaleLowerCase();
}

function createInvoker(initialValue: EventValue) {
  const invoker: Invoker = (e: Event) => {
    invoker.value(e);
  };
  invoker.value = initialValue;
  return invoker;
}


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/nodeOps.ts
================================================
import type { RendererOptions } from "../runtime-core";

export const nodeOps: Omit<RendererOptions<Node, Element>, "patchProp"> = {
  createElement: (tagName) => {
    return document.createElement(tagName);
  },

  createText: (text: string) => {
    return document.createTextNode(text);
  },

  setElementText(node, text) {
    node.textContent = text;
  },

  insert: (child, parent, anchor) => {
    parent.insertBefore(child, anchor || null);
  },
};


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/patchProp.ts
================================================
import type { RendererOptions } from "../runtime-core";
import { patchAttr } from "./modules/attrs";
import { patchEvent } from "./modules/events";

type DOMRendererOptions = RendererOptions<Node, Element>;

const onRE = /^on[^a-z]/;
export const isOn = (key: string) => onRE.test(key);

export const patchProp: DOMRendererOptions["patchProp"] = (el, key, value) => {
  if (isOn(key)) {
    patchEvent(el, key, value);
  } else {
    patchAttr(el, key, value);
  }
};


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/tests/e2e.spec.ts
================================================
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

import { createApp, h } from "../packages";

let host: HTMLElement;
const initHost = () => {
  host = document.createElement("div");
  host.setAttribute("id", "host");
  document.body.appendChild(host);
};
beforeEach(() => initHost());
afterEach(() => host.remove());

describe("10_minimum_example/020_simple_h_function", () => {
  it("should render with h function", () => {
    const app = createApp({
      render() {
        return h("div", { id: "my-app" }, [h("p", {}, ["Hello world."])]);
      },
    });
    app.mount("#host");

    expect(host.innerHTML).toBe('<div id="my-app"><p>Hello world.</p></div>');
  });

  it("should handle click events", () => {
    const onClick = vi.fn();
    const app = createApp({
      render() {
        return h("button", { id: "btn", onClick }, ["click me"]);
      },
    });
    app.mount("#host");

    const btn = host.querySelector("#btn") as HTMLButtonElement;
    btn.click();
    expect(onClick).toHaveBeenCalled();
  });
});


================================================
FILE: book/impls/10_minimum_example/020_simple_h_function/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "ESNext"],
    "strict": true,
    "paths": {
      "chibivue": ["./packages"]
    },
    "moduleResolution": "Bundler",
    "allowJs": true,
    "esModuleInterop": true
  },
  "include": ["packages/**/*.ts", "examples/**/**.ts"],
  "exclude": ["node_modules", "dist"]
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/examples/playground/src/main.ts
================================================
import { createApp, h, reactive } from "chibivue";

const app = createApp({
  setup() {
    const state = reactive({ count: 0 });
    const increment = () => state.count++;

    return function render() {
      return h("div", { id: "my-app" }, [
        h("p", {}, [`count: ${state.count}`]),
        h("button", { onClick: increment }, ["increment"]),
      ]);
    };
  },
});

app.mount("#app");


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));

export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/index.ts
================================================
export * from "./runtime-core";
export * from "./runtime-dom";
export * from "./reactivity";


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/baseHandler.ts
================================================
import { track, trigger } from "./effect";
import { reactive } from "./reactive";

export const mutableHandlers: ProxyHandler<object> = {
  get(target: object, key: string | symbol, receiver: object) {
    track(target, key);

    const res = Reflect.get(target, key, receiver);
    if (res !== null && typeof res === "object") {
      return reactive(res);
    }

    return res;
  },

  set(target: object, key: string | symbol, value: unknown, receiver: object) {
    let oldValue = (target as any)[key];
    Reflect.set(target, key, value, receiver);
    if (hasChanged(value, oldValue)) {
      trigger(target, key);
    }
    return true;
  },
};

const hasChanged = (value: any, oldValue: any): boolean => !Object.is(value, oldValue);


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/dep.ts
================================================
import type { ReactiveEffect } from "./effect";

export type Dep = Set<ReactiveEffect>;

export const createDep = (effects?: ReactiveEffect[]): Dep => {
  const dep: Dep = new Set<ReactiveEffect>(effects);
  return dep;
};


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/effect.ts
================================================
import { type Dep, createDep } from "./dep";

type KeyToDepMap = Map<any, Dep>;
const targetMap = new WeakMap<any, KeyToDepMap>();

export let activeEffect: ReactiveEffect | undefined;

export class ReactiveEffect<T = any> {
  constructor(public fn: () => T) {}

  run() {
    let parent: ReactiveEffect | undefined = activeEffect;
    activeEffect = this;
    const res = this.fn();
    activeEffect = parent;
    return res;
  }
}

export function track(target: object, key: unknown) {
  let depsMap = targetMap.get(target);
  if (!depsMap) {
    targetMap.set(target, (depsMap = new Map()));
  }

  let dep = depsMap.get(key);
  if (!dep) {
    depsMap.set(key, (dep = createDep()));
  }

  if (activeEffect) {
    dep.add(activeEffect);
  }
}

export function trigger(target: object, key?: unknown) {
  const depsMap = targetMap.get(target);
  if (!depsMap) return;

  const dep = depsMap.get(key);

  if (dep) {
    const effects = [...dep];
    for (const effect of effects) {
      effect.run();
    }
  }
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/index.ts
================================================
export { reactive } from "./reactive";
export { ReactiveEffect } from "./effect";


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/reactive.ts
================================================
import { mutableHandlers } from "./baseHandler";

export function reactive<T extends object>(target: T): T {
  const proxy = new Proxy(target, mutableHandlers);
  return proxy as T;
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/apiCreateApp.ts
================================================
import { ReactiveEffect } from "../reactivity";
import type { Component } from "./component";
import type { RootRenderFunction } from "./renderer";

export interface App<HostElement = any> {
  mount(rootContainer: HostElement | string): void;
}

export type CreateAppFunction<HostElement> = (rootComponent: Component) => App<HostElement>;

export function createAppAPI<HostElement>(
  render: RootRenderFunction<HostElement>,
): CreateAppFunction<HostElement> {
  return function createApp(rootComponent) {
    const app: App = {
      mount(rootContainer: HostElement) {
        const componentRender = rootComponent.setup!();

        const updateComponent = () => {
          const vnode = componentRender();
          render(vnode, rootContainer);
        };

        const effect = new ReactiveEffect(updateComponent);
        effect.run();
      },
    };

    return app;
  };
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/component.ts
================================================
import type { ComponentOptions } from "./componentOptions";

export type Component = ComponentOptions;


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/componentOptions.ts
================================================
export type ComponentOptions = {
  render?: Function;
  setup?: () => Function;
};


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/h.ts
================================================
import type { VNode, VNodeProps } from "./vnode";

export function h(type: string, props: VNodeProps, children: (VNode | string)[]) {
  return { type, props, children };
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/index.ts
================================================
export type { App, CreateAppFunction } from "./apiCreateApp";
export { createAppAPI } from "./apiCreateApp";

export type { RendererOptions } from "./renderer";
export { createRenderer } from "./renderer";

export { h } from "./h";


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/renderer.ts
================================================
import type { VNode } from "./vnode";

export type RootRenderFunction<HostElement = RendererElement> = (
  vnode: VNode,
  container: HostElement,
) => void;

export interface RendererOptions<HostNode = RendererNode, HostElement = RendererElement> {
  patchProp(el: HostElement, key: string, value: any): void;

  createElement(type: string): HostElement;

  createText(text: string): HostNode;

  setElementText(node: HostNode, text: string): void;

  insert(child: HostNode, parent: HostNode, anchor?: HostNode | null): void;
}

export interface RendererNode {
  [key: string]: any;
}

export interface RendererElement extends RendererNode {}

export function createRenderer(options: RendererOptions) {
  const {
    patchProp: hostPatchProp,
    createElement: hostCreateElement,
    createText: hostCreateText,
    insert: hostInsert,
  } = options;

  function renderVNode(vnode: VNode | string) {
    if (typeof vnode === "string") return hostCreateText(vnode);
    const el = hostCreateElement(vnode.type);

    Object.entries(vnode.props).forEach(([key, value]) => {
      hostPatchProp(el, key, value);
    });

    for (const child of vnode.children) {
      const childEl = renderVNode(child);
      hostInsert(childEl, el);
    }

    return el;
  }

  const render: RootRenderFunction = (vnode, container) => {
    while (container.firstChild) container.removeChild(container.firstChild);
    const el = renderVNode(vnode);
    hostInsert(el, container);
  };

  return { render };
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/vnode.ts
================================================
export interface VNode {
  type: string;
  props: VNodeProps;
  children: (VNode | string)[];
}

export interface VNodeProps {
  [key: string]: any;
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/index.ts
================================================
import { type CreateAppFunction, createAppAPI, createRenderer } from "../runtime-core";
import { nodeOps } from "./nodeOps";
import { patchProp } from "./patchProp";

const { render } = createRenderer({ ...nodeOps, patchProp });
const _createApp = createAppAPI(render);

export const createApp = ((...args) => {
  const app = _createApp(...args);
  const { mount } = app;
  app.mount = (selector: string) => {
    const container = document.querySelector(selector);
    if (!container) return;
    mount(container);
  };

  return app;
}) as CreateAppFunction<Element>;


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/modules/attrs.ts
================================================
export function patchAttr(el: Element, key: string, value: any) {
  if (value == null) {
    el.removeAttribute(key);
  } else {
    el.setAttribute(key, value);
  }
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/modules/events.ts
================================================
interface Invoker extends EventListener {
  value: EventValue;
}

type EventValue = Function;

export function addEventListener(el: Element, event: string, handler: EventListener) {
  el.addEventListener(event, handler);
}

export function removeEventListener(el: Element, event: string, handler: EventListener) {
  el.removeEventListener(event, handler);
}

export function patchEvent(
  el: Element & { _vei?: Record<string, Invoker | undefined> },
  rawName: string,
  value: EventValue | null,
) {
  // vei = vue event invokers
  const invokers = el._vei || (el._vei = {});
  const existingInvoker = invokers[rawName];

  if (value && existingInvoker) {
    // patch
    existingInvoker.value = value;
  } else {
    const name = parseName(rawName);
    if (value) {
      // add
      const invoker = (invokers[rawName] = createInvoker(value));
      addEventListener(el, name, invoker);
    } else if (existingInvoker) {
      // remove
      removeEventListener(el, name, existingInvoker);
      invokers[rawName] = undefined;
    }
  }
}

function parseName(rawName: string): string {
  return rawName.slice(2).toLocaleLowerCase();
}

function createInvoker(initialValue: EventValue) {
  const invoker: Invoker = (e: Event) => {
    invoker.value(e);
  };
  invoker.value = initialValue;
  return invoker;
}


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/nodeOps.ts
================================================
import type { RendererOptions } from "../runtime-core";

export const nodeOps: Omit<RendererOptions<Node, Element>, "patchProp"> = {
  createElement: (tagName) => {
    return document.createElement(tagName);
  },

  createText: (text: string) => {
    return document.createTextNode(text);
  },

  setElementText(node, text) {
    node.textContent = text;
  },

  insert: (child, parent, anchor) => {
    parent.insertBefore(child, anchor || null);
  },
};


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/patchProp.ts
================================================
import type { RendererOptions } from "../runtime-core";
import { patchAttr } from "./modules/attrs";
import { patchEvent } from "./modules/events";

type DOMRendererOptions = RendererOptions<Node, Element>;

const onRE = /^on[^a-z]/;
export const isOn = (key: string) => onRE.test(key);

export const patchProp: DOMRendererOptions["patchProp"] = (el, key, value) => {
  if (isOn(key)) {
    patchEvent(el, key, value);
  } else {
    patchAttr(el, key, value);
  }
};


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/tests/e2e.spec.ts
================================================
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

import { createApp, h, reactive } from "../packages";

let host: HTMLElement;
const initHost = () => {
  host = document.createElement("div");
  host.setAttribute("id", "host");
  document.body.appendChild(host);
};
beforeEach(() => initHost());
afterEach(() => host.remove());

describe("10_minimum_example/030_reactive_system", () => {
  it("should render reactive state", () => {
    const state = reactive({ count: 0 });
    const onClick = vi.fn(() => {
      state.count++;
    });
    const app = createApp({
      setup() {
        return function render() {
          return h("div", { id: "my-app" }, [
            h("p", {}, [`count: ${state.count}`]),
            h("button", { id: "btn", onClick }, ["increment"]),
          ]);
        };
      },
    });
    app.mount("#host");

    expect(host.innerHTML).toBe(
      '<div id="my-app"><p>count: 0</p><button id="btn">increment</button></div>',
    );

    const btn = host.querySelector("#btn") as HTMLButtonElement;
    btn.click();
    expect(onClick).toHaveBeenCalled();
    expect(host.innerHTML).toBe(
      '<div id="my-app"><p>count: 1</p><button id="btn">increment</button></div>',
    );
  });
});


================================================
FILE: book/impls/10_minimum_example/030_reactive_system/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "ESNext"],
    "strict": true,
    "paths": {
      "chibivue": ["./packages"]
    },
    "moduleResolution": "Bundler",
    "allowJs": true,
    "esModuleInterop": true
  },
  "include": ["packages/**/*.ts", "examples/**/**.ts"],
  "exclude": ["node_modules", "dist"]
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/examples/playground/src/main.ts
================================================
import { createApp, h, reactive } from "chibivue";

const app = createApp({
  setup() {
    const state = reactive({ count: 0 });
    const increment = () => state.count++;

    return function render() {
      return h("div", { id: "my-app" }, [
        h("p", {}, [`count: ${state.count}`]),
        h("button", { onClick: increment }, ["increment"]),
      ]);
    };
  },
});

app.mount("#app");


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));

export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/index.ts
================================================
export * from "./runtime-core";
export * from "./runtime-dom";
export * from "./reactivity";


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/baseHandler.ts
================================================
import { track, trigger } from "./effect";
import { reactive } from "./reactive";

export const mutableHandlers: ProxyHandler<object> = {
  get(target: object, key: string | symbol, receiver: object) {
    track(target, key);

    const res = Reflect.get(target, key, receiver);
    if (res !== null && typeof res === "object") {
      return reactive(res);
    }

    return res;
  },

  set(target: object, key: string | symbol, value: unknown, receiver: object) {
    let oldValue = (target as any)[key];
    Reflect.set(target, key, value, receiver);
    if (hasChanged(value, oldValue)) {
      trigger(target, key);
    }
    return true;
  },
};

const hasChanged = (value: any, oldValue: any): boolean => !Object.is(value, oldValue);


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/dep.ts
================================================
import type { ReactiveEffect } from "./effect";

export type Dep = Set<ReactiveEffect>;

export const createDep = (effects?: ReactiveEffect[]): Dep => {
  const dep: Dep = new Set<ReactiveEffect>(effects);
  return dep;
};


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/effect.ts
================================================
import { type Dep, createDep } from "./dep";

type KeyToDepMap = Map<any, Dep>;
const targetMap = new WeakMap<any, KeyToDepMap>();

export let activeEffect: ReactiveEffect | undefined;

export class ReactiveEffect<T = any> {
  constructor(public fn: () => T) {}

  run() {
    let parent: ReactiveEffect | undefined = activeEffect;
    activeEffect = this;
    const res = this.fn();
    activeEffect = parent;
    return res;
  }
}

export function track(target: object, key: unknown) {
  let depsMap = targetMap.get(target);
  if (!depsMap) {
    targetMap.set(target, (depsMap = new Map()));
  }

  let dep = depsMap.get(key);
  if (!dep) {
    depsMap.set(key, (dep = createDep()));
  }

  if (activeEffect) {
    dep.add(activeEffect);
  }
}

export function trigger(target: object, key?: unknown) {
  const depsMap = targetMap.get(target);
  if (!depsMap) return;

  const dep = depsMap.get(key);

  if (dep) {
    const effects = [...dep];
    for (const effect of effects) {
      effect.run();
    }
  }
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/index.ts
================================================
export { reactive } from "./reactive";
export { ReactiveEffect } from "./effect";


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/reactive.ts
================================================
import { mutableHandlers } from "./baseHandler";

export function reactive<T extends object>(target: T): T {
  const proxy = new Proxy(target, mutableHandlers);
  return proxy as T;
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/apiCreateApp.ts
================================================
import type { Component } from "./component";
import type { RootRenderFunction } from "./renderer";

export interface App<HostElement = any> {
  mount(rootContainer: HostElement | string): void;
}

export type CreateAppFunction<HostElement> = (rootComponent: Component) => App<HostElement>;

export function createAppAPI<HostElement>(
  render: RootRenderFunction<HostElement>,
): CreateAppFunction<HostElement> {
  return function createApp(rootComponent) {
    const app: App = {
      mount(rootContainer: HostElement) {
        render(rootComponent, rootContainer);
      },
    };

    return app;
  };
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/component.ts
================================================
import type { ComponentOptions } from "./componentOptions";

export type Component = ComponentOptions;


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/componentOptions.ts
================================================
export type ComponentOptions = {
  render?: Function;
  setup?: () => Function;
};


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/h.ts
================================================
import { type VNode, type VNodeProps, createVNode } from "./vnode";

export function h(type: string, props: VNodeProps, children: (VNode | string)[]) {
  return createVNode(type, props, children);
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/index.ts
================================================
export type { App, CreateAppFunction } from "./apiCreateApp";
export { createAppAPI } from "./apiCreateApp";

export type { RendererOptions } from "./renderer";
export { createRenderer } from "./renderer";

export { h } from "./h";


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/renderer.ts
================================================
import { ReactiveEffect } from "../reactivity";
import type { Component } from "./component";
import { Text, type VNode, normalizeVNode } from "./vnode";

export type RootRenderFunction<HostElement = RendererElement> = (
  vnode: Component,
  container: HostElement,
) => void;

export interface RendererOptions<HostNode = RendererNode, HostElement = RendererElement> {
  patchProp(el: HostElement, key: string, value: any): void;

  createElement(type: string): HostElement;

  createText(text: string): HostNode;

  setText(node: HostNode, text: string): void;

  setElementText(node: HostNode, text: string): void;

  insert(child: HostNode, parent: HostNode, anchor?: HostNode | null): void;
}

export interface RendererNode {
  [key: string]: any;
}

export interface RendererElement extends RendererNode {}

export function createRenderer(options: RendererOptions) {
  const {
    patchProp: hostPatchProp,
    createElement: hostCreateElement,
    createText: hostCreateText,
    setText: hostSetText,
    insert: hostInsert,
  } = options;

  const patch = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    const { type } = n2;
    if (type === Text) {
      processText(n1, n2, container);
    } else {
      processElement(n1, n2, container);
    }
  };

  const processElement = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      mountElement(n2, container);
    } else {
      patchElement(n1, n2);
    }
  };

  const mountElement = (vnode: VNode, container: RendererElement) => {
    let el: RendererElement;
    const { type, props } = vnode;
    el = vnode.el = hostCreateElement(type as string);

    mountChildren(vnode.children as VNode[], el);

    if (props) {
      for (const key in props) {
        hostPatchProp(el, key, props[key]);
      }
    }

    hostInsert(el, container);
  };

  const mountChildren = (children: VNode[], container: RendererElement) => {
    for (let i = 0; i < children.length; i++) {
      const child = (children[i] = normalizeVNode(children[i]));
      patch(null, child, container);
    }
  };

  const patchElement = (n1: VNode, n2: VNode) => {
    const el = (n2.el = n1.el!);

    const props = n2.props;

    patchChildren(n1, n2, el);

    for (const key in props) {
      if (props[key] !== n1.props?.[key]) {
        hostPatchProp(el, key, props[key]);
      }
    }
  };

  const patchChildren = (n1: VNode, n2: VNode, container: RendererElement) => {
    const c1 = n1.children as VNode[];
    const c2 = n2.children as VNode[];

    for (let i = 0; i < c2.length; i++) {
      const child = (c2[i] = normalizeVNode(c2[i]));
      patch(c1[i], child, container);
    }
  };

  const processText = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      hostInsert((n2.el = hostCreateText(n2.children as string)), container);
    } else {
      const el = (n2.el = n1.el!);
      if (n2.children !== n1.children) {
        hostSetText(el, n2.children as string);
      }
    }
  };

  const render: RootRenderFunction = (rootComponent, container) => {
    const componentRender = rootComponent.setup!();

    let n1: VNode | null = null;

    const updateComponent = () => {
      const n2 = componentRender();
      patch(n1, n2, container);
      n1 = n2;
    };

    const effect = new ReactiveEffect(updateComponent);
    effect.run();
  };

  return { render };
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/vnode.ts
================================================
export type VNodeTypes = string | typeof Text;

export const Text = Symbol();

export interface VNode<HostNode = any> {
  type: VNodeTypes;
  props: VNodeProps | null;
  children: VNodeNormalizedChildren;

  el: HostNode | undefined;
}

export interface VNodeProps {
  [key: string]: any;
}

export type VNodeNormalizedChildren = string | VNodeArrayChildren;
export type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;

export type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
type VNodeChildAtom = VNode | string;

export function createVNode(
  type: VNodeTypes,
  props: VNodeProps | null,
  children: VNodeNormalizedChildren,
): VNode {
  const vnode: VNode = { type, props, children: children, el: undefined };
  return vnode;
}

export function normalizeVNode(child: VNodeChild): VNode {
  if (typeof child === "object") {
    return { ...child } as VNode;
  } else {
    return createVNode(Text, null, String(child));
  }
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/index.ts
================================================
import { type CreateAppFunction, createAppAPI, createRenderer } from "../runtime-core";
import { nodeOps } from "./nodeOps";
import { patchProp } from "./patchProp";

const { render } = createRenderer({ ...nodeOps, patchProp });
const _createApp = createAppAPI(render);

export const createApp = ((...args) => {
  const app = _createApp(...args);
  const { mount } = app;
  app.mount = (selector: string) => {
    const container = document.querySelector(selector);
    if (!container) return;
    mount(container);
  };

  return app;
}) as CreateAppFunction<Element>;


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/modules/attrs.ts
================================================
export function patchAttr(el: Element, key: string, value: any) {
  if (value == null) {
    el.removeAttribute(key);
  } else {
    el.setAttribute(key, value);
  }
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/modules/events.ts
================================================
interface Invoker extends EventListener {
  value: EventValue;
}

type EventValue = Function;

export function addEventListener(el: Element, event: string, handler: EventListener) {
  el.addEventListener(event, handler);
}

export function removeEventListener(el: Element, event: string, handler: EventListener) {
  el.removeEventListener(event, handler);
}

export function patchEvent(
  el: Element & { _vei?: Record<string, Invoker | undefined> },
  rawName: string,
  value: EventValue | null,
) {
  // vei = vue event invokers
  const invokers = el._vei || (el._vei = {});
  const existingInvoker = invokers[rawName];

  if (value && existingInvoker) {
    // patch
    existingInvoker.value = value;
  } else {
    const name = parseName(rawName);
    if (value) {
      // add
      const invoker = (invokers[rawName] = createInvoker(value));
      addEventListener(el, name, invoker);
    } else if (existingInvoker) {
      // remove
      removeEventListener(el, name, existingInvoker);
      invokers[rawName] = undefined;
    }
  }
}

function parseName(rawName: string): string {
  return rawName.slice(2).toLocaleLowerCase();
}

function createInvoker(initialValue: EventValue) {
  const invoker: Invoker = (e: Event) => {
    invoker.value(e);
  };
  invoker.value = initialValue;
  return invoker;
}


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/nodeOps.ts
================================================
import type { RendererOptions } from "../runtime-core";

export const nodeOps: Omit<RendererOptions<Node, Element>, "patchProp"> = {
  createElement: (tagName) => {
    return document.createElement(tagName);
  },

  createText: (text) => {
    return document.createTextNode(text);
  },

  setText: (node, text) => {
    node.nodeValue = text;
  },

  setElementText(node, text) {
    node.textContent = text;
  },

  insert: (child, parent, anchor) => {
    parent.insertBefore(child, anchor || null);
  },
};


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/patchProp.ts
================================================
import type { RendererOptions } from "../runtime-core";
import { patchAttr } from "./modules/attrs";
import { patchEvent } from "./modules/events";

type DOMRendererOptions = RendererOptions<Node, Element>;

const onRE = /^on[^a-z]/;
export const isOn = (key: string) => onRE.test(key);

export const patchProp: DOMRendererOptions["patchProp"] = (el, key, value) => {
  if (isOn(key)) {
    patchEvent(el, key, value);
  } else {
    patchAttr(el, key, value);
  }
};


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/tests/e2e.spec.ts
================================================
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

import { createApp, h, reactive } from "../packages";

let host: HTMLElement;
const initHost = () => {
  host = document.createElement("div");
  host.setAttribute("id", "host");
  document.body.appendChild(host);
};
beforeEach(() => initHost());
afterEach(() => host.remove());

describe("10_minimum_example/040_vdom_system", () => {
  it("should render reactive state (vdom patch)", () => {
    const state = reactive({ count: 0 });
    const onClick = vi.fn(() => {
      state.count++;
    });
    const app = createApp({
      setup() {
        return function render() {
          return h("div", { id: "my-app" }, [
            h("p", {}, [`count: ${state.count}`]),
            h("button", { id: "btn", onClick }, ["increment"]),
          ]);
        };
      },
    });
    app.mount("#host");

    expect(host.innerHTML).toBe(
      '<div id="my-app"><p>count: 0</p><button id="btn">increment</button></div>',
    );

    const btn = host.querySelector("#btn") as HTMLButtonElement;
    btn.click();
    expect(onClick).toHaveBeenCalled();
    expect(host.innerHTML).toBe(
      '<div id="my-app"><p>count: 1</p><button id="btn">increment</button></div>',
    );
  });
});


================================================
FILE: book/impls/10_minimum_example/040_vdom_system/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "ESNext"],
    "strict": true,
    "paths": {
      "chibivue": ["./packages"]
    },
    "moduleResolution": "Bundler",
    "allowJs": true,
    "esModuleInterop": true
  },
  "include": ["packages/**/*.ts", "examples/**/**.ts"],
  "exclude": ["node_modules", "dist"]
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/10_minimum_example/050_component_system/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/10_minimum_example/050_component_system/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/examples/playground/src/main.ts
================================================
import { createApp, h, reactive } from "chibivue";

const CounterComponent = {
  setup() {
    const state = reactive({ count: 0 });
    const increment = () => state.count++;

    return () =>
      h("div", {}, [
        h("p", {}, [`count: ${state.count}`]),
        h("button", { onClick: increment }, ["increment"]),
      ]);
  },
};

const app = createApp({
  setup: () => {
    return () =>
      h("div", { id: "my-app" }, [
        h(CounterComponent, {}, []),
        h(CounterComponent, {}, []),
        h(CounterComponent, {}, []),
      ]);
  },
});

app.mount("#app");


================================================
FILE: book/impls/10_minimum_example/050_component_system/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));

export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/10_minimum_example/050_component_system/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/index.ts
================================================
export * from "./runtime-core";
export * from "./runtime-dom";
export * from "./reactivity";


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/baseHandler.ts
================================================
import { track, trigger } from "./effect";
import { reactive } from "./reactive";

export const mutableHandlers: ProxyHandler<object> = {
  get(target: object, key: string | symbol, receiver: object) {
    track(target, key);

    const res = Reflect.get(target, key, receiver);
    if (res !== null && typeof res === "object") {
      return reactive(res);
    }

    return res;
  },

  set(target: object, key: string | symbol, value: unknown, receiver: object) {
    let oldValue = (target as any)[key];
    Reflect.set(target, key, value, receiver);
    if (hasChanged(value, oldValue)) {
      trigger(target, key);
    }
    return true;
  },
};

const hasChanged = (value: any, oldValue: any): boolean => !Object.is(value, oldValue);


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/dep.ts
================================================
import type { ReactiveEffect } from "./effect";

export type Dep = Set<ReactiveEffect>;

export const createDep = (effects?: ReactiveEffect[]): Dep => {
  const dep: Dep = new Set<ReactiveEffect>(effects);
  return dep;
};


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/effect.ts
================================================
import { type Dep, createDep } from "./dep";

type KeyToDepMap = Map<any, Dep>;
const targetMap = new WeakMap<any, KeyToDepMap>();

export let activeEffect: ReactiveEffect | undefined;

export class ReactiveEffect<T = any> {
  constructor(public fn: () => T) {}

  run() {
    let parent: ReactiveEffect | undefined = activeEffect;
    activeEffect = this;
    const res = this.fn();
    activeEffect = parent;
    return res;
  }
}

export function track(target: object, key: unknown) {
  let depsMap = targetMap.get(target);
  if (!depsMap) {
    targetMap.set(target, (depsMap = new Map()));
  }

  let dep = depsMap.get(key);
  if (!dep) {
    depsMap.set(key, (dep = createDep()));
  }

  if (activeEffect) {
    dep.add(activeEffect);
  }
}

export function trigger(target: object, key?: unknown) {
  const depsMap = targetMap.get(target);
  if (!depsMap) return;

  const dep = depsMap.get(key);

  if (dep) {
    const effects = [...dep];
    for (const effect of effects) {
      effect.run();
    }
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/index.ts
================================================
export { reactive } from "./reactive";
export { ReactiveEffect } from "./effect";


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/reactive.ts
================================================
import { mutableHandlers } from "./baseHandler";

export function reactive<T extends object>(target: T): T {
  const proxy = new Proxy(target, mutableHandlers);
  return proxy as T;
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/apiCreateApp.ts
================================================
import type { Component } from "./component";
import type { RootRenderFunction } from "./renderer";

export interface App<HostElement = any> {
  mount(rootContainer: HostElement | string): void;
}

export type CreateAppFunction<HostElement> = (rootComponent: Component) => App<HostElement>;

export function createAppAPI<HostElement>(
  render: RootRenderFunction<HostElement>,
): CreateAppFunction<HostElement> {
  return function createApp(rootComponent) {
    const app: App = {
      mount(rootContainer: HostElement) {
        render(rootComponent, rootContainer);
      },
    };

    return app;
  };
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/component.ts
================================================
import type { ReactiveEffect } from "../reactivity";
import type { ComponentOptions } from "./componentOptions";
import type { VNode, VNodeChild } from "./vnode";

export type Component = ComponentOptions;

export interface ComponentInternalInstance {
  type: Component;
  vnode: VNode;
  subTree: VNode;
  next: VNode | null;
  effect: ReactiveEffect;
  render: InternalRenderFunction;
  update: () => void;
  isMounted: boolean;
}

export type InternalRenderFunction = {
  (): VNodeChild;
};

export function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  const type = vnode.type as Component;

  const instance: ComponentInternalInstance = {
    type,
    vnode,
    next: null,
    effect: null!,
    subTree: null!,
    update: null!,
    render: null!,
    isMounted: false,
  };

  return instance;
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/componentOptions.ts
================================================
export type ComponentOptions = {
  render?: Function;
  setup?: () => Function;
};


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/h.ts
================================================
import { type VNode, type VNodeProps, createVNode } from "./vnode";

export function h(type: string | object, props: VNodeProps, children: (VNode | string)[]) {
  return createVNode(type, props, children);
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/index.ts
================================================
export type { App, CreateAppFunction } from "./apiCreateApp";
export { createAppAPI } from "./apiCreateApp";

export type { RendererOptions } from "./renderer";
export { createRenderer } from "./renderer";

export { h } from "./h";


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/renderer.ts
================================================
import { ReactiveEffect } from "../reactivity";
import {
  type Component,
  type ComponentInternalInstance,
  type InternalRenderFunction,
  createComponentInstance,
} from "./component";
import { Text, type VNode, createVNode, normalizeVNode } from "./vnode";

export type RootRenderFunction<HostElement = RendererElement> = (
  vnode: Component,
  container: HostElement,
) => void;

export interface RendererOptions<HostNode = RendererNode, HostElement = RendererElement> {
  patchProp(el: HostElement, key: string, value: any): void;

  createElement(type: string): HostElement;

  createText(text: string): HostNode;

  setText(node: HostNode, text: string): void;

  setElementText(node: HostNode, text: string): void;

  insert(child: HostNode, parent: HostNode, anchor?: HostNode | null): void;

  parentNode(node: HostNode): HostNode | null;
}

export interface RendererNode {
  [key: string]: any;
}

export interface RendererElement extends RendererNode {}

export function createRenderer(options: RendererOptions) {
  const {
    patchProp: hostPatchProp,
    createElement: hostCreateElement,
    createText: hostCreateText,
    setText: hostSetText,
    insert: hostInsert,
    parentNode: hostParentNode,
  } = options;

  const patch = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    const { type } = n2;
    if (type === Text) {
      processText(n1, n2, container);
    } else if (typeof type === "string") {
      processElement(n1, n2, container);
    } else if (typeof type === "object") {
      processComponent(n1, n2, container);
    } else {
      // do nothing
    }
  };

  const processElement = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      mountElement(n2, container);
    } else {
      patchElement(n1, n2);
    }
  };

  const mountElement = (vnode: VNode, container: RendererElement) => {
    let el: RendererElement;
    const { type, props } = vnode;
    el = vnode.el = hostCreateElement(type as string);

    mountChildren(vnode.children as VNode[], el);

    if (props) {
      for (const key in props) {
        hostPatchProp(el, key, props[key]);
      }
    }

    hostInsert(el, container);
  };

  const mountChildren = (children: VNode[], container: RendererElement) => {
    for (let i = 0; i < children.length; i++) {
      const child = (children[i] = normalizeVNode(children[i]));
      patch(null, child, container);
    }
  };

  const patchElement = (n1: VNode, n2: VNode) => {
    const el = (n2.el = n1.el!);

    const props = n2.props;

    patchChildren(n1, n2, el);

    for (const key in props) {
      if (props[key] !== n1.props?.[key]) {
        hostPatchProp(el, key, props[key]);
      }
    }
  };

  const patchChildren = (n1: VNode, n2: VNode, container: RendererElement) => {
    const c1 = n1.children as VNode[];
    const c2 = n2.children as VNode[];

    for (let i = 0; i < c2.length; i++) {
      const child = (c2[i] = normalizeVNode(c2[i]));
      patch(c1[i], child, container);
    }
  };

  const processText = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      hostInsert((n2.el = hostCreateText(n2.children as string)), container);
    } else {
      const el = (n2.el = n1.el!);
      if (n2.children !== n1.children) {
        hostSetText(el, n2.children as string);
      }
    }
  };

  const processComponent = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      mountComponent(n2, container);
    } else {
      updateComponent(n1, n2);
    }
  };

  const mountComponent = (initialVNode: VNode, container: RendererElement) => {
    const instance: ComponentInternalInstance = (initialVNode.component =
      createComponentInstance(initialVNode));

    const component = initialVNode.type as Component;
    if (component.setup) {
      instance.render = component.setup() as InternalRenderFunction;
    }

    setupRenderEffect(instance, initialVNode, container);
  };

  const setupRenderEffect = (
    instance: ComponentInternalInstance,
    initialVNode: VNode,
    container: RendererElement,
  ) => {
    const componentUpdateFn = () => {
      const { render } = instance;
      if (!instance.isMounted) {
        const subTree = (instance.subTree = normalizeVNode(render()));
        patch(null, subTree, container);
        initialVNode.el = subTree.el;
        instance.isMounted = true;
      } else {
        let { next, vnode } = instance;

        if (next) {
          next.el = vnode.el;
          next.component = instance;
          instance.vnode = next;
          instance.next = null;
        } else {
          next = vnode;
        }

        const prevTree = instance.subTree;
        const nextTree = normalizeVNode(render());
        instance.subTree = nextTree;

        patch(prevTree, nextTree, hostParentNode(prevTree.el!)!);
        next.el = nextTree.el;
      }
    };

    const effect = (instance.effect = new ReactiveEffect(componentUpdateFn));
    const update = (instance.update = () => effect.run());
    update();
  };

  const updateComponent = (n1: VNode, n2: VNode) => {
    const instance = (n2.component = n1.component)!;
    instance.next = n2;
    instance.update();
  };

  const render: RootRenderFunction = (rootComponent, container) => {
    const vnode = createVNode(rootComponent, {}, []);
    patch(null, vnode, container);
  };

  return { render };
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/vnode.ts
================================================
import type { ComponentInternalInstance } from "./component";

export type VNodeTypes = string | typeof Text | object;

export const Text = Symbol();

export interface VNode<HostNode = any> {
  type: VNodeTypes;
  props: VNodeProps | null;
  children: VNodeNormalizedChildren;

  el: HostNode | undefined;

  component: ComponentInternalInstance | null;
}

export interface VNodeProps {
  [key: string]: any;
}

export type VNodeNormalizedChildren = string | VNodeArrayChildren;
export type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;

export type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
type VNodeChildAtom = VNode | string;

export function createVNode(
  type: VNodeTypes,
  props: VNodeProps | null,
  children: VNodeNormalizedChildren,
): VNode {
  const vnode: VNode = {
    type,
    props,
    children: children,
    el: undefined,
    component: null,
  };
  return vnode;
}

export function normalizeVNode(child: VNodeChild): VNode {
  if (typeof child === "object") {
    return { ...child } as VNode;
  } else {
    return createVNode(Text, null, String(child));
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/index.ts
================================================
import { type CreateAppFunction, createAppAPI, createRenderer } from "../runtime-core";
import { nodeOps } from "./nodeOps";
import { patchProp } from "./patchProp";

const { render } = createRenderer({ ...nodeOps, patchProp });
const _createApp = createAppAPI(render);

export const createApp = ((...args) => {
  const app = _createApp(...args);
  const { mount } = app;
  app.mount = (selector: string) => {
    const container = document.querySelector(selector);
    if (!container) return;
    mount(container);
  };

  return app;
}) as CreateAppFunction<Element>;


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/modules/attrs.ts
================================================
export function patchAttr(el: Element, key: string, value: any) {
  if (value == null) {
    el.removeAttribute(key);
  } else {
    el.setAttribute(key, value);
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/modules/events.ts
================================================
interface Invoker extends EventListener {
  value: EventValue;
}

type EventValue = Function;

export function addEventListener(el: Element, event: string, handler: EventListener) {
  el.addEventListener(event, handler);
}

export function removeEventListener(el: Element, event: string, handler: EventListener) {
  el.removeEventListener(event, handler);
}

export function patchEvent(
  el: Element & { _vei?: Record<string, Invoker | undefined> },
  rawName: string,
  value: EventValue | null,
) {
  // vei = vue event invokers
  const invokers = el._vei || (el._vei = {});
  const existingInvoker = invokers[rawName];

  if (value && existingInvoker) {
    // patch
    existingInvoker.value = value;
  } else {
    const name = parseName(rawName);
    if (value) {
      // add
      const invoker = (invokers[rawName] = createInvoker(value));
      addEventListener(el, name, invoker);
    } else if (existingInvoker) {
      // remove
      removeEventListener(el, name, existingInvoker);
      invokers[rawName] = undefined;
    }
  }
}

function parseName(rawName: string): string {
  return rawName.slice(2).toLocaleLowerCase();
}

function createInvoker(initialValue: EventValue) {
  const invoker: Invoker = (e: Event) => {
    invoker.value(e);
  };
  invoker.value = initialValue;
  return invoker;
}


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/nodeOps.ts
================================================
import type { RendererOptions } from "../runtime-core";

export const nodeOps: Omit<RendererOptions<Node, Element>, "patchProp"> = {
  createElement: (tagName) => {
    return document.createElement(tagName);
  },

  createText: (text) => {
    return document.createTextNode(text);
  },

  setText: (node, text) => {
    node.nodeValue = text;
  },

  setElementText(node, text) {
    node.textContent = text;
  },

  insert: (child, parent, anchor) => {
    parent.insertBefore(child, anchor || null);
  },

  parentNode: (node) => {
    return node.parentNode;
  },
};


================================================
FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/patchProp.ts
================================================
import type { RendererOptions } from "../runtime-core";
import { patchAttr } from "./modules/attrs";
import { patchEvent } from "./modules/events";

type DOMRendererOptions = RendererOptions<Node, Element>;

const onRE = /^on[^a-z]/;
export const isOn = (key: string) => onRE.test(key);

export const patchProp: DOMRendererOptions["patchProp"] = (el, key, value) => {
  if (isOn(key)) {
    patchEvent(el, key, value);
  } else {
    patchAttr(el, key, value);
  }
};


================================================
FILE: book/impls/10_minimum_example/050_component_system/tests/e2e.spec.ts
================================================
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

import { createApp, h, reactive } from "../packages";

let host: HTMLElement;
const initHost = () => {
  host = document.createElement("div");
  host.setAttribute("id", "host");
  document.body.appendChild(host);
};
beforeEach(() => initHost());
afterEach(() => host.remove());

describe("10_minimum_example/050_component_system", () => {
  it("should render component", () => {
    const state = reactive({ count: 0 });
    const onClick = vi.fn(() => {
      state.count++;
    });
    const Comp = {
      setup() {
        return () =>
          h("div", {}, [
            h("p", {}, [`count: ${state.count}`]),
            h("button", { id: "btn", onClick }, ["increment"]),
          ]);
      },
    };
    const App = createApp({
      setup: () => {
        return () => h("div", { id: "my-app" }, [h(Comp, {}, [])]);
      },
    });
    App.mount("#host");

    expect(host.innerHTML).toBe(
      // prettier-ignore
      '<div id="my-app">' + 
        '<div>' + 
          '<p>count: 0</p>' + 
          '<button id="btn">increment</button>' + 
        '</div>' + 
      '</div>',
    );

    const btn = host.querySelector("#btn") as HTMLButtonElement;
    btn.click();
    expect(onClick).toHaveBeenCalled();
    expect(host.innerHTML).toBe(
      // prettier-ignore
      '<div id="my-app">' + 
        '<div>' + 
          '<p>count: 1</p>' + 
          '<button id="btn">increment</button>' + 
        '</div>' + 
      '</div>',
    );
  });
});


================================================
FILE: book/impls/10_minimum_example/050_component_system/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "ESNext"],
    "strict": true,
    "paths": {
      "chibivue": ["./packages"]
    },
    "moduleResolution": "Bundler",
    "allowJs": true,
    "esModuleInterop": true
  },
  "include": ["packages/**/*.ts", "examples/**/**.ts"],
  "exclude": ["node_modules", "dist"]
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/examples/playground/.gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?


================================================
FILE: book/impls/10_minimum_example/050_component_system2/examples/playground/index.html
================================================
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>chibivue</title>
  </head>

  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
  </body>
</html>


================================================
FILE: book/impls/10_minimum_example/050_component_system2/examples/playground/package.json
================================================
{
  "name": "playground",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "tsc && vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "typescript": "^5.9.3",
    "vite": "^8.0.0"
  },
  "license": "MIT"
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/examples/playground/src/main.ts
================================================
import { createApp, h, reactive } from "chibivue";

const MyComponent = {
  props: { message: { type: String } },

  setup(props: { message: string }) {
    return () => h("div", { id: "my-app" }, [`message: ${props.message}`]);
  },
};

const app = createApp({
  setup() {
    const state = reactive({ message: "hello" });
    const changeMessage = () => {
      state.message += "!";
    };

    return () =>
      h("div", { id: "my-app" }, [
        h(MyComponent, { message: state.message }, []),
        h("button", { onClick: changeMessage }, ["change message"]),
      ]);
  },
});

app.mount("#app");


================================================
FILE: book/impls/10_minimum_example/050_component_system2/examples/playground/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "module": "ESNext",
    "lib": ["ESNext", "DOM"],
    "moduleResolution": "Bundler",
    "strict": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "esModuleInterop": true,
    "noEmit": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "skipLibCheck": true,
    "paths": {
      "chibivue": ["../../packages"]
    }
  },
  "include": ["src"]
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/examples/playground/vite.config.ts
================================================
import path from "node:path";
import { fileURLToPath } from "node:url";
import { defineConfig } from "vite";

const dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));

export default defineConfig({
  resolve: {
    alias: {
      chibivue: path.resolve(dirname, "../../packages"),
    },
  },
});


================================================
FILE: book/impls/10_minimum_example/050_component_system2/package.json
================================================
{
  "name": "01_project_setup",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "cd examples/playground && pnpm i && pnpm run dev"
  },
  "keywords": [],
  "author": "ubugeeei <ubuge1122@gmail.com>",
  "license": "MIT",
  "devDependencies": {
    "@types/node": "^24.10.9"
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/index.ts
================================================
export * from "./runtime-core";
export * from "./runtime-dom";
export * from "./reactivity";


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/baseHandler.ts
================================================
import { track, trigger } from "./effect";
import { reactive } from "./reactive";

export const mutableHandlers: ProxyHandler<object> = {
  get(target: object, key: string | symbol, receiver: object) {
    track(target, key);

    const res = Reflect.get(target, key, receiver);
    if (res !== null && typeof res === "object") {
      return reactive(res);
    }

    return res;
  },

  set(target: object, key: string | symbol, value: unknown, receiver: object) {
    let oldValue = (target as any)[key];
    Reflect.set(target, key, value, receiver);
    if (hasChanged(value, oldValue)) {
      trigger(target, key);
    }
    return true;
  },
};

const hasChanged = (value: any, oldValue: any): boolean => !Object.is(value, oldValue);


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/dep.ts
================================================
import type { ReactiveEffect } from "./effect";

export type Dep = Set<ReactiveEffect>;

export const createDep = (effects?: ReactiveEffect[]): Dep => {
  const dep: Dep = new Set<ReactiveEffect>(effects);
  return dep;
};


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/effect.ts
================================================
import { type Dep, createDep } from "./dep";

type KeyToDepMap = Map<any, Dep>;
const targetMap = new WeakMap<any, KeyToDepMap>();

export let activeEffect: ReactiveEffect | undefined;

export class ReactiveEffect<T = any> {
  constructor(public fn: () => T) {}

  run() {
    let parent: ReactiveEffect | undefined = activeEffect;
    activeEffect = this;
    const res = this.fn();
    activeEffect = parent;
    return res;
  }
}

export function track(target: object, key: unknown) {
  let depsMap = targetMap.get(target);
  if (!depsMap) {
    targetMap.set(target, (depsMap = new Map()));
  }

  let dep = depsMap.get(key);
  if (!dep) {
    depsMap.set(key, (dep = createDep()));
  }

  if (activeEffect) {
    dep.add(activeEffect);
  }
}

export function trigger(target: object, key?: unknown) {
  const depsMap = targetMap.get(target);
  if (!depsMap) return;

  const dep = depsMap.get(key);

  if (dep) {
    const effects = [...dep];
    for (const effect of effects) {
      effect.run();
    }
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/index.ts
================================================
export { reactive } from "./reactive";
export { ReactiveEffect } from "./effect";


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/reactive.ts
================================================
import { mutableHandlers } from "./baseHandler";

export function reactive<T extends object>(target: T): T {
  const proxy = new Proxy(target, mutableHandlers);
  return proxy as T;
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/apiCreateApp.ts
================================================
import type { Component } from "./component";
import type { RootRenderFunction } from "./renderer";

export interface App<HostElement = any> {
  mount(rootContainer: HostElement | string): void;
}

export type CreateAppFunction<HostElement> = (rootComponent: Component) => App<HostElement>;

export function createAppAPI<HostElement>(
  render: RootRenderFunction<HostElement>,
): CreateAppFunction<HostElement> {
  return function createApp(rootComponent) {
    const app: App = {
      mount(rootContainer: HostElement) {
        render(rootComponent, rootContainer);
      },
    };

    return app;
  };
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/component.ts
================================================
import type { ReactiveEffect } from "../reactivity";
import type { ComponentOptions } from "./componentOptions";
import type { Props } from "./componentProps";
import type { VNode, VNodeChild } from "./vnode";

export type Component = ComponentOptions;

export type Data = Record<string, unknown>;

export interface ComponentInternalInstance {
  type: Component;

  vnode: VNode;
  subTree: VNode;
  next: VNode | null;
  effect: ReactiveEffect;
  render: InternalRenderFunction;
  update: () => void;

  propsOptions: Props;
  props: Data;

  isMounted: boolean;
}

export type InternalRenderFunction = {
  (): VNodeChild;
};

export function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  const type = vnode.type as Component;

  const instance: ComponentInternalInstance = {
    type,

    vnode,
    next: null,
    effect: null!,
    subTree: null!,
    update: null!,
    render: null!,

    propsOptions: type.props || {},
    props: {},

    isMounted: false,
  };

  return instance;
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/componentOptions.ts
================================================
export type ComponentOptions = {
  props?: Record<string, any>;
  setup?: (props: Record<string, any>) => Function;
  render?: Function;
};


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/componentProps.ts
================================================
import { reactive } from "../reactivity";
import type { ComponentInternalInstance, Data } from "./component";

export type Props = Record<string, PropOptions | null>;

export interface PropOptions<T = any> {
  type?: PropType<T> | true | null;
  required?: boolean;
  default?: null | undefined | object;
}

export type PropType<T> = { new (...args: any[]): T & {} };

export function initProps(instance: ComponentInternalInstance, rawProps: Data | null) {
  const props: Data = {};
  setFullProps(instance, rawProps, props);
  instance.props = reactive(props);
}

export function updateProps(instance: ComponentInternalInstance, rawProps: Data | null) {
  const { props } = instance;
  Object.assign(props, rawProps);
}

function setFullProps(instance: ComponentInternalInstance, rawProps: Data | null, props: Data) {
  const options = instance.propsOptions;

  if (rawProps) {
    for (let key in rawProps) {
      const value = rawProps[key];
      if (options && options.hasOwnProperty(key)) {
        props[key] = value;
      }
    }
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/h.ts
================================================
import { type VNode, type VNodeProps, createVNode } from "./vnode";

export function h(type: string | object, props: VNodeProps, children: (VNode | string)[]) {
  return createVNode(type, props, children);
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/index.ts
================================================
export type { App, CreateAppFunction } from "./apiCreateApp";
export { createAppAPI } from "./apiCreateApp";

export type { RendererOptions } from "./renderer";
export { createRenderer } from "./renderer";

export { h } from "./h";


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/renderer.ts
================================================
import { ReactiveEffect } from "../reactivity";
import {
  type Component,
  type ComponentInternalInstance,
  type InternalRenderFunction,
  createComponentInstance,
} from "./component";
import { initProps, updateProps } from "./componentProps";
import { Text, type VNode, createVNode, normalizeVNode } from "./vnode";

export type RootRenderFunction<HostElement = RendererElement> = (
  vnode: Component,
  container: HostElement,
) => void;

export interface RendererOptions<HostNode = RendererNode, HostElement = RendererElement> {
  patchProp(el: HostElement, key: string, value: any): void;

  createElement(type: string): HostElement;

  createText(text: string): HostNode;

  setText(node: HostNode, text: string): void;

  setElementText(node: HostNode, text: string): void;

  insert(child: HostNode, parent: HostNode, anchor?: HostNode | null): void;

  parentNode(node: HostNode): HostNode | null;
}

export interface RendererNode {
  [key: string]: any;
}

export interface RendererElement extends RendererNode {}

export function createRenderer(options: RendererOptions) {
  const {
    patchProp: hostPatchProp,
    createElement: hostCreateElement,
    createText: hostCreateText,
    setText: hostSetText,
    insert: hostInsert,
    parentNode: hostParentNode,
  } = options;

  const patch = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    const { type } = n2;
    if (type === Text) {
      processText(n1, n2, container);
    } else if (typeof type === "string") {
      processElement(n1, n2, container);
    } else if (typeof type === "object") {
      processComponent(n1, n2, container);
    } else {
      // do nothing
    }
  };

  const processElement = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      mountElement(n2, container);
    } else {
      patchElement(n1, n2);
    }
  };

  const mountElement = (vnode: VNode, container: RendererElement) => {
    let el: RendererElement;
    const { type, props } = vnode;
    el = vnode.el = hostCreateElement(type as string);

    mountChildren(vnode.children as VNode[], el);

    if (props) {
      for (const key in props) {
        hostPatchProp(el, key, props[key]);
      }
    }

    hostInsert(el, container);
  };

  const mountChildren = (children: VNode[], container: RendererElement) => {
    for (let i = 0; i < children.length; i++) {
      const child = (children[i] = normalizeVNode(children[i]));
      patch(null, child, container);
    }
  };

  const patchElement = (n1: VNode, n2: VNode) => {
    const el = (n2.el = n1.el!);

    const props = n2.props;

    patchChildren(n1, n2, el);

    for (const key in props) {
      if (props[key] !== n1.props?.[key]) {
        hostPatchProp(el, key, props[key]);
      }
    }
  };

  const patchChildren = (n1: VNode, n2: VNode, container: RendererElement) => {
    const c1 = n1.children as VNode[];
    const c2 = n2.children as VNode[];

    for (let i = 0; i < c2.length; i++) {
      const child = (c2[i] = normalizeVNode(c2[i]));
      patch(c1[i], child, container);
    }
  };

  const processText = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      hostInsert((n2.el = hostCreateText(n2.children as string)), container);
    } else {
      const el = (n2.el = n1.el!);
      if (n2.children !== n1.children) {
        hostSetText(el, n2.children as string);
      }
    }
  };

  const processComponent = (n1: VNode | null, n2: VNode, container: RendererElement) => {
    if (n1 == null) {
      mountComponent(n2, container);
    } else {
      updateComponent(n1, n2);
    }
  };

  const mountComponent = (initialVNode: VNode, container: RendererElement) => {
    const instance: ComponentInternalInstance = (initialVNode.component =
      createComponentInstance(initialVNode));

    const { props } = instance.vnode;
    initProps(instance, props);

    const component = initialVNode.type as Component;
    if (component.setup) {
      instance.render = component.setup(instance.props) as InternalRenderFunction;
    }

    setupRenderEffect(instance, initialVNode, container);
  };

  const setupRenderEffect = (
    instance: ComponentInternalInstance,
    initialVNode: VNode,
    container: RendererElement,
  ) => {
    const componentUpdateFn = () => {
      const { render } = instance;
      if (!instance.isMounted) {
        const subTree = (instance.subTree = normalizeVNode(render()));
        patch(null, subTree, container);
        initialVNode.el = subTree.el;
        instance.isMounted = true;
      } else {
        let { next, vnode } = instance;

        if (next) {
          next.el = vnode.el;
          next.component = instance;
          instance.vnode = next;
          instance.next = null;
          updateProps(instance, next.props);
        } else {
          next = vnode;
        }

        const prevTree = instance.subTree;
        const nextTree = normalizeVNode(render());
        instance.subTree = nextTree;

        patch(prevTree, nextTree, hostParentNode(prevTree.el!)!);
        next.el = nextTree.el;
      }
    };

    const effect = (instance.effect = new ReactiveEffect(componentUpdateFn));
    const update = (instance.update = () => effect.run());
    update();
  };

  const updateComponent = (n1: VNode, n2: VNode) => {
    const instance = (n2.component = n1.component)!;
    instance.next = n2;
    instance.update();
  };

  const render: RootRenderFunction = (rootComponent, container) => {
    const vnode = createVNode(rootComponent, {}, []);
    patch(null, vnode, container);
  };

  return { render };
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/vnode.ts
================================================
import type { ComponentInternalInstance } from "./component";

export type VNodeTypes = string | typeof Text | object;

export const Text = Symbol();

export interface VNode<HostNode = any> {
  type: VNodeTypes;
  props: VNodeProps | null;
  children: VNodeNormalizedChildren;

  el: HostNode | undefined;

  component: ComponentInternalInstance | null;
}

export interface VNodeProps {
  [key: string]: any;
}

export type VNodeNormalizedChildren = string | VNodeArrayChildren;
export type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;

export type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
type VNodeChildAtom = VNode | string;

export function createVNode(
  type: VNodeTypes,
  props: VNodeProps | null,
  children: VNodeNormalizedChildren,
): VNode {
  const vnode: VNode = {
    type,
    props,
    children: children,
    el: undefined,
    component: null,
  };
  return vnode;
}

export function normalizeVNode(child: VNodeChild): VNode {
  if (typeof child === "object") {
    return { ...child } as VNode;
  } else {
    return createVNode(Text, null, String(child));
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/index.ts
================================================
import { type CreateAppFunction, createAppAPI, createRenderer } from "../runtime-core";
import { nodeOps } from "./nodeOps";
import { patchProp } from "./patchProp";

const { render } = createRenderer({ ...nodeOps, patchProp });
const _createApp = createAppAPI(render);

export const createApp = ((...args) => {
  const app = _createApp(...args);
  const { mount } = app;
  app.mount = (selector: string) => {
    const container = document.querySelector(selector);
    if (!container) return;
    mount(container);
  };

  return app;
}) as CreateAppFunction<Element>;


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/modules/attrs.ts
================================================
export function patchAttr(el: Element, key: string, value: any) {
  if (value == null) {
    el.removeAttribute(key);
  } else {
    el.setAttribute(key, value);
  }
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/modules/events.ts
================================================
interface Invoker extends EventListener {
  value: EventValue;
}

type EventValue = Function;

export function addEventListener(el: Element, event: string, handler: EventListener) {
  el.addEventListener(event, handler);
}

export function removeEventListener(el: Element, event: string, handler: EventListener) {
  el.removeEventListener(event, handler);
}

export function patchEvent(
  el: Element & { _vei?: Record<string, Invoker | undefined> },
  rawName: string,
  value: EventValue | null,
) {
  // vei = vue event invokers
  const invokers = el._vei || (el._vei = {});
  const existingInvoker = invokers[rawName];

  if (value && existingInvoker) {
    // patch
    existingInvoker.value = value;
  } else {
    const name = parseName(rawName);
    if (value) {
      // add
      const invoker = (invokers[rawName] = createInvoker(value));
      addEventListener(el, name, invoker);
    } else if (existingInvoker) {
      // remove
      removeEventListener(el, name, existingInvoker);
      invokers[rawName] = undefined;
    }
  }
}

function parseName(rawName: string): string {
  return rawName.slice(2).toLocaleLowerCase();
}

function createInvoker(initialValue: EventValue) {
  const invoker: Invoker = (e: Event) => {
    invoker.value(e);
  };
  invoker.value = initialValue;
  return invoker;
}


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/nodeOps.ts
================================================
import type { RendererOptions } from "../runtime-core";

export const nodeOps: Omit<RendererOptions<Node, Element>, "patchProp"> = {
  createElement: (tagName) => {
    return document.createElement(tagName);
  },

  createText: (text) => {
    return document.createTextNode(text);
  },

  setText: (node, text) => {
    node.nodeValue = text;
  },

  setElementText(node, text) {
    node.textContent = text;
  },

  insert: (child, parent, anchor) => {
    parent.insertBefore(child, anchor || null);
  },

  parentNode: (node) => {
    return node.parentNode;
  },
};


================================================
FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/patchProp.ts
================================================
import type { RendererOptions } from "../runtime-core";
import { patchAttr } from "./modules/attrs";
import { patchEvent } from "./modules/events";

type DOMRendererOptions = RendererOptions<Node, Element>;

const onRE = /^on[^a-z]/;
export const isOn = (key: string) => onRE.test(key);

export const patchProp: DOMRendererOptions["patchProp"] = (el, key, value) => {
  if (isOn(key)) {
    patchEvent(el, key, value);
  } else {
    patchAttr(el, key, value);
  }
};


================================================
FILE: book/impls/10_minimum_example/050_component_system2/tests/e2e.spec.ts
================================================
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

import { createApp, h, reactive } from "../packages";

let host: HTMLElement;
const initHost = () => {
  host = document.createElement("div");
  host.setAttribute("id", "host");
  document.body.appendChild(host);
};
beforeEach(() => initHost());
afterEach(() => host.remove());

describe("10_minimum_example/050_component_system2", () => {
  it("should component props", () => {
    const state = reactive({ count: 0 });
    const onClick = vi.fn(() => {
      state.count++;
    });
    const Comp = {
      props: { count: { type: Number } },
      setup(props: { count: number }) {
        return () => h("div", {}, [`count: ${props.count}`]);
      },
    };

    const App = createApp({
      setup() {
        return () =>
          h("div", { id: "my-app" }, [
            h(Comp, { count: state.count }, []),
            h("button", { id: "btn", onClick }, ["increment"]),
          ]);
      },
    });
    App.mount("#host");

    expect(host.innerHTML).toBe(
      // prettier-ignore
      '<div id="my-app">' + 
        '<div>count: 0</div>' + 
        '<button id="btn">increment</button>' + 
      '</div>',
    );

    const btn = host.querySelector("#btn") as HTMLButtonElement;
    btn.click();
    expect(onClick).toHaveBeenCalled();
    expect(host.innerHTML).toBe(
      // prettier-ignore
      '<div id="my-app">' + 
        '<div>count: 1</div>' + 
        '<button id="btn">increment</button>' + 
      '</div>',
    );
  });
});


================================================
FILE: book/impls/10_minimum_example/050_component_system2/tsconfig.json
================================================
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "lib": ["DOM", "
Download .txt
Showing preview only (337K chars total). Download the full file or copy to clipboard to get everything.
gitextract_gbw6qa65/

├── .github/
│   ├── contributing.md
│   └── workflows/
│       ├── check.yml
│       └── deploy.yml
├── .gitignore
├── .oxlintrc.json
├── .textlintrc.json
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── CODEOWNERS
├── LICENSE
├── README-zh-cn.md
├── README-zh-tw.md
├── README.md
├── book/
│   ├── figures-src/
│   │   ├── README.md
│   │   └── legacy-drawio/
│   │       ├── c1c2map.drawio
│   │       ├── c1c2map_deleted.drawio
│   │       ├── c1c2map_inserted.drawio
│   │       ├── c1c2map_inserted_correct.drawio
│   │       └── reactive_observer.drawio
│   ├── impls/
│   │   ├── 00_introduction/
│   │   │   └── 010_project_setup/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   └── index.ts
│   │   │       └── tsconfig.json
│   │   ├── 10_minimum_example/
│   │   │   ├── 010_create_app/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 015_package_architecture/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── renderer.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── nodeOps.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_simple_h_function/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_reactive_system/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_vdom_system/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_system/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_system2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   └── runtime-dom/
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── modules/
│   │   │   │   │       │   ├── attrs.ts
│   │   │   │   │       │   └── events.ts
│   │   │   │   │       ├── nodeOps.ts
│   │   │   │   │       └── patchProp.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_system3/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_template_compiler/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_template_compiler2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_template_compiler3/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_sfc_compiler/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── plugin-sample/
│   │   │   │   │   ├── .gitignore
│   │   │   │   │   ├── .vscode/
│   │   │   │   │   │   └── extensions.json
│   │   │   │   │   ├── README.md
│   │   │   │   │   ├── index.html
│   │   │   │   │   ├── package.json
│   │   │   │   │   ├── src/
│   │   │   │   │   │   ├── App.vue
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── HelloWorld.vue
│   │   │   │   │   │   ├── main.ts
│   │   │   │   │   │   ├── plugin.sample.js
│   │   │   │   │   │   ├── style.css
│   │   │   │   │   │   └── vite-env.d.ts
│   │   │   │   │   ├── tsconfig.json
│   │   │   │   │   ├── tsconfig.node.json
│   │   │   │   │   └── vite.config.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_sfc_compiler2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_sfc_compiler3/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 070_sfc_compiler4/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   ├── App.vue
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   └── reactive.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   └── events.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       └── index.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 20_basic_virtual_dom/
│   │   │   ├── 010_patch_keyed_children/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       └── index.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_bit_flags/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_scheduler/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_next_tick/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── reactive.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   └── events.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 060_other_props/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   └── reactive.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       └── shapeFlags.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 30_basic_reactivity_system/
│   │   │   ├── 010_ref/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_shallow_ref/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       └── shapeFlags.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_to_ref/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_to_refs/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_computed/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_computed_setter/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 070_watch/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 080_watch_api_extends/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 090_watch_effect/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 100_reactive_proxy_target_type/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 110_template_refs/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 120_proxy_handler_improvement/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 130_cleanup_effects/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 140_effect_scope/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 150_other_apis/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 40_basic_component_system/
│   │   │   ├── 010_lifecycle_hooks/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_provide_inject/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_component_proxy/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_setup_context/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_component_slot/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_slot_extend/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   └── parse.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 070_options_api/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   └── parse.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   └── index.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiDefineComponent.ts
│   │   │       │   │   ├── apiInject.ts
│   │   │       │   │   ├── apiLifecycle.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── componentPublicInstance.ts
│   │   │       │   │   ├── componentSlots.ts
│   │   │       │   │   ├── enums.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   └── patchProp.ts
│   │   │       │   └── shared/
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 50_basic_template_compiler/
│   │   │   ├── 010_transformer/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── transformElement.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_v_bind/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   └── vBind.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 022_transform_expression/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   └── vBind.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 025_v_on/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   └── index.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   └── patchProp.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 027_event_modifier/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 027_event_modifier2/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_fragment/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 035_comment/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_v_if_and_structural_directive/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_v_for/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.js
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 060_resolve_components/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── components/
│   │   │   │   │       │   │   └── Counter.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 080_component_slot_outlet/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Comp.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 085_component_slot_insert/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Comp.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   ├── vOn.ts
│   │   │   │   │   │   │   └── vSlot.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       └── vOn.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 090_other_directives/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 100_chore_compiler/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   ├── App.vue
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── babelUtils.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   ├── runtimeHelpers.ts
│   │   │       │   │   ├── transform.ts
│   │   │       │   │   ├── transforms/
│   │   │       │   │   │   ├── transformElement.ts
│   │   │       │   │   │   ├── transformExpression.ts
│   │   │       │   │   │   ├── transformSlotOutlet.ts
│   │   │       │   │   │   ├── vBind.ts
│   │   │       │   │   │   ├── vFor.ts
│   │   │       │   │   │   ├── vIf.ts
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   └── utils.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parserOptions.ts
│   │   │       │   │   └── transforms/
│   │   │       │   │       ├── vHtml.ts
│   │   │       │   │       ├── vOn.ts
│   │   │       │   │       └── vText.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiDefineComponent.ts
│   │   │       │   │   ├── apiInject.ts
│   │   │       │   │   ├── apiLifecycle.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── componentPublicInstance.ts
│   │   │       │   │   ├── componentRenderContext.ts
│   │   │       │   │   ├── componentSlots.ts
│   │   │       │   │   ├── enums.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── helpers/
│   │   │       │   │   │   ├── renderList.ts
│   │   │       │   │   │   ├── renderSlot.ts
│   │   │       │   │   │   ├── resolveAssets.ts
│   │   │       │   │   │   └── toHandlers.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── directives/
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   ├── patchProp.ts
│   │   │       │   │   └── runtimeHelpers.ts
│   │   │       │   └── shared/
│   │   │       │       ├── domTagConfig.ts
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── makeMap.ts
│   │   │       │       ├── normalizeProp.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 60_basic_sfc_compiler/
│   │   │   ├── .gitkeep
│   │   │   ├── 010_script_setup/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_define_props/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_define_emits/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_scoped_css/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 050_props_destructure/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Child.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileScript.ts
│   │   │   │   │   │   ├── compileSfc.ts
│   │   │   │   │   │   ├── compileStyle.ts
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   └── 060_type_based_macros/
│   │   │       ├── examples/
│   │   │       │   └── playground/
│   │   │       │       ├── .gitignore
│   │   │       │       ├── index.html
│   │   │       │       ├── package.json
│   │   │       │       ├── src/
│   │   │       │       │   ├── App.vue
│   │   │       │       │   ├── Child.vue
│   │   │       │       │   └── main.ts
│   │   │       │       ├── tsconfig.json
│   │   │       │       └── vite.config.ts
│   │   │       ├── package.json
│   │   │       ├── packages/
│   │   │       │   ├── @extensions/
│   │   │       │   │   └── vite-plugin-chibivue/
│   │   │       │   │       └── index.ts
│   │   │       │   ├── compiler-core/
│   │   │       │   │   ├── ast.ts
│   │   │       │   │   ├── babelUtils.ts
│   │   │       │   │   ├── codegen.ts
│   │   │       │   │   ├── compile.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── options.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   ├── runtimeHelpers.ts
│   │   │       │   │   ├── transform.ts
│   │   │       │   │   ├── transforms/
│   │   │       │   │   │   ├── transformElement.ts
│   │   │       │   │   │   ├── transformExpression.ts
│   │   │       │   │   │   ├── transformSlotOutlet.ts
│   │   │       │   │   │   ├── vBind.ts
│   │   │       │   │   │   ├── vFor.ts
│   │   │       │   │   │   ├── vIf.ts
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   └── utils.ts
│   │   │       │   ├── compiler-dom/
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parserOptions.ts
│   │   │       │   │   └── transforms/
│   │   │       │   │       ├── vHtml.ts
│   │   │       │   │       ├── vOn.ts
│   │   │       │   │       └── vText.ts
│   │   │       │   ├── compiler-sfc/
│   │   │       │   │   ├── compileScript.ts
│   │   │       │   │   ├── compileSfc.ts
│   │   │       │   │   ├── compileStyle.ts
│   │   │       │   │   ├── compileTemplate.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── parse.ts
│   │   │       │   │   └── rewriteDefault.ts
│   │   │       │   ├── index.ts
│   │   │       │   ├── reactivity/
│   │   │       │   │   ├── baseHandler.ts
│   │   │       │   │   ├── collectionHandlers.ts
│   │   │       │   │   ├── computed.ts
│   │   │       │   │   ├── dep.ts
│   │   │       │   │   ├── effect.ts
│   │   │       │   │   ├── effectScope.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── reactive.ts
│   │   │       │   │   └── ref.ts
│   │   │       │   ├── runtime-core/
│   │   │       │   │   ├── apiCreateApp.ts
│   │   │       │   │   ├── apiDefineComponent.ts
│   │   │       │   │   ├── apiInject.ts
│   │   │       │   │   ├── apiLifecycle.ts
│   │   │       │   │   ├── apiWatch.ts
│   │   │       │   │   ├── component.ts
│   │   │       │   │   ├── componentEmits.ts
│   │   │       │   │   ├── componentOptions.ts
│   │   │       │   │   ├── componentProps.ts
│   │   │       │   │   ├── componentPublicInstance.ts
│   │   │       │   │   ├── componentRenderContext.ts
│   │   │       │   │   ├── componentSlots.ts
│   │   │       │   │   ├── enums.ts
│   │   │       │   │   ├── h.ts
│   │   │       │   │   ├── helpers/
│   │   │       │   │   │   ├── renderList.ts
│   │   │       │   │   │   ├── renderSlot.ts
│   │   │       │   │   │   ├── resolveAssets.ts
│   │   │       │   │   │   └── toHandlers.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── renderer.ts
│   │   │       │   │   ├── rendererTemplateRef.ts
│   │   │       │   │   ├── scheduler.ts
│   │   │       │   │   └── vnode.ts
│   │   │       │   ├── runtime-dom/
│   │   │       │   │   ├── directives/
│   │   │       │   │   │   └── vOn.ts
│   │   │       │   │   ├── index.ts
│   │   │       │   │   ├── modules/
│   │   │       │   │   │   ├── attrs.ts
│   │   │       │   │   │   ├── class.ts
│   │   │       │   │   │   ├── events.ts
│   │   │       │   │   │   ├── props.ts
│   │   │       │   │   │   └── style.ts
│   │   │       │   │   ├── nodeOps.ts
│   │   │       │   │   ├── patchProp.ts
│   │   │       │   │   └── runtimeHelpers.ts
│   │   │       │   └── shared/
│   │   │       │       ├── domTagConfig.ts
│   │   │       │       ├── general.ts
│   │   │       │       ├── index.ts
│   │   │       │       ├── makeMap.ts
│   │   │       │       ├── normalizeProp.ts
│   │   │       │       ├── shapeFlags.ts
│   │   │       │       └── typeUtils.ts
│   │   │       ├── tests/
│   │   │       │   └── e2e.spec.ts
│   │   │       └── tsconfig.json
│   │   ├── 90_web_application_essentials/
│   │   │   ├── 010_ssr/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── hydration.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   ├── server-renderer/
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── ssrInterpolate.ts
│   │   │   │   │   │   │   ├── ssrRenderAttrs.ts
│   │   │   │   │   │   │   ├── ssrRenderList.ts
│   │   │   │   │   │   │   └── ssrUtils.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── render.ts
│   │   │   │   │   │   └── renderToString.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 020_keep_alive/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   ├── Counter.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── KeepAlive.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   ├── server-renderer/
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── ssrInterpolate.ts
│   │   │   │   │   │   │   ├── ssrRenderAttrs.ts
│   │   │   │   │   │   │   ├── ssrRenderList.ts
│   │   │   │   │   │   │   └── ssrUtils.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── render.ts
│   │   │   │   │   │   └── renderToString.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 030_transition/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.ts
│   │   │   │   │   │   │   ├── vFor.ts
│   │   │   │   │   │   │   ├── vIf.ts
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   └── utils.ts
│   │   │   │   │   ├── compiler-dom/
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parserOptions.ts
│   │   │   │   │   │   └── transforms/
│   │   │   │   │   │       ├── vHtml.ts
│   │   │   │   │   │       ├── vOn.ts
│   │   │   │   │   │       └── vText.ts
│   │   │   │   │   ├── compiler-sfc/
│   │   │   │   │   │   ├── compileTemplate.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   └── rewriteDefault.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── reactivity/
│   │   │   │   │   │   ├── baseHandler.ts
│   │   │   │   │   │   ├── collectionHandlers.ts
│   │   │   │   │   │   ├── computed.ts
│   │   │   │   │   │   ├── dep.ts
│   │   │   │   │   │   ├── effect.ts
│   │   │   │   │   │   ├── effectScope.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── reactive.ts
│   │   │   │   │   │   └── ref.ts
│   │   │   │   │   ├── runtime-core/
│   │   │   │   │   │   ├── apiCreateApp.ts
│   │   │   │   │   │   ├── apiDefineComponent.ts
│   │   │   │   │   │   ├── apiInject.ts
│   │   │   │   │   │   ├── apiLifecycle.ts
│   │   │   │   │   │   ├── apiWatch.ts
│   │   │   │   │   │   ├── component.ts
│   │   │   │   │   │   ├── componentEmits.ts
│   │   │   │   │   │   ├── componentOptions.ts
│   │   │   │   │   │   ├── componentProps.ts
│   │   │   │   │   │   ├── componentPublicInstance.ts
│   │   │   │   │   │   ├── componentRenderContext.ts
│   │   │   │   │   │   ├── componentSlots.ts
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── KeepAlive.ts
│   │   │   │   │   │   ├── enums.ts
│   │   │   │   │   │   ├── h.ts
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── renderList.ts
│   │   │   │   │   │   │   ├── renderSlot.ts
│   │   │   │   │   │   │   ├── resolveAssets.ts
│   │   │   │   │   │   │   └── toHandlers.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── renderer.ts
│   │   │   │   │   │   ├── rendererTemplateRef.ts
│   │   │   │   │   │   ├── scheduler.ts
│   │   │   │   │   │   └── vnode.ts
│   │   │   │   │   ├── runtime-dom/
│   │   │   │   │   │   ├── components/
│   │   │   │   │   │   │   └── Transition.ts
│   │   │   │   │   │   ├── directives/
│   │   │   │   │   │   │   └── vOn.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── modules/
│   │   │   │   │   │   │   ├── attrs.ts
│   │   │   │   │   │   │   ├── class.ts
│   │   │   │   │   │   │   ├── events.ts
│   │   │   │   │   │   │   ├── props.ts
│   │   │   │   │   │   │   └── style.ts
│   │   │   │   │   │   ├── nodeOps.ts
│   │   │   │   │   │   ├── patchProp.ts
│   │   │   │   │   │   └── runtimeHelpers.ts
│   │   │   │   │   ├── server-renderer/
│   │   │   │   │   │   ├── helpers/
│   │   │   │   │   │   │   ├── ssrInterpolate.ts
│   │   │   │   │   │   │   ├── ssrRenderAttrs.ts
│   │   │   │   │   │   │   ├── ssrRenderList.ts
│   │   │   │   │   │   │   └── ssrUtils.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── render.ts
│   │   │   │   │   │   └── renderToString.ts
│   │   │   │   │   └── shared/
│   │   │   │   │       ├── domTagConfig.ts
│   │   │   │   │       ├── general.ts
│   │   │   │   │       ├── index.ts
│   │   │   │   │       ├── makeMap.ts
│   │   │   │   │       ├── normalizeProp.ts
│   │   │   │   │       ├── shapeFlags.ts
│   │   │   │   │       └── typeUtils.ts
│   │   │   │   ├── tests/
│   │   │   │   │   └── e2e.spec.ts
│   │   │   │   └── tsconfig.json
│   │   │   ├── 040_static_hoisting/
│   │   │   │   ├── examples/
│   │   │   │   │   └── playground/
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── index.html
│   │   │   │   │       ├── package.json
│   │   │   │   │       ├── src/
│   │   │   │   │       │   ├── App.vue
│   │   │   │   │       │   └── main.ts
│   │   │   │   │       ├── tsconfig.json
│   │   │   │   │       └── vite.config.ts
│   │   │   │   ├── package.json
│   │   │   │   ├── packages/
│   │   │   │   │   ├── @extensions/
│   │   │   │   │   │   └── vite-plugin-chibivue/
│   │   │   │   │   │       └── index.ts
│   │   │   │   │   ├── compiler-core/
│   │   │   │   │   │   ├── ast.ts
│   │   │   │   │   │   ├── babelUtils.ts
│   │   │   │   │   │   ├── codegen.ts
│   │   │   │   │   │   ├── compile.ts
│   │   │   │   │   │   ├── index.ts
│   │   │   │   │   │   ├── options.ts
│   │   │   │   │   │   ├── parse.ts
│   │   │   │   │   │   ├── runtimeHelpers.ts
│   │   │   │   │   │   ├── transform.ts
│   │   │   │   │   │   ├── transforms/
│   │   │   │   │   │   │   ├── transformElement.ts
│   │   │   │   │   │   │   ├── transformExpression.ts
│   │   │   │   │   │   │   ├── transformSlotOutlet.ts
│   │   │   │   │   │   │   ├── vBind.
Download .txt
Showing preview only (1,758K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (18112 symbols across 3081 files)

FILE: book/impls/10_minimum_example/010_create_app/examples/playground/src/main.ts
  method render (line 4) | render() {

FILE: book/impls/10_minimum_example/010_create_app/packages/index.ts
  type Options (line 1) | type Options = {
  type App (line 5) | type App = {

FILE: book/impls/10_minimum_example/010_create_app/tests/e2e.spec.ts
  method render (line 17) | render() {

FILE: book/impls/10_minimum_example/015_package_architecture/examples/playground/src/main.ts
  method render (line 4) | render() {

FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/component.ts
  type Component (line 3) | type Component = ComponentOptions;

FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 1) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 6) | interface RendererOptions<HostNode = RendererNode> {
  type RendererNode (line 10) | interface RendererNode {
  type RendererElement (line 14) | interface RendererElement extends RendererNode {}
  function createRenderer (line 16) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/015_package_architecture/packages/runtime-dom/nodeOps.ts
  method setElementText (line 4) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/015_package_architecture/tests/e2e.spec.ts
  method render (line 17) | render() {

FILE: book/impls/10_minimum_example/020_simple_h_function/examples/playground/src/main.ts
  method render (line 4) | render() {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/component.ts
  type Component (line 3) | type Component = ComponentOptions;

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string, props: VNodeProps, children: (VNode | string)[]) {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 3) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 8) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 20) | interface RendererNode {
  type RendererElement (line 24) | interface RendererElement extends RendererNode {}
  function createRenderer (line 26) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/vnode.ts
  type VNode (line 1) | interface VNode {
  type VNodeProps (line 7) | interface VNodeProps {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/nodeOps.ts
  method setElementText (line 12) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/020_simple_h_function/tests/e2e.spec.ts
  method render (line 17) | render() {
  method render (line 29) | render() {

FILE: book/impls/10_minimum_example/030_reactive_system/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/apiCreateApp.ts
  type App (line 5) | interface App<HostElement = any> {
  type CreateAppFunction (line 9) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 11) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/component.ts
  type Component (line 3) | type Component = ComponentOptions;

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string, props: VNodeProps, children: (VNode | string)[]) {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 3) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 8) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 20) | interface RendererNode {
  type RendererElement (line 24) | interface RendererElement extends RendererNode {}
  function createRenderer (line 26) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/vnode.ts
  type VNode (line 1) | interface VNode {
  type VNodeProps (line 7) | interface VNodeProps {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/nodeOps.ts
  method setElementText (line 12) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/030_reactive_system/tests/e2e.spec.ts
  method setup (line 21) | setup() {

FILE: book/impls/10_minimum_example/040_vdom_system/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/component.ts
  type Component (line 3) | type Component = ComponentOptions;

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string, props: VNodeProps, children: (VNode | string)[]) {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 5) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 10) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 24) | interface RendererNode {
  type RendererElement (line 28) | interface RendererElement extends RendererNode {}
  function createRenderer (line 30) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/vnode.ts
  type VNodeTypes (line 1) | type VNodeTypes = string | typeof Text;
  type VNode (line 5) | interface VNode<HostNode = any> {
  type VNodeProps (line 13) | interface VNodeProps {
  type VNodeNormalizedChildren (line 17) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 18) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 20) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 21) | type VNodeChildAtom = VNode | string;
  function createVNode (line 23) | function createVNode(
  function normalizeVNode (line 32) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/040_vdom_system/tests/e2e.spec.ts
  method setup (line 21) | setup() {

FILE: book/impls/10_minimum_example/050_component_system/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/050_component_system/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/component.ts
  type Component (line 5) | type Component = ComponentOptions;
  type ComponentInternalInstance (line 7) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 18) | type InternalRenderFunction = {
  function createComponentInstance (line 22) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 10) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 15) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 31) | interface RendererNode {
  type RendererElement (line 35) | interface RendererElement extends RendererNode {}
  function createRenderer (line 37) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/050_component_system/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/050_component_system/tests/e2e.spec.ts
  method setup (line 21) | setup() {

FILE: book/impls/10_minimum_example/050_component_system2/examples/playground/src/main.ts
  method setup (line 6) | setup(props: { message: string }) {
  method setup (line 12) | setup() {

FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/050_component_system2/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/component.ts
  type Component (line 6) | type Component = ComponentOptions;
  type Data (line 8) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 10) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 26) | type InternalRenderFunction = {
  function createComponentInstance (line 30) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/componentProps.ts
  type Props (line 4) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 6) | interface PropOptions<T = any> {
  type PropType (line 12) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 14) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 20) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 25) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/050_component_system2/tests/e2e.spec.ts
  method setup (line 22) | setup(props: { count: number }) {
  method setup (line 28) | setup() {

FILE: book/impls/10_minimum_example/050_component_system3/examples/playground/src/main.ts
  method setup (line 6) | setup(props: any, { emit }: any) {
  method setup (line 16) | setup() {

FILE: book/impls/10_minimum_example/050_component_system3/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/050_component_system3/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/050_component_system3/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/050_component_system3/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 28) | type InternalRenderFunction = {
  function createComponentInstance (line 32) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/050_component_system3/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/050_component_system3/tests/e2e.spec.ts
  method setup (line 22) | setup(props: { count: number }, { emit }: any) {
  method setup (line 32) | setup() {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 7) | interface Node {
  type ElementNode (line 12) | interface ElementNode extends Node {
  type TextNode (line 20) | interface TextNode extends Node {
  type TemplateChildNode (line 25) | type TemplateChildNode = ElementNode | TextNode;
  type AttributeNode (line 27) | interface AttributeNode extends Node {
  type SourceLocation (line 33) | interface SourceLocation {
  type Position (line 39) | interface Position {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/compiler-core/compile.ts
  function baseCompile (line 4) | function baseCompile(template: string) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/060_template_compiler/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/060_template_compiler/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 28) | type InternalRenderFunction = {
  function createComponentInstance (line 32) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 76) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 79) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/060_template_compiler/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 7) | interface Node {
  type ElementNode (line 12) | interface ElementNode extends Node {
  type TextNode (line 20) | interface TextNode extends Node {
  type TemplateChildNode (line 25) | type TemplateChildNode = ElementNode | TextNode;
  type AttributeNode (line 27) | interface AttributeNode extends Node {
  type SourceLocation (line 33) | interface SourceLocation {
  type Position (line 39) | interface Position {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/compiler-core/compile.ts
  function baseCompile (line 4) | function baseCompile(template: string) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/compiler-core/parse.ts
  type ParserContext (line 11) | interface ParserContext {
  function createParserContext (line 21) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 37) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 59) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 65) | function advancePositionWithMutation(
  function isEnd (line 87) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 101) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 105) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 112) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseText (line 124) | function parseText(context: ParserContext): TextNode {
  type TagType (line 144) | const enum TagType {
  function parseElement (line 149) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 172) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 200) | function parseAttributes(context: ParserContext, type: TagType): Attribu...
  type AttributeValue (line 219) | type AttributeValue =
  function parseAttribute (line 226) | function parseAttribute(context: ParserContext, nameSet: Set<string>): A...
  function parseAttributeValue (line 260) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 289) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 295) | function getCursor(context: ParserContext): Position {
  function getSelection (line 300) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 309) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 313) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 28) | type InternalRenderFunction = {
  function createComponentInstance (line 32) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 76) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 79) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/060_template_compiler2/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/060_template_compiler3/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/compiler-core/compile.ts
  function baseCompile (line 4) | function baseCompile(template: string) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 29) | type InternalRenderFunction = {
  function createComponentInstance (line 33) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 86) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 89) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/060_template_compiler3/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/060_template_compiler3/tests/e2e.spec.ts
  method setup (line 18) | setup() {

FILE: book/impls/10_minimum_example/070_sfc_compiler/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/compiler-core/compile.ts
  function baseCompile (line 4) | function baseCompile(template: string) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 29) | type InternalRenderFunction = {
  function createComponentInstance (line 33) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 86) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 89) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/070_sfc_compiler/plugin-sample/src/plugin.sample.js
  function fizzbuzz (line 1) | function fizzbuzz(n) {

FILE: book/impls/10_minimum_example/070_sfc_compiler/plugin-sample/vite.config.ts
  function myPlugin (line 9) | function myPlugin(): Plugin {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 5) | function vitePluginChibivue(): Plugin {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/compiler-core/compile.ts
  function baseCompile (line 4) | function baseCompile(template: string) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string) {
  function parse (line 7) | function parse(template: string) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 29) | type InternalRenderFunction = {
  function createComponentInstance (line 33) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 86) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 89) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/070_sfc_compiler2/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 6) | function vitePluginChibivue(): Plugin {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 29) | type InternalRenderFunction = {
  function createComponentInstance (line 33) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 86) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 89) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/070_sfc_compiler3/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 29) | type InternalRenderFunction = {
  function createComponentInstance (line 33) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 91) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 94) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 32) | interface RendererNode {
  type RendererElement (line 36) | interface RendererElement extends RendererNode {}
  function createRenderer (line 38) | function createRenderer(options: RendererOptions) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 17) | interface VNodeProps {
  type VNodeNormalizedChildren (line 21) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 22) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 24) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 25) | type VNodeChildAtom = VNode | string;
  function createVNode (line 27) | function createVNode(
  function normalizeVNode (line 42) | function normalizeVNode(child: VNodeChild): VNode {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/10_minimum_example/070_sfc_compiler4/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/reactivity/baseHandler.ts
  method get (line 5) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 16) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 29) | type InternalRenderFunction = {
  function createComponentInstance (line 33) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 91) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 94) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 11) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 16) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 34) | interface RendererNode {
  type RendererElement (line 38) | interface RendererElement extends RendererNode {}
  function createRenderer (line 40) | function createRenderer(options: RendererOptions) {
  function getSequence (line 351) | function getSequence(arr: number[]): number[] {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-core/vnode.ts
  type VNodeTypes (line 3) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 7) | interface VNode<HostNode = any> {
  type VNodeProps (line 18) | interface VNodeProps {
  type VNodeNormalizedChildren (line 22) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 23) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 25) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 26) | type VNodeChildAtom = VNode | string;
  function createVNode (line 28) | function createVNode(
  function normalizeVNode (line 44) | function normalizeVNode(child: VNodeChild): VNode {
  function isSameVNodeType (line 52) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/20_basic_virtual_dom/010_patch_keyed_children/tests/e2e.spec.ts
  method setup (line 18) | setup() {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/reactivity/baseHandler.ts
  method get (line 6) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 17) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  class ReactiveEffect (line 8) | class ReactiveEffect<T = any> {
    method constructor (line 9) | constructor(public fn: () => T) {}
    method run (line 11) | run() {
  function track (line 20) | function track(target: object, key: unknown) {
  function trigger (line 36) | function trigger(target: object, key?: unknown) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 29) | type InternalRenderFunction = {
  function createComponentInstance (line 33) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 91) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 94) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 12) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 17) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 35) | interface RendererNode {
  type RendererElement (line 39) | interface RendererElement extends RendererNode {}
  function createRenderer (line 41) | function createRenderer(options: RendererOptions) {
  function getSequence (line 378) | function getSequence(arr: number[]): number[] {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-core/vnode.ts
  type VNodeTypes (line 5) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 9) | interface VNode<HostNode = any> {
  type VNodeProps (line 21) | interface VNodeProps {
  type VNodeNormalizedChildren (line 25) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 26) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 28) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 29) | type VNodeChildAtom = VNode | string;
  function createVNode (line 31) | function createVNode(
  function normalizeVNode (line 51) | function normalizeVNode(child: VNodeChild): VNode {
  function normalizeChildren (line 59) | function normalizeChildren(vnode: VNode, children: unknown) {
  function isSameVNodeType (line 73) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/packages/shared/shapeFlags.ts
  type ShapeFlags (line 1) | const enum ShapeFlags {

FILE: book/impls/20_basic_virtual_dom/020_bit_flags/tests/e2e.spec.ts
  method setup (line 18) | setup() {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/reactivity/baseHandler.ts
  method get (line 6) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 17) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  type EffectScheduler (line 8) | type EffectScheduler = (...args: any[]) => any;
  class ReactiveEffect (line 10) | class ReactiveEffect<T = any> {
    method constructor (line 11) | constructor(
    method run (line 16) | run() {
  function track (line 25) | function track(target: object, key: unknown) {
  function trigger (line 41) | function trigger(target: object, key?: unknown) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 30) | type InternalRenderFunction = {
  function createComponentInstance (line 35) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 94) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 97) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 13) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 18) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 36) | interface RendererNode {
  type RendererElement (line 40) | interface RendererElement extends RendererNode {}
  function createRenderer (line 42) | function createRenderer(options: RendererOptions) {
  function getSequence (line 382) | function getSequence(arr: number[]): number[] {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/scheduler.ts
  type SchedulerJob (line 1) | interface SchedulerJob extends Function {
  function queueJob (line 14) | function queueJob(job: SchedulerJob) {
  function queueFlush (line 25) | function queueFlush() {
  function findInsertionIndex (line 42) | function findInsertionIndex(id: number) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-core/vnode.ts
  type VNodeTypes (line 5) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 9) | interface VNode<HostNode = any> {
  type VNodeProps (line 21) | interface VNodeProps {
  type VNodeNormalizedChildren (line 25) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 26) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 28) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 29) | type VNodeChildAtom = VNode | string;
  function createVNode (line 31) | function createVNode(
  function normalizeVNode (line 51) | function normalizeVNode(child: VNodeChild): VNode {
  function normalizeChildren (line 59) | function normalizeChildren(vnode: VNode, children: unknown) {
  function isSameVNodeType (line 73) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/20_basic_virtual_dom/040_scheduler/packages/shared/shapeFlags.ts
  type ShapeFlags (line 1) | const enum ShapeFlags {

FILE: book/impls/20_basic_virtual_dom/040_scheduler/tests/e2e.spec.ts
  method setup (line 18) | setup() {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/reactivity/baseHandler.ts
  method get (line 6) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 17) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  type EffectScheduler (line 8) | type EffectScheduler = (...args: any[]) => any;
  class ReactiveEffect (line 10) | class ReactiveEffect<T = any> {
    method constructor (line 11) | constructor(
    method run (line 16) | run() {
  function track (line 25) | function track(target: object, key: unknown) {
  function trigger (line 41) | function trigger(target: object, key?: unknown) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 30) | type InternalRenderFunction = {
  function createComponentInstance (line 35) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 94) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 97) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 13) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 18) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 36) | interface RendererNode {
  type RendererElement (line 40) | interface RendererElement extends RendererNode {}
  function createRenderer (line 42) | function createRenderer(options: RendererOptions) {
  function getSequence (line 382) | function getSequence(arr: number[]): number[] {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/scheduler.ts
  type SchedulerJob (line 1) | interface SchedulerJob extends Function {
  function nextTick (line 15) | function nextTick<T = void>(this: T, fn?: (this: T) => void): Promise<vo...
  function queueJob (line 20) | function queueJob(job: SchedulerJob) {
  function queueFlush (line 31) | function queueFlush() {
  function findInsertionIndex (line 49) | function findInsertionIndex(id: number) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-core/vnode.ts
  type VNodeTypes (line 5) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 9) | interface VNode<HostNode = any> {
  type VNodeProps (line 21) | interface VNodeProps {
  type VNodeNormalizedChildren (line 25) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 26) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 28) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 29) | type VNodeChildAtom = VNode | string;
  function createVNode (line 31) | function createVNode(
  function normalizeVNode (line 51) | function normalizeVNode(child: VNodeChild): VNode {
  function normalizeChildren (line 59) | function normalizeChildren(vnode: VNode, children: unknown) {
  function isSameVNodeType (line 72) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 5) | type DOMRendererOptions = RendererOptions<Node, Element>;

FILE: book/impls/20_basic_virtual_dom/050_next_tick/packages/shared/shapeFlags.ts
  type ShapeFlags (line 1) | const enum ShapeFlags {

FILE: book/impls/20_basic_virtual_dom/050_next_tick/tests/e2e.spec.ts
  method setup (line 18) | setup() {

FILE: book/impls/20_basic_virtual_dom/060_other_props/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/reactivity/baseHandler.ts
  method get (line 6) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 17) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/reactivity/effect.ts
  type KeyToDepMap (line 3) | type KeyToDepMap = Map<any, Dep>;
  type EffectScheduler (line 8) | type EffectScheduler = (...args: any[]) => any;
  class ReactiveEffect (line 10) | class ReactiveEffect<T = any> {
    method constructor (line 11) | constructor(
    method run (line 16) | run() {
  function track (line 25) | function track(target: object, key: unknown) {
  function trigger (line 41) | function trigger(target: object, key?: unknown) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/reactivity/reactive.ts
  function reactive (line 3) | function reactive<T extends object>(target: T): T {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 30) | type InternalRenderFunction = {
  function createComponentInstance (line 35) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 94) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 97) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 13) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 18) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 43) | interface RendererNode {
  type RendererElement (line 47) | interface RendererElement extends RendererNode {}
  function createRenderer (line 49) | function createRenderer(options: RendererOptions) {
  function getSequence (line 397) | function getSequence(arr: number[]): number[] {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/scheduler.ts
  type SchedulerJob (line 1) | interface SchedulerJob extends Function {
  function nextTick (line 15) | function nextTick<T = void>(this: T, fn?: (this: T) => void): Promise<vo...
  function queueJob (line 20) | function queueJob(job: SchedulerJob) {
  function queueFlush (line 31) | function queueFlush() {
  function findInsertionIndex (line 49) | function findInsertionIndex(id: number) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-core/vnode.ts
  type VNodeTypes (line 5) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 9) | interface VNode<HostNode = any> {
  type VNodeProps (line 21) | interface VNodeProps {
  type VNodeNormalizedChildren (line 25) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 26) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 28) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 29) | type VNodeChildAtom = VNode | string;
  function createVNode (line 31) | function createVNode(
  function normalizeVNode (line 51) | function normalizeVNode(child: VNodeChild): VNode {
  function normalizeChildren (line 59) | function normalizeChildren(vnode: VNode, children: unknown) {
  function isSameVNodeType (line 73) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-dom/modules/class.ts
  function patchClass (line 1) | function patchClass(el: Element, value: string | null) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-dom/modules/props.ts
  function patchDOMProp (line 1) | function patchDOMProp(

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-dom/modules/style.ts
  type Style (line 3) | type Style = string | Record<string, string | string[]> | null;
  function patchStyle (line 5) | function patchStyle(el: Element, prev: Style, next: Style) {
  function setStyle (line 30) | function setStyle(style: CSSStyleDeclaration, name: string, val: string ...

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 7) | type DOMRendererOptions = RendererOptions<Node, Element>;
  function shouldSetAsProp (line 31) | function shouldSetAsProp(el: Element, key: string) {

FILE: book/impls/20_basic_virtual_dom/060_other_props/packages/shared/shapeFlags.ts
  type ShapeFlags (line 1) | const enum ShapeFlags {

FILE: book/impls/20_basic_virtual_dom/060_other_props/tests/e2e.spec.ts
  method setup (line 19) | setup() {
  method setup (line 36) | setup() {
  method setup (line 54) | setup() {
  method setup (line 67) | setup() {
  method setup (line 81) | setup() {
  method setup (line 100) | setup() {
  method setup (line 118) | setup() {
  method setup (line 133) | setup() {
  method setup (line 151) | setup() {
  method setup (line 165) | setup() {
  method setup (line 182) | setup() {
  method setup (line 198) | setup() {
  method setup (line 210) | setup() {
  method setup (line 224) | setup() {
  method setup (line 236) | setup() {
  method setup (line 249) | setup() {
  method setup (line 266) | setup() {
  method setup (line 282) | setup() {
  method setup (line 297) | setup() {
  method setup (line 313) | setup() {
  method setup (line 335) | setup() {
  method setup (line 354) | setup() {

FILE: book/impls/30_basic_reactivity_system/010_ref/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/reactivity/baseHandler.ts
  method get (line 6) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 17) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/reactivity/effect.ts
  type KeyToDepMap (line 4) | type KeyToDepMap = Map<any, Dep>;
  type EffectScheduler (line 9) | type EffectScheduler = (...args: any[]) => any;
  class ReactiveEffect (line 11) | class ReactiveEffect<T = any> {
    method constructor (line 12) | constructor(
    method run (line 17) | run() {
  function track (line 26) | function track(target: object, key: unknown) {
  function trackEffects (line 40) | function trackEffects(dep: Dep) {
  function trigger (line 46) | function trigger(target: object, key?: unknown) {
  function triggerEffects (line 58) | function triggerEffects(dep: Dep | ReactiveEffect[]) {
  function triggerEffect (line 65) | function triggerEffect(effect: ReactiveEffect) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/reactivity/reactive.ts
  function reactive (line 4) | function reactive<T extends object>(target: T): T {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/reactivity/ref.ts
  type RefBase (line 7) | type RefBase<T> = {
  type Ref (line 12) | interface Ref<T = any> {
  function trackRefValue (line 17) | function trackRefValue(ref: RefBase<any>) {
  function triggerRefValue (line 21) | function triggerRefValue(ref: RefBase<any>) {
  function isRef (line 26) | function isRef(r: any): r is Ref {
  function ref (line 32) | function ref(value?: unknown) {
  function createRef (line 36) | function createRef(rawValue: unknown) {
  class RefImpl (line 43) | class RefImpl<T> {
    method constructor (line 48) | constructor(value: T) {
    method value (line 52) | get value() {
    method value (line 57) | set value(newVal) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 30) | type InternalRenderFunction = {
  function createComponentInstance (line 35) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 94) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 97) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 13) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 18) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 43) | interface RendererNode {
  type RendererElement (line 47) | interface RendererElement extends RendererNode {}
  function createRenderer (line 49) | function createRenderer(options: RendererOptions) {
  function getSequence (line 396) | function getSequence(arr: number[]): number[] {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/scheduler.ts
  type SchedulerJob (line 1) | interface SchedulerJob extends Function {
  function nextTick (line 15) | function nextTick<T = void>(this: T, fn?: (this: T) => void): Promise<vo...
  function queueJob (line 20) | function queueJob(job: SchedulerJob) {
  function queueFlush (line 31) | function queueFlush() {
  function findInsertionIndex (line 49) | function findInsertionIndex(id: number) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-core/vnode.ts
  type VNodeTypes (line 5) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 9) | interface VNode<HostNode = any> {
  type VNodeProps (line 21) | interface VNodeProps {
  type VNodeNormalizedChildren (line 25) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 26) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 28) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 29) | type VNodeChildAtom = VNode | string;
  function createVNode (line 31) | function createVNode(
  function normalizeVNode (line 51) | function normalizeVNode(child: VNodeChild): VNode {
  function normalizeChildren (line 59) | function normalizeChildren(vnode: VNode, children: unknown) {
  function isSameVNodeType (line 73) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-dom/modules/class.ts
  function patchClass (line 1) | function patchClass(el: Element, value: string | null) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-dom/modules/props.ts
  function patchDOMProp (line 1) | function patchDOMProp(

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-dom/modules/style.ts
  type Style (line 3) | type Style = string | Record<string, string | string[]> | null;
  function patchStyle (line 5) | function patchStyle(el: Element, prev: Style, next: Style) {
  function setStyle (line 30) | function setStyle(style: CSSStyleDeclaration, name: string, val: string ...

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 7) | type DOMRendererOptions = RendererOptions<Node, Element>;
  function shouldSetAsProp (line 31) | function shouldSetAsProp(el: Element, key: string) {

FILE: book/impls/30_basic_reactivity_system/010_ref/packages/shared/shapeFlags.ts
  type ShapeFlags (line 1) | const enum ShapeFlags {

FILE: book/impls/30_basic_reactivity_system/010_ref/tests/e2e.spec.ts
  method setup (line 18) | setup() {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/reactivity/baseHandler.ts
  method get (line 6) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 17) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/reactivity/effect.ts
  type KeyToDepMap (line 4) | type KeyToDepMap = Map<any, Dep>;
  type EffectScheduler (line 9) | type EffectScheduler = (...args: any[]) => any;
  class ReactiveEffect (line 11) | class ReactiveEffect<T = any> {
    method constructor (line 12) | constructor(
    method run (line 17) | run() {
  function track (line 26) | function track(target: object, key: unknown) {
  function trackEffects (line 40) | function trackEffects(dep: Dep) {
  function trigger (line 46) | function trigger(target: object, key?: unknown) {
  function triggerEffects (line 58) | function triggerEffects(dep: Dep | ReactiveEffect[]) {
  function triggerEffect (line 65) | function triggerEffect(effect: ReactiveEffect) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/reactivity/reactive.ts
  function reactive (line 4) | function reactive<T extends object>(target: T): T {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/reactivity/ref.ts
  type RefBase (line 7) | type RefBase<T> = {
  type Ref (line 12) | interface Ref<T = any> {
  function trackRefValue (line 17) | function trackRefValue(ref: RefBase<any>) {
  function triggerRefValue (line 21) | function triggerRefValue(ref: RefBase<any>) {
  function isRef (line 26) | function isRef(r: any): r is Ref {
  function ref (line 37) | function ref(value?: unknown) {
  type ShallowRef (line 47) | type ShallowRef<T = any> = Ref<T> & { [ShallowRefMarker]?: true };
  function shallowRef (line 52) | function shallowRef(value?: unknown) {
  function createRef (line 61) | function createRef(rawValue: unknown, shallow: boolean) {
  class RefImpl (line 68) | class RefImpl<T> {
    method constructor (line 73) | constructor(
    method value (line 80) | get value() {
    method value (line 85) | set value(newVal) {
  function triggerRef (line 91) | function triggerRef(ref: Ref) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 30) | type InternalRenderFunction = {
  function createComponentInstance (line 35) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 94) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 97) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 13) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 18) | interface RendererOptions<HostNode = RendererNode, HostElement = Rendere...
  type RendererNode (line 43) | interface RendererNode {
  type RendererElement (line 47) | interface RendererElement extends RendererNode {}
  function createRenderer (line 49) | function createRenderer(options: RendererOptions) {
  function getSequence (line 397) | function getSequence(arr: number[]): number[] {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/scheduler.ts
  type SchedulerJob (line 1) | interface SchedulerJob extends Function {
  function nextTick (line 15) | function nextTick<T = void>(this: T, fn?: (this: T) => void): Promise<vo...
  function queueJob (line 20) | function queueJob(job: SchedulerJob) {
  function queueFlush (line 31) | function queueFlush() {
  function findInsertionIndex (line 49) | function findInsertionIndex(id: number) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-core/vnode.ts
  type VNodeTypes (line 5) | type VNodeTypes = string | typeof Text | object;
  type VNode (line 9) | interface VNode<HostNode = any> {
  type VNodeProps (line 21) | interface VNodeProps {
  type VNodeNormalizedChildren (line 25) | type VNodeNormalizedChildren = string | VNodeArrayChildren;
  type VNodeArrayChildren (line 26) | type VNodeArrayChildren = Array<VNodeArrayChildren | VNodeChildAtom>;
  type VNodeChild (line 28) | type VNodeChild = VNodeChildAtom | VNodeArrayChildren;
  type VNodeChildAtom (line 29) | type VNodeChildAtom = VNode | string;
  function createVNode (line 31) | function createVNode(
  function normalizeVNode (line 51) | function normalizeVNode(child: VNodeChild): VNode {
  function normalizeChildren (line 59) | function normalizeChildren(vnode: VNode, children: unknown) {
  function isSameVNodeType (line 73) | function isSameVNodeType(n1: VNode, n2: VNode): boolean {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-dom/modules/attrs.ts
  function patchAttr (line 1) | function patchAttr(el: Element, key: string, value: any) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-dom/modules/class.ts
  function patchClass (line 1) | function patchClass(el: Element, value: string | null) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-dom/modules/events.ts
  type Invoker (line 1) | interface Invoker extends EventListener {
  type EventValue (line 5) | type EventValue = Function;
  function addEventListener (line 7) | function addEventListener(el: Element, event: string, handler: EventList...
  function removeEventListener (line 11) | function removeEventListener(el: Element, event: string, handler: EventL...
  function patchEvent (line 15) | function patchEvent(
  function parseName (line 41) | function parseName(rawName: string): string {
  function createInvoker (line 45) | function createInvoker(initialValue: EventValue) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-dom/modules/props.ts
  function patchDOMProp (line 1) | function patchDOMProp(

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-dom/modules/style.ts
  type Style (line 3) | type Style = string | Record<string, string | string[]> | null;
  function patchStyle (line 5) | function patchStyle(el: Element, prev: Style, next: Style) {
  function setStyle (line 30) | function setStyle(style: CSSStyleDeclaration, name: string, val: string ...

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-dom/nodeOps.ts
  method setElementText (line 16) | setElementText(node, text) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/runtime-dom/patchProp.ts
  type DOMRendererOptions (line 7) | type DOMRendererOptions = RendererOptions<Node, Element>;
  function shouldSetAsProp (line 31) | function shouldSetAsProp(el: Element, key: string) {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/packages/shared/shapeFlags.ts
  type ShapeFlags (line 1) | const enum ShapeFlags {

FILE: book/impls/30_basic_reactivity_system/020_shallow_ref/tests/e2e.spec.ts
  method setup (line 18) | setup() {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/examples/playground/src/main.ts
  method setup (line 4) | setup() {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/@extensions/vite-plugin-chibivue/index.ts
  function vitePluginChibivue (line 7) | function vitePluginChibivue(): Plugin {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-core/ast.ts
  type NodeTypes (line 1) | const enum NodeTypes {
  type Node (line 10) | interface Node {
  type ElementNode (line 15) | interface ElementNode extends Node {
  type TextNode (line 23) | interface TextNode extends Node {
  type TemplateChildNode (line 28) | type TemplateChildNode = ElementNode | TextNode | InterpolationNode;
  type AttributeNode (line 30) | interface AttributeNode extends Node {
  type DirectiveNode (line 36) | interface DirectiveNode extends Node {
  type SourceLocation (line 43) | interface SourceLocation {
  type Position (line 49) | interface Position {
  type InterpolationNode (line 55) | interface InterpolationNode extends Node {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-core/compile.ts
  function baseCompile (line 5) | function baseCompile(template: string, option: Required<CompilerOptions>) {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-core/options.ts
  type CompilerOptions (line 1) | type CompilerOptions = {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-core/parse.ts
  type ParserContext (line 13) | interface ParserContext {
  function createParserContext (line 23) | function createParserContext(content: string): ParserContext {
  function parseChildren (line 39) | function parseChildren(context: ParserContext, ancestors: ElementNode[])...
  function advanceBy (line 63) | function advanceBy(context: ParserContext, numberOfCharacters: number): ...
  function advancePositionWithMutation (line 69) | function advancePositionWithMutation(
  function isEnd (line 91) | function isEnd(context: ParserContext, ancestors: ElementNode[]): boolean {
  function startsWith (line 105) | function startsWith(source: string, searchString: string): boolean {
  function advanceSpaces (line 109) | function advanceSpaces(context: ParserContext): void {
  function pushNode (line 116) | function pushNode(nodes: TemplateChildNode[], node: TemplateChildNode): ...
  function parseInterpolation (line 127) | function parseInterpolation(context: ParserContext): InterpolationNode |...
  function parseText (line 159) | function parseText(context: ParserContext): TextNode {
  type TagType (line 181) | const enum TagType {
  function parseElement (line 186) | function parseElement(context: ParserContext, ancestors: ElementNode[]):...
  function parseTag (line 209) | function parseTag(context: ParserContext, type: TagType): ElementNode {
  function parseAttributes (line 237) | function parseAttributes(context: ParserContext, type: TagType): (Attrib...
  type AttributeValue (line 256) | type AttributeValue =
  function parseAttribute (line 263) | function parseAttribute(
  function parseAttributeValue (line 318) | function parseAttributeValue(context: ParserContext): AttributeValue {
  function parseTextData (line 347) | function parseTextData(context: ParserContext, length: number): string {
  function getCursor (line 353) | function getCursor(context: ParserContext): Position {
  function getSelection (line 358) | function getSelection(context: ParserContext, start: Position, end?: Pos...
  function last (line 367) | function last<T>(xs: T[]): T | undefined {
  function startsWithEndTagOpen (line 371) | function startsWithEndTagOpen(source: string, tag: string): boolean {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-dom/index.ts
  function compile (line 3) | function compile(template: string, option?: CompilerOptions) {
  function parse (line 9) | function parse(template: string) {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-sfc/compileTemplate.ts
  type TemplateCompiler (line 3) | interface TemplateCompiler {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-sfc/parse.ts
  type SFCDescriptor (line 5) | interface SFCDescriptor {
  type SFCBlock (line 14) | interface SFCBlock {
  type SFCTemplateBlock (line 20) | interface SFCTemplateBlock extends SFCBlock {
  type SFCScriptBlock (line 24) | interface SFCScriptBlock extends SFCBlock {
  type SFCStyleBlock (line 28) | interface SFCStyleBlock extends SFCBlock {
  type SFCParseOptions (line 32) | interface SFCParseOptions {
  type SFCParseResult (line 38) | interface SFCParseResult {
  constant DEFAULT_FILENAME (line 42) | const DEFAULT_FILENAME = "anonymous.vue";
  function parse (line 44) | function parse(
  function createBlock (line 84) | function createBlock(node: ElementNode, source: string): SFCBlock {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/compiler-sfc/rewriteDefault.ts
  function rewriteDefault (line 7) | function rewriteDefault(input: string, as: string): string {
  function hasDefaultExport (line 64) | function hasDefaultExport(input: string): boolean {
  function specifierEnd (line 68) | function specifierEnd(input: string, end: number, nodeEnd: number | null) {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/index.ts
  function compileToFunction (line 8) | function compileToFunction(template: string): InternalRenderFunction {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/reactivity/baseHandler.ts
  method get (line 6) | get(target: object, key: string | symbol, receiver: object) {
  method set (line 17) | set(target: object, key: string | symbol, value: unknown, receiver: obje...

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/reactivity/dep.ts
  type Dep (line 3) | type Dep = Set<ReactiveEffect>;

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/reactivity/effect.ts
  type KeyToDepMap (line 4) | type KeyToDepMap = Map<any, Dep>;
  type EffectScheduler (line 9) | type EffectScheduler = (...args: any[]) => any;
  class ReactiveEffect (line 11) | class ReactiveEffect<T = any> {
    method constructor (line 12) | constructor(
    method run (line 17) | run() {
  function track (line 26) | function track(target: object, key: unknown) {
  function trackEffects (line 40) | function trackEffects(dep: Dep) {
  function trigger (line 46) | function trigger(target: object, key?: unknown) {
  function triggerEffects (line 58) | function triggerEffects(dep: Dep | ReactiveEffect[]) {
  function triggerEffect (line 65) | function triggerEffect(effect: ReactiveEffect) {
  function getDepFromReactive (line 73) | function getDepFromReactive(object: any, key: string | number | symbol) {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/reactivity/reactive.ts
  function reactive (line 4) | function reactive<T extends object>(target: T): T {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/reactivity/ref.ts
  type RefBase (line 8) | type RefBase<T> = {
  type Ref (line 13) | interface Ref<T = any> {
  function trackRefValue (line 18) | function trackRefValue(ref: RefBase<any>) {
  function triggerRefValue (line 22) | function triggerRefValue(ref: RefBase<any>) {
  function isRef (line 27) | function isRef(r: any): r is Ref {
  function ref (line 38) | function ref(value?: unknown) {
  type ShallowRef (line 48) | type ShallowRef<T = any> = Ref<T> & { [ShallowRefMarker]?: true };
  function shallowRef (line 53) | function shallowRef(value?: unknown) {
  function createRef (line 62) | function createRef(rawValue: unknown, shallow: boolean) {
  class RefImpl (line 69) | class RefImpl<T> {
    method constructor (line 74) | constructor(
    method value (line 81) | get value() {
    method value (line 86) | set value(newVal) {
  function triggerRef (line 92) | function triggerRef(ref: Ref) {
  type ToRef (line 96) | type ToRef<T> = IfAny<T, Ref<T>, [T] extends [Ref] ? T : Ref<T>>;
  function toRef (line 103) | function toRef(source: Record<string, any>, key?: string, defaultValue?:...
  function propertyToRef (line 107) | function propertyToRef(source: Record<string, any>, key: string, default...
  class ObjectRefImpl (line 111) | class ObjectRefImpl<T extends object, K extends keyof T> {
    method constructor (line 114) | constructor(
    method value (line 120) | get value() {
    method value (line 125) | set value(newVal) {
    method dep (line 129) | get dep(): Dep | undefined {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/runtime-core/apiCreateApp.ts
  type App (line 4) | interface App<HostElement = any> {
  type CreateAppFunction (line 8) | type CreateAppFunction<HostElement> = (rootComponent: Component) => App<...
  function createAppAPI (line 10) | function createAppAPI<HostElement>(

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/runtime-core/component.ts
  type Component (line 7) | type Component = ComponentOptions;
  type Data (line 9) | type Data = Record<string, unknown>;
  type ComponentInternalInstance (line 11) | interface ComponentInternalInstance {
  type InternalRenderFunction (line 30) | type InternalRenderFunction = {
  function createComponentInstance (line 35) | function createComponentInstance(vnode: VNode): ComponentInternalInstance {
  type CompileFunction (line 94) | type CompileFunction = (template: string) => InternalRenderFunction;
  function registerRuntimeCompiler (line 97) | function registerRuntimeCompiler(_compile: any) {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/runtime-core/componentEmits.ts
  function emit (line 4) | function emit(instance: ComponentInternalInstance, event: string, ...raw...

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/runtime-core/componentOptions.ts
  type ComponentOptions (line 1) | type ComponentOptions = {

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/runtime-core/componentProps.ts
  type Props (line 5) | type Props = Record<string, PropOptions | null>;
  type PropOptions (line 7) | interface PropOptions<T = any> {
  type PropType (line 13) | type PropType<T> = { new (...args: any[]): T & {} };
  function initProps (line 15) | function initProps(instance: ComponentInternalInstance, rawProps: Data |...
  function updateProps (line 21) | function updateProps(instance: ComponentInternalInstance, rawProps: Data...
  function setFullProps (line 28) | function setFullProps(instance: ComponentInternalInstance, rawProps: Dat...

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/runtime-core/h.ts
  function h (line 3) | function h(type: string | object, props: VNodeProps, children: (VNode | ...

FILE: book/impls/30_basic_reactivity_system/030_to_ref/packages/runtime-core/renderer.ts
  type RootRenderFunction (line 13) | type RootRenderFunction<HostElement = RendererElement> = (
  type RendererOptions (line 18) | interface RendererOptions<HostNode = RendererNode, 
Copy disabled (too large) Download .json
Condensed preview — 4744 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (12,371K chars).
[
  {
    "path": ".github/contributing.md",
    "chars": 6887,
    "preview": "# Contributing to chibivue\n\nAre you looking at this page now because you're interested in contributing to chibivue? If s"
  },
  {
    "path": ".github/workflows/check.yml",
    "chars": 1353,
    "preview": "name: ci\n\non:\n  push:\n    branches:\n      - '**'\n\npermissions:\n  contents: read\n\njobs:\n  check:\n    runs-on: ubuntu-late"
  },
  {
    "path": ".github/workflows/deploy.yml",
    "chars": 1848,
    "preview": "name: Deploy chibivue Book to Pages\n\non:\n  push:\n    branches: [main]\n\n  workflow_dispatch:\n\npermissions:\n  contents: re"
  },
  {
    "path": ".gitignore",
    "chars": 261,
    "preview": "node_modules\ndist\nexamples/playground\nexamples/vuejs-core\n.env\ntools/translator/ja2en/input.md\ntools/translator/ja2en/ou"
  },
  {
    "path": ".oxlintrc.json",
    "chars": 593,
    "preview": "{\n  \"$schema\": \"https://raw.githubusercontent.com/oxc-project/oxlint/main/npm/oxlint/configuration_schema.json\",\n  \"igno"
  },
  {
    "path": ".textlintrc.json",
    "chars": 171,
    "preview": "{\n  \"rules\": {\n    \"ja-space-between-half-and-full-width\": {\n      \"space\": \"always\"\n    },\n    \"prh\": {\n      \"rulePath"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 52,
    "preview": "{\n  \"recommendations\": [\n    \"oxc.oxc-vscode\"\n  ]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 925,
    "preview": "{\n  \"cSpell.words\": [\n    \"antfu\",\n    \"augmentor\",\n    \"chainsi\",\n    \"chibi\",\n    \"chibivue\",\n    \"citty\",\n    \"consol"
  },
  {
    "path": "CODEOWNERS",
    "chars": 199,
    "preview": "* @ubugeeei\n\n/book/online-book/src/zh-cn @resetsix\n/book/online-book/src/zh-tw @resetsix\n/book/online-book/.vitepress/co"
  },
  {
    "path": "LICENSE",
    "chars": 1073,
    "preview": "MIT License\n\nCopyright (c) 2023-present ubugeeei\n\nPermission is hereby granted, free of charge, to any person obtaining "
  },
  {
    "path": "README-zh-cn.md",
    "chars": 2014,
    "preview": "<p align=\"center\">\n  <img src=\"./book/online-book/src/public/og.png\" width=\"480\">\n</p>\n\n<h1 align=\"center\">chibivue</h1>"
  },
  {
    "path": "README-zh-tw.md",
    "chars": 2016,
    "preview": "<p align=\"center\">\n  <img src=\"./book/online-book/src/public/og.png\" width=\"480\">\n</p>\n\n<h1 align=\"center\">chibivue</h1>"
  },
  {
    "path": "README.md",
    "chars": 2432,
    "preview": "<p align=\"center\">\n  <img src=\"./book/online-book/src/public/og.png\" width=\"480\">\n</p>\n\n<h1 align=\"center\">chibivue</h1>"
  },
  {
    "path": "book/figures-src/README.md",
    "chars": 1069,
    "preview": "# Book figure assets\n\nThe online book serves figure assets from `book/online-book/src/public/figures`.\n\nUse paths that m"
  },
  {
    "path": "book/figures-src/legacy-drawio/c1c2map.drawio",
    "chars": 10778,
    "preview": "<mxfile host=\"65bd71144e\">\n    <diagram id=\"b-V9glVyOOTkLKbPg4Gc\" name=\"ページ1\">\n        <mxGraphModel dx=\"1515\" dy=\"590\" "
  },
  {
    "path": "book/figures-src/legacy-drawio/c1c2map_deleted.drawio",
    "chars": 13118,
    "preview": "<mxfile host=\"65bd71144e\">\n    <diagram id=\"b-V9glVyOOTkLKbPg4Gc\" name=\"ページ1\">\n        <mxGraphModel dx=\"1515\" dy=\"590\" "
  },
  {
    "path": "book/figures-src/legacy-drawio/c1c2map_inserted.drawio",
    "chars": 12385,
    "preview": "<mxfile host=\"65bd71144e\">\n    <diagram id=\"b-V9glVyOOTkLKbPg4Gc\" name=\"ページ1\">\n        <mxGraphModel dx=\"1595\" dy=\"621\" "
  },
  {
    "path": "book/figures-src/legacy-drawio/c1c2map_inserted_correct.drawio",
    "chars": 12407,
    "preview": "<mxfile host=\"65bd71144e\">\n    <diagram id=\"b-V9glVyOOTkLKbPg4Gc\" name=\"ページ1\">\n        <mxGraphModel dx=\"1515\" dy=\"590\" "
  },
  {
    "path": "book/figures-src/legacy-drawio/reactive_observer.drawio",
    "chars": 10523,
    "preview": "<mxfile host=\"65bd71144e\">\n    <diagram id=\"vGUKsrpaSU9UvXaOGbhk\" name=\"ページ1\">\n        <mxGraphModel dx=\"3242\" dy=\"2104\""
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/examples/playground/src/main.ts",
    "chars": 19,
    "preview": "import \"chibivue\";\n"
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/packages/index.ts",
    "chars": 32,
    "preview": "console.log(\"Hello chibivue!\");\n"
  },
  {
    "path": "book/impls/00_introduction/010_project_setup/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/examples/playground/src/main.ts",
    "chars": 132,
    "preview": "import { createApp } from \"chibivue\";\n\nconst app = createApp({\n  render() {\n    return \"Hello world.\";\n  },\n});\n\napp.mou"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/examples/playground/vite.config.ts",
    "chars": 310,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/packages/index.ts",
    "chars": 342,
    "preview": "export type Options = {\n  render: () => string;\n};\n\nexport type App = {\n  mount: (selector: string) => void;\n};\n\nexport "
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/tests/e2e.spec.ts",
    "chars": 608,
    "preview": "import { afterEach, beforeEach, describe, expect, it } from \"vitest\";\n\nimport { createApp } from \"../packages\";\n\nlet hos"
  },
  {
    "path": "book/impls/10_minimum_example/010_create_app/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/examples/playground/src/main.ts",
    "chars": 132,
    "preview": "import { createApp } from \"chibivue\";\n\nconst app = createApp({\n  render() {\n    return \"Hello world.\";\n  },\n});\n\napp.mou"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/index.ts",
    "chars": 31,
    "preview": "export * from \"./runtime-dom\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/apiCreateApp.ts",
    "chars": 653,
    "preview": "import type { Component } from \"./component\";\nimport type { RootRenderFunction } from \"./renderer\";\n\nexport interface Ap"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/component.ts",
    "chars": 103,
    "preview": "import type { ComponentOptions } from \"./componentOptions\";\n\nexport type Component = ComponentOptions;\n"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/componentOptions.ts",
    "chars": 57,
    "preview": "export type ComponentOptions = {\n  render?: Function;\n};\n"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/index.ts",
    "chars": 206,
    "preview": "export type { App, CreateAppFunction } from \"./apiCreateApp\";\nexport { createAppAPI } from \"./apiCreateApp\";\n\nexport typ"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/runtime-core/renderer.ts",
    "chars": 609,
    "preview": "export type RootRenderFunction<HostElement = RendererElement> = (\n  message: string,\n  container: HostElement,\n) => void"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/runtime-dom/index.ts",
    "chars": 511,
    "preview": "import { type CreateAppFunction, createAppAPI, createRenderer } from \"../runtime-core\";\nimport { nodeOps } from \"./nodeO"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/packages/runtime-dom/nodeOps.ts",
    "chars": 173,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\n\nexport const nodeOps: RendererOptions<Node> = {\n  setElementTex"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/tests/e2e.spec.ts",
    "chars": 618,
    "preview": "import { afterEach, beforeEach, describe, expect, it } from \"vitest\";\n\nimport { createApp } from \"../packages\";\n\nlet hos"
  },
  {
    "path": "book/impls/10_minimum_example/015_package_architecture/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/examples/playground/src/main.ts",
    "chars": 383,
    "preview": "import { createApp, h } from \"chibivue\";\n\nconst app = createApp({\n  render() {\n    return h(\"div\", { id: \"my-app\" }, [\n "
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/index.ts",
    "chars": 63,
    "preview": "export * from \"./runtime-core\";\nexport * from \"./runtime-dom\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/apiCreateApp.ts",
    "chars": 649,
    "preview": "import type { Component } from \"./component\";\nimport type { RootRenderFunction } from \"./renderer\";\n\nexport interface Ap"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/component.ts",
    "chars": 103,
    "preview": "import type { ComponentOptions } from \"./componentOptions\";\n\nexport type Component = ComponentOptions;\n"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/componentOptions.ts",
    "chars": 57,
    "preview": "export type ComponentOptions = {\n  render?: Function;\n};\n"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/h.ts",
    "chars": 172,
    "preview": "import type { VNode, VNodeProps } from \"./vnode\";\n\nexport function h(type: string, props: VNodeProps, children: (VNode |"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/index.ts",
    "chars": 232,
    "preview": "export type { App, CreateAppFunction } from \"./apiCreateApp\";\nexport { createAppAPI } from \"./apiCreateApp\";\n\nexport typ"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/renderer.ts",
    "chars": 1419,
    "preview": "import type { VNode } from \"./vnode\";\n\nexport type RootRenderFunction<HostElement = RendererElement> = (\n  vnode: VNode,"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-core/vnode.ts",
    "chars": 151,
    "preview": "export interface VNode {\n  type: string;\n  props: VNodeProps;\n  children: (VNode | string)[];\n}\n\nexport interface VNodeP"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/index.ts",
    "chars": 570,
    "preview": "import { type CreateAppFunction, createAppAPI, createRenderer } from \"../runtime-core\";\nimport { nodeOps } from \"./nodeO"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/modules/attrs.ts",
    "chars": 168,
    "preview": "export function patchAttr(el: Element, key: string, value: any) {\n  if (value == null) {\n    el.removeAttribute(key);\n  "
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/modules/events.ts",
    "chars": 1316,
    "preview": "interface Invoker extends EventListener {\n  value: EventValue;\n}\n\ntype EventValue = Function;\n\nexport function addEventL"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/nodeOps.ts",
    "chars": 458,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\n\nexport const nodeOps: Omit<RendererOptions<Node, Element>, \"pat"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/packages/runtime-dom/patchProp.ts",
    "chars": 468,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\nimport { patchAttr } from \"./modules/attrs\";\nimport { patchEvent"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/tests/e2e.spec.ts",
    "chars": 1056,
    "preview": "import { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { createApp, h } from \"../packages\";\n\n"
  },
  {
    "path": "book/impls/10_minimum_example/020_simple_h_function/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/examples/playground/src/main.ts",
    "chars": 400,
    "preview": "import { createApp, h, reactive } from \"chibivue\";\n\nconst app = createApp({\n  setup() {\n    const state = reactive({ cou"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/index.ts",
    "chars": 93,
    "preview": "export * from \"./runtime-core\";\nexport * from \"./runtime-dom\";\nexport * from \"./reactivity\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/reactivity/baseHandler.ts",
    "chars": 742,
    "preview": "import { track, trigger } from \"./effect\";\nimport { reactive } from \"./reactive\";\n\nexport const mutableHandlers: ProxyHa"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/reactivity/dep.ts",
    "chars": 223,
    "preview": "import type { ReactiveEffect } from \"./effect\";\n\nexport type Dep = Set<ReactiveEffect>;\n\nexport const createDep = (effec"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/reactivity/effect.ts",
    "chars": 1015,
    "preview": "import { type Dep, createDep } from \"./dep\";\n\ntype KeyToDepMap = Map<any, Dep>;\nconst targetMap = new WeakMap<any, KeyTo"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/reactivity/index.ts",
    "chars": 82,
    "preview": "export { reactive } from \"./reactive\";\nexport { ReactiveEffect } from \"./effect\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/reactivity/reactive.ts",
    "chars": 184,
    "preview": "import { mutableHandlers } from \"./baseHandler\";\n\nexport function reactive<T extends object>(target: T): T {\n  const pro"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/apiCreateApp.ts",
    "chars": 886,
    "preview": "import { ReactiveEffect } from \"../reactivity\";\nimport type { Component } from \"./component\";\nimport type { RootRenderFu"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/component.ts",
    "chars": 103,
    "preview": "import type { ComponentOptions } from \"./componentOptions\";\n\nexport type Component = ComponentOptions;\n"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/componentOptions.ts",
    "chars": 83,
    "preview": "export type ComponentOptions = {\n  render?: Function;\n  setup?: () => Function;\n};\n"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/h.ts",
    "chars": 172,
    "preview": "import type { VNode, VNodeProps } from \"./vnode\";\n\nexport function h(type: string, props: VNodeProps, children: (VNode |"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/index.ts",
    "chars": 232,
    "preview": "export type { App, CreateAppFunction } from \"./apiCreateApp\";\nexport { createAppAPI } from \"./apiCreateApp\";\n\nexport typ"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/renderer.ts",
    "chars": 1497,
    "preview": "import type { VNode } from \"./vnode\";\n\nexport type RootRenderFunction<HostElement = RendererElement> = (\n  vnode: VNode,"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-core/vnode.ts",
    "chars": 151,
    "preview": "export interface VNode {\n  type: string;\n  props: VNodeProps;\n  children: (VNode | string)[];\n}\n\nexport interface VNodeP"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/index.ts",
    "chars": 570,
    "preview": "import { type CreateAppFunction, createAppAPI, createRenderer } from \"../runtime-core\";\nimport { nodeOps } from \"./nodeO"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/modules/attrs.ts",
    "chars": 168,
    "preview": "export function patchAttr(el: Element, key: string, value: any) {\n  if (value == null) {\n    el.removeAttribute(key);\n  "
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/modules/events.ts",
    "chars": 1316,
    "preview": "interface Invoker extends EventListener {\n  value: EventValue;\n}\n\ntype EventValue = Function;\n\nexport function addEventL"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/nodeOps.ts",
    "chars": 458,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\n\nexport const nodeOps: Omit<RendererOptions<Node, Element>, \"pat"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/packages/runtime-dom/patchProp.ts",
    "chars": 468,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\nimport { patchAttr } from \"./modules/attrs\";\nimport { patchEvent"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/tests/e2e.spec.ts",
    "chars": 1249,
    "preview": "import { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { createApp, h, reactive } from \"../pa"
  },
  {
    "path": "book/impls/10_minimum_example/030_reactive_system/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/examples/playground/src/main.ts",
    "chars": 400,
    "preview": "import { createApp, h, reactive } from \"chibivue\";\n\nconst app = createApp({\n  setup() {\n    const state = reactive({ cou"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/index.ts",
    "chars": 93,
    "preview": "export * from \"./runtime-core\";\nexport * from \"./runtime-dom\";\nexport * from \"./reactivity\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/reactivity/baseHandler.ts",
    "chars": 742,
    "preview": "import { track, trigger } from \"./effect\";\nimport { reactive } from \"./reactive\";\n\nexport const mutableHandlers: ProxyHa"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/reactivity/dep.ts",
    "chars": 223,
    "preview": "import type { ReactiveEffect } from \"./effect\";\n\nexport type Dep = Set<ReactiveEffect>;\n\nexport const createDep = (effec"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/reactivity/effect.ts",
    "chars": 1015,
    "preview": "import { type Dep, createDep } from \"./dep\";\n\ntype KeyToDepMap = Map<any, Dep>;\nconst targetMap = new WeakMap<any, KeyTo"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/reactivity/index.ts",
    "chars": 82,
    "preview": "export { reactive } from \"./reactive\";\nexport { ReactiveEffect } from \"./effect\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/reactivity/reactive.ts",
    "chars": 184,
    "preview": "import { mutableHandlers } from \"./baseHandler\";\n\nexport function reactive<T extends object>(target: T): T {\n  const pro"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/apiCreateApp.ts",
    "chars": 610,
    "preview": "import type { Component } from \"./component\";\nimport type { RootRenderFunction } from \"./renderer\";\n\nexport interface Ap"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/component.ts",
    "chars": 103,
    "preview": "import type { ComponentOptions } from \"./componentOptions\";\n\nexport type Component = ComponentOptions;\n"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/componentOptions.ts",
    "chars": 83,
    "preview": "export type ComponentOptions = {\n  render?: Function;\n  setup?: () => Function;\n};\n"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/h.ts",
    "chars": 199,
    "preview": "import { type VNode, type VNodeProps, createVNode } from \"./vnode\";\n\nexport function h(type: string, props: VNodeProps, "
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/index.ts",
    "chars": 232,
    "preview": "export type { App, CreateAppFunction } from \"./apiCreateApp\";\nexport { createAppAPI } from \"./apiCreateApp\";\n\nexport typ"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/renderer.ts",
    "chars": 3424,
    "preview": "import { ReactiveEffect } from \"../reactivity\";\nimport type { Component } from \"./component\";\nimport { Text, type VNode,"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-core/vnode.ts",
    "chars": 953,
    "preview": "export type VNodeTypes = string | typeof Text;\n\nexport const Text = Symbol();\n\nexport interface VNode<HostNode = any> {\n"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/index.ts",
    "chars": 570,
    "preview": "import { type CreateAppFunction, createAppAPI, createRenderer } from \"../runtime-core\";\nimport { nodeOps } from \"./nodeO"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/modules/attrs.ts",
    "chars": 168,
    "preview": "export function patchAttr(el: Element, key: string, value: any) {\n  if (value == null) {\n    el.removeAttribute(key);\n  "
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/modules/events.ts",
    "chars": 1316,
    "preview": "interface Invoker extends EventListener {\n  value: EventValue;\n}\n\ntype EventValue = Function;\n\nexport function addEventL"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/nodeOps.ts",
    "chars": 512,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\n\nexport const nodeOps: Omit<RendererOptions<Node, Element>, \"pat"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/packages/runtime-dom/patchProp.ts",
    "chars": 468,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\nimport { patchAttr } from \"./modules/attrs\";\nimport { patchEvent"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/tests/e2e.spec.ts",
    "chars": 1258,
    "preview": "import { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { createApp, h, reactive } from \"../pa"
  },
  {
    "path": "book/impls/10_minimum_example/040_vdom_system/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/examples/playground/src/main.ts",
    "chars": 584,
    "preview": "import { createApp, h, reactive } from \"chibivue\";\n\nconst CounterComponent = {\n  setup() {\n    const state = reactive({ "
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/index.ts",
    "chars": 93,
    "preview": "export * from \"./runtime-core\";\nexport * from \"./runtime-dom\";\nexport * from \"./reactivity\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/reactivity/baseHandler.ts",
    "chars": 742,
    "preview": "import { track, trigger } from \"./effect\";\nimport { reactive } from \"./reactive\";\n\nexport const mutableHandlers: ProxyHa"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/reactivity/dep.ts",
    "chars": 223,
    "preview": "import type { ReactiveEffect } from \"./effect\";\n\nexport type Dep = Set<ReactiveEffect>;\n\nexport const createDep = (effec"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/reactivity/effect.ts",
    "chars": 1015,
    "preview": "import { type Dep, createDep } from \"./dep\";\n\ntype KeyToDepMap = Map<any, Dep>;\nconst targetMap = new WeakMap<any, KeyTo"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/reactivity/index.ts",
    "chars": 82,
    "preview": "export { reactive } from \"./reactive\";\nexport { ReactiveEffect } from \"./effect\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/reactivity/reactive.ts",
    "chars": 184,
    "preview": "import { mutableHandlers } from \"./baseHandler\";\n\nexport function reactive<T extends object>(target: T): T {\n  const pro"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-core/apiCreateApp.ts",
    "chars": 610,
    "preview": "import type { Component } from \"./component\";\nimport type { RootRenderFunction } from \"./renderer\";\n\nexport interface Ap"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-core/component.ts",
    "chars": 830,
    "preview": "import type { ReactiveEffect } from \"../reactivity\";\nimport type { ComponentOptions } from \"./componentOptions\";\nimport "
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-core/componentOptions.ts",
    "chars": 83,
    "preview": "export type ComponentOptions = {\n  render?: Function;\n  setup?: () => Function;\n};\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-core/h.ts",
    "chars": 208,
    "preview": "import { type VNode, type VNodeProps, createVNode } from \"./vnode\";\n\nexport function h(type: string | object, props: VNo"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-core/index.ts",
    "chars": 232,
    "preview": "export type { App, CreateAppFunction } from \"./apiCreateApp\";\nexport { createAppAPI } from \"./apiCreateApp\";\n\nexport typ"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-core/renderer.ts",
    "chars": 5439,
    "preview": "import { ReactiveEffect } from \"../reactivity\";\nimport {\n  type Component,\n  type ComponentInternalInstance,\n  type Inte"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-core/vnode.ts",
    "chars": 1113,
    "preview": "import type { ComponentInternalInstance } from \"./component\";\n\nexport type VNodeTypes = string | typeof Text | object;\n\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-dom/index.ts",
    "chars": 570,
    "preview": "import { type CreateAppFunction, createAppAPI, createRenderer } from \"../runtime-core\";\nimport { nodeOps } from \"./nodeO"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-dom/modules/attrs.ts",
    "chars": 168,
    "preview": "export function patchAttr(el: Element, key: string, value: any) {\n  if (value == null) {\n    el.removeAttribute(key);\n  "
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-dom/modules/events.ts",
    "chars": 1316,
    "preview": "interface Invoker extends EventListener {\n  value: EventValue;\n}\n\ntype EventValue = Function;\n\nexport function addEventL"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-dom/nodeOps.ts",
    "chars": 572,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\n\nexport const nodeOps: Omit<RendererOptions<Node, Element>, \"pat"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/packages/runtime-dom/patchProp.ts",
    "chars": 468,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\nimport { patchAttr } from \"./modules/attrs\";\nimport { patchEvent"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/tests/e2e.spec.ts",
    "chars": 1539,
    "preview": "import { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { createApp, h, reactive } from \"../pa"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/examples/playground/src/main.ts",
    "chars": 610,
    "preview": "import { createApp, h, reactive } from \"chibivue\";\n\nconst MyComponent = {\n  props: { message: { type: String } },\n\n  set"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/index.ts",
    "chars": 93,
    "preview": "export * from \"./runtime-core\";\nexport * from \"./runtime-dom\";\nexport * from \"./reactivity\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/reactivity/baseHandler.ts",
    "chars": 742,
    "preview": "import { track, trigger } from \"./effect\";\nimport { reactive } from \"./reactive\";\n\nexport const mutableHandlers: ProxyHa"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/reactivity/dep.ts",
    "chars": 223,
    "preview": "import type { ReactiveEffect } from \"./effect\";\n\nexport type Dep = Set<ReactiveEffect>;\n\nexport const createDep = (effec"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/reactivity/effect.ts",
    "chars": 1015,
    "preview": "import { type Dep, createDep } from \"./dep\";\n\ntype KeyToDepMap = Map<any, Dep>;\nconst targetMap = new WeakMap<any, KeyTo"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/reactivity/index.ts",
    "chars": 82,
    "preview": "export { reactive } from \"./reactive\";\nexport { ReactiveEffect } from \"./effect\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/reactivity/reactive.ts",
    "chars": 184,
    "preview": "import { mutableHandlers } from \"./baseHandler\";\n\nexport function reactive<T extends object>(target: T): T {\n  const pro"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/apiCreateApp.ts",
    "chars": 610,
    "preview": "import type { Component } from \"./component\";\nimport type { RootRenderFunction } from \"./renderer\";\n\nexport interface Ap"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/component.ts",
    "chars": 1017,
    "preview": "import type { ReactiveEffect } from \"../reactivity\";\nimport type { ComponentOptions } from \"./componentOptions\";\nimport "
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/componentOptions.ts",
    "chars": 140,
    "preview": "export type ComponentOptions = {\n  props?: Record<string, any>;\n  setup?: (props: Record<string, any>) => Function;\n  re"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/componentProps.ts",
    "chars": 1046,
    "preview": "import { reactive } from \"../reactivity\";\nimport type { ComponentInternalInstance, Data } from \"./component\";\n\nexport ty"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/h.ts",
    "chars": 208,
    "preview": "import { type VNode, type VNodeProps, createVNode } from \"./vnode\";\n\nexport function h(type: string | object, props: VNo"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/index.ts",
    "chars": 232,
    "preview": "export type { App, CreateAppFunction } from \"./apiCreateApp\";\nexport { createAppAPI } from \"./apiCreateApp\";\n\nexport typ"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/renderer.ts",
    "chars": 5628,
    "preview": "import { ReactiveEffect } from \"../reactivity\";\nimport {\n  type Component,\n  type ComponentInternalInstance,\n  type Inte"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-core/vnode.ts",
    "chars": 1113,
    "preview": "import type { ComponentInternalInstance } from \"./component\";\n\nexport type VNodeTypes = string | typeof Text | object;\n\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/index.ts",
    "chars": 570,
    "preview": "import { type CreateAppFunction, createAppAPI, createRenderer } from \"../runtime-core\";\nimport { nodeOps } from \"./nodeO"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/modules/attrs.ts",
    "chars": 168,
    "preview": "export function patchAttr(el: Element, key: string, value: any) {\n  if (value == null) {\n    el.removeAttribute(key);\n  "
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/modules/events.ts",
    "chars": 1316,
    "preview": "interface Invoker extends EventListener {\n  value: EventValue;\n}\n\ntype EventValue = Function;\n\nexport function addEventL"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/nodeOps.ts",
    "chars": 572,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\n\nexport const nodeOps: Omit<RendererOptions<Node, Element>, \"pat"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/packages/runtime-dom/patchProp.ts",
    "chars": 468,
    "preview": "import type { RendererOptions } from \"../runtime-core\";\nimport { patchAttr } from \"./modules/attrs\";\nimport { patchEvent"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/tests/e2e.spec.ts",
    "chars": 1529,
    "preview": "import { afterEach, beforeEach, describe, expect, it, vi } from \"vitest\";\n\nimport { createApp, h, reactive } from \"../pa"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system2/tsconfig.json",
    "chars": 363,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"module\": \"ESNext\",\n    \"lib\": [\"DOM\", \"ESNext\"],\n    \"strict\": tru"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/examples/playground/.gitignore",
    "chars": 253,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\npnpm-debug.log*\nlerna-debug.log*\n\nnode_modules\ndist\ndis"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/examples/playground/index.html",
    "chars": 294,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"UTF-8\" />\n    <meta name=\"viewport\" content=\"width=device-w"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/examples/playground/package.json",
    "chars": 288,
    "preview": "{\n  \"name\": \"playground\",\n  \"private\": true,\n  \"version\": \"0.0.0\",\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\","
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/examples/playground/src/main.ts",
    "chars": 789,
    "preview": "import { createApp, h, reactive } from \"chibivue\";\n\nconst MyComponent = {\n  props: { someMessage: { type: String } },\n\n "
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/examples/playground/tsconfig.json",
    "chars": 507,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ESNext\",\n    \"useDefineForClassFields\": true,\n    \"module\": \"ESNext\",\n    \"lib\":"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/examples/playground/vite.config.ts",
    "chars": 311,
    "preview": "import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { defineConfig } from \"vite\";\n\nconst dirn"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/package.json",
    "chars": 322,
    "preview": "{\n  \"name\": \"01_project_setup\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"dev"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/packages/index.ts",
    "chars": 93,
    "preview": "export * from \"./runtime-core\";\nexport * from \"./runtime-dom\";\nexport * from \"./reactivity\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/packages/reactivity/baseHandler.ts",
    "chars": 742,
    "preview": "import { track, trigger } from \"./effect\";\nimport { reactive } from \"./reactive\";\n\nexport const mutableHandlers: ProxyHa"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/packages/reactivity/dep.ts",
    "chars": 223,
    "preview": "import type { ReactiveEffect } from \"./effect\";\n\nexport type Dep = Set<ReactiveEffect>;\n\nexport const createDep = (effec"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/packages/reactivity/effect.ts",
    "chars": 1015,
    "preview": "import { type Dep, createDep } from \"./dep\";\n\ntype KeyToDepMap = Map<any, Dep>;\nconst targetMap = new WeakMap<any, KeyTo"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/packages/reactivity/index.ts",
    "chars": 82,
    "preview": "export { reactive } from \"./reactive\";\nexport { ReactiveEffect } from \"./effect\";\n"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/packages/reactivity/reactive.ts",
    "chars": 184,
    "preview": "import { mutableHandlers } from \"./baseHandler\";\n\nexport function reactive<T extends object>(target: T): T {\n  const pro"
  },
  {
    "path": "book/impls/10_minimum_example/050_component_system3/packages/runtime-core/apiCreateApp.ts",
    "chars": 610,
    "preview": "import type { Component } from \"./component\";\nimport type { RootRenderFunction } from \"./renderer\";\n\nexport interface Ap"
  }
]

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

About this extraction

This page contains the full source code of the chibivue-land/chibivue GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 4744 files (10.2 MB), approximately 3.0M tokens, and a symbol index with 18112 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!