@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,66 +1,43 @@
1
1
  # 배포 (Deployment)
2
2
 
3
- > **Framework**: TanStack Start + Nitro v3
4
- > **Source**: [TanStack Start Hosting](https://tanstack.com/start/latest/docs/framework/react/hosting)
3
+ > TanStack Start + Nitro v3
5
4
 
6
- TanStack Start는 두 가지 배포 방식을 지원합니다:
7
- 1. **플랫폼 직접 통합**: Cloudflare Vite Plugin, Netlify Plugin 등
8
- 2. **Nitro 배포 레이어**: 다양한 플랫폼에 범용 배포
5
+ @nitro.md
6
+ @vercel.md
7
+ @cloudflare.md
8
+ @railway.md
9
9
 
10
10
  ---
11
11
 
12
- ## 문서 구조
12
+ ## 배포 방식
13
13
 
14
- | 문서 | 내용 |
15
- |------|------|
16
- | [Nitro 설정](./nitro.md) | Nitro v3 배포 레이어 기본 설정 |
17
- | [Vercel](./vercel.md) | Vercel 서버리스 배포 |
18
- | [Cloudflare](./cloudflare.md) | Cloudflare Workers/Pages 배포 |
19
- | [Railway](./railway.md) | Railway Node.js 서버 배포 |
14
+ | 방식 | 설정 | 지원 |
15
+ |------|------|------|
16
+ | 플랫폼 직접 통합 | Vite 플러그인 | Cloudflare, Netlify |
17
+ | Nitro 배포 레이어 | nitro/vite | 모든 Nitro preset |
20
18
 
21
- ---
22
-
23
- ## 배포 방식 비교
24
-
25
- ### 플랫폼 직접 통합 vs Nitro
26
-
27
- | 구분 | 플랫폼 직접 통합 | Nitro 배포 레이어 |
28
- |------|------------------|-------------------|
29
- | 설정 | 플랫폼별 Vite 플러그인 | `nitro/vite` 플러그인 |
30
- | 지원 | Cloudflare, Netlify | 모든 Nitro preset |
31
- | 특징 | 플랫폼 최적화 | 범용성, 이식성 |
32
- | 권장 | Cloudflare Workers | Vercel, Railway 등 |
33
-
34
- ### 플랫폼별 권장 방식
19
+ ### 플랫폼별 권장
35
20
 
36
- | 플랫폼 | 권장 방식 | Preset/Plugin |
37
- |--------|-----------|---------------|
38
- | **Cloudflare Workers** | 직접 통합 | `@cloudflare/vite-plugin` |
39
- | **Cloudflare Pages** | Nitro | `cloudflare_pages` |
40
- | **Vercel** | Nitro | `vercel` |
41
- | **Railway** | Nitro | `node` |
42
- | **Netlify** | 직접 통합 | `@netlify/vite-plugin-tanstack-start` |
21
+ | 플랫폼 | 방식 | 설정 |
22
+ |--------|------|------|
23
+ | Cloudflare Workers | 직접 통합 | `@cloudflare/vite-plugin` |
24
+ | Cloudflare Pages | Nitro | `cloudflare_pages` |
25
+ | Vercel | Nitro | `vercel` |
26
+ | Railway | Nitro | `node` |
27
+ | Netlify | 직접 통합 | `@netlify/vite-plugin-tanstack-start` |
43
28
 
44
29
  ---
45
30
 
46
- ## 방식 1: Cloudflare 직접 통합 (권장)
47
-
48
- Cloudflare Workers 배포 시 공식 권장 방식입니다.
49
-
50
- ### 1. 패키지 설치
31
+ ## Cloudflare Workers (직접 통합)
51
32
 
52
33
  ```bash
53
34
  yarn add -D @cloudflare/vite-plugin wrangler
54
35
  ```
55
36
 
56
- ### 2. Vite 설정
57
-
58
37
  ```typescript
59
38
  // vite.config.ts
60
- import { defineConfig } from 'vite'
61
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
62
39
  import { cloudflare } from '@cloudflare/vite-plugin'
63
- import viteReact from '@vitejs/plugin-react'
40
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
64
41
 
65
42
  export default defineConfig({
66
43
  plugins: [
@@ -71,322 +48,116 @@ export default defineConfig({
71
48
  })
72
49
  ```
73
50
 
74
- ### 3. Wrangler 설정
75
-
76
51
  ```jsonc
77
52
  // wrangler.jsonc
78
53
  {
79
- "$schema": "node_modules/wrangler/config-schema.json",
80
- "name": "my-tanstack-app",
54
+ "name": "my-app",
81
55
  "compatibility_date": "2024-09-19",
82
56
  "compatibility_flags": ["nodejs_compat"],
83
57
  "main": "@tanstack/react-start/server-entry"
84
58
  }
85
59
  ```
86
60
 
87
- ### 4. 배포
88
-
89
61
  ```bash
90
- # 빌드 및 배포
91
62
  yarn build && wrangler deploy
92
63
  ```
93
64
 
94
65
  ---
95
66
 
96
- ## 방식 2: Nitro 배포 레이어
97
-
98
- 다양한 플랫폼에 범용으로 배포할 수 있습니다.
99
-
100
- ### 1. Nitro 설치
67
+ ## Nitro 배포 레이어
101
68
 
102
69
  ```bash
103
70
  yarn add nitro@3
104
71
  ```
105
72
 
106
- ### 2. Vite 설정
107
-
108
73
  ```typescript
109
74
  // vite.config.ts
110
- import { defineConfig } from 'vite'
111
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
112
75
  import { nitro } from 'nitro/vite'
113
- import viteReact from '@vitejs/plugin-react'
76
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite'
114
77
 
115
78
  export default defineConfig({
116
- plugins: [
117
- tanstackStart(),
118
- nitro(),
119
- viteReact(),
120
- ],
79
+ plugins: [tanstackStart(), nitro(), viteReact()],
121
80
  })
122
81
  ```
123
82
 
124
- ### 3. Nitro 설정
125
-
126
83
  ```typescript
127
84
  // nitro.config.ts
128
85
  import { defineNitroConfig } from 'nitro/config'
129
86
 
130
87
  export default defineNitroConfig({
131
- // 플랫폼별 preset 선택
132
- preset: 'vercel', // vercel, cloudflare_pages, node 등
133
-
134
- // Nitro v3 필수 설정
88
+ preset: 'vercel', // vercel, cloudflare_pages, node
135
89
  compatibilityDate: '2024-09-19',
136
90
  })
137
91
  ```
138
92
 
139
- ### 4. 빌드 및 배포
140
-
141
93
  ```bash
142
- # 빌드
143
94
  yarn build
144
-
145
- # 또는 환경변수로 preset 지정
95
+ # 또는
146
96
  NITRO_PRESET=vercel yarn build
147
97
  ```
148
98
 
149
99
  ---
150
100
 
151
- ## Preset 선택 가이드
152
-
153
- ### Edge 런타임이 필요한 경우
154
-
155
- | 플랫폼 | 방식 | 설정 |
156
- |--------|------|------|
157
- | Cloudflare Workers | 직접 통합 | `@cloudflare/vite-plugin` |
158
- | Cloudflare Pages | Nitro | `preset: 'cloudflare_pages'` |
159
- | Vercel Edge | Nitro | `preset: 'vercel'` |
160
-
161
- ### Node.js 서버가 필요한 경우
162
-
163
- | 플랫폼 | 방식 | 설정 |
164
- |--------|------|------|
165
- | Railway | Nitro | `preset: 'node'` |
166
- | Docker | Nitro | `preset: 'node'` |
167
- | 기타 VPS | Nitro | `preset: 'node'` |
168
-
169
- ### Bun 런타임
170
-
171
- ```typescript
172
- // vite.config.ts
173
- import { defineConfig } from 'vite'
174
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
175
- import { nitro } from 'nitro/vite'
176
- import viteReact from '@vitejs/plugin-react'
177
-
178
- export default defineConfig({
179
- plugins: [
180
- tanstackStart(),
181
- nitro({ preset: 'bun' }),
182
- viteReact(),
183
- ],
184
- })
185
- ```
186
-
187
- ---
188
-
189
- ## package.json 스크립트
190
-
191
- ```json
192
- {
193
- "scripts": {
194
- "dev": "vite dev",
195
- "build": "vite build && tsc --noEmit",
196
- "start": "node .output/server/index.mjs",
197
- "preview": "vite preview",
198
- "deploy": "yarn build && wrangler deploy"
199
- }
200
- }
201
- ```
202
-
203
- ---
204
-
205
- ## ⚠️ 유의사항
206
-
207
- TanStack Start의 SSR 환경에서 발생할 수 있는 주요 이슈와 해결 방법입니다.
101
+ ## ⚠️ SSR 이슈 해결
208
102
 
209
103
  ### node:async_hooks 오류
210
104
 
211
- TanStack Start의 AsyncLocalStorage 관련 모듈이 클라이언트 번들에 포함되면 다음 오류가 발생합니다:
212
-
213
- ```
214
- Module 'node:async_hooks' has been externalized for browser
215
- ```
216
-
217
- **해결 방법**: `vite.config.ts`에 다음 설정을 추가합니다.
218
-
219
105
  ```typescript
220
106
  // vite.config.ts
221
- import { defineConfig } from 'vite'
222
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
223
- import viteReact from '@vitejs/plugin-react'
224
-
225
107
  export default defineConfig({
226
- plugins: [
227
- tanstackStart(),
228
- viteReact(),
229
- ],
230
- optimizeDeps: {
231
- exclude: ['node:async_hooks'],
232
- },
233
- ssr: {
234
- external: ['node:async_hooks'],
235
- },
108
+ optimizeDeps: { exclude: ['node:async_hooks'] },
109
+ ssr: { external: ['node:async_hooks'] },
236
110
  })
237
111
  ```
238
112
 
239
- ---
240
-
241
- ### Prisma 사용 시 설정
242
-
243
- TanStack Start에서 Prisma를 사용하는 경우, 브라우저 번들링 시 모듈 해석 오류가 발생할 수 있습니다.
244
-
245
- **해결 방법**: `vite.config.ts`에 alias 설정을 추가합니다.
113
+ ### Prisma 브라우저 번들링
246
114
 
247
115
  ```typescript
248
- // vite.config.ts
249
- import { defineConfig } from 'vite'
250
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
251
- import viteReact from '@vitejs/plugin-react'
252
-
253
- export default defineConfig({
254
- plugins: [
255
- tanstackStart(),
256
- viteReact(),
257
- ],
258
- resolve: {
259
- alias: {
260
- '.prisma/client/index-browser':
261
- './node_modules/.prisma/client/index-browser.js',
262
- },
116
+ resolve: {
117
+ alias: {
118
+ '.prisma/client/index-browser': './node_modules/.prisma/client/index-browser.js',
263
119
  },
264
- })
120
+ },
265
121
  ```
266
122
 
267
- ---
268
-
269
- ### SSR Context Loss (Clerk, 외부 패키지)
270
-
271
- Clerk 등 AsyncLocalStorage를 사용하는 외부 패키지에서 SSR context 손실 오류가 발생할 수 있습니다:
272
-
273
- ```
274
- Error: No HTTPEvent found in AsyncLocalStorage
275
- ```
276
-
277
- **해결 방법**: 해당 패키지를 `ssr.noExternal`에 추가합니다.
278
-
279
- ```typescript
280
- // vite.config.ts
281
- export default defineConfig({
282
- plugins: [tanstackStart(), viteReact()],
283
- ssr: {
284
- noExternal: ['@clerk/tanstack-react-start'],
285
- },
286
- })
287
- ```
288
-
289
- ---
290
-
291
- ### MUI (Material UI) SSR 설정
292
-
293
- MUI 사용 시 SSR 환경에서 스타일 또는 모듈 오류가 발생할 수 있습니다.
294
-
295
- **해결 방법**: MUI 관련 패키지를 `ssr.noExternal`에 추가합니다.
123
+ ### SSR Context Loss (Clerk, MUI)
296
124
 
297
125
  ```typescript
298
- // vite.config.ts
299
- export default defineConfig({
300
- plugins: [tanstackStart(), viteReact()],
301
- ssr: {
302
- noExternal: [
303
- '@mui/material',
304
- '@mui/utils',
305
- '@mui/styled-engine',
306
- '@mui/icons-material',
307
- '@mui/system',
308
- ],
309
- },
310
- })
126
+ ssr: {
127
+ noExternal: [
128
+ '@clerk/tanstack-react-start',
129
+ '@mui/material', '@mui/utils', '@mui/styled-engine',
130
+ ],
131
+ },
311
132
  ```
312
133
 
313
- ---
314
-
315
- ### 종합 설정 예시
316
-
317
- 여러 패키지를 함께 사용하는 경우의 통합 설정:
134
+ ### 종합 설정
318
135
 
319
136
  ```typescript
320
- // vite.config.ts
321
- import { defineConfig } from 'vite'
322
- import { tanstackStart } from '@tanstack/react-start/plugin/vite'
323
- import tsConfigPaths from 'vite-tsconfig-paths'
324
- import viteReact from '@vitejs/plugin-react'
325
-
326
137
  export default defineConfig({
327
- server: {
328
- port: 3000,
329
- },
330
- plugins: [
331
- tsConfigPaths(),
332
- tanstackStart(),
333
- viteReact(),
334
- ],
335
- // Prisma 사용 시
138
+ plugins: [tsConfigPaths(), tanstackStart(), viteReact()],
336
139
  resolve: {
337
- alias: {
338
- '.prisma/client/index-browser':
339
- './node_modules/.prisma/client/index-browser.js',
340
- },
341
- },
342
- // Node.js 내장 모듈 처리
343
- optimizeDeps: {
344
- exclude: ['node:async_hooks'],
140
+ alias: { '.prisma/client/index-browser': './node_modules/.prisma/client/index-browser.js' },
345
141
  },
346
- // SSR 설정
142
+ optimizeDeps: { exclude: ['node:async_hooks'] },
347
143
  ssr: {
348
144
  external: ['node:async_hooks'],
349
- noExternal: [
350
- // Clerk 사용 시
351
- '@clerk/tanstack-react-start',
352
- // MUI 사용 시
353
- '@mui/material',
354
- '@mui/utils',
355
- '@mui/styled-engine',
356
- '@mui/icons-material',
357
- '@mui/system',
358
- ],
145
+ noExternal: ['@clerk/tanstack-react-start', '@mui/material'],
359
146
  },
147
+ })
360
148
  ```
361
149
 
362
150
  ---
363
151
 
364
- ### 참고 자료
365
-
366
- - [TanStack Start SSR Context Loss Issue](https://github.com/TanStack/router/issues/4409)
367
- - [node:async_hooks AsyncLocalStorage Bug](https://github.com/TanStack/router/issues/4729)
368
- - [TanStack Start Material UI Example](https://tanstack.com/start/latest/docs/framework/react/examples/start-material-ui)
369
- - [TanStack Start Clerk Example](https://tanstack.com/start/latest/docs/framework/react/examples/start-clerk-basic)
152
+ ## 스크립트
370
153
 
371
- ---
372
-
373
- ## 환경변수
374
-
375
- 모든 플랫폼에서 공통으로 사용:
376
-
377
- ```bash
378
- # 빌드 시 preset 지정 (Nitro 사용 시)
379
- NITRO_PRESET=vercel
380
-
381
- # 런타임 환경변수
382
- DATABASE_URL=postgresql://...
383
- API_SECRET=your-secret-key
154
+ ```json
155
+ {
156
+ "scripts": {
157
+ "dev": "vite dev",
158
+ "build": "vite build && tsc --noEmit",
159
+ "start": "node .output/server/index.mjs",
160
+ "deploy": "yarn build && wrangler deploy"
161
+ }
162
+ }
384
163
  ```
385
-
386
- ---
387
-
388
- ## 참고 자료
389
-
390
- - [TanStack Start Hosting 공식 문서](https://tanstack.com/start/latest/docs/framework/react/hosting)
391
- - [Nitro 공식 문서](https://nitro.build)
392
- - [Cloudflare Vite Plugin](https://developers.cloudflare.com/workers/frameworks/framework-guides/tanstack-start/)