@digilogiclabs/create-saas-app 2.11.0 → 2.12.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 (358) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/cli/index.js +1 -1
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/generators/template-generator.d.ts.map +1 -1
  6. package/dist/generators/template-generator.js +15 -8
  7. package/dist/generators/template-generator.js.map +1 -1
  8. package/dist/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  9. package/dist/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  10. package/dist/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  11. package/dist/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  12. package/dist/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  13. package/dist/templates/shared/email/web/src/lib/email/client.ts +1 -1
  14. package/dist/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  15. package/dist/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  16. package/dist/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  17. package/dist/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  18. package/dist/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  19. package/dist/templates/shared/loading/web/components/skeleton.tsx +4 -4
  20. package/dist/templates/shared/mock/web/.env.local +55 -0
  21. package/dist/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  22. package/dist/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  23. package/dist/templates/shared/mock/web/src/lib/mock.ts +147 -0
  24. package/dist/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  25. package/dist/templates/shared/redis/web/src/lib/redis.ts +1 -1
  26. package/dist/templates/web/base/template/eslint.config.mjs +14 -0
  27. package/dist/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  28. package/dist/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  29. package/dist/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  30. package/dist/templates/web/base/template/src/app/layout.tsx +40 -38
  31. package/dist/templates/web/base/template/src/app/login/page.tsx +116 -66
  32. package/dist/templates/web/base/template/src/app/page.tsx +97 -193
  33. package/dist/templates/web/base/template/src/app/settings/page.tsx +154 -0
  34. package/dist/templates/web/base/template/src/app/signup/page.tsx +117 -66
  35. package/dist/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  36. package/dist/templates/web/base/template/src/components/shared/header.tsx +229 -63
  37. package/dist/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  38. package/dist/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  39. package/dist/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  40. package/dist/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  41. package/dist/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  42. package/dist/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  43. package/dist/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  44. package/dist/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  45. package/dist/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  46. package/dist/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  47. package/dist/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  48. package/dist/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  49. package/dist/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  50. package/dist/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  51. package/dist/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  52. package/dist/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  53. package/dist/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  54. package/dist/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  55. package/dist/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  56. package/dist/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  57. package/dist/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  58. package/dist/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  59. package/dist/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  60. package/dist/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  61. package/dist/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  62. package/dist/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  63. package/dist/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  64. package/dist/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  65. package/dist/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  66. package/dist/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  67. package/dist/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  68. package/dist/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  69. package/dist/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  70. package/dist/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  71. package/dist/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  72. package/dist/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  73. package/dist/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  74. package/dist/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  75. package/dist/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  76. package/dist/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  77. package/dist/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  78. package/dist/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  79. package/dist/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  80. package/dist/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  81. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  82. package/dist/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  83. package/dist/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  84. package/dist/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  85. package/dist/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  86. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  87. package/dist/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  88. package/dist/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  89. package/dist/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  90. package/dist/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  91. package/dist/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  92. package/dist/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  93. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  94. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  95. package/dist/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  96. package/dist/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  97. package/dist/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  98. package/dist/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  99. package/dist/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  100. package/dist/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  101. package/dist/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  102. package/dist/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  103. package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  104. package/dist/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  105. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  106. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  107. package/dist/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  108. package/dist/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  109. package/dist/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  110. package/dist/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  111. package/dist/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  112. package/dist/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  113. package/dist/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  114. package/dist/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  115. package/dist/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  116. package/dist/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  117. package/dist/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  118. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  119. package/dist/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  120. package/dist/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  121. package/dist/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  122. package/dist/templates/web/ui-only/template/eslint.config.mjs +14 -0
  123. package/dist/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  124. package/dist/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  125. package/dist/templates/web/ui-only/template/src/app/page.tsx +69 -91
  126. package/dist/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  127. package/dist/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  128. package/dist/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  129. package/dist/templates/web/ui-package-test/template/package.json +19 -23
  130. package/dist/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  131. package/dist/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  132. package/dist/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  133. package/dist/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  134. package/package.json +1 -1
  135. package/src/templates/shared/admin/web/src/components/admin-nav.tsx +3 -3
  136. package/src/templates/shared/auth/supabase/web/src/lib/auth-session.ts +36 -16
  137. package/src/templates/shared/auth/supabase/web/src/middleware.ts +6 -0
  138. package/src/templates/shared/cookie-consent/web/components/cookie-consent.tsx +5 -5
  139. package/src/templates/shared/design/web/src/components/ui/button.tsx +56 -0
  140. package/src/templates/shared/email/web/src/lib/email/client.ts +1 -1
  141. package/src/templates/shared/error-pages/web/src/app/error.tsx +13 -11
  142. package/src/templates/shared/error-pages/web/src/app/global-error.tsx +2 -0
  143. package/src/templates/shared/error-pages/web/src/app/not-found.tsx +6 -6
  144. package/src/templates/shared/legal/web/src/app/(legal)/privacy/page.tsx +4 -4
  145. package/src/templates/shared/legal/web/src/app/(legal)/terms/page.tsx +4 -4
  146. package/src/templates/shared/loading/web/components/skeleton.tsx +4 -4
  147. package/src/templates/shared/mock/web/.env.local +55 -0
  148. package/src/templates/shared/mock/web/src/components/mock-auth-provider.tsx +72 -0
  149. package/src/templates/shared/mock/web/src/components/mock-banner.tsx +29 -0
  150. package/src/templates/shared/mock/web/src/lib/mock.ts +147 -0
  151. package/src/templates/shared/payments/web/src/app/api/webhooks/stripe/route.ts +10 -4
  152. package/src/templates/shared/redis/web/src/lib/redis.ts +1 -1
  153. package/src/templates/web/base/template/eslint.config.mjs +14 -0
  154. package/src/templates/web/base/template/src/app/auth/callback/route.ts +1 -1
  155. package/src/templates/web/base/template/src/app/checkout/page.tsx +76 -103
  156. package/src/templates/web/base/template/src/app/dashboard/page.tsx +145 -329
  157. package/src/templates/web/base/template/src/app/layout.tsx +40 -38
  158. package/src/templates/web/base/template/src/app/login/page.tsx +116 -66
  159. package/src/templates/web/base/template/src/app/page.tsx +97 -193
  160. package/src/templates/web/base/template/src/app/settings/page.tsx +154 -0
  161. package/src/templates/web/base/template/src/app/signup/page.tsx +117 -66
  162. package/src/templates/web/base/template/src/components/providers/app-providers.tsx +8 -3
  163. package/src/templates/web/base/template/src/components/shared/header.tsx +229 -63
  164. package/src/templates/web/ui-auth/template/eslint.config.mjs +14 -0
  165. package/src/templates/web/ui-auth/template/src/app/checkout/page.tsx +3 -3
  166. package/src/templates/web/ui-auth/template/src/app/dev-setup/page.tsx +81 -91
  167. package/src/templates/web/ui-auth/template/src/app/layout.tsx +38 -36
  168. package/src/templates/web/ui-auth/template/src/app/login/page.tsx +22 -45
  169. package/src/templates/web/ui-auth/template/src/app/page.tsx +106 -306
  170. package/src/templates/web/ui-auth/template/src/app/setup/page.tsx +387 -402
  171. package/src/templates/web/ui-auth/template/src/app/signup/page.tsx +24 -47
  172. package/src/templates/web/ui-auth/template/src/components/providers/app-providers.tsx +8 -3
  173. package/src/templates/web/ui-auth/template/src/components/shared/header.tsx +229 -94
  174. package/src/templates/web/ui-auth-ai/template/src/app/layout.tsx +38 -45
  175. package/src/templates/web/ui-auth-ai/template/src/app/login/page.tsx +86 -0
  176. package/src/templates/web/ui-auth-ai/template/src/app/page.tsx +107 -193
  177. package/src/templates/web/ui-auth-ai/template/src/app/signup/page.tsx +105 -0
  178. package/src/templates/web/ui-auth-ai/template/src/components/ai/audio-generator.tsx +144 -140
  179. package/src/templates/web/ui-auth-ai/template/src/components/ai/video-generator.tsx +156 -157
  180. package/src/templates/web/ui-auth-ai/template/src/components/auth/login-form.tsx +7 -3
  181. package/src/templates/web/ui-auth-ai/template/src/components/providers/app-providers.tsx +25 -0
  182. package/src/templates/web/ui-auth-ai/template/src/components/shared/footer.tsx +36 -0
  183. package/src/templates/web/ui-auth-ai/template/src/components/shared/header.tsx +228 -0
  184. package/src/templates/web/ui-auth-ai/template/src/components/ui/button.tsx +5 -5
  185. package/src/templates/web/ui-auth-ai/template/src/components/ui/input.tsx +1 -1
  186. package/src/templates/web/ui-auth-ai/template/src/components/ui/select.tsx +1 -1
  187. package/src/templates/web/ui-auth-ai/template/src/components/ui/textarea.tsx +1 -1
  188. package/src/templates/web/ui-auth-ai/template/src/components/ui/theme-toggle.tsx +34 -0
  189. package/src/templates/web/ui-auth-ai/template/src/lib/supabase.ts +6 -4
  190. package/src/templates/web/ui-auth-ai/template/src/providers/auth-provider.tsx +7 -5
  191. package/src/templates/web/ui-auth-payments/template/src/app/billing/page.tsx +63 -192
  192. package/src/templates/web/ui-auth-payments/template/src/app/checkout/page.tsx +104 -296
  193. package/src/templates/web/ui-auth-payments/template/src/app/dashboard/page.tsx +27 -27
  194. package/src/templates/web/ui-auth-payments/template/src/app/dev-setup/page.tsx +70 -81
  195. package/src/templates/web/ui-auth-payments/template/src/app/layout.tsx +38 -36
  196. package/src/templates/web/ui-auth-payments/template/src/app/login/loading.tsx +9 -9
  197. package/src/templates/web/ui-auth-payments/template/src/app/login/page.tsx +4 -104
  198. package/src/templates/web/ui-auth-payments/template/src/app/page.tsx +69 -337
  199. package/src/templates/web/ui-auth-payments/template/src/app/setup/page.tsx +55 -68
  200. package/src/templates/web/ui-auth-payments/template/src/app/signup/loading.tsx +13 -13
  201. package/src/templates/web/ui-auth-payments/template/src/app/signup/page.tsx +4 -123
  202. package/src/templates/web/ui-auth-payments/template/src/components/client/auth-status.tsx +37 -52
  203. package/src/templates/web/ui-auth-payments/template/src/components/client/login-form.tsx +49 -103
  204. package/src/templates/web/ui-auth-payments/template/src/components/client/newsletter-signup.tsx +4 -4
  205. package/src/templates/web/ui-auth-payments/template/src/components/client/signup-form.tsx +60 -140
  206. package/src/templates/web/ui-auth-payments/template/src/components/providers/app-providers.tsx +25 -28
  207. package/src/templates/web/ui-auth-payments/template/src/components/shared/header.tsx +229 -230
  208. package/src/templates/web/ui-auth-payments/template/src/lib/actions/auth.ts +245 -245
  209. package/src/templates/web/ui-auth-payments/template/src/lib/actions/index.ts +339 -339
  210. package/src/templates/web/ui-auth-payments-ai/template/src/app/ai/page.tsx +305 -309
  211. package/src/templates/web/ui-auth-payments-ai/template/src/app/billing/page.tsx +62 -312
  212. package/src/templates/web/ui-auth-payments-ai/template/src/app/checkout/page.tsx +109 -125
  213. package/src/templates/web/ui-auth-payments-ai/template/src/app/dashboard/page.tsx +27 -27
  214. package/src/templates/web/ui-auth-payments-ai/template/src/app/dev-setup/page.tsx +68 -83
  215. package/src/templates/web/ui-auth-payments-ai/template/src/app/layout.tsx +40 -38
  216. package/src/templates/web/ui-auth-payments-ai/template/src/app/onboarding/page.tsx +20 -20
  217. package/src/templates/web/ui-auth-payments-ai/template/src/app/page.tsx +140 -394
  218. package/src/templates/web/ui-auth-payments-ai/template/src/app/settings/page.tsx +28 -27
  219. package/src/templates/web/ui-auth-payments-ai/template/src/app/setup/page.tsx +51 -66
  220. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/auth-status.tsx +37 -52
  221. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/login-form.tsx +50 -79
  222. package/src/templates/web/ui-auth-payments-ai/template/src/components/client/signup-form.tsx +58 -111
  223. package/src/templates/web/ui-auth-payments-ai/template/src/components/providers/app-providers.tsx +8 -3
  224. package/src/templates/web/ui-auth-payments-ai/template/src/components/shared/header.tsx +229 -252
  225. package/src/templates/web/ui-auth-payments-ai/template/src/lib/actions/auth.ts +245 -245
  226. package/src/templates/web/ui-auth-payments-audio/template/src/app/billing/page.tsx +63 -192
  227. package/src/templates/web/ui-auth-payments-audio/template/src/app/checkout/page.tsx +109 -125
  228. package/src/templates/web/ui-auth-payments-audio/template/src/app/dashboard/page.tsx +27 -27
  229. package/src/templates/web/ui-auth-payments-audio/template/src/app/layout.tsx +40 -38
  230. package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +122 -385
  231. package/src/templates/web/ui-auth-payments-audio/template/src/app/setup/page.tsx +340 -344
  232. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/auth-status.tsx +37 -52
  233. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/login-form.tsx +49 -103
  234. package/src/templates/web/ui-auth-payments-audio/template/src/components/client/signup-form.tsx +60 -140
  235. package/src/templates/web/ui-auth-payments-audio/template/src/components/providers/app-providers.tsx +8 -3
  236. package/src/templates/web/ui-auth-payments-audio/template/src/components/shared/header.tsx +229 -252
  237. package/src/templates/web/ui-auth-payments-audio/template/src/lib/actions/auth.ts +3 -3
  238. package/src/templates/web/ui-auth-payments-video/template/src/app/billing/page.tsx +63 -192
  239. package/src/templates/web/ui-auth-payments-video/template/src/app/checkout/page.tsx +109 -125
  240. package/src/templates/web/ui-auth-payments-video/template/src/app/layout.tsx +38 -36
  241. package/src/templates/web/ui-auth-payments-video/template/src/app/login/page.tsx +9 -109
  242. package/src/templates/web/ui-auth-payments-video/template/src/app/page.tsx +132 -392
  243. package/src/templates/web/ui-auth-payments-video/template/src/app/setup/page.tsx +346 -350
  244. package/src/templates/web/ui-auth-payments-video/template/src/app/signup/page.tsx +9 -128
  245. package/src/templates/web/ui-auth-payments-video/template/src/components/client/login-form.tsx +90 -0
  246. package/src/templates/web/ui-auth-payments-video/template/src/components/client/signup-form.tsx +105 -0
  247. package/src/templates/web/ui-auth-payments-video/template/src/components/providers/app-providers.tsx +8 -3
  248. package/src/templates/web/ui-auth-payments-video/template/src/components/shared/header.tsx +229 -246
  249. package/src/templates/web/ui-only/template/eslint.config.mjs +14 -0
  250. package/src/templates/web/ui-only/template/src/app/checkout/page.tsx +2 -2
  251. package/src/templates/web/ui-only/template/src/app/login/page.tsx +69 -63
  252. package/src/templates/web/ui-only/template/src/app/page.tsx +69 -91
  253. package/src/templates/web/ui-only/template/src/app/signup/page.tsx +94 -79
  254. package/src/templates/web/ui-only/template/src/components/providers/app-providers.tsx +1 -6
  255. package/src/templates/web/ui-only/template/src/components/shared/header.tsx +90 -53
  256. package/src/templates/web/ui-package-test/template/package.json +19 -23
  257. package/src/templates/web/ui-package-test/template/postcss.config.mjs +8 -0
  258. package/src/templates/web/ui-package-test/template/src/app/globals.css +88 -0
  259. package/src/templates/web/ui-package-test/template/src/app/layout.tsx +27 -0
  260. package/src/templates/web/ui-package-test/template/src/app/page.tsx +46 -106
  261. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  262. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  263. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  264. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  265. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  266. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  267. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  268. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  269. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  270. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  271. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  272. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  273. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  274. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  275. package/dist/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  276. package/dist/templates/web/base/template/.eslintrc.js +0 -8
  277. package/dist/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  278. package/dist/templates/web/base/template/src/test/setup.ts +0 -74
  279. package/dist/templates/web/base/template/vitest.config.ts +0 -17
  280. package/dist/templates/web/ui-auth/template/.eslintrc.js +0 -8
  281. package/dist/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  282. package/dist/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  283. package/dist/templates/web/ui-auth/template/vitest.config.ts +0 -17
  284. package/dist/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  285. package/dist/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  286. package/dist/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  287. package/dist/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  288. package/dist/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  289. package/dist/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  290. package/dist/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  291. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  292. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  293. package/dist/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  294. package/dist/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  295. package/dist/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  296. package/dist/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  297. package/dist/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  298. package/dist/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  299. package/dist/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  300. package/dist/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  301. package/dist/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  302. package/dist/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  303. package/dist/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  304. package/dist/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  305. package/dist/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  306. package/dist/templates/web/ui-only/template/.eslintrc.js +0 -8
  307. package/dist/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  308. package/dist/templates/web/ui-only/template/src/test/setup.ts +0 -74
  309. package/dist/templates/web/ui-only/template/vitest.config.ts +0 -17
  310. package/src/templates/mobile/ui-auth-payments-ai-rag/template/README.md +0 -655
  311. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/(tabs)/ai.tsx +0 -683
  312. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app/_layout.tsx +0 -124
  313. package/src/templates/mobile/ui-auth-payments-ai-rag/template/app.json +0 -74
  314. package/src/templates/mobile/ui-auth-payments-ai-rag/template/babel.config.js +0 -25
  315. package/src/templates/mobile/ui-auth-payments-ai-rag/template/docs/MOBILE-SETUP.md +0 -787
  316. package/src/templates/mobile/ui-auth-payments-ai-rag/template/eas.json +0 -25
  317. package/src/templates/mobile/ui-auth-payments-ai-rag/template/expo-env.d.ts +0 -3
  318. package/src/templates/mobile/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -346
  319. package/src/templates/mobile/ui-auth-payments-ai-rag/template/jest-setup.ts +0 -37
  320. package/src/templates/mobile/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -180
  321. package/src/templates/mobile/ui-auth-payments-ai-rag/template/metro.config.js +0 -11
  322. package/src/templates/mobile/ui-auth-payments-ai-rag/template/package.json +0 -122
  323. package/src/templates/mobile/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -599
  324. package/src/templates/mobile/ui-auth-payments-ai-rag/template/tsconfig.json +0 -32
  325. package/src/templates/web/base/template/.eslintrc.js +0 -8
  326. package/src/templates/web/base/template/src/components/__tests__/example.test.tsx +0 -49
  327. package/src/templates/web/base/template/src/test/setup.ts +0 -74
  328. package/src/templates/web/base/template/vitest.config.ts +0 -17
  329. package/src/templates/web/ui-auth/template/.eslintrc.js +0 -8
  330. package/src/templates/web/ui-auth/template/src/components/__tests__/example.test.tsx +0 -49
  331. package/src/templates/web/ui-auth/template/src/test/setup.ts +0 -74
  332. package/src/templates/web/ui-auth/template/vitest.config.ts +0 -17
  333. package/src/templates/web/ui-auth-payments/template/src/components/__tests__/example.test.tsx +0 -49
  334. package/src/templates/web/ui-auth-payments/template/src/test/setup.ts +0 -74
  335. package/src/templates/web/ui-auth-payments/template/vitest.config.ts +0 -17
  336. package/src/templates/web/ui-auth-payments-ai/template/src/components/__tests__/example.test.tsx +0 -49
  337. package/src/templates/web/ui-auth-payments-ai/template/src/test/setup.ts +0 -74
  338. package/src/templates/web/ui-auth-payments-ai/template/vitest.config.ts +0 -17
  339. package/src/templates/web/ui-auth-payments-ai-rag/template/README.md +0 -434
  340. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/KnowledgeManager.tsx +0 -642
  341. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGAnalytics.tsx +0 -466
  342. package/src/templates/web/ui-auth-payments-ai-rag/template/components/rag/RAGChatInterface.tsx +0 -393
  343. package/src/templates/web/ui-auth-payments-ai-rag/template/docs/GETTING-STARTED.md +0 -457
  344. package/src/templates/web/ui-auth-payments-ai-rag/template/hooks/useRAGSystem.ts +0 -478
  345. package/src/templates/web/ui-auth-payments-ai-rag/template/lib/rag/config.ts +0 -250
  346. package/src/templates/web/ui-auth-payments-ai-rag/template/package.json +0 -73
  347. package/src/templates/web/ui-auth-payments-ai-rag/template/scripts/setup-rag.js +0 -622
  348. package/src/templates/web/ui-auth-payments-ai-rag/template/src/app/ai/page.tsx +0 -396
  349. package/src/templates/web/ui-auth-payments-audio/template/src/components/__tests__/example.test.tsx +0 -49
  350. package/src/templates/web/ui-auth-payments-audio/template/src/test/setup.ts +0 -74
  351. package/src/templates/web/ui-auth-payments-audio/template/vitest.config.ts +0 -17
  352. package/src/templates/web/ui-auth-payments-video/template/src/components/__tests__/example.test.tsx +0 -49
  353. package/src/templates/web/ui-auth-payments-video/template/src/test/setup.ts +0 -74
  354. package/src/templates/web/ui-auth-payments-video/template/vitest.config.ts +0 -17
  355. package/src/templates/web/ui-only/template/.eslintrc.js +0 -8
  356. package/src/templates/web/ui-only/template/src/components/__tests__/example.test.tsx +0 -49
  357. package/src/templates/web/ui-only/template/src/test/setup.ts +0 -74
  358. package/src/templates/web/ui-only/template/vitest.config.ts +0 -17
