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,195 @@
1
+ # Redis Caching
2
+
3
+ In-memory data store for caching, sessions, and real-time data.
4
+
5
+ ## Setup
6
+
7
+ ```bash
8
+ npm install redis ioredis
9
+ ```
10
+
11
+ ## Basic Caching
12
+
13
+ ```typescript
14
+ import { createClient } from 'redis';
15
+
16
+ const redis = createClient({
17
+ host: 'localhost',
18
+ port: 6379
19
+ });
20
+
21
+ await redis.connect();
22
+
23
+ // Set cache
24
+ await redis.set('user:123', JSON.stringify({ id: '123', name: 'John' }), {
25
+ EX: 3600 // Expire in 1 hour
26
+ });
27
+
28
+ // Get cache
29
+ const cached = await redis.get('user:123');
30
+ const user = JSON.parse(cached || '{}');
31
+
32
+ // Delete cache
33
+ await redis.del('user:123');
34
+
35
+ // Check exists
36
+ const exists = await redis.exists('user:123');
37
+ ```
38
+
39
+ ## Cache-Aside Pattern
40
+
41
+ ```typescript
42
+ async function getUser(userId: string) {
43
+ // Check cache first
44
+ const cached = await redis.get(`user:${userId}`);
45
+ if (cached) {
46
+ return JSON.parse(cached);
47
+ }
48
+
49
+ // Fetch from database
50
+ const user = await db.users.findById(userId);
51
+
52
+ // Store in cache
53
+ if (user) {
54
+ await redis.set(`user:${userId}`, JSON.stringify(user), {
55
+ EX: 3600
56
+ });
57
+ }
58
+
59
+ return user;
60
+ }
61
+ ```
62
+
63
+ ## Cache Invalidation
64
+
65
+ ```typescript
66
+ // Invalidate on update
67
+ async function updateUser(userId: string, updates: any) {
68
+ const user = await db.users.update(userId, updates);
69
+
70
+ // Clear cache
71
+ await redis.del(`user:${userId}`);
72
+
73
+ // Clear related caches
74
+ await redis.del(`user:${userId}:posts`);
75
+
76
+ return user;
77
+ }
78
+
79
+ // Pattern invalidation
80
+ async function invalidateUserCaches(userId: string) {
81
+ const keys = await redis.keys(`user:${userId}:*`);
82
+ if (keys.length > 0) {
83
+ await redis.del(keys);
84
+ }
85
+ }
86
+ ```
87
+
88
+ ## Session Storage
89
+
90
+ ```typescript
91
+ import session from 'express-session';
92
+ import RedisStore from 'connect-redis';
93
+
94
+ const redisClient = createClient();
95
+
96
+ const sessionStore = new RedisStore({ client: redisClient });
97
+
98
+ app.use(
99
+ session({
100
+ store: sessionStore,
101
+ secret: process.env.SESSION_SECRET,
102
+ resave: false,
103
+ saveUninitialized: false,
104
+ cookie: {
105
+ httpOnly: true,
106
+ secure: process.env.NODE_ENV === 'production',
107
+ maxAge: 1000 * 60 * 60 * 24 // 24 hours
108
+ }
109
+ })
110
+ );
111
+ ```
112
+
113
+ ## Lists & Queues
114
+
115
+ ```typescript
116
+ // Push to queue
117
+ await redis.lPush('email:queue', JSON.stringify({
118
+ to: 'user@example.com',
119
+ subject: 'Welcome'
120
+ }));
121
+
122
+ // Pop from queue
123
+ const job = await redis.rPop('email:queue');
124
+
125
+ // List length
126
+ const count = await redis.lLen('email:queue');
127
+
128
+ // Get range
129
+ const jobs = await redis.lRange('email:queue', 0, -1);
130
+ ```
131
+
132
+ ## Sorted Sets (Leaderboards)
133
+
134
+ ```typescript
135
+ // Add score
136
+ await redis.zAdd('leaderboard', {
137
+ score: 100,
138
+ member: 'user:123'
139
+ });
140
+
141
+ // Increment score
142
+ await redis.zIncrBy('leaderboard', 10, 'user:123');
143
+
144
+ // Get top 10
145
+ const topPlayers = await redis.zRevRange('leaderboard', 0, 9, {
146
+ WITHSCORES: true
147
+ });
148
+
149
+ // Get rank
150
+ const rank = await redis.zRevRank('leaderboard', 'user:123');
151
+ ```
152
+
153
+ ## Pub/Sub
154
+
155
+ ```typescript
156
+ // Subscriber
157
+ const subscriber = redis.duplicate();
158
+ await subscriber.connect();
159
+
160
+ await subscriber.subscribe('channel:notifications', (message) => {
161
+ console.log('Notification:', message);
162
+ });
163
+
164
+ // Publisher
165
+ await redis.publish('channel:notifications', JSON.stringify({
166
+ type: 'user:created',
167
+ userId: '123'
168
+ }));
169
+ ```
170
+
171
+ ## Transactions
172
+
173
+ ```typescript
174
+ const pipeline = redis.multi();
175
+
176
+ pipeline.set('key1', 'value1');
177
+ pipeline.set('key2', 'value2');
178
+ pipeline.get('key1');
179
+ pipeline.incr('counter');
180
+
181
+ const results = await pipeline.exec();
182
+ ```
183
+
184
+ ## Best Practices
185
+
186
+ ✅ **TTL values** - Always set expiration times
187
+ ✅ **Key naming** - Use consistent patterns (entity:id:property)
188
+ ✅ **Connection pooling** - Reuse connections
189
+ ✅ **Monitoring** - Track hit rates and evictions
190
+ ✅ **Persistence** - Enable AOF/RDB for important data
191
+
192
+ ## Resources
193
+
194
+ - [Redis Documentation](https://redis.io/documentation)
195
+ - [Redis Node.js Client](https://github.com/luin/ioredis)
@@ -0,0 +1,100 @@
1
+ # Caching Strategies
2
+
3
+ Implementing effective caching.
4
+
5
+ ## Cache Invalidation
6
+
7
+ ```typescript
8
+ // Time-based expiration
9
+ async function getCachedUser(id: string) {
10
+ const cache = new Map();
11
+ const CacheTTL = 60 * 60 * 1000; // 1 hour
12
+
13
+ const cached = cache.get(id);
14
+ if (cached && Date.now() - cached.timestamp < CacheTTL) {
15
+ return cached.data;
16
+ }
17
+
18
+ const user = await db.users.findById(id);
19
+ cache.set(id, { data: user, timestamp: Date.now() });
20
+ return user;
21
+ }
22
+
23
+ // Event-based invalidation
24
+ async function updateUser(id: string, data: any) {
25
+ const user = await db.users.update(id, data);
26
+
27
+ // Clear cache
28
+ cache.delete(`user:${id}`);
29
+ cache.delete('users:list');
30
+
31
+ // Publish event
32
+ eventBus.emit('user:updated', user);
33
+
34
+ return user;
35
+ }
36
+
37
+ // Dependency-based
38
+ const userCache = cache.with('user', {
39
+ expires: 3600,
40
+ dependencies: ['user']
41
+ });
42
+ ```
43
+
44
+ ## Multi-Level Caching
45
+
46
+ ```typescript
47
+ // L1: Memory, L2: Redis, L3: Database
48
+ async function getUser(id: string) {
49
+ // L1: Memory cache
50
+ if (memoryCache.has(`user:${id}`)) {
51
+ return memoryCache.get(`user:${id}`);
52
+ }
53
+
54
+ // L2: Redis
55
+ const cached = await redis.get(`user:${id}`);
56
+ if (cached) {
57
+ const user = JSON.parse(cached);
58
+ memoryCache.set(`user:${id}`, user);
59
+ return user;
60
+ }
61
+
62
+ // L3: Database
63
+ const user = await db.users.findById(id);
64
+ await redis.set(`user:${id}`, JSON.stringify(user), 'EX', 3600);
65
+ memoryCache.set(`user:${id}`, user);
66
+
67
+ return user;
68
+ }
69
+ ```
70
+
71
+ ## Cache Warming
72
+
73
+ ```typescript
74
+ async function warmCache() {
75
+ const users = await db.users.find({ featured: true });
76
+
77
+ for (const user of users) {
78
+ await redis.set(`user:${user.id}`, JSON.stringify(user), 'EX', 86400);
79
+ }
80
+
81
+ console.log('Cache warmed');
82
+ }
83
+
84
+ // Run on startup
85
+ app.listen(3000, () => {
86
+ warmCache().catch(console.error);
87
+ });
88
+ ```
89
+
90
+ ## Best Practices
91
+
92
+ ✅ **Cache invalidation** - Know when to clear
93
+ ✅ **TTL strategy** - Appropriate expiration
94
+ ✅ **Multi-level** - Memory + Redis + DB
95
+ ✅ **Monitoring** - Track hit rates
96
+ ✅ **Size limits** - Prevent memory bloat
97
+
98
+ ## Resources
99
+
100
+ - [Caching Patterns](https://codeahoy.com/2017/08/11/caching-strategies-explained/)
@@ -0,0 +1,165 @@
1
+ # AWS
2
+
3
+ Cloud platform with EC2, S3, Lambda, DynamoDB, and RDS.
4
+
5
+ ## Lambda Functions
6
+
7
+ ```typescript
8
+ // Basic handler
9
+ export const handler = async (event: any) => {
10
+ return {
11
+ statusCode: 200,
12
+ body: JSON.stringify({ message: 'Hello from Lambda' })
13
+ };
14
+ };
15
+
16
+ // API Gateway integration
17
+ export const apiHandler = async (event: APIGatewayProxyEvent) => {
18
+ const { pathParameters, body } = event;
19
+ const data = JSON.parse(body || '{}');
20
+
21
+ return {
22
+ statusCode: 200,
23
+ headers: { 'Content-Type': 'application/json' },
24
+ body: JSON.stringify({ data })
25
+ };
26
+ };
27
+
28
+ // S3 event trigger
29
+ export const s3Handler = async (event: S3Event) => {
30
+ for (const record of event.Records) {
31
+ const bucket = record.s3.bucket.name;
32
+ const key = record.s3.object.key;
33
+ console.log(`Processing ${bucket}/${key}`);
34
+ }
35
+ };
36
+ ```
37
+
38
+ ## S3 Storage
39
+
40
+ ```typescript
41
+ import { S3Client, PutObjectCommand, GetObjectCommand } from '@aws-sdk/client-s3';
42
+
43
+ const s3 = new S3Client({ region: 'us-east-1' });
44
+
45
+ // Upload
46
+ await s3.send(new PutObjectCommand({
47
+ Bucket: 'my-bucket',
48
+ Key: 'path/to/file.txt',
49
+ Body: Buffer.from('content'),
50
+ ContentType: 'text/plain'
51
+ }));
52
+
53
+ // Download
54
+ const response = await s3.send(new GetObjectCommand({
55
+ Bucket: 'my-bucket',
56
+ Key: 'path/to/file.txt'
57
+ }));
58
+
59
+ const body = await response.Body?.transformToString();
60
+ ```
61
+
62
+ ## DynamoDB
63
+
64
+ ```typescript
65
+ import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
66
+ import { DynamoDBDocumentClient, PutCommand, QueryCommand } from '@aws-sdk/lib-dynamodb';
67
+
68
+ const db = DynamoDBDocumentClient.from(new DynamoDBClient({}));
69
+
70
+ // Write
71
+ await db.send(new PutCommand({
72
+ TableName: 'Users',
73
+ Item: {
74
+ userId: 'user-123',
75
+ email: 'user@example.com',
76
+ createdAt: Date.now()
77
+ }
78
+ }));
79
+
80
+ // Query
81
+ const { Items } = await db.send(new QueryCommand({
82
+ TableName: 'Users',
83
+ KeyConditionExpression: 'userId = :id',
84
+ ExpressionAttributeValues: { ':id': 'user-123' }
85
+ }));
86
+ ```
87
+
88
+ ## RDS (Relational Database)
89
+
90
+ ```typescript
91
+ import mysql from 'mysql2/promise';
92
+
93
+ const connection = await mysql.createConnection({
94
+ host: process.env.DB_HOST,
95
+ user: process.env.DB_USER,
96
+ password: process.env.DB_PASSWORD,
97
+ database: process.env.DB_NAME
98
+ });
99
+
100
+ const [rows] = await connection.execute(
101
+ 'SELECT * FROM users WHERE id = ?',
102
+ [userId]
103
+ );
104
+
105
+ await connection.execute(
106
+ 'INSERT INTO users (email, name) VALUES (?, ?)',
107
+ [email, name]
108
+ );
109
+ ```
110
+
111
+ ## IAM & Secrets
112
+
113
+ ```typescript
114
+ import { SecretsManagerClient, GetSecretValueCommand } from '@aws-sdk/client-secrets-manager';
115
+
116
+ const secrets = new SecretsManagerClient({});
117
+
118
+ const { SecretString } = await secrets.send(new GetSecretValueCommand({
119
+ SecretId: 'my-secret'
120
+ }));
121
+
122
+ const secret = JSON.parse(SecretString || '{}');
123
+ ```
124
+
125
+ ## CloudFormation
126
+
127
+ ```yaml
128
+ AWSTemplateFormatVersion: '2010-09-09'
129
+ Resources:
130
+ MyTable:
131
+ Type: AWS::DynamoDB::Table
132
+ Properties:
133
+ TableName: my-table
134
+ BillingMode: PAY_PER_REQUEST
135
+ AttributeDefinitions:
136
+ - AttributeName: id
137
+ AttributeType: S
138
+ KeySchema:
139
+ - AttributeName: id
140
+ KeyType: HASH
141
+
142
+ MyLambda:
143
+ Type: AWS::Lambda::Function
144
+ Properties:
145
+ FunctionName: my-function
146
+ Runtime: nodejs20.x
147
+ Handler: index.handler
148
+ Code:
149
+ ZipFile: |
150
+ exports.handler = async () => ({ statusCode: 200 });
151
+ ```
152
+
153
+ ## Best Practices
154
+
155
+ ✅ **Use SDK v3** - Modular imports reduce bundle size
156
+ ✅ **Connection pooling** - Reuse connections for RDS
157
+ ✅ **IAM roles** - Least privilege permissions
158
+ ✅ **Environment variables** - Store config in AWS Systems Manager
159
+ ✅ **CloudWatch logs** - Monitor function execution
160
+
161
+ ## Resources
162
+
163
+ - [AWS SDK for JavaScript](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/)
164
+ - [Lambda Developer Guide](https://docs.aws.amazon.com/lambda/)
165
+ - [DynamoDB Documentation](https://docs.aws.amazon.com/dynamodb/)
@@ -0,0 +1,187 @@
1
+ # Microsoft Azure
2
+
3
+ Cloud platform with App Service, Functions, Cosmos DB, and SQL Database.
4
+
5
+ ## Azure Functions
6
+
7
+ ```typescript
8
+ import { AzureFunction, Context, HttpRequest } from '@azure/functions';
9
+
10
+ const httpTrigger: AzureFunction = async (
11
+ context: Context,
12
+ req: HttpRequest
13
+ ): Promise<void> => {
14
+ context.log('HTTP trigger function processed a request.');
15
+
16
+ const name = req.query.name || req.body?.name || 'World';
17
+
18
+ context.res = {
19
+ status: 200,
20
+ body: `Hello, ${name}!`
21
+ };
22
+ };
23
+
24
+ export default httpTrigger;
25
+
26
+ // Timer trigger
27
+ const timerTrigger: AzureFunction = async (context: Context) => {
28
+ const timeStamp = new Date().toISOString();
29
+ context.log('Timer trigger function ran!', timeStamp);
30
+ };
31
+ ```
32
+
33
+ ## Cosmos DB
34
+
35
+ ```typescript
36
+ import { CosmosClient } from '@azure/cosmos';
37
+
38
+ const client = new CosmosClient({
39
+ endpoint: process.env.COSMOS_ENDPOINT,
40
+ key: process.env.COSMOS_KEY
41
+ });
42
+
43
+ const database = client.database('my-db');
44
+ const container = database.container('users');
45
+
46
+ // Create item
47
+ const { resource: createdItem } = await container.items.create({
48
+ id: 'user-123',
49
+ email: 'user@example.com',
50
+ age: 30
51
+ });
52
+
53
+ // Read item
54
+ const { resource: item } = await container
55
+ .item('user-123', 'user-123')
56
+ .read();
57
+
58
+ // Query
59
+ const { resources: items } = await container.items
60
+ .query('SELECT * FROM c WHERE c.age > @age', { parameters: [{ name: '@age', value: 25 }] })
61
+ .fetchAll();
62
+
63
+ // Update
64
+ await container
65
+ .item('user-123', 'user-123')
66
+ .replace({ ...item, age: 31 });
67
+ ```
68
+
69
+ ## Azure SQL Database
70
+
71
+ ```typescript
72
+ import sql from 'mssql';
73
+
74
+ const config = {
75
+ user: process.env.DB_USER,
76
+ password: process.env.DB_PASSWORD,
77
+ server: process.env.DB_SERVER,
78
+ database: process.env.DB_NAME,
79
+ authentication: {
80
+ type: 'default'
81
+ },
82
+ options: {
83
+ encrypt: true,
84
+ trustServerCertificate: false,
85
+ connectionTimeout: 15000
86
+ }
87
+ };
88
+
89
+ const pool = new sql.ConnectionPool(config);
90
+ await pool.connect();
91
+
92
+ // Query
93
+ const result = await pool.request()
94
+ .input('email', sql.VarChar, 'user@example.com')
95
+ .query('SELECT * FROM Users WHERE email = @email');
96
+
97
+ console.log(result.recordset);
98
+
99
+ // Insert
100
+ await pool.request()
101
+ .input('email', sql.VarChar, 'new@example.com')
102
+ .input('name', sql.VarChar, 'John Doe')
103
+ .query('INSERT INTO Users (email, name) VALUES (@email, @name)');
104
+
105
+ await pool.close();
106
+ ```
107
+
108
+ ## Blob Storage
109
+
110
+ ```typescript
111
+ import { BlobServiceClient } from '@azure/storage-blob';
112
+
113
+ const blobServiceClient = BlobServiceClient.fromConnectionString(
114
+ process.env.STORAGE_CONNECTION_STRING
115
+ );
116
+
117
+ const containerClient = blobServiceClient.getContainerClient('my-container');
118
+
119
+ // Upload blob
120
+ const blockBlobClient = containerClient.getBlockBlobClient('my-blob.txt');
121
+ await blockBlobClient.upload('content', 7);
122
+
123
+ // Download blob
124
+ const downloadBlockBlobResponse = await blockBlobClient.download(0);
125
+ const downloaded = await streamToString(downloadBlockBlobResponse.readableStreamBody);
126
+
127
+ // List blobs
128
+ for await (const blob of containerClient.listBlobsFlat()) {
129
+ console.log(`\t${blob.name}`);
130
+ }
131
+ ```
132
+
133
+ ## Azure Key Vault
134
+
135
+ ```typescript
136
+ import { SecretClient } from '@azure/keyvault-secrets';
137
+ import { DefaultAzureCredential } from '@azure/identity';
138
+
139
+ const vaultUrl = `https://${process.env.VAULT_NAME}.vault.azure.net`;
140
+ const client = new SecretClient(vaultUrl, new DefaultAzureCredential());
141
+
142
+ // Get secret
143
+ const secret = await client.getSecret('my-secret');
144
+ console.log(secret.value);
145
+
146
+ // Set secret
147
+ await client.setSecret('new-secret', 'secret-value');
148
+ ```
149
+
150
+ ## Application Insights (Monitoring)
151
+
152
+ ```typescript
153
+ import appInsights from 'applicationinsights';
154
+
155
+ appInsights.setup(process.env.APPINSIGHTS_INSTRUMENTATION_KEY)
156
+ .setAutoCollectConsole(true)
157
+ .start();
158
+
159
+ const client = appInsights.defaultClient;
160
+
161
+ // Track event
162
+ client.trackEvent({
163
+ name: 'UserLogin',
164
+ properties: { userId: '123', method: 'OAuth' }
165
+ });
166
+
167
+ // Track exception
168
+ try {
169
+ throw new Error('Something went wrong');
170
+ } catch (error) {
171
+ client.trackException({ exception: error });
172
+ }
173
+ ```
174
+
175
+ ## Best Practices
176
+
177
+ ✅ **Use managed identities** - Avoid connection strings in code
178
+ ✅ **Cosmos DB partitioning** - Design partition key for scalability
179
+ ✅ **Connection pooling** - Reuse SQL connections
180
+ ✅ **Application Insights** - Monitor performance and errors
181
+ ✅ **Use Azure DevOps** - CI/CD integration
182
+
183
+ ## Resources
184
+
185
+ - [Azure Documentation](https://learn.microsoft.com/en-us/azure/)
186
+ - [Cosmos DB Guide](https://learn.microsoft.com/en-us/azure/cosmos-db/)
187
+ - [Azure Functions](https://learn.microsoft.com/en-us/azure/azure-functions/)
@@ -0,0 +1,74 @@
1
+ # Cloudflare
2
+
3
+ Edge computing platform with Workers, KV, and D1 database.
4
+
5
+ ## Workers
6
+
7
+ ```typescript
8
+ // Basic worker
9
+ export default {
10
+ async fetch(request: Request) {
11
+ return new Response('Hello World!', {
12
+ status: 200,
13
+ headers: { 'Content-Type': 'text/plain' }
14
+ });
15
+ }
16
+ };
17
+ ```
18
+
19
+ ## KV Storage
20
+
21
+ ```typescript
22
+ // Store data
23
+ await NAMESPACE.put('key', 'value', { expirationTtl: 3600 });
24
+
25
+ // Retrieve data
26
+ const value = await NAMESPACE.get('key');
27
+
28
+ // Delete
29
+ await NAMESPACE.delete('key');
30
+ ```
31
+
32
+ ## D1 Database
33
+
34
+ ```typescript
35
+ // Query database
36
+ const { success, results } = await env.DB.prepare(
37
+ 'SELECT * FROM users WHERE id = ?'
38
+ ).bind(1).all();
39
+
40
+ // Insert
41
+ await env.DB.prepare(
42
+ 'INSERT INTO users (name, email) VALUES (?, ?)'
43
+ ).bind('John', 'john@example.com').run();
44
+ ```
45
+
46
+ ## Routes
47
+
48
+ ```toml
49
+ # wrangler.toml
50
+ name = "my-worker"
51
+ main = "src/index.ts"
52
+ compatibility_date = "2024-01-01"
53
+
54
+ [[routes]]
55
+ pattern = "example.com/api/*"
56
+ zone_name = "example.com"
57
+
58
+ [env.production]
59
+ routes = [
60
+ { pattern = "example.com/*", zone_name = "example.com" }
61
+ ]
62
+ ```
63
+
64
+ ## Best Practices
65
+
66
+ ✅ **Use caching** - Reduce origin requests
67
+ ✅ **Monitor metrics** - Track performance
68
+ ✅ **Secure with authentication** - Use API keys
69
+ ✅ **Enable WAF rules** - Protect from attacks
70
+
71
+ ## Resources
72
+
73
+ - [Cloudflare Docs](https://developers.cloudflare.com/)
74
+ - [Workers Guide](https://developers.cloudflare.com/workers/)