@better-t-stack/template-generator 3.13.2-dev.6c6cffb → 3.13.2-dev.c1daaba

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 (425) hide show
  1. package/dist/core/template-reader.d.mts +10 -0
  2. package/dist/core/template-reader.d.mts.map +1 -0
  3. package/dist/{template-reader.mjs → core/template-reader.mjs} +4 -31
  4. package/dist/core/template-reader.mjs.map +1 -0
  5. package/dist/fs-writer.d.mts.map +1 -1
  6. package/dist/fs-writer.mjs +11 -24
  7. package/dist/fs-writer.mjs.map +1 -1
  8. package/dist/index.d.mts +15 -37
  9. package/dist/index.d.mts.map +1 -1
  10. package/dist/index.mjs +20023 -19988
  11. package/dist/index.mjs.map +1 -1
  12. package/package.json +5 -6
  13. package/dist/template-reader.d.mts +0 -30
  14. package/dist/template-reader.d.mts.map +0 -1
  15. package/dist/template-reader.mjs.map +0 -1
  16. package/scripts/generate-templates.ts +0 -97
  17. package/templates/addons/biome/biome.json.hbs +0 -96
  18. package/templates/addons/husky/.husky/pre-commit +0 -1
  19. package/templates/addons/pwa/apps/web/next/public/favicon/apple-touch-icon.png +0 -0
  20. package/templates/addons/pwa/apps/web/next/public/favicon/favicon-96x96.png +0 -0
  21. package/templates/addons/pwa/apps/web/next/public/favicon/favicon.svg +0 -6
  22. package/templates/addons/pwa/apps/web/next/public/favicon/site.webmanifest.hbs +0 -21
  23. package/templates/addons/pwa/apps/web/next/public/favicon/web-app-manifest-192x192.png +0 -0
  24. package/templates/addons/pwa/apps/web/next/public/favicon/web-app-manifest-512x512.png +0 -0
  25. package/templates/addons/pwa/apps/web/next/src/app/manifest.ts.hbs +0 -26
  26. package/templates/addons/pwa/apps/web/vite/public/logo.png +0 -0
  27. package/templates/addons/pwa/apps/web/vite/pwa-assets.config.ts.hbs +0 -12
  28. package/templates/addons/ruler/.ruler/bts.md.hbs +0 -142
  29. package/templates/addons/ruler/.ruler/ruler.toml.hbs +0 -80
  30. package/templates/addons/turborepo/turbo.json.hbs +0 -74
  31. package/templates/addons/ultracite/biome.json.hbs +0 -26
  32. package/templates/api/orpc/fullstack/next/src/app/api/rpc/[[...rest]]/route.ts.hbs +0 -50
  33. package/templates/api/orpc/fullstack/tanstack-start/src/routes/api/rpc/$.ts.hbs +0 -58
  34. package/templates/api/orpc/native/utils/orpc.ts.hbs +0 -39
  35. package/templates/api/orpc/server/_gitignore +0 -34
  36. package/templates/api/orpc/server/package.json.hbs +0 -15
  37. package/templates/api/orpc/server/src/context.ts.hbs +0 -148
  38. package/templates/api/orpc/server/src/index.ts.hbs +0 -21
  39. package/templates/api/orpc/server/src/routers/index.ts.hbs +0 -55
  40. package/templates/api/orpc/server/tsconfig.json.hbs +0 -10
  41. package/templates/api/orpc/web/nuxt/app/plugins/orpc.ts.hbs +0 -32
  42. package/templates/api/orpc/web/nuxt/app/plugins/vue-query.ts.hbs +0 -44
  43. package/templates/api/orpc/web/react/base/src/utils/orpc.ts.hbs +0 -113
  44. package/templates/api/orpc/web/solid/src/utils/orpc.ts.hbs +0 -30
  45. package/templates/api/orpc/web/svelte/src/lib/orpc.ts.hbs +0 -30
  46. package/templates/api/trpc/fullstack/next/src/app/api/trpc/[trpc]/route.ts.hbs +0 -14
  47. package/templates/api/trpc/fullstack/tanstack-start/src/routes/api/trpc/$.ts.hbs +0 -22
  48. package/templates/api/trpc/native/utils/trpc.ts.hbs +0 -37
  49. package/templates/api/trpc/server/_gitignore +0 -34
  50. package/templates/api/trpc/server/package.json.hbs +0 -14
  51. package/templates/api/trpc/server/src/context.ts.hbs +0 -148
  52. package/templates/api/trpc/server/src/index.ts.hbs +0 -26
  53. package/templates/api/trpc/server/src/routers/index.ts.hbs +0 -55
  54. package/templates/api/trpc/server/tsconfig.json.hbs +0 -10
  55. package/templates/api/trpc/web/react/base/src/utils/trpc.ts.hbs +0 -97
  56. package/templates/auth/better-auth/convex/backend/convex/auth.config.ts.hbs +0 -6
  57. package/templates/auth/better-auth/convex/backend/convex/auth.ts.hbs +0 -68
  58. package/templates/auth/better-auth/convex/backend/convex/http.ts.hbs +0 -12
  59. package/templates/auth/better-auth/convex/backend/convex/privateData.ts.hbs +0 -17
  60. package/templates/auth/better-auth/convex/native/bare/components/sign-in.tsx.hbs +0 -127
  61. package/templates/auth/better-auth/convex/native/bare/components/sign-up.tsx.hbs +0 -138
  62. package/templates/auth/better-auth/convex/native/base/lib/auth-client.ts.hbs +0 -18
  63. package/templates/auth/better-auth/convex/native/unistyles/components/sign-in.tsx.hbs +0 -127
  64. package/templates/auth/better-auth/convex/native/unistyles/components/sign-up.tsx.hbs +0 -145
  65. package/templates/auth/better-auth/convex/native/uniwind/components/sign-in.tsx.hbs +0 -73
  66. package/templates/auth/better-auth/convex/native/uniwind/components/sign-up.tsx.hbs +0 -85
  67. package/templates/auth/better-auth/convex/web/react/next/src/app/api/auth/[...all]/route.ts.hbs +0 -3
  68. package/templates/auth/better-auth/convex/web/react/next/src/app/dashboard/page.tsx.hbs +0 -40
  69. package/templates/auth/better-auth/convex/web/react/next/src/components/sign-in-form.tsx.hbs +0 -129
  70. package/templates/auth/better-auth/convex/web/react/next/src/components/sign-up-form.tsx.hbs +0 -154
  71. package/templates/auth/better-auth/convex/web/react/next/src/components/user-menu.tsx.hbs +0 -48
  72. package/templates/auth/better-auth/convex/web/react/next/src/lib/auth-client.ts.hbs +0 -6
  73. package/templates/auth/better-auth/convex/web/react/next/src/lib/auth-server.ts.hbs +0 -16
  74. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/components/sign-in-form.tsx.hbs +0 -133
  75. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/components/sign-up-form.tsx.hbs +0 -158
  76. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/components/user-menu.tsx.hbs +0 -52
  77. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/lib/auth-client.ts.hbs +0 -11
  78. package/templates/auth/better-auth/convex/web/react/tanstack-router/src/routes/dashboard.tsx.hbs +0 -43
  79. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/components/sign-in-form.tsx.hbs +0 -133
  80. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/components/sign-up-form.tsx.hbs +0 -158
  81. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/components/user-menu.tsx.hbs +0 -47
  82. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/lib/auth-client.ts.hbs +0 -6
  83. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/lib/auth-server.ts.hbs +0 -13
  84. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/routes/api/auth/$.ts.hbs +0 -11
  85. package/templates/auth/better-auth/convex/web/react/tanstack-start/src/routes/dashboard.tsx.hbs +0 -43
  86. package/templates/auth/better-auth/fullstack/next/src/app/api/auth/[...all]/route.ts.hbs +0 -4
  87. package/templates/auth/better-auth/fullstack/tanstack-start/src/routes/api/auth/$.ts.hbs +0 -15
  88. package/templates/auth/better-auth/native/bare/app/(drawer)/index.tsx.hbs +0 -186
  89. package/templates/auth/better-auth/native/bare/components/sign-in.tsx.hbs +0 -131
  90. package/templates/auth/better-auth/native/bare/components/sign-up.tsx.hbs +0 -150
  91. package/templates/auth/better-auth/native/base/lib/auth-client.ts.hbs +0 -16
  92. package/templates/auth/better-auth/native/unistyles/app/(drawer)/index.tsx.hbs +0 -187
  93. package/templates/auth/better-auth/native/unistyles/components/sign-in.tsx.hbs +0 -139
  94. package/templates/auth/better-auth/native/unistyles/components/sign-up.tsx.hbs +0 -157
  95. package/templates/auth/better-auth/native/uniwind/app/(drawer)/index.tsx.hbs +0 -123
  96. package/templates/auth/better-auth/native/uniwind/components/sign-in.tsx.hbs +0 -87
  97. package/templates/auth/better-auth/native/uniwind/components/sign-up.tsx.hbs +0 -128
  98. package/templates/auth/better-auth/server/base/_gitignore +0 -34
  99. package/templates/auth/better-auth/server/base/package.json.hbs +0 -14
  100. package/templates/auth/better-auth/server/base/src/index.ts.hbs +0 -304
  101. package/templates/auth/better-auth/server/base/tsconfig.json.hbs +0 -10
  102. package/templates/auth/better-auth/server/db/drizzle/mysql/src/schema/auth.ts.hbs +0 -100
  103. package/templates/auth/better-auth/server/db/drizzle/postgres/src/schema/auth.ts.hbs +0 -93
  104. package/templates/auth/better-auth/server/db/drizzle/sqlite/src/schema/auth.ts.hbs +0 -107
  105. package/templates/auth/better-auth/server/db/mongoose/mongodb/src/models/auth.model.ts.hbs +0 -68
  106. package/templates/auth/better-auth/server/db/prisma/mongodb/prisma/schema/auth.prisma.hbs +0 -62
  107. package/templates/auth/better-auth/server/db/prisma/mysql/prisma/schema/auth.prisma.hbs +0 -62
  108. package/templates/auth/better-auth/server/db/prisma/postgres/prisma/schema/auth.prisma.hbs +0 -62
  109. package/templates/auth/better-auth/server/db/prisma/sqlite/prisma/schema/auth.prisma.hbs +0 -62
  110. package/templates/auth/better-auth/web/nuxt/app/components/SignInForm.vue.hbs +0 -82
  111. package/templates/auth/better-auth/web/nuxt/app/components/SignUpForm.vue.hbs +0 -91
  112. package/templates/auth/better-auth/web/nuxt/app/components/UserMenu.vue.hbs +0 -42
  113. package/templates/auth/better-auth/web/nuxt/app/middleware/auth.ts.hbs +0 -14
  114. package/templates/auth/better-auth/web/nuxt/app/pages/dashboard.vue.hbs +0 -99
  115. package/templates/auth/better-auth/web/nuxt/app/pages/login.vue.hbs +0 -27
  116. package/templates/auth/better-auth/web/nuxt/app/plugins/auth-client.ts.hbs +0 -21
  117. package/templates/auth/better-auth/web/react/base/src/lib/auth-client.ts.hbs +0 -16
  118. package/templates/auth/better-auth/web/react/next/src/app/dashboard/dashboard.tsx.hbs +0 -60
  119. package/templates/auth/better-auth/web/react/next/src/app/dashboard/page.tsx.hbs +0 -42
  120. package/templates/auth/better-auth/web/react/next/src/app/login/page.tsx.hbs +0 -16
  121. package/templates/auth/better-auth/web/react/next/src/components/sign-in-form.tsx.hbs +0 -135
  122. package/templates/auth/better-auth/web/react/next/src/components/sign-up-form.tsx.hbs +0 -160
  123. package/templates/auth/better-auth/web/react/next/src/components/user-menu.tsx.hbs +0 -62
  124. package/templates/auth/better-auth/web/react/react-router/src/components/sign-in-form.tsx.hbs +0 -135
  125. package/templates/auth/better-auth/web/react/react-router/src/components/sign-up-form.tsx.hbs +0 -160
  126. package/templates/auth/better-auth/web/react/react-router/src/components/user-menu.tsx.hbs +0 -61
  127. package/templates/auth/better-auth/web/react/react-router/src/routes/dashboard.tsx.hbs +0 -80
  128. package/templates/auth/better-auth/web/react/react-router/src/routes/login.tsx.hbs +0 -13
  129. package/templates/auth/better-auth/web/react/tanstack-router/src/components/sign-in-form.tsx.hbs +0 -135
  130. package/templates/auth/better-auth/web/react/tanstack-router/src/components/sign-up-form.tsx.hbs +0 -160
  131. package/templates/auth/better-auth/web/react/tanstack-router/src/components/user-menu.tsx.hbs +0 -63
  132. package/templates/auth/better-auth/web/react/tanstack-router/src/routes/dashboard.tsx.hbs +0 -71
  133. package/templates/auth/better-auth/web/react/tanstack-router/src/routes/login.tsx.hbs +0 -18
  134. package/templates/auth/better-auth/web/react/tanstack-start/src/components/sign-in-form.tsx.hbs +0 -135
  135. package/templates/auth/better-auth/web/react/tanstack-start/src/components/sign-up-form.tsx.hbs +0 -160
  136. package/templates/auth/better-auth/web/react/tanstack-start/src/components/user-menu.tsx.hbs +0 -63
  137. package/templates/auth/better-auth/web/react/tanstack-start/src/functions/get-user.ts.hbs +0 -6
  138. package/templates/auth/better-auth/web/react/tanstack-start/src/middleware/auth.ts.hbs +0 -31
  139. package/templates/auth/better-auth/web/react/tanstack-start/src/routes/dashboard.tsx.hbs +0 -84
  140. package/templates/auth/better-auth/web/react/tanstack-start/src/routes/login.tsx.hbs +0 -18
  141. package/templates/auth/better-auth/web/solid/src/components/sign-in-form.tsx.hbs +0 -124
  142. package/templates/auth/better-auth/web/solid/src/components/sign-up-form.tsx.hbs +0 -148
  143. package/templates/auth/better-auth/web/solid/src/components/user-menu.tsx.hbs +0 -55
  144. package/templates/auth/better-auth/web/solid/src/lib/auth-client.ts.hbs +0 -12
  145. package/templates/auth/better-auth/web/solid/src/routes/dashboard.tsx.hbs +0 -67
  146. package/templates/auth/better-auth/web/solid/src/routes/login.tsx.hbs +0 -23
  147. package/templates/auth/better-auth/web/svelte/src/components/SignInForm.svelte.hbs +0 -109
  148. package/templates/auth/better-auth/web/svelte/src/components/SignUpForm.svelte.hbs +0 -142
  149. package/templates/auth/better-auth/web/svelte/src/components/UserMenu.svelte.hbs +0 -52
  150. package/templates/auth/better-auth/web/svelte/src/lib/auth-client.ts.hbs +0 -12
  151. package/templates/auth/better-auth/web/svelte/src/routes/dashboard/+page.svelte.hbs +0 -59
  152. package/templates/auth/better-auth/web/svelte/src/routes/login/+page.svelte.hbs +0 -12
  153. package/templates/auth/clerk/convex/backend/convex/auth.config.ts.hbs +0 -12
  154. package/templates/auth/clerk/convex/backend/convex/privateData.ts.hbs +0 -16
  155. package/templates/auth/clerk/convex/native/base/app/(auth)/_layout.tsx.hbs +0 -12
  156. package/templates/auth/clerk/convex/native/base/app/(auth)/sign-in.tsx.hbs +0 -67
  157. package/templates/auth/clerk/convex/native/base/app/(auth)/sign-up.tsx.hbs +0 -110
  158. package/templates/auth/clerk/convex/native/base/components/sign-out-button.tsx.hbs +0 -27
  159. package/templates/auth/clerk/convex/web/react/next/src/app/dashboard/page.tsx.hbs +0 -29
  160. package/templates/auth/clerk/convex/web/react/next/src/middleware.ts.hbs +0 -12
  161. package/templates/auth/clerk/convex/web/react/react-router/src/routes/dashboard.tsx.hbs +0 -32
  162. package/templates/auth/clerk/convex/web/react/tanstack-router/src/routes/dashboard.tsx.hbs +0 -37
  163. package/templates/auth/clerk/convex/web/react/tanstack-start/src/routes/dashboard.tsx.hbs +0 -37
  164. package/templates/auth/clerk/convex/web/react/tanstack-start/src/start.ts.hbs +0 -8
  165. package/templates/backend/convex/packages/backend/_gitignore +0 -2
  166. package/templates/backend/convex/packages/backend/convex/README.md +0 -90
  167. package/templates/backend/convex/packages/backend/convex/convex.config.ts.hbs +0 -17
  168. package/templates/backend/convex/packages/backend/convex/healthCheck.ts.hbs +0 -7
  169. package/templates/backend/convex/packages/backend/convex/schema.ts.hbs +0 -11
  170. package/templates/backend/convex/packages/backend/convex/tsconfig.json.hbs +0 -25
  171. package/templates/backend/convex/packages/backend/package.json.hbs +0 -15
  172. package/templates/backend/server/base/_gitignore +0 -55
  173. package/templates/backend/server/base/package.json.hbs +0 -17
  174. package/templates/backend/server/base/tsconfig.json.hbs +0 -13
  175. package/templates/backend/server/base/tsdown.config.ts.hbs +0 -9
  176. package/templates/backend/server/elysia/src/index.ts.hbs +0 -122
  177. package/templates/backend/server/express/src/index.ts.hbs +0 -126
  178. package/templates/backend/server/fastify/src/index.ts.hbs +0 -187
  179. package/templates/backend/server/hono/src/index.ts.hbs +0 -171
  180. package/templates/base/_gitignore +0 -50
  181. package/templates/base/package.json.hbs +0 -10
  182. package/templates/base/tsconfig.json.hbs +0 -3
  183. package/templates/db/base/_gitignore +0 -35
  184. package/templates/db/base/package.json.hbs +0 -14
  185. package/templates/db/base/tsconfig.json.hbs +0 -10
  186. package/templates/db/drizzle/base/src/schema/index.ts.hbs +0 -7
  187. package/templates/db/drizzle/mysql/drizzle.config.ts.hbs +0 -19
  188. package/templates/db/drizzle/mysql/src/index.ts.hbs +0 -54
  189. package/templates/db/drizzle/postgres/drizzle.config.ts.hbs +0 -19
  190. package/templates/db/drizzle/postgres/src/index.ts.hbs +0 -44
  191. package/templates/db/drizzle/sqlite/drizzle.config.ts.hbs +0 -28
  192. package/templates/db/drizzle/sqlite/src/index.ts.hbs +0 -39
  193. package/templates/db/mongoose/mongodb/src/index.ts.hbs +0 -10
  194. package/templates/db/prisma/mongodb/prisma/schema/schema.prisma.hbs +0 -19
  195. package/templates/db/prisma/mongodb/prisma.config.ts.hbs +0 -18
  196. package/templates/db/prisma/mongodb/src/index.ts.hbs +0 -5
  197. package/templates/db/prisma/mysql/prisma/schema/schema.prisma.hbs +0 -21
  198. package/templates/db/prisma/mysql/prisma.config.ts.hbs +0 -21
  199. package/templates/db/prisma/mysql/src/index.ts.hbs +0 -55
  200. package/templates/db/prisma/postgres/prisma/schema/schema.prisma.hbs +0 -21
  201. package/templates/db/prisma/postgres/prisma.config.ts.hbs +0 -21
  202. package/templates/db/prisma/postgres/src/index.ts.hbs +0 -69
  203. package/templates/db/prisma/sqlite/prisma/schema/schema.prisma.hbs +0 -18
  204. package/templates/db/prisma/sqlite/prisma.config.ts.hbs +0 -25
  205. package/templates/db/prisma/sqlite/src/index.ts.hbs +0 -25
  206. package/templates/db-setup/docker-compose/mongodb/docker-compose.yml.hbs +0 -23
  207. package/templates/db-setup/docker-compose/mysql/docker-compose.yml.hbs +0 -24
  208. package/templates/db-setup/docker-compose/postgres/docker-compose.yml.hbs +0 -23
  209. package/templates/examples/ai/convex/packages/backend/convex/agent.ts.hbs +0 -9
  210. package/templates/examples/ai/convex/packages/backend/convex/chat.ts.hbs +0 -67
  211. package/templates/examples/ai/fullstack/next/src/app/api/ai/route.ts.hbs +0 -20
  212. package/templates/examples/ai/fullstack/tanstack-start/src/routes/api/ai/$.ts.hbs +0 -36
  213. package/templates/examples/ai/native/bare/app/(drawer)/ai.tsx.hbs +0 -586
  214. package/templates/examples/ai/native/bare/polyfills.js +0 -22
  215. package/templates/examples/ai/native/unistyles/app/(drawer)/ai.tsx.hbs +0 -588
  216. package/templates/examples/ai/native/unistyles/polyfills.js +0 -22
  217. package/templates/examples/ai/native/uniwind/app/(drawer)/ai.tsx.hbs +0 -331
  218. package/templates/examples/ai/native/uniwind/polyfills.js +0 -22
  219. package/templates/examples/ai/web/nuxt/app/pages/ai.vue.hbs +0 -54
  220. package/templates/examples/ai/web/react/next/src/app/ai/page.tsx.hbs +0 -267
  221. package/templates/examples/ai/web/react/react-router/src/routes/ai.tsx.hbs +0 -235
  222. package/templates/examples/ai/web/react/tanstack-router/src/routes/ai.tsx.hbs +0 -242
  223. package/templates/examples/ai/web/react/tanstack-start/src/routes/ai.tsx.hbs +0 -243
  224. package/templates/examples/ai/web/svelte/src/routes/ai/+page.svelte.hbs +0 -107
  225. package/templates/examples/todo/convex/packages/backend/convex/todos.ts.hbs +0 -42
  226. package/templates/examples/todo/native/bare/app/(drawer)/todos.tsx.hbs +0 -521
  227. package/templates/examples/todo/native/unistyles/app/(drawer)/todos.tsx.hbs +0 -340
  228. package/templates/examples/todo/native/uniwind/app/(drawer)/todos.tsx.hbs +0 -282
  229. package/templates/examples/todo/server/drizzle/base/src/routers/todo.ts.hbs +0 -75
  230. package/templates/examples/todo/server/drizzle/mysql/src/schema/todo.ts +0 -7
  231. package/templates/examples/todo/server/drizzle/postgres/src/schema/todo.ts +0 -7
  232. package/templates/examples/todo/server/drizzle/sqlite/src/schema/todo.ts +0 -7
  233. package/templates/examples/todo/server/mongoose/base/src/routers/todo.ts.hbs +0 -66
  234. package/templates/examples/todo/server/mongoose/mongodb/src/models/todo.model.ts.hbs +0 -24
  235. package/templates/examples/todo/server/prisma/base/src/routers/todo.ts.hbs +0 -116
  236. package/templates/examples/todo/server/prisma/mongodb/prisma/schema/todo.prisma.hbs +0 -7
  237. package/templates/examples/todo/server/prisma/mysql/prisma/schema/todo.prisma.hbs +0 -7
  238. package/templates/examples/todo/server/prisma/postgres/prisma/schema/todo.prisma.hbs +0 -7
  239. package/templates/examples/todo/server/prisma/sqlite/prisma/schema/todo.prisma.hbs +0 -7
  240. package/templates/examples/todo/web/nuxt/app/pages/todos.vue.hbs +0 -220
  241. package/templates/examples/todo/web/react/next/src/app/todos/page.tsx.hbs +0 -245
  242. package/templates/examples/todo/web/react/react-router/src/routes/todos.tsx.hbs +0 -242
  243. package/templates/examples/todo/web/react/tanstack-router/src/routes/todos.tsx.hbs +0 -247
  244. package/templates/examples/todo/web/react/tanstack-start/src/routes/todos.tsx.hbs +0 -272
  245. package/templates/examples/todo/web/solid/src/routes/todos.tsx.hbs +0 -132
  246. package/templates/examples/todo/web/svelte/src/routes/todos/+page.svelte.hbs +0 -317
  247. package/templates/extras/_npmrc.hbs +0 -5
  248. package/templates/extras/bunfig.toml.hbs +0 -6
  249. package/templates/extras/pnpm-workspace.yaml +0 -3
  250. package/templates/frontend/native/bare/_gitignore +0 -18
  251. package/templates/frontend/native/bare/app/(drawer)/(tabs)/_layout.tsx.hbs +0 -41
  252. package/templates/frontend/native/bare/app/(drawer)/(tabs)/index.tsx.hbs +0 -43
  253. package/templates/frontend/native/bare/app/(drawer)/(tabs)/two.tsx.hbs +0 -43
  254. package/templates/frontend/native/bare/app/(drawer)/_layout.tsx.hbs +0 -90
  255. package/templates/frontend/native/bare/app/(drawer)/index.tsx.hbs +0 -234
  256. package/templates/frontend/native/bare/app/+not-found.tsx.hbs +0 -65
  257. package/templates/frontend/native/bare/app/_layout.tsx.hbs +0 -165
  258. package/templates/frontend/native/bare/app/modal.tsx.hbs +0 -34
  259. package/templates/frontend/native/bare/app.json.hbs +0 -50
  260. package/templates/frontend/native/bare/components/container.tsx.hbs +0 -25
  261. package/templates/frontend/native/bare/components/header-button.tsx.hbs +0 -47
  262. package/templates/frontend/native/bare/components/tabbar-icon.tsx.hbs +0 -9
  263. package/templates/frontend/native/bare/lib/android-navigation-bar.tsx.hbs +0 -12
  264. package/templates/frontend/native/bare/lib/constants.ts.hbs +0 -19
  265. package/templates/frontend/native/bare/lib/use-color-scheme.ts.hbs +0 -20
  266. package/templates/frontend/native/bare/metro.config.js.hbs +0 -9
  267. package/templates/frontend/native/bare/package.json.hbs +0 -51
  268. package/templates/frontend/native/bare/tsconfig.json.hbs +0 -11
  269. package/templates/frontend/native/base/assets/images/android-icon-background.png +0 -0
  270. package/templates/frontend/native/base/assets/images/android-icon-foreground.png +0 -0
  271. package/templates/frontend/native/base/assets/images/android-icon-monochrome.png +0 -0
  272. package/templates/frontend/native/base/assets/images/favicon.png +0 -0
  273. package/templates/frontend/native/base/assets/images/icon.png +0 -0
  274. package/templates/frontend/native/base/assets/images/partial-react-logo.png +0 -0
  275. package/templates/frontend/native/base/assets/images/react-logo.png +0 -0
  276. package/templates/frontend/native/base/assets/images/react-logo@2x.png +0 -0
  277. package/templates/frontend/native/base/assets/images/react-logo@3x.png +0 -0
  278. package/templates/frontend/native/base/assets/images/splash-icon.png +0 -0
  279. package/templates/frontend/native/unistyles/_gitignore +0 -24
  280. package/templates/frontend/native/unistyles/app/(drawer)/(tabs)/_layout.tsx.hbs +0 -39
  281. package/templates/frontend/native/unistyles/app/(drawer)/(tabs)/index.tsx.hbs +0 -37
  282. package/templates/frontend/native/unistyles/app/(drawer)/(tabs)/two.tsx.hbs +0 -37
  283. package/templates/frontend/native/unistyles/app/(drawer)/_layout.tsx.hbs +0 -87
  284. package/templates/frontend/native/unistyles/app/(drawer)/index.tsx.hbs +0 -333
  285. package/templates/frontend/native/unistyles/app/+not-found.tsx.hbs +0 -65
  286. package/templates/frontend/native/unistyles/app/_layout.tsx.hbs +0 -169
  287. package/templates/frontend/native/unistyles/app/modal.tsx.hbs +0 -33
  288. package/templates/frontend/native/unistyles/app.json.hbs +0 -49
  289. package/templates/frontend/native/unistyles/babel.config.js.hbs +0 -21
  290. package/templates/frontend/native/unistyles/breakpoints.ts.hbs +0 -9
  291. package/templates/frontend/native/unistyles/components/container.tsx.hbs +0 -15
  292. package/templates/frontend/native/unistyles/components/header-button.tsx.hbs +0 -36
  293. package/templates/frontend/native/unistyles/components/tabbar-icon.tsx.hbs +0 -8
  294. package/templates/frontend/native/unistyles/index.js.hbs +0 -2
  295. package/templates/frontend/native/unistyles/metro.config.js.hbs +0 -5
  296. package/templates/frontend/native/unistyles/package.json.hbs +0 -51
  297. package/templates/frontend/native/unistyles/theme.ts.hbs +0 -98
  298. package/templates/frontend/native/unistyles/tsconfig.json.hbs +0 -12
  299. package/templates/frontend/native/unistyles/unistyles.ts.hbs +0 -27
  300. package/templates/frontend/native/uniwind/_gitignore +0 -21
  301. package/templates/frontend/native/uniwind/app/(drawer)/(tabs)/_layout.tsx.hbs +0 -46
  302. package/templates/frontend/native/uniwind/app/(drawer)/(tabs)/index.tsx.hbs +0 -15
  303. package/templates/frontend/native/uniwind/app/(drawer)/(tabs)/two.tsx.hbs +0 -15
  304. package/templates/frontend/native/uniwind/app/(drawer)/_layout.tsx.hbs +0 -91
  305. package/templates/frontend/native/uniwind/app/(drawer)/index.tsx.hbs +0 -191
  306. package/templates/frontend/native/uniwind/app/+not-found.tsx.hbs +0 -27
  307. package/templates/frontend/native/uniwind/app/_layout.tsx.hbs +0 -132
  308. package/templates/frontend/native/uniwind/app/modal.tsx.hbs +0 -37
  309. package/templates/frontend/native/uniwind/app.json.hbs +0 -19
  310. package/templates/frontend/native/uniwind/components/container.tsx.hbs +0 -33
  311. package/templates/frontend/native/uniwind/components/theme-toggle.tsx.hbs +0 -35
  312. package/templates/frontend/native/uniwind/contexts/app-theme-context.tsx.hbs +0 -62
  313. package/templates/frontend/native/uniwind/global.css +0 -5
  314. package/templates/frontend/native/uniwind/metro.config.js.hbs +0 -13
  315. package/templates/frontend/native/uniwind/package.json.hbs +0 -54
  316. package/templates/frontend/native/uniwind/tsconfig.json.hbs +0 -14
  317. package/templates/frontend/nuxt/_gitignore +0 -27
  318. package/templates/frontend/nuxt/app/app.config.ts.hbs +0 -15
  319. package/templates/frontend/nuxt/app/app.vue.hbs +0 -17
  320. package/templates/frontend/nuxt/app/assets/css/main.css +0 -2
  321. package/templates/frontend/nuxt/app/components/Header.vue.hbs +0 -40
  322. package/templates/frontend/nuxt/app/layouts/default.vue.hbs +0 -10
  323. package/templates/frontend/nuxt/app/pages/index.vue.hbs +0 -97
  324. package/templates/frontend/nuxt/nuxt.config.ts.hbs +0 -29
  325. package/templates/frontend/nuxt/package.json.hbs +0 -24
  326. package/templates/frontend/nuxt/public/favicon.ico +0 -0
  327. package/templates/frontend/nuxt/public/robots.txt +0 -2
  328. package/templates/frontend/nuxt/server/tsconfig.json +0 -3
  329. package/templates/frontend/nuxt/tsconfig.json.hbs +0 -18
  330. package/templates/frontend/react/next/next-env.d.ts.hbs +0 -5
  331. package/templates/frontend/react/next/next.config.ts.hbs +0 -22
  332. package/templates/frontend/react/next/package.json.hbs +0 -34
  333. package/templates/frontend/react/next/postcss.config.mjs.hbs +0 -5
  334. package/templates/frontend/react/next/src/app/favicon.ico +0 -0
  335. package/templates/frontend/react/next/src/app/layout.tsx.hbs +0 -76
  336. package/templates/frontend/react/next/src/app/page.tsx.hbs +0 -79
  337. package/templates/frontend/react/next/src/components/mode-toggle.tsx.hbs +0 -37
  338. package/templates/frontend/react/next/src/components/providers.tsx.hbs +0 -89
  339. package/templates/frontend/react/next/src/components/theme-provider.tsx.hbs +0 -11
  340. package/templates/frontend/react/next/tsconfig.json.hbs +0 -41
  341. package/templates/frontend/react/react-router/package.json.hbs +0 -42
  342. package/templates/frontend/react/react-router/public/favicon.ico +0 -0
  343. package/templates/frontend/react/react-router/react-router.config.ts +0 -6
  344. package/templates/frontend/react/react-router/src/components/mode-toggle.tsx.hbs +0 -29
  345. package/templates/frontend/react/react-router/src/components/theme-provider.tsx.hbs +0 -11
  346. package/templates/frontend/react/react-router/src/root.tsx.hbs +0 -190
  347. package/templates/frontend/react/react-router/src/routes/_index.tsx.hbs +0 -85
  348. package/templates/frontend/react/react-router/src/routes.ts +0 -4
  349. package/templates/frontend/react/react-router/tsconfig.json.hbs +0 -27
  350. package/templates/frontend/react/react-router/vite.config.ts.hbs +0 -12
  351. package/templates/frontend/react/tanstack-router/index.html.hbs +0 -13
  352. package/templates/frontend/react/tanstack-router/package.json.hbs +0 -41
  353. package/templates/frontend/react/tanstack-router/src/components/mode-toggle.tsx.hbs +0 -29
  354. package/templates/frontend/react/tanstack-router/src/components/theme-provider.tsx.hbs +0 -11
  355. package/templates/frontend/react/tanstack-router/src/main.tsx.hbs +0 -90
  356. package/templates/frontend/react/tanstack-router/src/routes/__root.tsx.hbs +0 -103
  357. package/templates/frontend/react/tanstack-router/src/routes/index.tsx.hbs +0 -85
  358. package/templates/frontend/react/tanstack-router/tsconfig.json.hbs +0 -18
  359. package/templates/frontend/react/tanstack-router/vite.config.ts.hbs +0 -21
  360. package/templates/frontend/react/tanstack-start/package.json.hbs +0 -43
  361. package/templates/frontend/react/tanstack-start/public/robots.txt +0 -3
  362. package/templates/frontend/react/tanstack-start/src/router.tsx.hbs +0 -144
  363. package/templates/frontend/react/tanstack-start/src/routes/__root.tsx.hbs +0 -208
  364. package/templates/frontend/react/tanstack-start/src/routes/index.tsx.hbs +0 -85
  365. package/templates/frontend/react/tanstack-start/tsconfig.json.hbs +0 -28
  366. package/templates/frontend/react/tanstack-start/vite.config.ts.hbs +0 -22
  367. package/templates/frontend/react/web-base/_gitignore +0 -60
  368. package/templates/frontend/react/web-base/components.json +0 -24
  369. package/templates/frontend/react/web-base/src/components/header.tsx.hbs +0 -78
  370. package/templates/frontend/react/web-base/src/components/loader.tsx.hbs +0 -9
  371. package/templates/frontend/react/web-base/src/components/ui/button.tsx.hbs +0 -57
  372. package/templates/frontend/react/web-base/src/components/ui/card.tsx.hbs +0 -103
  373. package/templates/frontend/react/web-base/src/components/ui/checkbox.tsx.hbs +0 -26
  374. package/templates/frontend/react/web-base/src/components/ui/dropdown-menu.tsx.hbs +0 -262
  375. package/templates/frontend/react/web-base/src/components/ui/input.tsx.hbs +0 -20
  376. package/templates/frontend/react/web-base/src/components/ui/label.tsx.hbs +0 -20
  377. package/templates/frontend/react/web-base/src/components/ui/skeleton.tsx.hbs +0 -13
  378. package/templates/frontend/react/web-base/src/components/ui/sonner.tsx.hbs +0 -44
  379. package/templates/frontend/react/web-base/src/index.css.hbs +0 -131
  380. package/templates/frontend/react/web-base/src/lib/utils.ts.hbs +0 -6
  381. package/templates/frontend/solid/_gitignore +0 -11
  382. package/templates/frontend/solid/index.html +0 -13
  383. package/templates/frontend/solid/package.json.hbs +0 -24
  384. package/templates/frontend/solid/public/robots.txt +0 -3
  385. package/templates/frontend/solid/src/components/header.tsx.hbs +0 -38
  386. package/templates/frontend/solid/src/components/loader.tsx +0 -9
  387. package/templates/frontend/solid/src/main.tsx.hbs +0 -41
  388. package/templates/frontend/solid/src/routes/__root.tsx.hbs +0 -34
  389. package/templates/frontend/solid/src/routes/index.tsx.hbs +0 -72
  390. package/templates/frontend/solid/src/styles.css +0 -5
  391. package/templates/frontend/solid/tsconfig.json.hbs +0 -29
  392. package/templates/frontend/solid/vite.config.ts.hbs +0 -21
  393. package/templates/frontend/svelte/_gitignore +0 -24
  394. package/templates/frontend/svelte/_npmrc +0 -1
  395. package/templates/frontend/svelte/package.json.hbs +0 -27
  396. package/templates/frontend/svelte/src/app.css +0 -5
  397. package/templates/frontend/svelte/src/app.d.ts +0 -13
  398. package/templates/frontend/svelte/src/app.html +0 -12
  399. package/templates/frontend/svelte/src/components/Header.svelte.hbs +0 -40
  400. package/templates/frontend/svelte/src/lib/index.ts +0 -2
  401. package/templates/frontend/svelte/src/routes/+layout.svelte.hbs +0 -54
  402. package/templates/frontend/svelte/src/routes/+page.svelte.hbs +0 -92
  403. package/templates/frontend/svelte/static/favicon.png +0 -0
  404. package/templates/frontend/svelte/svelte.config.js.hbs +0 -18
  405. package/templates/frontend/svelte/tsconfig.json.hbs +0 -19
  406. package/templates/frontend/svelte/vite.config.ts.hbs +0 -7
  407. package/templates/packages/config/package.json.hbs +0 -5
  408. package/templates/packages/config/tsconfig.base.json.hbs +0 -33
  409. package/templates/packages/env/env.d.ts.hbs +0 -16
  410. package/templates/packages/env/package.json.hbs +0 -7
  411. package/templates/packages/env/src/native.ts.hbs +0 -21
  412. package/templates/packages/env/src/server.ts.hbs +0 -39
  413. package/templates/packages/env/src/web.ts.hbs +0 -98
  414. package/templates/packages/env/tsconfig.json.hbs +0 -3
  415. package/templates/packages/infra/alchemy.run.ts.hbs +0 -271
  416. package/templates/packages/infra/package.json.hbs +0 -10
  417. package/templates/payments/polar/server/base/src/lib/payments.ts.hbs +0 -7
  418. package/templates/payments/polar/web/nuxt/app/pages/success.vue.hbs +0 -11
  419. package/templates/payments/polar/web/react/next/src/app/success/page.tsx.hbs +0 -15
  420. package/templates/payments/polar/web/react/react-router/src/routes/success.tsx.hbs +0 -13
  421. package/templates/payments/polar/web/react/tanstack-router/src/routes/success.tsx.hbs +0 -19
  422. package/templates/payments/polar/web/react/tanstack-start/src/functions/get-payment.ts.hbs +0 -15
  423. package/templates/payments/polar/web/react/tanstack-start/src/routes/success.tsx.hbs +0 -19
  424. package/templates/payments/polar/web/solid/src/routes/success.tsx.hbs +0 -23
  425. package/templates/payments/polar/web/svelte/src/routes/success/+page.svelte.hbs +0 -12
