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

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 +17963 -17235
  11. package/dist/index.mjs.map +1 -1
  12. package/package.json +6 -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,52 +0,0 @@
1
- <script lang="ts">
2
- import { authClient } from '$lib/auth-client';
3
- import { goto } from '$app/navigation';
4
-
5
- const sessionQuery = authClient.useSession();
6
-
7
- async function handleSignOut() {
8
- await authClient.signOut({
9
- fetchOptions: {
10
- onSuccess: () => {
11
- goto('/');
12
- },
13
- onError: (error) => {
14
- console.error('Sign out failed:', error);
15
- }
16
- }
17
- });
18
- }
19
-
20
- function goToLogin() {
21
- goto('/login');
22
- }
23
-
24
- </script>
25
-
26
- <div class="relative">
27
- {#if $sessionQuery.isPending}
28
- <div class="h-8 w-24 animate-pulse rounded bg-neutral-700"></div>
29
- {:else if $sessionQuery.data?.user}
30
- {@const user = $sessionQuery.data.user}
31
- <div class="flex items-center gap-3">
32
- <span class="text-sm text-neutral-300 hidden sm:inline" title={user.email}>
33
- {user.name || user.email?.split('@')[0] || 'User'}
34
- </span>
35
- <button
36
- onclick={handleSignOut}
37
- class="rounded px-3 py-1 text-sm bg-red-600 hover:bg-red-700 text-white transition-colors"
38
- >
39
- Sign Out
40
- </button>
41
- </div>
42
- {:else}
43
- <div class="flex items-center gap-2">
44
- <button
45
- onclick={goToLogin}
46
- class="rounded px-3 py-1 text-sm bg-indigo-600 hover:bg-indigo-700 text-white transition-colors"
47
- >
48
- Sign In
49
- </button>
50
- </div>
51
- {/if}
52
- </div>
@@ -1,12 +0,0 @@
1
- import { PUBLIC_SERVER_URL } from "$env/static/public";
2
- import { createAuthClient } from "better-auth/svelte";
3
- {{#if (eq payments "polar")}}
4
- import { polarClient } from "@polar-sh/better-auth";
5
- {{/if}}
6
-
7
- export const authClient = createAuthClient({
8
- baseURL: PUBLIC_SERVER_URL,
9
- {{#if (eq payments "polar")}}
10
- plugins: [polarClient()]
11
- {{/if}}
12
- });
@@ -1,59 +0,0 @@
1
- <script lang="ts">
2
- import { goto } from '$app/navigation';
3
- import { authClient } from '$lib/auth-client';
4
- {{#if (eq api "orpc")}}
5
- import { orpc } from '$lib/orpc';
6
- import { createQuery } from '@tanstack/svelte-query';
7
- {{/if}}
8
- {{#if (eq payments "polar")}}
9
- let customerState = $state<{ activeSubscriptions?: unknown[] } | null>(null);
10
- {{/if}}
11
-
12
- const sessionQuery = authClient.useSession();
13
-
14
- {{#if (eq api "orpc")}}
15
- const privateDataQuery = createQuery(orpc.privateData.queryOptions());
16
- {{/if}}
17
-
18
- $effect(() => {
19
- if (!$sessionQuery.isPending && !$sessionQuery.data) {
20
- goto('/login');
21
- }
22
- });
23
-
24
- {{#if (eq payments "polar")}}
25
- $effect(() => {
26
- if ($sessionQuery.data) {
27
- authClient.customer.state().then(({ data }) => {
28
- customerState = data;
29
- });
30
- }
31
- });
32
- {{/if}}
33
- </script>
34
-
35
- {#if $sessionQuery.isPending}
36
- <div>Loading...</div>
37
- {:else if !$sessionQuery.data}
38
- <div>Redirecting to login...</div>
39
- {:else}
40
- <div>
41
- <h1>Dashboard</h1>
42
- <p>Welcome {$sessionQuery.data.user.name}</p>
43
- {{#if (eq api "orpc")}}
44
- <p>API: {$privateDataQuery.data?.message}</p>
45
- {{/if}}
46
- {{#if (eq payments "polar")}}
47
- <p>Plan: {customerState?.activeSubscriptions?.length > 0 ? "Pro" : "Free"}</p>
48
- {#if customerState?.activeSubscriptions?.length > 0}
49
- <button onclick={async () => await authClient.customer.portal()}>
50
- Manage Subscription
51
- </button>
52
- {:else}
53
- <button onclick={async () => await authClient.checkout({ slug: "pro" })}>
54
- Upgrade to Pro
55
- </button>
56
- {/if}
57
- {{/if}}
58
- </div>
59
- {/if}
@@ -1,12 +0,0 @@
1
- <script lang="ts">
2
- import SignInForm from '../../components/SignInForm.svelte';
3
- import SignUpForm from '../../components/SignUpForm.svelte';
4
-
5
- let showSignIn = $state(true);
6
- </script>
7
-
8
- {#if showSignIn}
9
- <SignInForm switchToSignUp={() => showSignIn = false} />
10
- {:else}
11
- <SignUpForm switchToSignIn={() => showSignIn = true} />
12
- {/if}
@@ -1,12 +0,0 @@
1
- export default {
2
- providers: [
3
- {
4
- // Replace with your own Clerk Issuer URL from your "convex" JWT template
5
- // or with `process.env.CLERK_JWT_ISSUER_DOMAIN`
6
- // and configure CLERK_JWT_ISSUER_DOMAIN on the Convex Dashboard
7
- // See https://docs.convex.dev/auth/clerk#configuring-dev-and-prod-instances
8
- domain: process.env.CLERK_JWT_ISSUER_DOMAIN,
9
- applicationID: "convex",
10
- },
11
- ],
12
- };
@@ -1,16 +0,0 @@
1
- import { query } from "./_generated/server";
2
-
3
- export const get = query({
4
- args: {},
5
- handler: async (ctx) => {
6
- const identity = await ctx.auth.getUserIdentity();
7
- if (identity === null) {
8
- return {
9
- message: "Not authenticated",
10
- };
11
- }
12
- return {
13
- message: "This is private",
14
- };
15
- },
16
- });
@@ -1,12 +0,0 @@
1
- import { Redirect, Stack } from "expo-router";
2
- import { useAuth } from "@clerk/clerk-expo";
3
-
4
- export default function AuthRoutesLayout() {
5
- const { isSignedIn } = useAuth();
6
-
7
- if (isSignedIn) {
8
- return <Redirect href={"/"} />;
9
- }
10
-
11
- return <Stack />;
12
- }
@@ -1,67 +0,0 @@
1
- import { useSignIn } from "@clerk/clerk-expo";
2
- import { Link, useRouter } from "expo-router";
3
- import { Text, TextInput, TouchableOpacity, View } from "react-native";
4
- import React from "react";
5
-
6
- export default function Page() {
7
- const { signIn, setActive, isLoaded } = useSignIn();
8
- const router = useRouter();
9
-
10
- const [emailAddress, setEmailAddress] = React.useState("");
11
- const [password, setPassword] = React.useState("");
12
-
13
- // Handle the submission of the sign-in form
14
- const onSignInPress = async () => {
15
- if (!isLoaded) return;
16
-
17
- // Start the sign-in process using the email and password provided
18
- try {
19
- const signInAttempt = await signIn.create({
20
- identifier: emailAddress,
21
- password,
22
- });
23
-
24
- // If sign-in process is complete, set the created session as active
25
- // and redirect the user
26
- if (signInAttempt.status === "complete") {
27
- await setActive({ session: signInAttempt.createdSessionId });
28
- router.replace("/");
29
- } else {
30
- // If the status isn't complete, check why. User might need to
31
- // complete further steps.
32
- console.error(JSON.stringify(signInAttempt, null, 2));
33
- }
34
- } catch (err) {
35
- // See https://clerk.com/docs/custom-flows/error-handling
36
- // for more info on error handling
37
- console.error(JSON.stringify(err, null, 2));
38
- }
39
- };
40
-
41
- return (
42
- <View>
43
- <Text>Sign in</Text>
44
- <TextInput
45
- autoCapitalize="none"
46
- value={emailAddress}
47
- placeholder="Enter email"
48
- onChangeText={(emailAddress) => setEmailAddress(emailAddress)}
49
- />
50
- <TextInput
51
- value={password}
52
- placeholder="Enter password"
53
- secureTextEntry={true}
54
- onChangeText={(password) => setPassword(password)}
55
- />
56
- <TouchableOpacity onPress={onSignInPress}>
57
- <Text>Continue</Text>
58
- </TouchableOpacity>
59
- <View style=\{{ display: "flex", flexDirection: "row", gap: 3 }}>
60
- <Text>Don't have an account?</Text>
61
- <Link href="/sign-up">
62
- <Text>Sign up</Text>
63
- </Link>
64
- </View>
65
- </View>
66
- );
67
- }
@@ -1,110 +0,0 @@
1
- import * as React from "react";
2
- import { Text, TextInput, TouchableOpacity, View } from "react-native";
3
- import { useSignUp } from "@clerk/clerk-expo";
4
- import { Link, useRouter } from "expo-router";
5
-
6
- export default function SignUpScreen() {
7
- const { isLoaded, signUp, setActive } = useSignUp();
8
- const router = useRouter();
9
-
10
- const [emailAddress, setEmailAddress] = React.useState("");
11
- const [password, setPassword] = React.useState("");
12
- const [pendingVerification, setPendingVerification] = React.useState(false);
13
- const [code, setCode] = React.useState("");
14
-
15
- // Handle submission of sign-up form
16
- const onSignUpPress = async () => {
17
- if (!isLoaded) return;
18
-
19
- console.log(emailAddress, password);
20
-
21
- // Start sign-up process using email and password provided
22
- try {
23
- await signUp.create({
24
- emailAddress,
25
- password,
26
- });
27
-
28
- // Send user an email with verification code
29
- await signUp.prepareEmailAddressVerification({ strategy: "email_code" });
30
-
31
- // Set 'pendingVerification' to true to display second form
32
- // and capture OTP code
33
- setPendingVerification(true);
34
- } catch (err) {
35
- // See https://clerk.com/docs/custom-flows/error-handling
36
- // for more info on error handling
37
- console.error(JSON.stringify(err, null, 2));
38
- }
39
- };
40
-
41
- // Handle submission of verification form
42
- const onVerifyPress = async () => {
43
- if (!isLoaded) return;
44
-
45
- try {
46
- // Use the code the user provided to attempt verification
47
- const signUpAttempt = await signUp.attemptEmailAddressVerification({
48
- code,
49
- });
50
-
51
- // If verification was completed, set the session to active
52
- // and redirect the user
53
- if (signUpAttempt.status === "complete") {
54
- await setActive({ session: signUpAttempt.createdSessionId });
55
- router.replace("/");
56
- } else {
57
- // If the status is not complete, check why. User may need to
58
- // complete further steps.
59
- console.error(JSON.stringify(signUpAttempt, null, 2));
60
- }
61
- } catch (err) {
62
- // See https://clerk.com/docs/custom-flows/error-handling
63
- // for more info on error handling
64
- console.error(JSON.stringify(err, null, 2));
65
- }
66
- };
67
-
68
- if (pendingVerification) {
69
- return (
70
- <>
71
- <Text>Verify your email</Text>
72
- <TextInput
73
- value={code}
74
- placeholder="Enter your verification code"
75
- onChangeText={(code) => setCode(code)}
76
- />
77
- <TouchableOpacity onPress={onVerifyPress}>
78
- <Text>Verify</Text>
79
- </TouchableOpacity>
80
- </>
81
- );
82
- }
83
-
84
- return (
85
- <View>
86
- <Text>Sign up</Text>
87
- <TextInput
88
- autoCapitalize="none"
89
- value={emailAddress}
90
- placeholder="Enter email"
91
- onChangeText={(email) => setEmailAddress(email)}
92
- />
93
- <TextInput
94
- value={password}
95
- placeholder="Enter password"
96
- secureTextEntry={true}
97
- onChangeText={(password) => setPassword(password)}
98
- />
99
- <TouchableOpacity onPress={onSignUpPress}>
100
- <Text>Continue</Text>
101
- </TouchableOpacity>
102
- <View style=\{{ display: "flex", flexDirection: "row", gap: 3 }}>
103
- <Text>Already have an account?</Text>
104
- <Link href="/sign-in">
105
- <Text>Sign in</Text>
106
- </Link>
107
- </View>
108
- </View>
109
- );
110
- }
@@ -1,27 +0,0 @@
1
- import { useClerk } from "@clerk/clerk-expo";
2
- import { useRouter } from "expo-router";
3
- import { Text, TouchableOpacity } from "react-native";
4
-
5
- export const SignOutButton = () => {
6
- // Use `useClerk()` to access the `signOut()` function
7
- const { signOut } = useClerk();
8
- const router = useRouter();
9
-
10
- const handleSignOut = async () => {
11
- try {
12
- await signOut();
13
- // Redirect to your desired page
14
- router.replace("/");
15
- } catch (err) {
16
- // See https://clerk.com/docs/custom-flows/error-handling
17
- // for more info on error handling
18
- console.error(JSON.stringify(err, null, 2));
19
- }
20
- };
21
-
22
- return (
23
- <TouchableOpacity onPress={handleSignOut}>
24
- <Text>Sign out</Text>
25
- </TouchableOpacity>
26
- );
27
- };
@@ -1,29 +0,0 @@
1
- "use client";
2
-
3
- import { api } from "@{{projectName}}/backend/convex/_generated/api";
4
- import { SignInButton, UserButton, useUser } from "@clerk/nextjs";
5
- import { Authenticated, AuthLoading, Unauthenticated, useQuery } from "convex/react";
6
-
7
- export default function Dashboard() {
8
- const user = useUser();
9
- const privateData = useQuery(api.privateData.get);
10
-
11
- return (
12
- <>
13
- <Authenticated>
14
- <div>
15
- <h1>Dashboard</h1>
16
- <p>Welcome {user.user?.fullName}</p>
17
- <p>privateData: {privateData?.message}</p>
18
- <UserButton />
19
- </div>
20
- </Authenticated>
21
- <Unauthenticated>
22
- <SignInButton />
23
- </Unauthenticated>
24
- <AuthLoading>
25
- <div>Loading...</div>
26
- </AuthLoading>
27
- </>
28
- );
29
- }
@@ -1,12 +0,0 @@
1
- import { clerkMiddleware } from "@clerk/nextjs/server";
2
-
3
- export default clerkMiddleware();
4
-
5
- export const config = {
6
- matcher: [
7
- // Skip Next.js internals and all static files, unless found in search params
8
- "/((?!_next|[^?]*\\.(?:html?|css|js(?!on)|jpe?g|webp|png|gif|svg|ttf|woff2?|ico|csv|docx?|xlsx?|zip|webmanifest)).*)",
9
- // Always run for API routes
10
- "/(api|trpc)(.*)",
11
- ],
12
- };
@@ -1,32 +0,0 @@
1
- import { SignInButton, UserButton, useUser } from "@clerk/clerk-react";
2
- import { api } from "@{{projectName}}/backend/convex/_generated/api";
3
- import {
4
- Authenticated,
5
- AuthLoading,
6
- Unauthenticated,
7
- useQuery,
8
- } from "convex/react";
9
-
10
- export default function Dashboard() {
11
- const privateData = useQuery(api.privateData.get);
12
- const user = useUser();
13
-
14
- return (
15
- <>
16
- <Authenticated>
17
- <div>
18
- <h1>Dashboard</h1>
19
- <p>Welcome {user.user?.fullName}</p>
20
- <p>privateData: {privateData?.message}</p>
21
- <UserButton />
22
- </div>
23
- </Authenticated>
24
- <Unauthenticated>
25
- <SignInButton />
26
- </Unauthenticated>
27
- <AuthLoading>
28
- <div>Loading...</div>
29
- </AuthLoading>
30
- </>
31
- );
32
- }
@@ -1,37 +0,0 @@
1
- import { SignInButton, UserButton, useUser } from "@clerk/clerk-react";
2
- import { api } from "@{{projectName}}/backend/convex/_generated/api";
3
- import { createFileRoute } from "@tanstack/react-router";
4
- import {
5
- Authenticated,
6
- AuthLoading,
7
- Unauthenticated,
8
- useQuery,
9
- } from "convex/react";
10
-
11
- export const Route = createFileRoute("/dashboard")({
12
- component: RouteComponent,
13
- });
14
-
15
- function RouteComponent() {
16
- const privateData = useQuery(api.privateData.get);
17
- const user = useUser()
18
-
19
- return (
20
- <>
21
- <Authenticated>
22
- <div>
23
- <h1>Dashboard</h1>
24
- <p>Welcome {user.user?.fullName}</p>
25
- <p>privateData: {privateData?.message}</p>
26
- <UserButton />
27
- </div>
28
- </Authenticated>
29
- <Unauthenticated>
30
- <SignInButton />
31
- </Unauthenticated>
32
- <AuthLoading>
33
- <div>Loading...</div>
34
- </AuthLoading>
35
- </>
36
- );
37
- }
@@ -1,37 +0,0 @@
1
- import { SignInButton, UserButton, useUser } from "@clerk/tanstack-react-start";
2
- import { api } from "@{{projectName}}/backend/convex/_generated/api";
3
- import { createFileRoute } from "@tanstack/react-router";
4
- import {
5
- Authenticated,
6
- AuthLoading,
7
- Unauthenticated,
8
- useQuery,
9
- } from "convex/react";
10
-
11
- export const Route = createFileRoute("/dashboard")({
12
- component: RouteComponent,
13
- });
14
-
15
- function RouteComponent() {
16
- const privateData = useQuery(api.privateData.get);
17
- const user = useUser();
18
-
19
- return (
20
- <>
21
- <Authenticated>
22
- <div>
23
- <h1>Dashboard</h1>
24
- <p>Welcome {user.user?.fullName}</p>
25
- <p>privateData: {privateData?.message}</p>
26
- <UserButton />
27
- </div>
28
- </Authenticated>
29
- <Unauthenticated>
30
- <SignInButton />
31
- </Unauthenticated>
32
- <AuthLoading>
33
- <div>Loading...</div>
34
- </AuthLoading>
35
- </>
36
- );
37
- }
@@ -1,8 +0,0 @@
1
- import { clerkMiddleware } from '@clerk/tanstack-react-start/server'
2
- import { createStart } from '@tanstack/react-start'
3
-
4
- export const startInstance = createStart(() => {
5
- return {
6
- requestMiddleware: [clerkMiddleware()],
7
- }
8
- })
@@ -1,2 +0,0 @@
1
-
2
- .env.local
@@ -1,90 +0,0 @@
1
- # Welcome to your Convex functions directory!
2
-
3
- Write your Convex functions here.
4
- See https://docs.convex.dev/functions for more.
5
-
6
- A query function that takes two arguments looks like:
7
-
8
- ```ts
9
- // convex/myFunctions.ts
10
- import { query } from "./_generated/server";
11
- import { v } from "convex/values";
12
-
13
- export const myQueryFunction = query({
14
- // Validators for arguments.
15
- args: {
16
- first: v.number(),
17
- second: v.string(),
18
- },
19
-
20
- // Function implementation.
21
- handler: async (ctx, args) => {
22
- // Read the database as many times as you need here.
23
- // See https://docs.convex.dev/database/reading-data.
24
- const documents = await ctx.db.query("tablename").collect();
25
-
26
- // Arguments passed from the client are properties of the args object.
27
- console.log(args.first, args.second);
28
-
29
- // Write arbitrary JavaScript here: filter, aggregate, build derived data,
30
- // remove non-public properties, or create new objects.
31
- return documents;
32
- },
33
- });
34
- ```
35
-
36
- Using this query function in a React component looks like:
37
-
38
- ```ts
39
- const data = useQuery(api.myFunctions.myQueryFunction, {
40
- first: 10,
41
- second: "hello",
42
- });
43
- ```
44
-
45
- A mutation function looks like:
46
-
47
- ```ts
48
- // convex/myFunctions.ts
49
- import { mutation } from "./_generated/server";
50
- import { v } from "convex/values";
51
-
52
- export const myMutationFunction = mutation({
53
- // Validators for arguments.
54
- args: {
55
- first: v.string(),
56
- second: v.string(),
57
- },
58
-
59
- // Function implementation.
60
- handler: async (ctx, args) => {
61
- // Insert or modify documents in the database here.
62
- // Mutations can also read from the database like queries.
63
- // See https://docs.convex.dev/database/writing-data.
64
- const message = { body: args.first, author: args.second };
65
- const id = await ctx.db.insert("messages", message);
66
-
67
- // Optionally, return a value from your mutation.
68
- return await ctx.db.get("messages", id);
69
- },
70
- });
71
- ```
72
-
73
- Using this mutation function in a React component looks like:
74
-
75
- ```ts
76
- const mutation = useMutation(api.myFunctions.myMutationFunction);
77
- function handleButtonPress() {
78
- // fire and forget, the most common way to use mutations
79
- mutation({ first: "Hello!", second: "me" });
80
- // OR
81
- // use the result once the mutation has completed
82
- mutation({ first: "Hello!", second: "me" }).then((result) =>
83
- console.log(result),
84
- );
85
- }
86
- ```
87
-
88
- Use the Convex CLI to push your functions to a deployment. See everything
89
- the Convex CLI can do by running `npx convex -h` in your project root
90
- directory. To learn more, launch the docs with `npx convex docs`.
@@ -1,17 +0,0 @@
1
- import { defineApp } from "convex/server";
2
- {{#if (eq auth "better-auth")}}
3
- import betterAuth from "@convex-dev/better-auth/convex.config";
4
- {{/if}}
5
- {{#if (includes examples "ai")}}
6
- import agent from "@convex-dev/agent/convex.config";
7
- {{/if}}
8
-
9
- const app = defineApp();
10
- {{#if (eq auth "better-auth")}}
11
- app.use(betterAuth);
12
- {{/if}}
13
- {{#if (includes examples "ai")}}
14
- app.use(agent);
15
- {{/if}}
16
-
17
- export default app;
@@ -1,7 +0,0 @@
1
- import { query } from "./_generated/server";
2
-
3
- export const get = query({
4
- handler: async () => {
5
- return "OK";
6
- },
7
- });