@digilogiclabs/create-saas-app 2.9.1 → 2.10.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 (323) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/generators/template-generator.d.ts.map +1 -1
  3. package/dist/generators/template-generator.js +6 -3
  4. package/dist/generators/template-generator.js.map +1 -1
  5. package/dist/templates/shared/auth/supabase/web/src/middleware.ts +63 -0
  6. package/dist/templates/shared/database/supabase/web/src/lib/supabase/server.ts +3 -1
  7. package/dist/templates/shared/design/web/src/config/design.config.ts +14 -14
  8. package/dist/templates/shared/landing/web/src/components/LandingPage.tsx +0 -3
  9. package/dist/templates/shared/security/web/src/lib/api-security.ts +2 -2
  10. package/dist/templates/web/ai-platform/template/next.config.js +14 -14
  11. package/dist/templates/web/ai-platform/template/package.json +11 -22
  12. package/dist/templates/web/ai-platform/template/postcss.config.mjs +8 -0
  13. package/dist/templates/web/ai-platform/template/src/app/chat/page.tsx +234 -235
  14. package/dist/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -142
  15. package/dist/templates/web/ai-platform/template/src/app/error.tsx +13 -13
  16. package/dist/templates/web/ai-platform/template/src/app/globals.css +97 -34
  17. package/dist/templates/web/ai-platform/template/src/app/layout.tsx +3 -0
  18. package/dist/templates/web/ai-platform/template/src/app/loading.tsx +22 -22
  19. package/dist/templates/web/ai-platform/template/src/app/page.tsx +248 -154
  20. package/dist/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  21. package/dist/templates/web/base/template/next.config.js +14 -15
  22. package/dist/templates/web/base/template/package.json +16 -31
  23. package/dist/templates/web/base/template/postcss.config.mjs +8 -0
  24. package/dist/templates/web/base/template/src/app/error.tsx +97 -97
  25. package/dist/templates/web/base/template/src/app/globals.css +87 -148
  26. package/dist/templates/web/base/template/src/app/layout.tsx +4 -1
  27. package/dist/templates/web/base/template/src/app/loading.tsx +52 -52
  28. package/dist/templates/web/base/template/tsconfig.json +27 -33
  29. package/dist/templates/web/iot-dashboard/template/next.config.js +14 -14
  30. package/dist/templates/web/iot-dashboard/template/package.json +12 -16
  31. package/dist/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  32. package/dist/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  33. package/dist/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  34. package/dist/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  35. package/dist/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  36. package/dist/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  37. package/dist/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  38. package/dist/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  39. package/dist/templates/web/marketplace/template/next.config.js +14 -14
  40. package/dist/templates/web/marketplace/template/package.json +11 -18
  41. package/dist/templates/web/marketplace/template/postcss.config.mjs +8 -0
  42. package/dist/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  43. package/dist/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  44. package/dist/templates/web/marketplace/template/src/app/error.tsx +7 -7
  45. package/dist/templates/web/marketplace/template/src/app/globals.css +97 -20
  46. package/dist/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  47. package/dist/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  48. package/dist/templates/web/marketplace/template/src/app/page.tsx +370 -169
  49. package/dist/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  50. package/dist/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  51. package/dist/templates/web/micro-saas/template/next.config.js +14 -14
  52. package/dist/templates/web/micro-saas/template/package.json +9 -8
  53. package/dist/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  54. package/dist/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  55. package/dist/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  56. package/dist/templates/web/micro-saas/template/src/app/globals.css +97 -20
  57. package/dist/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  58. package/dist/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  59. package/dist/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  60. package/dist/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  61. package/dist/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  62. package/dist/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  63. package/dist/templates/web/ui-auth/template/next.config.js +14 -12
  64. package/dist/templates/web/ui-auth/template/package.json +16 -26
  65. package/dist/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  66. package/dist/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  67. package/dist/templates/web/ui-auth/template/src/app/globals.css +85 -84
  68. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  69. package/dist/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  70. package/dist/templates/web/ui-auth/template/tsconfig.json +27 -33
  71. package/dist/templates/web/ui-auth-ai/template/next.config.js +15 -13
  72. package/dist/templates/web/ui-auth-ai/template/package.json +25 -21
  73. package/dist/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  74. package/dist/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  75. package/dist/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  76. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  77. package/dist/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  78. package/dist/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  79. package/dist/templates/web/ui-auth-payments/template/next.config.js +14 -12
  80. package/dist/templates/web/ui-auth-payments/template/package.json +16 -29
  81. package/dist/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  82. package/dist/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  83. package/dist/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  84. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  85. package/dist/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  86. package/dist/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  87. package/dist/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  88. package/dist/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  89. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  90. package/dist/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  91. package/dist/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  92. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  93. package/dist/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  94. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  95. package/dist/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  96. package/dist/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  97. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  98. package/dist/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  99. package/dist/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  100. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  101. package/dist/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  102. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  103. package/dist/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  104. package/dist/templates/web/ui-auth-payments-video/template/package.json +17 -30
  105. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  106. package/dist/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  107. package/dist/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  108. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  109. package/dist/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  110. package/dist/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  111. package/dist/templates/web/ui-only/template/next.config.js +14 -12
  112. package/dist/templates/web/ui-only/template/package.json +15 -25
  113. package/dist/templates/web/ui-only/template/postcss.config.mjs +8 -0
  114. package/dist/templates/web/ui-only/template/src/app/error.tsx +67 -67
  115. package/dist/templates/web/ui-only/template/src/app/globals.css +85 -31
  116. package/dist/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  117. package/dist/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  118. package/dist/templates/web/ui-only/template/tsconfig.json +27 -33
  119. package/package.json +1 -1
  120. package/src/templates/shared/auth/supabase/web/src/middleware.ts +63 -0
  121. package/src/templates/shared/database/supabase/web/src/lib/supabase/server.ts +3 -1
  122. package/src/templates/shared/design/web/src/config/design.config.ts +14 -14
  123. package/src/templates/shared/landing/web/src/components/LandingPage.tsx +0 -3
  124. package/src/templates/shared/security/web/src/lib/api-security.ts +2 -2
  125. package/src/templates/web/ai-platform/template/next.config.js +14 -14
  126. package/src/templates/web/ai-platform/template/package.json +11 -22
  127. package/src/templates/web/ai-platform/template/postcss.config.mjs +8 -0
  128. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +234 -235
  129. package/src/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -142
  130. package/src/templates/web/ai-platform/template/src/app/error.tsx +13 -13
  131. package/src/templates/web/ai-platform/template/src/app/globals.css +97 -34
  132. package/src/templates/web/ai-platform/template/src/app/layout.tsx +3 -0
  133. package/src/templates/web/ai-platform/template/src/app/loading.tsx +22 -22
  134. package/src/templates/web/ai-platform/template/src/app/page.tsx +248 -154
  135. package/src/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  136. package/src/templates/web/base/template/next.config.js +14 -15
  137. package/src/templates/web/base/template/package.json +16 -31
  138. package/src/templates/web/base/template/postcss.config.mjs +8 -0
  139. package/src/templates/web/base/template/src/app/error.tsx +97 -97
  140. package/src/templates/web/base/template/src/app/globals.css +87 -148
  141. package/src/templates/web/base/template/src/app/layout.tsx +4 -1
  142. package/src/templates/web/base/template/src/app/loading.tsx +52 -52
  143. package/src/templates/web/base/template/tsconfig.json +27 -33
  144. package/src/templates/web/iot-dashboard/template/next.config.js +14 -14
  145. package/src/templates/web/iot-dashboard/template/package.json +12 -16
  146. package/src/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  147. package/src/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  148. package/src/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  149. package/src/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  150. package/src/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  151. package/src/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  152. package/src/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  153. package/src/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  154. package/src/templates/web/marketplace/template/next.config.js +14 -14
  155. package/src/templates/web/marketplace/template/package.json +11 -18
  156. package/src/templates/web/marketplace/template/postcss.config.mjs +8 -0
  157. package/src/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  158. package/src/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  159. package/src/templates/web/marketplace/template/src/app/error.tsx +7 -7
  160. package/src/templates/web/marketplace/template/src/app/globals.css +97 -20
  161. package/src/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  162. package/src/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  163. package/src/templates/web/marketplace/template/src/app/page.tsx +370 -169
  164. package/src/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  165. package/src/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  166. package/src/templates/web/micro-saas/template/next.config.js +14 -14
  167. package/src/templates/web/micro-saas/template/package.json +9 -8
  168. package/src/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  169. package/src/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  170. package/src/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  171. package/src/templates/web/micro-saas/template/src/app/globals.css +97 -20
  172. package/src/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  173. package/src/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  174. package/src/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  175. package/src/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  176. package/src/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  177. package/src/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  178. package/src/templates/web/ui-auth/template/next.config.js +14 -12
  179. package/src/templates/web/ui-auth/template/package.json +16 -26
  180. package/src/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  181. package/src/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  182. package/src/templates/web/ui-auth/template/src/app/globals.css +85 -84
  183. package/src/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  184. package/src/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  185. package/src/templates/web/ui-auth/template/tsconfig.json +27 -33
  186. package/src/templates/web/ui-auth-ai/template/next.config.js +15 -13
  187. package/src/templates/web/ui-auth-ai/template/package.json +25 -21
  188. package/src/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  189. package/src/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  190. package/src/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  191. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  192. package/src/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  193. package/src/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  194. package/src/templates/web/ui-auth-payments/template/next.config.js +14 -12
  195. package/src/templates/web/ui-auth-payments/template/package.json +16 -29
  196. package/src/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  197. package/src/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  198. package/src/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  199. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  200. package/src/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  201. package/src/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  202. package/src/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  203. package/src/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  204. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  205. package/src/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  206. package/src/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  207. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  208. package/src/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  209. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  210. package/src/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  211. package/src/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  212. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  213. package/src/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  214. package/src/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  215. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  216. package/src/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  217. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  218. package/src/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  219. package/src/templates/web/ui-auth-payments-video/template/package.json +17 -30
  220. package/src/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  221. package/src/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  222. package/src/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  223. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  224. package/src/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  225. package/src/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  226. package/src/templates/web/ui-only/template/next.config.js +14 -12
  227. package/src/templates/web/ui-only/template/package.json +15 -25
  228. package/src/templates/web/ui-only/template/postcss.config.mjs +8 -0
  229. package/src/templates/web/ui-only/template/src/app/error.tsx +67 -67
  230. package/src/templates/web/ui-only/template/src/app/globals.css +85 -31
  231. package/src/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  232. package/src/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  233. package/src/templates/web/ui-only/template/tsconfig.json +27 -33
  234. package/dist/templates/web/ai-platform/template/middleware.ts +0 -55
  235. package/dist/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  236. package/dist/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  237. package/dist/templates/web/base/template/postcss.config.js +0 -7
  238. package/dist/templates/web/base/template/tailwind.config.js +0 -77
  239. package/dist/templates/web/iot-dashboard/template/middleware.ts +0 -56
  240. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  241. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  242. package/dist/templates/web/marketplace/template/middleware.ts +0 -56
  243. package/dist/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  244. package/dist/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  245. package/dist/templates/web/micro-saas/template/middleware.ts +0 -53
  246. package/dist/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  247. package/dist/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  248. package/dist/templates/web/ui-auth/template/.claude +0 -21
  249. package/dist/templates/web/ui-auth/template/context.md +0 -105
  250. package/dist/templates/web/ui-auth/template/postcss.config.js +0 -7
  251. package/dist/templates/web/ui-auth/template/tailwind.config.js +0 -77
  252. package/dist/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  253. package/dist/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  254. package/dist/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  255. package/dist/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  256. package/dist/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  257. package/dist/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  258. package/dist/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  259. package/dist/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  260. package/dist/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  261. package/dist/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  262. package/dist/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  263. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  264. package/dist/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  265. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  266. package/dist/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  267. package/dist/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  268. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  269. package/dist/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  270. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  271. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  272. package/dist/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  273. package/dist/templates/web/ui-only/template/postcss.config.js +0 -7
  274. package/dist/templates/web/ui-only/template/tailwind.config.js +0 -77
  275. package/src/templates/web/ai-platform/template/middleware.ts +0 -55
  276. package/src/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  277. package/src/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  278. package/src/templates/web/base/template/postcss.config.js +0 -7
  279. package/src/templates/web/base/template/tailwind.config.js +0 -77
  280. package/src/templates/web/iot-dashboard/template/middleware.ts +0 -56
  281. package/src/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  282. package/src/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  283. package/src/templates/web/marketplace/template/middleware.ts +0 -56
  284. package/src/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  285. package/src/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  286. package/src/templates/web/micro-saas/template/middleware.ts +0 -53
  287. package/src/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  288. package/src/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  289. package/src/templates/web/ui-auth/template/.claude +0 -21
  290. package/src/templates/web/ui-auth/template/context.md +0 -105
  291. package/src/templates/web/ui-auth/template/postcss.config.js +0 -7
  292. package/src/templates/web/ui-auth/template/tailwind.config.js +0 -77
  293. package/src/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  294. package/src/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  295. package/src/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  296. package/src/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  297. package/src/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  298. package/src/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  299. package/src/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  300. package/src/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  301. package/src/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  302. package/src/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  303. package/src/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  304. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  305. package/src/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  306. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  307. package/src/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  308. package/src/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  309. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  310. package/src/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  311. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  312. package/src/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  313. package/src/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  314. package/src/templates/web/ui-only/template/postcss.config.js +0 -7
  315. package/src/templates/web/ui-only/template/tailwind.config.js +0 -77
  316. /package/dist/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  317. /package/dist/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  318. /package/dist/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  319. /package/dist/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
  320. /package/src/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  321. /package/src/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  322. /package/src/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  323. /package/src/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
