claudeinone-cli 1.0.1 → 1.0.3

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 (429) hide show
  1. package/dist/index.js +16 -1
  2. package/kit/.claude/.ck.json +9 -0
  3. package/kit/.claude/.ckignore +12 -0
  4. package/kit/.claude/agents/accessibility-auditor.md +46 -0
  5. package/kit/.claude/agents/api-designer.md +43 -0
  6. package/kit/.claude/agents/backend-developer.md +54 -0
  7. package/kit/.claude/agents/brainstormer.md +33 -0
  8. package/kit/.claude/agents/campaign-manager.md +36 -0
  9. package/kit/.claude/agents/code-reviewer.md +39 -0
  10. package/kit/.claude/agents/content-creator.md +38 -0
  11. package/kit/.claude/agents/copywriter.md +42 -0
  12. package/kit/.claude/agents/database-admin.md +37 -0
  13. package/kit/.claude/agents/debugger.md +46 -0
  14. package/kit/.claude/agents/devops-engineer.md +41 -0
  15. package/kit/.claude/agents/docs-manager.md +33 -0
  16. package/kit/.claude/agents/email-wizard.md +40 -0
  17. package/kit/.claude/agents/frontend-developer.md +52 -0
  18. package/kit/.claude/agents/fullstack-developer.md +55 -0
  19. package/kit/.claude/agents/git-manager.md +40 -0
  20. package/kit/.claude/agents/i18n-specialist.md +46 -0
  21. package/kit/.claude/agents/integration-specialist.md +48 -0
  22. package/kit/.claude/agents/journal-writer.md +39 -0
  23. package/kit/.claude/agents/mcp-manager.md +57 -0
  24. package/kit/.claude/agents/mobile-developer.md +38 -0
  25. package/kit/.claude/agents/performance-optimizer.md +38 -0
  26. package/kit/.claude/agents/planner.md +56 -0
  27. package/kit/.claude/agents/project-manager.md +34 -0
  28. package/kit/.claude/agents/refactorer.md +43 -0
  29. package/kit/.claude/agents/researcher.md +45 -0
  30. package/kit/.claude/agents/risk-analyst.md +33 -0
  31. package/kit/.claude/agents/scalability-consultant.md +39 -0
  32. package/kit/.claude/agents/scout.md +25 -0
  33. package/kit/.claude/agents/security-auditor.md +42 -0
  34. package/kit/.claude/agents/seo-specialist.md +44 -0
  35. package/kit/.claude/agents/skill-creator.md +64 -0
  36. package/kit/.claude/agents/social-media-manager.md +35 -0
  37. package/kit/.claude/agents/systems-designer.md +35 -0
  38. package/kit/.claude/agents/technology-strategist.md +43 -0
  39. package/kit/.claude/agents/tester.md +40 -0
  40. package/kit/.claude/agents/ui-ux-designer.md +40 -0
  41. package/kit/.claude/commands/co/ask.md +29 -0
  42. package/kit/.claude/commands/co/bootstrap-auto-fast.md +28 -0
  43. package/kit/.claude/commands/co/bootstrap-auto-parallel.md +29 -0
  44. package/kit/.claude/commands/co/bootstrap-auto.md +30 -0
  45. package/kit/.claude/commands/co/bootstrap.md +31 -0
  46. package/kit/.claude/commands/co/brainstorm.md +27 -0
  47. package/kit/.claude/commands/co/campaign.md +28 -0
  48. package/kit/.claude/commands/co/changelog.md +25 -0
  49. package/kit/.claude/commands/co/checkpoint.md +25 -0
  50. package/kit/.claude/commands/co/ci.md +26 -0
  51. package/kit/.claude/commands/co/ck-help.md +24 -0
  52. package/kit/.claude/commands/co/coding-level.md +24 -0
  53. package/kit/.claude/commands/co/content-cro.md +26 -0
  54. package/kit/.claude/commands/co/content-enhance.md +26 -0
  55. package/kit/.claude/commands/co/content-fast.md +24 -0
  56. package/kit/.claude/commands/co/content-good.md +26 -0
  57. package/kit/.claude/commands/co/cook.md +33 -0
  58. package/kit/.claude/commands/co/debug.md +26 -0
  59. package/kit/.claude/commands/co/deploy.md +25 -0
  60. package/kit/.claude/commands/co/design-3d.md +27 -0
  61. package/kit/.claude/commands/co/design-describe.md +25 -0
  62. package/kit/.claude/commands/co/design-fast.md +25 -0
  63. package/kit/.claude/commands/co/design-good.md +28 -0
  64. package/kit/.claude/commands/co/design-screenshot.md +26 -0
  65. package/kit/.claude/commands/co/design-video.md +26 -0
  66. package/kit/.claude/commands/co/docker.md +24 -0
  67. package/kit/.claude/commands/co/docs-api.md +25 -0
  68. package/kit/.claude/commands/co/docs-init.md +26 -0
  69. package/kit/.claude/commands/co/docs-readme.md +24 -0
  70. package/kit/.claude/commands/co/docs-summarize.md +25 -0
  71. package/kit/.claude/commands/co/docs-update.md +25 -0
  72. package/kit/.claude/commands/co/env-check.md +25 -0
  73. package/kit/.claude/commands/co/fix-ci.md +29 -0
  74. package/kit/.claude/commands/co/fix-fast.md +28 -0
  75. package/kit/.claude/commands/co/fix-hard.md +33 -0
  76. package/kit/.claude/commands/co/fix-logs.md +28 -0
  77. package/kit/.claude/commands/co/fix-types.md +28 -0
  78. package/kit/.claude/commands/co/fix-ui.md +28 -0
  79. package/kit/.claude/commands/co/fix.md +27 -0
  80. package/kit/.claude/commands/co/git-cm.md +26 -0
  81. package/kit/.claude/commands/co/git-cp.md +26 -0
  82. package/kit/.claude/commands/co/git-pr.md +26 -0
  83. package/kit/.claude/commands/co/index.md +24 -0
  84. package/kit/.claude/commands/co/integrate-polar.md +29 -0
  85. package/kit/.claude/commands/co/integrate-sepay.md +29 -0
  86. package/kit/.claude/commands/co/journal.md +27 -0
  87. package/kit/.claude/commands/co/k8s.md +24 -0
  88. package/kit/.claude/commands/co/kanban.md +25 -0
  89. package/kit/.claude/commands/co/lint-fix.md +24 -0
  90. package/kit/.claude/commands/co/load.md +25 -0
  91. package/kit/.claude/commands/co/migrate.md +28 -0
  92. package/kit/.claude/commands/co/mock.md +26 -0
  93. package/kit/.claude/commands/co/mode.md +24 -0
  94. package/kit/.claude/commands/co/monitor.md +25 -0
  95. package/kit/.claude/commands/co/new-feature.md +27 -0
  96. package/kit/.claude/commands/co/optimize.md +26 -0
  97. package/kit/.claude/commands/co/plan-archive.md +24 -0
  98. package/kit/.claude/commands/co/plan-ci.md +28 -0
  99. package/kit/.claude/commands/co/plan-cro.md +27 -0
  100. package/kit/.claude/commands/co/plan-fast.md +24 -0
  101. package/kit/.claude/commands/co/plan-hard.md +27 -0
  102. package/kit/.claude/commands/co/plan-parallel.md +25 -0
  103. package/kit/.claude/commands/co/plan-two.md +29 -0
  104. package/kit/.claude/commands/co/plan-validate.md +27 -0
  105. package/kit/.claude/commands/co/plan.md +27 -0
  106. package/kit/.claude/commands/co/pr.md +25 -0
  107. package/kit/.claude/commands/co/preview.md +26 -0
  108. package/kit/.claude/commands/co/refactor.md +25 -0
  109. package/kit/.claude/commands/co/release.md +25 -0
  110. package/kit/.claude/commands/co/review-a11y.md +24 -0
  111. package/kit/.claude/commands/co/review-codebase-parallel.md +27 -0
  112. package/kit/.claude/commands/co/review-codebase.md +27 -0
  113. package/kit/.claude/commands/co/review-perf.md +24 -0
  114. package/kit/.claude/commands/co/review-security.md +25 -0
  115. package/kit/.claude/commands/co/scaffold.md +25 -0
  116. package/kit/.claude/commands/co/scout.md +26 -0
  117. package/kit/.claude/commands/co/secure.md +26 -0
  118. package/kit/.claude/commands/co/seed.md +25 -0
  119. package/kit/.claude/commands/co/seo-audit.md +24 -0
  120. package/kit/.claude/commands/co/seo-keywords.md +25 -0
  121. package/kit/.claude/commands/co/skill-create.md +29 -0
  122. package/kit/.claude/commands/co/skill-fix-logs.md +28 -0
  123. package/kit/.claude/commands/co/slide-create.md +24 -0
  124. package/kit/.claude/commands/co/spawn.md +24 -0
  125. package/kit/.claude/commands/co/terraform.md +24 -0
  126. package/kit/.claude/commands/co/test-gen.md +24 -0
  127. package/kit/.claude/commands/co/test-ui.md +27 -0
  128. package/kit/.claude/commands/co/test.md +26 -0
  129. package/kit/.claude/commands/co/use-mcp.md +25 -0
  130. package/kit/.claude/commands/co/video-script.md +25 -0
  131. package/kit/.claude/commands/co/watzup.md +25 -0
  132. package/kit/.claude/commands/co/worktree.md +25 -0
  133. package/kit/.claude/commands/co/write-blog.md +25 -0
  134. package/kit/.claude/commands/co/write-copy.md +24 -0
  135. package/kit/.claude/commands/co/write-email.md +25 -0
  136. package/kit/.claude/commands/content/content-cro.md +26 -0
  137. package/kit/.claude/commands/content/content-enhance.md +26 -0
  138. package/kit/.claude/commands/content/content-fast.md +24 -0
  139. package/kit/.claude/commands/content/content-good.md +26 -0
  140. package/kit/.claude/commands/content/enhance.md +26 -0
  141. package/kit/.claude/commands/content/good.md +26 -0
  142. package/kit/.claude/commands/core/ask.md +29 -0
  143. package/kit/.claude/commands/core/bootstrap-auto-fast.md +28 -0
  144. package/kit/.claude/commands/core/bootstrap-auto-parallel.md +29 -0
  145. package/kit/.claude/commands/core/bootstrap-auto.md +30 -0
  146. package/kit/.claude/commands/core/bootstrap.md +31 -0
  147. package/kit/.claude/commands/core/ck-help.md +24 -0
  148. package/kit/.claude/commands/core/coding-level.md +24 -0
  149. package/kit/.claude/commands/core/cook.md +33 -0
  150. package/kit/.claude/commands/core/debug.md +26 -0
  151. package/kit/.claude/commands/core/journal.md +27 -0
  152. package/kit/.claude/commands/core/kanban.md +25 -0
  153. package/kit/.claude/commands/core/preview.md +26 -0
  154. package/kit/.claude/commands/core/scout.md +26 -0
  155. package/kit/.claude/commands/core/test-ui.md +27 -0
  156. package/kit/.claude/commands/core/test.md +26 -0
  157. package/kit/.claude/commands/core/use-mcp.md +25 -0
  158. package/kit/.claude/commands/core/watzup.md +25 -0
  159. package/kit/.claude/commands/core/worktree.md +25 -0
  160. package/kit/.claude/commands/design/3d.md +27 -0
  161. package/kit/.claude/commands/design/design-3d.md +27 -0
  162. package/kit/.claude/commands/design/design-describe.md +25 -0
  163. package/kit/.claude/commands/design/design-fast.md +25 -0
  164. package/kit/.claude/commands/design/design-good.md +28 -0
  165. package/kit/.claude/commands/design/design-screenshot.md +26 -0
  166. package/kit/.claude/commands/design/design-video.md +26 -0
  167. package/kit/.claude/commands/design/good.md +28 -0
  168. package/kit/.claude/commands/design/video.md +26 -0
  169. package/kit/.claude/commands/docs/docs-init.md +26 -0
  170. package/kit/.claude/commands/docs/docs-summarize.md +25 -0
  171. package/kit/.claude/commands/docs/docs-update.md +25 -0
  172. package/kit/.claude/commands/docs/init.md +26 -0
  173. package/kit/.claude/commands/docs/summarize.md +25 -0
  174. package/kit/.claude/commands/fix/ci.md +29 -0
  175. package/kit/.claude/commands/fix/fast.md +28 -0
  176. package/kit/.claude/commands/fix/fix-ci.md +29 -0
  177. package/kit/.claude/commands/fix/fix-fast.md +28 -0
  178. package/kit/.claude/commands/fix/fix-hard.md +33 -0
  179. package/kit/.claude/commands/fix/fix-logs.md +28 -0
  180. package/kit/.claude/commands/fix/fix-types.md +28 -0
  181. package/kit/.claude/commands/fix/fix-ui.md +28 -0
  182. package/kit/.claude/commands/fix/hard.md +33 -0
  183. package/kit/.claude/commands/fix/logs.md +28 -0
  184. package/kit/.claude/commands/fix/types.md +28 -0
  185. package/kit/.claude/commands/fix/ui.md +28 -0
  186. package/kit/.claude/commands/git/cp.md +26 -0
  187. package/kit/.claude/commands/git/git-cm.md +26 -0
  188. package/kit/.claude/commands/git/git-cp.md +26 -0
  189. package/kit/.claude/commands/git/git-pr.md +26 -0
  190. package/kit/.claude/commands/integrate/integrate-polar.md +29 -0
  191. package/kit/.claude/commands/integrate/integrate-sepay.md +29 -0
  192. package/kit/.claude/commands/integrate/sepay.md +29 -0
  193. package/kit/.claude/commands/plan/ci.md +28 -0
  194. package/kit/.claude/commands/plan/cro.md +27 -0
  195. package/kit/.claude/commands/plan/hard.md +27 -0
  196. package/kit/.claude/commands/plan/plan-archive.md +24 -0
  197. package/kit/.claude/commands/plan/plan-ci.md +28 -0
  198. package/kit/.claude/commands/plan/plan-cro.md +27 -0
  199. package/kit/.claude/commands/plan/plan-fast.md +24 -0
  200. package/kit/.claude/commands/plan/plan-hard.md +27 -0
  201. package/kit/.claude/commands/plan/plan-parallel.md +25 -0
  202. package/kit/.claude/commands/plan/plan-two.md +29 -0
  203. package/kit/.claude/commands/plan/plan-validate.md +27 -0
  204. package/kit/.claude/commands/plan/plan.md +27 -0
  205. package/kit/.claude/commands/plan/validate.md +27 -0
  206. package/kit/.claude/commands/skill/fix-logs.md +28 -0
  207. package/kit/.claude/commands/skill/skill-create.md +29 -0
  208. package/kit/.claude/commands/skill/skill-fix-logs.md +28 -0
  209. package/kit/.claude/settings.json +16 -0
  210. package/kit/.claude/skills/ai-anthropic.md +100 -0
  211. package/kit/.claude/skills/ai-context-engineering.md +113 -0
  212. package/kit/.claude/skills/ai-gemini.md +152 -0
  213. package/kit/.claude/skills/ai-langchain.md +93 -0
  214. package/kit/.claude/skills/ai-llamaindex.md +179 -0
  215. package/kit/.claude/skills/ai-mcp-builder.md +101 -0
  216. package/kit/.claude/skills/ai-openai.md +250 -0
  217. package/kit/.claude/skills/ai-prompt-engineering.md +173 -0
  218. package/kit/.claude/skills/ai-rag.md +91 -0
  219. package/kit/.claude/skills/ai-vectordb.md +215 -0
  220. package/kit/.claude/skills/analytics-segment.md +161 -0
  221. package/kit/.claude/skills/api-caching.md +103 -0
  222. package/kit/.claude/skills/api-documentation.md +50 -0
  223. package/kit/.claude/skills/api-graphql.md +234 -0
  224. package/kit/.claude/skills/api-openapi.md +116 -0
  225. package/kit/.claude/skills/api-pagination-filtering.md +239 -0
  226. package/kit/.claude/skills/api-rate-limiting.md +179 -0
  227. package/kit/.claude/skills/api-rest-advanced.md +50 -0
  228. package/kit/.claude/skills/api-rest.md +217 -0
  229. package/kit/.claude/skills/api-trpc.md +173 -0
  230. package/kit/.claude/skills/api-versioning.md +70 -0
  231. package/kit/.claude/skills/api-webhooks.md +226 -0
  232. package/kit/.claude/skills/arch-clean-code.md +226 -0
  233. package/kit/.claude/skills/arch-clean.md +91 -0
  234. package/kit/.claude/skills/arch-cqrs.md +229 -0
  235. package/kit/.claude/skills/arch-ddd.md +85 -0
  236. package/kit/.claude/skills/arch-event-driven.md +189 -0
  237. package/kit/.claude/skills/arch-microservices.md +80 -0
  238. package/kit/.claude/skills/arch-monorepo.md +87 -0
  239. package/kit/.claude/skills/arch-multi-tenant.md +81 -0
  240. package/kit/.claude/skills/arch-serverless.md +86 -0
  241. package/kit/.claude/skills/auth-clerk.md +97 -0
  242. package/kit/.claude/skills/auth-jwt.md +143 -0
  243. package/kit/.claude/skills/auth-lucia.md +93 -0
  244. package/kit/.claude/skills/auth-nextauth.md +446 -0
  245. package/kit/.claude/skills/auth-oauth.md +208 -0
  246. package/kit/.claude/skills/auth-oauth2.md +110 -0
  247. package/kit/.claude/skills/auth-passkeys.md +109 -0
  248. package/kit/.claude/skills/auth-session.md +88 -0
  249. package/kit/.claude/skills/backend-dotnet.md +414 -0
  250. package/kit/.claude/skills/backend-express.md +129 -0
  251. package/kit/.claude/skills/backend-fastify.md +104 -0
  252. package/kit/.claude/skills/backend-go.md +205 -0
  253. package/kit/.claude/skills/backend-graphql.md +149 -0
  254. package/kit/.claude/skills/backend-grpc.md +382 -0
  255. package/kit/.claude/skills/backend-hono.md +95 -0
  256. package/kit/.claude/skills/backend-java-spring.md +198 -0
  257. package/kit/.claude/skills/backend-nodejs-express.md +165 -0
  258. package/kit/.claude/skills/backend-nodejs.md +143 -0
  259. package/kit/.claude/skills/backend-php-laravel.md +156 -0
  260. package/kit/.claude/skills/backend-python-django.md +200 -0
  261. package/kit/.claude/skills/backend-python-fastapi.md +169 -0
  262. package/kit/.claude/skills/backend-ruby-rails.md +190 -0
  263. package/kit/.claude/skills/backend-rust.md +182 -0
  264. package/kit/.claude/skills/backend-websockets.md +392 -0
  265. package/kit/.claude/skills/cache-redis.md +195 -0
  266. package/kit/.claude/skills/caching-strategies.md +100 -0
  267. package/kit/.claude/skills/cloud-aws.md +165 -0
  268. package/kit/.claude/skills/cloud-azure.md +187 -0
  269. package/kit/.claude/skills/cloud-cloudflare.md +74 -0
  270. package/kit/.claude/skills/cloud-fly.md +94 -0
  271. package/kit/.claude/skills/cloud-gcp.md +160 -0
  272. package/kit/.claude/skills/cloud-railway.md +92 -0
  273. package/kit/.claude/skills/cloud-render.md +70 -0
  274. package/kit/.claude/skills/cloud-serverless.md +68 -0
  275. package/kit/.claude/skills/cloud-vercel.md +76 -0
  276. package/kit/.claude/skills/component-patterns.md +50 -0
  277. package/kit/.claude/skills/content-management.md +197 -0
  278. package/kit/.claude/skills/cors-security.md +50 -0
  279. package/kit/.claude/skills/data-csv-excel.md +210 -0
  280. package/kit/.claude/skills/database-optimization.md +196 -0
  281. package/kit/.claude/skills/databases-transactions.md +68 -0
  282. package/kit/.claude/skills/db-cassandra.md +89 -0
  283. package/kit/.claude/skills/db-drizzle.md +363 -0
  284. package/kit/.claude/skills/db-dynamodb.md +83 -0
  285. package/kit/.claude/skills/db-elasticsearch.md +105 -0
  286. package/kit/.claude/skills/db-firebase-firestore.md +191 -0
  287. package/kit/.claude/skills/db-mongodb.md +198 -0
  288. package/kit/.claude/skills/db-mysql.md +50 -0
  289. package/kit/.claude/skills/db-neon.md +72 -0
  290. package/kit/.claude/skills/db-planetscale.md +76 -0
  291. package/kit/.claude/skills/db-postgresql.md +50 -0
  292. package/kit/.claude/skills/db-prisma.md +414 -0
  293. package/kit/.claude/skills/db-redis.md +50 -0
  294. package/kit/.claude/skills/db-sqlite.md +149 -0
  295. package/kit/.claude/skills/db-supabase.md +445 -0
  296. package/kit/.claude/skills/devops-ci-cd.md +271 -0
  297. package/kit/.claude/skills/devops-database-backup.md +77 -0
  298. package/kit/.claude/skills/devops-docker.md +93 -0
  299. package/kit/.claude/skills/devops-github-actions.md +82 -0
  300. package/kit/.claude/skills/devops-health-checks.md +50 -0
  301. package/kit/.claude/skills/devops-kubernetes.md +109 -0
  302. package/kit/.claude/skills/devops-logging.md +163 -0
  303. package/kit/.claude/skills/devops-monitoring.md +203 -0
  304. package/kit/.claude/skills/devops-pulumi.md +94 -0
  305. package/kit/.claude/skills/devops-secrets.md +166 -0
  306. package/kit/.claude/skills/devops-terraform.md +226 -0
  307. package/kit/.claude/skills/error-boundaries.md +84 -0
  308. package/kit/.claude/skills/file-storage.md +50 -0
  309. package/kit/.claude/skills/frontend-angular.md +104 -0
  310. package/kit/.claude/skills/frontend-astro.md +94 -0
  311. package/kit/.claude/skills/frontend-bundle-analysis.md +147 -0
  312. package/kit/.claude/skills/frontend-forms.md +134 -0
  313. package/kit/.claude/skills/frontend-htmx.md +86 -0
  314. package/kit/.claude/skills/frontend-nextjs.md +188 -0
  315. package/kit/.claude/skills/frontend-pwa.md +105 -0
  316. package/kit/.claude/skills/frontend-react-hooks.md +238 -0
  317. package/kit/.claude/skills/frontend-react.md +129 -0
  318. package/kit/.claude/skills/frontend-remix-advanced.md +106 -0
  319. package/kit/.claude/skills/frontend-remix.md +101 -0
  320. package/kit/.claude/skills/frontend-solid.md +99 -0
  321. package/kit/.claude/skills/frontend-state-management.md +134 -0
  322. package/kit/.claude/skills/frontend-state.md +106 -0
  323. package/kit/.claude/skills/frontend-svelte.md +121 -0
  324. package/kit/.claude/skills/frontend-testing.md +100 -0
  325. package/kit/.claude/skills/frontend-vite.md +94 -0
  326. package/kit/.claude/skills/frontend-vue.md +133 -0
  327. package/kit/.claude/skills/frontend-webpack.md +93 -0
  328. package/kit/.claude/skills/functional-programming.md +50 -0
  329. package/kit/.claude/skills/hooks-custom.md +50 -0
  330. package/kit/.claude/skills/http-server.md +50 -0
  331. package/kit/.claude/skills/i18n-general.md +89 -0
  332. package/kit/.claude/skills/i18n-localization.md +191 -0
  333. package/kit/.claude/skills/i18n-nextjs.md +127 -0
  334. package/kit/.claude/skills/infrastructure-docker-compose.md +77 -0
  335. package/kit/.claude/skills/infrastructure-serverless.md +177 -0
  336. package/kit/.claude/skills/jwt-tokens.md +50 -0
  337. package/kit/.claude/skills/logging-winston.md +106 -0
  338. package/kit/.claude/skills/messaging-kafka.md +102 -0
  339. package/kit/.claude/skills/messaging-rabbitmq.md +50 -0
  340. package/kit/.claude/skills/mobile-capacitor.md +109 -0
  341. package/kit/.claude/skills/mobile-expo.md +101 -0
  342. package/kit/.claude/skills/mobile-flutter.md +259 -0
  343. package/kit/.claude/skills/mobile-react-native.md +238 -0
  344. package/kit/.claude/skills/monitoring-apm.md +50 -0
  345. package/kit/.claude/skills/monitoring-error-tracking.md +217 -0
  346. package/kit/.claude/skills/nodejs-streams.md +168 -0
  347. package/kit/.claude/skills/oauth-integration.md +50 -0
  348. package/kit/.claude/skills/patterns-dependency-injection.md +218 -0
  349. package/kit/.claude/skills/patterns-factory-singleton.md +209 -0
  350. package/kit/.claude/skills/patterns-observer-pubsub.md +210 -0
  351. package/kit/.claude/skills/payment-lemonsqueezy.md +101 -0
  352. package/kit/.claude/skills/payment-square.md +178 -0
  353. package/kit/.claude/skills/payment-stripe.md +206 -0
  354. package/kit/.claude/skills/perf-bundle.md +100 -0
  355. package/kit/.claude/skills/perf-web-vitals.md +102 -0
  356. package/kit/.claude/skills/performance-database-connection-pooling.md +67 -0
  357. package/kit/.claude/skills/performance-metrics.md +73 -0
  358. package/kit/.claude/skills/performance-optimization.md +208 -0
  359. package/kit/.claude/skills/performance-web-vitals.md +169 -0
  360. package/kit/.claude/skills/rate-limiting.md +77 -0
  361. package/kit/.claude/skills/reactive-programming.md +50 -0
  362. package/kit/.claude/skills/realtime-database.md +50 -0
  363. package/kit/.claude/skills/realtime-subscriptions.md +218 -0
  364. package/kit/.claude/skills/saas-ab-testing.md +90 -0
  365. package/kit/.claude/skills/saas-analytics.md +113 -0
  366. package/kit/.claude/skills/saas-billing.md +106 -0
  367. package/kit/.claude/skills/saas-email.md +88 -0
  368. package/kit/.claude/skills/saas-feature-flags.md +83 -0
  369. package/kit/.claude/skills/saas-onboarding.md +96 -0
  370. package/kit/.claude/skills/saas-user-onboarding.md +207 -0
  371. package/kit/.claude/skills/security-encryption.md +216 -0
  372. package/kit/.claude/skills/security-owasp.md +212 -0
  373. package/kit/.claude/skills/security-secrets-rotation.md +64 -0
  374. package/kit/.claude/skills/seo-content.md +94 -0
  375. package/kit/.claude/skills/seo-technical.md +101 -0
  376. package/kit/.claude/skills/serverless-framework.md +151 -0
  377. package/kit/.claude/skills/sharding-scaling.md +50 -0
  378. package/kit/.claude/skills/styling-css-modules.md +219 -0
  379. package/kit/.claude/skills/styling-styled-components.md +206 -0
  380. package/kit/.claude/skills/styling-tailwind.md +206 -0
  381. package/kit/.claude/skills/test-e2e.md +86 -0
  382. package/kit/.claude/skills/test-integration.md +216 -0
  383. package/kit/.claude/skills/test-performance.md +162 -0
  384. package/kit/.claude/skills/test-tdd.md +170 -0
  385. package/kit/.claude/skills/test-unit.md +301 -0
  386. package/kit/.claude/skills/testing-accessibility.md +117 -0
  387. package/kit/.claude/skills/testing-contract.md +75 -0
  388. package/kit/.claude/skills/testing-e2e-advanced.md +50 -0
  389. package/kit/.claude/skills/testing-load-stress.md +79 -0
  390. package/kit/.claude/skills/testing-mutation.md +92 -0
  391. package/kit/.claude/skills/testing-snapshot.md +50 -0
  392. package/kit/.claude/skills/testing-vitest.md +172 -0
  393. package/kit/.claude/skills/tooling-biome.md +91 -0
  394. package/kit/.claude/skills/tooling-build-tools.md +166 -0
  395. package/kit/.claude/skills/tooling-bun.md +94 -0
  396. package/kit/.claude/skills/tooling-eslint.md +103 -0
  397. package/kit/.claude/skills/tooling-git.md +79 -0
  398. package/kit/.claude/skills/tooling-monorepo.md +162 -0
  399. package/kit/.claude/skills/tooling-testing-frameworks.md +207 -0
  400. package/kit/.claude/skills/tooling-typescript.md +156 -0
  401. package/kit/.claude/skills/ui-a11y.md +106 -0
  402. package/kit/.claude/skills/ui-framer.md +106 -0
  403. package/kit/.claude/skills/ui-gsap.md +102 -0
  404. package/kit/.claude/skills/ui-radix.md +82 -0
  405. package/kit/.claude/skills/ui-shadcn.md +463 -0
  406. package/kit/.claude/skills/ui-tailwind.md +98 -0
  407. package/kit/.claude/skills/ui-threejs.md +110 -0
  408. package/kit/.claude/skills/ui-tokens.md +97 -0
  409. package/kit/.claude/skills/utilities-date-time.md +170 -0
  410. package/kit/.claude/skills/validation-schemas.md +110 -0
  411. package/kit/.claude/skills/version-control-git.md +144 -0
  412. package/kit/.claude/skills/web-accessibility-wcag.md +102 -0
  413. package/kit/.claude/skills/web-astro.md +197 -0
  414. package/kit/.claude/skills/web-html-css.md +224 -0
  415. package/kit/.claude/skills/web-htmx.md +99 -0
  416. package/kit/.claude/skills/web-nextjs-advanced.md +202 -0
  417. package/kit/.claude/skills/web-remix.md +194 -0
  418. package/kit/.claude/skills/web-seo.md +99 -0
  419. package/kit/.claude/skills/web-svelte.md +234 -0
  420. package/kit/.claude/skills/websocket-server.md +50 -0
  421. package/kit/.claude/skills/writing-marketing.md +89 -0
  422. package/kit/.claude/skills/writing-technical.md +119 -0
  423. package/kit/CLAUDE.md +206 -0
  424. package/kit/README.md +150 -0
  425. package/kit/SKILLS_INDEX.md +188 -0
  426. package/kit/docs/README.md +3 -0
  427. package/kit/journals/README.md +3 -0
  428. package/kit/plans/README.md +3 -0
  429. package/package.json +3 -1
