@kood/claude-code 0.1.5 → 0.1.7

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 (77) hide show
  1. package/dist/index.js +21 -243
  2. package/package.json +1 -1
  3. package/templates/hono/CLAUDE.md +10 -6
  4. package/templates/hono/docs/deployment/index.md +5 -0
  5. package/templates/hono/docs/library/hono/index.md +6 -0
  6. package/templates/hono/docs/library/prisma/index.md +3 -0
  7. package/templates/npx/CLAUDE.md +8 -2
  8. package/templates/tanstack-start/CLAUDE.md +105 -259
  9. package/templates/tanstack-start/docs/deployment/cloudflare.md +37 -424
  10. package/templates/tanstack-start/docs/deployment/index.md +57 -286
  11. package/templates/tanstack-start/docs/deployment/nitro.md +36 -318
  12. package/templates/tanstack-start/docs/deployment/railway.md +40 -409
  13. package/templates/tanstack-start/docs/deployment/vercel.md +43 -465
  14. package/templates/tanstack-start/docs/design/accessibility.md +56 -326
  15. package/templates/tanstack-start/docs/design/color.md +37 -179
  16. package/templates/tanstack-start/docs/design/components.md +77 -311
  17. package/templates/tanstack-start/docs/design/index.md +24 -87
  18. package/templates/tanstack-start/docs/design/safe-area.md +51 -250
  19. package/templates/tanstack-start/docs/design/spacing.md +57 -276
  20. package/templates/tanstack-start/docs/design/tailwind-setup.md +45 -359
  21. package/templates/tanstack-start/docs/design/typography.md +40 -284
  22. package/templates/tanstack-start/docs/guides/best-practices.md +3 -8
  23. package/templates/tanstack-start/docs/guides/env-setup.md +3 -3
  24. package/templates/tanstack-start/docs/library/better-auth/2fa.md +27 -115
  25. package/templates/tanstack-start/docs/library/better-auth/advanced.md +22 -105
  26. package/templates/tanstack-start/docs/library/better-auth/index.md +17 -66
  27. package/templates/tanstack-start/docs/library/better-auth/plugins.md +11 -88
  28. package/templates/tanstack-start/docs/library/better-auth/session.md +12 -92
  29. package/templates/tanstack-start/docs/library/better-auth/setup.md +9 -91
  30. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +30 -358
  31. package/templates/tanstack-start/docs/library/prisma/config.md +27 -327
  32. package/templates/tanstack-start/docs/library/prisma/crud.md +46 -174
  33. package/templates/tanstack-start/docs/library/prisma/index.md +23 -113
  34. package/templates/tanstack-start/docs/library/prisma/relations.md +31 -153
  35. package/templates/tanstack-start/docs/library/prisma/schema.md +40 -217
  36. package/templates/tanstack-start/docs/library/prisma/setup.md +13 -113
  37. package/templates/tanstack-start/docs/library/prisma/transactions.md +20 -110
  38. package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -99
  39. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +28 -107
  40. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +44 -146
  41. package/templates/tanstack-start/docs/library/tanstack-query/setup.md +11 -73
  42. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +33 -127
  43. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +49 -149
  44. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +19 -112
  45. package/templates/tanstack-start/docs/library/tanstack-start/index.md +33 -80
  46. package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +28 -106
  47. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +21 -118
  48. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +41 -172
  49. package/templates/tanstack-start/docs/library/tanstack-start/setup.md +6 -39
  50. package/templates/tanstack-start/docs/library/zod/basic-types.md +33 -145
  51. package/templates/tanstack-start/docs/library/zod/complex-types.md +32 -156
  52. package/templates/tanstack-start/docs/library/zod/index.md +22 -150
  53. package/templates/tanstack-start/docs/library/zod/transforms.md +20 -129
  54. package/templates/tanstack-start/docs/library/zod/validation.md +39 -155
  55. package/templates/hono/docs/commands/git.md +0 -145
  56. package/templates/hono/docs/mcp/context7.md +0 -106
  57. package/templates/hono/docs/mcp/index.md +0 -176
  58. package/templates/hono/docs/mcp/sequential-thinking.md +0 -101
  59. package/templates/hono/docs/mcp/serena.md +0 -269
  60. package/templates/hono/docs/mcp/sgrep.md +0 -105
  61. package/templates/hono/docs/skills/gemini-review/SKILL.md +0 -220
  62. package/templates/hono/docs/skills/gemini-review/references/checklists.md +0 -136
  63. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +0 -303
  64. package/templates/npx/docs/commands/git.md +0 -145
  65. package/templates/npx/docs/mcp/index.md +0 -60
  66. package/templates/npx/docs/skills/gemini-review/SKILL.md +0 -220
  67. package/templates/npx/docs/skills/gemini-review/references/checklists.md +0 -134
  68. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +0 -301
  69. package/templates/tanstack-start/docs/commands/git.md +0 -145
  70. package/templates/tanstack-start/docs/mcp/context7.md +0 -204
  71. package/templates/tanstack-start/docs/mcp/index.md +0 -177
  72. package/templates/tanstack-start/docs/mcp/sequential-thinking.md +0 -180
  73. package/templates/tanstack-start/docs/mcp/serena.md +0 -269
  74. package/templates/tanstack-start/docs/mcp/sgrep.md +0 -174
  75. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +0 -220
  76. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +0 -144
  77. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +0 -292
