create-rudder-app 0.3.1 → 0.4.0

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 (243) hide show
  1. package/dist/index.js +100 -20
  2. package/dist/index.js.map +1 -1
  3. package/dist/templates/app/auth-controller.d.ts +2 -0
  4. package/dist/templates/app/auth-controller.d.ts.map +1 -0
  5. package/dist/templates/app/auth-controller.js +51 -0
  6. package/dist/templates/app/auth-controller.js.map +1 -0
  7. package/dist/templates/app/mcp-echo-server.d.ts +2 -0
  8. package/dist/templates/app/mcp-echo-server.d.ts.map +1 -0
  9. package/dist/templates/app/mcp-echo-server.js +13 -0
  10. package/dist/templates/app/mcp-echo-server.js.map +1 -0
  11. package/dist/templates/app/mcp-echo-tool.d.ts +2 -0
  12. package/dist/templates/app/mcp-echo-tool.d.ts.map +1 -0
  13. package/dist/templates/app/mcp-echo-tool.js +20 -0
  14. package/dist/templates/app/mcp-echo-tool.js.map +1 -0
  15. package/dist/templates/app/service-provider.d.ts +3 -0
  16. package/dist/templates/app/service-provider.d.ts.map +1 -0
  17. package/dist/templates/app/service-provider.js +27 -0
  18. package/dist/templates/app/service-provider.js.map +1 -0
  19. package/dist/templates/app/user-model.d.ts +2 -0
  20. package/dist/templates/app/user-model.d.ts.map +1 -0
  21. package/dist/templates/app/user-model.js +19 -0
  22. package/dist/templates/app/user-model.js.map +1 -0
  23. package/dist/templates/bootstrap/app.d.ts +3 -0
  24. package/dist/templates/bootstrap/app.d.ts.map +1 -0
  25. package/dist/templates/bootstrap/app.js +41 -0
  26. package/dist/templates/bootstrap/app.js.map +1 -0
  27. package/dist/templates/bootstrap/providers.d.ts +3 -0
  28. package/dist/templates/bootstrap/providers.d.ts.map +1 -0
  29. package/dist/templates/bootstrap/providers.js +27 -0
  30. package/dist/templates/bootstrap/providers.js.map +1 -0
  31. package/dist/templates/configs/ai.d.ts +2 -0
  32. package/dist/templates/configs/ai.d.ts.map +1 -0
  33. package/dist/templates/configs/ai.js +32 -0
  34. package/dist/templates/configs/ai.js.map +1 -0
  35. package/dist/templates/configs/app.d.ts +2 -0
  36. package/dist/templates/configs/app.d.ts.map +1 -0
  37. package/dist/templates/configs/app.js +12 -0
  38. package/dist/templates/configs/app.js.map +1 -0
  39. package/dist/templates/configs/auth.d.ts +3 -0
  40. package/dist/templates/configs/auth.d.ts.map +1 -0
  41. package/dist/templates/configs/auth.js +16 -0
  42. package/dist/templates/configs/auth.js.map +1 -0
  43. package/dist/templates/configs/cache.d.ts +2 -0
  44. package/dist/templates/configs/cache.d.ts.map +1 -0
  45. package/dist/templates/configs/cache.js +28 -0
  46. package/dist/templates/configs/cache.js.map +1 -0
  47. package/dist/templates/configs/cashier.d.ts +2 -0
  48. package/dist/templates/configs/cashier.d.ts.map +1 -0
  49. package/dist/templates/configs/cashier.js +22 -0
  50. package/dist/templates/configs/cashier.js.map +1 -0
  51. package/dist/templates/configs/crypt.d.ts +2 -0
  52. package/dist/templates/configs/crypt.d.ts.map +1 -0
  53. package/dist/templates/configs/crypt.js +16 -0
  54. package/dist/templates/configs/crypt.js.map +1 -0
  55. package/dist/templates/configs/database.d.ts +3 -0
  56. package/dist/templates/configs/database.d.ts.map +1 -0
  57. package/dist/templates/configs/database.js +28 -0
  58. package/dist/templates/configs/database.js.map +1 -0
  59. package/dist/templates/configs/hash.d.ts +2 -0
  60. package/dist/templates/configs/hash.d.ts.map +1 -0
  61. package/dist/templates/configs/hash.js +12 -0
  62. package/dist/templates/configs/hash.js.map +1 -0
  63. package/dist/templates/configs/horizon.d.ts +2 -0
  64. package/dist/templates/configs/horizon.d.ts.map +1 -0
  65. package/dist/templates/configs/horizon.js +30 -0
  66. package/dist/templates/configs/horizon.js.map +1 -0
  67. package/dist/templates/configs/index.d.ts +3 -0
  68. package/dist/templates/configs/index.d.ts.map +1 -0
  69. package/dist/templates/configs/index.js +96 -0
  70. package/dist/templates/configs/index.js.map +1 -0
  71. package/dist/templates/configs/localization.d.ts +2 -0
  72. package/dist/templates/configs/localization.d.ts.map +1 -0
  73. package/dist/templates/configs/localization.js +13 -0
  74. package/dist/templates/configs/localization.js.map +1 -0
  75. package/dist/templates/configs/log.d.ts +2 -0
  76. package/dist/templates/configs/log.d.ts.map +1 -0
  77. package/dist/templates/configs/log.js +40 -0
  78. package/dist/templates/configs/log.js.map +1 -0
  79. package/dist/templates/configs/mail.d.ts +2 -0
  80. package/dist/templates/configs/mail.d.ts.map +1 -0
  81. package/dist/templates/configs/mail.js +33 -0
  82. package/dist/templates/configs/mail.js.map +1 -0
  83. package/dist/templates/configs/passport.d.ts +2 -0
  84. package/dist/templates/configs/passport.d.ts.map +1 -0
  85. package/dist/templates/configs/passport.js +22 -0
  86. package/dist/templates/configs/passport.js.map +1 -0
  87. package/dist/templates/configs/pennant.d.ts +2 -0
  88. package/dist/templates/configs/pennant.d.ts.map +1 -0
  89. package/dist/templates/configs/pennant.js +16 -0
  90. package/dist/templates/configs/pennant.js.map +1 -0
  91. package/dist/templates/configs/pulse.d.ts +2 -0
  92. package/dist/templates/configs/pulse.d.ts.map +1 -0
  93. package/dist/templates/configs/pulse.js +21 -0
  94. package/dist/templates/configs/pulse.js.map +1 -0
  95. package/dist/templates/configs/queue.d.ts +2 -0
  96. package/dist/templates/configs/queue.d.ts.map +1 -0
  97. package/dist/templates/configs/queue.js +28 -0
  98. package/dist/templates/configs/queue.js.map +1 -0
  99. package/dist/templates/configs/sanctum.d.ts +2 -0
  100. package/dist/templates/configs/sanctum.d.ts.map +1 -0
  101. package/dist/templates/configs/sanctum.js +19 -0
  102. package/dist/templates/configs/sanctum.js.map +1 -0
  103. package/dist/templates/configs/server.d.ts +2 -0
  104. package/dist/templates/configs/server.d.ts.map +1 -0
  105. package/dist/templates/configs/server.js +15 -0
  106. package/dist/templates/configs/server.js.map +1 -0
  107. package/dist/templates/configs/session.d.ts +2 -0
  108. package/dist/templates/configs/session.d.ts.map +1 -0
  109. package/dist/templates/configs/session.js +26 -0
  110. package/dist/templates/configs/session.js.map +1 -0
  111. package/dist/templates/configs/socialite.d.ts +2 -0
  112. package/dist/templates/configs/socialite.d.ts.map +1 -0
  113. package/dist/templates/configs/socialite.js +27 -0
  114. package/dist/templates/configs/socialite.js.map +1 -0
  115. package/dist/templates/configs/storage.d.ts +2 -0
  116. package/dist/templates/configs/storage.d.ts.map +1 -0
  117. package/dist/templates/configs/storage.js +35 -0
  118. package/dist/templates/configs/storage.js.map +1 -0
  119. package/dist/templates/configs/sync.d.ts +3 -0
  120. package/dist/templates/configs/sync.d.ts.map +1 -0
  121. package/dist/templates/configs/sync.js +17 -0
  122. package/dist/templates/configs/sync.js.map +1 -0
  123. package/dist/templates/configs/telescope.d.ts +2 -0
  124. package/dist/templates/configs/telescope.d.ts.map +1 -0
  125. package/dist/templates/configs/telescope.js +25 -0
  126. package/dist/templates/configs/telescope.js.map +1 -0
  127. package/dist/templates/css/index.d.ts +3 -0
  128. package/dist/templates/css/index.d.ts.map +1 -0
  129. package/dist/templates/css/index.js +140 -0
  130. package/dist/templates/css/index.js.map +1 -0
  131. package/dist/templates/css/plain.d.ts +2 -0
  132. package/dist/templates/css/plain.d.ts.map +1 -0
  133. package/dist/templates/css/plain.js +373 -0
  134. package/dist/templates/css/plain.js.map +1 -0
  135. package/dist/templates/css/tailwind.d.ts +2 -0
  136. package/dist/templates/css/tailwind.d.ts.map +1 -0
  137. package/dist/templates/css/tailwind.js +176 -0
  138. package/dist/templates/css/tailwind.js.map +1 -0
  139. package/dist/templates/demos/bk-socket.d.ts +2 -0
  140. package/dist/templates/demos/bk-socket.d.ts.map +1 -0
  141. package/dist/templates/demos/bk-socket.js +95 -0
  142. package/dist/templates/demos/bk-socket.js.map +1 -0
  143. package/dist/templates/demos/contact.d.ts +3 -0
  144. package/dist/templates/demos/contact.d.ts.map +1 -0
  145. package/dist/templates/demos/contact.js +106 -0
  146. package/dist/templates/demos/contact.js.map +1 -0
  147. package/dist/templates/demos/index-view.d.ts +3 -0
  148. package/dist/templates/demos/index-view.d.ts.map +1 -0
  149. package/dist/templates/demos/index-view.js +67 -0
  150. package/dist/templates/demos/index-view.js.map +1 -0
  151. package/dist/templates/demos/live.d.ts +2 -0
  152. package/dist/templates/demos/live.d.ts.map +1 -0
  153. package/dist/templates/demos/live.js +97 -0
  154. package/dist/templates/demos/live.js.map +1 -0
  155. package/dist/templates/demos/registry.d.ts +13 -0
  156. package/dist/templates/demos/registry.d.ts.map +1 -0
  157. package/dist/templates/demos/registry.js +15 -0
  158. package/dist/templates/demos/registry.js.map +1 -0
  159. package/dist/templates/demos/ws.d.ts +2 -0
  160. package/dist/templates/demos/ws.d.ts.map +1 -0
  161. package/dist/templates/demos/ws.js +106 -0
  162. package/dist/templates/demos/ws.js.map +1 -0
  163. package/dist/templates/env.d.ts +7 -0
  164. package/dist/templates/env.d.ts.map +1 -0
  165. package/dist/templates/env.js +127 -0
  166. package/dist/templates/env.js.map +1 -0
  167. package/dist/templates/package-json.d.ts +3 -0
  168. package/dist/templates/package-json.d.ts.map +1 -0
  169. package/dist/templates/package-json.js +195 -0
  170. package/dist/templates/package-json.js.map +1 -0
  171. package/dist/templates/package-managers.d.ts +14 -0
  172. package/dist/templates/package-managers.d.ts.map +1 -0
  173. package/dist/templates/package-managers.js +49 -0
  174. package/dist/templates/package-managers.js.map +1 -0
  175. package/dist/templates/pages/ai-chat.d.ts +7 -0
  176. package/dist/templates/pages/ai-chat.d.ts.map +1 -0
  177. package/dist/templates/pages/ai-chat.js +285 -0
  178. package/dist/templates/pages/ai-chat.js.map +1 -0
  179. package/dist/templates/pages/demo.d.ts +4 -0
  180. package/dist/templates/pages/demo.d.ts.map +1 -0
  181. package/dist/templates/pages/demo.js +71 -0
  182. package/dist/templates/pages/demo.js.map +1 -0
  183. package/dist/templates/pages/error.d.ts +7 -0
  184. package/dist/templates/pages/error.d.ts.map +1 -0
  185. package/dist/templates/pages/error.js +148 -0
  186. package/dist/templates/pages/error.js.map +1 -0
  187. package/dist/templates/pages/index.d.ts +9 -0
  188. package/dist/templates/pages/index.d.ts.map +1 -0
  189. package/dist/templates/pages/index.js +311 -0
  190. package/dist/templates/pages/index.js.map +1 -0
  191. package/dist/templates/prisma/auth.d.ts +2 -0
  192. package/dist/templates/prisma/auth.d.ts.map +1 -0
  193. package/dist/templates/prisma/auth.js +22 -0
  194. package/dist/templates/prisma/auth.js.map +1 -0
  195. package/dist/templates/prisma/base.d.ts +3 -0
  196. package/dist/templates/prisma/base.d.ts.map +1 -0
  197. package/dist/templates/prisma/base.js +14 -0
  198. package/dist/templates/prisma/base.js.map +1 -0
  199. package/dist/templates/prisma/config.d.ts +3 -0
  200. package/dist/templates/prisma/config.d.ts.map +1 -0
  201. package/dist/templates/prisma/config.js +15 -0
  202. package/dist/templates/prisma/config.js.map +1 -0
  203. package/dist/templates/prisma/notification.d.ts +2 -0
  204. package/dist/templates/prisma/notification.d.ts.map +1 -0
  205. package/dist/templates/prisma/notification.js +16 -0
  206. package/dist/templates/prisma/notification.js.map +1 -0
  207. package/dist/templates/prisma/passport.d.ts +2 -0
  208. package/dist/templates/prisma/passport.d.ts.map +1 -0
  209. package/dist/templates/prisma/passport.js +69 -0
  210. package/dist/templates/prisma/passport.js.map +1 -0
  211. package/dist/templates/routes/api.d.ts +3 -0
  212. package/dist/templates/routes/api.d.ts.map +1 -0
  213. package/dist/templates/routes/api.js +118 -0
  214. package/dist/templates/routes/api.js.map +1 -0
  215. package/dist/templates/routes/console.d.ts +2 -0
  216. package/dist/templates/routes/console.d.ts.map +1 -0
  217. package/dist/templates/routes/console.js +22 -0
  218. package/dist/templates/routes/console.js.map +1 -0
  219. package/dist/templates/routes/web.d.ts +4 -0
  220. package/dist/templates/routes/web.d.ts.map +1 -0
  221. package/dist/templates/routes/web.js +108 -0
  222. package/dist/templates/routes/web.js.map +1 -0
  223. package/dist/templates/server.d.ts +2 -0
  224. package/dist/templates/server.d.ts.map +1 -0
  225. package/dist/templates/server.js +10 -0
  226. package/dist/templates/server.js.map +1 -0
  227. package/dist/templates/tsconfig.d.ts +3 -0
  228. package/dist/templates/tsconfig.d.ts.map +1 -0
  229. package/dist/templates/tsconfig.js +33 -0
  230. package/dist/templates/tsconfig.js.map +1 -0
  231. package/dist/templates/views/welcome.d.ts +6 -0
  232. package/dist/templates/views/welcome.d.ts.map +1 -0
  233. package/dist/templates/views/welcome.js +396 -0
  234. package/dist/templates/views/welcome.js.map +1 -0
  235. package/dist/templates/vite.d.ts +3 -0
  236. package/dist/templates/vite.d.ts.map +1 -0
  237. package/dist/templates/vite.js +61 -0
  238. package/dist/templates/vite.js.map +1 -0
  239. package/dist/templates.d.ts +28 -17
  240. package/dist/templates.d.ts.map +1 -1
  241. package/dist/templates.js +99 -3779
  242. package/dist/templates.js.map +1 -1
  243. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { intro, outro, text, select, multiselect, confirm, spinner, isCancel, cancel, } from '@clack/prompts';
