ads-fe 0.0.1

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 (608) hide show
  1. package/README.md +99 -0
  2. package/dist/cli.js +545 -0
  3. package/dist/meta.js +93 -0
  4. package/package.json +43 -0
  5. package/skill.md +66 -0
  6. package/skills/core/SKILL.md +66 -0
  7. package/skills/core/references/app-development.md +45 -0
  8. package/skills/core/references/git.md +66 -0
  9. package/skills/core/references/monorepo.md +124 -0
  10. package/skills/element-plus-vue3/LICENSE.md +405 -0
  11. package/skills/element-plus-vue3/LICENSE.txt +202 -0
  12. package/skills/element-plus-vue3/SKILL.md +218 -0
  13. package/skills/element-plus-vue3/SYNC.md +5 -0
  14. package/skills/element-plus-vue3/api/component-api.md +94 -0
  15. package/skills/element-plus-vue3/api/global-config.md +89 -0
  16. package/skills/element-plus-vue3/api/props-and-events.md +101 -0
  17. package/skills/element-plus-vue3/examples/components/button.md +99 -0
  18. package/skills/element-plus-vue3/examples/components/date-picker.md +115 -0
  19. package/skills/element-plus-vue3/examples/components/dialog.md +106 -0
  20. package/skills/element-plus-vue3/examples/components/form.md +127 -0
  21. package/skills/element-plus-vue3/examples/components/input.md +123 -0
  22. package/skills/element-plus-vue3/examples/components/message.md +93 -0
  23. package/skills/element-plus-vue3/examples/components/overview.md +59 -0
  24. package/skills/element-plus-vue3/examples/components/select.md +133 -0
  25. package/skills/element-plus-vue3/examples/components/table.md +166 -0
  26. package/skills/element-plus-vue3/examples/guide/design.md +68 -0
  27. package/skills/element-plus-vue3/examples/guide/global-config.md +95 -0
  28. package/skills/element-plus-vue3/examples/guide/i18n.md +95 -0
  29. package/skills/element-plus-vue3/examples/guide/installation.md +110 -0
  30. package/skills/element-plus-vue3/examples/guide/quick-start.md +103 -0
  31. package/skills/element-plus-vue3/examples/guide/theme.md +78 -0
  32. package/skills/element-plus-vue3/templates/component-usage.md +92 -0
  33. package/skills/element-plus-vue3/templates/installation.md +82 -0
  34. package/skills/element-plus-vue3/templates/project-setup.md +83 -0
  35. package/skills/node/LICENSE.md +21 -0
  36. package/skills/node/SKILL.md +94 -0
  37. package/skills/node/SYNC.md +5 -0
  38. package/skills/node/rules/assets/graceful-server.test.ts +88 -0
  39. package/skills/node/rules/assets/graceful-server.ts +80 -0
  40. package/skills/node/rules/async-patterns.md +136 -0
  41. package/skills/node/rules/caching.md +198 -0
  42. package/skills/node/rules/environment.md +253 -0
  43. package/skills/node/rules/error-handling.md +164 -0
  44. package/skills/node/rules/flaky-tests.md +439 -0
  45. package/skills/node/rules/graceful-shutdown.md +204 -0
  46. package/skills/node/rules/logging.md +205 -0
  47. package/skills/node/rules/modules.md +105 -0
  48. package/skills/node/rules/node-modules-exploration.md +172 -0
  49. package/skills/node/rules/performance.md +130 -0
  50. package/skills/node/rules/profiling.md +183 -0
  51. package/skills/node/rules/streams.md +213 -0
  52. package/skills/node/rules/stuck-processes-and-tests.md +124 -0
  53. package/skills/node/rules/testing.md +218 -0
  54. package/skills/node/rules/typescript.md +262 -0
  55. package/skills/node/tile.json +11 -0
  56. package/skills/nuxt/GENERATION.md +5 -0
  57. package/skills/nuxt/LICENSE.md +21 -0
  58. package/skills/nuxt/SKILL.md +55 -0
  59. package/skills/nuxt/SYNC.md +5 -0
  60. package/skills/nuxt/references/advanced-hooks.md +289 -0
  61. package/skills/nuxt/references/advanced-layers.md +299 -0
  62. package/skills/nuxt/references/advanced-module-authoring.md +554 -0
  63. package/skills/nuxt/references/best-practices-data-fetching.md +357 -0
  64. package/skills/nuxt/references/best-practices-ssr.md +355 -0
  65. package/skills/nuxt/references/core-cli.md +263 -0
  66. package/skills/nuxt/references/core-config.md +162 -0
  67. package/skills/nuxt/references/core-data-fetching.md +236 -0
  68. package/skills/nuxt/references/core-deployment.md +224 -0
  69. package/skills/nuxt/references/core-directory-structure.md +269 -0
  70. package/skills/nuxt/references/core-modules.md +292 -0
  71. package/skills/nuxt/references/core-routing.md +226 -0
  72. package/skills/nuxt/references/features-components-autoimport.md +328 -0
  73. package/skills/nuxt/references/features-components.md +264 -0
  74. package/skills/nuxt/references/features-composables.md +276 -0
  75. package/skills/nuxt/references/features-server.md +265 -0
  76. package/skills/nuxt/references/features-state.md +194 -0
  77. package/skills/nuxt/references/rendering-modes.md +237 -0
  78. package/skills/pinia/GENERATION.md +5 -0
  79. package/skills/pinia/LICENSE.md +21 -0
  80. package/skills/pinia/SKILL.md +59 -0
  81. package/skills/pinia/SYNC.md +5 -0
  82. package/skills/pinia/references/advanced-hmr.md +61 -0
  83. package/skills/pinia/references/advanced-nuxt.md +119 -0
  84. package/skills/pinia/references/advanced-ssr.md +121 -0
  85. package/skills/pinia/references/best-practices-outside-component.md +115 -0
  86. package/skills/pinia/references/best-practices-testing.md +212 -0
  87. package/skills/pinia/references/core-stores.md +389 -0
  88. package/skills/pinia/references/features-composables.md +114 -0
  89. package/skills/pinia/references/features-composing-stores.md +134 -0
  90. package/skills/pinia/references/features-plugins.md +203 -0
  91. package/skills/pnpm/GENERATION.md +5 -0
  92. package/skills/pnpm/LICENSE.md +21 -0
  93. package/skills/pnpm/SKILL.md +42 -0
  94. package/skills/pnpm/SYNC.md +5 -0
  95. package/skills/pnpm/references/best-practices-ci.md +285 -0
  96. package/skills/pnpm/references/best-practices-migration.md +291 -0
  97. package/skills/pnpm/references/best-practices-performance.md +284 -0
  98. package/skills/pnpm/references/core-cli.md +229 -0
  99. package/skills/pnpm/references/core-config.md +188 -0
  100. package/skills/pnpm/references/core-store.md +179 -0
  101. package/skills/pnpm/references/core-workspaces.md +205 -0
  102. package/skills/pnpm/references/features-aliases.md +168 -0
  103. package/skills/pnpm/references/features-catalogs.md +159 -0
  104. package/skills/pnpm/references/features-hooks.md +233 -0
  105. package/skills/pnpm/references/features-overrides.md +184 -0
  106. package/skills/pnpm/references/features-patches.md +201 -0
  107. package/skills/pnpm/references/features-peer-deps.md +250 -0
  108. package/skills/slidev/LICENSE.md +21 -0
  109. package/skills/slidev/README.md +61 -0
  110. package/skills/slidev/SKILL.md +189 -0
  111. package/skills/slidev/SYNC.md +5 -0
  112. package/skills/slidev/references/animation-click-marker.md +37 -0
  113. package/skills/slidev/references/animation-drawing.md +68 -0
  114. package/skills/slidev/references/animation-rough-marker.md +53 -0
  115. package/skills/slidev/references/api-slide-hooks.md +37 -0
  116. package/skills/slidev/references/build-og-image.md +36 -0
  117. package/skills/slidev/references/build-pdf.md +40 -0
  118. package/skills/slidev/references/build-remote-assets.md +34 -0
  119. package/skills/slidev/references/build-seo-meta.md +43 -0
  120. package/skills/slidev/references/code-groups.md +64 -0
  121. package/skills/slidev/references/code-import-snippet.md +55 -0
  122. package/skills/slidev/references/code-line-highlighting.md +50 -0
  123. package/skills/slidev/references/code-line-numbers.md +46 -0
  124. package/skills/slidev/references/code-magic-move.md +57 -0
  125. package/skills/slidev/references/code-max-height.md +37 -0
  126. package/skills/slidev/references/code-twoslash.md +42 -0
  127. package/skills/slidev/references/core-animations.md +196 -0
  128. package/skills/slidev/references/core-cli.md +140 -0
  129. package/skills/slidev/references/core-components.md +197 -0
  130. package/skills/slidev/references/core-exporting.md +148 -0
  131. package/skills/slidev/references/core-frontmatter.md +195 -0
  132. package/skills/slidev/references/core-global-context.md +155 -0
  133. package/skills/slidev/references/core-headmatter.md +188 -0
  134. package/skills/slidev/references/core-hosting.md +152 -0
  135. package/skills/slidev/references/core-layouts.md +286 -0
  136. package/skills/slidev/references/core-syntax.md +155 -0
  137. package/skills/slidev/references/diagram-latex.md +55 -0
  138. package/skills/slidev/references/diagram-mermaid.md +44 -0
  139. package/skills/slidev/references/diagram-plantuml.md +45 -0
  140. package/skills/slidev/references/editor-monaco-run.md +44 -0
  141. package/skills/slidev/references/editor-monaco-write.md +24 -0
  142. package/skills/slidev/references/editor-monaco.md +50 -0
  143. package/skills/slidev/references/editor-prettier.md +40 -0
  144. package/skills/slidev/references/editor-side.md +23 -0
  145. package/skills/slidev/references/editor-vscode.md +55 -0
  146. package/skills/slidev/references/layout-canvas-size.md +25 -0
  147. package/skills/slidev/references/layout-draggable.md +57 -0
  148. package/skills/slidev/references/layout-global-layers.md +50 -0
  149. package/skills/slidev/references/layout-slots.md +75 -0
  150. package/skills/slidev/references/layout-transform.md +33 -0
  151. package/skills/slidev/references/layout-zoom.md +39 -0
  152. package/skills/slidev/references/presenter-notes-ruby.md +35 -0
  153. package/skills/slidev/references/presenter-recording.md +30 -0
  154. package/skills/slidev/references/presenter-remote.md +40 -0
  155. package/skills/slidev/references/presenter-timer.md +34 -0
  156. package/skills/slidev/references/style-direction.md +34 -0
  157. package/skills/slidev/references/style-icons.md +46 -0
  158. package/skills/slidev/references/style-scoped.md +50 -0
  159. package/skills/slidev/references/syntax-block-frontmatter.md +39 -0
  160. package/skills/slidev/references/syntax-comark.md +51 -0
  161. package/skills/slidev/references/syntax-frontmatter-merging.md +49 -0
  162. package/skills/slidev/references/syntax-importing-slides.md +60 -0
  163. package/skills/slidev/references/tool-eject-theme.md +27 -0
  164. package/skills/tsdown/LICENSE.md +22 -0
  165. package/skills/tsdown/README.md +77 -0
  166. package/skills/tsdown/SKILL.md +416 -0
  167. package/skills/tsdown/SYNC.md +5 -0
  168. package/skills/tsdown/references/README.md +139 -0
  169. package/skills/tsdown/references/advanced-benchmark.md +8 -0
  170. package/skills/tsdown/references/advanced-ci.md +89 -0
  171. package/skills/tsdown/references/advanced-hooks.md +363 -0
  172. package/skills/tsdown/references/advanced-plugins.md +381 -0
  173. package/skills/tsdown/references/advanced-programmatic.md +378 -0
  174. package/skills/tsdown/references/advanced-rolldown-options.md +117 -0
  175. package/skills/tsdown/references/guide-getting-started.md +183 -0
  176. package/skills/tsdown/references/guide-introduction.md +42 -0
  177. package/skills/tsdown/references/guide-migrate-from-tsup.md +199 -0
  178. package/skills/tsdown/references/option-cjs-default.md +98 -0
  179. package/skills/tsdown/references/option-cleaning.md +275 -0
  180. package/skills/tsdown/references/option-config-file.md +291 -0
  181. package/skills/tsdown/references/option-css.md +301 -0
  182. package/skills/tsdown/references/option-dependencies.md +385 -0
  183. package/skills/tsdown/references/option-dts.md +251 -0
  184. package/skills/tsdown/references/option-entry.md +211 -0
  185. package/skills/tsdown/references/option-exe.md +120 -0
  186. package/skills/tsdown/references/option-lint.md +127 -0
  187. package/skills/tsdown/references/option-log-level.md +91 -0
  188. package/skills/tsdown/references/option-minification.md +177 -0
  189. package/skills/tsdown/references/option-output-directory.md +272 -0
  190. package/skills/tsdown/references/option-output-format.md +183 -0
  191. package/skills/tsdown/references/option-package-exports.md +320 -0
  192. package/skills/tsdown/references/option-platform.md +256 -0
  193. package/skills/tsdown/references/option-root.md +88 -0
  194. package/skills/tsdown/references/option-shims.md +299 -0
  195. package/skills/tsdown/references/option-sourcemap.md +301 -0
  196. package/skills/tsdown/references/option-target.md +222 -0
  197. package/skills/tsdown/references/option-tree-shaking.md +335 -0
  198. package/skills/tsdown/references/option-unbundle.md +310 -0
  199. package/skills/tsdown/references/option-watch-mode.md +261 -0
  200. package/skills/tsdown/references/recipe-react.md +338 -0
  201. package/skills/tsdown/references/recipe-solid.md +42 -0
  202. package/skills/tsdown/references/recipe-svelte.md +54 -0
  203. package/skills/tsdown/references/recipe-vue.md +387 -0
  204. package/skills/tsdown/references/recipe-wasm.md +125 -0
  205. package/skills/tsdown/references/reference-cli.md +472 -0
  206. package/skills/turborepo/LICENSE.md +7 -0
  207. package/skills/turborepo/SKILL.md +951 -0
  208. package/skills/turborepo/SYNC.md +5 -0
  209. package/skills/turborepo/command/turborepo.md +70 -0
  210. package/skills/turborepo/references/best-practices/RULE.md +241 -0
  211. package/skills/turborepo/references/best-practices/dependencies.md +246 -0
  212. package/skills/turborepo/references/best-practices/packages.md +335 -0
  213. package/skills/turborepo/references/best-practices/structure.md +297 -0
  214. package/skills/turborepo/references/boundaries/RULE.md +126 -0
  215. package/skills/turborepo/references/caching/RULE.md +153 -0
  216. package/skills/turborepo/references/caching/gotchas.md +190 -0
  217. package/skills/turborepo/references/caching/remote-cache.md +127 -0
  218. package/skills/turborepo/references/ci/RULE.md +79 -0
  219. package/skills/turborepo/references/ci/github-actions.md +162 -0
  220. package/skills/turborepo/references/ci/patterns.md +145 -0
  221. package/skills/turborepo/references/ci/vercel.md +103 -0
  222. package/skills/turborepo/references/cli/RULE.md +100 -0
  223. package/skills/turborepo/references/cli/commands.md +297 -0
  224. package/skills/turborepo/references/configuration/RULE.md +235 -0
  225. package/skills/turborepo/references/configuration/global-options.md +239 -0
  226. package/skills/turborepo/references/configuration/gotchas.md +368 -0
  227. package/skills/turborepo/references/configuration/tasks.md +325 -0
  228. package/skills/turborepo/references/environment/RULE.md +123 -0
  229. package/skills/turborepo/references/environment/gotchas.md +175 -0
  230. package/skills/turborepo/references/environment/modes.md +101 -0
  231. package/skills/turborepo/references/filtering/RULE.md +148 -0
  232. package/skills/turborepo/references/filtering/patterns.md +152 -0
  233. package/skills/turborepo/references/watch/RULE.md +99 -0
  234. package/skills/vite/GENERATION.md +5 -0
  235. package/skills/vite/LICENSE.md +21 -0
  236. package/skills/vite/SKILL.md +72 -0
  237. package/skills/vite/SYNC.md +5 -0
  238. package/skills/vite/references/build-and-ssr.md +164 -0
  239. package/skills/vite/references/core-config.md +162 -0
  240. package/skills/vite/references/core-features.md +205 -0
  241. package/skills/vite/references/core-plugin-api.md +235 -0
  242. package/skills/vite/references/environment-api.md +108 -0
  243. package/skills/vite/references/rolldown-migration.md +157 -0
  244. package/skills/vitepress/GENERATION.md +5 -0
  245. package/skills/vitepress/LICENSE.md +21 -0
  246. package/skills/vitepress/SKILL.md +65 -0
  247. package/skills/vitepress/SYNC.md +5 -0
  248. package/skills/vitepress/references/advanced-i18n.md +299 -0
  249. package/skills/vitepress/references/advanced-ssr.md +228 -0
  250. package/skills/vitepress/references/core-cli.md +119 -0
  251. package/skills/vitepress/references/core-config.md +189 -0
  252. package/skills/vitepress/references/core-markdown.md +277 -0
  253. package/skills/vitepress/references/core-routing.md +169 -0
  254. package/skills/vitepress/references/features-code-blocks.md +243 -0
  255. package/skills/vitepress/references/features-data-loading.md +220 -0
  256. package/skills/vitepress/references/features-dynamic-routes.md +235 -0
  257. package/skills/vitepress/references/features-vue.md +224 -0
  258. package/skills/vitepress/references/recipes-deploy.md +240 -0
  259. package/skills/vitepress/references/theme-config.md +315 -0
  260. package/skills/vitepress/references/theme-custom.md +269 -0
  261. package/skills/vitepress/references/theme-customization.md +290 -0
  262. package/skills/vitest/GENERATION.md +5 -0
  263. package/skills/vitest/LICENSE.md +21 -0
  264. package/skills/vitest/SKILL.md +52 -0
  265. package/skills/vitest/SYNC.md +5 -0
  266. package/skills/vitest/references/advanced-environments.md +264 -0
  267. package/skills/vitest/references/advanced-projects.md +300 -0
  268. package/skills/vitest/references/advanced-type-testing.md +237 -0
  269. package/skills/vitest/references/advanced-vi.md +249 -0
  270. package/skills/vitest/references/core-cli.md +166 -0
  271. package/skills/vitest/references/core-config.md +174 -0
  272. package/skills/vitest/references/core-describe.md +193 -0
  273. package/skills/vitest/references/core-expect.md +219 -0
  274. package/skills/vitest/references/core-hooks.md +244 -0
  275. package/skills/vitest/references/core-test-api.md +233 -0
  276. package/skills/vitest/references/features-concurrency.md +250 -0
  277. package/skills/vitest/references/features-context.md +238 -0
  278. package/skills/vitest/references/features-coverage.md +207 -0
  279. package/skills/vitest/references/features-filtering.md +211 -0
  280. package/skills/vitest/references/features-mocking.md +265 -0
  281. package/skills/vitest/references/features-snapshots.md +207 -0
  282. package/skills/vue/GENERATION.md +5 -0
  283. package/skills/vue/LICENSE.md +21 -0
  284. package/skills/vue/SKILL.md +84 -0
  285. package/skills/vue/SYNC.md +5 -0
  286. package/skills/vue/references/advanced-patterns.md +314 -0
  287. package/skills/vue/references/core-new-apis.md +264 -0
  288. package/skills/vue/references/script-setup-macros.md +204 -0
  289. package/skills/vue-best-practices/LICENSE.md +21 -0
  290. package/skills/vue-best-practices/SKILL.md +154 -0
  291. package/skills/vue-best-practices/SYNC.md +5 -0
  292. package/skills/vue-best-practices/references/animation-class-based-technique.md +254 -0
  293. package/skills/vue-best-practices/references/animation-state-driven-technique.md +291 -0
  294. package/skills/vue-best-practices/references/component-async.md +97 -0
  295. package/skills/vue-best-practices/references/component-data-flow.md +307 -0
  296. package/skills/vue-best-practices/references/component-fallthrough-attrs.md +174 -0
  297. package/skills/vue-best-practices/references/component-keep-alive.md +137 -0
  298. package/skills/vue-best-practices/references/component-slots.md +216 -0
  299. package/skills/vue-best-practices/references/component-suspense.md +228 -0
  300. package/skills/vue-best-practices/references/component-teleport.md +108 -0
  301. package/skills/vue-best-practices/references/component-transition-group.md +128 -0
  302. package/skills/vue-best-practices/references/component-transition.md +125 -0
  303. package/skills/vue-best-practices/references/composables.md +290 -0
  304. package/skills/vue-best-practices/references/directives.md +162 -0
  305. package/skills/vue-best-practices/references/perf-avoid-component-abstraction-in-lists.md +159 -0
  306. package/skills/vue-best-practices/references/perf-v-once-v-memo-directives.md +182 -0
  307. package/skills/vue-best-practices/references/perf-virtualize-large-lists.md +187 -0
  308. package/skills/vue-best-practices/references/plugins.md +166 -0
  309. package/skills/vue-best-practices/references/reactivity.md +344 -0
  310. package/skills/vue-best-practices/references/render-functions.md +201 -0
  311. package/skills/vue-best-practices/references/sfc.md +310 -0
  312. package/skills/vue-best-practices/references/state-management.md +135 -0
  313. package/skills/vue-best-practices/references/updated-hook-performance.md +187 -0
  314. package/skills/vue-router-best-practices/LICENSE.md +21 -0
  315. package/skills/vue-router-best-practices/SKILL.md +23 -0
  316. package/skills/vue-router-best-practices/SYNC.md +5 -0
  317. package/skills/vue-router-best-practices/reference/router-beforeenter-no-param-trigger.md +167 -0
  318. package/skills/vue-router-best-practices/reference/router-beforerouteenter-no-this.md +176 -0
  319. package/skills/vue-router-best-practices/reference/router-guard-async-await-pattern.md +227 -0
  320. package/skills/vue-router-best-practices/reference/router-navigation-guard-infinite-loop.md +187 -0
  321. package/skills/vue-router-best-practices/reference/router-navigation-guard-next-deprecated.md +150 -0
  322. package/skills/vue-router-best-practices/reference/router-param-change-no-lifecycle.md +181 -0
  323. package/skills/vue-router-best-practices/reference/router-simple-routing-cleanup.md +209 -0
  324. package/skills/vue-router-best-practices/reference/router-use-vue-router-for-production.md +183 -0
  325. package/skills/vue-testing-best-practices/LICENSE.md +21 -0
  326. package/skills/vue-testing-best-practices/SKILL.md +29 -0
  327. package/skills/vue-testing-best-practices/SYNC.md +5 -0
  328. package/skills/vue-testing-best-practices/reference/async-component-testing.md +163 -0
  329. package/skills/vue-testing-best-practices/reference/teleport-testing-complexity.md +158 -0
  330. package/skills/vue-testing-best-practices/reference/testing-async-await-flushpromises.md +175 -0
  331. package/skills/vue-testing-best-practices/reference/testing-browser-vs-node-runners.md +208 -0
  332. package/skills/vue-testing-best-practices/reference/testing-component-blackbox-approach.md +144 -0
  333. package/skills/vue-testing-best-practices/reference/testing-composables-helper-wrapper.md +238 -0
  334. package/skills/vue-testing-best-practices/reference/testing-e2e-playwright-recommended.md +242 -0
  335. package/skills/vue-testing-best-practices/reference/testing-no-snapshot-only.md +197 -0
  336. package/skills/vue-testing-best-practices/reference/testing-pinia-store-setup.md +228 -0
  337. package/skills/vue-testing-best-practices/reference/testing-suspense-async-components.md +229 -0
  338. package/skills/vue-testing-best-practices/reference/testing-vitest-recommended-for-vue.md +204 -0
  339. package/skills/vueuse-functions/LICENSE.md +21 -0
  340. package/skills/vueuse-functions/SKILL.md +419 -0
  341. package/skills/vueuse-functions/SYNC.md +5 -0
  342. package/skills/vueuse-functions/references/computedAsync.md +195 -0
  343. package/skills/vueuse-functions/references/computedEager.md +62 -0
  344. package/skills/vueuse-functions/references/computedInject.md +137 -0
  345. package/skills/vueuse-functions/references/computedWithControl.md +98 -0
  346. package/skills/vueuse-functions/references/createEventHook.md +86 -0
  347. package/skills/vueuse-functions/references/createGenericProjection.md +25 -0
  348. package/skills/vueuse-functions/references/createGlobalState.md +95 -0
  349. package/skills/vueuse-functions/references/createInjectionState.md +226 -0
  350. package/skills/vueuse-functions/references/createProjection.md +31 -0
  351. package/skills/vueuse-functions/references/createRef.md +54 -0
  352. package/skills/vueuse-functions/references/createReusableTemplate.md +361 -0
  353. package/skills/vueuse-functions/references/createSharedComposable.md +42 -0
  354. package/skills/vueuse-functions/references/createTemplatePromise.md +306 -0
  355. package/skills/vueuse-functions/references/createUnrefFn.md +51 -0
  356. package/skills/vueuse-functions/references/extendRef.md +76 -0
  357. package/skills/vueuse-functions/references/from.md +80 -0
  358. package/skills/vueuse-functions/references/get.md +30 -0
  359. package/skills/vueuse-functions/references/injectLocal.md +35 -0
  360. package/skills/vueuse-functions/references/isDefined.md +31 -0
  361. package/skills/vueuse-functions/references/logicAnd.md +40 -0
  362. package/skills/vueuse-functions/references/logicNot.md +36 -0
  363. package/skills/vueuse-functions/references/logicOr.md +40 -0
  364. package/skills/vueuse-functions/references/makeDestructurable.md +41 -0
  365. package/skills/vueuse-functions/references/onClickOutside.md +228 -0
  366. package/skills/vueuse-functions/references/onElementRemoval.md +88 -0
  367. package/skills/vueuse-functions/references/onKeyStroke.md +212 -0
  368. package/skills/vueuse-functions/references/onLongPress.md +235 -0
  369. package/skills/vueuse-functions/references/onStartTyping.md +53 -0
  370. package/skills/vueuse-functions/references/provideLocal.md +37 -0
  371. package/skills/vueuse-functions/references/reactify.md +144 -0
  372. package/skills/vueuse-functions/references/reactifyObject.md +62 -0
  373. package/skills/vueuse-functions/references/reactiveComputed.md +34 -0
  374. package/skills/vueuse-functions/references/reactiveOmit.md +86 -0
  375. package/skills/vueuse-functions/references/reactivePick.md +106 -0
  376. package/skills/vueuse-functions/references/refAutoReset.md +46 -0
  377. package/skills/vueuse-functions/references/refDebounced.md +81 -0
  378. package/skills/vueuse-functions/references/refDefault.md +36 -0
  379. package/skills/vueuse-functions/references/refManualReset.md +48 -0
  380. package/skills/vueuse-functions/references/refThrottled.md +99 -0
  381. package/skills/vueuse-functions/references/refWithControl.md +146 -0
  382. package/skills/vueuse-functions/references/set.md +30 -0
  383. package/skills/vueuse-functions/references/syncRef.md +195 -0
  384. package/skills/vueuse-functions/references/syncRefs.md +128 -0
  385. package/skills/vueuse-functions/references/templateRef.md +86 -0
  386. package/skills/vueuse-functions/references/toObserver.md +38 -0
  387. package/skills/vueuse-functions/references/toReactive.md +41 -0
  388. package/skills/vueuse-functions/references/toRef.md +74 -0
  389. package/skills/vueuse-functions/references/toRefs.md +78 -0
  390. package/skills/vueuse-functions/references/tryOnBeforeMount.md +34 -0
  391. package/skills/vueuse-functions/references/tryOnBeforeUnmount.md +32 -0
  392. package/skills/vueuse-functions/references/tryOnMounted.md +34 -0
  393. package/skills/vueuse-functions/references/tryOnScopeDispose.md +31 -0
  394. package/skills/vueuse-functions/references/tryOnUnmounted.md +32 -0
  395. package/skills/vueuse-functions/references/unrefElement.md +54 -0
  396. package/skills/vueuse-functions/references/until.md +161 -0
  397. package/skills/vueuse-functions/references/useAbs.md +31 -0
  398. package/skills/vueuse-functions/references/useActiveElement.md +86 -0
  399. package/skills/vueuse-functions/references/useAnimate.md +180 -0
  400. package/skills/vueuse-functions/references/useArrayDifference.md +84 -0
  401. package/skills/vueuse-functions/references/useArrayEvery.md +59 -0
  402. package/skills/vueuse-functions/references/useArrayFilter.md +63 -0
  403. package/skills/vueuse-functions/references/useArrayFind.md +50 -0
  404. package/skills/vueuse-functions/references/useArrayFindIndex.md +59 -0
  405. package/skills/vueuse-functions/references/useArrayFindLast.md +52 -0
  406. package/skills/vueuse-functions/references/useArrayIncludes.md +63 -0
  407. package/skills/vueuse-functions/references/useArrayJoin.md +74 -0
  408. package/skills/vueuse-functions/references/useArrayMap.md +59 -0
  409. package/skills/vueuse-functions/references/useArrayReduce.md +81 -0
  410. package/skills/vueuse-functions/references/useArraySome.md +59 -0
  411. package/skills/vueuse-functions/references/useArrayUnique.md +76 -0
  412. package/skills/vueuse-functions/references/useAsyncQueue.md +136 -0
  413. package/skills/vueuse-functions/references/useAsyncState.md +185 -0
  414. package/skills/vueuse-functions/references/useAsyncValidator.md +70 -0
  415. package/skills/vueuse-functions/references/useAuth.md +123 -0
  416. package/skills/vueuse-functions/references/useAverage.md +36 -0
  417. package/skills/vueuse-functions/references/useAxios.md +325 -0
  418. package/skills/vueuse-functions/references/useBase64.md +136 -0
  419. package/skills/vueuse-functions/references/useBattery.md +80 -0
  420. package/skills/vueuse-functions/references/useBluetooth.md +174 -0
  421. package/skills/vueuse-functions/references/useBreakpoints.md +176 -0
  422. package/skills/vueuse-functions/references/useBroadcastChannel.md +73 -0
  423. package/skills/vueuse-functions/references/useBrowserLocation.md +56 -0
  424. package/skills/vueuse-functions/references/useCached.md +52 -0
  425. package/skills/vueuse-functions/references/useCeil.md +31 -0
  426. package/skills/vueuse-functions/references/useChangeCase.md +79 -0
  427. package/skills/vueuse-functions/references/useClamp.md +85 -0
  428. package/skills/vueuse-functions/references/useClipboard.md +122 -0
  429. package/skills/vueuse-functions/references/useClipboardItems.md +93 -0
  430. package/skills/vueuse-functions/references/useCloned.md +91 -0
  431. package/skills/vueuse-functions/references/useColorMode.md +172 -0
  432. package/skills/vueuse-functions/references/useConfirmDialog.md +159 -0
  433. package/skills/vueuse-functions/references/useCookies.md +162 -0
  434. package/skills/vueuse-functions/references/useCountdown.md +105 -0
  435. package/skills/vueuse-functions/references/useCounter.md +86 -0
  436. package/skills/vueuse-functions/references/useCssSupports.md +33 -0
  437. package/skills/vueuse-functions/references/useCssVar.md +50 -0
  438. package/skills/vueuse-functions/references/useCurrentElement.md +61 -0
  439. package/skills/vueuse-functions/references/useCycleList.md +75 -0
  440. package/skills/vueuse-functions/references/useDark.md +142 -0
  441. package/skills/vueuse-functions/references/useDateFormat.md +145 -0
  442. package/skills/vueuse-functions/references/useDebounceFn.md +100 -0
  443. package/skills/vueuse-functions/references/useDebouncedRefHistory.md +40 -0
  444. package/skills/vueuse-functions/references/useDeviceMotion.md +80 -0
  445. package/skills/vueuse-functions/references/useDeviceOrientation.md +64 -0
  446. package/skills/vueuse-functions/references/useDevicePixelRatio.md +47 -0
  447. package/skills/vueuse-functions/references/useDevicesList.md +89 -0
  448. package/skills/vueuse-functions/references/useDisplayMedia.md +67 -0
  449. package/skills/vueuse-functions/references/useDocumentVisibility.md +44 -0
  450. package/skills/vueuse-functions/references/useDraggable.md +289 -0
  451. package/skills/vueuse-functions/references/useDrauu.md +65 -0
  452. package/skills/vueuse-functions/references/useDropZone.md +83 -0
  453. package/skills/vueuse-functions/references/useElementBounding.md +131 -0
  454. package/skills/vueuse-functions/references/useElementByPoint.md +46 -0
  455. package/skills/vueuse-functions/references/useElementHover.md +79 -0
  456. package/skills/vueuse-functions/references/useElementSize.md +79 -0
  457. package/skills/vueuse-functions/references/useElementVisibility.md +163 -0
  458. package/skills/vueuse-functions/references/useEventBus.md +101 -0
  459. package/skills/vueuse-functions/references/useEventListener.md +226 -0
  460. package/skills/vueuse-functions/references/useEventSource.md +204 -0
  461. package/skills/vueuse-functions/references/useExtractedObservable.md +198 -0
  462. package/skills/vueuse-functions/references/useEyeDropper.md +72 -0
  463. package/skills/vueuse-functions/references/useFavicon.md +69 -0
  464. package/skills/vueuse-functions/references/useFetch.md +546 -0
  465. package/skills/vueuse-functions/references/useFileDialog.md +91 -0
  466. package/skills/vueuse-functions/references/useFileSystemAccess.md +161 -0
  467. package/skills/vueuse-functions/references/useFirestore.md +129 -0
  468. package/skills/vueuse-functions/references/useFloor.md +31 -0
  469. package/skills/vueuse-functions/references/useFocus.md +99 -0
  470. package/skills/vueuse-functions/references/useFocusTrap.md +245 -0
  471. package/skills/vueuse-functions/references/useFocusWithin.md +57 -0
  472. package/skills/vueuse-functions/references/useFps.md +28 -0
  473. package/skills/vueuse-functions/references/useFullscreen.md +74 -0
  474. package/skills/vueuse-functions/references/useFuse.md +75 -0
  475. package/skills/vueuse-functions/references/useGamepad.md +176 -0
  476. package/skills/vueuse-functions/references/useGeolocation.md +63 -0
  477. package/skills/vueuse-functions/references/useIDBKeyval.md +93 -0
  478. package/skills/vueuse-functions/references/useIdle.md +88 -0
  479. package/skills/vueuse-functions/references/useImage.md +90 -0
  480. package/skills/vueuse-functions/references/useInfiniteScroll.md +156 -0
  481. package/skills/vueuse-functions/references/useIntersectionObserver.md +117 -0
  482. package/skills/vueuse-functions/references/useInterval.md +112 -0
  483. package/skills/vueuse-functions/references/useIntervalFn.md +50 -0
  484. package/skills/vueuse-functions/references/useIpcRenderer.md +144 -0
  485. package/skills/vueuse-functions/references/useIpcRendererInvoke.md +58 -0
  486. package/skills/vueuse-functions/references/useIpcRendererOn.md +52 -0
  487. package/skills/vueuse-functions/references/useJwt.md +57 -0
  488. package/skills/vueuse-functions/references/useKeyModifier.md +87 -0
  489. package/skills/vueuse-functions/references/useLastChanged.md +63 -0
  490. package/skills/vueuse-functions/references/useLocalStorage.md +41 -0
  491. package/skills/vueuse-functions/references/useMagicKeys.md +245 -0
  492. package/skills/vueuse-functions/references/useManualRefHistory.md +204 -0
  493. package/skills/vueuse-functions/references/useMath.md +47 -0
  494. package/skills/vueuse-functions/references/useMax.md +36 -0
  495. package/skills/vueuse-functions/references/useMediaControls.md +201 -0
  496. package/skills/vueuse-functions/references/useMediaQuery.md +53 -0
  497. package/skills/vueuse-functions/references/useMemoize.md +175 -0
  498. package/skills/vueuse-functions/references/useMemory.md +70 -0
  499. package/skills/vueuse-functions/references/useMin.md +36 -0
  500. package/skills/vueuse-functions/references/useMounted.md +38 -0
  501. package/skills/vueuse-functions/references/useMouse.md +113 -0
  502. package/skills/vueuse-functions/references/useMouseInElement.md +132 -0
  503. package/skills/vueuse-functions/references/useMousePressed.md +116 -0
  504. package/skills/vueuse-functions/references/useMutationObserver.md +60 -0
  505. package/skills/vueuse-functions/references/useNProgress.md +78 -0
  506. package/skills/vueuse-functions/references/useNavigatorLanguage.md +57 -0
  507. package/skills/vueuse-functions/references/useNetwork.md +106 -0
  508. package/skills/vueuse-functions/references/useNow.md +83 -0
  509. package/skills/vueuse-functions/references/useObjectUrl.md +55 -0
  510. package/skills/vueuse-functions/references/useObservable.md +91 -0
  511. package/skills/vueuse-functions/references/useOffsetPagination.md +199 -0
  512. package/skills/vueuse-functions/references/useOnline.md +41 -0
  513. package/skills/vueuse-functions/references/usePageLeave.md +43 -0
  514. package/skills/vueuse-functions/references/useParallax.md +58 -0
  515. package/skills/vueuse-functions/references/useParentElement.md +54 -0
  516. package/skills/vueuse-functions/references/usePerformanceObserver.md +48 -0
  517. package/skills/vueuse-functions/references/usePermission.md +78 -0
  518. package/skills/vueuse-functions/references/usePointer.md +91 -0
  519. package/skills/vueuse-functions/references/usePointerLock.md +59 -0
  520. package/skills/vueuse-functions/references/usePointerSwipe.md +80 -0
  521. package/skills/vueuse-functions/references/usePrecision.md +49 -0
  522. package/skills/vueuse-functions/references/usePreferredColorScheme.md +42 -0
  523. package/skills/vueuse-functions/references/usePreferredContrast.md +42 -0
  524. package/skills/vueuse-functions/references/usePreferredDark.md +41 -0
  525. package/skills/vueuse-functions/references/usePreferredLanguages.md +41 -0
  526. package/skills/vueuse-functions/references/usePreferredReducedMotion.md +42 -0
  527. package/skills/vueuse-functions/references/usePreferredReducedTransparency.md +42 -0
  528. package/skills/vueuse-functions/references/usePrevious.md +40 -0
  529. package/skills/vueuse-functions/references/useProjection.md +38 -0
  530. package/skills/vueuse-functions/references/useQRCode.md +53 -0
  531. package/skills/vueuse-functions/references/useRTDB.md +83 -0
  532. package/skills/vueuse-functions/references/useRafFn.md +68 -0
  533. package/skills/vueuse-functions/references/useRefHistory.md +285 -0
  534. package/skills/vueuse-functions/references/useResizeObserver.md +108 -0
  535. package/skills/vueuse-functions/references/useRound.md +31 -0
  536. package/skills/vueuse-functions/references/useRouteHash.md +27 -0
  537. package/skills/vueuse-functions/references/useRouteParams.md +38 -0
  538. package/skills/vueuse-functions/references/useRouteQuery.md +79 -0
  539. package/skills/vueuse-functions/references/useSSRWidth.md +47 -0
  540. package/skills/vueuse-functions/references/useScreenOrientation.md +98 -0
  541. package/skills/vueuse-functions/references/useScreenSafeArea.md +60 -0
  542. package/skills/vueuse-functions/references/useScriptTag.md +116 -0
  543. package/skills/vueuse-functions/references/useScroll.md +238 -0
  544. package/skills/vueuse-functions/references/useScrollLock.md +66 -0
  545. package/skills/vueuse-functions/references/useSessionStorage.md +41 -0
  546. package/skills/vueuse-functions/references/useShare.md +67 -0
  547. package/skills/vueuse-functions/references/useSortable.md +276 -0
  548. package/skills/vueuse-functions/references/useSorted.md +90 -0
  549. package/skills/vueuse-functions/references/useSpeechRecognition.md +90 -0
  550. package/skills/vueuse-functions/references/useSpeechSynthesis.md +101 -0
  551. package/skills/vueuse-functions/references/useStepper.md +137 -0
  552. package/skills/vueuse-functions/references/useStorage.md +278 -0
  553. package/skills/vueuse-functions/references/useStorageAsync.md +136 -0
  554. package/skills/vueuse-functions/references/useStyleTag.md +131 -0
  555. package/skills/vueuse-functions/references/useSubject.md +77 -0
  556. package/skills/vueuse-functions/references/useSubscription.md +33 -0
  557. package/skills/vueuse-functions/references/useSum.md +36 -0
  558. package/skills/vueuse-functions/references/useSupported.md +29 -0
  559. package/skills/vueuse-functions/references/useSwipe.md +75 -0
  560. package/skills/vueuse-functions/references/useTemplateRefsList.md +37 -0
  561. package/skills/vueuse-functions/references/useTextDirection.md +75 -0
  562. package/skills/vueuse-functions/references/useTextSelection.md +43 -0
  563. package/skills/vueuse-functions/references/useTextareaAutosize.md +94 -0
  564. package/skills/vueuse-functions/references/useThrottleFn.md +57 -0
  565. package/skills/vueuse-functions/references/useThrottledRefHistory.md +47 -0
  566. package/skills/vueuse-functions/references/useTimeAgo.md +154 -0
  567. package/skills/vueuse-functions/references/useTimeAgoIntl.md +117 -0
  568. package/skills/vueuse-functions/references/useTimeout.md +113 -0
  569. package/skills/vueuse-functions/references/useTimeoutFn.md +51 -0
  570. package/skills/vueuse-functions/references/useTimeoutPoll.md +47 -0
  571. package/skills/vueuse-functions/references/useTimestamp.md +93 -0
  572. package/skills/vueuse-functions/references/useTitle.md +115 -0
  573. package/skills/vueuse-functions/references/useToNumber.md +54 -0
  574. package/skills/vueuse-functions/references/useToString.md +34 -0
  575. package/skills/vueuse-functions/references/useToggle.md +103 -0
  576. package/skills/vueuse-functions/references/useTransition.md +265 -0
  577. package/skills/vueuse-functions/references/useTrunc.md +33 -0
  578. package/skills/vueuse-functions/references/useUrlSearchParams.md +121 -0
  579. package/skills/vueuse-functions/references/useUserMedia.md +96 -0
  580. package/skills/vueuse-functions/references/useVModel.md +182 -0
  581. package/skills/vueuse-functions/references/useVModels.md +67 -0
  582. package/skills/vueuse-functions/references/useVibrate.md +86 -0
  583. package/skills/vueuse-functions/references/useVirtualList.md +182 -0
  584. package/skills/vueuse-functions/references/useWakeLock.md +51 -0
  585. package/skills/vueuse-functions/references/useWebNotification.md +175 -0
  586. package/skills/vueuse-functions/references/useWebSocket.md +299 -0
  587. package/skills/vueuse-functions/references/useWebWorker.md +60 -0
  588. package/skills/vueuse-functions/references/useWebWorkerFn.md +102 -0
  589. package/skills/vueuse-functions/references/useWindowFocus.md +46 -0
  590. package/skills/vueuse-functions/references/useWindowScroll.md +46 -0
  591. package/skills/vueuse-functions/references/useWindowSize.md +78 -0
  592. package/skills/vueuse-functions/references/useZoomFactor.md +53 -0
  593. package/skills/vueuse-functions/references/useZoomLevel.md +53 -0
  594. package/skills/vueuse-functions/references/watchArray.md +53 -0
  595. package/skills/vueuse-functions/references/watchAtMost.md +63 -0
  596. package/skills/vueuse-functions/references/watchDebounced.md +101 -0
  597. package/skills/vueuse-functions/references/watchDeep.md +54 -0
  598. package/skills/vueuse-functions/references/watchExtractedObservable.md +192 -0
  599. package/skills/vueuse-functions/references/watchIgnorable.md +120 -0
  600. package/skills/vueuse-functions/references/watchImmediate.md +44 -0
  601. package/skills/vueuse-functions/references/watchOnce.md +41 -0
  602. package/skills/vueuse-functions/references/watchPausable.md +86 -0
  603. package/skills/vueuse-functions/references/watchThrottled.md +108 -0
  604. package/skills/vueuse-functions/references/watchTriggerable.md +98 -0
  605. package/skills/vueuse-functions/references/watchWithFilter.md +54 -0
  606. package/skills/vueuse-functions/references/whenever.md +108 -0
  607. package/skills/web-design-guidelines/SKILL.md +39 -0
  608. package/skills/web-design-guidelines/SYNC.md +5 -0
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: composables-in-stores
3
+ description: Using Vue composables within Pinia stores
4
+ ---
5
+
6
+ # Composables in Stores
7
+
8
+ Pinia stores can leverage Vue composables for reusable stateful logic.
9
+
10
+ ## Option Stores
11
+
12
+ Call composables inside the `state` property, but only those returning writable refs:
13
+
14
+ ```ts
15
+ import { defineStore } from 'pinia'
16
+ import { useLocalStorage } from '@vueuse/core'
17
+
18
+ export const useAuthStore = defineStore('auth', {
19
+ state: () => ({
20
+ user: useLocalStorage('pinia/auth/login', 'bob'),
21
+ }),
22
+ })
23
+ ```
24
+
25
+ **Works:** Composables returning `ref()`:
26
+ - `useLocalStorage`
27
+ - `useAsyncState`
28
+
29
+ **Doesn't work in Option Stores:**
30
+ - Composables exposing functions
31
+ - Composables exposing readonly data
32
+
33
+ ## Setup Stores
34
+
35
+ More flexible - can use almost any composable:
36
+
37
+ ```ts
38
+ import { defineStore } from 'pinia'
39
+ import { useMediaControls } from '@vueuse/core'
40
+ import { ref } from 'vue'
41
+
42
+ export const useVideoPlayer = defineStore('video', () => {
43
+ const videoElement = ref<HTMLVideoElement>()
44
+ const src = ref('/data/video.mp4')
45
+ const { playing, volume, currentTime, togglePictureInPicture } =
46
+ useMediaControls(videoElement, { src })
47
+
48
+ function loadVideo(element: HTMLVideoElement, newSrc: string) {
49
+ videoElement.value = element
50
+ src.value = newSrc
51
+ }
52
+
53
+ return {
54
+ src,
55
+ playing,
56
+ volume,
57
+ currentTime,
58
+ loadVideo,
59
+ togglePictureInPicture,
60
+ }
61
+ })
62
+ ```
63
+
64
+ **Note:** Don't return non-serializable DOM refs like `videoElement` - they're internal implementation details.
65
+
66
+ ## SSR Considerations
67
+
68
+ ### Option Stores with hydrate()
69
+
70
+ Define a `hydrate()` function to handle client-side hydration:
71
+
72
+ ```ts
73
+ import { defineStore } from 'pinia'
74
+ import { useLocalStorage } from '@vueuse/core'
75
+
76
+ export const useAuthStore = defineStore('auth', {
77
+ state: () => ({
78
+ user: useLocalStorage('pinia/auth/login', 'bob'),
79
+ }),
80
+
81
+ hydrate(state, initialState) {
82
+ // Ignore server state, read from browser
83
+ state.user = useLocalStorage('pinia/auth/login', 'bob')
84
+ },
85
+ })
86
+ ```
87
+
88
+ ### Setup Stores with skipHydrate()
89
+
90
+ Mark state that shouldn't hydrate from server:
91
+
92
+ ```ts
93
+ import { defineStore, skipHydrate } from 'pinia'
94
+ import { useEyeDropper, useLocalStorage } from '@vueuse/core'
95
+
96
+ export const useColorStore = defineStore('colors', () => {
97
+ const { isSupported, open, sRGBHex } = useEyeDropper()
98
+ const lastColor = useLocalStorage('lastColor', sRGBHex)
99
+
100
+ return {
101
+ // Skip hydration for client-only state
102
+ lastColor: skipHydrate(lastColor),
103
+ open, // Function - no hydration needed
104
+ isSupported, // Boolean - not reactive
105
+ }
106
+ })
107
+ ```
108
+
109
+ `skipHydrate()` only applies to state properties (refs), not functions or non-reactive values.
110
+
111
+ <!--
112
+ Source references:
113
+ - https://pinia.vuejs.org/cookbook/composables.html
114
+ -->
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: composing-stores
3
+ description: Store-to-store communication and avoiding circular dependencies
4
+ ---
5
+
6
+ # Composing Stores
7
+
8
+ Stores can use each other for shared state and logic.
9
+
10
+ ## Rule: Avoid Circular Dependencies
11
+
12
+ Two stores cannot directly read each other's state during setup:
13
+
14
+ ```ts
15
+ // ❌ Infinite loop
16
+ const useX = defineStore('x', () => {
17
+ const y = useY()
18
+ y.name // Don't read here!
19
+ return { name: ref('X') }
20
+ })
21
+
22
+ const useY = defineStore('y', () => {
23
+ const x = useX()
24
+ x.name // Don't read here!
25
+ return { name: ref('Y') }
26
+ })
27
+ ```
28
+
29
+ **Solution:** Read in getters, computed, or actions:
30
+
31
+ ```ts
32
+ const useX = defineStore('x', () => {
33
+ const y = useY()
34
+
35
+ // ✅ Read in computed/actions
36
+ function doSomething() {
37
+ const yName = y.name
38
+ }
39
+
40
+ return { name: ref('X'), doSomething }
41
+ })
42
+ ```
43
+
44
+ ## Setup Stores: Use Store at Top
45
+
46
+ ```ts
47
+ import { defineStore } from 'pinia'
48
+ import { useUserStore } from './user'
49
+
50
+ export const useCartStore = defineStore('cart', () => {
51
+ const user = useUserStore()
52
+ const list = ref([])
53
+
54
+ const summary = computed(() => {
55
+ return `Hi ${user.name}, you have ${list.value.length} items`
56
+ })
57
+
58
+ function purchase() {
59
+ return apiPurchase(user.id, list.value)
60
+ }
61
+
62
+ return { list, summary, purchase }
63
+ })
64
+ ```
65
+
66
+ ## Shared Getters
67
+
68
+ Call `useStore()` inside a getter:
69
+
70
+ ```ts
71
+ import { useUserStore } from './user'
72
+
73
+ export const useCartStore = defineStore('cart', {
74
+ getters: {
75
+ summary(state) {
76
+ const user = useUserStore()
77
+ return `Hi ${user.name}, you have ${state.list.length} items`
78
+ },
79
+ },
80
+ })
81
+ ```
82
+
83
+ ## Shared Actions
84
+
85
+ Call `useStore()` inside an action:
86
+
87
+ ```ts
88
+ import { useUserStore } from './user'
89
+ import { apiOrderCart } from './api'
90
+
91
+ export const useCartStore = defineStore('cart', {
92
+ actions: {
93
+ async orderCart() {
94
+ const user = useUserStore()
95
+
96
+ try {
97
+ await apiOrderCart(user.token, this.items)
98
+ this.emptyCart()
99
+ } catch (err) {
100
+ displayError(err)
101
+ }
102
+ },
103
+ },
104
+ })
105
+ ```
106
+
107
+ ## SSR: Call Stores Before Await
108
+
109
+ In async actions, call all stores before any `await`:
110
+
111
+ ```ts
112
+ actions: {
113
+ async orderCart() {
114
+ // ✅ All useStore() calls before await
115
+ const user = useUserStore()
116
+ const analytics = useAnalyticsStore()
117
+
118
+ try {
119
+ await apiOrderCart(user.token, this.items)
120
+ // ❌ Don't call useStore() after await (SSR issue)
121
+ // const otherStore = useOtherStore()
122
+ } catch (err) {
123
+ displayError(err)
124
+ }
125
+ },
126
+ }
127
+ ```
128
+
129
+ This ensures the correct Pinia instance is used during SSR.
130
+
131
+ <!--
132
+ Source references:
133
+ - https://pinia.vuejs.org/cookbook/composing-stores.html
134
+ -->
@@ -0,0 +1,203 @@
1
+ ---
2
+ name: plugins
3
+ description: Extend stores with custom properties, methods, and behavior
4
+ ---
5
+
6
+ # Plugins
7
+
8
+ Plugins extend all stores with custom properties, methods, or behavior.
9
+
10
+ ## Basic Plugin
11
+
12
+ ```ts
13
+ import { createPinia } from 'pinia'
14
+
15
+ function SecretPiniaPlugin() {
16
+ return { secret: 'the cake is a lie' }
17
+ }
18
+
19
+ const pinia = createPinia()
20
+ pinia.use(SecretPiniaPlugin)
21
+
22
+ // In any store
23
+ const store = useStore()
24
+ store.secret // 'the cake is a lie'
25
+ ```
26
+
27
+ ## Plugin Context
28
+
29
+ Plugins receive a context object:
30
+
31
+ ```ts
32
+ import { PiniaPluginContext } from 'pinia'
33
+
34
+ export function myPiniaPlugin(context: PiniaPluginContext) {
35
+ context.pinia // pinia instance
36
+ context.app // Vue app instance
37
+ context.store // store being augmented
38
+ context.options // store definition options
39
+ }
40
+ ```
41
+
42
+ ## Adding Properties
43
+
44
+ Return an object to add properties (tracked in devtools):
45
+
46
+ ```ts
47
+ pinia.use(() => ({ hello: 'world' }))
48
+ ```
49
+
50
+ Or set directly on store:
51
+
52
+ ```ts
53
+ pinia.use(({ store }) => {
54
+ store.hello = 'world'
55
+ // For devtools visibility in dev mode
56
+ if (process.env.NODE_ENV === 'development') {
57
+ store._customProperties.add('hello')
58
+ }
59
+ })
60
+ ```
61
+
62
+ ## Adding State
63
+
64
+ Add to both `store` and `store.$state` for SSR/devtools:
65
+
66
+ ```ts
67
+ import { toRef, ref } from 'vue'
68
+
69
+ pinia.use(({ store }) => {
70
+ if (!store.$state.hasOwnProperty('hasError')) {
71
+ const hasError = ref(false)
72
+ store.$state.hasError = hasError
73
+ }
74
+ store.hasError = toRef(store.$state, 'hasError')
75
+ })
76
+ ```
77
+
78
+ ## Adding External Properties
79
+
80
+ Wrap non-reactive objects with `markRaw()`:
81
+
82
+ ```ts
83
+ import { markRaw } from 'vue'
84
+ import { router } from './router'
85
+
86
+ pinia.use(({ store }) => {
87
+ store.router = markRaw(router)
88
+ })
89
+ ```
90
+
91
+ ## Custom Store Options
92
+
93
+ Define custom options consumed by plugins:
94
+
95
+ ```ts
96
+ // Store definition
97
+ defineStore('search', {
98
+ actions: {
99
+ searchContacts() { /* ... */ },
100
+ },
101
+ debounce: {
102
+ searchContacts: 300,
103
+ },
104
+ })
105
+
106
+ // Plugin reads custom option
107
+ import debounce from 'lodash/debounce'
108
+
109
+ pinia.use(({ options, store }) => {
110
+ if (options.debounce) {
111
+ return Object.keys(options.debounce).reduce((acc, action) => {
112
+ acc[action] = debounce(store[action], options.debounce[action])
113
+ return acc
114
+ }, {})
115
+ }
116
+ })
117
+ ```
118
+
119
+ For Setup Stores, pass options as third argument:
120
+
121
+ ```ts
122
+ defineStore(
123
+ 'search',
124
+ () => { /* ... */ },
125
+ {
126
+ debounce: { searchContacts: 300 },
127
+ }
128
+ )
129
+ ```
130
+
131
+ ## TypeScript Augmentation
132
+
133
+ ### Custom Properties
134
+
135
+ ```ts
136
+ import 'pinia'
137
+ import type { Router } from 'vue-router'
138
+
139
+ declare module 'pinia' {
140
+ export interface PiniaCustomProperties {
141
+ router: Router
142
+ hello: string
143
+ }
144
+ }
145
+ ```
146
+
147
+ ### Custom State
148
+
149
+ ```ts
150
+ declare module 'pinia' {
151
+ export interface PiniaCustomStateProperties<S> {
152
+ hasError: boolean
153
+ }
154
+ }
155
+ ```
156
+
157
+ ### Custom Options
158
+
159
+ ```ts
160
+ declare module 'pinia' {
161
+ export interface DefineStoreOptionsBase<S, Store> {
162
+ debounce?: Partial<Record<keyof StoreActions<Store>, number>>
163
+ }
164
+ }
165
+ ```
166
+
167
+ ## Subscribe in Plugins
168
+
169
+ ```ts
170
+ pinia.use(({ store }) => {
171
+ store.$subscribe(() => {
172
+ // React to state changes
173
+ })
174
+ store.$onAction(() => {
175
+ // React to actions
176
+ })
177
+ })
178
+ ```
179
+
180
+ ## Nuxt Plugin
181
+
182
+ Create a Nuxt plugin to add Pinia plugins:
183
+
184
+ ```ts
185
+ // plugins/myPiniaPlugin.ts
186
+ import { PiniaPluginContext } from 'pinia'
187
+
188
+ function MyPiniaPlugin({ store }: PiniaPluginContext) {
189
+ store.$subscribe((mutation) => {
190
+ console.log(`[🍍 ${mutation.storeId}]: ${mutation.type}`)
191
+ })
192
+ return { creationTime: new Date() }
193
+ }
194
+
195
+ export default defineNuxtPlugin(({ $pinia }) => {
196
+ $pinia.use(MyPiniaPlugin)
197
+ })
198
+ ```
199
+
200
+ <!--
201
+ Source references:
202
+ - https://pinia.vuejs.org/core-concepts/plugins.html
203
+ -->
@@ -0,0 +1,5 @@
1
+ # Generation Info
2
+
3
+ - **Source:** `sources/pnpm`
4
+ - **Git SHA:** `a1d6d5aef9d5f369fa2f0d8a54f1edbaff8b23b3`
5
+ - **Generated:** 2026-01-28
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025-PRESENT Anthony Fu <https://github.com/antfu>
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: pnpm
3
+ description: Node.js package manager with strict dependency resolution. Use when running pnpm specific commands, configuring workspaces, or managing dependencies with catalogs, patches, or overrides.
4
+ metadata:
5
+ author: Anthony Fu
6
+ version: "2026.1.28"
7
+ source: Generated from https://github.com/pnpm/pnpm, scripts located at https://github.com/antfu/skills
8
+ ---
9
+
10
+ pnpm is a fast, disk space efficient package manager. It uses a content-addressable store to deduplicate packages across all projects on a machine, saving significant disk space. pnpm enforces strict dependency resolution by default, preventing phantom dependencies. Configuration should preferably be placed in `pnpm-workspace.yaml` for pnpm-specific settings.
11
+
12
+ **Important:** When working with pnpm projects, agents should check for `pnpm-workspace.yaml` and `.npmrc` files to understand workspace structure and configuration. Always use `--frozen-lockfile` in CI environments.
13
+
14
+ > The skill is based on pnpm 10.x, generated at 2026-01-28.
15
+
16
+ ## Core
17
+
18
+ | Topic | Description | Reference |
19
+ |-------|-------------|-----------|
20
+ | CLI Commands | Install, add, remove, update, run, exec, dlx, and workspace commands | [core-cli](references/core-cli.md) |
21
+ | Configuration | pnpm-workspace.yaml, .npmrc settings, and package.json fields | [core-config](references/core-config.md) |
22
+ | Workspaces | Monorepo support with filtering, workspace protocol, and shared lockfile | [core-workspaces](references/core-workspaces.md) |
23
+ | Store | Content-addressable storage, hard links, and disk efficiency | [core-store](references/core-store.md) |
24
+
25
+ ## Features
26
+
27
+ | Topic | Description | Reference |
28
+ |-------|-------------|-----------|
29
+ | Catalogs | Centralized dependency version management for workspaces | [features-catalogs](references/features-catalogs.md) |
30
+ | Overrides | Force specific versions of dependencies including transitive | [features-overrides](references/features-overrides.md) |
31
+ | Patches | Modify third-party packages with custom fixes | [features-patches](references/features-patches.md) |
32
+ | Aliases | Install packages under custom names using npm: protocol | [features-aliases](references/features-aliases.md) |
33
+ | Hooks | Customize resolution with .pnpmfile.cjs hooks | [features-hooks](references/features-hooks.md) |
34
+ | Peer Dependencies | Auto-install, strict mode, and dependency rules | [features-peer-deps](references/features-peer-deps.md) |
35
+
36
+ ## Best Practices
37
+
38
+ | Topic | Description | Reference |
39
+ |-------|-------------|-----------|
40
+ | CI/CD Setup | GitHub Actions, GitLab CI, Docker, and caching strategies | [best-practices-ci](references/best-practices-ci.md) |
41
+ | Migration | Migrating from npm/Yarn, handling phantom deps, monorepo migration | [best-practices-migration](references/best-practices-migration.md) |
42
+ | Performance | Install optimizations, store caching, workspace parallelization | [best-practices-performance](references/best-practices-performance.md) |
@@ -0,0 +1,5 @@
1
+ # Sync Info
2
+
3
+ - Source: `vendor/vue/skills/pnpm`
4
+ - Git SHA: `50deaeb269d80d92db7a2c5a677290309ae307fc`
5
+ - Synced: 2026-05-21