@@ -0,0 +1,89 @@
1
+ # Apache Cassandra
2
+
3
+ ## Overview
4
+ Cassandra is a distributed NoSQL database designed for high write throughput, linear scalability, and no single point of failure.
5
+
6
+ ## Setup with cassandra-driver
7
+
8
+ ```bash
9
+ npm install cassandra-driver
10
+ ```
11
+
12
+ ```typescript
13
+ import { Client, auth } from 'cassandra-driver';
14
+
15
+ const client = new Client({
16
+ contactPoints: [process.env.CASSANDRA_HOST!],
17
+ localDataCenter: 'datacenter1',
18
+ credentials: {
19
+ username: process.env.CASSANDRA_USER!,
20
+ password: process.env.CASSANDRA_PASSWORD!,
21
+ },
22
+ keyspace: 'myapp',
23
+ });
24
+
25
+ await client.connect();
26
+ ```
27
+
28
+ ## Schema (CQL)
29
+
30
+ ```sql
31
+ CREATE KEYSPACE IF NOT EXISTS myapp
32
+ WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3};
33
+
34
+ USE myapp;
35
+
36
+ -- Time-series events table (common pattern)
37
+ CREATE TABLE IF NOT EXISTS user_events (
38
+ user_id UUID,
39
+ event_time TIMESTAMP,
40
+ event_type TEXT,
41
+ data TEXT,
42
+ PRIMARY KEY (user_id, event_time)
43
+ ) WITH CLUSTERING ORDER BY (event_time DESC);
44
+
45
+ -- Wide row for user timeline
46
+ CREATE TABLE IF NOT EXISTS user_timeline (
47
+ user_id UUID,
48
+ post_id TIMEUUID,
49
+ content TEXT,
50
+ PRIMARY KEY (user_id, post_id)
51
+ ) WITH CLUSTERING ORDER BY (post_id DESC);
52
+ ```
53
+
54
+ ## CRUD Operations
55
+
56
+ ```typescript
57
+ // Insert
58
+ await client.execute(
59
+ 'INSERT INTO user_events (user_id, event_time, event_type, data) VALUES (?, ?, ?, ?)',
60
+ [userId, new Date(), 'login', JSON.stringify({ ip: '127.0.0.1' })],
61
+ { prepare: true }
62
+ );
63
+
64
+ // Query
65
+ const result = await client.execute(
66
+ 'SELECT * FROM user_events WHERE user_id = ? ORDER BY event_time DESC LIMIT 20',
67
+ [userId],
68
+ { prepare: true }
69
+ );
70
+ const events = result.rows;
71
+
72
+ // Batch write
73
+ const batch = [
74
+ { query: 'INSERT INTO user_events ...', params: [...] },
75
+ { query: 'UPDATE user_stats ...', params: [...] },
76
+ ];
77
+ await client.batch(batch, { prepare: true });
78
+ ```
79
+
80
+ ## Best Practices
81
+ - Design tables for query patterns — denormalize heavily
82
+ - Use `prepare: true` for all parameterized queries
83
+ - Partition key determines which node holds data — choose for even distribution
84
+ - Avoid `ALLOW FILTERING` — it causes full table scans
85
+ - Use TTL for time-series or expiring data: `INSERT ... USING TTL 86400`
86
+
87
+ ## Resources
88
+ - [cassandra-driver docs](https://docs.datastax.com/en/developer/nodejs-driver/)
89
+ - [Cassandra data modeling](https://cassandra.apache.org/doc/latest/cassandra/data_modeling/)
@@ -0,0 +1,363 @@
1
+ # Drizzle ORM
2
+
3
+ Lightweight TypeScript-first ORM with native async/await support and zero dependencies.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ npm install drizzle-orm drizzle-kit
9
+ npm install pg # for PostgreSQL
10
+ npm install -D @types/pg
11
+
12
+ # Initialize schema
13
+ npx drizzle-kit init
14
+ ```
15
+
16
+ ## Schema Definition
17
+
18
+ ```typescript
19
+ import { pgTable, serial, text, varchar, boolean, timestamp, integer, foreignKey } from 'drizzle-orm/pg-core';
20
+ import { relations } from 'drizzle-orm';
21
+
22
+ // Users table
23
+ export const users = pgTable(
24
+ 'users',
25
+ {
26
+ id: serial('id').primaryKey(),
27
+ email: varchar('email', { length: 255 }).unique().notNull(),
28
+ name: varchar('name', { length: 255 }).notNull(),
29
+ password: varchar('password', { length: 255 }).notNull(),
30
+ createdAt: timestamp('created_at').defaultNow(),
31
+ updatedAt: timestamp('updated_at').defaultNow()
32
+ },
33
+ (table) => ({
34
+ emailIdx: uniqueIndex('email_idx').on(table.email)
35
+ })
36
+ );
37
+
38
+ // Posts table
39
+ export const posts = pgTable(
40
+ 'posts',
41
+ {
42
+ id: serial('id').primaryKey(),
43
+ title: varchar('title', { length: 255 }).notNull(),
44
+ content: text('content'),
45
+ published: boolean('published').default(false),
46
+ authorId: integer('author_id')
47
+ .notNull()
48
+ .references(() => users.id, { onDelete: 'cascade' }),
49
+ createdAt: timestamp('created_at').defaultNow(),
50
+ updatedAt: timestamp('updated_at').defaultNow()
51
+ },
52
+ (table) => ({
53
+ authorIdx: index('author_idx').on(table.authorId)
54
+ })
55
+ );
56
+
57
+ // Relationships
58
+ export const usersRelations = relations(users, ({ many }) => ({
59
+ posts: many(posts)
60
+ }));
61
+
62
+ export const postsRelations = relations(posts, ({ one }) => ({
63
+ author: one(users, {
64
+ fields: [posts.authorId],
65
+ references: [users.id]
66
+ })
67
+ }));
68
+ ```
69
+
70
+ ## Migrations
71
+
72
+ ```bash
73
+ # Generate migration
74
+ npx drizzle-kit generate:pg
75
+
76
+ # Push schema to database
77
+ npx drizzle-kit push:pg
78
+
79
+ # Create migration manually
80
+ npx drizzle-kit up:pg
81
+
82
+ # Drop schema
83
+ npx drizzle-kit drop
84
+
85
+ # View migration status
86
+ npx drizzle-kit status:pg
87
+ ```
88
+
89
+ ## Database Connection
90
+
91
+ ```typescript
92
+ import { drizzle } from 'drizzle-orm/node-postgres';
93
+ import { Pool } from 'pg';
94
+
95
+ // Create connection pool
96
+ const pool = new Pool({
97
+ host: 'localhost',
98
+ port: 5432,
99
+ user: 'user',
100
+ password: 'password',
101
+ database: 'mydb'
102
+ });
103
+
104
+ // Create Drizzle ORM instance
105
+ export const db = drizzle(pool);
106
+ ```
107
+
108
+ ## Basic Queries
109
+
110
+ ```typescript
111
+ import { db } from './db';
112
+ import { users, posts } from './schema';
113
+ import { eq } from 'drizzle-orm';
114
+
115
+ // Create
116
+ const newUser = await db.insert(users).values({
117
+ email: 'john@example.com',
118
+ name: 'John Doe',
119
+ password: 'hashed_password'
120
+ });
121
+
122
+ // Read - single
123
+ const user = await db.select().from(users).where(eq(users.id, 1));
124
+
125
+ // Read - all
126
+ const allUsers = await db.select().from(users);
127
+
128
+ // Read - with condition
129
+ const activeUsers = await db
130
+ .select()
131
+ .from(users)
132
+ .where(eq(users.status, 'active'));
133
+
134
+ // Update
135
+ const updated = await db
136
+ .update(users)
137
+ .set({ name: 'Jane Doe' })
138
+ .where(eq(users.id, 1));
139
+
140
+ // Delete
141
+ await db.delete(users).where(eq(users.id, 1));
142
+ ```
143
+
144
+ ## Relationships and Joins
145
+
146
+ ```typescript
147
+ // Get user with all posts
148
+ const userWithPosts = await db.query.users.findFirst({
149
+ where: eq(users.id, 1),
150
+ with: {
151
+ posts: true
152
+ }
153
+ });
154
+
155
+ // Join syntax
156
+ const postsWithAuthors = await db
157
+ .select({
158
+ postId: posts.id,
159
+ title: posts.title,
160
+ authorName: users.name
161
+ })
162
+ .from(posts)
163
+ .leftJoin(users, eq(posts.authorId, users.id));
164
+
165
+ // Multiple joins
166
+ const postsWithComments = await db
167
+ .select()
168
+ .from(posts)
169
+ .innerJoin(users, eq(posts.authorId, users.id))
170
+ .leftJoin(comments, eq(posts.id, comments.postId));
171
+ ```
172
+
173
+ ## Filtering and Conditions
174
+
175
+ ```typescript
176
+ import { and, or, like, gte, lte, inArray } from 'drizzle-orm';
177
+
178
+ // Multiple conditions (AND)
179
+ const posts = await db
180
+ .select()
181
+ .from(posts)
182
+ .where(
183
+ and(
184
+ eq(posts.published, true),
185
+ gte(posts.createdAt, new Date('2024-01-01'))
186
+ )
187
+ );
188
+
189
+ // OR condition
190
+ const results = await db
191
+ .select()
192
+ .from(users)
193
+ .where(
194
+ or(
195
+ eq(users.email, 'john@example.com'),
196
+ eq(users.email, 'jane@example.com')
197
+ )
198
+ );
199
+
200
+ // LIKE search
201
+ const search = await db
202
+ .select()
203
+ .from(users)
204
+ .where(like(users.name, '%John%'));
205
+
206
+ // IN clause
207
+ const specific = await db
208
+ .select()
209
+ .from(posts)
210
+ .where(inArray(posts.authorId, [1, 2, 3]));
211
+ ```
212
+
213
+ ## Pagination and Ordering
214
+
215
+ ```typescript
216
+ // Pagination
217
+ const pageSize = 10;
218
+ const page = 1;
219
+
220
+ const paginated = await db
221
+ .select()
222
+ .from(posts)
223
+ .limit(pageSize)
224
+ .offset((page - 1) * pageSize)
225
+ .orderBy(posts.createdAt);
226
+
227
+ // Get total count
228
+ const total = await db
229
+ .select({ count: countDistinct(posts.id) })
230
+ .from(posts);
231
+
232
+ const totalPages = Math.ceil(total[0].count / pageSize);
233
+ ```
234
+
235
+ ## Aggregations
236
+
237
+ ```typescript
238
+ import { count, sum, avg, max, min } from 'drizzle-orm';
239
+
240
+ // Count
241
+ const postCount = await db
242
+ .select({ value: count() })
243
+ .from(posts);
244
+
245
+ // With grouping
246
+ const postsByAuthor = await db
247
+ .select({
248
+ authorId: posts.authorId,
249
+ count: count(posts.id)
250
+ })
251
+ .from(posts)
252
+ .groupBy(posts.authorId)
253
+ .orderBy(({ count: cnt }) => desc(cnt));
254
+
255
+ // Aggregations
256
+ const stats = await db
257
+ .select({
258
+ totalPosts: count(posts.id),
259
+ avgLength: avg(posts.content),
260
+ maxLength: max(posts.content)
261
+ })
262
+ .from(posts)
263
+ .where(eq(posts.published, true));
264
+ ```
265
+
266
+ ## Transactions
267
+
268
+ ```typescript
269
+ // Atomic transactions
270
+ const result = await db.transaction(async (tx) => {
271
+ const user = await tx.insert(users).values({
272
+ email: 'john@example.com',
273
+ name: 'John',
274
+ password: 'hash'
275
+ });
276
+
277
+ const post = await tx.insert(posts).values({
278
+ title: 'First Post',
279
+ content: 'Content...',
280
+ authorId: user[0].id
281
+ });
282
+
283
+ return { user, post };
284
+ });
285
+
286
+ // Rollback on error
287
+ try {
288
+ await db.transaction(async (tx) => {
289
+ // Operations
290
+ throw new Error('Rollback!');
291
+ });
292
+ } catch (err) {
293
+ console.log('Transaction rolled back');
294
+ }
295
+ ```
296
+
297
+ ## Parameterized Queries (SQL Injection Prevention)
298
+
299
+ ```typescript
300
+ import { sql } from 'drizzle-orm';
301
+
302
+ // Safe parameter usage
303
+ const email = 'john@example.com';
304
+ const user = await db
305
+ .select()
306
+ .from(users)
307
+ .where(sql`${users.email} = ${email}`);
308
+
309
+ // Raw SQL with parameters
310
+ const query = await db.execute(
311
+ sql`SELECT * FROM ${users} WHERE email = ${email}`
312
+ );
313
+ ```
314
+
315
+ ## Migrations with Version History
316
+
317
+ ```bash
318
+ # Show migrations status
319
+ npx drizzle-kit status:pg --dir ./drizzle
320
+
321
+ # Migrate to specific version
322
+ npx drizzle-kit migrate --migrations ./drizzle
323
+
324
+ # View all migrations
325
+ ls drizzle/migrations/
326
+ ```
327
+
328
+ ## Best Practices
329
+
330
+ ✅ **Type safety** - Full TypeScript support with zero-cost abstractions
331
+ ✅ **Minimal ORM** - No magic, explicit queries
332
+ ✅ **Auto-migrations** - Generate migrations from schema changes
333
+ ✅ **Connection pooling** - Reuse connections efficiently
334
+ ✅ **Prepared statements** - SQL injection protected by default
335
+ ✅ **Query building** - Composable, chainable queries
336
+ ✅ **Relations** - Optional eager loading with `with` syntax
337
+
338
+ ## Performance Tips
339
+
340
+ - Use `select()` with specific columns to reduce payload
341
+ - Add indexes to frequently filtered columns
342
+ - Use connection pooling in production
343
+ - Batch inserts: `db.insert().values([...])`
344
+ - Monitor slow queries with database logs
345
+
346
+ ## When to Use Drizzle
347
+
348
+ ✅ Want lightweight, TypeScript-first ORM
349
+ ✅ Need explicit SQL control
350
+ ✅ PostgreSQL, MySQL, SQLite projects
351
+ ✅ Building serverless apps (Vercel, AWS Lambda)
352
+ ✅ Prefer generated migrations
353
+
354
+ ❌ Need GraphQL-first tooling (use Prisma)
355
+ ❌ Complex stored procedures needed
356
+ ❌ Learning ORM for the first time
357
+
358
+ ## Resources
359
+
360
+ - [Drizzle Documentation](https://orm.drizzle.team/)
361
+ - [Drizzle ORM API](https://orm.drizzle.team/docs/get-started)
362
+ - [Drizzle Kit](https://orm.drizzle.team/kit-docs/overview)
363
+ - [Examples](https://github.com/drizzle-team/drizzle-orm/tree/main/examples)
@@ -0,0 +1,83 @@
1
+ # DynamoDB
2
+
3
+ ## Overview
4
+ AWS DynamoDB is a fully managed NoSQL database optimized for high-scale, predictable-latency workloads.
5
+
6
+ ## Setup
7
+
8
+ ```bash
9
+ npm install @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb
10
+ ```
11
+
12
+ ```typescript
13
+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
14
+ import { DynamoDBDocumentClient, GetCommand, PutCommand, QueryCommand, UpdateCommand, DeleteCommand } from '@aws-sdk/lib-dynamodb';
15
+
16
+ const client = new DynamoDBClient({ region: process.env.AWS_REGION ?? 'us-east-1' });
17
+ const db = DynamoDBDocumentClient.from(client);
18
+ const TABLE = process.env.DYNAMODB_TABLE!;
19
+ ```
20
+
21
+ ## CRUD Operations
22
+
23
+ ```typescript
24
+ // Create
25
+ await db.send(new PutCommand({
26
+ TableName: TABLE,
27
+ Item: { PK: `USER#${user.id}`, SK: `PROFILE#${user.id}`, ...user, createdAt: new Date().toISOString() },
28
+ ConditionExpression: 'attribute_not_exists(PK)',
29
+ }));
30
+
31
+ // Read
32
+ const result = await db.send(new GetCommand({
33
+ TableName: TABLE,
34
+ Key: { PK: `USER#${id}`, SK: `PROFILE#${id}` }
35
+ }));
36
+ const user = result.Item;
37
+
38
+ // Update
39
+ await db.send(new UpdateCommand({
40
+ TableName: TABLE,
41
+ Key: { PK: `USER#${id}`, SK: `PROFILE#${id}` },
42
+ UpdateExpression: 'SET #name = :name, updatedAt = :now',
43
+ ExpressionAttributeNames: { '#name': 'name' },
44
+ ExpressionAttributeValues: { ':name': newName, ':now': new Date().toISOString() }
45
+ }));
46
+
47
+ // Delete
48
+ await db.send(new DeleteCommand({ TableName: TABLE, Key: { PK: `USER#${id}`, SK: `PROFILE#${id}` } }));
49
+ ```
50
+
51
+ ## Query Pattern
52
+
53
+ ```typescript
54
+ // Get all orders for a user
55
+ const result = await db.send(new QueryCommand({
56
+ TableName: TABLE,
57
+ KeyConditionExpression: 'PK = :pk AND begins_with(SK, :prefix)',
58
+ ExpressionAttributeValues: { ':pk': `USER#${userId}`, ':prefix': 'ORDER#' },
59
+ ScanIndexForward: false, // newest first
60
+ Limit: 20,
61
+ }));
62
+ const orders = result.Items ?? [];
63
+ ```
64
+
65
+ ## Single-Table Design
66
+
67
+ ```
68
+ PK | SK | Type
69
+ USER#u1 | PROFILE#u1 | User profile
70
+ USER#u1 | ORDER#2024-01#o1 | Order (date-sortable)
71
+ PRODUCT#p1 | METADATA#p1 | Product
72
+ ORDER#o1 | ITEM#1 | Order line item
73
+ ```
74
+
75
+ ## Best Practices
76
+ - Design for access patterns first — DynamoDB doesn't support ad-hoc queries
77
+ - Use single-table design to minimize RCUs/WCUs
78
+ - Never scan large tables — always query with a partition key
79
+ - Use TTL attribute for automatic expiry (sessions, caches)
80
+
81
+ ## Resources
82
+ - [DynamoDB Developer Guide](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/)
83
+ - [The DynamoDB Book](https://www.dynamodbbook.com/)
@@ -0,0 +1,105 @@
1
+ # Elasticsearch
2
+
3
+ Distributed search and analytics engine.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ npm install @elastic/elasticsearch
9
+ ```
10
+
11
+ ## Indexing
12
+
13
+ ```typescript
14
+ import { Client } from '@elastic/elasticsearch';
15
+
16
+ const client = new Client({ node: 'http://localhost:9200' });
17
+
18
+ // Create index with mapping
19
+ await client.indices.create({
20
+ index: 'products',
21
+ body: {
22
+ mappings: {
23
+ properties: {
24
+ name: { type: 'text' },
25
+ description: { type: 'text' },
26
+ price: { type: 'float' },
27
+ category: { type: 'keyword' },
28
+ tags: { type: 'keyword' },
29
+ created_at: { type: 'date' }
30
+ }
31
+ }
32
+ }
33
+ });
34
+
35
+ // Index document
36
+ await client.index({
37
+ index: 'products',
38
+ id: '1',
39
+ document: {
40
+ name: 'Laptop',
41
+ description: 'High-performance laptop',
42
+ price: 999.99,
43
+ category: 'electronics',
44
+ tags: ['computer', 'work'],
45
+ created_at: new Date()
46
+ }
47
+ });
48
+
49
+ // Bulk indexing
50
+ await client.bulk({
51
+ operations: documents.flatMap(doc => [
52
+ { index: { _index: 'products', _id: doc.id } },
53
+ doc
54
+ ])
55
+ });
56
+ ```
57
+
58
+ ## Searching
59
+
60
+ ```typescript
61
+ // Simple search
62
+ const results = await client.search({
63
+ index: 'products',
64
+ query: {
65
+ match: { name: 'laptop' }
66
+ }
67
+ });
68
+
69
+ // Complex query
70
+ const results = await client.search({
71
+ index: 'products',
72
+ query: {
73
+ bool: {
74
+ must: [
75
+ { match: { name: 'laptop' } }
76
+ ],
77
+ filter: [
78
+ { range: { price: { lte: 1000 } } },
79
+ { term: { category: 'electronics' } }
80
+ ]
81
+ }
82
+ }
83
+ });
84
+
85
+ // Aggregations
86
+ const stats = await client.search({
87
+ index: 'products',
88
+ aggs: {
89
+ avg_price: { avg: { field: 'price' } },
90
+ categories: { terms: { field: 'category' } }
91
+ }
92
+ });
93
+ ```
94
+
95
+ ## Best Practices
96
+
97
+ ✅ **Proper mapping** - Define field types
98
+ ✅ **Shard allocation** - Balance shards across nodes
99
+ ✅ **Indexing strategy** - Time-based indices
100
+ ✅ **Query optimization** - Use filters for performance
101
+ ✅ **Monitoring** - Track cluster health
102
+
103
+ ## Resources
104
+
105
+ - [Elasticsearch Guide](https://www.elastic.co/guide/index.html)