2
+ import { intro, outro, text, select, multiselect, groupMultiselect, confirm, spinner, log, isCancel, cancel, } from '@clack/prompts';
3
3
  import fs from 'node:fs/promises';
4
4
  import path from 'node:path';
5
5
  import { spawn } from 'node:child_process';
6
6
  import { randomBytes } from 'node:crypto';
7
7
  import { createRequire } from 'node:module';
8
8
  import { getTemplates, detectPackageManager, pmExec, pmRun, pmInstall } from './templates.js';
9
+ import { availableDemos } from './templates/demos/registry.js';
9
10
  async function main() {
10
11
  const argName = process.argv[2];
11
12
  const pm = detectPackageManager();
@@ -61,28 +62,71 @@ async function main() {
61
62
  db = dbAnswer;
62
63
  }
63
64
  // ── Package checklist ────────────────────────────────────
64
- const packageAnswer = await multiselect({
65
- message: 'Select packages to include',
66
- options: [
65
+ //
66
+ // Categorized via clack's groupMultiselect one section per concern,
67
+ // group headers are non-selectable (selectableGroups: false).
68
+ // ORM=none filters out DB-dependent packages (auth/sanctum/passport/cashier)
69
+ // before the prompt renders, so the user never sees rows they can't use.
70
+ // Database-dependent packages — hidden when ORM=none.
71
+ const DB_GATED = new Set(['auth', 'sanctum', 'passport', 'cashierPaddle']);
72
+ const PACKAGE_GROUPS = {
73
+ 'Auth & Users': [
67
74
  { value: 'auth', label: 'Authentication', hint: 'login, register, sessions' },
68
- { value: 'cache', label: 'Cache', hint: 'memory + Redis drivers' },
75
+ { value: 'sanctum', label: 'Sanctum', hint: 'API tokens (SHA-256 + abilities)' },
76
+ { value: 'passport', label: 'Passport', hint: 'OAuth2 server — requires Auth + Prisma' },
77
+ { value: 'socialite', label: 'Socialite', hint: 'social login: GitHub, Google, Facebook, Apple' },
78
+ ],
79
+ 'Infrastructure': [
69
80
  { value: 'queue', label: 'Queue', hint: 'background jobs' },
70
81
  { value: 'storage', label: 'Storage', hint: 'file uploads (local + S3)' },
82
+ { value: 'scheduler', label: 'Scheduler', hint: 'cron-like task scheduling' },
83
+ { value: 'image', label: 'Image', hint: 'resize, crop, convert (sharp wrapper)' },
84
+ ],
85
+ 'Communication': [
71
86
  { value: 'mail', label: 'Mail', hint: 'SMTP + log driver' },
72
87
  { value: 'notifications', label: 'Notifications', hint: 'multi-channel notifications' },
73
- { value: 'scheduler', label: 'Scheduler', hint: 'cron-like task scheduling' },
74
- { value: 'broadcast', label: 'WebSocket', hint: 'real-time channels' },
75
- { value: 'sync', label: 'Sync (Yjs CRDT)', hint: 'real-time collaborative documents' },
88
+ { value: 'broadcast', label: 'WebSocket / Broadcast', hint: 'real-time channels' },
89
+ { value: 'sync', label: 'Sync (Yjs CRDT)', hint: 'collaborative documents' },
90
+ ],
91
+ 'AI': [
76
92
  { value: 'ai', label: 'AI', hint: 'LLM providers (Anthropic, OpenAI, Google, Ollama)' },
77
- { value: 'mcp', label: 'MCP', hint: 'Model Context Protocol servers — expose tools/resources to LLMs' },
78
- { value: 'passport', label: 'Passport (OAuth2)', hint: 'OAuth 2 server with JWT — requires Auth + Prisma' },
93
+ { value: 'mcp', label: 'MCP', hint: 'Model Context Protocol — expose tools/resources to LLMs' },
94
+ { value: 'boost', label: 'Boost', hint: 'AI coding DX (Claude Code/Cursor/Copilot)' },
95
+ ],
96
+ 'Internationalization': [
79
97
  { value: 'localization', label: 'Localization', hint: 'i18n — trans(), setLocale()' },
80
- { value: 'telescope', label: 'Telescope', hint: 'debug dashboard — requests, queries, jobs, exceptions, AI, mail, cache' },
81
- { value: 'boost', label: 'Boost (AI coding DX)', hint: 'expose project internals to Claude Code / Cursor / Copilot via MCP' },
82
- { value: 'demos', label: 'Demos', hint: 'sample views (contact, ws, live) under /demos — react primary only' },
83
98
  ],
84
- initialValues: ['auth', 'cache'],
99
+ 'Product & Features': [
100
+ { value: 'cashierPaddle', label: 'Cashier-Paddle', hint: 'subscriptions + checkout — requires Auth + Prisma' },
101
+ { value: 'pennant', label: 'Pennant', hint: 'feature flags' },
102
+ ],
103
+ 'Observability': [
104
+ { value: 'telescope', label: 'Telescope', hint: 'debug dashboard — requests, queries, jobs, exceptions' },
105
+ { value: 'pulse', label: 'Pulse', hint: 'metrics dashboard — throughput, latency, hit rates' },
106
+ { value: 'horizon', label: 'Horizon', hint: 'queue monitoring — lifecycle, workers, retry/delete' },
107
+ ],
108
+ 'Utilities': [
109
+ { value: 'crypt', label: 'Crypt', hint: 'AES-256-CBC + HMAC encryption' },
110
+ { value: 'http', label: 'HTTP', hint: 'fluent fetch client — retries, timeouts, pools' },
111
+ { value: 'process', label: 'Process', hint: 'shell execution — run, pool, pipe' },
112
+ { value: 'concurrency', label: 'Concurrency', hint: 'parallel execution via worker threads' },
113
+ ],
114
+ };
115
+ if (orm === false) {
116
+ log.info('Database not selected — auth, sanctum, passport, and billing options are hidden.');
117
+ }
118
+ const groupedOptions = {};
119
+ for (const [group, pkgs] of Object.entries(PACKAGE_GROUPS)) {
120
+ const visible = orm === false ? pkgs.filter(p => !DB_GATED.has(p.value)) : pkgs;
121
+ if (visible.length > 0)
122
+ groupedOptions[group] = visible;
123
+ }
124
+ const packageAnswer = await groupMultiselect({
125
+ message: 'Select packages',
126
+ options: groupedOptions,
127
+ initialValues: orm === false ? [] : ['auth'],
85
128
  required: false,
129
+ selectableGroups: false,
86
130
  });
87
131
  if (isCancel(packageAnswer)) {
88
132
  cancel('Cancelled.');
@@ -91,21 +135,30 @@ async function main() {
91
135
  const selectedPackages = packageAnswer;
92
136
  const packages = {
93
137
  auth: selectedPackages.includes('auth'),
94
- cache: selectedPackages.includes('cache'),
138
+ sanctum: selectedPackages.includes('sanctum'),
139
+ passport: selectedPackages.includes('passport'),
140
+ socialite: selectedPackages.includes('socialite'),
95
141
  queue: selectedPackages.includes('queue'),
96
142
  storage: selectedPackages.includes('storage'),
143
+ scheduler: selectedPackages.includes('scheduler'),
144
+ image: selectedPackages.includes('image'),
97
145
  mail: selectedPackages.includes('mail'),
98
146
  notifications: selectedPackages.includes('notifications'),
99
- scheduler: selectedPackages.includes('scheduler'),
100
147
  broadcast: selectedPackages.includes('broadcast'),
101
148
  sync: selectedPackages.includes('sync'),
102
149
  ai: selectedPackages.includes('ai'),
103
150
  mcp: selectedPackages.includes('mcp'),
104
- passport: selectedPackages.includes('passport'),
151
+ boost: selectedPackages.includes('boost'),
105
152
  localization: selectedPackages.includes('localization'),
153
+ cashierPaddle: selectedPackages.includes('cashierPaddle'),
154
+ pennant: selectedPackages.includes('pennant'),
106
155
  telescope: selectedPackages.includes('telescope'),
107
- boost: selectedPackages.includes('boost'),
108
- demos: selectedPackages.includes('demos'),
156
+ pulse: selectedPackages.includes('pulse'),
157
+ horizon: selectedPackages.includes('horizon'),
158
+ crypt: selectedPackages.includes('crypt'),
159
+ http: selectedPackages.includes('http'),
160
+ process: selectedPackages.includes('process'),
161
+ concurrency: selectedPackages.includes('concurrency'),
109
162
  };
110
163
  // Passport requires auth + prisma at runtime. Warn and drop silently if missing.
111
164
  if (packages.passport && (!packages.auth || orm !== 'prisma')) {
@@ -170,6 +223,32 @@ async function main() {
170
223
  }
171
224
  shadcn = shadcnAnswer;
172
225
  }
226
+ // ── Demos ──────────────────────────────────────────────
227
+ // Demos are only scaffolded when React is the primary framework — vue/solid
228
+ // variants aren't written yet. Each demo is gated by package selection
229
+ // (e.g. WebSocket chat needs Broadcast). Rows that fail their gate are
230
+ // filtered out before the prompt renders so the user only sees what's available.
231
+ let demos = [];
232
+ if (primary === 'react') {
233
+ const demoOptions = availableDemos(orm, packages);
234
+ if (demoOptions.length > 0) {
235
+ const demoAnswer = await multiselect({
236
+ message: 'Select demos to scaffold (under /demos)',
237
+ options: demoOptions.map(d => ({
238
+ value: d.value,
239
+ label: d.label,
240
+ ...(d.hint !== undefined ? { hint: d.hint } : {}),
241
+ })),
242
+ initialValues: ['contact'],
243
+ required: false,
244
+ });
245
+ if (isCancel(demoAnswer)) {
246
+ cancel('Cancelled.');
247
+ process.exit(0);
248
+ }
249
+ demos = demoAnswer;
250
+ }
251
+ }
173
252
  // ── Install dependencies ───────────────────────────────
174
253
  const installAnswer = await confirm({
175
254
  message: `Install dependencies?`,
@@ -183,6 +262,7 @@ async function main() {
183
262
  // ── Generate ───────────────────────────────────────────
184
263
  const target = path.resolve(process.cwd(), name);
185
264
  const authSecret = randomBytes(32).toString('hex');
265
+ const appKey = randomBytes(32).toString('base64');
186
266
  // Make sure target directory doesn't exist
187
267
  try {
188
268
  await fs.access(target);
@@ -194,7 +274,7 @@ async function main() {
194
274
  }
195
275
  const s = spinner();
196
276
  s.start('Scaffolding project files...');
197
- const templates = getTemplates({ name, db, orm, authSecret, frameworks, primary, tailwind, shadcn, pm, packages });
277
+ const templates = getTemplates({ name, db, orm, authSecret, appKey, frameworks, primary, tailwind, shadcn, pm, packages, demos });
198
278
  for (const [filePath, content] of Object.entries(templates)) {
199
279
  const abs = path.join(target, filePath);
200
280
  await fs.mkdir(path.dirname(abs), { recursive: true });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function authController(): string;
2
+ //# sourceMappingURL=auth-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-controller.d.ts","sourceRoot":"","sources":["../../../src/templates/app/auth-controller.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,IAAI,MAAM,CAiDvC"}
@@ -0,0 +1,51 @@
1
+ export function authController() {
2
+ return `import { Middleware } from '@rudderjs/router'
3
+ import { RateLimit } from '@rudderjs/middleware'
4
+ import {
5
+ BaseAuthController,
6
+ PasswordBroker,
7
+ MemoryTokenRepository,
8
+ EloquentUserProvider,
9
+ type AuthUserModelLike,
10
+ } from '@rudderjs/auth'
11
+ import { Hash } from '@rudderjs/hash'
12
+ import { User } from '../../Models/User.ts'
13
+
14
+ // Per-IP + per-path rate limit — sign-in attempts don't exhaust the sign-up
15
+ // or password-reset budget for the same client.
16
+ const authLimit = RateLimit.perMinute(10)
17
+ .by(req => {
18
+ const ip = (req as unknown as Record<string, unknown>)['ip'] as string ?? '127.0.0.1'
19
+ return \`\${ip}:\${req.path}\`
20
+ })
21
+ .message('Too many auth attempts. Try again later.')
22
+
23
+ // Swap MemoryTokenRepository for a persistent one (Prisma/Redis) in production.
24
+ const broker = new PasswordBroker(
25
+ new MemoryTokenRepository(),
26
+ new EloquentUserProvider(User as unknown as never, (plain, hashed) => Hash.check(plain, hashed)),
27
+ { expire: 60, throttle: 60 },
28
+ )
29
+
30
+ /**
31
+ * Auth POST handlers — Laravel Breeze-style.
32
+ *
33
+ * Extends \`BaseAuthController\` from @rudderjs/auth which provides the five
34
+ * standard endpoints (\`sign-in/email\`, \`sign-up/email\`, \`sign-out\`,
35
+ * \`request-password-reset\`, \`reset-password\`). Override any method to
36
+ * customize behavior — the base uses \`this.userModel\` / \`this.hash\` /
37
+ * \`this.passwordBroker\` for its defaults, so replacing those fields is
38
+ * usually all you need.
39
+ *
40
+ * Registered from \`routes/web.ts\` via \`Route.registerController(AuthController)\`
41
+ * so the handlers inherit SessionMiddleware + AuthMiddleware from the web group.
42
+ */
43
+ @Middleware([authLimit])
44
+ export class AuthController extends BaseAuthController {
45
+ protected userModel = User as unknown as AuthUserModelLike
46
+ protected hash = Hash
47
+ protected passwordBroker = broker
48
+ }
49
+ `;
50
+ }
51
+ //# sourceMappingURL=auth-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-controller.js","sourceRoot":"","sources":["../../../src/templates/app/auth-controller.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CR,CAAA;AACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function mcpEchoServer(): string;
2
+ //# sourceMappingURL=mcp-echo-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-echo-server.d.ts","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-server.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,IAAI,MAAM,CAWtC"}
@@ -0,0 +1,13 @@
1
+ export function mcpEchoServer() {
2
+ return `import { McpServer, Name, Version, Instructions } from '@rudderjs/mcp'
3
+ import { EchoTool } from './EchoTool.js'
4
+
5
+ @Name('echo-server')
6
+ @Version('1.0.0')
7
+ @Instructions('A demo MCP server that echoes messages back.')
8
+ export class EchoServer extends McpServer {
9
+ protected tools = [EchoTool]
10
+ }
11
+ `;
12
+ }
13
+ //# sourceMappingURL=mcp-echo-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-echo-server.js","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-server.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa;IAC3B,OAAO;;;;;;;;;CASR,CAAA;AACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function mcpEchoTool(): string;
2
+ //# sourceMappingURL=mcp-echo-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-echo-tool.d.ts","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-tool.ts"],"names":[],"mappings":"AAAA,wBAAgB,WAAW,IAAI,MAAM,CAkBpC"}
@@ -0,0 +1,20 @@
1
+ export function mcpEchoTool() {
2
+ return `import { z } from 'zod'
3
+ import { McpTool, McpResponse, Description } from '@rudderjs/mcp'
4
+ import type { McpToolResult } from '@rudderjs/mcp'
5
+
6
+ @Description('Echoes the given message back to the caller')
7
+ export class EchoTool extends McpTool {
8
+ schema() {
9
+ return z.object({
10
+ message: z.string().describe('The message to echo'),
11
+ })
12
+ }
13
+
14
+ async handle(input: Record<string, unknown>): Promise<McpToolResult> {
15
+ return McpResponse.text(\`Echo: \${String(input['message'])}\`)
16
+ }
17
+ }
18
+ `;
19
+ }
20
+ //# sourceMappingURL=mcp-echo-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-echo-tool.js","sourceRoot":"","sources":["../../../src/templates/app/mcp-echo-tool.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,WAAW;IACzB,OAAO;;;;;;;;;;;;;;;;CAgBR,CAAA;AACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TemplateContext } from '../../templates.js';
2
+ export declare function appServiceProvider(ctx: TemplateContext): string;
3
+ //# sourceMappingURL=service-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-provider.d.ts","sourceRoot":"","sources":["../../../src/templates/app/service-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA2B/D"}
@@ -0,0 +1,27 @@
1
+ export function appServiceProvider(ctx) {
2
+ const imports = ["import { ServiceProvider } from '@rudderjs/core'"];
3
+ const registerLines = [
4
+ '// Register your application-level services here:',
5
+ '// this.app.singleton(MyService, () => new MyService())',
6
+ ];
7
+ if (ctx.packages.mcp) {
8
+ imports.push("import { Mcp } from '@rudderjs/mcp'");
9
+ imports.push("import { EchoServer } from '../Mcp/EchoServer.js'");
10
+ registerLines.push('');
11
+ registerLines.push('// Expose the demo MCP server over HTTP at /mcp/echo');
12
+ registerLines.push("Mcp.web('/mcp/echo', EchoServer)");
13
+ }
14
+ return `${imports.join('\n')}
15
+
16
+ export class AppServiceProvider extends ServiceProvider {
17
+ register(): void {
18
+ ${registerLines.join('\n ')}
19
+ }
20
+
21
+ boot(): void {
22
+ console.log(\`[AppServiceProvider] booted — \${this.app.name}\`)
23
+ }
24
+ }
25
+ `;
26
+ }
27
+ //# sourceMappingURL=service-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-provider.js","sourceRoot":"","sources":["../../../src/templates/app/service-provider.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,MAAM,OAAO,GAAa,CAAC,kDAAkD,CAAC,CAAA;IAC9E,MAAM,aAAa,GAAa;QAC9B,mDAAmD;QACnD,yDAAyD;KAC1D,CAAA;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;QACnD,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAA;QACjE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtB,aAAa,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;QAC1E,aAAa,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;MAIxB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;;;CAOjC,CAAA;AACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function userModel(): string;
2
+ //# sourceMappingURL=user-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-model.d.ts","sourceRoot":"","sources":["../../../src/templates/app/user-model.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,MAAM,CAiBlC"}
@@ -0,0 +1,19 @@
1
+ export function userModel() {
2
+ return `import { Model } from '@rudderjs/orm'
3
+
4
+ export class User extends Model {
5
+ // Prisma accessor is the model name lowercased
6
+ static table = 'user'
7
+
8
+ id!: string
9
+ name!: string
10
+ email!: string
11
+ password?: string | null
12
+ emailVerified!: boolean
13
+ role!: string
14
+ createdAt!: Date
15
+ updatedAt!: Date
16
+ }
17
+ `;
18
+ }
19
+ //# sourceMappingURL=user-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-model.js","sourceRoot":"","sources":["../../../src/templates/app/user-model.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;;;;;;;;CAeR,CAAA;AACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TemplateContext } from '../../templates.js';
2
+ export declare function bootstrapApp(ctx: TemplateContext): string;
3
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/templates/bootstrap/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAyCzD"}
@@ -0,0 +1,41 @@
1
+ export function bootstrapApp(ctx) {
2
+ const imports = [
3
+ "import 'reflect-metadata'",
4
+ "import 'dotenv/config'",
5
+ "import { Application } from '@rudderjs/core'",
6
+ "import { hono } from '@rudderjs/server-hono'",
7
+ "import { RateLimit } from '@rudderjs/middleware'",
8
+ "import configs from '../config/index.ts'",
9
+ "import providers from './providers.ts'",
10
+ ];
11
+ void ctx;
12
+ // Note (middleware groups):
13
+ // - m.use(...) runs on every request regardless of route group
14
+ // - m.web(...) / m.api(...) run only on routes loaded via withRouting({ web }) / { api }
15
+ // - sessionMiddleware + AuthMiddleware are auto-installed on the web group
16
+ // by @rudderjs/session and @rudderjs/auth — no manual wiring needed
17
+ return `${imports.join('\n')}
18
+
19
+ export default Application.configure({
20
+ server: hono(configs.server),
21
+ config: configs,
22
+ providers,
23
+ })
24
+ .withRouting({
25
+ web: () => import('../routes/web.ts'),
26
+ api: () => import('../routes/api.ts'),
27
+ commands: () => import('../routes/console.ts'),
28
+ })
29
+ .withMiddleware((m) => {
30
+ // Per-group — separate rate-limit budgets for web pages and api calls
31
+ m.web(RateLimit.perMinute(120))
32
+ m.api(RateLimit.perMinute(60))
33
+
34
+ // sessionMiddleware + AuthMiddleware are auto-installed on the web group
35
+ // by @rudderjs/session and @rudderjs/auth. Api routes are stateless by
36
+ // default — opt into bearer auth with RequireBearer() from @rudderjs/passport.
37
+ })
38
+ .create()
39
+ `;
40
+ }
41
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/templates/bootstrap/app.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,GAAoB;IAC/C,MAAM,OAAO,GAAa;QACxB,2BAA2B;QAC3B,wBAAwB;QACxB,8CAA8C;QAC9C,8CAA8C;QAC9C,kDAAkD;QAClD,0CAA0C;QAC1C,wCAAwC;KACzC,CAAA;IACD,KAAK,GAAG,CAAA;IAER,4BAA4B;IAC5B,iEAAiE;IACjE,2FAA2F;IAC3F,6EAA6E;IAC7E,wEAAwE;IAExE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAA;AACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TemplateContext } from '../../templates.js';
2
+ export declare function bootstrapProviders(ctx: TemplateContext): string;
3
+ //# sourceMappingURL=providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../src/templates/bootstrap/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA2B/D"}
@@ -0,0 +1,27 @@
1
+ export function bootstrapProviders(ctx) {
2
+ const imports = [
3
+ "import type { Application, ServiceProvider } from '@rudderjs/core'",
4
+ "import { defaultProviders, eventsProvider } from '@rudderjs/core'",
5
+ "import { AppServiceProvider } from '../app/Providers/AppServiceProvider.js'",
6
+ ];
7
+ const providers = [
8
+ '...(await defaultProviders()),',
9
+ 'eventsProvider({}),',
10
+ 'AppServiceProvider,',
11
+ ];
12
+ return `${imports.join('\n')}
13
+
14
+ // All framework providers are auto-discovered from package.json metadata.
15
+ // Run \`pnpm rudder providers:discover\` after installing or removing packages.
16
+ //
17
+ // To skip a specific framework provider:
18
+ // ...(await defaultProviders({ skip: ['@rudderjs/horizon'] })),
19
+ //
20
+ // To turn off auto-discovery entirely, replace \`...(await defaultProviders())\`
21
+ // with explicit class imports — see the framework docs.
22
+ export default [
23
+ ${providers.join('\n ')}
24
+ ] satisfies (new (app: Application) => ServiceProvider)[]
25
+ `;
26
+ }
27
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../src/templates/bootstrap/providers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAAC,GAAoB;IACrD,MAAM,OAAO,GAAa;QACxB,oEAAoE;QACpE,mEAAmE;QACnE,6EAA6E;KAC9E,CAAA;IAED,MAAM,SAAS,GAAa;QAC1B,gCAAgC;QAChC,qBAAqB;QACrB,qBAAqB;KACtB,CAAA;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;IAW1B,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;CAEzB,CAAA;AACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function configAi(): string;
2
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../src/templates/configs/ai.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,IAAI,MAAM,CA8BjC"}
@@ -0,0 +1,32 @@
1
+ export function configAi() {
2
+ return `import { Env } from '@rudderjs/support'
3
+ import type { AiConfig } from '@rudderjs/ai'
4
+
5
+ export default {
6
+ default: Env.get('AI_MODEL', 'anthropic/claude-sonnet-4-5'),
7
+
8
+ providers: {
9
+ anthropic: {
10
+ driver: 'anthropic',
11
+ apiKey: Env.get('ANTHROPIC_API_KEY', ''),
12
+ },
13
+
14
+ openai: {
15
+ driver: 'openai',
16
+ apiKey: Env.get('OPENAI_API_KEY', ''),
17
+ },
18
+
19
+ google: {
20
+ driver: 'google',
21
+ apiKey: Env.get('GOOGLE_AI_API_KEY', ''),
22
+ },
23
+
24
+ ollama: {
25
+ driver: 'ollama',
26
+ baseUrl: Env.get('OLLAMA_BASE_URL', 'http://localhost:11434'),
27
+ },
28
+ },
29
+ } satisfies AiConfig
30
+ `;
31
+ }
32
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/templates/configs/ai.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BR,CAAA;AACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function configApp(): string;
2
+ //# sourceMappingURL=app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../src/templates/configs/app.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,MAAM,CAUlC"}
@@ -0,0 +1,12 @@
1
+ export function configApp() {
2
+ return `import { Env } from '@rudderjs/support'
3
+
4
+ export default {
5
+ name: Env.get('APP_NAME', 'RudderJS'),
6
+ env: Env.get('APP_ENV', 'development'),
7
+ debug: Env.getBool('APP_DEBUG', false),
8
+ url: Env.get('APP_URL', 'http://localhost:3000'),
9
+ }
10
+ `;
11
+ }
12
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/templates/configs/app.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;CAQR,CAAA;AACD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TemplateContext } from '../../templates.js';
2
+ export declare function configAuth(_ctx: TemplateContext): string;
3
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/templates/configs/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAcxD"}