@@ -1,62 +0,0 @@
1
- model User {
2
- id String @id @map("_id")
3
- name String
4
- email String
5
- emailVerified Boolean @default(false)
6
- image String?
7
- createdAt DateTime @default(now())
8
- updatedAt DateTime @updatedAt
9
- sessions Session[]
10
- accounts Account[]
11
-
12
- @@unique([email])
13
- @@map("user")
14
- }
15
-
16
- model Session {
17
- id String @id @map("_id")
18
- expiresAt DateTime
19
- token String
20
- createdAt DateTime @default(now())
21
- updatedAt DateTime @updatedAt
22
- ipAddress String?
23
- userAgent String?
24
- userId String
25
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
26
-
27
- @@unique([token])
28
- @@index([userId])
29
- @@map("session")
30
- }
31
-
32
- model Account {
33
- id String @id @map("_id")
34
- accountId String
35
- providerId String
36
- userId String
37
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
38
- accessToken String?
39
- refreshToken String?
40
- idToken String?
41
- accessTokenExpiresAt DateTime?
42
- refreshTokenExpiresAt DateTime?
43
- scope String?
44
- password String?
45
- createdAt DateTime @default(now())
46
- updatedAt DateTime @updatedAt
47
-
48
- @@index([userId])
49
- @@map("account")
50
- }
51
-
52
- model Verification {
53
- id String @id @map("_id")
54
- identifier String
55
- value String
56
- expiresAt DateTime
57
- createdAt DateTime @default(now())
58
- updatedAt DateTime @updatedAt
59
-
60
- @@index([identifier])
61
- @@map("verification")
62
- }
@@ -1,62 +0,0 @@
1
- model User {
2
- id String @id
3
- name String @db.Text
4
- email String
5
- emailVerified Boolean @default(false)
6
- image String? @db.Text
7
- createdAt DateTime @default(now())
8
- updatedAt DateTime @updatedAt
9
- sessions Session[]
10
- accounts Account[]
11
-
12
- @@unique([email])
13
- @@map("user")
14
- }
15
-
16
- model Session {
17
- id String @id
18
- expiresAt DateTime
19
- token String
20
- createdAt DateTime @default(now())
21
- updatedAt DateTime @updatedAt
22
- ipAddress String? @db.Text
23
- userAgent String? @db.Text
24
- userId String
25
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
26
-
27
- @@unique([token])
28
- @@index([userId(length: 191)])
29
- @@map("session")
30
- }
31
-
32
- model Account {
33
- id String @id
34
- accountId String @db.Text
35
- providerId String @db.Text
36
- userId String
37
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
38
- accessToken String? @db.Text
39
- refreshToken String? @db.Text
40
- idToken String? @db.Text
41
- accessTokenExpiresAt DateTime?
42
- refreshTokenExpiresAt DateTime?
43
- scope String? @db.Text
44
- password String? @db.Text
45
- createdAt DateTime @default(now())
46
- updatedAt DateTime @updatedAt
47
-
48
- @@index([userId(length: 191)])
49
- @@map("account")
50
- }
51
-
52
- model Verification {
53
- id String @id
54
- identifier String @db.Text
55
- value String @db.Text
56
- expiresAt DateTime
57
- createdAt DateTime @default(now())
58
- updatedAt DateTime @updatedAt
59
-
60
- @@index([identifier(length: 191)])
61
- @@map("verification")
62
- }
@@ -1,62 +0,0 @@
1
- model User {
2
- id String @id
3
- name String
4
- email String
5
- emailVerified Boolean @default(false)
6
- image String?
7
- createdAt DateTime @default(now())
8
- updatedAt DateTime @updatedAt
9
- sessions Session[]
10
- accounts Account[]
11
-
12
- @@unique([email])
13
- @@map("user")
14
- }
15
-
16
- model Session {
17
- id String @id
18
- expiresAt DateTime
19
- token String
20
- createdAt DateTime @default(now())
21
- updatedAt DateTime @updatedAt
22
- ipAddress String?
23
- userAgent String?
24
- userId String
25
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
26
-
27
- @@unique([token])
28
- @@index([userId])
29
- @@map("session")
30
- }
31
-
32
- model Account {
33
- id String @id
34
- accountId String
35
- providerId String
36
- userId String
37
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
38
- accessToken String?
39
- refreshToken String?
40
- idToken String?
41
- accessTokenExpiresAt DateTime?
42
- refreshTokenExpiresAt DateTime?
43
- scope String?
44
- password String?
45
- createdAt DateTime @default(now())
46
- updatedAt DateTime @updatedAt
47
-
48
- @@index([userId])
49
- @@map("account")
50
- }
51
-
52
- model Verification {
53
- id String @id
54
- identifier String
55
- value String
56
- expiresAt DateTime
57
- createdAt DateTime @default(now())
58
- updatedAt DateTime @updatedAt
59
-
60
- @@index([identifier])
61
- @@map("verification")
62
- }
@@ -1,62 +0,0 @@
1
- model User {
2
- id String @id
3
- name String
4
- email String
5
- emailVerified Boolean @default(false)
6
- image String?
7
- createdAt DateTime @default(now())
8
- updatedAt DateTime @updatedAt
9
- sessions Session[]
10
- accounts Account[]
11
-
12
- @@unique([email])
13
- @@map("user")
14
- }
15
-
16
- model Session {
17
- id String @id
18
- expiresAt DateTime
19
- token String
20
- createdAt DateTime @default(now())
21
- updatedAt DateTime @updatedAt
22
- ipAddress String?
23
- userAgent String?
24
- userId String
25
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
26
-
27
- @@unique([token])
28
- @@index([userId])
29
- @@map("session")
30
- }
31
-
32
- model Account {
33
- id String @id
34
- accountId String
35
- providerId String
36
- userId String
37
- user User @relation(fields: [userId], references: [id], onDelete: Cascade)
38
- accessToken String?
39
- refreshToken String?
40
- idToken String?
41
- accessTokenExpiresAt DateTime?
42
- refreshTokenExpiresAt DateTime?
43
- scope String?
44
- password String?
45
- createdAt DateTime @default(now())
46
- updatedAt DateTime @updatedAt
47
-
48
- @@index([userId])
49
- @@map("account")
50
- }
51
-
52
- model Verification {
53
- id String @id
54
- identifier String
55
- value String
56
- expiresAt DateTime
57
- createdAt DateTime @default(now())
58
- updatedAt DateTime @updatedAt
59
-
60
- @@index([identifier])
61
- @@map("verification")
62
- }
@@ -1,82 +0,0 @@
1
- <script setup lang="ts">
2
- import * as z from 'zod'
3
- import type { FormSubmitEvent, AuthFormField } from '@nuxt/ui'
4
-
5
- const { $authClient } = useNuxtApp()
6
-
7
- const emit = defineEmits(['switchToSignUp'])
8
-
9
- const toast = useToast()
10
- const loading = ref(false)
11
-
12
- const fields: AuthFormField[] = [
13
- {
14
- name: 'email',
15
- type: 'email',
16
- label: 'Email',
17
- placeholder: 'Enter your email',
18
- required: true
19
- },
20
- {
21
- name: 'password',
22
- type: 'password',
23
- label: 'Password',
24
- placeholder: 'Enter your password',
25
- required: true
26
- }
27
- ]
28
-
29
- const schema = z.object({
30
- email: z.email('Invalid email address'),
31
- password: z.string().min(8, 'Password must be at least 8 characters'),
32
- })
33
-
34
- type Schema = z.output<typeof schema>
35
-
36
- async function onSubmit(event: FormSubmitEvent<Schema>) {
37
- loading.value = true
38
- try {
39
- await $authClient.signIn.email(
40
- {
41
- email: event.data.email,
42
- password: event.data.password,
43
- },
44
- {
45
- onSuccess: () => {
46
- toast.add({ title: 'Sign in successful' })
47
- navigateTo('/dashboard', { replace: true })
48
- },
49
- onError: (error) => {
50
- toast.add({ title: 'Sign in failed', description: error.error.message })
51
- },
52
- },
53
- )
54
- } catch (error: any) {
55
- toast.add({ title: 'An unexpected error occurred', description: error.message || 'Please try again.' })
56
- } finally {
57
- loading.value = false
58
- }
59
- }
60
- </script>
61
-
62
- <template>
63
- <div class="flex flex-col items-center justify-center gap-4 p-4">
64
- <UPageCard class="w-full max-w-md">
65
- <UAuthForm
66
- :schema="schema"
67
- :fields="fields"
68
- title="Welcome Back"
69
- icon="i-lucide-log-in"
70
- :submit="{ label: 'Sign In', loading }"
71
- @submit="onSubmit"
72
- >
73
- <template #description>
74
- Need an account?
75
- <ULink class="text-primary font-medium" @click="$emit('switchToSignUp')">
76
- Sign Up
77
- </ULink>
78
- </template>
79
- </UAuthForm>
80
- </UPageCard>
81
- </div>
82
- </template>
@@ -1,91 +0,0 @@
1
- <script setup lang="ts">
2
- import * as z from 'zod'
3
- import type { FormSubmitEvent, AuthFormField } from '@nuxt/ui'
4
-
5
- const { $authClient } = useNuxtApp()
6
-
7
- const emit = defineEmits(['switchToSignIn'])
8
-
9
- const toast = useToast()
10
- const loading = ref(false)
11
-
12
- const fields: AuthFormField[] = [
13
- {
14
- name: 'name',
15
- type: 'text',
16
- label: 'Name',
17
- placeholder: 'Enter your name',
18
- required: true
19
- },
20
- {
21
- name: 'email',
22
- type: 'email',
23
- label: 'Email',
24
- placeholder: 'Enter your email',
25
- required: true
26
- },
27
- {
28
- name: 'password',
29
- type: 'password',
30
- label: 'Password',
31
- placeholder: 'Enter your password',
32
- required: true
33
- }
34
- ]
35
-
36
- const schema = z.object({
37
- name: z.string().min(2, 'Name must be at least 2 characters'),
38
- email: z.email('Invalid email address'),
39
- password: z.string().min(8, 'Password must be at least 8 characters'),
40
- })
41
-
42
- type Schema = z.output<typeof schema>
43
-
44
- async function onSubmit(event: FormSubmitEvent<Schema>) {
45
- loading.value = true
46
- try {
47
- await $authClient.signUp.email(
48
- {
49
- name: event.data.name,
50
- email: event.data.email,
51
- password: event.data.password,
52
- },
53
- {
54
- onSuccess: () => {
55
- toast.add({ title: 'Sign up successful' })
56
- navigateTo('/dashboard', { replace: true })
57
- },
58
- onError: (error) => {
59
- toast.add({ title: 'Sign up failed', description: error.error.message })
60
- },
61
- },
62
- )
63
- } catch (error: any) {
64
- toast.add({ title: 'An unexpected error occurred', description: error.message || 'Please try again.' })
65
- } finally {
66
- loading.value = false
67
- }
68
- }
69
- </script>
70
-
71
- <template>
72
- <div class="flex flex-col items-center justify-center gap-4 p-4">
73
- <UPageCard class="w-full max-w-md">
74
- <UAuthForm
75
- :schema="schema"
76
- :fields="fields"
77
- title="Create Account"
78
- icon="i-lucide-user-plus"
79
- :submit="{ label: 'Sign Up', loading }"
80
- @submit="onSubmit"
81
- >
82
- <template #description>
83
- Already have an account?
84
- <ULink class="text-primary font-medium" @click="$emit('switchToSignIn')">
85
- Sign In
86
- </ULink>
87
- </template>
88
- </UAuthForm>
89
- </UPageCard>
90
- </div>
91
- </template>
@@ -1,42 +0,0 @@
1
- <script setup lang="ts">
2
-
3
- const {$authClient} = useNuxtApp()
4
- const session = $authClient.useSession()
5
- const toast = useToast()
6
-
7
- const handleSignOut = async () => {
8
- try {
9
- await $authClient.signOut({
10
- fetchOptions: {
11
- onSuccess: async () => {
12
- toast.add({ title: 'Signed out successfully' })
13
- await navigateTo('/', { replace: true, external: true })
14
- },
15
- onError: (error) => {
16
- toast.add({ title: 'Sign out failed', description: error?.error?.message || 'Unknown error'})
17
- }
18
- },
19
- })
20
- } catch (error: any) {
21
- toast.add({ title: 'An unexpected error occurred during sign out', description: error.message || 'Please try again.'})
22
- }
23
- }
24
- </script>
25
-
26
- <template>
27
- <div>
28
- <USkeleton v-if="session.isPending" class="h-9 w-24" />
29
-
30
- <UButton v-else-if="!session.data" variant="outline" to="/login">
31
- Sign In
32
- </UButton>
33
-
34
- <UButton
35
- v-else
36
- variant="solid"
37
- icon="i-lucide-log-out"
38
- label="Sign out"
39
- @click="handleSignOut()"
40
- />
41
- </div>
42
- </template>
@@ -1,14 +0,0 @@
1
- export default defineNuxtRouteMiddleware(async (to, from) => {
2
- if (import.meta.server) return;
3
-
4
- const { $authClient } = useNuxtApp();
5
- const session = $authClient.useSession();
6
-
7
- if (session.value.isPending) {
8
- return;
9
- }
10
-
11
- if (!session.value.data) {
12
- return navigateTo("/login");
13
- }
14
- });
@@ -1,99 +0,0 @@
1
- <script setup lang="ts">
2
- {{#if (eq api "orpc")}}
3
- import { useQuery } from '@tanstack/vue-query'
4
- {{/if}}
5
-
6
- const { $authClient, $orpc } = useNuxtApp()
7
-
8
- definePageMeta({
9
- middleware: ['auth']
10
- })
11
-
12
- const session = $authClient.useSession()
13
-
14
- {{#if (eq payments "polar")}}
15
- const customerState = ref<any>(null)
16
- {{/if}}
17
-
18
- {{#if (eq api "orpc")}}
19
- const privateData = useQuery({
20
- ...$orpc.privateData.queryOptions(),
21
- enabled: computed(() => !!session.value?.data?.user)
22
- })
23
- {{/if}}
24
-
25
- {{#if (eq payments "polar")}}
26
- onMounted(async () => {
27
- if (session.value?.data) {
28
- const { data } = await $authClient.customer.state()
29
- customerState.value = data
30
- }
31
- })
32
-
33
- const hasProSubscription = computed(() =>
34
- customerState.value?.activeSubscriptions?.length! > 0
35
- )
36
- {{/if}}
37
- </script>
38
-
39
- <template>
40
- <UContainer class="py-8">
41
- <UPageHeader
42
- title="Dashboard"
43
- :description="session?.data?.user ? `Welcome back, ${session.data.user.name}!` : 'Loading...'"
44
- />
45
-
46
- <div class="mt-6 space-y-4">
47
- {{#if (eq api "orpc")}}
48
- <UCard>
49
- <template #header>
50
- <div class="font-medium">Private Data</div>
51
- </template>
52
-
53
- <USkeleton v-if="privateData.status.value === 'pending'" class="h-6 w-48" />
54
-
55
- <UAlert
56
- v-else-if="privateData.status.value === 'error'"
57
- color="error"
58
- icon="i-lucide-alert-circle"
59
- title="Error loading data"
60
- :description="privateData.error.value?.message || 'Failed to load private data'"
61
- />
62
-
63
- <div v-else-if="privateData.data.value" class="flex items-center gap-2">
64
- <UIcon name="i-lucide-check-circle" class="text-success" />
65
- <span>\{{ privateData.data.value.message }}</span>
66
- </div>
67
- </UCard>
68
- {{/if}}
69
-
70
- {{#if (eq payments "polar")}}
71
- <UCard>
72
- <template #header>
73
- <div class="font-medium">Subscription</div>
74
- </template>
75
-
76
- <div class="flex items-center justify-between">
77
- <div class="flex items-center gap-2">
78
- <UIcon :name="hasProSubscription ? 'i-lucide-crown' : 'i-lucide-user'" :class="hasProSubscription ? 'text-warning' : 'text-muted'" />
79
- <span>Plan: \{{ hasProSubscription ? "Pro" : "Free" }}</span>
80
- </div>
81
- <UButton
82
- v-if="hasProSubscription"
83
- variant="outline"
84
- @click="() => { $authClient.customer.portal() }"
85
- >
86
- Manage Subscription
87
- </UButton>
88
- <UButton
89
- v-else
90
- @click="() => { $authClient.checkout({ slug: 'pro' }) }"
91
- >
92
- Upgrade to Pro
93
- </UButton>
94
- </div>
95
- </UCard>
96
- {{/if}}
97
- </div>
98
- </UContainer>
99
- </template>
@@ -1,27 +0,0 @@
1
- <script setup lang="ts">
2
- const { $authClient } = useNuxtApp();
3
- import SignInForm from "~/components/SignInForm.vue";
4
- import SignUpForm from "~/components/SignUpForm.vue";
5
-
6
- const session = $authClient.useSession();
7
- const showSignIn = ref(true);
8
-
9
- watchEffect(() => {
10
- if (!session?.value.isPending && session?.value.data) {
11
- navigateTo("/dashboard", { replace: true });
12
- }
13
- });
14
- </script>
15
-
16
- <template>
17
- <UContainer class="py-8">
18
- <div v-if="session.isPending" class="flex flex-col items-center justify-center gap-4 py-12">
19
- <UIcon name="i-lucide-loader-2" class="animate-spin text-4xl text-primary" />
20
- <span class="text-muted">Loading...</span>
21
- </div>
22
- <div v-else-if="!session.data">
23
- <SignInForm v-if="showSignIn" @switch-to-sign-up="showSignIn = false" />
24
- <SignUpForm v-else @switch-to-sign-in="showSignIn = true" />
25
- </div>
26
- </UContainer>
27
- </template>
@@ -1,21 +0,0 @@
1
- import { createAuthClient } from "better-auth/vue";
2
- {{#if (eq payments "polar")}}
3
- import { polarClient } from "@polar-sh/better-auth";
4
- {{/if}}
5
-
6
- export default defineNuxtPlugin(() => {
7
- const config = useRuntimeConfig();
8
-
9
- const authClient = createAuthClient({
10
- baseURL: config.public.serverUrl,
11
- {{#if (eq payments "polar")}}
12
- plugins: [polarClient()],
13
- {{/if}}
14
- });
15
-
16
- return {
17
- provide: {
18
- authClient: authClient,
19
- },
20
- };
21
- });
@@ -1,16 +0,0 @@
1
- import { createAuthClient } from "better-auth/react";
2
- {{#if (eq payments "polar")}}
3
- import { polarClient } from "@polar-sh/better-auth";
4
- {{/if}}
5
- {{#unless (eq backend "self")}}
6
- import { env } from "@{{projectName}}/env/web";
7
- {{/unless}}
8
-
9
- export const authClient = createAuthClient({
10
- {{#unless (eq backend "self")}}
11
- baseURL: env.{{#if (includes frontend "next")}}NEXT_PUBLIC_SERVER_URL{{else}}VITE_SERVER_URL{{/if}},
12
- {{/unless}}
13
- {{#if (eq payments "polar")}}
14
- plugins: [polarClient()]
15
- {{/if}}
16
- });