@digilogiclabs/create-saas-app 2.0.0 → 2.2.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 (348) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +975 -891
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/generators/template-generator.d.ts +11 -0
  5. package/dist/generators/template-generator.d.ts.map +1 -1
  6. package/dist/generators/template-generator.js +389 -18
  7. package/dist/generators/template-generator.js.map +1 -1
  8. package/dist/index.js +1837 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/templates/infrastructure/kubernetes/base/template/README.md +253 -0
  11. package/dist/templates/infrastructure/kubernetes/base/template/configmap.yaml +12 -0
  12. package/dist/templates/infrastructure/kubernetes/base/template/deployment.yaml +123 -0
  13. package/dist/templates/infrastructure/kubernetes/base/template/hpa.yaml +45 -0
  14. package/dist/templates/infrastructure/kubernetes/base/template/ingress.yaml +31 -0
  15. package/dist/templates/infrastructure/kubernetes/base/template/kustomization.yaml +25 -0
  16. package/dist/templates/infrastructure/kubernetes/base/template/namespace.yaml +8 -0
  17. package/dist/templates/infrastructure/kubernetes/base/template/networkpolicy.yaml +48 -0
  18. package/dist/templates/infrastructure/kubernetes/base/template/pdb.yaml +14 -0
  19. package/dist/templates/infrastructure/kubernetes/base/template/secret.yaml +17 -0
  20. package/dist/templates/infrastructure/kubernetes/base/template/service.yaml +19 -0
  21. package/dist/templates/infrastructure/kubernetes/base/template/serviceaccount.yaml +9 -0
  22. package/dist/templates/infrastructure/kubernetes/production/template/kustomization.yaml +92 -0
  23. package/dist/templates/infrastructure/terraform/aws/template/README.md +156 -0
  24. package/dist/templates/infrastructure/terraform/aws/template/main.tf +343 -0
  25. package/dist/templates/infrastructure/terraform/aws/template/outputs.tf +66 -0
  26. package/dist/templates/infrastructure/terraform/aws/template/terraform.tfvars.example +28 -0
  27. package/dist/templates/infrastructure/terraform/aws/template/variables.tf +110 -0
  28. package/dist/templates/infrastructure/terraform/gcp/template/README.md +165 -0
  29. package/dist/templates/infrastructure/terraform/gcp/template/main.tf +397 -0
  30. package/dist/templates/infrastructure/terraform/gcp/template/outputs.tf +51 -0
  31. package/dist/templates/infrastructure/terraform/gcp/template/terraform.tfvars.example +29 -0
  32. package/dist/templates/infrastructure/terraform/gcp/template/variables.tf +115 -0
  33. package/dist/templates/shared/admin/web/app/admin/layout.tsx +34 -0
  34. package/dist/templates/shared/admin/web/components/admin-nav.tsx +48 -0
  35. package/dist/templates/shared/audit/web/lib/audit.ts +24 -0
  36. package/dist/templates/shared/auth/keycloak/web/app/api/auth/federated-logout/route.ts +173 -0
  37. package/dist/templates/shared/auth/keycloak/web/auth.config.ts +84 -0
  38. package/dist/templates/shared/auth/keycloak/web/auth.ts +26 -0
  39. package/dist/templates/shared/beta/web/app/api/beta-settings/route.ts +25 -0
  40. package/dist/templates/shared/beta/web/app/api/validate-beta-code/route.ts +67 -0
  41. package/dist/templates/shared/beta/web/lib/beta/settings.ts +31 -0
  42. package/dist/templates/shared/cache/web/lib/cache.ts +44 -0
  43. package/dist/templates/shared/config/web/lib/config.ts +112 -0
  44. package/dist/templates/shared/config/web/next.config.mjs +62 -0
  45. package/dist/templates/shared/contact/web/app/api/contact/route.ts +113 -0
  46. package/dist/templates/shared/contact/web/app/contact/page.tsx +195 -0
  47. package/dist/templates/shared/cookie-consent/web/components/cookie-consent.tsx +54 -0
  48. package/dist/templates/shared/database/postgresql/web/drizzle.config.ts +16 -0
  49. package/dist/templates/shared/database/postgresql/web/lib/db/drizzle.ts +39 -0
  50. package/dist/templates/shared/database/postgresql/web/lib/db/schema.ts +33 -0
  51. package/dist/templates/shared/database/supabase/web/lib/supabase/client.ts +12 -0
  52. package/dist/templates/shared/database/supabase/web/lib/supabase/server.ts +31 -0
  53. package/dist/templates/shared/database/supabase/web/lib/supabase/service.ts +15 -0
  54. package/dist/templates/shared/email/web/lib/email/branding.ts +18 -0
  55. package/dist/templates/shared/email/web/lib/email/client.ts +96 -0
  56. package/dist/templates/shared/error-pages/web/app/error.tsx +70 -0
  57. package/dist/templates/shared/error-pages/web/app/global-error.tsx +102 -0
  58. package/dist/templates/shared/error-pages/web/app/not-found.tsx +39 -0
  59. package/dist/templates/shared/health/web/app/api/health/route.ts +68 -0
  60. package/dist/templates/shared/legal/web/app/(legal)/privacy/page.tsx +205 -0
  61. package/dist/templates/shared/legal/web/app/(legal)/terms/page.tsx +154 -0
  62. package/dist/templates/shared/legal/web/lib/legal-config.ts +50 -0
  63. package/dist/templates/shared/loading/web/app/loading.tsx +5 -0
  64. package/dist/templates/shared/loading/web/components/skeleton.tsx +95 -0
  65. package/dist/templates/shared/middleware/web/middleware.ts +68 -0
  66. package/dist/templates/shared/observability/web/lib/observability.ts +135 -0
  67. package/dist/templates/shared/payments/web/app/api/webhooks/stripe/route.ts +109 -0
  68. package/dist/templates/shared/platform/web/lib/platform.ts +37 -0
  69. package/dist/templates/shared/redis/web/lib/rate-limit-store.ts +18 -0
  70. package/dist/templates/shared/redis/web/lib/redis.ts +48 -0
  71. package/dist/templates/shared/security/web/lib/api-security.ts +318 -0
  72. package/dist/templates/shared/seo/web/app/api/og/route.tsx +97 -0
  73. package/dist/templates/shared/seo/web/app/robots.ts +53 -0
  74. package/dist/templates/shared/seo/web/app/sitemap.ts +53 -0
  75. package/dist/templates/shared/utils/web/lib/api-response.ts +71 -0
  76. package/dist/templates/shared/utils/web/lib/utils.ts +85 -0
  77. package/dist/templates/web/ai-platform/template/.env.example +16 -0
  78. package/dist/templates/web/ai-platform/template/README.md +84 -0
  79. package/dist/templates/web/ai-platform/template/middleware.ts +55 -0
  80. package/dist/templates/web/ai-platform/template/next.config.js +14 -0
  81. package/dist/templates/web/ai-platform/template/package.json +55 -0
  82. package/dist/templates/web/ai-platform/template/src/app/api/chat/route.ts +54 -0
  83. package/dist/templates/web/ai-platform/template/src/app/chat/page.tsx +235 -0
  84. package/dist/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -0
  85. package/dist/templates/web/ai-platform/template/src/app/globals.css +34 -0
  86. package/dist/templates/web/ai-platform/template/src/app/layout.tsx +27 -0
  87. package/dist/templates/web/ai-platform/template/src/app/page.tsx +203 -0
  88. package/dist/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +27 -0
  89. package/dist/templates/web/ai-platform/template/src/lib/auth-server.ts +33 -0
  90. package/dist/templates/web/ai-platform/template/src/lib/supabase/client.ts +8 -0
  91. package/dist/templates/web/ai-platform/template/src/lib/supabase/server.ts +27 -0
  92. package/dist/templates/web/ai-platform/template/src/lib/utils.ts +6 -0
  93. package/dist/templates/web/ai-platform/template/tsconfig.json +27 -0
  94. package/dist/templates/web/iot-dashboard/template/.env.example +12 -0
  95. package/dist/templates/web/iot-dashboard/template/README.md +101 -0
  96. package/dist/templates/web/iot-dashboard/template/middleware.ts +56 -0
  97. package/dist/templates/web/iot-dashboard/template/next.config.js +14 -0
  98. package/dist/templates/web/iot-dashboard/template/package.json +49 -0
  99. package/dist/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +229 -0
  100. package/dist/templates/web/iot-dashboard/template/src/app/globals.css +20 -0
  101. package/dist/templates/web/iot-dashboard/template/src/app/layout.tsx +27 -0
  102. package/dist/templates/web/iot-dashboard/template/src/app/page.tsx +191 -0
  103. package/dist/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +24 -0
  104. package/dist/templates/web/iot-dashboard/template/src/lib/auth-server.ts +33 -0
  105. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +8 -0
  106. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +27 -0
  107. package/dist/templates/web/iot-dashboard/template/src/lib/utils.ts +25 -0
  108. package/dist/templates/web/iot-dashboard/template/tsconfig.json +27 -0
  109. package/dist/templates/web/marketplace/template/.env.example +12 -0
  110. package/dist/templates/web/marketplace/template/README.md +66 -0
  111. package/dist/templates/web/marketplace/template/middleware.ts +56 -0
  112. package/dist/templates/web/marketplace/template/next.config.js +14 -0
  113. package/dist/templates/web/marketplace/template/package.json +51 -0
  114. package/dist/templates/web/marketplace/template/src/app/cart/page.tsx +147 -0
  115. package/dist/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -0
  116. package/dist/templates/web/marketplace/template/src/app/globals.css +20 -0
  117. package/dist/templates/web/marketplace/template/src/app/layout.tsx +27 -0
  118. package/dist/templates/web/marketplace/template/src/app/page.tsx +167 -0
  119. package/dist/templates/web/marketplace/template/src/app/products/page.tsx +129 -0
  120. package/dist/templates/web/marketplace/template/src/components/providers/app-providers.tsx +27 -0
  121. package/dist/templates/web/marketplace/template/src/lib/auth-server.ts +33 -0
  122. package/dist/templates/web/marketplace/template/src/lib/supabase/client.ts +8 -0
  123. package/dist/templates/web/marketplace/template/src/lib/supabase/server.ts +27 -0
  124. package/dist/templates/web/marketplace/template/src/lib/utils.ts +19 -0
  125. package/dist/templates/web/marketplace/template/tsconfig.json +27 -0
  126. package/dist/templates/web/micro-saas/template/.env.example +10 -0
  127. package/dist/templates/web/micro-saas/template/README.md +63 -0
  128. package/dist/templates/web/micro-saas/template/middleware.ts +53 -0
  129. package/dist/templates/web/micro-saas/template/next.config.js +14 -0
  130. package/dist/templates/web/micro-saas/template/package.json +41 -0
  131. package/dist/templates/web/micro-saas/template/src/app/dashboard/page.tsx +117 -0
  132. package/dist/templates/web/micro-saas/template/src/app/globals.css +20 -0
  133. package/dist/templates/web/micro-saas/template/src/app/layout.tsx +27 -0
  134. package/dist/templates/web/micro-saas/template/src/app/login/page.tsx +87 -0
  135. package/dist/templates/web/micro-saas/template/src/app/page.tsx +137 -0
  136. package/dist/templates/web/micro-saas/template/src/app/signup/page.tsx +108 -0
  137. package/dist/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +24 -0
  138. package/dist/templates/web/micro-saas/template/src/lib/auth-server.ts +33 -0
  139. package/dist/templates/web/micro-saas/template/src/lib/supabase/client.ts +8 -0
  140. package/dist/templates/web/micro-saas/template/src/lib/supabase/server.ts +29 -0
  141. package/dist/templates/web/micro-saas/template/src/lib/utils.ts +6 -0
  142. package/dist/templates/web/micro-saas/template/tsconfig.json +27 -0
  143. package/package.json +5 -4
  144. package/src/templates/infrastructure/kubernetes/base/template/README.md +253 -0
  145. package/src/templates/infrastructure/kubernetes/base/template/configmap.yaml +12 -0
  146. package/src/templates/infrastructure/kubernetes/base/template/deployment.yaml +123 -0
  147. package/src/templates/infrastructure/kubernetes/base/template/hpa.yaml +45 -0
  148. package/src/templates/infrastructure/kubernetes/base/template/ingress.yaml +31 -0
  149. package/src/templates/infrastructure/kubernetes/base/template/kustomization.yaml +25 -0
  150. package/src/templates/infrastructure/kubernetes/base/template/namespace.yaml +8 -0
  151. package/src/templates/infrastructure/kubernetes/base/template/networkpolicy.yaml +48 -0
  152. package/src/templates/infrastructure/kubernetes/base/template/pdb.yaml +14 -0
  153. package/src/templates/infrastructure/kubernetes/base/template/secret.yaml +17 -0
  154. package/src/templates/infrastructure/kubernetes/base/template/service.yaml +19 -0
  155. package/src/templates/infrastructure/kubernetes/base/template/serviceaccount.yaml +9 -0
  156. package/src/templates/infrastructure/kubernetes/production/template/kustomization.yaml +92 -0
  157. package/src/templates/infrastructure/terraform/aws/template/README.md +156 -0
  158. package/src/templates/infrastructure/terraform/aws/template/main.tf +343 -0
  159. package/src/templates/infrastructure/terraform/aws/template/outputs.tf +66 -0
  160. package/src/templates/infrastructure/terraform/aws/template/terraform.tfvars.example +28 -0
  161. package/src/templates/infrastructure/terraform/aws/template/variables.tf +110 -0
  162. package/src/templates/infrastructure/terraform/gcp/template/README.md +165 -0
  163. package/src/templates/infrastructure/terraform/gcp/template/main.tf +397 -0
  164. package/src/templates/infrastructure/terraform/gcp/template/outputs.tf +51 -0
  165. package/src/templates/infrastructure/terraform/gcp/template/terraform.tfvars.example +29 -0
  166. package/src/templates/infrastructure/terraform/gcp/template/variables.tf +115 -0
  167. package/src/templates/shared/admin/web/app/admin/layout.tsx +34 -0
  168. package/src/templates/shared/admin/web/components/admin-nav.tsx +48 -0
  169. package/src/templates/shared/audit/web/lib/audit.ts +24 -0
  170. package/src/templates/shared/auth/keycloak/web/app/api/auth/federated-logout/route.ts +173 -0
  171. package/src/templates/shared/auth/keycloak/web/auth.config.ts +84 -0
  172. package/src/templates/shared/auth/keycloak/web/auth.ts +26 -0
  173. package/src/templates/shared/beta/web/app/api/beta-settings/route.ts +25 -0
  174. package/src/templates/shared/beta/web/app/api/validate-beta-code/route.ts +67 -0
  175. package/src/templates/shared/beta/web/lib/beta/settings.ts +31 -0
  176. package/src/templates/shared/cache/web/lib/cache.ts +44 -0
  177. package/src/templates/shared/config/web/lib/config.ts +112 -0
  178. package/src/templates/shared/config/web/next.config.mjs +62 -0
  179. package/src/templates/shared/contact/web/app/api/contact/route.ts +113 -0
  180. package/src/templates/shared/contact/web/app/contact/page.tsx +195 -0
  181. package/src/templates/shared/cookie-consent/web/components/cookie-consent.tsx +54 -0
  182. package/src/templates/shared/database/postgresql/web/drizzle.config.ts +16 -0
  183. package/src/templates/shared/database/postgresql/web/lib/db/drizzle.ts +39 -0
  184. package/src/templates/shared/database/postgresql/web/lib/db/schema.ts +33 -0
  185. package/src/templates/shared/database/supabase/web/lib/supabase/client.ts +12 -0
  186. package/src/templates/shared/database/supabase/web/lib/supabase/server.ts +31 -0
  187. package/src/templates/shared/database/supabase/web/lib/supabase/service.ts +15 -0
  188. package/src/templates/shared/email/web/lib/email/branding.ts +18 -0
  189. package/src/templates/shared/email/web/lib/email/client.ts +96 -0
  190. package/src/templates/shared/error-pages/web/app/error.tsx +70 -0
  191. package/src/templates/shared/error-pages/web/app/global-error.tsx +102 -0
  192. package/src/templates/shared/error-pages/web/app/not-found.tsx +39 -0
  193. package/src/templates/shared/health/web/app/api/health/route.ts +68 -0
  194. package/src/templates/shared/legal/web/app/(legal)/privacy/page.tsx +205 -0
  195. package/src/templates/shared/legal/web/app/(legal)/terms/page.tsx +154 -0
  196. package/src/templates/shared/legal/web/lib/legal-config.ts +50 -0
  197. package/src/templates/shared/loading/web/app/loading.tsx +5 -0
  198. package/src/templates/shared/loading/web/components/skeleton.tsx +95 -0
  199. package/src/templates/shared/middleware/web/middleware.ts +68 -0
  200. package/src/templates/shared/observability/web/lib/observability.ts +135 -0
  201. package/src/templates/shared/payments/web/app/api/webhooks/stripe/route.ts +109 -0
  202. package/src/templates/shared/platform/web/lib/platform.ts +37 -0
  203. package/src/templates/shared/redis/web/lib/rate-limit-store.ts +18 -0
  204. package/src/templates/shared/redis/web/lib/redis.ts +48 -0
  205. package/src/templates/shared/security/web/lib/api-security.ts +318 -0
  206. package/src/templates/shared/seo/web/app/api/og/route.tsx +97 -0
  207. package/src/templates/shared/seo/web/app/robots.ts +53 -0
  208. package/src/templates/shared/seo/web/app/sitemap.ts +53 -0
  209. package/src/templates/shared/utils/web/lib/api-response.ts +71 -0
  210. package/src/templates/shared/utils/web/lib/utils.ts +85 -0
  211. package/src/templates/web/ai-platform/template/.env.example +16 -0
  212. package/src/templates/web/ai-platform/template/README.md +84 -0
  213. package/src/templates/web/ai-platform/template/middleware.ts +55 -0
  214. package/src/templates/web/ai-platform/template/next.config.js +14 -0
  215. package/src/templates/web/ai-platform/template/package.json +55 -0
  216. package/src/templates/web/ai-platform/template/src/app/api/chat/route.ts +54 -0
  217. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +235 -0
  218. package/src/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -0
  219. package/src/templates/web/ai-platform/template/src/app/globals.css +34 -0
  220. package/src/templates/web/ai-platform/template/src/app/layout.tsx +27 -0
  221. package/src/templates/web/ai-platform/template/src/app/page.tsx +203 -0
  222. package/src/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +27 -0
  223. package/src/templates/web/ai-platform/template/src/lib/auth-server.ts +33 -0
  224. package/src/templates/web/ai-platform/template/src/lib/supabase/client.ts +8 -0
  225. package/src/templates/web/ai-platform/template/src/lib/supabase/server.ts +27 -0
  226. package/src/templates/web/ai-platform/template/src/lib/utils.ts +6 -0
  227. package/src/templates/web/ai-platform/template/tsconfig.json +27 -0
  228. package/src/templates/web/iot-dashboard/template/.env.example +12 -0
  229. package/src/templates/web/iot-dashboard/template/README.md +101 -0
  230. package/src/templates/web/iot-dashboard/template/middleware.ts +56 -0
  231. package/src/templates/web/iot-dashboard/template/next.config.js +14 -0
  232. package/src/templates/web/iot-dashboard/template/package.json +49 -0
  233. package/src/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +229 -0
  234. package/src/templates/web/iot-dashboard/template/src/app/globals.css +20 -0
  235. package/src/templates/web/iot-dashboard/template/src/app/layout.tsx +27 -0
  236. package/src/templates/web/iot-dashboard/template/src/app/page.tsx +191 -0
  237. package/src/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +24 -0
  238. package/src/templates/web/iot-dashboard/template/src/lib/auth-server.ts +33 -0
  239. package/src/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +8 -0
  240. package/src/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +27 -0
  241. package/src/templates/web/iot-dashboard/template/src/lib/utils.ts +25 -0
  242. package/src/templates/web/iot-dashboard/template/tsconfig.json +27 -0
  243. package/src/templates/web/marketplace/template/.env.example +12 -0
  244. package/src/templates/web/marketplace/template/README.md +66 -0
  245. package/src/templates/web/marketplace/template/middleware.ts +56 -0
  246. package/src/templates/web/marketplace/template/next.config.js +14 -0
  247. package/src/templates/web/marketplace/template/package.json +51 -0
  248. package/src/templates/web/marketplace/template/src/app/cart/page.tsx +147 -0
  249. package/src/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -0
  250. package/src/templates/web/marketplace/template/src/app/globals.css +20 -0
  251. package/src/templates/web/marketplace/template/src/app/layout.tsx +27 -0
  252. package/src/templates/web/marketplace/template/src/app/page.tsx +167 -0
  253. package/src/templates/web/marketplace/template/src/app/products/page.tsx +129 -0
  254. package/src/templates/web/marketplace/template/src/components/providers/app-providers.tsx +27 -0
  255. package/src/templates/web/marketplace/template/src/lib/auth-server.ts +33 -0
  256. package/src/templates/web/marketplace/template/src/lib/supabase/client.ts +8 -0
  257. package/src/templates/web/marketplace/template/src/lib/supabase/server.ts +27 -0
  258. package/src/templates/web/marketplace/template/src/lib/utils.ts +19 -0
  259. package/src/templates/web/marketplace/template/tsconfig.json +27 -0
  260. package/src/templates/web/micro-saas/template/.env.example +10 -0
  261. package/src/templates/web/micro-saas/template/README.md +63 -0
  262. package/src/templates/web/micro-saas/template/middleware.ts +53 -0
  263. package/src/templates/web/micro-saas/template/next.config.js +14 -0
  264. package/src/templates/web/micro-saas/template/package.json +41 -0
  265. package/src/templates/web/micro-saas/template/src/app/dashboard/page.tsx +117 -0
  266. package/src/templates/web/micro-saas/template/src/app/globals.css +20 -0
  267. package/src/templates/web/micro-saas/template/src/app/layout.tsx +27 -0
  268. package/src/templates/web/micro-saas/template/src/app/login/page.tsx +87 -0
  269. package/src/templates/web/micro-saas/template/src/app/page.tsx +137 -0
  270. package/src/templates/web/micro-saas/template/src/app/signup/page.tsx +108 -0
  271. package/src/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +24 -0
  272. package/src/templates/web/micro-saas/template/src/lib/auth-server.ts +33 -0
  273. package/src/templates/web/micro-saas/template/src/lib/supabase/client.ts +8 -0
  274. package/src/templates/web/micro-saas/template/src/lib/supabase/server.ts +29 -0
  275. package/src/templates/web/micro-saas/template/src/lib/utils.ts +6 -0
  276. package/src/templates/web/micro-saas/template/tsconfig.json +27 -0
  277. package/dist/cli/commands/add.d.ts +0 -6
  278. package/dist/cli/commands/add.d.ts.map +0 -1
  279. package/dist/cli/commands/add.js +0 -39
  280. package/dist/cli/commands/add.js.map +0 -1
  281. package/dist/cli/commands/create.d.ts +0 -45
  282. package/dist/cli/commands/create.d.ts.map +0 -1
  283. package/dist/cli/commands/create.js +0 -175
  284. package/dist/cli/commands/create.js.map +0 -1
  285. package/dist/cli/commands/index.d.ts +0 -4
  286. package/dist/cli/commands/index.d.ts.map +0 -1
  287. package/dist/cli/commands/index.js +0 -20
  288. package/dist/cli/commands/index.js.map +0 -1
  289. package/dist/cli/commands/update.d.ts +0 -6
  290. package/dist/cli/commands/update.d.ts.map +0 -1
  291. package/dist/cli/commands/update.js +0 -68
  292. package/dist/cli/commands/update.js.map +0 -1
  293. package/dist/cli/index.d.ts +0 -4
  294. package/dist/cli/index.d.ts.map +0 -1
  295. package/dist/cli/index.js +0 -61
  296. package/dist/cli/index.js.map +0 -1
  297. package/dist/cli/prompts/index.d.ts +0 -2
  298. package/dist/cli/prompts/index.d.ts.map +0 -1
  299. package/dist/cli/prompts/index.js +0 -18
  300. package/dist/cli/prompts/index.js.map +0 -1
  301. package/dist/cli/prompts/project-setup.d.ts +0 -5
  302. package/dist/cli/prompts/project-setup.d.ts.map +0 -1
  303. package/dist/cli/prompts/project-setup.js +0 -316
  304. package/dist/cli/prompts/project-setup.js.map +0 -1
  305. package/dist/cli/utils/git.d.ts +0 -9
  306. package/dist/cli/utils/git.d.ts.map +0 -1
  307. package/dist/cli/utils/git.js +0 -77
  308. package/dist/cli/utils/git.js.map +0 -1
  309. package/dist/cli/utils/index.d.ts +0 -5
  310. package/dist/cli/utils/index.d.ts.map +0 -1
  311. package/dist/cli/utils/index.js +0 -21
  312. package/dist/cli/utils/index.js.map +0 -1
  313. package/dist/cli/utils/logger.d.ts +0 -16
  314. package/dist/cli/utils/logger.d.ts.map +0 -1
  315. package/dist/cli/utils/logger.js +0 -55
  316. package/dist/cli/utils/logger.js.map +0 -1
  317. package/dist/cli/utils/package-manager.d.ts +0 -8
  318. package/dist/cli/utils/package-manager.d.ts.map +0 -1
  319. package/dist/cli/utils/package-manager.js +0 -92
  320. package/dist/cli/utils/package-manager.js.map +0 -1
  321. package/dist/cli/utils/spinner.d.ts +0 -7
  322. package/dist/cli/utils/spinner.d.ts.map +0 -1
  323. package/dist/cli/utils/spinner.js +0 -48
  324. package/dist/cli/utils/spinner.js.map +0 -1
  325. package/dist/cli/validators/dependencies.d.ts +0 -15
  326. package/dist/cli/validators/dependencies.d.ts.map +0 -1
  327. package/dist/cli/validators/dependencies.js +0 -108
  328. package/dist/cli/validators/dependencies.js.map +0 -1
  329. package/dist/cli/validators/index.d.ts +0 -3
  330. package/dist/cli/validators/index.d.ts.map +0 -1
  331. package/dist/cli/validators/index.js +0 -19
  332. package/dist/cli/validators/index.js.map +0 -1
  333. package/dist/cli/validators/project-name.d.ts +0 -5
  334. package/dist/cli/validators/project-name.d.ts.map +0 -1
  335. package/dist/cli/validators/project-name.js +0 -151
  336. package/dist/cli/validators/project-name.js.map +0 -1
  337. package/dist/generators/file-processor.d.ts +0 -28
  338. package/dist/generators/file-processor.d.ts.map +0 -1
  339. package/dist/generators/file-processor.js +0 -224
  340. package/dist/generators/file-processor.js.map +0 -1
  341. package/dist/generators/index.d.ts +0 -4
  342. package/dist/generators/index.d.ts.map +0 -1
  343. package/dist/generators/index.js +0 -20
  344. package/dist/generators/index.js.map +0 -1
  345. package/dist/generators/package-installer.d.ts +0 -29
  346. package/dist/generators/package-installer.d.ts.map +0 -1
  347. package/dist/generators/package-installer.js +0 -177
  348. package/dist/generators/package-installer.js.map +0 -1
