@digilogiclabs/create-saas-app 2.9.0 → 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 (343) 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 +249 -155
  20. package/dist/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +5 -2
  21. package/dist/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  22. package/dist/templates/web/base/template/next.config.js +14 -15
  23. package/dist/templates/web/base/template/package.json +16 -31
  24. package/dist/templates/web/base/template/postcss.config.mjs +8 -0
  25. package/dist/templates/web/base/template/src/app/error.tsx +97 -97
  26. package/dist/templates/web/base/template/src/app/globals.css +87 -148
  27. package/dist/templates/web/base/template/src/app/layout.tsx +4 -1
  28. package/dist/templates/web/base/template/src/app/loading.tsx +52 -52
  29. package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +5 -2
  30. package/dist/templates/web/base/template/tsconfig.json +27 -33
  31. package/dist/templates/web/iot-dashboard/template/next.config.js +14 -14
  32. package/dist/templates/web/iot-dashboard/template/package.json +12 -16
  33. package/dist/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  34. package/dist/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  35. package/dist/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  36. package/dist/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  37. package/dist/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  38. package/dist/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  39. package/dist/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  40. package/dist/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +5 -2
  41. package/dist/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  42. package/dist/templates/web/marketplace/template/next.config.js +14 -14
  43. package/dist/templates/web/marketplace/template/package.json +11 -18
  44. package/dist/templates/web/marketplace/template/postcss.config.mjs +8 -0
  45. package/dist/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  46. package/dist/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  47. package/dist/templates/web/marketplace/template/src/app/error.tsx +7 -7
  48. package/dist/templates/web/marketplace/template/src/app/globals.css +97 -20
  49. package/dist/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  50. package/dist/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  51. package/dist/templates/web/marketplace/template/src/app/page.tsx +370 -169
  52. package/dist/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  53. package/dist/templates/web/marketplace/template/src/components/providers/app-providers.tsx +5 -2
  54. package/dist/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  55. package/dist/templates/web/micro-saas/template/next.config.js +14 -14
  56. package/dist/templates/web/micro-saas/template/package.json +9 -8
  57. package/dist/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  58. package/dist/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  59. package/dist/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  60. package/dist/templates/web/micro-saas/template/src/app/globals.css +97 -20
  61. package/dist/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  62. package/dist/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  63. package/dist/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  64. package/dist/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  65. package/dist/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  66. package/dist/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +5 -2
  67. package/dist/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  68. package/dist/templates/web/ui-auth/template/next.config.js +14 -12
  69. package/dist/templates/web/ui-auth/template/package.json +16 -26
  70. package/dist/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  71. package/dist/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  72. package/dist/templates/web/ui-auth/template/src/app/globals.css +85 -84
  73. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  74. package/dist/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  75. package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +5 -2
  76. package/dist/templates/web/ui-auth/template/tsconfig.json +27 -33
  77. package/dist/templates/web/ui-auth-ai/template/next.config.js +15 -13
  78. package/dist/templates/web/ui-auth-ai/template/package.json +25 -21
  79. package/dist/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  80. package/dist/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  81. package/dist/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  82. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  83. package/dist/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  84. package/dist/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  85. package/dist/templates/web/ui-auth-payments/template/next.config.js +14 -12
  86. package/dist/templates/web/ui-auth-payments/template/package.json +16 -29
  87. package/dist/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  88. package/dist/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  89. package/dist/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  90. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  91. package/dist/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  92. package/dist/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  93. package/dist/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  94. package/dist/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  95. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  96. package/dist/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  97. package/dist/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  98. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  99. package/dist/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  100. package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +5 -2
  101. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  102. package/dist/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  103. package/dist/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  104. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  105. package/dist/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  106. package/dist/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  107. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  108. package/dist/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  109. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +5 -2
  110. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  111. package/dist/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  112. package/dist/templates/web/ui-auth-payments-video/template/package.json +17 -30
  113. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  114. package/dist/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  115. package/dist/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  116. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  117. package/dist/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  118. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +5 -2
  119. package/dist/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  120. package/dist/templates/web/ui-only/template/next.config.js +14 -12
  121. package/dist/templates/web/ui-only/template/package.json +15 -25
  122. package/dist/templates/web/ui-only/template/postcss.config.mjs +8 -0
  123. package/dist/templates/web/ui-only/template/src/app/error.tsx +67 -67
  124. package/dist/templates/web/ui-only/template/src/app/globals.css +85 -31
  125. package/dist/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  126. package/dist/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  127. package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +20 -26
  128. package/dist/templates/web/ui-only/template/tsconfig.json +27 -33
  129. package/package.json +1 -1
  130. package/src/templates/shared/auth/supabase/web/src/middleware.ts +63 -0
  131. package/src/templates/shared/database/supabase/web/src/lib/supabase/server.ts +3 -1
  132. package/src/templates/shared/design/web/src/config/design.config.ts +14 -14
  133. package/src/templates/shared/landing/web/src/components/LandingPage.tsx +0 -3
  134. package/src/templates/shared/security/web/src/lib/api-security.ts +2 -2
  135. package/src/templates/web/ai-platform/template/next.config.js +14 -14
  136. package/src/templates/web/ai-platform/template/package.json +11 -22
  137. package/src/templates/web/ai-platform/template/postcss.config.mjs +8 -0
  138. package/src/templates/web/ai-platform/template/src/app/chat/page.tsx +234 -235
  139. package/src/templates/web/ai-platform/template/src/app/dashboard/page.tsx +142 -142
  140. package/src/templates/web/ai-platform/template/src/app/error.tsx +13 -13
  141. package/src/templates/web/ai-platform/template/src/app/globals.css +97 -34
  142. package/src/templates/web/ai-platform/template/src/app/layout.tsx +3 -0
  143. package/src/templates/web/ai-platform/template/src/app/loading.tsx +22 -22
  144. package/src/templates/web/ai-platform/template/src/app/page.tsx +249 -155
  145. package/src/templates/web/ai-platform/template/src/components/providers/app-providers.tsx +5 -2
  146. package/src/templates/web/ai-platform/template/src/lib/auth-server.ts +32 -33
  147. package/src/templates/web/base/template/next.config.js +14 -15
  148. package/src/templates/web/base/template/package.json +16 -31
  149. package/src/templates/web/base/template/postcss.config.mjs +8 -0
  150. package/src/templates/web/base/template/src/app/error.tsx +97 -97
  151. package/src/templates/web/base/template/src/app/globals.css +87 -148
  152. package/src/templates/web/base/template/src/app/layout.tsx +4 -1
  153. package/src/templates/web/base/template/src/app/loading.tsx +52 -52
  154. package/src/templates/web/base/template/src/components/providers/app-providers.tsx +5 -2
  155. package/src/templates/web/base/template/tsconfig.json +27 -33
  156. package/src/templates/web/iot-dashboard/template/next.config.js +14 -14
  157. package/src/templates/web/iot-dashboard/template/package.json +12 -16
  158. package/src/templates/web/iot-dashboard/template/postcss.config.mjs +8 -0
  159. package/src/templates/web/iot-dashboard/template/src/app/dashboard/page.tsx +224 -224
  160. package/src/templates/web/iot-dashboard/template/src/app/error.tsx +8 -8
  161. package/src/templates/web/iot-dashboard/template/src/app/globals.css +97 -20
  162. package/src/templates/web/iot-dashboard/template/src/app/layout.tsx +3 -0
  163. package/src/templates/web/iot-dashboard/template/src/app/loading.tsx +5 -5
  164. package/src/templates/web/iot-dashboard/template/src/app/page.tsx +266 -189
  165. package/src/templates/web/iot-dashboard/template/src/components/providers/app-providers.tsx +5 -2
  166. package/src/templates/web/iot-dashboard/template/src/lib/auth-server.ts +32 -33
  167. package/src/templates/web/marketplace/template/next.config.js +14 -14
  168. package/src/templates/web/marketplace/template/package.json +11 -18
  169. package/src/templates/web/marketplace/template/postcss.config.mjs +8 -0
  170. package/src/templates/web/marketplace/template/src/app/cart/page.tsx +147 -147
  171. package/src/templates/web/marketplace/template/src/app/dashboard/page.tsx +149 -149
  172. package/src/templates/web/marketplace/template/src/app/error.tsx +7 -7
  173. package/src/templates/web/marketplace/template/src/app/globals.css +97 -20
  174. package/src/templates/web/marketplace/template/src/app/layout.tsx +3 -0
  175. package/src/templates/web/marketplace/template/src/app/loading.tsx +5 -5
  176. package/src/templates/web/marketplace/template/src/app/page.tsx +370 -169
  177. package/src/templates/web/marketplace/template/src/app/products/page.tsx +129 -129
  178. package/src/templates/web/marketplace/template/src/components/providers/app-providers.tsx +5 -2
  179. package/src/templates/web/marketplace/template/src/lib/auth-server.ts +32 -33
  180. package/src/templates/web/micro-saas/template/next.config.js +14 -14
  181. package/src/templates/web/micro-saas/template/package.json +9 -8
  182. package/src/templates/web/micro-saas/template/postcss.config.mjs +8 -0
  183. package/src/templates/web/micro-saas/template/src/app/dashboard/page.tsx +145 -117
  184. package/src/templates/web/micro-saas/template/src/app/error.tsx +7 -7
  185. package/src/templates/web/micro-saas/template/src/app/globals.css +97 -20
  186. package/src/templates/web/micro-saas/template/src/app/layout.tsx +3 -0
  187. package/src/templates/web/micro-saas/template/src/app/loading.tsx +43 -27
  188. package/src/templates/web/micro-saas/template/src/app/login/page.tsx +101 -87
  189. package/src/templates/web/micro-saas/template/src/app/page.tsx +227 -137
  190. package/src/templates/web/micro-saas/template/src/app/signup/page.tsx +122 -108
  191. package/src/templates/web/micro-saas/template/src/components/providers/app-providers.tsx +5 -2
  192. package/src/templates/web/micro-saas/template/src/lib/auth-server.ts +32 -33
  193. package/src/templates/web/ui-auth/template/next.config.js +14 -12
  194. package/src/templates/web/ui-auth/template/package.json +16 -26
  195. package/src/templates/web/ui-auth/template/postcss.config.mjs +8 -0
  196. package/src/templates/web/ui-auth/template/src/app/error.tsx +67 -67
  197. package/src/templates/web/ui-auth/template/src/app/globals.css +85 -84
  198. package/src/templates/web/ui-auth/template/src/app/layout.tsx +4 -1
  199. package/src/templates/web/ui-auth/template/src/app/loading.tsx +20 -38
  200. package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +5 -2
  201. package/src/templates/web/ui-auth/template/tsconfig.json +27 -33
  202. package/src/templates/web/ui-auth-ai/template/next.config.js +15 -13
  203. package/src/templates/web/ui-auth-ai/template/package.json +25 -21
  204. package/src/templates/web/ui-auth-ai/template/postcss.config.mjs +8 -0
  205. package/src/templates/web/ui-auth-ai/template/src/app/error.tsx +7 -7
  206. package/src/templates/web/ui-auth-ai/template/src/app/globals.css +87 -25
  207. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +3 -0
  208. package/src/templates/web/ui-auth-ai/template/src/app/loading.tsx +4 -4
  209. package/src/templates/web/ui-auth-ai/template/tsconfig.json +27 -28
  210. package/src/templates/web/ui-auth-payments/template/next.config.js +14 -12
  211. package/src/templates/web/ui-auth-payments/template/package.json +16 -29
  212. package/src/templates/web/ui-auth-payments/template/postcss.config.mjs +8 -0
  213. package/src/templates/web/ui-auth-payments/template/src/app/error.tsx +67 -67
  214. package/src/templates/web/ui-auth-payments/template/src/app/globals.css +89 -204
  215. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +4 -1
  216. package/src/templates/web/ui-auth-payments/template/src/app/loading.tsx +20 -20
  217. package/src/templates/web/ui-auth-payments/template/tsconfig.json +27 -33
  218. package/src/templates/web/ui-auth-payments-ai/template/next.config.js +14 -12
  219. package/src/templates/web/ui-auth-payments-ai/template/package.json +17 -33
  220. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.mjs +8 -0
  221. package/src/templates/web/ui-auth-payments-ai/template/src/app/error.tsx +67 -67
  222. package/src/templates/web/ui-auth-payments-ai/template/src/app/globals.css +85 -85
  223. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +4 -1
  224. package/src/templates/web/ui-auth-payments-ai/template/src/app/loading.tsx +20 -20
  225. package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +5 -2
  226. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.json +27 -33
  227. package/src/templates/web/ui-auth-payments-audio/template/next.config.js +14 -12
  228. package/src/templates/web/ui-auth-payments-audio/template/package.json +17 -30
  229. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.mjs +8 -0
  230. package/src/templates/web/ui-auth-payments-audio/template/src/app/error.tsx +67 -67
  231. package/src/templates/web/ui-auth-payments-audio/template/src/app/globals.css +85 -85
  232. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +4 -1
  233. package/src/templates/web/ui-auth-payments-audio/template/src/app/loading.tsx +20 -20
  234. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +5 -2
  235. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.json +27 -33
  236. package/src/templates/web/ui-auth-payments-video/template/next.config.js +14 -12
  237. package/src/templates/web/ui-auth-payments-video/template/package.json +17 -30
  238. package/src/templates/web/ui-auth-payments-video/template/postcss.config.mjs +8 -0
  239. package/src/templates/web/ui-auth-payments-video/template/src/app/error.tsx +67 -67
  240. package/src/templates/web/ui-auth-payments-video/template/src/app/globals.css +89 -221
  241. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +4 -1
  242. package/src/templates/web/ui-auth-payments-video/template/src/app/loading.tsx +20 -20
  243. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +5 -2
  244. package/src/templates/web/ui-auth-payments-video/template/tsconfig.json +27 -33
  245. package/src/templates/web/ui-only/template/next.config.js +14 -12
  246. package/src/templates/web/ui-only/template/package.json +15 -25
  247. package/src/templates/web/ui-only/template/postcss.config.mjs +8 -0
  248. package/src/templates/web/ui-only/template/src/app/error.tsx +67 -67
  249. package/src/templates/web/ui-only/template/src/app/globals.css +85 -31
  250. package/src/templates/web/ui-only/template/src/app/layout.tsx +4 -1
  251. package/src/templates/web/ui-only/template/src/app/loading.tsx +20 -20
  252. package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +20 -26
  253. package/src/templates/web/ui-only/template/tsconfig.json +27 -33
  254. package/dist/templates/web/ai-platform/template/middleware.ts +0 -55
  255. package/dist/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  256. package/dist/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  257. package/dist/templates/web/base/template/postcss.config.js +0 -7
  258. package/dist/templates/web/base/template/tailwind.config.js +0 -77
  259. package/dist/templates/web/iot-dashboard/template/middleware.ts +0 -56
  260. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  261. package/dist/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  262. package/dist/templates/web/marketplace/template/middleware.ts +0 -56
  263. package/dist/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  264. package/dist/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  265. package/dist/templates/web/micro-saas/template/middleware.ts +0 -53
  266. package/dist/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  267. package/dist/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  268. package/dist/templates/web/ui-auth/template/.claude +0 -21
  269. package/dist/templates/web/ui-auth/template/context.md +0 -105
  270. package/dist/templates/web/ui-auth/template/postcss.config.js +0 -7
  271. package/dist/templates/web/ui-auth/template/tailwind.config.js +0 -77
  272. package/dist/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  273. package/dist/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  274. package/dist/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  275. package/dist/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  276. package/dist/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  277. package/dist/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  278. package/dist/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  279. package/dist/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  280. package/dist/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  281. package/dist/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  282. package/dist/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  283. package/dist/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  284. package/dist/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  285. package/dist/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  286. package/dist/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  287. package/dist/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  288. package/dist/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  289. package/dist/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  290. package/dist/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  291. package/dist/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  292. package/dist/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  293. package/dist/templates/web/ui-only/template/postcss.config.js +0 -7
  294. package/dist/templates/web/ui-only/template/tailwind.config.js +0 -77
  295. package/src/templates/web/ai-platform/template/middleware.ts +0 -55
  296. package/src/templates/web/ai-platform/template/src/lib/supabase/client.ts +0 -8
  297. package/src/templates/web/ai-platform/template/src/lib/supabase/server.ts +0 -27
  298. package/src/templates/web/base/template/postcss.config.js +0 -7
  299. package/src/templates/web/base/template/tailwind.config.js +0 -77
  300. package/src/templates/web/iot-dashboard/template/middleware.ts +0 -56
  301. package/src/templates/web/iot-dashboard/template/src/lib/supabase/client.ts +0 -8
  302. package/src/templates/web/iot-dashboard/template/src/lib/supabase/server.ts +0 -27
  303. package/src/templates/web/marketplace/template/middleware.ts +0 -56
  304. package/src/templates/web/marketplace/template/src/lib/supabase/client.ts +0 -8
  305. package/src/templates/web/marketplace/template/src/lib/supabase/server.ts +0 -27
  306. package/src/templates/web/micro-saas/template/middleware.ts +0 -53
  307. package/src/templates/web/micro-saas/template/src/lib/supabase/client.ts +0 -8
  308. package/src/templates/web/micro-saas/template/src/lib/supabase/server.ts +0 -29
  309. package/src/templates/web/ui-auth/template/.claude +0 -21
  310. package/src/templates/web/ui-auth/template/context.md +0 -105
  311. package/src/templates/web/ui-auth/template/postcss.config.js +0 -7
  312. package/src/templates/web/ui-auth/template/tailwind.config.js +0 -77
  313. package/src/templates/web/ui-auth-ai/template/postcss.config.js +0 -6
  314. package/src/templates/web/ui-auth-ai/template/tailwind.config.js +0 -22
  315. package/src/templates/web/ui-auth-payments/template/middleware.ts +0 -68
  316. package/src/templates/web/ui-auth-payments/template/package-lock.json +0 -12240
  317. package/src/templates/web/ui-auth-payments/template/postcss.config.js +0 -7
  318. package/src/templates/web/ui-auth-payments/template/tailwind.config.js +0 -77
  319. package/src/templates/web/ui-auth-payments/template/tsconfig.tsbuildinfo +0 -1
  320. package/src/templates/web/ui-auth-payments-ai/template/.claude +0 -21
  321. package/src/templates/web/ui-auth-payments-ai/template/context.md +0 -169
  322. package/src/templates/web/ui-auth-payments-ai/template/middleware.ts +0 -68
  323. package/src/templates/web/ui-auth-payments-ai/template/package-lock.json +0 -12241
  324. package/src/templates/web/ui-auth-payments-ai/template/postcss.config.js +0 -7
  325. package/src/templates/web/ui-auth-payments-ai/template/tailwind.config.js +0 -77
  326. package/src/templates/web/ui-auth-payments-ai/template/tsconfig.tsbuildinfo +0 -1
  327. package/src/templates/web/ui-auth-payments-audio/template/middleware.ts +0 -68
  328. package/src/templates/web/ui-auth-payments-audio/template/package-lock.json +0 -12241
  329. package/src/templates/web/ui-auth-payments-audio/template/postcss.config.js +0 -7
  330. package/src/templates/web/ui-auth-payments-audio/template/tailwind.config.js +0 -77
  331. package/src/templates/web/ui-auth-payments-audio/template/tsconfig.tsbuildinfo +0 -1
  332. package/src/templates/web/ui-auth-payments-video/template/postcss.config.js +0 -7
  333. package/src/templates/web/ui-auth-payments-video/template/tailwind.config.js +0 -77
  334. package/src/templates/web/ui-only/template/postcss.config.js +0 -7
  335. package/src/templates/web/ui-only/template/tailwind.config.js +0 -77
  336. /package/dist/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  337. /package/dist/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  338. /package/dist/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  339. /package/dist/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
  340. /package/src/templates/shared/admin/web/{components → src/components}/admin-nav.tsx +0 -0
  341. /package/src/templates/shared/auth/keycloak/web/{auth.config.ts → src/auth.config.ts} +0 -0
  342. /package/src/templates/shared/auth/keycloak/web/{auth.ts → src/auth.ts} +0 -0
  343. /package/src/templates/shared/middleware/web/{middleware.ts → src/middleware.ts} +0 -0
