@wasp.sh/wasp-cli-darwin-arm64-unknown 0.17.2

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.

Potentially problematic release.


This version of @wasp.sh/wasp-cli-darwin-arm64-unknown might be problematic. Click here for more details.

Files changed (291) hide show
  1. package/data/Cli/bash-completion +5 -0
  2. package/data/Cli/starters/README.md +22 -0
  3. package/data/Cli/starters/basic/.prettierignore +2 -0
  4. package/data/Cli/starters/basic/.prettierrc +3 -0
  5. package/data/Cli/starters/basic/README.md +35 -0
  6. package/data/Cli/starters/basic/eslint.config.js +15 -0
  7. package/data/Cli/starters/basic/main.wasp +100 -0
  8. package/data/Cli/starters/basic/package.json +27 -0
  9. package/data/Cli/starters/basic/postcss.config.cjs +6 -0
  10. package/data/Cli/starters/basic/schema.prisma +42 -0
  11. package/data/Cli/starters/basic/src/App.css +13 -0
  12. package/data/Cli/starters/basic/src/App.tsx +12 -0
  13. package/data/Cli/starters/basic/src/assets/logo.svg +1 -0
  14. package/data/Cli/starters/basic/src/auth/AuthLayout.tsx +10 -0
  15. package/data/Cli/starters/basic/src/auth/email/EmailVerificationPage.tsx +19 -0
  16. package/data/Cli/starters/basic/src/auth/email/LoginPage.tsx +27 -0
  17. package/data/Cli/starters/basic/src/auth/email/PasswordResetPage.tsx +19 -0
  18. package/data/Cli/starters/basic/src/auth/email/RequestPasswordResetPage.tsx +10 -0
  19. package/data/Cli/starters/basic/src/auth/email/SignupPage.tsx +34 -0
  20. package/data/Cli/starters/basic/src/auth/email/userSignupFields.ts +13 -0
  21. package/data/Cli/starters/basic/src/shared/components/Button.tsx +90 -0
  22. package/data/Cli/starters/basic/src/shared/components/Dialog.tsx +85 -0
  23. package/data/Cli/starters/basic/src/shared/components/Header.tsx +39 -0
  24. package/data/Cli/starters/basic/src/shared/components/Input.tsx +36 -0
  25. package/data/Cli/starters/basic/src/shared/components/Portal.tsx +26 -0
  26. package/data/Cli/starters/basic/src/tags/actions.ts +23 -0
  27. package/data/Cli/starters/basic/src/tags/components/ColorRadioButton.tsx +44 -0
  28. package/data/Cli/starters/basic/src/tags/components/ColorRadioButtons.tsx +59 -0
  29. package/data/Cli/starters/basic/src/tags/components/CreateTagDialog.tsx +50 -0
  30. package/data/Cli/starters/basic/src/tags/components/CreateTagForm.tsx +100 -0
  31. package/data/Cli/starters/basic/src/tags/components/TagLabel.tsx +55 -0
  32. package/data/Cli/starters/basic/src/tags/components/colors.ts +8 -0
  33. package/data/Cli/starters/basic/src/tags/queries.ts +14 -0
  34. package/data/Cli/starters/basic/src/tasks/TasksPage.tsx +19 -0
  35. package/data/Cli/starters/basic/src/tasks/actions.ts +71 -0
  36. package/data/Cli/starters/basic/src/tasks/components/CreateTaskForm.tsx +103 -0
  37. package/data/Cli/starters/basic/src/tasks/components/TaskList.tsx +68 -0
  38. package/data/Cli/starters/basic/src/tasks/components/TaskListItem.tsx +56 -0
  39. package/data/Cli/starters/basic/src/tasks/queries.ts +21 -0
  40. package/data/Cli/starters/basic/tailwind.config.cjs +30 -0
  41. package/data/Cli/starters/basic/vite.config.ts +7 -0
  42. package/data/Cli/starters/minimal/main.wasp +14 -0
  43. package/data/Cli/starters/minimal/package.json +16 -0
  44. package/data/Cli/starters/minimal/schema.prisma +10 -0
  45. package/data/Cli/starters/minimal/src/Main.css +103 -0
  46. package/data/Cli/starters/minimal/src/MainPage.tsx +37 -0
  47. package/data/Cli/starters/minimal/src/assets/logo.svg +1 -0
  48. package/data/Cli/starters/minimal/vite.config.ts +7 -0
  49. package/data/Cli/starters/skeleton/.waspignore +4 -0
  50. package/data/Cli/starters/skeleton/.wasproot +1 -0
  51. package/data/Cli/starters/skeleton/public/.gitkeep +0 -0
  52. package/data/Cli/starters/skeleton/public/favicon.ico +0 -0
  53. package/data/Cli/starters/skeleton/src/vite-env.d.ts +7 -0
  54. package/data/Cli/starters/skeleton/tsconfig.json +28 -0
  55. package/data/Generator/templates/Dockerfile +72 -0
  56. package/data/Generator/templates/db/schema.prisma +24 -0
  57. package/data/Generator/templates/dockerignore +2 -0
  58. package/data/Generator/templates/react-app/README.md +21 -0
  59. package/data/Generator/templates/react-app/gitignore +23 -0
  60. package/data/Generator/templates/react-app/index.html +22 -0
  61. package/data/Generator/templates/react-app/netlify.toml +8 -0
  62. package/data/Generator/templates/react-app/npmrc +1 -0
  63. package/data/Generator/templates/react-app/package.json +30 -0
  64. package/data/Generator/templates/react-app/public/manifest.json +15 -0
  65. package/data/Generator/templates/react-app/src/auth/pages/OAuthCallback.tsx +96 -0
  66. package/data/Generator/templates/react-app/src/auth/pages/createAuthRequiredPage.jsx +40 -0
  67. package/data/Generator/templates/react-app/src/components/DefaultRootErrorBoundary.tsx +16 -0
  68. package/data/Generator/templates/react-app/src/components/FullPageWrapper.tsx +21 -0
  69. package/data/Generator/templates/react-app/src/components/Loader.module.css +37 -0
  70. package/data/Generator/templates/react-app/src/components/Loader.tsx +12 -0
  71. package/data/Generator/templates/react-app/src/components/Message.tsx +86 -0
  72. package/data/Generator/templates/react-app/src/index.tsx +47 -0
  73. package/data/Generator/templates/react-app/src/logo.png +0 -0
  74. package/data/Generator/templates/react-app/src/router.tsx +57 -0
  75. package/data/Generator/templates/react-app/src/stitches.config.js +33 -0
  76. package/data/Generator/templates/react-app/src/test/vitest/setup.ts +8 -0
  77. package/data/Generator/templates/react-app/src/utils.js +3 -0
  78. package/data/Generator/templates/react-app/src/vite-env.d.ts +1 -0
  79. package/data/Generator/templates/react-app/tsconfig.app.json +20 -0
  80. package/data/Generator/templates/react-app/tsconfig.json +11 -0
  81. package/data/Generator/templates/react-app/tsconfig.vite.json +16 -0
  82. package/data/Generator/templates/react-app/vite/detectServerImports.ts +53 -0
  83. package/data/Generator/templates/react-app/vite/validateEnv.ts +45 -0
  84. package/data/Generator/templates/react-app/vite.config.ts +74 -0
  85. package/data/Generator/templates/sdk/wasp/api/events.ts +11 -0
  86. package/data/Generator/templates/sdk/wasp/api/index.ts +136 -0
  87. package/data/Generator/templates/sdk/wasp/auth/email/actions/login.ts +13 -0
  88. package/data/Generator/templates/sdk/wasp/auth/email/actions/passwordReset.ts +22 -0
  89. package/data/Generator/templates/sdk/wasp/auth/email/actions/signup.ts +20 -0
  90. package/data/Generator/templates/sdk/wasp/auth/email/actions/verifyEmail.ts +14 -0
  91. package/data/Generator/templates/sdk/wasp/auth/email/index.ts +5 -0
  92. package/data/Generator/templates/sdk/wasp/auth/forms/Auth.tsx +108 -0
  93. package/data/Generator/templates/sdk/wasp/auth/forms/ForgotPassword.tsx +18 -0
  94. package/data/Generator/templates/sdk/wasp/auth/forms/Login.tsx +18 -0
  95. package/data/Generator/templates/sdk/wasp/auth/forms/ResetPassword.tsx +18 -0
  96. package/data/Generator/templates/sdk/wasp/auth/forms/Signup.tsx +24 -0
  97. package/data/Generator/templates/sdk/wasp/auth/forms/VerifyEmail.tsx +18 -0
  98. package/data/Generator/templates/sdk/wasp/auth/forms/internal/Form.tsx +107 -0
  99. package/data/Generator/templates/sdk/wasp/auth/forms/internal/Message.tsx +21 -0
  100. package/data/Generator/templates/sdk/wasp/auth/forms/internal/common/LoginSignupForm.tsx +356 -0
  101. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/ForgotPasswordForm.tsx +52 -0
  102. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/ResetPasswordForm.tsx +82 -0
  103. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/VerifyEmailForm.tsx +42 -0
  104. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/useEmail.ts +33 -0
  105. package/data/Generator/templates/sdk/wasp/auth/forms/internal/social/SocialButton.tsx +33 -0
  106. package/data/Generator/templates/sdk/wasp/auth/forms/internal/social/SocialIcons.tsx +78 -0
  107. package/data/Generator/templates/sdk/wasp/auth/forms/internal/usernameAndPassword/useUsernameAndPassword.ts +29 -0
  108. package/data/Generator/templates/sdk/wasp/auth/forms/types.ts +52 -0
  109. package/data/Generator/templates/sdk/wasp/auth/helpers/_Provider.tsx +17 -0
  110. package/data/Generator/templates/sdk/wasp/auth/helpers/user.ts +15 -0
  111. package/data/Generator/templates/sdk/wasp/auth/index.ts +9 -0
  112. package/data/Generator/templates/sdk/wasp/auth/jwt.ts +22 -0
  113. package/data/Generator/templates/sdk/wasp/auth/logout.ts +18 -0
  114. package/data/Generator/templates/sdk/wasp/auth/lucia.ts +53 -0
  115. package/data/Generator/templates/sdk/wasp/auth/password.ts +36 -0
  116. package/data/Generator/templates/sdk/wasp/auth/providers/index.ts +9 -0
  117. package/data/Generator/templates/sdk/wasp/auth/providers/types.ts +68 -0
  118. package/data/Generator/templates/sdk/wasp/auth/session.ts +78 -0
  119. package/data/Generator/templates/sdk/wasp/auth/types.ts +2 -0
  120. package/data/Generator/templates/sdk/wasp/auth/useAuth.ts +37 -0
  121. package/data/Generator/templates/sdk/wasp/auth/user.ts +63 -0
  122. package/data/Generator/templates/sdk/wasp/auth/username/actions/login.ts +13 -0
  123. package/data/Generator/templates/sdk/wasp/auth/username/actions/signup.ts +20 -0
  124. package/data/Generator/templates/sdk/wasp/auth/username/index.ts +2 -0
  125. package/data/Generator/templates/sdk/wasp/auth/utils.ts +369 -0
  126. package/data/Generator/templates/sdk/wasp/auth/validation.ts +83 -0
  127. package/data/Generator/templates/sdk/wasp/client/auth/discord.ts +2 -0
  128. package/data/Generator/templates/sdk/wasp/client/auth/email.ts +5 -0
  129. package/data/Generator/templates/sdk/wasp/client/auth/github.ts +2 -0
  130. package/data/Generator/templates/sdk/wasp/client/auth/google.ts +2 -0
  131. package/data/Generator/templates/sdk/wasp/client/auth/index.ts +29 -0
  132. package/data/Generator/templates/sdk/wasp/client/auth/keycloak.ts +2 -0
  133. package/data/Generator/templates/sdk/wasp/client/auth/slack.ts +2 -0
  134. package/data/Generator/templates/sdk/wasp/client/auth/ui.ts +32 -0
  135. package/data/Generator/templates/sdk/wasp/client/auth/username.ts +2 -0
  136. package/data/Generator/templates/sdk/wasp/client/config.ts +14 -0
  137. package/data/Generator/templates/sdk/wasp/client/crud/_crud.ts +89 -0
  138. package/data/Generator/templates/sdk/wasp/client/crud/index.ts +4 -0
  139. package/data/Generator/templates/sdk/wasp/client/crud/operationsHelpers.ts +21 -0
  140. package/data/Generator/templates/sdk/wasp/client/env/schema.ts +22 -0
  141. package/data/Generator/templates/sdk/wasp/client/env.ts +5 -0
  142. package/data/Generator/templates/sdk/wasp/client/index.ts +17 -0
  143. package/data/Generator/templates/sdk/wasp/client/operations/actions/core.ts +49 -0
  144. package/data/Generator/templates/sdk/wasp/client/operations/actions/index.ts +13 -0
  145. package/data/Generator/templates/sdk/wasp/client/operations/hooks.ts +347 -0
  146. package/data/Generator/templates/sdk/wasp/client/operations/index.ts +22 -0
  147. package/data/Generator/templates/sdk/wasp/client/operations/internal/index.ts +22 -0
  148. package/data/Generator/templates/sdk/wasp/client/operations/internal/resources.js +83 -0
  149. package/data/Generator/templates/sdk/wasp/client/operations/internal/updateHandlersMap.js +37 -0
  150. package/data/Generator/templates/sdk/wasp/client/operations/queries/core.ts +91 -0
  151. package/data/Generator/templates/sdk/wasp/client/operations/queries/index.ts +16 -0
  152. package/data/Generator/templates/sdk/wasp/client/operations/queryClient.ts +34 -0
  153. package/data/Generator/templates/sdk/wasp/client/operations/rpc.ts +96 -0
  154. package/data/Generator/templates/sdk/wasp/client/router/Link.tsx +21 -0
  155. package/data/Generator/templates/sdk/wasp/client/router/index.ts +53 -0
  156. package/data/Generator/templates/sdk/wasp/client/router/linkHelpers.ts +48 -0
  157. package/data/Generator/templates/sdk/wasp/client/router/types.ts +98 -0
  158. package/data/Generator/templates/sdk/wasp/client/test/index.ts +1 -0
  159. package/data/Generator/templates/sdk/wasp/client/test/vitest/helpers.tsx +95 -0
  160. package/data/Generator/templates/sdk/wasp/client/webSocket/WebSocketProvider.tsx +77 -0
  161. package/data/Generator/templates/sdk/wasp/client/webSocket/index.ts +39 -0
  162. package/data/Generator/templates/sdk/wasp/core/auth.ts +40 -0
  163. package/data/Generator/templates/sdk/wasp/core/serialization/custom-register.ts +21 -0
  164. package/data/Generator/templates/sdk/wasp/core/serialization/index.ts +56 -0
  165. package/data/Generator/templates/sdk/wasp/core/serialization/prisma.ts +54 -0
  166. package/data/Generator/templates/sdk/wasp/core/stitches.config.ts +39 -0
  167. package/data/Generator/templates/sdk/wasp/core/storage.ts +50 -0
  168. package/data/Generator/templates/sdk/wasp/dev/index.ts +19 -0
  169. package/data/Generator/templates/sdk/wasp/entities/index.ts +28 -0
  170. package/data/Generator/templates/sdk/wasp/env/index.ts +9 -0
  171. package/data/Generator/templates/sdk/wasp/env/validation.ts +38 -0
  172. package/data/Generator/templates/sdk/wasp/package.json +151 -0
  173. package/data/Generator/templates/sdk/wasp/prisma-runtime-library.d.ts +17 -0
  174. package/data/Generator/templates/sdk/wasp/server/HttpError.ts +30 -0
  175. package/data/Generator/templates/sdk/wasp/server/_types/index.ts +105 -0
  176. package/data/Generator/templates/sdk/wasp/server/_types/taggedEntities.ts +26 -0
  177. package/data/Generator/templates/sdk/wasp/server/api/index.ts +44 -0
  178. package/data/Generator/templates/sdk/wasp/server/auth/email/index.ts +20 -0
  179. package/data/Generator/templates/sdk/wasp/server/auth/email/utils.ts +104 -0
  180. package/data/Generator/templates/sdk/wasp/server/auth/hooks.ts +188 -0
  181. package/data/Generator/templates/sdk/wasp/server/auth/index.ts +49 -0
  182. package/data/Generator/templates/sdk/wasp/server/auth/oauth/index.ts +38 -0
  183. package/data/Generator/templates/sdk/wasp/server/auth/oauth/oneTimeCode.ts +50 -0
  184. package/data/Generator/templates/sdk/wasp/server/auth/oauth/provider.ts +20 -0
  185. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/discord.ts +22 -0
  186. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/github.ts +20 -0
  187. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/google.ts +22 -0
  188. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/keycloak.ts +23 -0
  189. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/slack.ts +22 -0
  190. package/data/Generator/templates/sdk/wasp/server/auth/oauth/redirect.ts +43 -0
  191. package/data/Generator/templates/sdk/wasp/server/auth/user.ts +148 -0
  192. package/data/Generator/templates/sdk/wasp/server/auth/username.ts +1 -0
  193. package/data/Generator/templates/sdk/wasp/server/config.ts +47 -0
  194. package/data/Generator/templates/sdk/wasp/server/crud/_operationTypes.ts +134 -0
  195. package/data/Generator/templates/sdk/wasp/server/crud/index.ts +5 -0
  196. package/data/Generator/templates/sdk/wasp/server/dbClient.ts +35 -0
  197. package/data/Generator/templates/sdk/wasp/server/email/core/helpers.ts +40 -0
  198. package/data/Generator/templates/sdk/wasp/server/email/core/index.ts +17 -0
  199. package/data/Generator/templates/sdk/wasp/server/email/core/providers/dummy.ts +34 -0
  200. package/data/Generator/templates/sdk/wasp/server/email/core/providers/mailgun.ts +31 -0
  201. package/data/Generator/templates/sdk/wasp/server/email/core/providers/sendgrid.ts +44 -0
  202. package/data/Generator/templates/sdk/wasp/server/email/core/providers/smtp.ts +29 -0
  203. package/data/Generator/templates/sdk/wasp/server/email/core/types.ts +59 -0
  204. package/data/Generator/templates/sdk/wasp/server/email/index.ts +39 -0
  205. package/data/Generator/templates/sdk/wasp/server/env.ts +168 -0
  206. package/data/Generator/templates/sdk/wasp/server/index.ts +17 -0
  207. package/data/Generator/templates/sdk/wasp/server/jobs/_job.ts +39 -0
  208. package/data/Generator/templates/sdk/wasp/server/jobs/core/job.ts +28 -0
  209. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/index.ts +3 -0
  210. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBoss.ts +76 -0
  211. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBossJob.ts +230 -0
  212. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/types.ts +9 -0
  213. package/data/Generator/templates/sdk/wasp/server/jobs/index.ts +5 -0
  214. package/data/Generator/templates/sdk/wasp/server/middleware/globalMiddleware.ts +8 -0
  215. package/data/Generator/templates/sdk/wasp/server/middleware/index.ts +1 -0
  216. package/data/Generator/templates/sdk/wasp/server/operations/actions/index.ts +41 -0
  217. package/data/Generator/templates/sdk/wasp/server/operations/actions/types.ts +35 -0
  218. package/data/Generator/templates/sdk/wasp/server/operations/index.ts +13 -0
  219. package/data/Generator/templates/sdk/wasp/server/operations/queries/index.ts +42 -0
  220. package/data/Generator/templates/sdk/wasp/server/operations/queries/types.ts +36 -0
  221. package/data/Generator/templates/sdk/wasp/server/operations/wrappers.ts +242 -0
  222. package/data/Generator/templates/sdk/wasp/server/types/index.ts +11 -0
  223. package/data/Generator/templates/sdk/wasp/server/utils.ts +38 -0
  224. package/data/Generator/templates/sdk/wasp/server/webSocket/index.ts +57 -0
  225. package/data/Generator/templates/sdk/wasp/tsconfig.json +114 -0
  226. package/data/Generator/templates/sdk/wasp/universal/ansiColors.ts +14 -0
  227. package/data/Generator/templates/sdk/wasp/universal/predicates.ts +3 -0
  228. package/data/Generator/templates/sdk/wasp/universal/types.ts +74 -0
  229. package/data/Generator/templates/sdk/wasp/universal/url.ts +5 -0
  230. package/data/Generator/templates/sdk/wasp/universal/validators.ts +21 -0
  231. package/data/Generator/templates/sdk/wasp/vite-env.d.ts +1 -0
  232. package/data/Generator/templates/server/README.md +1 -0
  233. package/data/Generator/templates/server/gitignore +6 -0
  234. package/data/Generator/templates/server/nodemon.json +13 -0
  235. package/data/Generator/templates/server/npmrc +1 -0
  236. package/data/Generator/templates/server/package.json +27 -0
  237. package/data/Generator/templates/server/rollup.config.js +44 -0
  238. package/data/Generator/templates/server/src/actions/_action.ts +18 -0
  239. package/data/Generator/templates/server/src/app.js +36 -0
  240. package/data/Generator/templates/server/src/auth/hooks.ts +135 -0
  241. package/data/Generator/templates/server/src/auth/providers/config/discord.ts +69 -0
  242. package/data/Generator/templates/server/src/auth/providers/config/email.ts +96 -0
  243. package/data/Generator/templates/server/src/auth/providers/config/github.ts +78 -0
  244. package/data/Generator/templates/server/src/auth/providers/config/google.ts +65 -0
  245. package/data/Generator/templates/server/src/auth/providers/config/keycloak.ts +67 -0
  246. package/data/Generator/templates/server/src/auth/providers/config/slack.ts +65 -0
  247. package/data/Generator/templates/server/src/auth/providers/config/username.ts +33 -0
  248. package/data/Generator/templates/server/src/auth/providers/email/login.ts +66 -0
  249. package/data/Generator/templates/server/src/auth/providers/email/requestPasswordReset.ts +74 -0
  250. package/data/Generator/templates/server/src/auth/providers/email/resetPassword.ts +48 -0
  251. package/data/Generator/templates/server/src/auth/providers/email/signup.ts +165 -0
  252. package/data/Generator/templates/server/src/auth/providers/email/verifyEmail.ts +42 -0
  253. package/data/Generator/templates/server/src/auth/providers/index.ts +32 -0
  254. package/data/Generator/templates/server/src/auth/providers/oauth/config.ts +19 -0
  255. package/data/Generator/templates/server/src/auth/providers/oauth/cookies.ts +35 -0
  256. package/data/Generator/templates/server/src/auth/providers/oauth/handler.ts +130 -0
  257. package/data/Generator/templates/server/src/auth/providers/oauth/oneTimeCode.ts +39 -0
  258. package/data/Generator/templates/server/src/auth/providers/oauth/state.ts +144 -0
  259. package/data/Generator/templates/server/src/auth/providers/oauth/types.ts +7 -0
  260. package/data/Generator/templates/server/src/auth/providers/oauth/user.ts +139 -0
  261. package/data/Generator/templates/server/src/auth/providers/username/login.ts +64 -0
  262. package/data/Generator/templates/server/src/auth/providers/username/signup.ts +59 -0
  263. package/data/Generator/templates/server/src/crud/_operations.ts +184 -0
  264. package/data/Generator/templates/server/src/dbSeed.ts +37 -0
  265. package/data/Generator/templates/server/src/jobs/_job.ts +9 -0
  266. package/data/Generator/templates/server/src/jobs/core/allJobs.ts +8 -0
  267. package/data/Generator/templates/server/src/middleware/globalMiddleware.ts +45 -0
  268. package/data/Generator/templates/server/src/middleware/index.ts +1 -0
  269. package/data/Generator/templates/server/src/middleware/operations.ts +28 -0
  270. package/data/Generator/templates/server/src/queries/_query.ts +18 -0
  271. package/data/Generator/templates/server/src/routes/apis/index.ts +67 -0
  272. package/data/Generator/templates/server/src/routes/auth/index.js +16 -0
  273. package/data/Generator/templates/server/src/routes/auth/logout.ts +12 -0
  274. package/data/Generator/templates/server/src/routes/auth/me.ts +10 -0
  275. package/data/Generator/templates/server/src/routes/crud/_crud.ts +46 -0
  276. package/data/Generator/templates/server/src/routes/crud/index.ts +12 -0
  277. package/data/Generator/templates/server/src/routes/index.js +37 -0
  278. package/data/Generator/templates/server/src/routes/operations/_action.js +5 -0
  279. package/data/Generator/templates/server/src/routes/operations/_query.js +5 -0
  280. package/data/Generator/templates/server/src/routes/operations/index.js +18 -0
  281. package/data/Generator/templates/server/src/server.ts +76 -0
  282. package/data/Generator/templates/server/src/webSocket/initialization.ts +59 -0
  283. package/data/Generator/templates/server/tsconfig.json +41 -0
  284. package/data/Lsp/templates/ts/action.fn.ts +12 -0
  285. package/data/Lsp/templates/ts/operation.fn.js +7 -0
  286. package/data/Lsp/templates/ts/page.component.jsx +9 -0
  287. package/data/Lsp/templates/ts/query.fn.ts +12 -0
  288. package/main.js +9 -0
  289. package/package.json +1 -0
  290. package/readme.md +3 -0
  291. package/wasp-bin +0 -0
