create-rudder-app 1.4.0 → 1.5.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/README.md +2 -51
  2. package/bin/index.mjs +18 -0
  3. package/package.json +8 -28
  4. package/dist/agent-detect.d.ts +0 -21
  5. package/dist/agent-detect.d.ts.map +0 -1
  6. package/dist/agent-detect.js +0 -36
  7. package/dist/agent-detect.js.map +0 -1
  8. package/dist/cli-flags.d.ts +0 -60
  9. package/dist/cli-flags.d.ts.map +0 -1
  10. package/dist/cli-flags.js +0 -251
  11. package/dist/cli-flags.js.map +0 -1
  12. package/dist/index.d.ts +0 -3
  13. package/dist/index.d.ts.map +0 -1
  14. package/dist/index.js +0 -642
  15. package/dist/index.js.map +0 -1
  16. package/dist/logo.d.ts +0 -6
  17. package/dist/logo.d.ts.map +0 -1
  18. package/dist/logo.js +0 -52
  19. package/dist/logo.js.map +0 -1
  20. package/dist/templates/app/auth-controller.d.ts +0 -2
  21. package/dist/templates/app/auth-controller.d.ts.map +0 -1
  22. package/dist/templates/app/auth-controller.js +0 -53
  23. package/dist/templates/app/auth-controller.js.map +0 -1
  24. package/dist/templates/app/mcp-echo-server.d.ts +0 -2
  25. package/dist/templates/app/mcp-echo-server.d.ts.map +0 -1
  26. package/dist/templates/app/mcp-echo-server.js +0 -13
  27. package/dist/templates/app/mcp-echo-server.js.map +0 -1
  28. package/dist/templates/app/mcp-echo-tool.d.ts +0 -2
  29. package/dist/templates/app/mcp-echo-tool.d.ts.map +0 -1
  30. package/dist/templates/app/mcp-echo-tool.js +0 -20
  31. package/dist/templates/app/mcp-echo-tool.js.map +0 -1
  32. package/dist/templates/app/service-provider.d.ts +0 -3
  33. package/dist/templates/app/service-provider.d.ts.map +0 -1
  34. package/dist/templates/app/service-provider.js +0 -33
  35. package/dist/templates/app/service-provider.js.map +0 -1
  36. package/dist/templates/app/terminal-dashboard.d.ts +0 -2
  37. package/dist/templates/app/terminal-dashboard.d.ts.map +0 -1
  38. package/dist/templates/app/terminal-dashboard.js +0 -22
  39. package/dist/templates/app/terminal-dashboard.js.map +0 -1
  40. package/dist/templates/app/user-model.d.ts +0 -2
  41. package/dist/templates/app/user-model.d.ts.map +0 -1
  42. package/dist/templates/app/user-model.js +0 -19
  43. package/dist/templates/app/user-model.js.map +0 -1
  44. package/dist/templates/bootstrap/app.d.ts +0 -3
  45. package/dist/templates/bootstrap/app.d.ts.map +0 -1
  46. package/dist/templates/bootstrap/app.js +0 -41
  47. package/dist/templates/bootstrap/app.js.map +0 -1
  48. package/dist/templates/bootstrap/providers.d.ts +0 -3
  49. package/dist/templates/bootstrap/providers.d.ts.map +0 -1
  50. package/dist/templates/bootstrap/providers.js +0 -27
  51. package/dist/templates/bootstrap/providers.js.map +0 -1
  52. package/dist/templates/components/site-header.d.ts +0 -4
  53. package/dist/templates/components/site-header.d.ts.map +0 -1
  54. package/dist/templates/components/site-header.js +0 -233
  55. package/dist/templates/components/site-header.js.map +0 -1
  56. package/dist/templates/configs/ai.d.ts +0 -2
  57. package/dist/templates/configs/ai.d.ts.map +0 -1
  58. package/dist/templates/configs/ai.js +0 -32
  59. package/dist/templates/configs/ai.js.map +0 -1
  60. package/dist/templates/configs/app.d.ts +0 -2
  61. package/dist/templates/configs/app.d.ts.map +0 -1
  62. package/dist/templates/configs/app.js +0 -12
  63. package/dist/templates/configs/app.js.map +0 -1
  64. package/dist/templates/configs/auth.d.ts +0 -3
  65. package/dist/templates/configs/auth.d.ts.map +0 -1
  66. package/dist/templates/configs/auth.js +0 -16
  67. package/dist/templates/configs/auth.js.map +0 -1
  68. package/dist/templates/configs/cache.d.ts +0 -2
  69. package/dist/templates/configs/cache.d.ts.map +0 -1
  70. package/dist/templates/configs/cache.js +0 -28
  71. package/dist/templates/configs/cache.js.map +0 -1
  72. package/dist/templates/configs/crypt.d.ts +0 -2
  73. package/dist/templates/configs/crypt.d.ts.map +0 -1
  74. package/dist/templates/configs/crypt.js +0 -16
  75. package/dist/templates/configs/crypt.js.map +0 -1
  76. package/dist/templates/configs/database.d.ts +0 -3
  77. package/dist/templates/configs/database.d.ts.map +0 -1
  78. package/dist/templates/configs/database.js +0 -28
  79. package/dist/templates/configs/database.js.map +0 -1
  80. package/dist/templates/configs/hash.d.ts +0 -2
  81. package/dist/templates/configs/hash.d.ts.map +0 -1
  82. package/dist/templates/configs/hash.js +0 -12
  83. package/dist/templates/configs/hash.js.map +0 -1
  84. package/dist/templates/configs/horizon.d.ts +0 -2
  85. package/dist/templates/configs/horizon.d.ts.map +0 -1
  86. package/dist/templates/configs/horizon.js +0 -30
  87. package/dist/templates/configs/horizon.js.map +0 -1
  88. package/dist/templates/configs/index.d.ts +0 -3
  89. package/dist/templates/configs/index.d.ts.map +0 -1
  90. package/dist/templates/configs/index.js +0 -92
  91. package/dist/templates/configs/index.js.map +0 -1
  92. package/dist/templates/configs/localization.d.ts +0 -2
  93. package/dist/templates/configs/localization.d.ts.map +0 -1
  94. package/dist/templates/configs/localization.js +0 -13
  95. package/dist/templates/configs/localization.js.map +0 -1
  96. package/dist/templates/configs/log.d.ts +0 -2
  97. package/dist/templates/configs/log.d.ts.map +0 -1
  98. package/dist/templates/configs/log.js +0 -40
  99. package/dist/templates/configs/log.js.map +0 -1
  100. package/dist/templates/configs/mail.d.ts +0 -2
  101. package/dist/templates/configs/mail.d.ts.map +0 -1
  102. package/dist/templates/configs/mail.js +0 -33
  103. package/dist/templates/configs/mail.js.map +0 -1
  104. package/dist/templates/configs/passport.d.ts +0 -2
  105. package/dist/templates/configs/passport.d.ts.map +0 -1
  106. package/dist/templates/configs/passport.js +0 -22
  107. package/dist/templates/configs/passport.js.map +0 -1
  108. package/dist/templates/configs/pennant.d.ts +0 -2
  109. package/dist/templates/configs/pennant.d.ts.map +0 -1
  110. package/dist/templates/configs/pennant.js +0 -16
  111. package/dist/templates/configs/pennant.js.map +0 -1
  112. package/dist/templates/configs/pulse.d.ts +0 -2
  113. package/dist/templates/configs/pulse.d.ts.map +0 -1
  114. package/dist/templates/configs/pulse.js +0 -21
  115. package/dist/templates/configs/pulse.js.map +0 -1
  116. package/dist/templates/configs/queue.d.ts +0 -2
  117. package/dist/templates/configs/queue.d.ts.map +0 -1
  118. package/dist/templates/configs/queue.js +0 -28
  119. package/dist/templates/configs/queue.js.map +0 -1
  120. package/dist/templates/configs/sanctum.d.ts +0 -2
  121. package/dist/templates/configs/sanctum.d.ts.map +0 -1
  122. package/dist/templates/configs/sanctum.js +0 -19
  123. package/dist/templates/configs/sanctum.js.map +0 -1
  124. package/dist/templates/configs/server.d.ts +0 -2
  125. package/dist/templates/configs/server.d.ts.map +0 -1
  126. package/dist/templates/configs/server.js +0 -15
  127. package/dist/templates/configs/server.js.map +0 -1
  128. package/dist/templates/configs/session.d.ts +0 -2
  129. package/dist/templates/configs/session.d.ts.map +0 -1
  130. package/dist/templates/configs/session.js +0 -26
  131. package/dist/templates/configs/session.js.map +0 -1
  132. package/dist/templates/configs/socialite.d.ts +0 -2
  133. package/dist/templates/configs/socialite.d.ts.map +0 -1
  134. package/dist/templates/configs/socialite.js +0 -27
  135. package/dist/templates/configs/socialite.js.map +0 -1
  136. package/dist/templates/configs/storage.d.ts +0 -2
  137. package/dist/templates/configs/storage.d.ts.map +0 -1
  138. package/dist/templates/configs/storage.js +0 -35
  139. package/dist/templates/configs/storage.js.map +0 -1
  140. package/dist/templates/configs/sync.d.ts +0 -3
  141. package/dist/templates/configs/sync.d.ts.map +0 -1
  142. package/dist/templates/configs/sync.js +0 -17
  143. package/dist/templates/configs/sync.js.map +0 -1
  144. package/dist/templates/configs/telescope.d.ts +0 -2
  145. package/dist/templates/configs/telescope.d.ts.map +0 -1
  146. package/dist/templates/configs/telescope.js +0 -25
  147. package/dist/templates/configs/telescope.js.map +0 -1
  148. package/dist/templates/css/index.d.ts +0 -3
  149. package/dist/templates/css/index.d.ts.map +0 -1
  150. package/dist/templates/css/index.js +0 -140
  151. package/dist/templates/css/index.js.map +0 -1
  152. package/dist/templates/css/plain.d.ts +0 -2
  153. package/dist/templates/css/plain.d.ts.map +0 -1
  154. package/dist/templates/css/plain.js +0 -373
  155. package/dist/templates/css/plain.js.map +0 -1
  156. package/dist/templates/css/tailwind.d.ts +0 -2
  157. package/dist/templates/css/tailwind.d.ts.map +0 -1
  158. package/dist/templates/css/tailwind.js +0 -176
  159. package/dist/templates/css/tailwind.js.map +0 -1
  160. package/dist/templates/env.d.ts +0 -7
  161. package/dist/templates/env.d.ts.map +0 -1
  162. package/dist/templates/env.js +0 -113
  163. package/dist/templates/env.js.map +0 -1
  164. package/dist/templates/package-json.d.ts +0 -3
  165. package/dist/templates/package-json.d.ts.map +0 -1
  166. package/dist/templates/package-json.js +0 -204
  167. package/dist/templates/package-json.js.map +0 -1
  168. package/dist/templates/package-managers.d.ts +0 -14
  169. package/dist/templates/package-managers.d.ts.map +0 -1
  170. package/dist/templates/package-managers.js +0 -49
  171. package/dist/templates/package-managers.js.map +0 -1
  172. package/dist/templates/pages/ai-chat.d.ts +0 -7
  173. package/dist/templates/pages/ai-chat.d.ts.map +0 -1
  174. package/dist/templates/pages/ai-chat.js +0 -285
  175. package/dist/templates/pages/ai-chat.js.map +0 -1
  176. package/dist/templates/pages/demo.d.ts +0 -4
  177. package/dist/templates/pages/demo.d.ts.map +0 -1
  178. package/dist/templates/pages/demo.js +0 -71
  179. package/dist/templates/pages/demo.js.map +0 -1
  180. package/dist/templates/pages/error.d.ts +0 -7
  181. package/dist/templates/pages/error.d.ts.map +0 -1
  182. package/dist/templates/pages/error.js +0 -148
  183. package/dist/templates/pages/error.js.map +0 -1
  184. package/dist/templates/pages/index.d.ts +0 -22
  185. package/dist/templates/pages/index.d.ts.map +0 -1
  186. package/dist/templates/pages/index.js +0 -374
  187. package/dist/templates/pages/index.js.map +0 -1
  188. package/dist/templates/prisma/auth.d.ts +0 -2
  189. package/dist/templates/prisma/auth.d.ts.map +0 -1
  190. package/dist/templates/prisma/auth.js +0 -22
  191. package/dist/templates/prisma/auth.js.map +0 -1
  192. package/dist/templates/prisma/base.d.ts +0 -3
  193. package/dist/templates/prisma/base.d.ts.map +0 -1
  194. package/dist/templates/prisma/base.js +0 -14
  195. package/dist/templates/prisma/base.js.map +0 -1
  196. package/dist/templates/prisma/config.d.ts +0 -3
  197. package/dist/templates/prisma/config.d.ts.map +0 -1
  198. package/dist/templates/prisma/config.js +0 -15
  199. package/dist/templates/prisma/config.js.map +0 -1
  200. package/dist/templates/prisma/notification.d.ts +0 -2
  201. package/dist/templates/prisma/notification.d.ts.map +0 -1
  202. package/dist/templates/prisma/notification.js +0 -16
  203. package/dist/templates/prisma/notification.js.map +0 -1
  204. package/dist/templates/prisma/passport.d.ts +0 -2
  205. package/dist/templates/prisma/passport.d.ts.map +0 -1
  206. package/dist/templates/prisma/passport.js +0 -69
  207. package/dist/templates/prisma/passport.js.map +0 -1
  208. package/dist/templates/routes/api.d.ts +0 -3
  209. package/dist/templates/routes/api.d.ts.map +0 -1
  210. package/dist/templates/routes/api.js +0 -76
  211. package/dist/templates/routes/api.js.map +0 -1
  212. package/dist/templates/routes/console.d.ts +0 -3
  213. package/dist/templates/routes/console.d.ts.map +0 -1
  214. package/dist/templates/routes/console.js +0 -29
  215. package/dist/templates/routes/console.js.map +0 -1
  216. package/dist/templates/routes/web.d.ts +0 -4
  217. package/dist/templates/routes/web.d.ts.map +0 -1
  218. package/dist/templates/routes/web.js +0 -77
  219. package/dist/templates/routes/web.js.map +0 -1
  220. package/dist/templates/routes-manifest.d.ts +0 -28
  221. package/dist/templates/routes-manifest.d.ts.map +0 -1
  222. package/dist/templates/routes-manifest.js +0 -48
  223. package/dist/templates/routes-manifest.js.map +0 -1
  224. package/dist/templates/server.d.ts +0 -2
  225. package/dist/templates/server.d.ts.map +0 -1
  226. package/dist/templates/server.js +0 -10
  227. package/dist/templates/server.js.map +0 -1
  228. package/dist/templates/tsconfig.d.ts +0 -3
  229. package/dist/templates/tsconfig.d.ts.map +0 -1
  230. package/dist/templates/tsconfig.js +0 -33
  231. package/dist/templates/tsconfig.js.map +0 -1
  232. package/dist/templates/views/welcome.d.ts +0 -19
  233. package/dist/templates/views/welcome.d.ts.map +0 -1
  234. package/dist/templates/views/welcome.js +0 -338
  235. package/dist/templates/views/welcome.js.map +0 -1
  236. package/dist/templates/vite.d.ts +0 -3
  237. package/dist/templates/vite.d.ts.map +0 -1
  238. package/dist/templates/vite.js +0 -66
  239. package/dist/templates/vite.js.map +0 -1
  240. package/dist/templates.d.ts +0 -45
  241. package/dist/templates.d.ts.map +0 -1
  242. package/dist/templates.js +0 -202
  243. package/dist/templates.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/templates/routes/api.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,GAAoB;IAC5C,MAAM,OAAO,GAAa;QACxB,2CAA2C;KAC5C,CAAA;IACD,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAA;QAC/E,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACvE,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAA;IAElF,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;;;0BAcW,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC;;;;;;GAMZ,CAAC,CAAA;IACF,CAAC;IAED,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAA;QACjG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,KAAK,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;qCAoBsB,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACd,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAClE,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAA;IAExG,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAC5D,CAAC"}