@@ -1,77 +0,0 @@
1
- /** @type {import('tailwindcss').Config} */
2
- module.exports = {
3
- darkMode: ["class"],
4
- content: [
5
- './pages/**/*.{ts,tsx}',
6
- './components/**/*.{ts,tsx}',
7
- './app/**/*.{ts,tsx}',
8
- './src/**/*.{ts,tsx}',
9
- '../../node_modules/@digilogiclabs/saas-factory-ui/dist/**/*.{js,ts,jsx,tsx}',
10
- ],
11
- theme: {
12
- container: {
13
- center: true,
14
- padding: "2rem",
15
- screens: {
16
- "2xl": "1400px",
17
- },
18
- },
19
- extend: {
20
- colors: {
21
- border: "hsl(var(--border))",
22
- input: "hsl(var(--input))",
23
- ring: "hsl(var(--ring))",
24
- background: "hsl(var(--background))",
25
- foreground: "hsl(var(--foreground))",
26
- primary: {
27
- DEFAULT: "hsl(var(--primary))",
28
- foreground: "hsl(var(--primary-foreground))",
29
- },
30
- secondary: {
31
- DEFAULT: "hsl(var(--secondary))",
32
- foreground: "hsl(var(--secondary-foreground))",
33
- },
34
- destructive: {
35
- DEFAULT: "hsl(var(--destructive))",
36
- foreground: "hsl(var(--destructive-foreground))",
37
- },
38
- muted: {
39
- DEFAULT: "hsl(var(--muted))",
40
- foreground: "hsl(var(--muted-foreground))",
41
- },
42
- accent: {
43
- DEFAULT: "hsl(var(--accent))",
44
- foreground: "hsl(var(--accent-foreground))",
45
- },
46
- popover: {
47
- DEFAULT: "hsl(var(--popover))",
48
- foreground: "hsl(var(--popover-foreground))",
49
- },
50
- card: {
51
- DEFAULT: "hsl(var(--card))",
52
- foreground: "hsl(var(--card-foreground))",
53
- },
54
- },
55
- borderRadius: {
56
- lg: "var(--radius)",
57
- md: "calc(var(--radius) - 2px)",
58
- sm: "calc(var(--radius) - 4px)",
59
- },
60
- keyframes: {
61
- "accordion-down": {
62
- from: { height: 0 },
63
- to: { height: "var(--radix-accordion-content-height)" },
64
- },
65
- "accordion-up": {
66
- from: { height: "var(--radix-accordion-content-height)" },
67
- to: { height: 0 },
68
- },
69
- },
70
- animation: {
71
- "accordion-down": "accordion-down 0.2s ease-out",
72
- "accordion-up": "accordion-up 0.2s ease-out",
73
- },
74
- },
75
- },
76
- plugins: [require("tailwindcss-animate")],
77
- }
@@ -1,56 +0,0 @@
1
- import { createServerClient } from '@supabase/ssr'
2
- import { NextResponse, type NextRequest } from 'next/server'
3
-
4
- export async function middleware(request: NextRequest) {
5
- let supabaseResponse = NextResponse.next({
6
- request,
7
- })
8
-
9
- const supabase = createServerClient(
10
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
11
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
12
- {
13
- cookies: {
14
- getAll() {
15
- return request.cookies.getAll()
16
- },
17
- setAll(cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>) {
18
- cookiesToSet.forEach(({ name, value }) =>
19
- request.cookies.set(name, value)
20
- )
21
- supabaseResponse = NextResponse.next({
22
- request,
23
- })
24
- cookiesToSet.forEach(({ name, value, options }) =>
25
- supabaseResponse.cookies.set(name, value, options)
26
- )
27
- },
28
- },
29
- }
30
- )
31
-
32
- const {
33
- data: { user },
34
- } = await supabase.auth.getUser()
35
-
36
- // Redirect to login if accessing protected route without auth
37
- if (
38
- !user &&
39
- (request.nextUrl.pathname.startsWith('/dashboard') ||
40
- request.nextUrl.pathname.startsWith('/devices') ||
41
- request.nextUrl.pathname.startsWith('/analytics') ||
42
- request.nextUrl.pathname.startsWith('/alerts'))
43
- ) {
44
- const url = request.nextUrl.clone()
45
- url.pathname = '/login'
46
- return NextResponse.redirect(url)
47
- }
48
-
49
- return supabaseResponse
50
- }
51
-
52
- export const config = {
53
- matcher: [
54
- '/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)',
55
- ],
56
- }
@@ -1,8 +0,0 @@
1
- import { createBrowserClient } from '@supabase/ssr'
2
-
3
- export function createClient() {
4
- return createBrowserClient(
5
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
6
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
7
- )
8
- }
@@ -1,27 +0,0 @@
1
- import { createServerClient } from '@supabase/ssr'
2
- import { cookies } from 'next/headers'
3
-
4
- export async function createClient() {
5
- const cookieStore = await cookies()
6
-
7
- return createServerClient(
8
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
9
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
10
- {
11
- cookies: {
12
- getAll() {
13
- return cookieStore.getAll()
14
- },
15
- setAll(cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>) {
16
- try {
17
- cookiesToSet.forEach(({ name, value, options }) =>
18
- cookieStore.set(name, value, options)
19
- )
20
- } catch {
21
- // Server Component context
22
- }
23
- },
24
- },
25
- }
26
- )
27
- }
@@ -1,56 +0,0 @@
1
- import { createServerClient } from '@supabase/ssr'
2
- import { NextResponse, type NextRequest } from 'next/server'
3
-
4
- export async function middleware(request: NextRequest) {
5
- let supabaseResponse = NextResponse.next({
6
- request,
7
- })
8
-
9
- const supabase = createServerClient(
10
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
11
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
12
- {
13
- cookies: {
14
- getAll() {
15
- return request.cookies.getAll()
16
- },
17
- setAll(cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>) {
18
- cookiesToSet.forEach(({ name, value }) =>
19
- request.cookies.set(name, value)
20
- )
21
- supabaseResponse = NextResponse.next({
22
- request,
23
- })
24
- cookiesToSet.forEach(({ name, value, options }) =>
25
- supabaseResponse.cookies.set(name, value, options)
26
- )
27
- },
28
- },
29
- }
30
- )
31
-
32
- const {
33
- data: { user },
34
- } = await supabase.auth.getUser()
35
-
36
- // Redirect to login if accessing protected route without auth
37
- if (
38
- !user &&
39
- (request.nextUrl.pathname.startsWith('/dashboard') ||
40
- request.nextUrl.pathname.startsWith('/products/new') ||
41
- request.nextUrl.pathname.startsWith('/orders') ||
42
- request.nextUrl.pathname.startsWith('/payouts'))
43
- ) {
44
- const url = request.nextUrl.clone()
45
- url.pathname = '/login'
46
- return NextResponse.redirect(url)
47
- }
48
-
49
- return supabaseResponse
50
- }
51
-
52
- export const config = {
53
- matcher: [
54
- '/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)',
55
- ],
56
- }
@@ -1,8 +0,0 @@
1
- import { createBrowserClient } from '@supabase/ssr'
2
-
3
- export function createClient() {
4
- return createBrowserClient(
5
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
6
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
7
- )
8
- }
@@ -1,27 +0,0 @@
1
- import { createServerClient } from '@supabase/ssr'
2
- import { cookies } from 'next/headers'
3
-
4
- export async function createClient() {
5
- const cookieStore = await cookies()
6
-
7
- return createServerClient(
8
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
9
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
10
- {
11
- cookies: {
12
- getAll() {
13
- return cookieStore.getAll()
14
- },
15
- setAll(cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>) {
16
- try {
17
- cookiesToSet.forEach(({ name, value, options }) =>
18
- cookieStore.set(name, value, options)
19
- )
20
- } catch {
21
- // Server Component context
22
- }
23
- },
24
- },
25
- }
26
- )
27
- }
@@ -1,53 +0,0 @@
1
- import { createServerClient } from '@supabase/ssr'
2
- import { NextResponse, type NextRequest } from 'next/server'
3
-
4
- export async function middleware(request: NextRequest) {
5
- let supabaseResponse = NextResponse.next({
6
- request,
7
- })
8
-
9
- const supabase = createServerClient(
10
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
11
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
12
- {
13
- cookies: {
14
- getAll() {
15
- return request.cookies.getAll()
16
- },
17
- setAll(cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>) {
18
- cookiesToSet.forEach(({ name, value }) =>
19
- request.cookies.set(name, value)
20
- )
21
- supabaseResponse = NextResponse.next({
22
- request,
23
- })
24
- cookiesToSet.forEach(({ name, value, options }) =>
25
- supabaseResponse.cookies.set(name, value, options)
26
- )
27
- },
28
- },
29
- }
30
- )
31
-
32
- const {
33
- data: { user },
34
- } = await supabase.auth.getUser()
35
-
36
- // Redirect to login if accessing protected route without auth
37
- if (
38
- !user &&
39
- request.nextUrl.pathname.startsWith('/dashboard')
40
- ) {
41
- const url = request.nextUrl.clone()
42
- url.pathname = '/login'
43
- return NextResponse.redirect(url)
44
- }
45
-
46
- return supabaseResponse
47
- }
48
-
49
- export const config = {
50
- matcher: [
51
- '/((?!_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)',
52
- ],
53
- }
@@ -1,8 +0,0 @@
1
- import { createBrowserClient } from '@supabase/ssr'
2
-
3
- export function createClient() {
4
- return createBrowserClient(
5
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
6
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
7
- )
8
- }
@@ -1,29 +0,0 @@
1
- import { createServerClient } from '@supabase/ssr'
2
- import { cookies } from 'next/headers'
3
-
4
- export async function createClient() {
5
- const cookieStore = await cookies()
6
-
7
- return createServerClient(
8
- process.env.NEXT_PUBLIC_SUPABASE_URL!,
9
- process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,
10
- {
11
- cookies: {
12
- getAll() {
13
- return cookieStore.getAll()
14
- },
15
- setAll(cookiesToSet: Array<{ name: string; value: string; options?: Record<string, unknown> }>) {
16
- try {
17
- cookiesToSet.forEach(({ name, value, options }) =>
18
- cookieStore.set(name, value, options)
19
- )
20
- } catch {
21
- // The `setAll` method was called from a Server Component.
22
- // This can be ignored if you have middleware refreshing
23
- // user sessions.
24
- }
25
- },
26
- },
27
- }
28
- )
29
- }
@@ -1,21 +0,0 @@
1
- {
2
- "name": "{{projectName}}",
3
- "description": "{{description}} - Authentication Platform built with Digi Logic Labs packages",
4
- "include": [
5
- "src/**/*",
6
- "*.md",
7
- "*.json",
8
- "*.js",
9
- "*.ts",
10
- ".env.example"
11
- ],
12
- "exclude": [
13
- "node_modules/**/*",
14
- ".next/**/*",
15
- "dist/**/*",
16
- "build/**/*",
17
- "*.log",
18
- ".claude"
19
- ],
20
- "instructions": "You are helping develop an Authentication Platform using Next.js 15, TypeScript, and Digi Logic Labs packages.\n\n## Project Architecture\n- **Framework**: Next.js 15.3 with App Router\n- **Database**: Supabase (PostgreSQL with real-time features)\n- **Styling**: Tailwind CSS v4 with glassmorphism design system\n- **Authentication**: Supabase Auth with @digilogiclabs/app-sdk\n\n## Key Packages\n- **@digilogiclabs/app-sdk**: Authentication components and hooks with Supabase integration\n- **@digilogiclabs/saas-factory-ui**: Modern UI components with glassmorphism and responsive design\n\n## Development Guidelines\n1. Follow Next.js 15 best practices with Server Components by default\n2. Use TypeScript strictly - all components should be typed\n3. Implement proper error boundaries and loading states\n4. Follow the glassmorphism design system from saas-factory-ui\n5. Use Server Actions for mutations and API routes for complex logic\n6. Always check authentication state with useAuth hook\n\n## File Organization\n- Components in /src/components with feature-based folders\n- Server actions in /src/server/actions\n- API routes in /src/app/api\n- Database queries in /src/server/queries\n- Types in /src/types\n\n## Testing\n- Use Vitest for unit tests\n- Test business logic and error states\n- Mock external services (Supabase)\n\nRemember to consult the context.md file for detailed package documentation and examples."
21
- }
@@ -1,105 +0,0 @@
1
- # {{projectName}} - Development Context
2
-
3
- This project is an Authentication Platform built with modern technologies and Digi Logic Labs packages.
4
-
5
- ## Architecture Overview
6
-
7
- ### Core Technologies
8
- - **Next.js 15.3**: App Router, Server Components, Server Actions
9
- - **TypeScript**: Strict typing throughout
10
- - **Tailwind CSS v4**: Design tokens, glassmorphism system
11
- - **Supabase**: Database, authentication, real-time features
12
-
13
- ### Package Integration
14
-
15
- #### @digilogiclabs/app-sdk
16
- Unified application SDK with auth and payments hooks
17
-
18
- **Key Exports**: useAuth, usePayments, DLLProvider, usePlatform
19
- **Documentation**: https://docs.digilogiclabs.com/packages/app-sdk
20
-
21
- #### @digilogiclabs/saas-factory-ui
22
- Modern UI components with glassmorphism and responsive design
23
-
24
- **Key Exports**: Button, Card, MobileContainer, PageTransition, ResponsiveGrid
25
- **Documentation**: https://docs.digilogiclabs.com/packages/ui
26
-
27
- ## Environment Configuration
28
-
29
- Required environment variables:
30
- ```bash
31
- NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
32
- NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
33
- SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_key
34
- ```
35
-
36
- ## Database Schema
37
-
38
- Key tables:
39
- - **profiles**: User profile information
40
-
41
- ## Common Patterns
42
-
43
- ### Authentication Flow
44
- ```typescript
45
- import { useAuth } from '@digilogiclabs/app-sdk'
46
-
47
- export function ProtectedComponent() {
48
- const { user, loading } = useAuth()
49
-
50
- if (loading) return <LoadingSpinner />
51
- if (!user) return <LoginPrompt />
52
-
53
- return <UserContent user={user} />
54
- }
55
- ```
56
-
57
- ### UI Components
58
- ```typescript
59
- import {
60
- Card,
61
- Button,
62
- PageTransition,
63
- useGlassmorphism
64
- } from '@digilogiclabs/saas-factory-ui'
65
-
66
- export function ExampleComponent() {
67
- const glass = useGlassmorphism()
68
-
69
- return (
70
- <PageTransition type="fade">
71
- <Card className={`${glass.card} ${glass.border}`}>
72
- <Button variant="default">Action</Button>
73
- </Card>
74
- </PageTransition>
75
- )
76
- }
77
- ```
78
-
79
- ## Development Workflow
80
-
81
- 1. **Setup**: Run setup guide at /setup
82
- 2. **Development**: `npm run dev` with hot reload
83
- 3. **Testing**: `npm run test` with Vitest
84
- 4. **Building**: `npm run build` for production
85
- 5. **Deployment**: See deployment guide at /dev-setup
86
-
87
- ## Troubleshooting
88
-
89
- ### Common Issues
90
- - **Environment Variables**: Check .env.local file exists and variables are correct
91
- - **Database Connection**: Verify Supabase project settings and RLS policies
92
-
93
- ### Debug Commands
94
- ```bash
95
- npm run type-check # TypeScript validation
96
- npm run lint # ESLint validation
97
- npm run test # Run test suite
98
- ```
99
-
100
- ## Resources
101
-
102
- - **Package Documentation**: https://docs.digilogiclabs.com
103
- - **Support Discord**: https://discord.gg/digilogiclabs
104
- - **Example Projects**: https://github.com/digilogiclabs/examples
105
- - **Setup Guide**: /setup page in this application
@@ -1,7 +0,0 @@
1
- module.exports = {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- }
7
-
@@ -1,77 +0,0 @@
1
- /** @type {import('tailwindcss').Config} */
2
- module.exports = {
3
- darkMode: ["class"],
4
- content: [
5
- './pages/**/*.{ts,tsx}',
6
- './components/**/*.{ts,tsx}',
7
- './app/**/*.{ts,tsx}',
8
- './src/**/*.{ts,tsx}',
9
- '../../node_modules/@digilogiclabs/saas-factory-ui/dist/**/*.{js,ts,jsx,tsx}',
10
- ],
11
- theme: {
12
- container: {
13
- center: true,
14
- padding: "2rem",
15
- screens: {
16
- "2xl": "1400px",
17
- },
18
- },
19
- extend: {
20
- colors: {
21
- border: "hsl(var(--border))",
22
- input: "hsl(var(--input))",
23
- ring: "hsl(var(--ring))",
24
- background: "hsl(var(--background))",
25
- foreground: "hsl(var(--foreground))",
26
- primary: {
27
- DEFAULT: "hsl(var(--primary))",
28
- foreground: "hsl(var(--primary-foreground))",
29
- },
30
- secondary: {
31
- DEFAULT: "hsl(var(--secondary))",
32
- foreground: "hsl(var(--secondary-foreground))",
33
- },
34
- destructive: {
35
- DEFAULT: "hsl(var(--destructive))",
36
- foreground: "hsl(var(--destructive-foreground))",
37
- },
38
- muted: {
39
- DEFAULT: "hsl(var(--muted))",
40
- foreground: "hsl(var(--muted-foreground))",
41
- },
42
- accent: {
43
- DEFAULT: "hsl(var(--accent))",
44
- foreground: "hsl(var(--accent-foreground))",
45
- },
46
- popover: {
47
- DEFAULT: "hsl(var(--popover))",
48
- foreground: "hsl(var(--popover-foreground))",
49
- },
50
- card: {
51
- DEFAULT: "hsl(var(--card))",
52
- foreground: "hsl(var(--card-foreground))",
53
- },
54
- },
55
- borderRadius: {
56
- lg: "var(--radius)",
57
- md: "calc(var(--radius) - 2px)",
58
- sm: "calc(var(--radius) - 4px)",
59
- },
60
- keyframes: {
61
- "accordion-down": {
62
- from: { height: 0 },
63
- to: { height: "var(--radix-accordion-content-height)" },
64
- },
65
- "accordion-up": {
66
- from: { height: "var(--radix-accordion-content-height)" },
67
- to: { height: 0 },
68
- },
69
- },
70
- animation: {
71
- "accordion-down": "accordion-down 0.2s ease-out",
72
- "accordion-up": "accordion-up 0.2s ease-out",
73
- },
74
- },
75
- },
76
- plugins: [],
77
- }
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- }
@@ -1,22 +0,0 @@
1
- /** @type {import('tailwindcss').Config} */
2
- module.exports = {
3
- content: [
4
- './pages/**/*.{js,ts,jsx,tsx,mdx}',
5
- './components/**/*.{js,ts,jsx,tsx,mdx}',
6
- './app/**/*.{js,ts,jsx,tsx,mdx}',
7
- './src/**/*.{js,ts,jsx,tsx,mdx}',
8
- ],
9
- theme: {
10
- extend: {
11
- colors: {
12
- primary: {
13
- 50: '#eff6ff',
14
- 500: '#3b82f6',
15
- 600: '#2563eb',
16
- 700: '#1d4ed8',
17
- },
18
- },
19
- },
20
- },
21
- plugins: [],
22
- }
@@ -1,68 +0,0 @@
1
- import { NextRequest, NextResponse } from 'next/server'
2
- import { env } from './src/lib/env'
3
-
4
- export async function middleware(request: NextRequest) {
5
- // Get auth token from cookies
6
- const authToken = request.cookies.get('saas-factory-auth-token')?.value
7
- const user = request.cookies.get('saas-factory-auth-user')?.value
8
-
9
- const isAuthenticated = !!(authToken && user)
10
- const { pathname } = request.nextUrl
11
-
12
- // Define protected routes
13
- const protectedRoutes = ['/dashboard', '/profile', '/settings']
14
- const authRoutes = ['/login', '/signup']
15
-
16
- // Check if the current path is protected
17
- const isProtectedRoute = protectedRoutes.some(route =>
18
- pathname.startsWith(route)
19
- )
20
-
21
- // Check if the current path is an auth route
22
- const isAuthRoute = authRoutes.some(route =>
23
- pathname.startsWith(route)
24
- )
25
-
26
- // Redirect unauthenticated users from protected routes
27
- if (isProtectedRoute && !isAuthenticated) {
28
- const loginUrl = new URL('/login', request.url)
29
- loginUrl.searchParams.set('from', pathname)
30
- return NextResponse.redirect(loginUrl)
31
- }
32
-
33
- // Redirect authenticated users from auth routes
34
- if (isAuthRoute && isAuthenticated) {
35
- const redirectUrl = request.nextUrl.searchParams.get('from') || '/'
36
- return NextResponse.redirect(new URL(redirectUrl, request.url))
37
- }
38
-
39
- // Add security headers
40
- const response = NextResponse.next()
41
-
42
- // Add CSRF protection headers
43
- response.headers.set('X-Frame-Options', 'DENY')
44
- response.headers.set('X-Content-Type-Options', 'nosniff')
45
- response.headers.set('Referrer-Policy', 'origin-when-cross-origin')
46
-
47
- // Add CSP header for additional security
48
- if (env.NODE_ENV === 'production') {
49
- response.headers.set(
50
- 'Content-Security-Policy',
51
- "default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://js.stripe.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https:; connect-src 'self' https://api.stripe.com"
52
- )
53
- }
54
-
55
- return response
56
- }
57
-
58
- export const config = {
59
- matcher: [
60
- // Match all request paths except for the ones starting with:
61
- // - api (API routes)
62
- // - _next/static (static files)
63
- // - _next/image (image optimization files)
64
- // - favicon.ico (favicon file)
65
- // - public folder files
66
- '/((?!api|_next/static|_next/image|favicon.ico|.*\\.(?:svg|png|jpg|jpeg|gif|webp)$).*)',
67
- ],
68
- }