@@ -1,74 +0,0 @@
1
- import '@testing-library/jest-dom'
2
- import { vi, beforeEach, afterAll } from 'vitest'
3
-
4
- // Mock Next.js router
5
- vi.mock('next/navigation', () => ({
6
- useRouter: () => ({
7
- push: vi.fn(),
8
- back: vi.fn(),
9
- forward: vi.fn(),
10
- refresh: vi.fn(),
11
- replace: vi.fn(),
12
- prefetch: vi.fn(),
13
- }),
14
- useSearchParams: () => new URLSearchParams(),
15
- usePathname: () => '/',
16
- }))
17
-
18
- // Mock App SDK (optional - only if testing auth/payment components)
19
- vi.mock('@digilogiclabs/app-sdk', () => ({
20
- useAuth: () => ({
21
- user: null,
22
- loading: false,
23
- error: null,
24
- signIn: vi.fn(),
25
- signUp: vi.fn(),
26
- signOut: vi.fn(),
27
- signInWithOAuth: vi.fn(),
28
- }),
29
- usePayments: () => ({
30
- createCheckoutSession: vi.fn(),
31
- createPortalSession: vi.fn(),
32
- subscription: null,
33
- loading: false,
34
- }),
35
- DLLProvider: ({ children }: { children: React.ReactNode }) => children,
36
- }))
37
-
38
- // Global test utilities
39
- global.ResizeObserver = vi.fn().mockImplementation(() => ({
40
- observe: vi.fn(),
41
- unobserve: vi.fn(),
42
- disconnect: vi.fn(),
43
- }))
44
-
45
- // Suppress console warnings in tests unless needed
46
- const originalConsoleError = console.error
47
- const originalConsoleWarn = console.warn
48
-
49
- beforeEach(() => {
50
- console.error = (...args: any[]) => {
51
- if (
52
- typeof args[0] === 'string' &&
53
- args[0].includes('Warning: ReactDOM.render is no longer supported')
54
- ) {
55
- return
56
- }
57
- originalConsoleError.call(console, ...args)
58
- }
59
-
60
- console.warn = (...args: any[]) => {
61
- if (
62
- typeof args[0] === 'string' &&
63
- args[0].includes('useLayoutEffect does nothing on the server')
64
- ) {
65
- return
66
- }
67
- originalConsoleWarn.call(console, ...args)
68
- }
69
- })
70
-
71
- afterAll(() => {
72
- console.error = originalConsoleError
73
- console.warn = originalConsoleWarn
74
- })
@@ -1,17 +0,0 @@
1
- import { defineConfig } from 'vitest/config'
2
- import react from '@vitejs/plugin-react'
3
- import path from 'path'
4
-
5
- export default defineConfig({
6
- plugins: [react()],
7
- test: {
8
- environment: 'jsdom',
9
- setupFiles: ['./src/test/setup.ts'],
10
- globals: true,
11
- },
12
- resolve: {
13
- alias: {
14
- '@': path.resolve(__dirname, './src'),
15
- },
16
- },
17
- })
@@ -1,8 +0,0 @@
1
- /** @type {import('eslint').Linter.Config} */
2
- module.exports = {
3
- extends: ['next/core-web-vitals'],
4
- rules: {
5
- // Add any custom rules here
6
- },
7
- }
8
-
@@ -1,49 +0,0 @@
1
- /**
2
- * Example test file demonstrating testing patterns for SaaS Factory components
3
- *
4
- * This is optional and serves as a reference for testing your components.
5
- * You can delete this file if you don't need example tests.
6
- */
7
-
8
- import { render, screen } from '@testing-library/react'
9
- import { Button } from '@digilogiclabs/saas-factory-ui'
10
-
11
- // Example: Testing UI components
12
- describe('UI Components', () => {
13
- it('renders button with correct text', () => {
14
- render(<Button>Click me</Button>)
15
- expect(screen.getByRole('button', { name: /click me/i })).toBeInTheDocument()
16
- })
17
-
18
- it('button can be disabled', () => {
19
- render(<Button disabled>Disabled button</Button>)
20
- expect(screen.getByRole('button')).toBeDisabled()
21
- })
22
- })
23
-
24
- // Example: Testing custom components
25
- function MockComponent({ title }: { title: string }) {
26
- return <h1>{title}</h1>
27
- }
28
-
29
- describe('Custom Components', () => {
30
- it('renders with correct title', () => {
31
- render(<MockComponent title="Test Title" />)
32
- expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Test Title')
33
- })
34
- })
35
-
36
- // Example: Testing utilities
37
- function formatCurrency(amount: number): string {
38
- return new Intl.NumberFormat('en-US', {
39
- style: 'currency',
40
- currency: 'USD',
41
- }).format(amount)
42
- }
43
-
44
- describe('Utilities', () => {
45
- it('formats currency correctly', () => {
46
- expect(formatCurrency(1000)).toBe('$1,000.00')
47
- expect(formatCurrency(0)).toBe('$0.00')
48
- })
49
- })
@@ -1,74 +0,0 @@
1
- import '@testing-library/jest-dom'
2
- import { vi, beforeEach, afterAll } from 'vitest'
3
-
4
- // Mock Next.js router
5
- vi.mock('next/navigation', () => ({
6
- useRouter: () => ({
7
- push: vi.fn(),
8
- back: vi.fn(),
9
- forward: vi.fn(),
10
- refresh: vi.fn(),
11
- replace: vi.fn(),
12
- prefetch: vi.fn(),
13
- }),
14
- useSearchParams: () => new URLSearchParams(),
15
- usePathname: () => '/',
16
- }))
17
-
18
- // Mock App SDK (optional - only if testing auth/payment components)
19
- vi.mock('@digilogiclabs/app-sdk', () => ({
20
- useAuth: () => ({
21
- user: null,
22
- loading: false,
23
- error: null,
24
- signIn: vi.fn(),
25
- signUp: vi.fn(),
26
- signOut: vi.fn(),
27
- signInWithOAuth: vi.fn(),
28
- }),
29
- usePayments: () => ({
30
- createCheckoutSession: vi.fn(),
31
- createPortalSession: vi.fn(),
32
- subscription: null,
33
- loading: false,
34
- }),
35
- DLLProvider: ({ children }: { children: React.ReactNode }) => children,
36
- }))
37
-
38
- // Global test utilities
39
- global.ResizeObserver = vi.fn().mockImplementation(() => ({
40
- observe: vi.fn(),
41
- unobserve: vi.fn(),
42
- disconnect: vi.fn(),
43
- }))
44
-
45
- // Suppress console warnings in tests unless needed
46
- const originalConsoleError = console.error
47
- const originalConsoleWarn = console.warn
48
-
49
- beforeEach(() => {
50
- console.error = (...args: any[]) => {
51
- if (
52
- typeof args[0] === 'string' &&
53
- args[0].includes('Warning: ReactDOM.render is no longer supported')
54
- ) {
55
- return
56
- }
57
- originalConsoleError.call(console, ...args)
58
- }
59
-
60
- console.warn = (...args: any[]) => {
61
- if (
62
- typeof args[0] === 'string' &&
63
- args[0].includes('useLayoutEffect does nothing on the server')
64
- ) {
65
- return
66
- }
67
- originalConsoleWarn.call(console, ...args)
68
- }
69
- })
70
-
71
- afterAll(() => {
72
- console.error = originalConsoleError
73
- console.warn = originalConsoleWarn
74
- })
@@ -1,17 +0,0 @@
1
- import { defineConfig } from 'vitest/config'
2
- import react from '@vitejs/plugin-react'
3
- import path from 'path'
4
-
5
- export default defineConfig({
6
- plugins: [react()],
7
- test: {
8
- environment: 'jsdom',
9
- setupFiles: ['./src/test/setup.ts'],
10
- globals: true,
11
- },
12
- resolve: {
13
- alias: {
14
- '@': path.resolve(__dirname, './src'),
15
- },
16
- },
17
- })
@@ -1,49 +0,0 @@
1
- /**
2
- * Example test file demonstrating testing patterns for SaaS Factory components
3
- *
4
- * This is optional and serves as a reference for testing your components.
5
- * You can delete this file if you don't need example tests.
6
- */
7
-
8
- import { render, screen } from '@testing-library/react'
9
- import { Button } from '@digilogiclabs/saas-factory-ui'
10
-
11
- // Example: Testing UI components
12
- describe('UI Components', () => {
13
- it('renders button with correct text', () => {
14
- render(<Button>Click me</Button>)
15
- expect(screen.getByRole('button', { name: /click me/i })).toBeInTheDocument()
16
- })
17
-
18
- it('button can be disabled', () => {
19
- render(<Button disabled>Disabled button</Button>)
20
- expect(screen.getByRole('button')).toBeDisabled()
21
- })
22
- })
23
-
24
- // Example: Testing custom components
25
- function MockComponent({ title }: { title: string }) {
26
- return <h1>{title}</h1>
27
- }
28
-
29
- describe('Custom Components', () => {
30
- it('renders with correct title', () => {
31
- render(<MockComponent title="Test Title" />)
32
- expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Test Title')
33
- })
34
- })
35
-
36
- // Example: Testing utilities
37
- function formatCurrency(amount: number): string {
38
- return new Intl.NumberFormat('en-US', {
39
- style: 'currency',
40
- currency: 'USD',
41
- }).format(amount)
42
- }
43
-
44
- describe('Utilities', () => {
45
- it('formats currency correctly', () => {
46
- expect(formatCurrency(1000)).toBe('$1,000.00')
47
- expect(formatCurrency(0)).toBe('$0.00')
48
- })
49
- })
@@ -1,74 +0,0 @@
1
- import '@testing-library/jest-dom'
2
- import { vi, beforeEach, afterAll } from 'vitest'
3
-
4
- // Mock Next.js router
5
- vi.mock('next/navigation', () => ({
6
- useRouter: () => ({
7
- push: vi.fn(),
8
- back: vi.fn(),
9
- forward: vi.fn(),
10
- refresh: vi.fn(),
11
- replace: vi.fn(),
12
- prefetch: vi.fn(),
13
- }),
14
- useSearchParams: () => new URLSearchParams(),
15
- usePathname: () => '/',
16
- }))
17
-
18
- // Mock App SDK (optional - only if testing auth/payment components)
19
- vi.mock('@digilogiclabs/app-sdk', () => ({
20
- useAuth: () => ({
21
- user: null,
22
- loading: false,
23
- error: null,
24
- signIn: vi.fn(),
25
- signUp: vi.fn(),
26
- signOut: vi.fn(),
27
- signInWithOAuth: vi.fn(),
28
- }),
29
- usePayments: () => ({
30
- createCheckoutSession: vi.fn(),
31
- createPortalSession: vi.fn(),
32
- subscription: null,
33
- loading: false,
34
- }),
35
- DLLProvider: ({ children }: { children: React.ReactNode }) => children,
36
- }))
37
-
38
- // Global test utilities
39
- global.ResizeObserver = vi.fn().mockImplementation(() => ({
40
- observe: vi.fn(),
41
- unobserve: vi.fn(),
42
- disconnect: vi.fn(),
43
- }))
44
-
45
- // Suppress console warnings in tests unless needed
46
- const originalConsoleError = console.error
47
- const originalConsoleWarn = console.warn
48
-
49
- beforeEach(() => {
50
- console.error = (...args: any[]) => {
51
- if (
52
- typeof args[0] === 'string' &&
53
- args[0].includes('Warning: ReactDOM.render is no longer supported')
54
- ) {
55
- return
56
- }
57
- originalConsoleError.call(console, ...args)
58
- }
59
-
60
- console.warn = (...args: any[]) => {
61
- if (
62
- typeof args[0] === 'string' &&
63
- args[0].includes('useLayoutEffect does nothing on the server')
64
- ) {
65
- return
66
- }
67
- originalConsoleWarn.call(console, ...args)
68
- }
69
- })
70
-
71
- afterAll(() => {
72
- console.error = originalConsoleError
73
- console.warn = originalConsoleWarn
74
- })
@@ -1,17 +0,0 @@
1
- import { defineConfig } from 'vitest/config'
2
- import react from '@vitejs/plugin-react'
3
- import path from 'path'
4
-
5
- export default defineConfig({
6
- plugins: [react()],
7
- test: {
8
- environment: 'jsdom',
9
- setupFiles: ['./src/test/setup.ts'],
10
- globals: true,
11
- },
12
- resolve: {
13
- alias: {
14
- '@': path.resolve(__dirname, './src'),
15
- },
16
- },
17
- })
@@ -1,49 +0,0 @@
1
- /**
2
- * Example test file demonstrating testing patterns for SaaS Factory components
3
- *
4
- * This is optional and serves as a reference for testing your components.
5
- * You can delete this file if you don't need example tests.
6
- */
7
-
8
- import { render, screen } from '@testing-library/react'
9
- import { Button } from '@digilogiclabs/saas-factory-ui'
10
-
11
- // Example: Testing UI components
12
- describe('UI Components', () => {
13
- it('renders button with correct text', () => {
14
- render(<Button>Click me</Button>)
15
- expect(screen.getByRole('button', { name: /click me/i })).toBeInTheDocument()
16
- })
17
-
18
- it('button can be disabled', () => {
19
- render(<Button disabled>Disabled button</Button>)
20
- expect(screen.getByRole('button')).toBeDisabled()
21
- })
22
- })
23
-
24
- // Example: Testing custom components
25
- function MockComponent({ title }: { title: string }) {
26
- return <h1>{title}</h1>
27
- }
28
-
29
- describe('Custom Components', () => {
30
- it('renders with correct title', () => {
31
- render(<MockComponent title="Test Title" />)
32
- expect(screen.getByRole('heading', { level: 1 })).toHaveTextContent('Test Title')
33
- })
34
- })
35
-
36
- // Example: Testing utilities
37
- function formatCurrency(amount: number): string {
38
- return new Intl.NumberFormat('en-US', {
39
- style: 'currency',
40
- currency: 'USD',
41
- }).format(amount)
42
- }
43
-
44
- describe('Utilities', () => {
45
- it('formats currency correctly', () => {
46
- expect(formatCurrency(1000)).toBe('$1,000.00')
47
- expect(formatCurrency(0)).toBe('$0.00')
48
- })
49
- })
@@ -1,74 +0,0 @@
1
- import '@testing-library/jest-dom'
2
- import { vi, beforeEach, afterAll } from 'vitest'
3
-
4
- // Mock Next.js router
5
- vi.mock('next/navigation', () => ({
6
- useRouter: () => ({
7
- push: vi.fn(),
8
- back: vi.fn(),
9
- forward: vi.fn(),
10
- refresh: vi.fn(),
11
- replace: vi.fn(),
12
- prefetch: vi.fn(),
13
- }),
14
- useSearchParams: () => new URLSearchParams(),
15
- usePathname: () => '/',
16
- }))
17
-
18
- // Mock App SDK (optional - only if testing auth/payment components)
19
- vi.mock('@digilogiclabs/app-sdk', () => ({
20
- useAuth: () => ({
21
- user: null,
22
- loading: false,
23
- error: null,
24
- signIn: vi.fn(),
25
- signUp: vi.fn(),
26
- signOut: vi.fn(),
27
- signInWithOAuth: vi.fn(),
28
- }),
29
- usePayments: () => ({
30
- createCheckoutSession: vi.fn(),
31
- createPortalSession: vi.fn(),
32
- subscription: null,
33
- loading: false,
34
- }),
35
- DLLProvider: ({ children }: { children: React.ReactNode }) => children,
36
- }))
37
-
38
- // Global test utilities
39
- global.ResizeObserver = vi.fn().mockImplementation(() => ({
40
- observe: vi.fn(),
41
- unobserve: vi.fn(),
42
- disconnect: vi.fn(),
43
- }))
44
-
45
- // Suppress console warnings in tests unless needed
46
- const originalConsoleError = console.error
47
- const originalConsoleWarn = console.warn
48
-
49
- beforeEach(() => {
50
- console.error = (...args: any[]) => {
51
- if (
52
- typeof args[0] === 'string' &&
53
- args[0].includes('Warning: ReactDOM.render is no longer supported')
54
- ) {
55
- return
56
- }
57
- originalConsoleError.call(console, ...args)
58
- }
59
-
60
- console.warn = (...args: any[]) => {
61
- if (
62
- typeof args[0] === 'string' &&
63
- args[0].includes('useLayoutEffect does nothing on the server')
64
- ) {
65
- return
66
- }
67
- originalConsoleWarn.call(console, ...args)
68
- }
69
- })
70
-
71
- afterAll(() => {
72
- console.error = originalConsoleError
73
- console.warn = originalConsoleWarn
74
- })
@@ -1,17 +0,0 @@
1
- import { defineConfig } from 'vitest/config'
2
- import react from '@vitejs/plugin-react'
3
- import path from 'path'
4
-
5
- export default defineConfig({
6
- plugins: [react()],
7
- test: {
8
- environment: 'jsdom',
9
- setupFiles: ['./src/test/setup.ts'],
10
- globals: true,
11
- },
12
- resolve: {
13
- alias: {
14
- '@': path.resolve(__dirname, './src'),
15
- },
16
- },
17
- })