@@ -1,3 +0,0 @@
1
- import { type TemplateContext } from '../../templates.js';
2
- export declare function routesConsole(ctx: TemplateContext): string;
3
- //# sourceMappingURL=console.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console.d.ts","sourceRoot":"","sources":["../../../src/templates/routes/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA2B1D"}
@@ -1,29 +0,0 @@
1
- export function routesConsole(ctx) {
2
- return [
3
- `import { rudder } from '@rudderjs/console'`,
4
- ...(ctx.packages.terminal ? [`import { terminal } from '@rudderjs/terminal'`] : []),
5
- ``,
6
- `rudder.command('inspire', () => {`,
7
- ` const quotes = [`,
8
- ` 'The best way to predict the future is to create it.',`,
9
- ` 'Build something people want.',`,
10
- ` 'Stay hungry, stay foolish.',`,
11
- ` 'Code is poetry.',`,
12
- ` 'Simplicity is the soul of efficiency.',`,
13
- ` ]`,
14
- ` const quote = quotes[Math.floor(Math.random() * quotes.length)]!`,
15
- ` console.log(\`\\n "\${quote}"\\n\`)`,
16
- `}).description('Display an inspiring quote')`,
17
- ``,
18
- `// db:seed is provided by @rudderjs/orm. To add seed data, create`,
19
- `// database/seeders/DatabaseSeeder.ts with a default-exported Seeder`,
20
- `// subclass (or async function). Then \`pnpm rudder db:seed\` runs it.`,
21
- ...(ctx.packages.terminal ? [
22
- ``,
23
- `rudder.command('dashboard', async () => {`,
24
- ` await terminal('dashboard')`,
25
- `}).description('Render the Dashboard view in the terminal')`,
26
- ] : []),
27
- ].join('\n') + '\n';
28
- }
29
- //# sourceMappingURL=console.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../../../src/templates/routes/console.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAAC,GAAoB;IAChD,OAAO;QACL,4CAA4C;QAC5C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,EAAE;QACF,mCAAmC;QACnC,oBAAoB;QACpB,4DAA4D;QAC5D,qCAAqC;QACrC,mCAAmC;QACnC,wBAAwB;QACxB,8CAA8C;QAC9C,KAAK;QACL,oEAAoE;QACpE,wCAAwC;QACxC,8CAA8C;QAC9C,EAAE;QACF,mEAAmE;QACnE,sEAAsE;QACtE,wEAAwE;QACxE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1B,EAAE;YACF,2CAA2C;YAC3C,+BAA+B;YAC/B,6DAA6D;SAC9D,CAAC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AACrB,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type TemplateContext } from '../../templates.js';
2
- export declare function routesWeb(ctx: TemplateContext): string;
3
- export declare function welcomeExt(fw: 'react' | 'vue' | 'solid'): string;
4
- //# sourceMappingURL=web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/templates/routes/web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,SAAS,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CA6EtD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAEhE"}
@@ -1,77 +0,0 @@
1
- export function routesWeb(ctx) {
2
- const hasAuth = ctx.packages.auth;
3
- // Welcome route fires for single-framework AND no-frontend (vanilla welcome
4
- // built with @rudderjs/view's html`` tag — see `welcomeViewVanilla` in
5
- // templates/views/welcome.ts). Multi-framework projects use the file-based
6
- // pages/index/+Page.* page instead.
7
- const hasWelcome = ctx.frameworks.length <= 1;
8
- // ── imports ─────────────────────────────────────────────
9
- const imports = [`import { Route } from '@rudderjs/router'`];
10
- if (hasWelcome) {
11
- imports.push(`import { createRequire } from 'node:module'`);
12
- imports.push(`import { view } from '@rudderjs/view'`);
13
- imports.push(`import { config } from '@rudderjs/core'`);
14
- }
15
- if (hasAuth) {
16
- imports.push(`import { CsrfMiddleware } from '@rudderjs/middleware'`);
17
- imports.push(`import { registerAuthRoutes } from '@rudderjs/auth/routes'`);
18
- imports.push(`import { AuthController } from '../app/Http/Controllers/AuthController.ts'`);
19
- }
20
- // ── middleware chain shared with auth routes + welcome ─
21
- // SessionMiddleware + AuthMiddleware are auto-installed on the web group by
22
- // their providers. Only CSRF stays per-route so specific endpoints (webhooks,
23
- // server-to-server callbacks) can opt out.
24
- const webMwBlock = hasAuth
25
- ? `
26
- // Per-route web middleware — session + auth are auto-applied on the web group.
27
- const webMw = [CsrfMiddleware()]
28
- `
29
- : '';
30
- // ── auth UI wiring ──────────────────────────────────────
31
- // GET view pages come from `registerAuthRoutes`; the POST submit handlers
32
- // come from `AuthController` (extends @rudderjs/auth's BaseAuthController).
33
- // Both live in routes/web.ts so they inherit SessionMiddleware + AuthMiddleware
34
- // from the web group. Customize the flow by editing app/Http/Controllers/AuthController.ts.
35
- const authBlock = hasAuth
36
- ? `
37
- // GET pages — login/register/forgot-password/reset-password
38
- // Views live in app/Views/Auth/ (vendored from @rudderjs/auth/views/${ctx.primary}/)
39
- registerAuthRoutes(Route, { middleware: webMw })
40
-
41
- // POST handlers — sign-in/email, sign-up/email, sign-out, password reset.
42
- // Edit app/Http/Controllers/AuthController.ts to customize.
43
- Route.registerController(AuthController)
44
- `
45
- : '';
46
- // ── welcome page wiring ─────────────────────────────────
47
- // SiteHeader reads `user` from pageContext (set by @rudderjs/auth's enhancer),
48
- // so the welcome controller no longer needs to pass it as a prop.
49
- const welcomeFile = ctx.frameworks.length === 0
50
- ? 'app/Views/Welcome.ts'
51
- : `app/Views/Welcome.${welcomeExt(ctx.primary)}`;
52
- const welcomeBlock = hasWelcome
53
- ? `
54
- // Read RudderJS version from @rudderjs/core's package.json at boot time.
55
- const _require = createRequire(import.meta.url)
56
- const rudderCorePkg = _require('@rudderjs/core/package.json') as { version: string }
57
-
58
- // Welcome page — delete this route and ${welcomeFile} to replace it.
59
- Route.get('/', async () => view('welcome', {
60
- appName: config<string>('app.name', 'RudderJS'),
61
- rudderVersion: rudderCorePkg.version,
62
- nodeVersion: process.version.replace(/^v/, ''),
63
- env: config<string>('app.env', 'development'),
64
- })${hasAuth ? ', webMw' : ''})
65
- `
66
- : '';
67
- return `${imports.join('\n')}
68
- ${webMwBlock}${authBlock}${welcomeBlock}
69
- // Web routes — HTML redirects, guards, and non-API server responses
70
- // These run before Vike's file-based page routing
71
- // Use this file for: redirects, server-side auth guards, download routes, sitemaps, etc.
72
- `;
73
- }
74
- export function welcomeExt(fw) {
75
- return fw === 'vue' ? 'vue' : 'tsx';
76
- }
77
- //# sourceMappingURL=web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/templates/routes/web.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,GAAoB;IAC5C,MAAM,OAAO,GAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAA;IACrC,4EAA4E;IAC5E,uEAAuE;IACvE,2EAA2E;IAC3E,oCAAoC;IACpC,MAAM,UAAU,GAAI,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAA;IAE9C,2DAA2D;IAC3D,MAAM,OAAO,GAAa,CAAC,0CAA0C,CAAC,CAAA;IACtE,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;QAC3D,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;QACrD,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IACzD,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAA;QAC1E,OAAO,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAA;IAC5F,CAAC;IAED,0DAA0D;IAC1D,4EAA4E;IAC5E,8EAA8E;IAC9E,2CAA2C;IAC3C,MAAM,UAAU,GAAG,OAAO;QACxB,CAAC,CAAC;;;CAGL;QACG,CAAC,CAAC,EAAE,CAAA;IAEN,2DAA2D;IAC3D,0EAA0E;IAC1E,4EAA4E;IAC5E,gFAAgF;IAChF,4FAA4F;IAC5F,MAAM,SAAS,GAAG,OAAO;QACvB,CAAC,CAAC;;uEAEiE,GAAG,CAAC,OAAO;;;;;;CAMjF;QACG,CAAC,CAAC,EAAE,CAAA;IAEN,2DAA2D;IAC3D,+EAA+E;IAC/E,kEAAkE;IAClE,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAC7C,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,qBAAqB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAA;IAClD,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC;;;;;0CAKoC,WAAW;;;;;;IAMjD,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;CAC3B;QACG,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;EAC5B,UAAU,GAAG,SAAS,GAAG,YAAY;;;;CAItC,CAAA;AACD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAA6B;IACtD,OAAO,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;AACrC,CAAC"}
@@ -1,28 +0,0 @@
1
- import type { TemplateContext } from '../templates.js';
2
- /**
3
- * One URL the render smoke should hit. Generated from the scaffolder profile
4
- * via {@link getProfileRoutes} — each contributor (welcome, auth, an admin
5
- * dashboard) lists its routes here so a Playwright pass can iterate them
6
- * without a per-profile hand table.
7
- */
8
- export interface RouteSpec {
9
- /** URL path the server is expected to serve. */
10
- path: string;
11
- /**
12
- * Symbolic source — used in failure messages to attribute the broken route
13
- * to the package or template fragment that contributed it.
14
- */
15
- contributedBy: string;
16
- /** Substring asserted in the response HTML. Skipped when omitted. */
17
- ssrMarker?: string;
18
- /** Expected HTTP status. Defaults to 200. */
19
- expectedStatus?: number;
20
- }
21
- /**
22
- * Map a scaffolder profile (TemplateContext) → the set of URLs that should
23
- * render in the booted app. Stays in lockstep with {@link routesWeb} and the
24
- * per-package route registrations so adding a new package + its route shows up
25
- * here and in the render-check.
26
- */
27
- export declare function getProfileRoutes(ctx: TemplateContext): RouteSpec[];
28
- //# sourceMappingURL=routes-manifest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes-manifest.d.ts","sourceRoot":"","sources":["../../src/templates/routes-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,gDAAgD;IAChD,IAAI,EAAa,MAAM,CAAA;IACvB;;;OAGG;IACH,aAAa,EAAI,MAAM,CAAA;IACvB,qEAAqE;IACrE,SAAS,CAAC,EAAO,MAAM,CAAA;IACvB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,GAAG,SAAS,EAAE,CA6ClE"}
@@ -1,48 +0,0 @@
1
- /**
2
- * Map a scaffolder profile (TemplateContext) → the set of URLs that should
3
- * render in the booted app. Stays in lockstep with {@link routesWeb} and the
4
- * per-package route registrations so adding a new package + its route shows up
5
- * here and in the render-check.
6
- */
7
- export function getProfileRoutes(ctx) {
8
- const routes = [];
9
- const hasFrontend = ctx.frameworks.length >= 1;
10
- const isApiOnly = ctx.frameworks.length === 0;
11
- // Welcome page exists for both single-framework (routes/web.ts) and
12
- // no-frontend (vanilla welcome via @rudderjs/view's html``). Multi-framework
13
- // scaffolds use pages/index/+Page.* instead — same URL, different shape.
14
- if (ctx.frameworks.length === 1 || isApiOnly) {
15
- routes.push({ path: '/', contributedBy: 'welcome', ssrMarker: 'Built with RudderJS' });
16
- }
17
- else if (ctx.frameworks.length > 1) {
18
- routes.push({ path: '/', contributedBy: 'welcome' });
19
- }
20
- // No-frontend cells additionally hit /api/health — the always-scaffolded
21
- // JSON probe — so the smoke exercises the api route stack end-to-end.
22
- if (isApiOnly) {
23
- routes.push({ path: '/api/health', contributedBy: 'api.health', ssrMarker: '"status":"ok"' });
24
- }
25
- // Auth UI — login/register/forgot-password. RequireGuest middleware lets the
26
- // pages through for an unauthenticated session (which is what the smoke has).
27
- // Markers come from packages/auth/views/<framework>/. Only react has vendored
28
- // views today; vue/solid scaffolds resolve to a missing view at boot. The
29
- // smoke's auth-view copy step (mirrors index.ts) only fires for react, so we
30
- // gate the manifest the same way to avoid asserting on routes whose template
31
- // never reached the project. Skipped on API-only profiles (no frontend → no
32
- // auth pages even when the package is selected for POST endpoints only).
33
- if (hasFrontend && ctx.packages.auth && ctx.primary === 'react') {
34
- routes.push({ path: '/login', contributedBy: 'auth', ssrMarker: 'Welcome back' }, { path: '/register', contributedBy: 'auth', ssrMarker: 'Create an account' }, { path: '/forgot-password', contributedBy: 'auth', ssrMarker: 'Forgot password' });
35
- }
36
- // Admin dashboards — scaffolder configs leave them publicly mounted (no
37
- // auth middleware), so an unauthenticated session can reach them. The title
38
- // bar substring is a cheap SSR marker that won't false-fire on the welcome
39
- // page or a 404.
40
- if (ctx.packages.telescope)
41
- routes.push({ path: '/telescope', contributedBy: 'telescope', ssrMarker: 'Telescope' });
42
- if (ctx.packages.pulse)
43
- routes.push({ path: '/pulse', contributedBy: 'pulse', ssrMarker: 'Pulse' });
44
- if (ctx.packages.horizon)
45
- routes.push({ path: '/horizon', contributedBy: 'horizon', ssrMarker: 'Horizon' });
46
- return routes;
47
- }
48
- //# sourceMappingURL=routes-manifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes-manifest.js","sourceRoot":"","sources":["../../src/templates/routes-manifest.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAoB;IACnD,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,CAAA;IAC9C,MAAM,SAAS,GAAK,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAA;IAE/C,oEAAoE;IACpE,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,CAAA;IACxF,CAAC;SAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAA;IAC/F,CAAC;IAED,6EAA6E;IAC7E,8EAA8E;IAC9E,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAChE,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,QAAQ,EAAY,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,EAC9E,EAAE,IAAI,EAAE,WAAW,EAAS,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,EAAE,EACnF,EAAE,IAAI,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAClF,CAAA;IACH,CAAC;IAED,wEAAwE;IACxE,4EAA4E;IAC5E,2EAA2E;IAC3E,iBAAiB;IACjB,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IACnH,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK;QAAM,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAM,aAAa,EAAE,OAAO,EAAM,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;IAC/G,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO;QAAI,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAI,aAAa,EAAE,SAAS,EAAI,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;IAEjH,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function serverTs(): string;
2
- //# sourceMappingURL=server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/templates/server.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,IAAI,MAAM,CAQjC"}
@@ -1,10 +0,0 @@
1
- export function serverTs() {
2
- return `import type { Server } from 'vike/types'
3
- import app from './bootstrap/app.js'
4
-
5
- export default {
6
- fetch: app.fetch,
7
- } satisfies Server
8
- `;
9
- }
10
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/templates/server.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;CAMR,CAAA;AACD,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { TemplateContext } from '../templates.js';
2
- export declare function tsconfigJson(ctx: TemplateContext): string;
3
- //# sourceMappingURL=tsconfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["../../src/templates/tsconfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEtD,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAiCzD"}
@@ -1,33 +0,0 @@
1
- export function tsconfigJson(ctx) {
2
- const hasReact = ctx.frameworks.includes('react');
3
- const hasSolid = ctx.frameworks.includes('solid');
4
- const compilerOptions = {
5
- target: 'ES2022',
6
- module: 'ESNext',
7
- moduleResolution: 'bundler',
8
- lib: ['ES2022', 'DOM', 'DOM.Iterable'],
9
- strict: true,
10
- exactOptionalPropertyTypes: true,
11
- noUncheckedIndexedAccess: true,
12
- experimentalDecorators: true,
13
- emitDecoratorMetadata: true,
14
- skipLibCheck: true,
15
- noEmit: true,
16
- baseUrl: '.',
17
- paths: { '@/*': ['./src/*'], 'App/*': ['./app/*'] },
18
- allowImportingTsExtensions: true,
19
- };
20
- if (hasReact) {
21
- compilerOptions['jsx'] = 'react-jsx';
22
- }
23
- else if (hasSolid) {
24
- compilerOptions['jsx'] = 'preserve';
25
- compilerOptions['jsxImportSource'] = 'solid-js';
26
- }
27
- // Vue only — no jsx field needed
28
- return JSON.stringify({
29
- compilerOptions,
30
- include: ['src/**/*', 'pages/**/*', 'app/**/*', 'bootstrap/**/*', 'routes/**/*', 'config/**/*', '*.ts', '*.tsx'],
31
- }, null, 2) + '\n';
32
- }
33
- //# sourceMappingURL=tsconfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["../../src/templates/tsconfig.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,YAAY,CAAC,GAAoB;IAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAEjD,MAAM,eAAe,GAA4B;QAC/C,MAAM,EAAsB,QAAQ;QACpC,MAAM,EAAsB,QAAQ;QACpC,gBAAgB,EAAY,SAAS;QACrC,GAAG,EAAyB,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,CAAC;QAC7D,MAAM,EAAsB,IAAI;QAChC,0BAA0B,EAAE,IAAI;QAChC,wBAAwB,EAAI,IAAI;QAChC,sBAAsB,EAAM,IAAI;QAChC,qBAAqB,EAAO,IAAI;QAChC,YAAY,EAAgB,IAAI;QAChC,MAAM,EAAsB,IAAI;QAChC,OAAO,EAAqB,GAAG;QAC/B,KAAK,EAAuB,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;QACxE,0BAA0B,EAAE,IAAI;KACjC,CAAA;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,eAAe,CAAC,KAAK,CAAC,GAAG,WAAW,CAAA;IACtC,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,eAAe,CAAC,KAAK,CAAC,GAAe,UAAU,CAAA;QAC/C,eAAe,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAA;IACjD,CAAC;IACD,iCAAiC;IAEjC,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,eAAe;QACf,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC;KACjH,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAA;AACpB,CAAC"}
@@ -1,19 +0,0 @@
1
- import type { TemplateContext } from '../../templates.js';
2
- export declare function welcomeView(ctx: TemplateContext): string;
3
- /**
4
- * Vanilla welcome view for no-frontend recipes (api-service, minimal).
5
- *
6
- * Returns a SafeString built with @rudderjs/view's html`` tagged template
7
- * (zero-client-JS, server-rendered HTML). No React/Vue/Solid imports → no
8
- * vike-* renderer required. The @rudderjs/vite view scanner detects the
9
- * .ts extension + no installed vike-renderer and generates the matching
10
- * `pages/__view/welcome/+Page.ts` stub that returns the Page as a string.
11
- *
12
- * `pages/+config.ts` wraps the page's body in an `onRenderHtml` hook —
13
- * see `templates/pages/index.ts` for the vanilla shell.
14
- */
15
- export declare function welcomeViewVanilla(_ctx: TemplateContext): string;
16
- export declare function welcomeViewReact(_ctx: TemplateContext): string;
17
- export declare function welcomeViewVue(_ctx: TemplateContext): string;
18
- export declare function welcomeViewSolid(_ctx: TemplateContext): string;
19
- //# sourceMappingURL=welcome.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../../src/templates/views/welcome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAOxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAwChE;AAsCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA6E9D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAkF5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CA8E9D"}