@@ -1,76 +1,11 @@
1
1
  # Cloudflare 배포
2
2
 
3
- > **상위 문서**: [배포](./index.md)
4
- > **Source**: [TanStack Start Hosting](https://tanstack.com/start/latest/docs/framework/react/hosting)
5
-
6
- Cloudflare는 Workers와 Pages 두 가지 배포 옵션을 제공합니다.
7
-
8
- ---
9
-
10
- ## 🚀 Quick Reference (복사용)
11
-
12
- ### Workers 직접 통합 (권장)
3
+ ## Quick Reference (Workers 직접 통합)
13
4
 
14
5
  ```typescript
15
6
  // vite.config.ts
16
- import { defineConfig } from 'vite'
17
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
18
7
  import { cloudflare } from '@cloudflare/vite-plugin'
19
- import viteReact from '@vitejs/plugin-react'
20
-
21
- export default defineConfig({
22
- plugins: [
23
- cloudflare({ viteEnvironment: { name: 'ssr' } }),
24
- tanstackStart(),
25
- viteReact(),
26
- ],
27
- })
28
- ```
29
-
30
- ```jsonc
31
- // wrangler.jsonc
32
- {
33
- "$schema": "node_modules/wrangler/config-schema.json",
34
- "name": "my-tanstack-app",
35
- "compatibility_date": "2024-09-19",
36
- "compatibility_flags": ["nodejs_compat"],
37
- "main": "@tanstack/react-start/server-entry"
38
- }
39
- ```
40
-
41
- ```bash
42
- yarn build && wrangler deploy
43
- ```
44
-
45
- ---
46
-
47
- ## 배포 옵션 비교
48
-
49
- | 옵션 | 방식 | 특징 | 권장 |
50
- |------|------|------|------|
51
- | **Workers** | `@cloudflare/vite-plugin` 직접 통합 | 서버리스 컴퓨팅, KV/D1 통합, 최적화 | ✅ |
52
- | **Pages** | Nitro `cloudflare_pages` preset | 정적 사이트 + Functions | - |
53
-
54
- ---
55
-
56
- ## 방식 1: Cloudflare Workers (직접 통합 - 권장)
57
-
58
- TanStack Start 공식 권장 방식입니다.
59
-
60
- ### 1. 패키지 설치
61
-
62
- ```bash
63
- yarn add -D @cloudflare/vite-plugin wrangler
64
- ```
65
-
66
- ### 2. Vite 설정
67
-
68
- ```typescript
69
- // vite.config.ts
70
- import { defineConfig } from 'vite'
71
8
  import { tanstackStart } from '@tanstack/react-start/plugin/vite'
72
- import { cloudflare } from '@cloudflare/vite-plugin'
73
- import viteReact from '@vitejs/plugin-react'
74
9
 
75
10
  export default defineConfig({
76
11
  plugins: [
@@ -81,439 +16,117 @@ export default defineConfig({
81
16
  })
82
17
  ```
83
18
 
84
- ### 3. Wrangler 설정
85
-
86
19
  ```jsonc
87
20
  // wrangler.jsonc
88
21
  {
89
- "$schema": "node_modules/wrangler/config-schema.json",
90
- "name": "my-tanstack-app",
22
+ "name": "my-app",
91
23
  "compatibility_date": "2024-09-19",
92
24
  "compatibility_flags": ["nodejs_compat"],
93
25
  "main": "@tanstack/react-start/server-entry"
94
26
  }
95
27
  ```
96
28
 
97
- ### 4. 빌드 및 배포
98
-
99
29
  ```bash
100
- # 빌드
101
- yarn build
102
-
103
- # 배포
104
- wrangler deploy
105
-
106
- # 또는 한번에
30
+ yarn add -D @cloudflare/vite-plugin wrangler
107
31
  yarn build && wrangler deploy
108
32
  ```
109
33
 
110
34
  ---
111
35
 
112
- ## 방식 2: Cloudflare Pages (Nitro 레이어)
113
-
114
- Nitro 배포 레이어를 사용하는 방식입니다.
115
-
116
- ### 1. Nitro 설치
117
-
118
- ```bash
119
- yarn add nitro@3
120
- ```
36
+ ## 배포 옵션
121
37
 
122
- ### 2. Vite 설정
38
+ | 옵션 | 방식 | 권장 |
39
+ |------|------|------|
40
+ | Workers | 직접 통합 | ✅ |
41
+ | Pages | Nitro `cloudflare_pages` | - |
123
42
 
124
- ```typescript
125
- // vite.config.ts
126
- import { defineConfig } from 'vite'
127
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
128
- import { nitro } from 'nitro/vite'
129
- import viteReact from '@vitejs/plugin-react'
130
-
131
- export default defineConfig({
132
- plugins: [
133
- tanstackStart(),
134
- nitro(),
135
- viteReact(),
136
- ],
137
- })
138
- ```
43
+ ---
139
44
 
140
- ### 3. Nitro 설정
45
+ ## Pages (Nitro)
141
46
 
142
47
  ```typescript
143
48
  // nitro.config.ts
144
- import { defineNitroConfig } from 'nitro/config'
145
-
146
49
  export default defineNitroConfig({
147
50
  preset: 'cloudflare_pages',
148
-
149
- // Nitro v3 필수 설정
150
51
  compatibilityDate: '2024-09-19',
151
-
152
- cloudflare: {
153
- deployConfig: true, // wrangler.json 자동 생성
154
- nodeCompat: true, // Node.js API 호환성
155
- },
52
+ cloudflare: { deployConfig: true, nodeCompat: true },
156
53
  })
157
54
  ```
158
55
 
159
- ### 4. 빌드 및 배포
160
-
161
56
  ```bash
162
- # 빌드
163
57
  yarn build
164
-
165
- # Pages 배포
166
58
  wrangler pages deploy .output/public
167
59
  ```
168
60
 
169
61
  ---
170
62
 
171
- ## Wrangler 설정 상세
172
-
173
- ### wrangler.jsonc (Workers 직접 통합)
63
+ ## Wrangler 설정
174
64
 
175
65
  ```jsonc
176
- // wrangler.jsonc
66
+ // wrangler.jsonc (Workers)
177
67
  {
178
- "$schema": "node_modules/wrangler/config-schema.json",
179
- "name": "my-tanstack-app",
68
+ "name": "my-app",
180
69
  "compatibility_date": "2024-09-19",
181
70
  "compatibility_flags": ["nodejs_compat"],
182
71
  "main": "@tanstack/react-start/server-entry",
183
-
184
- // 환경 변수
185
- "vars": {
186
- "MY_VAR": "value"
187
- },
188
-
189
- // KV 스토리지
190
- "kv_namespaces": [
191
- { "binding": "MY_KV", "id": "your-kv-id" }
192
- ],
193
-
194
- // D1 데이터베이스
195
- "d1_databases": [
196
- { "binding": "DB", "database_name": "my-database", "database_id": "your-database-id" }
197
- ]
72
+ "vars": { "MY_VAR": "value" },
73
+ "kv_namespaces": [{ "binding": "MY_KV", "id": "kv-id" }],
74
+ "d1_databases": [{ "binding": "DB", "database_name": "my-db", "database_id": "db-id" }]
198
75
  }
199
76
  ```
200
77
 
201
- ### wrangler.toml (Workers)
202
-
203
- ```toml
204
- name = "my-app"
205
- main = "@tanstack/react-start/server-entry"
206
- compatibility_date = "2024-09-19"
207
- compatibility_flags = ["nodejs_compat"]
208
-
209
- [vars]
210
- MY_VAR = "value"
211
-
212
- [[kv_namespaces]]
213
- binding = "MY_KV"
214
- id = "your-kv-id"
215
-
216
- [[d1_databases]]
217
- binding = "DB"
218
- database_name = "my-database"
219
- database_id = "your-database-id"
220
- ```
221
-
222
- ### wrangler.toml (Pages with Nitro)
223
-
224
- ```toml
225
- name = "my-pages-app"
226
- pages_build_output_dir = ".output/public"
227
- compatibility_date = "2024-09-19"
228
- compatibility_flags = ["nodejs_compat"]
229
-
230
- [[d1_databases]]
231
- binding = "DB"
232
- database_name = "my-database"
233
- database_id = "your-database-id"
234
- ```
235
-
236
78
  ---
237
79
 
238
- ## KV 스토리지 사용
239
-
240
- ### KV 네임스페이스 생성
241
-
242
- ```bash
243
- # KV 네임스페이스 생성
244
- wrangler kv:namespace create "MY_KV"
245
-
246
- # wrangler.jsonc에 바인딩 추가
247
- ```
248
-
249
- ### 코드에서 사용
80
+ ## KV / D1 사용
250
81
 
251
82
  ```typescript
252
- // server/api/kv-example.ts
253
- import { defineHandler } from 'nitro/h3'
254
-
83
+ // server/api/example.ts
255
84
  export default defineHandler(async (event) => {
256
85
  const env = event.context.cloudflare.env
257
-
258
- // KV 읽기
259
86
  const value = await env.MY_KV.get('key')
260
-
261
- // KV 쓰기
262
87
  await env.MY_KV.put('key', 'value')
263
-
264
- return { value }
88
+ const results = await env.DB.prepare('SELECT * FROM users').all()
89
+ return { value, results }
265
90
  })
266
91
  ```
267
92
 
268
93
  ---
269
94
 
270
- ## D1 데이터베이스 사용
271
-
272
- ### D1 데이터베이스 생성
95
+ ## 환경변수
273
96
 
274
97
  ```bash
275
- # 데이터베이스 생성
276
- wrangler d1 create my-database
277
-
278
- # 마이그레이션 실행
279
- wrangler d1 migrations apply my-database
280
- ```
281
-
282
- ### 코드에서 사용
283
-
284
- ```typescript
285
- // server/api/d1-example.ts
286
- import { defineHandler } from 'nitro/h3'
287
-
288
- export default defineHandler(async (event) => {
289
- const env = event.context.cloudflare.env
290
-
291
- // 쿼리 실행
292
- const results = await env.DB.prepare(
293
- 'SELECT * FROM users WHERE id = ?'
294
- ).bind(1).all()
295
-
296
- return results
297
- })
298
- ```
299
-
300
- ---
301
-
302
- ## 환경변수 관리
303
-
304
- ### 로컬 개발
305
-
306
- ```bash
307
- # .dev.vars 파일 생성
98
+ # .dev.vars (로컬)
308
99
  DATABASE_URL=your-local-url
309
- API_SECRET=your-secret
310
- ```
311
-
312
- ### 프로덕션
313
100
 
314
- ```bash
315
- # 시크릿 설정
101
+ # 프로덕션 시크릿
316
102
  wrangler secret put API_SECRET
317
-
318
- # 일반 변수 (wrangler.jsonc)
319
- {
320
- "vars": {
321
- "NODE_ENV": "production"
322
- }
323
- }
324
103
  ```
325
104
 
326
105
  ---
327
106
 
328
- ## 커스텀 도메인
329
-
330
- ### Pages
331
-
332
- ```bash
333
- # 커스텀 도메인 추가
334
- wrangler pages project add-custom-domain my-app example.com
335
- ```
336
-
337
- ### Workers
338
-
339
- Cloudflare 대시보드에서 설정하거나:
107
+ ## CI/CD
340
108
 
341
- ```toml
342
- # wrangler.toml
343
- routes = [
344
- { pattern = "example.com/*", zone_name = "example.com" }
345
- ]
346
- ```
347
-
348
- ---
349
-
350
- ## 개발 서버
351
-
352
- ```bash
353
- # Workers 로컬 개발
354
- wrangler dev
355
-
356
- # Pages 로컬 개발 (Nitro 사용 시)
357
- wrangler pages dev .output/public
358
-
359
- # 로컬 모드 (미니플레어 사용)
360
- wrangler dev --local
109
+ ```yaml
110
+ # .github/workflows/cloudflare.yml
111
+ - uses: cloudflare/wrangler-action@v3
112
+ with:
113
+ apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
114
+ command: deploy
361
115
  ```
362
116
 
363
117
  ---
364
118
 
365
119
  ## 트러블슈팅
366
120
 
367
- ### Node.js API 호환성
368
-
369
- Workers 직접 통합 시 `wrangler.jsonc`:
370
-
371
- ```jsonc
372
- {
373
- "compatibility_flags": ["nodejs_compat"]
374
- }
375
- ```
376
-
377
- Nitro 사용 시 `nitro.config.ts`:
378
-
379
121
  ```typescript
380
- import { defineNitroConfig } from 'nitro/config'
122
+ // nitro.config.ts - Node.js 호환성
123
+ cloudflare: { nodeCompat: true }
381
124
 
382
- export default defineNitroConfig({
383
- preset: 'cloudflare_pages',
384
- compatibilityDate: '2024-09-19',
385
- cloudflare: {
386
- nodeCompat: true,
387
- },
388
- // 또는 특정 폴리필 설정
389
- unenv: {
390
- alias: {
391
- 'node:buffer': 'buffer',
392
- },
393
- },
394
- })
395
- ```
396
-
397
- ### 번들 크기 최적화
398
-
399
- ```typescript
400
- // nitro.config.ts
401
- import { defineNitroConfig } from 'nitro/config'
402
-
403
- export default defineNitroConfig({
404
- preset: 'cloudflare_pages',
405
- compatibilityDate: '2024-09-19',
406
- // 외부화할 패키지
407
- externals: ['@prisma/client'],
408
- // 트리 쉐이킹
409
- minify: true,
410
- })
125
+ // 번들 최적화
126
+ externals: ['@prisma/client']
127
+ minify: true
411
128
  ```
412
129
 
413
- ### 로그 확인
414
-
415
130
  ```bash
416
- # 실시간 로그
417
- wrangler tail
418
-
419
- # 특정 배포 로그
420
- wrangler tail --deployment-id [id]
131
+ wrangler tail # 실시간 로그
421
132
  ```
422
-
423
- ---
424
-
425
- ## CI/CD 설정
426
-
427
- ### GitHub Actions (Workers 직접 통합)
428
-
429
- ```yaml
430
- name: Deploy to Cloudflare Workers
431
-
432
- on:
433
- push:
434
- branches: [main]
435
-
436
- jobs:
437
- deploy:
438
- runs-on: ubuntu-latest
439
- steps:
440
- - uses: actions/checkout@v4
441
-
442
- - name: Setup Node.js
443
- uses: actions/setup-node@v4
444
- with:
445
- node-version: '20'
446
- cache: 'yarn'
447
-
448
- - name: Install dependencies
449
- run: yarn install --frozen-lockfile
450
-
451
- - name: Build
452
- run: yarn build
453
-
454
- - name: Deploy to Workers
455
- uses: cloudflare/wrangler-action@v3
456
- with:
457
- apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
458
- command: deploy
459
- ```
460
-
461
- ### GitHub Actions (Pages with Nitro)
462
-
463
- ```yaml
464
- name: Deploy to Cloudflare Pages
465
-
466
- on:
467
- push:
468
- branches: [main]
469
-
470
- jobs:
471
- deploy:
472
- runs-on: ubuntu-latest
473
- steps:
474
- - uses: actions/checkout@v4
475
-
476
- - name: Setup Node.js
477
- uses: actions/setup-node@v4
478
- with:
479
- node-version: '20'
480
- cache: 'yarn'
481
-
482
- - name: Install dependencies
483
- run: yarn install --frozen-lockfile
484
-
485
- - name: Build
486
- run: yarn build
487
-
488
- - name: Deploy to Pages
489
- uses: cloudflare/wrangler-action@v3
490
- with:
491
- apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
492
- command: pages deploy .output/public --project-name=my-app
493
- ```
494
-
495
- ---
496
-
497
- ## package.json 스크립트
498
-
499
- ```json
500
- {
501
- "scripts": {
502
- "dev": "vite dev",
503
- "build": "vite build && tsc --noEmit",
504
- "preview": "vite preview",
505
- "deploy": "yarn build && wrangler deploy"
506
- }
507
- }
508
- ```
509
-
510
- ---
511
-
512
- ## 참고 자료
513
-
514
- - [TanStack Start Cloudflare Guide](https://developers.cloudflare.com/workers/frameworks/framework-guides/tanstack-start/)
515
- - [Cloudflare Vite Plugin](https://developers.cloudflare.com/workers/frameworks/vite/)
516
- - [Cloudflare Workers 문서](https://developers.cloudflare.com/workers/)
517
- - [Cloudflare Pages 문서](https://developers.cloudflare.com/pages/)
518
- - [Wrangler CLI](https://developers.cloudflare.com/workers/wrangler/)
519
- - [Nitro Cloudflare Preset](https://nitro.build/deploy/providers/cloudflare)