@@ -1,108 +1,122 @@
1
- 'use client'
2
-
3
- import { useState } from 'react'
4
- import { useAuth } from '@digilogiclabs/app-sdk'
5
- import { Button, Card } from '@digilogiclabs/saas-factory-ui'
6
- import { useRouter } from 'next/navigation'
7
- import Link from 'next/link'
8
-
9
- export default function SignupPage() {
10
- const [email, setEmail] = useState('')
11
- const [password, setPassword] = useState('')
12
- const [confirmPassword, setConfirmPassword] = useState('')
13
- const [error, setError] = useState('')
14
- const { signUp, loading } = useAuth()
15
- const router = useRouter()
16
-
17
- const handleSubmit = async (e: React.FormEvent) => {
18
- e.preventDefault()
19
- setError('')
20
-
21
- if (password !== confirmPassword) {
22
- setError('Passwords do not match')
23
- return
24
- }
25
-
26
- try {
27
- await signUp(email, password)
28
- router.push('/dashboard')
29
- } catch (err) {
30
- setError(err instanceof Error ? err.message : 'Failed to sign up')
31
- }
32
- }
33
-
34
- return (
35
- <div className="min-h-screen flex items-center justify-center bg-gray-50 dark:bg-gray-900 px-4">
36
- <Card className="w-full max-w-md p-8">
37
- <div className="text-center mb-8">
38
- <h1 className="text-2xl font-bold text-gray-900 dark:text-white">Get Started</h1>
39
- <p className="text-gray-600 dark:text-gray-300 mt-2">Create your free account</p>
40
- </div>
41
-
42
- {error && (
43
- <div className="bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400 p-3 rounded-lg mb-6 text-sm">
44
- {error}
45
- </div>
46
- )}
47
-
48
- <form onSubmit={handleSubmit} className="space-y-4">
49
- <div>
50
- <label htmlFor="email" className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">
51
- Email
52
- </label>
53
- <input
54
- id="email"
55
- type="email"
56
- value={email}
57
- onChange={(e) => setEmail(e.target.value)}
58
- className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-white"
59
- required
60
- />
61
- </div>
62
-
63
- <div>
64
- <label htmlFor="password" className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">
65
- Password
66
- </label>
67
- <input
68
- id="password"
69
- type="password"
70
- value={password}
71
- onChange={(e) => setPassword(e.target.value)}
72
- className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-white"
73
- required
74
- minLength={8}
75
- />
76
- </div>
77
-
78
- <div>
79
- <label htmlFor="confirmPassword" className="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">
80
- Confirm Password
81
- </label>
82
- <input
83
- id="confirmPassword"
84
- type="password"
85
- value={confirmPassword}
86
- onChange={(e) => setConfirmPassword(e.target.value)}
87
- className="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 dark:bg-gray-800 dark:text-white"
88
- required
89
- />
90
- </div>
91
-
92
- <Button type="submit" className="w-full" disabled={loading}>
93
- {loading ? 'Creating account...' : 'Create Account'}
94
- </Button>
95
- </form>
96
-
97
- <div className="mt-6 text-center">
98
- <p className="text-gray-600 dark:text-gray-300 text-sm">
99
- Already have an account?{' '}
100
- <Link href="/login" className="text-blue-600 hover:underline">
101
- Sign in
102
- </Link>
103
- </p>
104
- </div>
105
- </Card>
106
- </div>
107
- )
108
- }
1
+ 'use client'
2
+
3
+ import { useState } from 'react'
4
+ import { useAuth } from '@digilogiclabs/app-sdk'
5
+ import { Button, Card, CardContent } from '@digilogiclabs/saas-factory-ui'
6
+ import { Zap } from 'lucide-react'
7
+ import { useRouter } from 'next/navigation'
8
+ import Link from 'next/link'
9
+
10
+ export default function SignupPage() {
11
+ const [email, setEmail] = useState('')
12
+ const [password, setPassword] = useState('')
13
+ const [confirmPassword, setConfirmPassword] = useState('')
14
+ const [error, setError] = useState('')
15
+ const { signUp, loading } = useAuth()
16
+ const router = useRouter()
17
+
18
+ const handleSubmit = async (e: React.FormEvent) => {
19
+ e.preventDefault()
20
+ setError('')
21
+ if (password !== confirmPassword) {
22
+ setError('Passwords do not match')
23
+ return
24
+ }
25
+ try {
26
+ await signUp(email, password)
27
+ router.push('/dashboard')
28
+ } catch (err) {
29
+ setError(err instanceof Error ? err.message : 'Failed to sign up')
30
+ }
31
+ }
32
+
33
+ return (
34
+ <div className="min-h-screen flex items-center justify-center bg-background px-4">
35
+ <div className="w-full max-w-md">
36
+ {/* Logo */}
37
+ <Link href="/" className="flex items-center justify-center gap-2 mb-8 hover:opacity-80 transition-opacity">
38
+ <div className="w-10 h-10 rounded-xl bg-gradient-to-br from-brand-from via-brand-via to-brand-to flex items-center justify-center">
39
+ <Zap className="w-5 h-5 text-white" />
40
+ </div>
41
+ <span className="font-bold text-xl">Micro Saas</span>
42
+ </Link>
43
+
44
+ <Card className="border border-border">
45
+ <CardContent className="p-8">
46
+ <div className="text-center mb-8">
47
+ <h1 className="text-2xl font-bold">Create your account</h1>
48
+ <p className="text-muted-foreground mt-2">Start your free trial today</p>
49
+ </div>
50
+
51
+ {error && (
52
+ <div className="bg-destructive/10 text-destructive p-3 rounded-lg mb-6 text-sm" role="alert">
53
+ {error}
54
+ </div>
55
+ )}
56
+
57
+ <form onSubmit={handleSubmit} className="space-y-4">
58
+ <div>
59
+ <label htmlFor="email" className="block text-sm font-medium mb-1.5">
60
+ Email
61
+ </label>
62
+ <input
63
+ id="email"
64
+ type="email"
65
+ value={email}
66
+ onChange={(e) => setEmail(e.target.value)}
67
+ className="w-full px-3 py-2.5 rounded-lg border border-input bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-shadow"
68
+ placeholder="you@example.com"
69
+ required
70
+ />
71
+ </div>
72
+
73
+ <div>
74
+ <label htmlFor="password" className="block text-sm font-medium mb-1.5">
75
+ Password
76
+ </label>
77
+ <input
78
+ id="password"
79
+ type="password"
80
+ value={password}
81
+ onChange={(e) => setPassword(e.target.value)}
82
+ className="w-full px-3 py-2.5 rounded-lg border border-input bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-shadow"
83
+ placeholder="Minimum 8 characters"
84
+ required
85
+ minLength={8}
86
+ />
87
+ </div>
88
+
89
+ <div>
90
+ <label htmlFor="confirmPassword" className="block text-sm font-medium mb-1.5">
91
+ Confirm Password
92
+ </label>
93
+ <input
94
+ id="confirmPassword"
95
+ type="password"
96
+ value={confirmPassword}
97
+ onChange={(e) => setConfirmPassword(e.target.value)}
98
+ className="w-full px-3 py-2.5 rounded-lg border border-input bg-background text-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent transition-shadow"
99
+ placeholder="Re-enter your password"
100
+ required
101
+ />
102
+ </div>
103
+
104
+ <Button type="submit" className="w-full h-11 text-base cursor-pointer hover:brightness-110 active:scale-[0.98] transition-all duration-200" disabled={loading}>
105
+ {loading ? 'Creating account...' : 'Create Account'}
106
+ </Button>
107
+ </form>
108
+
109
+ <div className="mt-6 text-center">
110
+ <p className="text-muted-foreground text-sm">
111
+ Already have an account?{' '}
112
+ <Link href="/login" className="text-primary hover:underline font-medium">
113
+ Sign in
114
+ </Link>
115
+ </p>
116
+ </div>
117
+ </CardContent>
118
+ </Card>
119
+ </div>
120
+ </div>
121
+ )
122
+ }
@@ -1,33 +1,32 @@
1
- import { redirect } from 'next/navigation'
2
- import { createClient } from './supabase/server'
3
-
4
- export interface AuthUser {
5
- id: string
6
- email: string | null
7
- name?: string | null
8
- }
9
-
10
- export async function getUser(): Promise<AuthUser | null> {
11
- const supabase = await createClient()
12
- const { data: { user }, error } = await supabase.auth.getUser()
13
-
14
- if (error || !user) {
15
- return null
16
- }
17
-
18
- return {
19
- id: user.id,
20
- email: user.email ?? null,
21
- name: user.user_metadata?.name ?? user.user_metadata?.full_name ?? null,
22
- }
23
- }
24
-
25
- export async function requireAuth(): Promise<AuthUser> {
26
- const user = await getUser()
27
-
28
- if (!user) {
29
- redirect('/login')
30
- }
31
-
32
- return user
33
- }
1
+ import { redirect } from 'next/navigation'
2
+ import { getSession, getUser as getSessionUser } from './auth-session'
3
+
4
+ export interface AuthUser {
5
+ id: string
6
+ email: string | null
7
+ name?: string | null
8
+ }
9
+
10
+ export async function getUser(): Promise<AuthUser | null> {
11
+ const user = await getSessionUser()
12
+
13
+ if (!user || !user.id) {
14
+ return null
15
+ }
16
+
17
+ return {
18
+ id: user.id,
19
+ email: user.email ?? null,
20
+ name: user.name ?? null,
21
+ }
22
+ }
23
+
24
+ export async function requireAuth(): Promise<AuthUser> {
25
+ const user = await getUser()
26
+
27
+ if (!user) {
28
+ redirect('/login')
29
+ }
30
+
31
+ return user
32
+ }
@@ -1,12 +1,14 @@
1
- /** @type {import('next').NextConfig} */
2
- const nextConfig = {
3
- images: {
4
- domains: ['localhost'],
5
- },
6
- env: {
7
- CUSTOM_KEY: process.env.CUSTOM_KEY,
8
- },
9
- }
10
-
11
- module.exports = nextConfig
12
-
1
+ /** @type {import('next').NextConfig} */
2
+ const nextConfig = {
3
+ reactStrictMode: true,
4
+ images: {
5
+ remotePatterns: [
6
+ {
7
+ protocol: 'https',
8
+ hostname: '**',
9
+ },
10
+ ],
11
+ },
12
+ }
13
+
14
+ module.exports = nextConfig
@@ -1,50 +1,40 @@
1
1
  {
2
2
  "name": "{{packageName}}",
3
3
  "version": "0.1.0",
4
- "description": "{{description}} (with Platform Core + UI + Auth)",
4
+ "description": "{{description}}",
5
5
  "private": true,
6
6
  "scripts": {
7
7
  "dev": "next dev",
8
8
  "build": "next build",
9
9
  "start": "next start",
10
10
  "lint": "next lint",
11
- "type-check": "tsc --noEmit",
12
- "test": "vitest",
13
- "test:ui": "vitest --ui",
14
- "test:run": "vitest run"
11
+ "type-check": "tsc --noEmit"
15
12
  },
16
13
  "dependencies": {
17
- "next": "^15.0.0",
14
+ "next": "^15.5.0",
18
15
  "react": "^19.0.0",
19
16
  "react-dom": "^19.0.0",
20
- "@digilogiclabs/platform-core": "^1.13.0",
21
- "@digilogiclabs/saas-factory-ui": "^1.4.0",
22
- "tailwindcss": "^3.3.0",
23
- "autoprefixer": "^10.4.16",
24
- "postcss": "^8.4.31",
25
- "clsx": "^2.0.0",
17
+ "@digilogiclabs/platform-core": "^1.14.0",
18
+ "@digilogiclabs/saas-factory-ui": "^1.8.1",
19
+ "tailwindcss": "^4.1.0",
20
+ "@tailwindcss/postcss": "^4.1.0",
21
+ "clsx": "^2.1.0",
26
22
  "class-variance-authority": "^0.7.0",
27
- "tailwind-merge": "^2.0.0",
28
- "next-themes": "^0.2.1",
29
- "lucide-react": "^0.542.0",
23
+ "tailwind-merge": "^2.6.0",
24
+ "next-themes": "^0.4.0",
25
+ "lucide-react": "^0.460.0",
30
26
  "zod": "^4.1.0"
31
27
  },
32
28
  "devDependencies": {
33
- "typescript": "^5.0.0",
34
- "@types/node": "^20.0.0",
29
+ "typescript": "^5.8.0",
30
+ "@types/node": "^22.0.0",
35
31
  "@types/react": "^19.0.0",
36
32
  "@types/react-dom": "^19.0.0",
37
- "eslint": "^8.0.0",
33
+ "eslint": "^9.0.0",
38
34
  "eslint-config-next": "^15.0.0",
39
- "prettier": "^3.0.0",
40
- "vitest": "^1.0.0",
41
- "@vitejs/plugin-react": "^4.0.0",
42
- "@testing-library/react": "^16.0.0",
43
- "@testing-library/jest-dom": "^6.0.0",
44
- "@testing-library/user-event": "^14.0.0",
45
- "jsdom": "^24.0.0"
35
+ "prettier": "^3.4.0"
46
36
  },
47
37
  "engines": {
48
- "node": ">=18.0.0"
38
+ "node": ">=20.0.0"
49
39
  }
50
40
  }
