aico-cli 2.1.1 → 2.1.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/bin/cli/README.md +1 -1
  2. package/bin/cli/cli.js +9391 -3999
  3. package/bin/cli/package.json +1 -1
  4. package/bin/cli/sdk-tools.d.ts +83 -15
  5. package/dist/chunks/simple-config.mjs +1 -1
  6. package/package.json +2 -2
  7. package/templates/cursor.md +72 -15
  8. package/templates/personality.md +37 -13
  9. package/templates/skills/antfu/SKILL.md +222 -0
  10. package/templates/skills/antfu/references/antfu-eslint-config.md +328 -0
  11. package/templates/skills/antfu/references/app-development.md +60 -0
  12. package/templates/skills/antfu/references/github-actions.md +68 -0
  13. package/templates/skills/antfu/references/gitignore.md +29 -0
  14. package/templates/skills/antfu/references/library-development.md +85 -0
  15. package/templates/skills/antfu/references/monorepo.md +126 -0
  16. package/templates/skills/antfu/references/vscode-extensions.md +34 -0
  17. package/templates/skills/nuxt/GENERATION.md +5 -0
  18. package/templates/skills/nuxt/SKILL.md +55 -0
  19. package/templates/skills/nuxt/references/advanced-hooks.md +289 -0
  20. package/templates/skills/nuxt/references/advanced-layers.md +299 -0
  21. package/templates/skills/nuxt/references/advanced-module-authoring.md +554 -0
  22. package/templates/skills/nuxt/references/best-practices-data-fetching.md +357 -0
  23. package/templates/skills/nuxt/references/best-practices-ssr.md +355 -0
  24. package/templates/skills/nuxt/references/core-cli.md +263 -0
  25. package/templates/skills/nuxt/references/core-config.md +162 -0
  26. package/templates/skills/nuxt/references/core-data-fetching.md +236 -0
  27. package/templates/skills/nuxt/references/core-deployment.md +224 -0
  28. package/templates/skills/nuxt/references/core-directory-structure.md +269 -0
  29. package/templates/skills/nuxt/references/core-modules.md +292 -0
  30. package/templates/skills/nuxt/references/core-routing.md +226 -0
  31. package/templates/skills/nuxt/references/features-components-autoimport.md +328 -0
  32. package/templates/skills/nuxt/references/features-components.md +264 -0
  33. package/templates/skills/nuxt/references/features-composables.md +276 -0
  34. package/templates/skills/nuxt/references/features-server.md +265 -0
  35. package/templates/skills/nuxt/references/features-state.md +194 -0
  36. package/templates/skills/nuxt/references/rendering-modes.md +237 -0
  37. package/templates/skills/pinia/GENERATION.md +5 -0
  38. package/templates/skills/pinia/SKILL.md +59 -0
  39. package/templates/skills/pinia/references/advanced-hmr.md +61 -0
  40. package/templates/skills/pinia/references/advanced-nuxt.md +119 -0
  41. package/templates/skills/pinia/references/advanced-ssr.md +121 -0
  42. package/templates/skills/pinia/references/best-practices-outside-component.md +115 -0
  43. package/templates/skills/pinia/references/best-practices-testing.md +212 -0
  44. package/templates/skills/pinia/references/core-stores.md +389 -0
  45. package/templates/skills/pinia/references/features-composables.md +114 -0
  46. package/templates/skills/pinia/references/features-composing-stores.md +134 -0
  47. package/templates/skills/pinia/references/features-plugins.md +203 -0
  48. package/templates/skills/pnpm/GENERATION.md +5 -0
  49. package/templates/skills/pnpm/SKILL.md +42 -0
  50. package/templates/skills/pnpm/references/best-practices-ci.md +285 -0
  51. package/templates/skills/pnpm/references/best-practices-migration.md +291 -0
  52. package/templates/skills/pnpm/references/best-practices-performance.md +284 -0
  53. package/templates/skills/pnpm/references/core-cli.md +229 -0
  54. package/templates/skills/pnpm/references/core-config.md +188 -0
  55. package/templates/skills/pnpm/references/core-store.md +179 -0
  56. package/templates/skills/pnpm/references/core-workspaces.md +205 -0
  57. package/templates/skills/pnpm/references/features-aliases.md +168 -0
  58. package/templates/skills/pnpm/references/features-catalogs.md +159 -0
  59. package/templates/skills/pnpm/references/features-hooks.md +233 -0
  60. package/templates/skills/pnpm/references/features-overrides.md +184 -0
  61. package/templates/skills/pnpm/references/features-patches.md +201 -0
  62. package/templates/skills/pnpm/references/features-peer-deps.md +250 -0
  63. package/templates/skills/slidev/LICENSE.md +21 -0
  64. package/templates/skills/slidev/README.md +61 -0
  65. package/templates/skills/slidev/SKILL.md +183 -0
  66. package/templates/skills/slidev/SYNC.md +5 -0
  67. package/templates/skills/slidev/references/animation-click-marker.md +37 -0
  68. package/templates/skills/slidev/references/animation-drawing.md +68 -0
  69. package/templates/skills/slidev/references/animation-rough-marker.md +53 -0
  70. package/templates/skills/slidev/references/api-slide-hooks.md +37 -0
  71. package/templates/skills/slidev/references/build-og-image.md +36 -0
  72. package/templates/skills/slidev/references/build-pdf.md +40 -0
  73. package/templates/skills/slidev/references/build-remote-assets.md +34 -0
  74. package/templates/skills/slidev/references/build-seo-meta.md +43 -0
  75. package/templates/skills/slidev/references/code-groups.md +64 -0
  76. package/templates/skills/slidev/references/code-import-snippet.md +55 -0
  77. package/templates/skills/slidev/references/code-line-highlighting.md +50 -0
  78. package/templates/skills/slidev/references/code-line-numbers.md +46 -0
  79. package/templates/skills/slidev/references/code-magic-move.md +57 -0
  80. package/templates/skills/slidev/references/code-max-height.md +37 -0
  81. package/templates/skills/slidev/references/code-twoslash.md +42 -0
  82. package/templates/skills/slidev/references/core-animations.md +196 -0
  83. package/templates/skills/slidev/references/core-cli.md +140 -0
  84. package/templates/skills/slidev/references/core-components.md +197 -0
  85. package/templates/skills/slidev/references/core-exporting.md +148 -0
  86. package/templates/skills/slidev/references/core-frontmatter.md +195 -0
  87. package/templates/skills/slidev/references/core-global-context.md +155 -0
  88. package/templates/skills/slidev/references/core-headmatter.md +188 -0
  89. package/templates/skills/slidev/references/core-hosting.md +152 -0
  90. package/templates/skills/slidev/references/core-layouts.md +286 -0
  91. package/templates/skills/slidev/references/core-syntax.md +155 -0
  92. package/templates/skills/slidev/references/diagram-latex.md +55 -0
  93. package/templates/skills/slidev/references/diagram-mermaid.md +44 -0
  94. package/templates/skills/slidev/references/diagram-plantuml.md +45 -0
  95. package/templates/skills/slidev/references/editor-monaco-run.md +44 -0
  96. package/templates/skills/slidev/references/editor-monaco-write.md +24 -0
  97. package/templates/skills/slidev/references/editor-monaco.md +50 -0
  98. package/templates/skills/slidev/references/editor-prettier.md +40 -0
  99. package/templates/skills/slidev/references/editor-side.md +23 -0
  100. package/templates/skills/slidev/references/editor-vscode.md +55 -0
  101. package/templates/skills/slidev/references/layout-canvas-size.md +25 -0
  102. package/templates/skills/slidev/references/layout-draggable.md +57 -0
  103. package/templates/skills/slidev/references/layout-global-layers.md +50 -0
  104. package/templates/skills/slidev/references/layout-slots.md +75 -0
  105. package/templates/skills/slidev/references/layout-transform.md +33 -0
  106. package/templates/skills/slidev/references/layout-zoom.md +39 -0
  107. package/templates/skills/slidev/references/presenter-notes-ruby.md +35 -0
  108. package/templates/skills/slidev/references/presenter-recording.md +30 -0
  109. package/templates/skills/slidev/references/presenter-remote.md +40 -0
  110. package/templates/skills/slidev/references/presenter-timer.md +34 -0
  111. package/templates/skills/slidev/references/style-direction.md +34 -0
  112. package/templates/skills/slidev/references/style-icons.md +46 -0
  113. package/templates/skills/slidev/references/style-scoped.md +50 -0
  114. package/templates/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  115. package/templates/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  116. package/templates/skills/slidev/references/syntax-importing-slides.md +60 -0
  117. package/templates/skills/slidev/references/syntax-mdc.md +51 -0
  118. package/templates/skills/slidev/references/tool-eject-theme.md +27 -0
  119. package/templates/skills/tech-whitepaper/SKILL.md +102 -15
  120. package/templates/skills/tsdown/GENERATION.md +5 -0
  121. package/templates/skills/tsdown/SKILL.md +59 -0
  122. package/templates/skills/tsdown/references/advanced-hooks.md +87 -0
  123. package/templates/skills/tsdown/references/advanced-plugins.md +97 -0
  124. package/templates/skills/tsdown/references/advanced-programmatic.md +78 -0
  125. package/templates/skills/tsdown/references/advanced-rolldown-options.md +114 -0
  126. package/templates/skills/tsdown/references/core-cli.md +116 -0
  127. package/templates/skills/tsdown/references/core-config.md +86 -0
  128. package/templates/skills/tsdown/references/core-entry.md +74 -0
  129. package/templates/skills/tsdown/references/features-optimization.md +83 -0
  130. package/templates/skills/tsdown/references/features-shims.md +92 -0
  131. package/templates/skills/tsdown/references/features-unbundle.md +63 -0
  132. package/templates/skills/tsdown/references/features-watch.md +60 -0
  133. package/templates/skills/tsdown/references/options-dependencies.md +88 -0
  134. package/templates/skills/tsdown/references/options-dts.md +104 -0
  135. package/templates/skills/tsdown/references/options-output.md +124 -0
  136. package/templates/skills/tsdown/references/options-package-exports.md +114 -0
  137. package/templates/skills/tsdown/references/recipes-frameworks.md +109 -0
  138. package/templates/skills/tsdown/references/recipes-migration.md +84 -0
  139. package/templates/skills/turborepo/LICENSE.md +7 -0
  140. package/templates/skills/turborepo/SKILL.md +914 -0
  141. package/templates/skills/turborepo/SYNC.md +5 -0
  142. package/templates/skills/turborepo/command/turborepo.md +70 -0
  143. package/templates/skills/turborepo/references/best-practices/README.md +241 -0
  144. package/templates/skills/turborepo/references/best-practices/dependencies.md +246 -0
  145. package/templates/skills/turborepo/references/best-practices/packages.md +335 -0
  146. package/templates/skills/turborepo/references/best-practices/structure.md +269 -0
  147. package/templates/skills/turborepo/references/boundaries/README.md +126 -0
  148. package/templates/skills/turborepo/references/caching/README.md +107 -0
  149. package/templates/skills/turborepo/references/caching/gotchas.md +169 -0
  150. package/templates/skills/turborepo/references/caching/remote-cache.md +127 -0
  151. package/templates/skills/turborepo/references/ci/README.md +79 -0
  152. package/templates/skills/turborepo/references/ci/github-actions.md +162 -0
  153. package/templates/skills/turborepo/references/ci/patterns.md +145 -0
  154. package/templates/skills/turborepo/references/ci/vercel.md +103 -0
  155. package/templates/skills/turborepo/references/cli/README.md +100 -0
  156. package/templates/skills/turborepo/references/cli/commands.md +297 -0
  157. package/templates/skills/turborepo/references/configuration/README.md +211 -0
  158. package/templates/skills/turborepo/references/configuration/global-options.md +195 -0
  159. package/templates/skills/turborepo/references/configuration/gotchas.md +348 -0
  160. package/templates/skills/turborepo/references/configuration/tasks.md +285 -0
  161. package/templates/skills/turborepo/references/environment/README.md +96 -0
  162. package/templates/skills/turborepo/references/environment/gotchas.md +145 -0
  163. package/templates/skills/turborepo/references/environment/modes.md +101 -0
  164. package/templates/skills/turborepo/references/filtering/README.md +148 -0
  165. package/templates/skills/turborepo/references/filtering/patterns.md +152 -0
  166. package/templates/skills/turborepo/references/watch/README.md +99 -0
  167. package/templates/skills/unocss/GENERATION.md +5 -0
  168. package/templates/skills/unocss/SKILL.md +64 -0
  169. package/templates/skills/unocss/references/core-config.md +187 -0
  170. package/templates/skills/unocss/references/core-extracting.md +137 -0
  171. package/templates/skills/unocss/references/core-layers.md +104 -0
  172. package/templates/skills/unocss/references/core-rules.md +166 -0
  173. package/templates/skills/unocss/references/core-safelist.md +105 -0
  174. package/templates/skills/unocss/references/core-shortcuts.md +89 -0
  175. package/templates/skills/unocss/references/core-theme.md +172 -0
  176. package/templates/skills/unocss/references/core-variants.md +175 -0
  177. package/templates/skills/unocss/references/integrations-nuxt.md +199 -0
  178. package/templates/skills/unocss/references/integrations-vite.md +283 -0
  179. package/templates/skills/unocss/references/preset-attributify.md +142 -0
  180. package/templates/skills/unocss/references/preset-icons.md +184 -0
  181. package/templates/skills/unocss/references/preset-mini.md +158 -0
  182. package/templates/skills/unocss/references/preset-rem-to-px.md +97 -0
  183. package/templates/skills/unocss/references/preset-tagify.md +134 -0
  184. package/templates/skills/unocss/references/preset-typography.md +95 -0
  185. package/templates/skills/unocss/references/preset-web-fonts.md +91 -0
  186. package/templates/skills/unocss/references/preset-wind3.md +194 -0
  187. package/templates/skills/unocss/references/preset-wind4.md +247 -0
  188. package/templates/skills/unocss/references/transformer-attributify-jsx.md +156 -0
  189. package/templates/skills/unocss/references/transformer-compile-class.md +128 -0
  190. package/templates/skills/unocss/references/transformer-directives.md +157 -0
  191. package/templates/skills/unocss/references/transformer-variant-group.md +97 -0
  192. package/templates/skills/vite/GENERATION.md +5 -0
  193. package/templates/skills/vite/SKILL.md +50 -0
  194. package/templates/skills/vite/references/advanced-api.md +218 -0
  195. package/templates/skills/vite/references/advanced-backend.md +164 -0
  196. package/templates/skills/vite/references/advanced-performance.md +168 -0
  197. package/templates/skills/vite/references/advanced-plugin-api.md +258 -0
  198. package/templates/skills/vite/references/build-library.md +172 -0
  199. package/templates/skills/vite/references/build-production.md +220 -0
  200. package/templates/skills/vite/references/build-ssr.md +194 -0
  201. package/templates/skills/vite/references/core-cli.md +137 -0
  202. package/templates/skills/vite/references/core-config.md +176 -0
  203. package/templates/skills/vite/references/core-features.md +170 -0
  204. package/templates/skills/vite/references/core-plugins.md +154 -0
  205. package/templates/skills/vite/references/features-assets.md +138 -0
  206. package/templates/skills/vite/references/features-css.md +215 -0
  207. package/templates/skills/vite/references/features-dep-bundling.md +148 -0
  208. package/templates/skills/vite/references/features-env.md +161 -0
  209. package/templates/skills/vite/references/features-glob-import.md +161 -0
  210. package/templates/skills/vite/references/features-hmr.md +200 -0
  211. package/templates/skills/vite/references/features-workers.md +115 -0
  212. package/templates/skills/vitepress/GENERATION.md +5 -0
  213. package/templates/skills/vitepress/SKILL.md +65 -0
  214. package/templates/skills/vitepress/references/advanced-i18n.md +299 -0
  215. package/templates/skills/vitepress/references/advanced-ssr.md +228 -0
  216. package/templates/skills/vitepress/references/core-cli.md +119 -0
  217. package/templates/skills/vitepress/references/core-config.md +189 -0
  218. package/templates/skills/vitepress/references/core-markdown.md +277 -0
  219. package/templates/skills/vitepress/references/core-routing.md +169 -0
  220. package/templates/skills/vitepress/references/features-code-blocks.md +243 -0
  221. package/templates/skills/vitepress/references/features-data-loading.md +220 -0
  222. package/templates/skills/vitepress/references/features-dynamic-routes.md +235 -0
  223. package/templates/skills/vitepress/references/features-vue.md +224 -0
  224. package/templates/skills/vitepress/references/recipes-deploy.md +240 -0
  225. package/templates/skills/vitepress/references/theme-config.md +315 -0
  226. package/templates/skills/vitepress/references/theme-custom.md +269 -0
  227. package/templates/skills/vitepress/references/theme-customization.md +290 -0
  228. package/templates/skills/vitest/GENERATION.md +5 -0
  229. package/templates/skills/vitest/SKILL.md +52 -0
  230. package/templates/skills/vitest/references/advanced-environments.md +264 -0
  231. package/templates/skills/vitest/references/advanced-projects.md +300 -0
  232. package/templates/skills/vitest/references/advanced-type-testing.md +237 -0
  233. package/templates/skills/vitest/references/advanced-vi.md +249 -0
  234. package/templates/skills/vitest/references/core-cli.md +166 -0
  235. package/templates/skills/vitest/references/core-config.md +174 -0
  236. package/templates/skills/vitest/references/core-describe.md +193 -0
  237. package/templates/skills/vitest/references/core-expect.md +219 -0
  238. package/templates/skills/vitest/references/core-hooks.md +244 -0
  239. package/templates/skills/vitest/references/core-test-api.md +233 -0
  240. package/templates/skills/vitest/references/features-concurrency.md +250 -0
  241. package/templates/skills/vitest/references/features-context.md +238 -0
  242. package/templates/skills/vitest/references/features-coverage.md +207 -0
  243. package/templates/skills/vitest/references/features-filtering.md +211 -0
  244. package/templates/skills/vitest/references/features-mocking.md +265 -0
  245. package/templates/skills/vitest/references/features-snapshots.md +207 -0
  246. package/templates/skills/vue/GENERATION.md +5 -0
  247. package/templates/skills/vue/SKILL.md +63 -0
  248. package/templates/skills/vue/references/advanced-async-suspense.md +246 -0
  249. package/templates/skills/vue/references/advanced-provide-inject.md +174 -0
  250. package/templates/skills/vue/references/components-emits.md +139 -0
  251. package/templates/skills/vue/references/components-lifecycle.md +192 -0
  252. package/templates/skills/vue/references/components-props.md +211 -0
  253. package/templates/skills/vue/references/components-slots.md +201 -0
  254. package/templates/skills/vue/references/components-v-model.md +183 -0
  255. package/templates/skills/vue/references/core-reactivity.md +289 -0
  256. package/templates/skills/vue/references/features-composables.md +262 -0
  257. package/templates/skills/vue/references/features-directives.md +224 -0
  258. package/templates/skills/vue/references/features-script-setup.md +247 -0
  259. package/templates/skills/vue/references/features-template-refs.md +212 -0
  260. package/templates/skills/vue/references/features-typescript.md +274 -0
  261. package/templates/skills/vue-best-practices/LICENSE.md +21 -0
  262. package/templates/skills/vue-best-practices/SKILL.md +38 -0
  263. package/templates/skills/vue-best-practices/SYNC.md +5 -0
  264. package/templates/skills/vue-best-practices/rules/codeactions-save-performance.md +79 -0
  265. package/templates/skills/vue-best-practices/rules/data-attributes-config.md +74 -0
  266. package/templates/skills/vue-best-practices/rules/deep-watch-numeric.md +97 -0
  267. package/templates/skills/vue-best-practices/rules/define-model-update-event.md +79 -0
  268. package/templates/skills/vue-best-practices/rules/duplicate-plugin-detection.md +102 -0
  269. package/templates/skills/vue-best-practices/rules/extract-component-props.md +57 -0
  270. package/templates/skills/vue-best-practices/rules/fallthrough-attributes.md +63 -0
  271. package/templates/skills/vue-best-practices/rules/hmr-vue-ssr.md +124 -0
  272. package/templates/skills/vue-best-practices/rules/module-resolution-bundler.md +81 -0
  273. package/templates/skills/vue-best-practices/rules/pinia-store-mocking.md +159 -0
  274. package/templates/skills/vue-best-practices/rules/script-setup-jsdoc.md +85 -0
  275. package/templates/skills/vue-best-practices/rules/strict-css-modules.md +68 -0
  276. package/templates/skills/vue-best-practices/rules/volar-3-breaking-changes.md +65 -0
  277. package/templates/skills/vue-best-practices/rules/vue-directive-comments.md +73 -0
  278. package/templates/skills/vue-best-practices/rules/vue-router-typed-params.md +81 -0
  279. package/templates/skills/vue-best-practices/rules/vue-tsc-strict-templates.md +69 -0
  280. package/templates/skills/vue-best-practices/rules/with-defaults-union-types.md +102 -0
  281. package/templates/skills/vueuse-functions/LICENSE.md +21 -0
  282. package/templates/skills/vueuse-functions/SKILL.md +418 -0
  283. package/templates/skills/vueuse-functions/SYNC.md +5 -0
  284. package/templates/skills/vueuse-functions/references/computedAsync.md +159 -0
  285. package/templates/skills/vueuse-functions/references/computedEager.md +62 -0
  286. package/templates/skills/vueuse-functions/references/computedInject.md +86 -0
  287. package/templates/skills/vueuse-functions/references/computedWithControl.md +100 -0
  288. package/templates/skills/vueuse-functions/references/createEventHook.md +86 -0
  289. package/templates/skills/vueuse-functions/references/createGenericProjection.md +25 -0
  290. package/templates/skills/vueuse-functions/references/createGlobalState.md +95 -0
  291. package/templates/skills/vueuse-functions/references/createInjectionState.md +215 -0
  292. package/templates/skills/vueuse-functions/references/createProjection.md +31 -0
  293. package/templates/skills/vueuse-functions/references/createRef.md +54 -0
  294. package/templates/skills/vueuse-functions/references/createReusableTemplate.md +357 -0
  295. package/templates/skills/vueuse-functions/references/createSharedComposable.md +42 -0
  296. package/templates/skills/vueuse-functions/references/createTemplatePromise.md +259 -0
  297. package/templates/skills/vueuse-functions/references/createUnrefFn.md +51 -0
  298. package/templates/skills/vueuse-functions/references/extendRef.md +76 -0
  299. package/templates/skills/vueuse-functions/references/from.md +48 -0
  300. package/templates/skills/vueuse-functions/references/get.md +30 -0
  301. package/templates/skills/vueuse-functions/references/injectLocal.md +35 -0
  302. package/templates/skills/vueuse-functions/references/isDefined.md +31 -0
  303. package/templates/skills/vueuse-functions/references/logicAnd.md +40 -0
  304. package/templates/skills/vueuse-functions/references/logicNot.md +36 -0
  305. package/templates/skills/vueuse-functions/references/logicOr.md +40 -0
  306. package/templates/skills/vueuse-functions/references/makeDestructurable.md +41 -0
  307. package/templates/skills/vueuse-functions/references/onClickOutside.md +187 -0
  308. package/templates/skills/vueuse-functions/references/onElementRemoval.md +64 -0
  309. package/templates/skills/vueuse-functions/references/onKeyStroke.md +176 -0
  310. package/templates/skills/vueuse-functions/references/onLongPress.md +170 -0
  311. package/templates/skills/vueuse-functions/references/onStartTyping.md +43 -0
  312. package/templates/skills/vueuse-functions/references/provideLocal.md +37 -0
  313. package/templates/skills/vueuse-functions/references/reactify.md +144 -0
  314. package/templates/skills/vueuse-functions/references/reactifyObject.md +61 -0
  315. package/templates/skills/vueuse-functions/references/reactiveComputed.md +34 -0
  316. package/templates/skills/vueuse-functions/references/reactiveOmit.md +86 -0
  317. package/templates/skills/vueuse-functions/references/reactivePick.md +106 -0
  318. package/templates/skills/vueuse-functions/references/refAutoReset.md +44 -0
  319. package/templates/skills/vueuse-functions/references/refDebounced.md +81 -0
  320. package/templates/skills/vueuse-functions/references/refDefault.md +36 -0
  321. package/templates/skills/vueuse-functions/references/refManualReset.md +44 -0
  322. package/templates/skills/vueuse-functions/references/refThrottled.md +99 -0
  323. package/templates/skills/vueuse-functions/references/refWithControl.md +146 -0
  324. package/templates/skills/vueuse-functions/references/set.md +30 -0
  325. package/templates/skills/vueuse-functions/references/syncRef.md +195 -0
  326. package/templates/skills/vueuse-functions/references/syncRefs.md +128 -0
  327. package/templates/skills/vueuse-functions/references/templateRef.md +86 -0
  328. package/templates/skills/vueuse-functions/references/toObserver.md +38 -0
  329. package/templates/skills/vueuse-functions/references/toReactive.md +41 -0
  330. package/templates/skills/vueuse-functions/references/toRef.md +75 -0
  331. package/templates/skills/vueuse-functions/references/toRefs.md +81 -0
  332. package/templates/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
  333. package/templates/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
  334. package/templates/skills/vueuse-functions/references/tryOnMounted.md +34 -0
  335. package/templates/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
  336. package/templates/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
  337. package/templates/skills/vueuse-functions/references/unrefElement.md +54 -0
  338. package/templates/skills/vueuse-functions/references/until.md +165 -0
  339. package/templates/skills/vueuse-functions/references/useAbs.md +31 -0
  340. package/templates/skills/vueuse-functions/references/useActiveElement.md +65 -0
  341. package/templates/skills/vueuse-functions/references/useAnimate.md +140 -0
  342. package/templates/skills/vueuse-functions/references/useArrayDifference.md +84 -0
  343. package/templates/skills/vueuse-functions/references/useArrayEvery.md +59 -0
  344. package/templates/skills/vueuse-functions/references/useArrayFilter.md +63 -0
  345. package/templates/skills/vueuse-functions/references/useArrayFind.md +50 -0
  346. package/templates/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
  347. package/templates/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
  348. package/templates/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
  349. package/templates/skills/vueuse-functions/references/useArrayJoin.md +74 -0
  350. package/templates/skills/vueuse-functions/references/useArrayMap.md +59 -0
  351. package/templates/skills/vueuse-functions/references/useArrayReduce.md +81 -0
  352. package/templates/skills/vueuse-functions/references/useArraySome.md +59 -0
  353. package/templates/skills/vueuse-functions/references/useArrayUnique.md +76 -0
  354. package/templates/skills/vueuse-functions/references/useAsyncQueue.md +87 -0
  355. package/templates/skills/vueuse-functions/references/useAsyncState.md +140 -0
  356. package/templates/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
  357. package/templates/skills/vueuse-functions/references/useAuth.md +114 -0
  358. package/templates/skills/vueuse-functions/references/useAverage.md +36 -0
  359. package/templates/skills/vueuse-functions/references/useAxios.md +292 -0
  360. package/templates/skills/vueuse-functions/references/useBase64.md +88 -0
  361. package/templates/skills/vueuse-functions/references/useBattery.md +67 -0
  362. package/templates/skills/vueuse-functions/references/useBluetooth.md +161 -0
  363. package/templates/skills/vueuse-functions/references/useBreakpoints.md +128 -0
  364. package/templates/skills/vueuse-functions/references/useBroadcastChannel.md +74 -0
  365. package/templates/skills/vueuse-functions/references/useBrowserLocation.md +83 -0
  366. package/templates/skills/vueuse-functions/references/useCached.md +53 -0
  367. package/templates/skills/vueuse-functions/references/useCeil.md +31 -0
  368. package/templates/skills/vueuse-functions/references/useChangeCase.md +79 -0
  369. package/templates/skills/vueuse-functions/references/useClamp.md +51 -0
  370. package/templates/skills/vueuse-functions/references/useClipboard.md +99 -0
  371. package/templates/skills/vueuse-functions/references/useClipboardItems.md +93 -0
  372. package/templates/skills/vueuse-functions/references/useCloned.md +91 -0
  373. package/templates/skills/vueuse-functions/references/useColorMode.md +171 -0
  374. package/templates/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
  375. package/templates/skills/vueuse-functions/references/useCookies.md +162 -0
  376. package/templates/skills/vueuse-functions/references/useCountdown.md +102 -0
  377. package/templates/skills/vueuse-functions/references/useCounter.md +86 -0
  378. package/templates/skills/vueuse-functions/references/useCssVar.md +50 -0
  379. package/templates/skills/vueuse-functions/references/useCurrentElement.md +61 -0
  380. package/templates/skills/vueuse-functions/references/useCycleList.md +75 -0
  381. package/templates/skills/vueuse-functions/references/useDark.md +142 -0
  382. package/templates/skills/vueuse-functions/references/useDateFormat.md +145 -0
  383. package/templates/skills/vueuse-functions/references/useDebounceFn.md +100 -0
  384. package/templates/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
  385. package/templates/skills/vueuse-functions/references/useDeviceMotion.md +87 -0
  386. package/templates/skills/vueuse-functions/references/useDeviceOrientation.md +62 -0
  387. package/templates/skills/vueuse-functions/references/useDevicePixelRatio.md +44 -0
  388. package/templates/skills/vueuse-functions/references/useDevicesList.md +90 -0
  389. package/templates/skills/vueuse-functions/references/useDisplayMedia.md +71 -0
  390. package/templates/skills/vueuse-functions/references/useDocumentVisibility.md +45 -0
  391. package/templates/skills/vueuse-functions/references/useDraggable.md +210 -0
  392. package/templates/skills/vueuse-functions/references/useDrauu.md +65 -0
  393. package/templates/skills/vueuse-functions/references/useDropZone.md +83 -0
  394. package/templates/skills/vueuse-functions/references/useElementBounding.md +131 -0
  395. package/templates/skills/vueuse-functions/references/useElementByPoint.md +45 -0
  396. package/templates/skills/vueuse-functions/references/useElementHover.md +79 -0
  397. package/templates/skills/vueuse-functions/references/useElementSize.md +78 -0
  398. package/templates/skills/vueuse-functions/references/useElementVisibility.md +126 -0
  399. package/templates/skills/vueuse-functions/references/useEventBus.md +101 -0
  400. package/templates/skills/vueuse-functions/references/useEventListener.md +184 -0
  401. package/templates/skills/vueuse-functions/references/useEventSource.md +204 -0
  402. package/templates/skills/vueuse-functions/references/useExtractedObservable.md +185 -0
  403. package/templates/skills/vueuse-functions/references/useEyeDropper.md +71 -0
  404. package/templates/skills/vueuse-functions/references/useFavicon.md +67 -0
  405. package/templates/skills/vueuse-functions/references/useFetch.md +546 -0
  406. package/templates/skills/vueuse-functions/references/useFileDialog.md +91 -0
  407. package/templates/skills/vueuse-functions/references/useFileSystemAccess.md +162 -0
  408. package/templates/skills/vueuse-functions/references/useFirestore.md +104 -0
  409. package/templates/skills/vueuse-functions/references/useFloor.md +31 -0
  410. package/templates/skills/vueuse-functions/references/useFocus.md +99 -0
  411. package/templates/skills/vueuse-functions/references/useFocusTrap.md +245 -0
  412. package/templates/skills/vueuse-functions/references/useFocusWithin.md +57 -0
  413. package/templates/skills/vueuse-functions/references/useFps.md +28 -0
  414. package/templates/skills/vueuse-functions/references/useFullscreen.md +75 -0
  415. package/templates/skills/vueuse-functions/references/useFuse.md +107 -0
  416. package/templates/skills/vueuse-functions/references/useGamepad.md +223 -0
  417. package/templates/skills/vueuse-functions/references/useGeolocation.md +86 -0
  418. package/templates/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
  419. package/templates/skills/vueuse-functions/references/useIdle.md +89 -0
  420. package/templates/skills/vueuse-functions/references/useImage.md +86 -0
  421. package/templates/skills/vueuse-functions/references/useInfiniteScroll.md +157 -0
  422. package/templates/skills/vueuse-functions/references/useIntersectionObserver.md +118 -0
  423. package/templates/skills/vueuse-functions/references/useInterval.md +69 -0
  424. package/templates/skills/vueuse-functions/references/useIntervalFn.md +50 -0
  425. package/templates/skills/vueuse-functions/references/useIpcRenderer.md +118 -0
  426. package/templates/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
  427. package/templates/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
  428. package/templates/skills/vueuse-functions/references/useJwt.md +57 -0
  429. package/templates/skills/vueuse-functions/references/useKeyModifier.md +87 -0
  430. package/templates/skills/vueuse-functions/references/useLastChanged.md +63 -0
  431. package/templates/skills/vueuse-functions/references/useLocalStorage.md +41 -0
  432. package/templates/skills/vueuse-functions/references/useMagicKeys.md +217 -0
  433. package/templates/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
  434. package/templates/skills/vueuse-functions/references/useMath.md +47 -0
  435. package/templates/skills/vueuse-functions/references/useMax.md +36 -0
  436. package/templates/skills/vueuse-functions/references/useMediaControls.md +571 -0
  437. package/templates/skills/vueuse-functions/references/useMediaQuery.md +53 -0
  438. package/templates/skills/vueuse-functions/references/useMemoize.md +175 -0
  439. package/templates/skills/vueuse-functions/references/useMemory.md +56 -0
  440. package/templates/skills/vueuse-functions/references/useMin.md +36 -0
  441. package/templates/skills/vueuse-functions/references/useMounted.md +38 -0
  442. package/templates/skills/vueuse-functions/references/useMouse.md +114 -0
  443. package/templates/skills/vueuse-functions/references/useMouseInElement.md +123 -0
  444. package/templates/skills/vueuse-functions/references/useMousePressed.md +112 -0
  445. package/templates/skills/vueuse-functions/references/useMutationObserver.md +62 -0
  446. package/templates/skills/vueuse-functions/references/useNProgress.md +78 -0
  447. package/templates/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
  448. package/templates/skills/vueuse-functions/references/useNetwork.md +106 -0
  449. package/templates/skills/vueuse-functions/references/useNow.md +75 -0
  450. package/templates/skills/vueuse-functions/references/useObjectUrl.md +55 -0
  451. package/templates/skills/vueuse-functions/references/useObservable.md +67 -0
  452. package/templates/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
  453. package/templates/skills/vueuse-functions/references/useOnline.md +41 -0
  454. package/templates/skills/vueuse-functions/references/usePageLeave.md +42 -0
  455. package/templates/skills/vueuse-functions/references/useParallax.md +58 -0
  456. package/templates/skills/vueuse-functions/references/useParentElement.md +54 -0
  457. package/templates/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
  458. package/templates/skills/vueuse-functions/references/usePermission.md +78 -0
  459. package/templates/skills/vueuse-functions/references/usePointer.md +89 -0
  460. package/templates/skills/vueuse-functions/references/usePointerLock.md +60 -0
  461. package/templates/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
  462. package/templates/skills/vueuse-functions/references/usePrecision.md +49 -0
  463. package/templates/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
  464. package/templates/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
  465. package/templates/skills/vueuse-functions/references/usePreferredDark.md +41 -0
  466. package/templates/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
  467. package/templates/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
  468. package/templates/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
  469. package/templates/skills/vueuse-functions/references/usePrevious.md +40 -0
  470. package/templates/skills/vueuse-functions/references/useProjection.md +38 -0
  471. package/templates/skills/vueuse-functions/references/useQRCode.md +53 -0
  472. package/templates/skills/vueuse-functions/references/useRTDB.md +70 -0
  473. package/templates/skills/vueuse-functions/references/useRafFn.md +68 -0
  474. package/templates/skills/vueuse-functions/references/useRefHistory.md +292 -0
  475. package/templates/skills/vueuse-functions/references/useResizeObserver.md +110 -0
  476. package/templates/skills/vueuse-functions/references/useRound.md +31 -0
  477. package/templates/skills/vueuse-functions/references/useRouteHash.md +27 -0
  478. package/templates/skills/vueuse-functions/references/useRouteParams.md +38 -0
  479. package/templates/skills/vueuse-functions/references/useRouteQuery.md +38 -0
  480. package/templates/skills/vueuse-functions/references/useSSRWidth.md +47 -0
  481. package/templates/skills/vueuse-functions/references/useScreenOrientation.md +96 -0
  482. package/templates/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
  483. package/templates/skills/vueuse-functions/references/useScriptTag.md +116 -0
  484. package/templates/skills/vueuse-functions/references/useScroll.md +238 -0
  485. package/templates/skills/vueuse-functions/references/useScrollLock.md +66 -0
  486. package/templates/skills/vueuse-functions/references/useSessionStorage.md +41 -0
  487. package/templates/skills/vueuse-functions/references/useShare.md +68 -0
  488. package/templates/skills/vueuse-functions/references/useSortable.md +177 -0
  489. package/templates/skills/vueuse-functions/references/useSorted.md +90 -0
  490. package/templates/skills/vueuse-functions/references/useSpeechRecognition.md +94 -0
  491. package/templates/skills/vueuse-functions/references/useSpeechSynthesis.md +105 -0
  492. package/templates/skills/vueuse-functions/references/useStepper.md +137 -0
  493. package/templates/skills/vueuse-functions/references/useStorage.md +219 -0
  494. package/templates/skills/vueuse-functions/references/useStorageAsync.md +134 -0
  495. package/templates/skills/vueuse-functions/references/useStyleTag.md +131 -0
  496. package/templates/skills/vueuse-functions/references/useSubject.md +52 -0
  497. package/templates/skills/vueuse-functions/references/useSubscription.md +33 -0
  498. package/templates/skills/vueuse-functions/references/useSum.md +36 -0
  499. package/templates/skills/vueuse-functions/references/useSupported.md +29 -0
  500. package/templates/skills/vueuse-functions/references/useSwipe.md +75 -0
  501. package/templates/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
  502. package/templates/skills/vueuse-functions/references/useTextDirection.md +75 -0
  503. package/templates/skills/vueuse-functions/references/useTextSelection.md +40 -0
  504. package/templates/skills/vueuse-functions/references/useTextareaAutosize.md +97 -0
  505. package/templates/skills/vueuse-functions/references/useThrottleFn.md +57 -0
  506. package/templates/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
  507. package/templates/skills/vueuse-functions/references/useTimeAgo.md +152 -0
  508. package/templates/skills/vueuse-functions/references/useTimeAgoIntl.md +116 -0
  509. package/templates/skills/vueuse-functions/references/useTimeout.md +75 -0
  510. package/templates/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
  511. package/templates/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
  512. package/templates/skills/vueuse-functions/references/useTimestamp.md +85 -0
  513. package/templates/skills/vueuse-functions/references/useTitle.md +113 -0
  514. package/templates/skills/vueuse-functions/references/useToNumber.md +54 -0
  515. package/templates/skills/vueuse-functions/references/useToString.md +34 -0
  516. package/templates/skills/vueuse-functions/references/useToggle.md +56 -0
  517. package/templates/skills/vueuse-functions/references/useTransition.md +265 -0
  518. package/templates/skills/vueuse-functions/references/useTrunc.md +33 -0
  519. package/templates/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
  520. package/templates/skills/vueuse-functions/references/useUserMedia.md +1138 -0
  521. package/templates/skills/vueuse-functions/references/useVModel.md +116 -0
  522. package/templates/skills/vueuse-functions/references/useVModels.md +67 -0
  523. package/templates/skills/vueuse-functions/references/useVibrate.md +83 -0
  524. package/templates/skills/vueuse-functions/references/useVirtualList.md +184 -0
  525. package/templates/skills/vueuse-functions/references/useWakeLock.md +50 -0
  526. package/templates/skills/vueuse-functions/references/useWebNotification.md +177 -0
  527. package/templates/skills/vueuse-functions/references/useWebSocket.md +268 -0
  528. package/templates/skills/vueuse-functions/references/useWebWorker.md +60 -0
  529. package/templates/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
  530. package/templates/skills/vueuse-functions/references/useWindowFocus.md +46 -0
  531. package/templates/skills/vueuse-functions/references/useWindowScroll.md +62 -0
  532. package/templates/skills/vueuse-functions/references/useWindowSize.md +76 -0
  533. package/templates/skills/vueuse-functions/references/useZoomFactor.md +53 -0
  534. package/templates/skills/vueuse-functions/references/useZoomLevel.md +53 -0
  535. package/templates/skills/vueuse-functions/references/watchArray.md +53 -0
  536. package/templates/skills/vueuse-functions/references/watchAtMost.md +54 -0
  537. package/templates/skills/vueuse-functions/references/watchDebounced.md +72 -0
  538. package/templates/skills/vueuse-functions/references/watchDeep.md +54 -0
  539. package/templates/skills/vueuse-functions/references/watchExtractedObservable.md +167 -0
  540. package/templates/skills/vueuse-functions/references/watchIgnorable.md +120 -0
  541. package/templates/skills/vueuse-functions/references/watchImmediate.md +44 -0
  542. package/templates/skills/vueuse-functions/references/watchOnce.md +41 -0
  543. package/templates/skills/vueuse-functions/references/watchPausable.md +86 -0
  544. package/templates/skills/vueuse-functions/references/watchThrottled.md +73 -0
  545. package/templates/skills/vueuse-functions/references/watchTriggerable.md +97 -0
  546. package/templates/skills/vueuse-functions/references/watchWithFilter.md +55 -0
  547. package/templates/skills/vueuse-functions/references/whenever.md +100 -0
  548. package/templates/skills/web-design-guidelines/SKILL.md +39 -0
  549. package/templates/skills/web-design-guidelines/SYNC.md +5 -0
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: vscode-extensions
3
+ description: Recommended VS Code extensions
4
+ ---
5
+
6
+ # VS Code Extensions
7
+
8
+ ## Recommended Extensions
9
+
10
+ Configure in `.vscode/extensions.json` (choose based on the needs):
11
+
12
+ ```json
13
+ {
14
+ "recommendations": [
15
+ "dbaeumer.vscode-eslint",
16
+ "antfu.pnpm-catalog-lens",
17
+ "antfu.iconify",
18
+ "antfu.unocss",
19
+ "antfu.slidev",
20
+ "vue.volar"
21
+ ]
22
+ }
23
+ ```
24
+
25
+ ## Extension Details
26
+
27
+ | Extension | Description |
28
+ |-----------|-------------|
29
+ | `dbaeumer.vscode-eslint` | ESLint integration for linting and formatting |
30
+ | `antfu.pnpm-catalog-lens` | Shows pnpm catalog version hints inline |
31
+ | `antfu.iconify` | Iconify icon preview and autocomplete |
32
+ | `antfu.unocss` | UnoCSS IntelliSense and syntax highlighting |
33
+ | `antfu.slidev` | Slidev preview and syntax highlighting for presentations |
34
+ | `vue.volar` | Vue Language Features (official Vue extension) |
@@ -0,0 +1,5 @@
1
+ # Generation Info
2
+
3
+ - **Source:** `sources/nuxt`
4
+ - **Git SHA:** `c9fed804b9bef362276033b03ca43730c6efa7dc`
5
+ - **Generated:** 2026-01-28
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: nuxt
3
+ description: Nuxt full-stack Vue framework with SSR, auto-imports, and file-based routing. Use when working with Nuxt apps, server routes, useFetch, middleware, or hybrid rendering.
4
+ metadata:
5
+ author: Anthony Fu
6
+ version: "2026.1.28"
7
+ source: Generated from https://github.com/nuxt/nuxt, scripts located at https://github.com/antfu/skills
8
+ ---
9
+
10
+ Nuxt is a full-stack Vue framework that provides server-side rendering, file-based routing, auto-imports, and a powerful module system. It uses Nitro as its server engine for universal deployment across Node.js, serverless, and edge platforms.
11
+
12
+ > The skill is based on Nuxt 3.x, generated at 2026-01-28.
13
+
14
+ ## Core
15
+
16
+ | Topic | Description | Reference |
17
+ |-------|-------------|-----------|
18
+ | Directory Structure | Project folder structure, conventions, file organization | [core-directory-structure](references/core-directory-structure.md) |
19
+ | Configuration | nuxt.config.ts, app.config.ts, runtime config, environment variables | [core-config](references/core-config.md) |
20
+ | CLI Commands | Dev server, build, generate, preview, and utility commands | [core-cli](references/core-cli.md) |
21
+ | Routing | File-based routing, dynamic routes, navigation, middleware, layouts | [core-routing](references/core-routing.md) |
22
+ | Data Fetching | useFetch, useAsyncData, $fetch, caching, refresh | [core-data-fetching](references/core-data-fetching.md) |
23
+ | Modules | Creating and using Nuxt modules, Nuxt Kit utilities | [core-modules](references/core-modules.md) |
24
+ | Deployment | Platform-agnostic deployment with Nitro, Vercel, Netlify, Cloudflare | [core-deployment](references/core-deployment.md) |
25
+
26
+ ## Features
27
+
28
+ | Topic | Description | Reference |
29
+ |-------|-------------|-----------|
30
+ | Composables Auto-imports | Vue APIs, Nuxt composables, custom composables, utilities | [features-composables](references/features-composables.md) |
31
+ | Components Auto-imports | Component naming, lazy loading, hydration strategies | [features-components-autoimport](references/features-components-autoimport.md) |
32
+ | Built-in Components | NuxtLink, NuxtPage, NuxtLayout, ClientOnly, and more | [features-components](references/features-components.md) |
33
+ | State Management | useState composable, SSR-friendly state, Pinia integration | [features-state](references/features-state.md) |
34
+ | Server Routes | API routes, server middleware, Nitro server engine | [features-server](references/features-server.md) |
35
+
36
+ ## Rendering
37
+
38
+ | Topic | Description | Reference |
39
+ |-------|-------------|-----------|
40
+ | Rendering Modes | Universal (SSR), client-side (SPA), hybrid rendering, route rules | [rendering-modes](references/rendering-modes.md) |
41
+
42
+ ## Best Practices
43
+
44
+ | Topic | Description | Reference |
45
+ |-------|-------------|-----------|
46
+ | Data Fetching Patterns | Efficient fetching, caching, parallel requests, error handling | [best-practices-data-fetching](references/best-practices-data-fetching.md) |
47
+ | SSR & Hydration | Avoiding context leaks, hydration mismatches, composable patterns | [best-practices-ssr](references/best-practices-ssr.md) |
48
+
49
+ ## Advanced
50
+
51
+ | Topic | Description | Reference |
52
+ |-------|-------------|-----------|
53
+ | Layers | Extending applications with reusable layers | [advanced-layers](references/advanced-layers.md) |
54
+ | Lifecycle Hooks | Build-time, runtime, and server hooks | [advanced-hooks](references/advanced-hooks.md) |
55
+ | Module Authoring | Creating publishable Nuxt modules with Nuxt Kit | [advanced-module-authoring](references/advanced-module-authoring.md) |
@@ -0,0 +1,289 @@
1
+ ---
2
+ name: lifecycle-hooks
3
+ description: Nuxt and Nitro hooks for extending build-time and runtime behavior
4
+ ---
5
+
6
+ # Lifecycle Hooks
7
+
8
+ Nuxt provides hooks to tap into the build process, application lifecycle, and server runtime.
9
+
10
+ ## Build-time Hooks (Nuxt)
11
+
12
+ Used in `nuxt.config.ts` or modules:
13
+
14
+ ### In nuxt.config.ts
15
+
16
+ ```ts
17
+ // nuxt.config.ts
18
+ export default defineNuxtConfig({
19
+ hooks: {
20
+ 'build:before': () => {
21
+ console.log('Build starting...')
22
+ },
23
+ 'pages:extend': (pages) => {
24
+ // Add custom pages
25
+ pages.push({
26
+ name: 'custom',
27
+ path: '/custom',
28
+ file: '~/pages/custom.vue',
29
+ })
30
+ },
31
+ 'components:dirs': (dirs) => {
32
+ // Add component directories
33
+ dirs.push({ path: '~/extra-components' })
34
+ },
35
+ },
36
+ })
37
+ ```
38
+
39
+ ### In Modules
40
+
41
+ ```ts
42
+ // modules/my-module.ts
43
+ export default defineNuxtModule({
44
+ setup(options, nuxt) {
45
+ nuxt.hook('ready', async (nuxt) => {
46
+ console.log('Nuxt is ready')
47
+ })
48
+
49
+ nuxt.hook('close', async (nuxt) => {
50
+ console.log('Nuxt is closing')
51
+ })
52
+
53
+ nuxt.hook('modules:done', () => {
54
+ console.log('All modules loaded')
55
+ })
56
+ },
57
+ })
58
+ ```
59
+
60
+ ### Common Build Hooks
61
+
62
+ | Hook | When |
63
+ |------|------|
64
+ | `ready` | Nuxt initialization complete |
65
+ | `close` | Nuxt is closing |
66
+ | `modules:done` | All modules installed |
67
+ | `build:before` | Before build starts |
68
+ | `build:done` | Build complete |
69
+ | `pages:extend` | Pages routes resolved |
70
+ | `components:dirs` | Component dirs being resolved |
71
+ | `imports:extend` | Auto-imports being resolved |
72
+ | `nitro:config` | Before Nitro config finalized |
73
+ | `vite:extend` | Vite context created |
74
+ | `vite:extendConfig` | Before Vite config finalized |
75
+
76
+ ## App Hooks (Runtime)
77
+
78
+ Used in plugins and composables:
79
+
80
+ ### In Plugins
81
+
82
+ ```ts
83
+ // plugins/lifecycle.ts
84
+ export default defineNuxtPlugin((nuxtApp) => {
85
+ nuxtApp.hook('app:created', (vueApp) => {
86
+ console.log('Vue app created')
87
+ })
88
+
89
+ nuxtApp.hook('app:mounted', (vueApp) => {
90
+ console.log('App mounted')
91
+ })
92
+
93
+ nuxtApp.hook('page:start', () => {
94
+ console.log('Page navigation starting')
95
+ })
96
+
97
+ nuxtApp.hook('page:finish', () => {
98
+ console.log('Page navigation finished')
99
+ })
100
+
101
+ nuxtApp.hook('page:loading:start', () => {
102
+ console.log('Page loading started')
103
+ })
104
+
105
+ nuxtApp.hook('page:loading:end', () => {
106
+ console.log('Page loading ended')
107
+ })
108
+ })
109
+ ```
110
+
111
+ ### Common App Hooks
112
+
113
+ | Hook | When |
114
+ |------|------|
115
+ | `app:created` | Vue app created |
116
+ | `app:mounted` | Vue app mounted (client only) |
117
+ | `app:error` | Fatal error occurred |
118
+ | `page:start` | Page navigation starting |
119
+ | `page:finish` | Page navigation finished |
120
+ | `page:loading:start` | Loading indicator should show |
121
+ | `page:loading:end` | Loading indicator should hide |
122
+ | `link:prefetch` | Link is being prefetched |
123
+
124
+ ### Using Runtime Hooks
125
+
126
+ ```ts
127
+ // composables/usePageTracking.ts
128
+ export function usePageTracking() {
129
+ const nuxtApp = useNuxtApp()
130
+
131
+ nuxtApp.hook('page:finish', () => {
132
+ trackPageView(useRoute().path)
133
+ })
134
+ }
135
+ ```
136
+
137
+ ## Server Hooks (Nitro)
138
+
139
+ Used in server plugins:
140
+
141
+ ```ts
142
+ // server/plugins/hooks.ts
143
+ export default defineNitroPlugin((nitroApp) => {
144
+ // Modify HTML before sending
145
+ nitroApp.hooks.hook('render:html', (html, { event }) => {
146
+ html.head.push('<meta name="custom" content="value">')
147
+ html.bodyAppend.push('<script>console.log("injected")</script>')
148
+ })
149
+
150
+ // Modify response
151
+ nitroApp.hooks.hook('render:response', (response, { event }) => {
152
+ console.log('Sending response:', response.statusCode)
153
+ })
154
+
155
+ // Before request
156
+ nitroApp.hooks.hook('request', (event) => {
157
+ console.log('Request:', event.path)
158
+ })
159
+
160
+ // After response
161
+ nitroApp.hooks.hook('afterResponse', (event) => {
162
+ console.log('Response sent')
163
+ })
164
+ })
165
+ ```
166
+
167
+ ### Common Nitro Hooks
168
+
169
+ | Hook | When |
170
+ |------|------|
171
+ | `request` | Request received |
172
+ | `beforeResponse` | Before sending response |
173
+ | `afterResponse` | After response sent |
174
+ | `render:html` | Before HTML is sent |
175
+ | `render:response` | Before response is finalized |
176
+ | `error` | Error occurred |
177
+
178
+ ## Custom Hooks
179
+
180
+ ### Define Custom Hook Types
181
+
182
+ ```ts
183
+ // types/hooks.d.ts
184
+ import type { HookResult } from '@nuxt/schema'
185
+
186
+ declare module '#app' {
187
+ interface RuntimeNuxtHooks {
188
+ 'my-app:event': (data: MyEventData) => HookResult
189
+ }
190
+ }
191
+
192
+ declare module '@nuxt/schema' {
193
+ interface NuxtHooks {
194
+ 'my-module:init': () => HookResult
195
+ }
196
+ }
197
+
198
+ declare module 'nitropack/types' {
199
+ interface NitroRuntimeHooks {
200
+ 'my-server:event': (data: any) => void
201
+ }
202
+ }
203
+ ```
204
+
205
+ ### Call Custom Hooks
206
+
207
+ ```ts
208
+ // In a plugin
209
+ export default defineNuxtPlugin((nuxtApp) => {
210
+ // Call custom hook
211
+ nuxtApp.callHook('my-app:event', { type: 'custom' })
212
+ })
213
+
214
+ // In a module
215
+ export default defineNuxtModule({
216
+ setup(options, nuxt) {
217
+ nuxt.callHook('my-module:init')
218
+ },
219
+ })
220
+ ```
221
+
222
+ ## useRuntimeHook
223
+
224
+ Call hooks at runtime from components:
225
+
226
+ ```vue
227
+ <script setup lang="ts">
228
+ // Register a callback for a runtime hook
229
+ useRuntimeHook('app:error', (error) => {
230
+ console.error('App error:', error)
231
+ })
232
+ </script>
233
+ ```
234
+
235
+ ## Hook Examples
236
+
237
+ ### Page View Tracking
238
+
239
+ ```ts
240
+ // plugins/analytics.client.ts
241
+ export default defineNuxtPlugin((nuxtApp) => {
242
+ nuxtApp.hook('page:finish', () => {
243
+ const route = useRoute()
244
+ analytics.track('pageview', {
245
+ path: route.path,
246
+ title: document.title,
247
+ })
248
+ })
249
+ })
250
+ ```
251
+
252
+ ### Performance Monitoring
253
+
254
+ ```ts
255
+ // plugins/performance.client.ts
256
+ export default defineNuxtPlugin((nuxtApp) => {
257
+ let navigationStart: number
258
+
259
+ nuxtApp.hook('page:start', () => {
260
+ navigationStart = performance.now()
261
+ })
262
+
263
+ nuxtApp.hook('page:finish', () => {
264
+ const duration = performance.now() - navigationStart
265
+ console.log(`Navigation took ${duration}ms`)
266
+ })
267
+ })
268
+ ```
269
+
270
+ ### Inject HTML
271
+
272
+ ```ts
273
+ // server/plugins/inject.ts
274
+ export default defineNitroPlugin((nitroApp) => {
275
+ nitroApp.hooks.hook('render:html', (html) => {
276
+ html.head.push(`
277
+ <script>
278
+ window.APP_CONFIG = ${JSON.stringify(config)}
279
+ </script>
280
+ `)
281
+ })
282
+ })
283
+ ```
284
+
285
+ <!--
286
+ Source references:
287
+ - https://nuxt.com/docs/guide/going-further/hooks
288
+ - https://nuxt.com/docs/api/advanced/hooks
289
+ -->
@@ -0,0 +1,299 @@
1
+ ---
2
+ name: nuxt-layers
3
+ description: Extending Nuxt applications with layers for code sharing and reusability
4
+ ---
5
+
6
+ # Nuxt Layers
7
+
8
+ Layers allow sharing and reusing partial Nuxt applications across projects. They can include components, composables, pages, layouts, and configuration.
9
+
10
+ ## Using Layers
11
+
12
+ ### From npm Package
13
+
14
+ ```ts
15
+ // nuxt.config.ts
16
+ export default defineNuxtConfig({
17
+ extends: [
18
+ '@my-org/base-layer',
19
+ '@nuxtjs/ui-layer',
20
+ ],
21
+ })
22
+ ```
23
+
24
+ ### From Git Repository
25
+
26
+ ```ts
27
+ // nuxt.config.ts
28
+ export default defineNuxtConfig({
29
+ extends: [
30
+ 'github:username/repo',
31
+ 'github:username/repo/base', // Subdirectory
32
+ 'github:username/repo#v1.0', // Specific tag
33
+ 'github:username/repo#dev', // Branch
34
+ 'gitlab:username/repo',
35
+ 'bitbucket:username/repo',
36
+ ],
37
+ })
38
+ ```
39
+
40
+ ### From Local Directory
41
+
42
+ ```ts
43
+ // nuxt.config.ts
44
+ export default defineNuxtConfig({
45
+ extends: [
46
+ '../base-layer',
47
+ './layers/shared',
48
+ ],
49
+ })
50
+ ```
51
+
52
+ ### Auto-scanned Layers
53
+
54
+ Place in `layers/` directory for automatic discovery:
55
+
56
+ ```
57
+ my-app/
58
+ ├── layers/
59
+ │ ├── base/
60
+ │ │ └── nuxt.config.ts
61
+ │ └── ui/
62
+ │ └── nuxt.config.ts
63
+ └── nuxt.config.ts
64
+ ```
65
+
66
+ ## Creating a Layer
67
+
68
+ Minimal layer structure:
69
+
70
+ ```
71
+ my-layer/
72
+ ├── nuxt.config.ts # Required
73
+ ├── app/
74
+ │ ├── components/ # Auto-merged
75
+ │ ├── composables/ # Auto-merged
76
+ │ ├── layouts/ # Auto-merged
77
+ │ ├── middleware/ # Auto-merged
78
+ │ ├── pages/ # Auto-merged
79
+ │ ├── plugins/ # Auto-merged
80
+ │ └── app.config.ts # Merged
81
+ ├── server/ # Auto-merged
82
+ └── package.json
83
+ ```
84
+
85
+ ### Layer nuxt.config.ts
86
+
87
+ ```ts
88
+ // my-layer/nuxt.config.ts
89
+ export default defineNuxtConfig({
90
+ // Layer configuration
91
+ app: {
92
+ head: {
93
+ title: 'My Layer App',
94
+ },
95
+ },
96
+ // Shared modules
97
+ modules: ['@nuxt/ui'],
98
+ })
99
+ ```
100
+
101
+ ### Layer Components
102
+
103
+ ```vue
104
+ <!-- my-layer/app/components/BaseButton.vue -->
105
+ <template>
106
+ <button class="base-btn">
107
+ <slot />
108
+ </button>
109
+ </template>
110
+ ```
111
+
112
+ Use in consuming project:
113
+
114
+ ```vue
115
+ <template>
116
+ <BaseButton>Click me</BaseButton>
117
+ </template>
118
+ ```
119
+
120
+ ### Layer Composables
121
+
122
+ ```ts
123
+ // my-layer/app/composables/useTheme.ts
124
+ export function useTheme() {
125
+ const isDark = useState('theme-dark', () => false)
126
+ const toggle = () => isDark.value = !isDark.value
127
+ return { isDark, toggle }
128
+ }
129
+ ```
130
+
131
+ ## Layer Priority
132
+
133
+ Override order (highest to lowest):
134
+ 1. Your project files
135
+ 2. Auto-scanned layers (alphabetically, Z > A)
136
+ 3. `extends` array (first > last)
137
+
138
+ Control order with prefixes:
139
+
140
+ ```
141
+ layers/
142
+ ├── 1.base/ # Lower priority
143
+ └── 2.theme/ # Higher priority
144
+ ```
145
+
146
+ ## Layer Aliases
147
+
148
+ Access layer files:
149
+
150
+ ```ts
151
+ // Auto-scanned layers get aliases
152
+ import Component from '#layers/base/components/Component.vue'
153
+ ```
154
+
155
+ Named aliases:
156
+
157
+ ```ts
158
+ // my-layer/nuxt.config.ts
159
+ export default defineNuxtConfig({
160
+ $meta: {
161
+ name: 'my-layer',
162
+ },
163
+ })
164
+ ```
165
+
166
+ ```ts
167
+ // In consuming project
168
+ import { something } from '#layers/my-layer/utils'
169
+ ```
170
+
171
+ ## Publishing Layers
172
+
173
+ ### As npm Package
174
+
175
+ ```json
176
+ {
177
+ "name": "my-nuxt-layer",
178
+ "version": "1.0.0",
179
+ "type": "module",
180
+ "main": "./nuxt.config.ts",
181
+ "dependencies": {
182
+ "@nuxt/ui": "^2.0.0"
183
+ },
184
+ "devDependencies": {
185
+ "nuxt": "^3.0.0"
186
+ }
187
+ }
188
+ ```
189
+
190
+ ### Private Layers
191
+
192
+ For private git repos:
193
+
194
+ ```bash
195
+ export GIGET_AUTH=<github-token>
196
+ ```
197
+
198
+ ## Layer Best Practices
199
+
200
+ ### Use Resolved Paths
201
+
202
+ ```ts
203
+ // my-layer/nuxt.config.ts
204
+ import { fileURLToPath } from 'node:url'
205
+ import { dirname, join } from 'node:path'
206
+
207
+ const currentDir = dirname(fileURLToPath(import.meta.url))
208
+
209
+ export default defineNuxtConfig({
210
+ css: [
211
+ join(currentDir, './assets/main.css'),
212
+ ],
213
+ })
214
+ ```
215
+
216
+ ### Install Dependencies
217
+
218
+ ```ts
219
+ // nuxt.config.ts
220
+ export default defineNuxtConfig({
221
+ extends: [
222
+ ['github:user/layer', { install: true }],
223
+ ],
224
+ })
225
+ ```
226
+
227
+ ### Disable Layer Modules
228
+
229
+ ```ts
230
+ // nuxt.config.ts
231
+ export default defineNuxtConfig({
232
+ extends: ['./base-layer'],
233
+ // Disable modules from layer
234
+ image: false, // Disables @nuxt/image
235
+ pinia: false, // Disables @pinia/nuxt
236
+ })
237
+ ```
238
+
239
+ ## Starter Template
240
+
241
+ Create a new layer:
242
+
243
+ ```bash
244
+ npx nuxi init --template layer my-layer
245
+ ```
246
+
247
+ ## Example: Theme Layer
248
+
249
+ ```
250
+ theme-layer/
251
+ ├── nuxt.config.ts
252
+ ├── app/
253
+ │ ├── app.config.ts
254
+ │ ├── components/
255
+ │ │ ├── ThemeButton.vue
256
+ │ │ └── ThemeCard.vue
257
+ │ ├── composables/
258
+ │ │ └── useTheme.ts
259
+ │ └── assets/
260
+ │ └── theme.css
261
+ └── package.json
262
+ ```
263
+
264
+ ```ts
265
+ // theme-layer/nuxt.config.ts
266
+ export default defineNuxtConfig({
267
+ css: ['~/assets/theme.css'],
268
+ })
269
+ ```
270
+
271
+ ```ts
272
+ // theme-layer/app/app.config.ts
273
+ export default defineAppConfig({
274
+ theme: {
275
+ primaryColor: '#00dc82',
276
+ darkMode: false,
277
+ },
278
+ })
279
+ ```
280
+
281
+ ```ts
282
+ // consuming-app/nuxt.config.ts
283
+ export default defineNuxtConfig({
284
+ extends: ['theme-layer'],
285
+ })
286
+
287
+ // consuming-app/app/app.config.ts
288
+ export default defineAppConfig({
289
+ theme: {
290
+ primaryColor: '#ff0000', // Override
291
+ },
292
+ })
293
+ ```
294
+
295
+ <!--
296
+ Source references:
297
+ - https://nuxt.com/docs/getting-started/layers
298
+ - https://nuxt.com/docs/guide/going-further/layers
299
+ -->