@@ -0,0 +1,56 @@
1
+ import { twJoin } from "tailwind-merge";
2
+ import { updateTaskStatus } from "wasp/client/operations";
3
+ import { TagLabel } from "../../tags/components/TagLabel";
4
+ import { TaskWithTags } from "../queries";
5
+
6
+ interface TaskListItemProps {
7
+ task: TaskWithTags;
8
+ }
9
+
10
+ export function TaskListItem({ task }: TaskListItemProps) {
11
+ async function setTaskDone(
12
+ event: React.ChangeEvent<HTMLInputElement>,
13
+ ): Promise<void> {
14
+ try {
15
+ await updateTaskStatus({
16
+ id: task.id,
17
+ isDone: event.currentTarget.checked,
18
+ });
19
+ } catch (err: unknown) {
20
+ window.alert(`Error while updating task: ${String(err)}`);
21
+ }
22
+ }
23
+
24
+ return (
25
+ <li>
26
+ <label
27
+ className={twJoin(
28
+ "card flex w-full flex-wrap items-center justify-between gap-4 rounded-lg px-6 py-3",
29
+ task.isDone ? "bg-primary-50" : "bg-neutral-50",
30
+ )}
31
+ >
32
+ <div className="flex min-w-0 items-center gap-4">
33
+ <input
34
+ type="checkbox"
35
+ className="h-5 w-5 shrink-0 accent-primary-500"
36
+ checked={task.isDone}
37
+ onChange={setTaskDone}
38
+ />
39
+ <div className="flex min-w-0 flex-col break-words">
40
+ <p>{task.description}</p>
41
+ <span className="text-xs text-neutral-500">
42
+ {task.createdAt.toLocaleDateString()}
43
+ </span>
44
+ </div>
45
+ </div>
46
+ <ul className="flex flex-wrap gap-x-2">
47
+ {task.tags.map((tag) => (
48
+ <li key={tag.id}>
49
+ <TagLabel tag={tag} isActive={true} size="tiny" />
50
+ </li>
51
+ ))}
52
+ </ul>
53
+ </label>
54
+ </li>
55
+ );
56
+ }
@@ -0,0 +1,21 @@
1
+ import { Tag, Task } from "wasp/entities";
2
+ import { HttpError } from "wasp/server";
3
+ import { type GetTasks } from "wasp/server/operations";
4
+
5
+ export type TaskWithTags = Task & { tags: Tag[] };
6
+
7
+ export const getTasks: GetTasks<void, TaskWithTags[]> = (_args, context) => {
8
+ if (!context.user) {
9
+ throw new HttpError(401);
10
+ }
11
+
12
+ return context.entities.Task.findMany({
13
+ where: { user: { id: context.user.id } },
14
+ orderBy: { createdAt: "desc" },
15
+ include: {
16
+ tags: {
17
+ orderBy: { name: "asc" },
18
+ },
19
+ },
20
+ });
21
+ };
@@ -0,0 +1,30 @@
1
+ import { resolveProjectPath } from "wasp/dev";
2
+
3
+ /** @type {import('tailwindcss').Config} */
4
+ module.exports = {
5
+ content: [resolveProjectPath("./src/**/*.{js,jsx,ts,tsx}")],
6
+ theme: {
7
+ extend: {
8
+ fontSize: {
9
+ "tiny": ["0.625rem", "1rem"], // 10px
10
+ },
11
+ colors: {
12
+ // Created using https://www.tints.dev
13
+ primary: {
14
+ 50: "#FFFBEB",
15
+ 100: "#FFF7D6",
16
+ 200: "#FFEFAD",
17
+ 300: "#FFE680",
18
+ 400: "#FFDA47",
19
+ 500: "#FFCC00",
20
+ 600: "#E6B800",
21
+ 700: "#CCA300",
22
+ 800: "#A88700",
23
+ 900: "#7A6200",
24
+ 950: "#574500"
25
+ },
26
+ },
27
+ },
28
+ },
29
+ plugins: [],
30
+ };
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from 'vite'
2
+
3
+ export default defineConfig({
4
+ server: {
5
+ open: true,
6
+ },
7
+ })
@@ -0,0 +1,14 @@
1
+ app __waspAppName__ {
2
+ wasp: {
3
+ version: "__waspVersion__"
4
+ },
5
+ title: "__waspProjectName__",
6
+ head: [
7
+ "<link rel='icon' href='/favicon.ico' />",
8
+ ]
9
+ }
10
+
11
+ route RootRoute { path: "/", to: MainPage }
12
+ page MainPage {
13
+ component: import { MainPage } from "@src/MainPage"
14
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "__waspAppName__",
3
+ "type": "module",
4
+ "dependencies": {
5
+ "react": "^18.2.0",
6
+ "react-dom": "^18.2.0",
7
+ "react-router-dom": "^6.26.2",
8
+ "wasp": "file:.wasp/out/sdk/wasp"
9
+ },
10
+ "devDependencies": {
11
+ "@types/react": "^18.0.37",
12
+ "prisma": "5.19.1",
13
+ "typescript": "5.8.2",
14
+ "vite": "^4.3.9"
15
+ }
16
+ }
@@ -0,0 +1,10 @@
1
+ datasource db {
2
+ provider = "sqlite"
3
+ // Wasp requires that the url is set to the DATABASE_URL environment variable.
4
+ url = env("DATABASE_URL")
5
+ }
6
+
7
+ // Wasp requires the `prisma-client-js` generator to be present.
8
+ generator client {
9
+ provider = "prisma-client-js"
10
+ }
@@ -0,0 +1,103 @@
1
+ * {
2
+ -webkit-font-smoothing: antialiased;
3
+ -moz-osx-font-smoothing: grayscale;
4
+ box-sizing: border-box;
5
+ margin: 0;
6
+ padding: 0;
7
+ }
8
+
9
+ body {
10
+ font-family:
11
+ -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu",
12
+ "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
13
+ }
14
+
15
+ #root {
16
+ min-height: 100vh;
17
+ display: flex;
18
+ flex-direction: column;
19
+ justify-content: center;
20
+ align-items: center;
21
+ }
22
+
23
+ .container {
24
+ margin: 3rem 3rem 10rem 3rem;
25
+ max-width: 726px;
26
+ display: flex;
27
+ flex-direction: column;
28
+ justify-content: center;
29
+ align-items: center;
30
+ text-align: center;
31
+ }
32
+
33
+ .logo {
34
+ max-height: 200px;
35
+ margin-bottom: 1rem;
36
+ }
37
+
38
+ .title {
39
+ font-size: 4rem;
40
+ font-weight: 700;
41
+ margin-bottom: 1rem;
42
+ }
43
+
44
+ .content {
45
+ font-size: 1.2rem;
46
+ font-weight: 400;
47
+ line-height: 2;
48
+ margin-bottom: 3rem;
49
+ }
50
+
51
+ .buttons {
52
+ display: flex;
53
+ flex-direction: row;
54
+ gap: 1rem;
55
+ }
56
+
57
+ .button {
58
+ font-size: 1.2rem;
59
+ font-weight: 700;
60
+ text-decoration: none;
61
+ padding: 1.2rem 1.5rem;
62
+ border-radius: 10px;
63
+ }
64
+
65
+ .button-filled {
66
+ color: black;
67
+ background-color: #ffcc00;
68
+ border: 2px solid #ffcc00;
69
+
70
+ transition: all 0.2s ease-in-out;
71
+ }
72
+
73
+ .button-filled:hover {
74
+ filter: brightness(0.95);
75
+ }
76
+
77
+ .button-outlined {
78
+ color: black;
79
+ background-color: transparent;
80
+ border: 2px solid #ffcc00;
81
+
82
+ transition: all 0.2s ease-in-out;
83
+ }
84
+
85
+ .button-outlined:hover {
86
+ filter: brightness(0.95);
87
+ }
88
+
89
+ code {
90
+ border-radius: 5px;
91
+ border: 1px solid #ffcc00;
92
+ padding: 0.2rem;
93
+ background: #ffcc0044;
94
+ font-family:
95
+ Menlo,
96
+ Monaco,
97
+ Lucida Console,
98
+ Liberation Mono,
99
+ DejaVu Sans Mono,
100
+ Bitstream Vera Sans Mono,
101
+ Courier New,
102
+ monospace;
103
+ }
@@ -0,0 +1,37 @@
1
+ import Logo from "./assets/logo.svg";
2
+ import "./Main.css";
3
+
4
+ export function MainPage() {
5
+ return (
6
+ <main className="container">
7
+ <img className="logo" src={Logo} alt="wasp" />
8
+
9
+ <h2 className="title">Welcome to Wasp!</h2>
10
+
11
+ <p className="content">
12
+ This is page <code>MainPage</code> located at route <code>/</code>.
13
+ <br />
14
+ Open <code>src/MainPage.tsx</code> to edit it.
15
+ </p>
16
+
17
+ <div className="buttons">
18
+ <a
19
+ className="button button-filled"
20
+ href="https://wasp.sh/docs/tutorial/create"
21
+ target="_blank"
22
+ rel="noreferrer noopener"
23
+ >
24
+ Take the Tutorial
25
+ </a>
26
+ <a
27
+ className="button button-outlined"
28
+ href="https://discord.com/invite/rzdnErX"
29
+ target="_blank"
30
+ rel="noreferrer noopener"
31
+ >
32
+ Chat on Discord
33
+ </a>
34
+ </div>
35
+ </main>
36
+ );
37
+ }
@@ -0,0 +1 @@
1
+ <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 161 161"><defs><style>.cls-1{fill:#f5cc05;}.cls-2{fill-rule:evenodd;}</style></defs><g id="Page-1"><g id="Group-23"><circle id="Oval" class="cls-1" cx="80.5" cy="80.5" r="79"/><g id="Group-36"><g id="_" data-name="}"><path id="path-2" class="cls-2" d="M88.67,114.33h2.91q6,0,7.87-1.89c1.22-1.25,1.83-3.9,1.83-7.93V93.89c0-4.46.65-7.7,1.93-9.73s3.51-3.43,6.67-4.2q-4.69-1.08-6.65-4.12c-1.3-2-2-5.28-2-9.77V55.44q0-6-1.83-7.93t-7.87-1.88H88.67V39.5h2.65q10.65,0,14.24,3.15t3.59,12.62V65.56c0,4.28.77,7.24,2.29,8.87s4.3,2.44,8.32,2.44h2.74V83h-2.74q-6,0-8.32,2.49c-1.52,1.65-2.29,4.64-2.29,9v10.25q0,9.47-3.59,12.64T91.32,120.5H88.67Z"/><path id="path-2-2" data-name="path-2" class="cls-2" d="M88.67,114.33h2.91q6,0,7.87-1.89c1.22-1.25,1.83-3.9,1.83-7.93V93.89c0-4.46.65-7.7,1.93-9.73s3.51-3.43,6.67-4.2q-4.69-1.08-6.65-4.12c-1.3-2-2-5.28-2-9.77V55.44q0-6-1.83-7.93t-7.87-1.88H88.67V39.5h2.65q10.65,0,14.24,3.15t3.59,12.62V65.56c0,4.28.77,7.24,2.29,8.87s4.3,2.44,8.32,2.44h2.74V83h-2.74q-6,0-8.32,2.49c-1.52,1.65-2.29,4.64-2.29,9v10.25q0,9.47-3.59,12.64T91.32,120.5H88.67Z"/></g><g id="text831"><g id="_2" data-name="="><path id="path-3" class="cls-2" d="M38.5,85.15H75.83v7.58H38.5Zm0-17.88H75.83v7.49H38.5Z"/><path id="path-3-2" data-name="path-3" class="cls-2" d="M38.5,85.15H75.83v7.58H38.5Zm0-17.88H75.83v7.49H38.5Z"/></g></g></g></g></g></svg>
@@ -0,0 +1,7 @@
1
+ import { defineConfig } from "vite";
2
+
3
+ export default defineConfig({
4
+ server: {
5
+ open: true,
6
+ },
7
+ });
@@ -0,0 +1,4 @@
1
+ # Ignore editor tmp files
2
+ **/*~
3
+ **/#*#
4
+ .DS_Store
@@ -0,0 +1 @@
1
+ File marking the root of Wasp project.
File without changes
@@ -0,0 +1,7 @@
1
+ /// <reference types="vite/client" />
2
+
3
+ // This is needed to properly support Vitest testing with jest-dom matchers.
4
+ // Types for jest-dom are not recognized automatically and Typescript complains
5
+ // about missing types e.g. when using `toBeInTheDocument` and other matchers.
6
+ // Reference: https://github.com/testing-library/jest-dom/issues/546#issuecomment-1889884843
7
+ import "@testing-library/jest-dom";
@@ -0,0 +1,28 @@
1
+ // =============================== IMPORTANT =================================
2
+ // This file is mainly used for Wasp IDE support.
3
+ //
4
+ // Wasp will compile your code with slightly different (less strict) compilerOptions.
5
+ // You can increase the configuration's strictness (e.g., by adding
6
+ // "noUncheckedIndexedAccess": true), but you shouldn't reduce it (e.g., by
7
+ // adding "strict": false). Just keep in mind that this will only affect your
8
+ // IDE support, not the actual compilation.
9
+ //
10
+ // Full TypeScript configurability is coming very soon :)
11
+ {
12
+ "compilerOptions": {
13
+ "module": "esnext",
14
+ "composite": true,
15
+ "target": "esnext",
16
+ "moduleResolution": "bundler",
17
+ "jsx": "preserve",
18
+ "strict": true,
19
+ "esModuleInterop": true,
20
+ "isolatedModules": true,
21
+ "moduleDetection": "force",
22
+ "lib": ["dom", "dom.iterable", "esnext"],
23
+ "skipLibCheck": true,
24
+ "allowJs": true,
25
+ "outDir": ".wasp/out/user"
26
+ },
27
+ "include": ["src"]
28
+ }
@@ -0,0 +1,72 @@
1
+ {{={= =}=}}
2
+ # NOTE: Why do we specify alpine version here?
3
+ # Because if not, we had situations where it would use the different version
4
+ # locally and on Github CI. This way we ensure exact version is used,
5
+ # and also have control over updating it (instead of update surprising us).
6
+ FROM node:{= nodeVersion =}-alpine3.17 AS node
7
+
8
+
9
+ # We split Dockerfile into base, server-builder and server-production.
10
+ # This way we have separate situations -> in server-builder we build all
11
+ # we need to run the server, and then in server-production we start fresh
12
+ # and just copy what we need from server-builder, avoiding intermediate
13
+ # artifacts and any settings / pollution we don't need in production
14
+ # but only for building.
15
+
16
+
17
+ FROM node AS base
18
+ RUN apk --no-cache -U upgrade # To ensure any potential security patches are applied.
19
+
20
+
21
+ # Todo: The 'server-builder' image stays on disk under <none>:<none> and is
22
+ # relatively large (~900 MB), should we remove it? Or is it useful for future
23
+ # builds?
24
+ FROM base AS server-builder
25
+ # Building the Docker image on Apple's Silicon Mac fails without python3 (the build
26
+ # throws `node-gyp` errors when it tries to compile native deps. Installing
27
+ # `python3` fixes the issue.
28
+ RUN apk add --no-cache python3 build-base libtool autoconf automake
29
+ WORKDIR /app
30
+ # Since the framwork code in /.wasp/build/server imports the user code in /src
31
+ # using relative imports, we must mirror the same directory structure in the
32
+ # Docker image.
33
+ COPY src ./src
34
+ COPY package.json .
35
+ COPY package-lock.json .
36
+ COPY tsconfig*.json .
37
+ COPY server .wasp/build/server
38
+ COPY sdk .wasp/out/sdk
39
+ # Install npm packages, resulting in node_modules/.
40
+ RUN npm install && cd .wasp/build/server && npm install
41
+ {=# usingPrisma =}
42
+ COPY db/schema.prisma .wasp/build/db/
43
+ RUN cd .wasp/build/server && npx prisma generate --schema='{= dbSchemaFileFromServerDir =}'
44
+ {=/ usingPrisma =}
45
+ # Building the server should come after Prisma generation.
46
+ RUN cd .wasp/build/server && npm run bundle
47
+
48
+
49
+ # TODO: Use pm2?
50
+ # TODO: Use non-root user (node).
51
+ FROM base AS server-production
52
+ # In case they want to use python3 in their app.
53
+ RUN apk add --no-cache python3
54
+ ENV NODE_ENV=production
55
+ WORKDIR /app
56
+ # Copying the top level 'node_modules' because it contains the Prisma packages
57
+ # necessary for migrating the database.
58
+ COPY --from=server-builder /app/node_modules ./node_modules
59
+ # Copying 'server/node_modules' because we require dotenv package to
60
+ # load environment variables
61
+ # TODO: replace dotenv with native Node.js environment variable loading
62
+ COPY --from=server-builder /app/.wasp/build/server/node_modules .wasp/build/server/node_modules
63
+ COPY --from=server-builder /app/.wasp/build/server/bundle .wasp/build/server/bundle
64
+ COPY --from=server-builder /app/.wasp/build/server/package*.json .wasp/build/server/
65
+ COPY db/ .wasp/build/db/
66
+ EXPOSE ${PORT}
67
+ WORKDIR /app/.wasp/build/server
68
+ ENTRYPOINT ["npm", "run", "start-production"]
69
+
70
+
71
+ # Any user-defined Dockerfile contents will be appended below.
72
+ {=& userDockerfile =}
@@ -0,0 +1,24 @@
1
+ {{={= =}=}}
2
+
3
+ {=& datasourceSchema =}
4
+
5
+ {=# generatorSchemas =}
6
+ {=& . =}
7
+ {=/ generatorSchemas =}
8
+
9
+ {=# modelSchemas =}
10
+ {=& . =}
11
+
12
+ {=/ modelSchemas =}
13
+ {=# enumSchemas =}
14
+ {=& . =}
15
+
16
+ {=/ enumSchemas =}
17
+ {=# viewSchemas =}
18
+ {=& . =}
19
+
20
+ {=/ viewSchemas =}
21
+ {=# typeSchemas =}
22
+ {=& . =}
23
+
24
+ {=/ typeSchemas =}
@@ -0,0 +1,2 @@
1
+ **/node_modules/
2
+ **/.git
@@ -0,0 +1,21 @@
1
+ This project was bootstrapped with [Vite's React TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts).
2
+
3
+ ## Available Scripts
4
+
5
+ In the project directory, you can run:
6
+
7
+ ### `npm start`
8
+
9
+ Runs the app in development mode.<br>
10
+ Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
11
+
12
+ The page will reload if you make edits.<br>
13
+ You will also see any lint errors in the console.
14
+
15
+ ### `npm run build`
16
+
17
+ Builds the app for production to the `build` folder.<br>
18
+ It correctly bundles React in production mode and optimizes the build for the best performance.
19
+
20
+ The build is minified and the filenames include the hashes.<br>
21
+ Your app is ready to be deployed!
@@ -0,0 +1,23 @@
1
+ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2
+
3
+ # dependencies
4
+ /node_modules
5
+ /.pnp
6
+ .pnp.js
7
+
8
+ # testing
9
+ /coverage
10
+
11
+ # production
12
+ /build
13
+
14
+ # misc
15
+ .DS_Store
16
+ .env.local
17
+ .env.development.local
18
+ .env.test.local
19
+ .env.production.local
20
+
21
+ npm-debug.log*
22
+ yarn-debug.log*
23
+ yarn-error.log*
@@ -0,0 +1,22 @@
1
+ {{={= =}=}}
2
+ <!DOCTYPE html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <meta
7
+ name="viewport"
8
+ content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"
9
+ />
10
+ <link rel="manifest" href="/manifest.json" />
11
+
12
+ {=& head =}
13
+
14
+ <title>{= title =}</title>
15
+ </head>
16
+
17
+ <body>
18
+ <noscript>You need to enable JavaScript to run this app.</noscript>
19
+ <div id="root"></div>
20
+ <script type="module" src="/src/index.tsx"></script>
21
+ </body>
22
+ </html>
@@ -0,0 +1,8 @@
1
+ [build]
2
+ publish = ".wasp/build/web-app/build/"
3
+
4
+ [[redirects]]
5
+ from = "/*"
6
+ to = "/index.html"
7
+ status = 200
8
+ force = false
@@ -0,0 +1 @@
1
+ engine-strict=true
@@ -0,0 +1,30 @@
1
+ {{={= =}=}}
2
+ {
3
+ "name": "{= appName =}",
4
+ "version": "0.0.0",
5
+ "private": true,
6
+ "type": "module",
7
+ {=& depsChunk =},
8
+ {=& devDepsChunk =},
9
+ {=& overridesChunk =},
10
+ "scripts": {
11
+ "start": "vite",
12
+ "build": "tsc --build && vite build"
13
+ },
14
+ "engineStrict": true,
15
+ "engines": {
16
+ "node": "{=& nodeVersionRange =}"
17
+ },
18
+ "browserslist": {
19
+ "production": [
20
+ ">0.2%",
21
+ "not dead",
22
+ "not op_mini all"
23
+ ],
24
+ "development": [
25
+ "last 1 chrome version",
26
+ "last 1 firefox version",
27
+ "last 1 safari version"
28
+ ]
29
+ }
30
+ }
@@ -0,0 +1,15 @@
1
+ {{={= =}=}}
2
+ {
3
+ "name": "{= appName =}",
4
+ "icons": [
5
+ {
6
+ "src": "favicon.ico",
7
+ "sizes": "64x64 32x32 24x24 16x16",
8
+ "type": "image/x-icon"
9
+ }
10
+ ],
11
+ "start_url": ".",
12
+ "display": "standalone",
13
+ "theme_color": "#000000",
14
+ "background_color": "#ffffff"
15
+ }