@@ -0,0 +1,8 @@
1
+ /** @type {import('postcss-load-config').Config} */
2
+ const config = {
3
+ plugins: {
4
+ '@tailwindcss/postcss': {},
5
+ },
6
+ };
7
+
8
+ export default config;
@@ -1,67 +1,67 @@
1
- 'use client'
2
-
3
- import { useEffect } from 'react'
4
- import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
- import { RefreshCw, Home, AlertCircle } from 'lucide-react'
6
-
7
- interface ErrorProps {
8
- error: Error & { digest?: string }
9
- reset: () => void
10
- }
11
-
12
- export default function Error({ error, reset }: ErrorProps) {
13
- useEffect(() => {
14
- // Log the error to an error reporting service
15
- console.error('Application error:', error)
16
- }, [error])
17
-
18
- return (
19
- <div className="min-h-screen bg-gray-50 dark:bg-gray-900 flex items-center justify-center p-4">
20
- <Card className="w-full max-w-md p-8 text-center">
21
- <div className="mb-6">
22
- <div className="mx-auto w-16 h-16 bg-red-100 dark:bg-red-900 rounded-full flex items-center justify-center mb-4">
23
- <AlertCircle className="h-8 w-8 text-red-600 dark:text-red-400" />
24
- </div>
25
- <h1 className="text-2xl font-bold text-gray-900 dark:text-white mb-2">
26
- Something went wrong
27
- </h1>
28
- <p className="text-gray-600 dark:text-gray-300 mb-6">
29
- We apologize for the inconvenience. Please try again or return to the home page.
30
- </p>
31
- </div>
32
-
33
- <div className="space-y-3">
34
- <Button
35
- onClick={reset}
36
- className="w-full"
37
- variant="default"
38
- >
39
- <RefreshCw className="w-4 h-4 mr-2" />
40
- Try Again
41
- </Button>
42
-
43
- <Button
44
- onClick={() => window.location.href = '/'}
45
- variant="outline"
46
- className="w-full"
47
- >
48
- <Home className="w-4 h-4 mr-2" />
49
- Go Home
50
- </Button>
51
- </div>
52
-
53
- {process.env.NODE_ENV === 'development' && (
54
- <details className="mt-6 text-left">
55
- <summary className="text-sm font-medium text-gray-500 cursor-pointer hover:text-gray-700 dark:hover:text-gray-300">
56
- Error Details (Development)
57
- </summary>
58
- <pre className="mt-2 text-xs bg-gray-100 dark:bg-gray-800 p-3 rounded-md overflow-auto">
59
- {error.message}
60
- {error.stack}
61
- </pre>
62
- </details>
63
- )}
64
- </Card>
65
- </div>
66
- )
67
- }
1
+ 'use client'
2
+
3
+ import { useEffect } from 'react'
4
+ import { Button, Card } from '@digilogiclabs/saas-factory-ui'
5
+ import { RefreshCw, Home, AlertCircle } from 'lucide-react'
6
+
7
+ interface ErrorProps {
8
+ error: Error & { digest?: string }
9
+ reset: () => void
10
+ }
11
+
12
+ export default function Error({ error, reset }: ErrorProps) {
13
+ useEffect(() => {
14
+ // Log the error to an error reporting service
15
+ console.error('Application error:', error)
16
+ }, [error])
17
+
18
+ return (
19
+ <div className="min-h-screen bg-background flex items-center justify-center p-4">
20
+ <Card className="w-full max-w-md p-8 text-center">
21
+ <div className="mb-6">
22
+ <div className="mx-auto w-16 h-16 bg-destructive/10 rounded-full flex items-center justify-center mb-4">
23
+ <AlertCircle className="h-8 w-8 text-destructive" />
24
+ </div>
25
+ <h1 className="text-2xl font-bold text-foreground mb-2">
26
+ Something went wrong
27
+ </h1>
28
+ <p className="text-muted-foreground mb-6">
29
+ We apologize for the inconvenience. Please try again or return to the home page.
30
+ </p>
31
+ </div>
32
+
33
+ <div className="space-y-3">
34
+ <Button
35
+ onClick={reset}
36
+ className="w-full"
37
+ variant="default"
38
+ >
39
+ <RefreshCw className="w-4 h-4 mr-2" />
40
+ Try Again
41
+ </Button>
42
+
43
+ <Button
44
+ onClick={() => window.location.href = '/'}
45
+ variant="outline"
46
+ className="w-full"
47
+ >
48
+ <Home className="w-4 h-4 mr-2" />
49
+ Go Home
50
+ </Button>
51
+ </div>
52
+
53
+ {process.env.NODE_ENV === 'development' && (
54
+ <details className="mt-6 text-left">
55
+ <summary className="text-sm font-medium text-muted-foreground cursor-pointer hover:text-foreground">
56
+ Error Details (Development)
57
+ </summary>
58
+ <pre className="mt-2 text-xs bg-muted text-muted-foreground p-3 rounded-md overflow-auto">
59
+ {error.message}
60
+ {error.stack}
61
+ </pre>
62
+ </details>
63
+ )}
64
+ </Card>
65
+ </div>
66
+ )
67
+ }