@@ -0,0 +1,123 @@
1
+ # {{titleCaseName}} - Kubernetes Deployment
2
+ apiVersion: apps/v1
3
+ kind: Deployment
4
+ metadata:
5
+ name: {{projectName}}
6
+ namespace: {{projectName}}
7
+ labels:
8
+ app.kubernetes.io/name: {{projectName}}
9
+ app.kubernetes.io/component: web
10
+ spec:
11
+ replicas: 2
12
+ selector:
13
+ matchLabels:
14
+ app.kubernetes.io/name: {{projectName}}
15
+ app.kubernetes.io/component: web
16
+ template:
17
+ metadata:
18
+ labels:
19
+ app.kubernetes.io/name: {{projectName}}
20
+ app.kubernetes.io/component: web
21
+ annotations:
22
+ prometheus.io/scrape: "true"
23
+ prometheus.io/port: "3000"
24
+ prometheus.io/path: "/metrics"
25
+ spec:
26
+ serviceAccountName: {{projectName}}
27
+ securityContext:
28
+ runAsNonRoot: true
29
+ runAsUser: 1000
30
+ fsGroup: 1000
31
+ containers:
32
+ - name: app
33
+ image: {{projectName}}:latest
34
+ imagePullPolicy: Always
35
+ ports:
36
+ - name: http
37
+ containerPort: 3000
38
+ protocol: TCP
39
+ env:
40
+ - name: NODE_ENV
41
+ value: "production"
42
+ - name: NEXT_PUBLIC_SUPABASE_URL
43
+ valueFrom:
44
+ configMapKeyRef:
45
+ name: {{projectName}}-config
46
+ key: SUPABASE_URL
47
+ - name: NEXT_PUBLIC_SUPABASE_ANON_KEY
48
+ valueFrom:
49
+ secretKeyRef:
50
+ name: {{projectName}}-secrets
51
+ key: SUPABASE_ANON_KEY
52
+ - name: SUPABASE_SERVICE_ROLE_KEY
53
+ valueFrom:
54
+ secretKeyRef:
55
+ name: {{projectName}}-secrets
56
+ key: SUPABASE_SERVICE_ROLE_KEY
57
+ - name: NEXT_PUBLIC_APP_URL
58
+ valueFrom:
59
+ configMapKeyRef:
60
+ name: {{projectName}}-config
61
+ key: APP_URL
62
+ resources:
63
+ requests:
64
+ cpu: 100m
65
+ memory: 256Mi
66
+ limits:
67
+ cpu: 500m
68
+ memory: 512Mi
69
+ livenessProbe:
70
+ httpGet:
71
+ path: /api/health
72
+ port: http
73
+ initialDelaySeconds: 30
74
+ periodSeconds: 10
75
+ timeoutSeconds: 5
76
+ failureThreshold: 3
77
+ readinessProbe:
78
+ httpGet:
79
+ path: /api/health
80
+ port: http
81
+ initialDelaySeconds: 5
82
+ periodSeconds: 5
83
+ timeoutSeconds: 3
84
+ failureThreshold: 3
85
+ startupProbe:
86
+ httpGet:
87
+ path: /api/health
88
+ port: http
89
+ initialDelaySeconds: 10
90
+ periodSeconds: 5
91
+ failureThreshold: 30
92
+ securityContext:
93
+ allowPrivilegeEscalation: false
94
+ readOnlyRootFilesystem: true
95
+ capabilities:
96
+ drop:
97
+ - ALL
98
+ volumeMounts:
99
+ - name: tmp
100
+ mountPath: /tmp
101
+ - name: nextjs-cache
102
+ mountPath: /app/.next/cache
103
+ volumes:
104
+ - name: tmp
105
+ emptyDir: {}
106
+ - name: nextjs-cache
107
+ emptyDir: {}
108
+ affinity:
109
+ podAntiAffinity:
110
+ preferredDuringSchedulingIgnoredDuringExecution:
111
+ - weight: 100
112
+ podAffinityTerm:
113
+ labelSelector:
114
+ matchLabels:
115
+ app.kubernetes.io/name: {{projectName}}
116
+ topologyKey: kubernetes.io/hostname
117
+ topologySpreadConstraints:
118
+ - maxSkew: 1
119
+ topologyKey: topology.kubernetes.io/zone
120
+ whenUnsatisfiable: ScheduleAnyway
121
+ labelSelector:
122
+ matchLabels:
123
+ app.kubernetes.io/name: {{projectName}}
@@ -0,0 +1,45 @@
1
+ # {{titleCaseName}} - Horizontal Pod Autoscaler
2
+ apiVersion: autoscaling/v2
3
+ kind: HorizontalPodAutoscaler
4
+ metadata:
5
+ name: {{projectName}}
6
+ namespace: {{projectName}}
7
+ labels:
8
+ app.kubernetes.io/name: {{projectName}}
9
+ spec:
10
+ scaleTargetRef:
11
+ apiVersion: apps/v1
12
+ kind: Deployment
13
+ name: {{projectName}}
14
+ minReplicas: 2
15
+ maxReplicas: 10
16
+ metrics:
17
+ - type: Resource
18
+ resource:
19
+ name: cpu
20
+ target:
21
+ type: Utilization
22
+ averageUtilization: 70
23
+ - type: Resource
24
+ resource:
25
+ name: memory
26
+ target:
27
+ type: Utilization
28
+ averageUtilization: 80
29
+ behavior:
30
+ scaleDown:
31
+ stabilizationWindowSeconds: 300
32
+ policies:
33
+ - type: Percent
34
+ value: 50
35
+ periodSeconds: 60
36
+ scaleUp:
37
+ stabilizationWindowSeconds: 0
38
+ policies:
39
+ - type: Percent
40
+ value: 100
41
+ periodSeconds: 15
42
+ - type: Pods
43
+ value: 4
44
+ periodSeconds: 15
45
+ selectPolicy: Max
@@ -0,0 +1,31 @@
1
+ # {{titleCaseName}} - Kubernetes Ingress
2
+ apiVersion: networking.k8s.io/v1
3
+ kind: Ingress
4
+ metadata:
5
+ name: {{projectName}}
6
+ namespace: {{projectName}}
7
+ labels:
8
+ app.kubernetes.io/name: {{projectName}}
9
+ annotations:
10
+ kubernetes.io/ingress.class: nginx
11
+ cert-manager.io/cluster-issuer: letsencrypt-prod
12
+ nginx.ingress.kubernetes.io/ssl-redirect: "true"
13
+ nginx.ingress.kubernetes.io/proxy-body-size: "50m"
14
+ nginx.ingress.kubernetes.io/proxy-read-timeout: "60"
15
+ nginx.ingress.kubernetes.io/proxy-send-timeout: "60"
16
+ spec:
17
+ tls:
18
+ - hosts:
19
+ - "{{projectName}}.example.com"
20
+ secretName: {{projectName}}-tls
21
+ rules:
22
+ - host: "{{projectName}}.example.com"
23
+ http:
24
+ paths:
25
+ - path: /
26
+ pathType: Prefix
27
+ backend:
28
+ service:
29
+ name: {{projectName}}
30
+ port:
31
+ name: http
@@ -0,0 +1,25 @@
1
+ # {{titleCaseName}} - Kustomize Base
2
+ apiVersion: kustomize.config.k8s.io/v1beta1
3
+ kind: Kustomization
4
+
5
+ metadata:
6
+ name: {{projectName}}-base
7
+
8
+ namespace: {{projectName}}
9
+
10
+ resources:
11
+ - namespace.yaml
12
+ - serviceaccount.yaml
13
+ - configmap.yaml
14
+ - secret.yaml
15
+ - deployment.yaml
16
+ - service.yaml
17
+ - ingress.yaml
18
+ - hpa.yaml
19
+ - pdb.yaml
20
+ - networkpolicy.yaml
21
+
22
+ commonLabels:
23
+ app.kubernetes.io/name: {{projectName}}
24
+ app.kubernetes.io/version: "1.0.0"
25
+ app.kubernetes.io/managed-by: kustomize
@@ -0,0 +1,8 @@
1
+ # {{titleCaseName}} - Kubernetes Namespace
2
+ apiVersion: v1
3
+ kind: Namespace
4
+ metadata:
5
+ name: {{projectName}}
6
+ labels:
7
+ app.kubernetes.io/name: {{projectName}}
8
+ app.kubernetes.io/managed-by: kustomize
@@ -0,0 +1,48 @@
1
+ # {{titleCaseName}} - Network Policy
2
+ apiVersion: networking.k8s.io/v1
3
+ kind: NetworkPolicy
4
+ metadata:
5
+ name: {{projectName}}
6
+ namespace: {{projectName}}
7
+ labels:
8
+ app.kubernetes.io/name: {{projectName}}
9
+ spec:
10
+ podSelector:
11
+ matchLabels:
12
+ app.kubernetes.io/name: {{projectName}}
13
+ policyTypes:
14
+ - Ingress
15
+ - Egress
16
+ ingress:
17
+ # Allow traffic from ingress controller
18
+ - from:
19
+ - namespaceSelector:
20
+ matchLabels:
21
+ name: ingress-nginx
22
+ ports:
23
+ - protocol: TCP
24
+ port: 3000
25
+ # Allow traffic from monitoring
26
+ - from:
27
+ - namespaceSelector:
28
+ matchLabels:
29
+ name: monitoring
30
+ ports:
31
+ - protocol: TCP
32
+ port: 3000
33
+ egress:
34
+ # Allow DNS
35
+ - to:
36
+ - namespaceSelector: {}
37
+ ports:
38
+ - protocol: UDP
39
+ port: 53
40
+ - protocol: TCP
41
+ port: 53
42
+ # Allow HTTPS (Supabase, external APIs)
43
+ - to:
44
+ - ipBlock:
45
+ cidr: 0.0.0.0/0
46
+ ports:
47
+ - protocol: TCP
48
+ port: 443
@@ -0,0 +1,14 @@
1
+ # {{titleCaseName}} - Pod Disruption Budget
2
+ apiVersion: policy/v1
3
+ kind: PodDisruptionBudget
4
+ metadata:
5
+ name: {{projectName}}
6
+ namespace: {{projectName}}
7
+ labels:
8
+ app.kubernetes.io/name: {{projectName}}
9
+ spec:
10
+ minAvailable: 1
11
+ selector:
12
+ matchLabels:
13
+ app.kubernetes.io/name: {{projectName}}
14
+ app.kubernetes.io/component: web
@@ -0,0 +1,17 @@
1
+ # {{titleCaseName}} - Kubernetes Secret Template
2
+ # NOTE: This is a template. In production, use sealed-secrets or external-secrets
3
+ apiVersion: v1
4
+ kind: Secret
5
+ metadata:
6
+ name: {{projectName}}-secrets
7
+ namespace: {{projectName}}
8
+ labels:
9
+ app.kubernetes.io/name: {{projectName}}
10
+ type: Opaque
11
+ stringData:
12
+ # Replace with actual values or use sealed-secrets/external-secrets
13
+ SUPABASE_ANON_KEY: "your-supabase-anon-key"
14
+ SUPABASE_SERVICE_ROLE_KEY: "your-supabase-service-role-key"
15
+ STRIPE_SECRET_KEY: "your-stripe-secret-key"
16
+ STRIPE_WEBHOOK_SECRET: "your-stripe-webhook-secret"
17
+ OPENAI_API_KEY: "your-openai-api-key"
@@ -0,0 +1,19 @@
1
+ # {{titleCaseName}} - Kubernetes Service
2
+ apiVersion: v1
3
+ kind: Service
4
+ metadata:
5
+ name: {{projectName}}
6
+ namespace: {{projectName}}
7
+ labels:
8
+ app.kubernetes.io/name: {{projectName}}
9
+ app.kubernetes.io/component: web
10
+ spec:
11
+ type: ClusterIP
12
+ ports:
13
+ - name: http
14
+ port: 80
15
+ targetPort: http
16
+ protocol: TCP
17
+ selector:
18
+ app.kubernetes.io/name: {{projectName}}
19
+ app.kubernetes.io/component: web
@@ -0,0 +1,9 @@
1
+ # {{titleCaseName}} - Kubernetes Service Account
2
+ apiVersion: v1
3
+ kind: ServiceAccount
4
+ metadata:
5
+ name: {{projectName}}
6
+ namespace: {{projectName}}
7
+ labels:
8
+ app.kubernetes.io/name: {{projectName}}
9
+ automountServiceAccountToken: false
@@ -0,0 +1,92 @@
1
+ # {{titleCaseName}} - Production Overlay
2
+ apiVersion: kustomize.config.k8s.io/v1beta1
3
+ kind: Kustomization
4
+
5
+ metadata:
6
+ name: {{projectName}}-production
7
+
8
+ namespace: {{projectName}}-production
9
+
10
+ resources:
11
+ - ../../base/template
12
+
13
+ nameSuffix: ""
14
+
15
+ commonLabels:
16
+ app.kubernetes.io/environment: production
17
+
18
+ # Production-specific image
19
+ images:
20
+ - name: {{projectName}}
21
+ newName: ghcr.io/your-org/{{projectName}}
22
+ newTag: production
23
+
24
+ # Production patches
25
+ patches:
26
+ # Increase replicas
27
+ - target:
28
+ kind: Deployment
29
+ name: {{projectName}}
30
+ patch: |-
31
+ - op: replace
32
+ path: /spec/replicas
33
+ value: 3
34
+
35
+ # Increase resources
36
+ - target:
37
+ kind: Deployment
38
+ name: {{projectName}}
39
+ patch: |-
40
+ - op: replace
41
+ path: /spec/template/spec/containers/0/resources
42
+ value:
43
+ requests:
44
+ cpu: 250m
45
+ memory: 512Mi
46
+ limits:
47
+ cpu: 1000m
48
+ memory: 1Gi
49
+
50
+ # Update HPA for production
51
+ - target:
52
+ kind: HorizontalPodAutoscaler
53
+ name: {{projectName}}
54
+ patch: |-
55
+ - op: replace
56
+ path: /spec/minReplicas
57
+ value: 3
58
+ - op: replace
59
+ path: /spec/maxReplicas
60
+ value: 20
61
+
62
+ # Update PDB for production
63
+ - target:
64
+ kind: PodDisruptionBudget
65
+ name: {{projectName}}
66
+ patch: |-
67
+ - op: replace
68
+ path: /spec/minAvailable
69
+ value: 2
70
+
71
+ # Update ingress host for production
72
+ - target:
73
+ kind: Ingress
74
+ name: {{projectName}}
75
+ patch: |-
76
+ - op: replace
77
+ path: /spec/tls/0/hosts/0
78
+ value: "{{projectName}}.com"
79
+ - op: replace
80
+ path: /spec/tls/0/secretName
81
+ value: {{projectName}}-production-tls
82
+ - op: replace
83
+ path: /spec/rules/0/host
84
+ value: "{{projectName}}.com"
85
+
86
+ # Production ConfigMap overrides
87
+ configMapGenerator:
88
+ - name: {{projectName}}-config
89
+ behavior: merge
90
+ literals:
91
+ - APP_URL=https://{{projectName}}.com
92
+ - LOG_LEVEL=warn
@@ -0,0 +1,156 @@
1
+ # {{titleCaseName}} - AWS Infrastructure
2
+
3
+ Terraform configuration for deploying {{titleCaseName}} to AWS with Vercel frontend.
4
+
5
+ ## Architecture
6
+
7
+ ```
8
+ ┌─────────────────────────────────────────────────────────────┐
9
+ │ Internet │
10
+ └─────────────────────────────────────────────────────────────┘
11
+
12
+ ┌───────────────┼───────────────┐
13
+ ▼ ▼ ▼
14
+ ┌──────────┐ ┌───────────┐ ┌───────────┐
15
+ │ Vercel │ │ CloudFront│ │ Supabase │
16
+ │ (App) │ │ (CDN) │ │ (Auth/DB) │
17
+ └──────────┘ └───────────┘ └───────────┘
18
+
19
+
20
+ ┌───────────┐
21
+ │ S3 │
22
+ │ (Storage) │
23
+ └───────────┘
24
+
25
+ ┌───────────┐ ┌───────────┐ ┌───────────┐
26
+ │ SQS │ │ Secrets │ │CloudWatch │
27
+ │ (Queue) │ │ Manager │ │ (Logs) │
28
+ └───────────┘ └───────────┘ └───────────┘
29
+ ```
30
+
31
+ ## Prerequisites
32
+
33
+ 1. **AWS Account** with appropriate permissions
34
+ 2. **Vercel Account** with API token
35
+ 3. **Supabase Project** created
36
+ 4. **Terraform** >= 1.0 installed
37
+ 5. **AWS CLI** configured with credentials
38
+
39
+ ## Quick Start
40
+
41
+ 1. **Initialize Terraform:**
42
+ ```bash
43
+ terraform init
44
+ ```
45
+
46
+ 2. **Create variables file:**
47
+ ```bash
48
+ cp terraform.tfvars.example terraform.tfvars
49
+ ```
50
+
51
+ 3. **Update variables:**
52
+ Edit `terraform.tfvars` with your values.
53
+
54
+ 4. **Plan changes:**
55
+ ```bash
56
+ terraform plan
57
+ ```
58
+
59
+ 5. **Apply changes:**
60
+ ```bash
61
+ terraform apply
62
+ ```
63
+
64
+ ## Resources Created
65
+
66
+ | Resource | Purpose |
67
+ |----------|---------|
68
+ | Vercel Project | Frontend hosting with automatic deployments |
69
+ | S3 Bucket | File storage with versioning and encryption |
70
+ | CloudFront Distribution | CDN for S3 content |
71
+ | SQS Queues | Background job processing (main + DLQ) |
72
+ | Secrets Manager | Secure storage for API keys |
73
+ | IAM Role | Execution role for Lambda/ECS |
74
+ | CloudWatch Log Group | Centralized logging |
75
+ | SNS Topic | Alert notifications |
76
+
77
+ ## Environments
78
+
79
+ ### Staging
80
+ ```bash
81
+ terraform workspace new staging
82
+ terraform apply -var="environment=staging"
83
+ ```
84
+
85
+ ### Production
86
+ ```bash
87
+ terraform workspace new production
88
+ terraform apply -var="environment=production"
89
+ ```
90
+
91
+ ## Remote State (Recommended for Teams)
92
+
93
+ 1. Create S3 bucket and DynamoDB table:
94
+ ```bash
95
+ aws s3 mb s3://{{projectName}}-terraform-state
96
+ aws dynamodb create-table \
97
+ --table-name {{projectName}}-terraform-locks \
98
+ --attribute-definitions AttributeName=LockID,AttributeType=S \
99
+ --key-schema AttributeName=LockID,KeyType=HASH \
100
+ --billing-mode PAY_PER_REQUEST
101
+ ```
102
+
103
+ 2. Uncomment backend configuration in `main.tf`
104
+
105
+ 3. Re-initialize:
106
+ ```bash
107
+ terraform init -migrate-state
108
+ ```
109
+
110
+ ## Security Notes
111
+
112
+ - All S3 buckets have public access blocked
113
+ - Encryption enabled at rest (AES256)
114
+ - Secrets stored in Secrets Manager
115
+ - IAM follows least-privilege principle
116
+ - CloudFront uses HTTPS only
117
+
118
+ ## Cost Estimation
119
+
120
+ | Resource | Estimated Monthly Cost |
121
+ |----------|----------------------|
122
+ | Vercel | Free - $20 (Hobby/Pro) |
123
+ | S3 | ~$5 (50GB storage) |
124
+ | CloudFront | ~$10 (100GB transfer) |
125
+ | SQS | ~$1 (1M requests) |
126
+ | Secrets Manager | ~$1 (4 secrets) |
127
+ | CloudWatch | ~$5 (10GB logs) |
128
+ | **Total** | **~$22-42/month** |
129
+
130
+ ## Cleanup
131
+
132
+ ```bash
133
+ terraform destroy
134
+ ```
135
+
136
+ ## Troubleshooting
137
+
138
+ ### Vercel API Token
139
+ Generate at: https://vercel.com/account/tokens
140
+
141
+ ### AWS Credentials
142
+ ```bash
143
+ aws configure
144
+ # Or use environment variables:
145
+ export AWS_ACCESS_KEY_ID="xxx"
146
+ export AWS_SECRET_ACCESS_KEY="xxx"
147
+ ```
148
+
149
+ ### State Lock Issues
150
+ ```bash
151
+ terraform force-unlock LOCK_ID
152
+ ```
153
+
154
+ ## License
155
+
156
+ MIT - Built with DLL Platform