@wasp.sh/wasp-cli-darwin-x64-unknown 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/data/Cli/starters/README.md +22 -0
  2. package/data/Cli/starters/basic/README.md +35 -0
  3. package/data/Cli/starters/basic/eslint.config.js +24 -0
  4. package/data/Cli/starters/basic/main.wasp +100 -0
  5. package/data/Cli/starters/basic/package.json +29 -0
  6. package/data/Cli/starters/basic/postcss.config.js +6 -0
  7. package/data/Cli/starters/basic/schema.prisma +42 -0
  8. package/data/Cli/starters/basic/src/App.css +13 -0
  9. package/data/Cli/starters/basic/src/App.tsx +12 -0
  10. package/data/Cli/starters/basic/src/assets/logo.svg +1 -0
  11. package/data/Cli/starters/basic/src/auth/AuthLayout.tsx +10 -0
  12. package/data/Cli/starters/basic/src/auth/email/EmailVerificationPage.tsx +19 -0
  13. package/data/Cli/starters/basic/src/auth/email/LoginPage.tsx +27 -0
  14. package/data/Cli/starters/basic/src/auth/email/PasswordResetPage.tsx +19 -0
  15. package/data/Cli/starters/basic/src/auth/email/RequestPasswordResetPage.tsx +10 -0
  16. package/data/Cli/starters/basic/src/auth/email/SignupPage.tsx +34 -0
  17. package/data/Cli/starters/basic/src/auth/email/userSignupFields.ts +13 -0
  18. package/data/Cli/starters/basic/src/shared/components/Button.tsx +90 -0
  19. package/data/Cli/starters/basic/src/shared/components/Dialog.tsx +85 -0
  20. package/data/Cli/starters/basic/src/shared/components/Header.tsx +39 -0
  21. package/data/Cli/starters/basic/src/shared/components/Input.tsx +36 -0
  22. package/data/Cli/starters/basic/src/shared/components/Portal.tsx +26 -0
  23. package/data/Cli/starters/basic/src/tags/actions.ts +23 -0
  24. package/data/Cli/starters/basic/src/tags/components/ColorRadioButton.tsx +44 -0
  25. package/data/Cli/starters/basic/src/tags/components/ColorRadioButtons.tsx +59 -0
  26. package/data/Cli/starters/basic/src/tags/components/CreateTagDialog.tsx +50 -0
  27. package/data/Cli/starters/basic/src/tags/components/CreateTagForm.tsx +100 -0
  28. package/data/Cli/starters/basic/src/tags/components/TagLabel.tsx +55 -0
  29. package/data/Cli/starters/basic/src/tags/components/colors.ts +8 -0
  30. package/data/Cli/starters/basic/src/tags/queries.ts +14 -0
  31. package/data/Cli/starters/basic/src/tasks/TasksPage.tsx +19 -0
  32. package/data/Cli/starters/basic/src/tasks/actions.ts +71 -0
  33. package/data/Cli/starters/basic/src/tasks/components/CreateTaskForm.tsx +103 -0
  34. package/data/Cli/starters/basic/src/tasks/components/TaskList.tsx +68 -0
  35. package/data/Cli/starters/basic/src/tasks/components/TaskListItem.tsx +56 -0
  36. package/data/Cli/starters/basic/src/tasks/queries.ts +21 -0
  37. package/data/Cli/starters/basic/tailwind.config.js +30 -0
  38. package/data/Cli/starters/basic/vite.config.ts +7 -0
  39. package/data/Cli/starters/minimal/main.wasp +14 -0
  40. package/data/Cli/starters/minimal/package.json +18 -0
  41. package/data/Cli/starters/minimal/schema.prisma +10 -0
  42. package/data/Cli/starters/minimal/src/Main.css +103 -0
  43. package/data/Cli/starters/minimal/src/MainPage.tsx +37 -0
  44. package/data/Cli/starters/minimal/src/assets/logo.svg +1 -0
  45. package/data/Cli/starters/minimal/vite.config.ts +7 -0
  46. package/data/Cli/starters/skeleton/public/favicon.ico +0 -0
  47. package/data/Cli/starters/skeleton/src/vite-env.d.ts +7 -0
  48. package/data/Cli/starters/skeleton/tsconfig.json +28 -0
  49. package/data/Generator/templates/Dockerfile +78 -0
  50. package/data/Generator/templates/db/schema.prisma +24 -0
  51. package/data/Generator/templates/dockerignore +2 -0
  52. package/data/Generator/templates/react-app/README.md +21 -0
  53. package/data/Generator/templates/react-app/gitignore +23 -0
  54. package/data/Generator/templates/react-app/index.html +22 -0
  55. package/data/Generator/templates/react-app/netlify.toml +8 -0
  56. package/data/Generator/templates/react-app/npmrc +1 -0
  57. package/data/Generator/templates/react-app/package.json +31 -0
  58. package/data/Generator/templates/react-app/public/manifest.json +15 -0
  59. package/data/Generator/templates/react-app/src/auth/pages/OAuthCallback.tsx +93 -0
  60. package/data/Generator/templates/react-app/src/auth/pages/createAuthRequiredPage.jsx +40 -0
  61. package/data/Generator/templates/react-app/src/components/DefaultRootErrorBoundary.tsx +16 -0
  62. package/data/Generator/templates/react-app/src/components/FullPageWrapper.tsx +21 -0
  63. package/data/Generator/templates/react-app/src/components/Loader.module.css +37 -0
  64. package/data/Generator/templates/react-app/src/components/Loader.tsx +12 -0
  65. package/data/Generator/templates/react-app/src/components/Message.tsx +86 -0
  66. package/data/Generator/templates/react-app/src/index.tsx +47 -0
  67. package/data/Generator/templates/react-app/src/logo.png +0 -0
  68. package/data/Generator/templates/react-app/src/router.tsx +59 -0
  69. package/data/Generator/templates/react-app/src/test/vitest/setup.ts +8 -0
  70. package/data/Generator/templates/react-app/src/utils.js +3 -0
  71. package/data/Generator/templates/react-app/src/vite-env.d.ts +1 -0
  72. package/data/Generator/templates/react-app/tsconfig.app.json +28 -0
  73. package/data/Generator/templates/react-app/tsconfig.json +11 -0
  74. package/data/Generator/templates/react-app/tsconfig.vite.json +16 -0
  75. package/data/Generator/templates/react-app/vite/detectServerImports.ts +53 -0
  76. package/data/Generator/templates/react-app/vite/validateEnv.ts +45 -0
  77. package/data/Generator/templates/react-app/vite.config.ts +74 -0
  78. package/data/Generator/templates/sdk/wasp/api/events.ts +11 -0
  79. package/data/Generator/templates/sdk/wasp/api/index.ts +136 -0
  80. package/data/Generator/templates/sdk/wasp/auth/email/actions/login.ts +13 -0
  81. package/data/Generator/templates/sdk/wasp/auth/email/actions/passwordReset.ts +22 -0
  82. package/data/Generator/templates/sdk/wasp/auth/email/actions/signup.ts +20 -0
  83. package/data/Generator/templates/sdk/wasp/auth/email/actions/verifyEmail.ts +14 -0
  84. package/data/Generator/templates/sdk/wasp/auth/email/index.ts +5 -0
  85. package/data/Generator/templates/sdk/wasp/auth/forms/Auth.module.css +16 -0
  86. package/data/Generator/templates/sdk/wasp/auth/forms/Auth.tsx +94 -0
  87. package/data/Generator/templates/sdk/wasp/auth/forms/ForgotPassword.tsx +18 -0
  88. package/data/Generator/templates/sdk/wasp/auth/forms/Login.tsx +18 -0
  89. package/data/Generator/templates/sdk/wasp/auth/forms/ResetPassword.tsx +18 -0
  90. package/data/Generator/templates/sdk/wasp/auth/forms/Signup.tsx +24 -0
  91. package/data/Generator/templates/sdk/wasp/auth/forms/VerifyEmail.tsx +18 -0
  92. package/data/Generator/templates/sdk/wasp/auth/forms/internal/Form.module.css +99 -0
  93. package/data/Generator/templates/sdk/wasp/auth/forms/internal/Form.tsx +74 -0
  94. package/data/Generator/templates/sdk/wasp/auth/forms/internal/Message.module.css +22 -0
  95. package/data/Generator/templates/sdk/wasp/auth/forms/internal/Message.tsx +34 -0
  96. package/data/Generator/templates/sdk/wasp/auth/forms/internal/auth-styles.css +30 -0
  97. package/data/Generator/templates/sdk/wasp/auth/forms/internal/common/LoginSignupForm.module.css +55 -0
  98. package/data/Generator/templates/sdk/wasp/auth/forms/internal/common/LoginSignupForm.tsx +291 -0
  99. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/ForgotPasswordForm.tsx +52 -0
  100. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/ResetPasswordForm.tsx +82 -0
  101. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/VerifyEmailForm.tsx +43 -0
  102. package/data/Generator/templates/sdk/wasp/auth/forms/internal/email/useEmail.ts +33 -0
  103. package/data/Generator/templates/sdk/wasp/auth/forms/internal/social/SocialButton.module.css +33 -0
  104. package/data/Generator/templates/sdk/wasp/auth/forms/internal/social/SocialButton.tsx +14 -0
  105. package/data/Generator/templates/sdk/wasp/auth/forms/internal/social/SocialIcons.module.css +4 -0
  106. package/data/Generator/templates/sdk/wasp/auth/forms/internal/social/SocialIcons.tsx +74 -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/internal/util.ts +16 -0
  109. package/data/Generator/templates/sdk/wasp/auth/forms/types.ts +77 -0
  110. package/data/Generator/templates/sdk/wasp/auth/helpers/_Provider.tsx +17 -0
  111. package/data/Generator/templates/sdk/wasp/auth/helpers/user.ts +15 -0
  112. package/data/Generator/templates/sdk/wasp/auth/index.ts +9 -0
  113. package/data/Generator/templates/sdk/wasp/auth/jwt.ts +22 -0
  114. package/data/Generator/templates/sdk/wasp/auth/logout.ts +18 -0
  115. package/data/Generator/templates/sdk/wasp/auth/lucia.ts +53 -0
  116. package/data/Generator/templates/sdk/wasp/auth/password.ts +36 -0
  117. package/data/Generator/templates/sdk/wasp/auth/providers/index.ts +9 -0
  118. package/data/Generator/templates/sdk/wasp/auth/providers/types.ts +68 -0
  119. package/data/Generator/templates/sdk/wasp/auth/session.ts +78 -0
  120. package/data/Generator/templates/sdk/wasp/auth/types.ts +2 -0
  121. package/data/Generator/templates/sdk/wasp/auth/useAuth.ts +37 -0
  122. package/data/Generator/templates/sdk/wasp/auth/user.ts +63 -0
  123. package/data/Generator/templates/sdk/wasp/auth/username/actions/login.ts +13 -0
  124. package/data/Generator/templates/sdk/wasp/auth/username/actions/signup.ts +20 -0
  125. package/data/Generator/templates/sdk/wasp/auth/username/index.ts +2 -0
  126. package/data/Generator/templates/sdk/wasp/auth/utils.ts +369 -0
  127. package/data/Generator/templates/sdk/wasp/auth/validation.ts +83 -0
  128. package/data/Generator/templates/sdk/wasp/client/auth/discord.ts +2 -0
  129. package/data/Generator/templates/sdk/wasp/client/auth/email.ts +5 -0
  130. package/data/Generator/templates/sdk/wasp/client/auth/github.ts +2 -0
  131. package/data/Generator/templates/sdk/wasp/client/auth/google.ts +2 -0
  132. package/data/Generator/templates/sdk/wasp/client/auth/index.ts +29 -0
  133. package/data/Generator/templates/sdk/wasp/client/auth/keycloak.ts +2 -0
  134. package/data/Generator/templates/sdk/wasp/client/auth/slack.ts +2 -0
  135. package/data/Generator/templates/sdk/wasp/client/auth/ui.ts +32 -0
  136. package/data/Generator/templates/sdk/wasp/client/auth/username.ts +2 -0
  137. package/data/Generator/templates/sdk/wasp/client/config.ts +15 -0
  138. package/data/Generator/templates/sdk/wasp/client/crud/_crud.ts +89 -0
  139. package/data/Generator/templates/sdk/wasp/client/crud/index.ts +4 -0
  140. package/data/Generator/templates/sdk/wasp/client/crud/operationsHelpers.ts +21 -0
  141. package/data/Generator/templates/sdk/wasp/client/env/schema.ts +22 -0
  142. package/data/Generator/templates/sdk/wasp/client/env.ts +5 -0
  143. package/data/Generator/templates/sdk/wasp/client/hooks.ts +19 -0
  144. package/data/Generator/templates/sdk/wasp/client/index.ts +17 -0
  145. package/data/Generator/templates/sdk/wasp/client/operations/actions/core.ts +49 -0
  146. package/data/Generator/templates/sdk/wasp/client/operations/actions/index.ts +13 -0
  147. package/data/Generator/templates/sdk/wasp/client/operations/hooks.ts +347 -0
  148. package/data/Generator/templates/sdk/wasp/client/operations/index.ts +22 -0
  149. package/data/Generator/templates/sdk/wasp/client/operations/internal/index.ts +22 -0
  150. package/data/Generator/templates/sdk/wasp/client/operations/internal/resources.js +83 -0
  151. package/data/Generator/templates/sdk/wasp/client/operations/internal/updateHandlersMap.js +37 -0
  152. package/data/Generator/templates/sdk/wasp/client/operations/queries/core.ts +91 -0
  153. package/data/Generator/templates/sdk/wasp/client/operations/queries/index.ts +16 -0
  154. package/data/Generator/templates/sdk/wasp/client/operations/queryClient.ts +34 -0
  155. package/data/Generator/templates/sdk/wasp/client/operations/rpc.ts +96 -0
  156. package/data/Generator/templates/sdk/wasp/client/router/Link.tsx +21 -0
  157. package/data/Generator/templates/sdk/wasp/client/router/index.ts +53 -0
  158. package/data/Generator/templates/sdk/wasp/client/router/linkHelpers.ts +48 -0
  159. package/data/Generator/templates/sdk/wasp/client/router/types.ts +98 -0
  160. package/data/Generator/templates/sdk/wasp/client/test/index.ts +1 -0
  161. package/data/Generator/templates/sdk/wasp/client/test/vitest/helpers.tsx +95 -0
  162. package/data/Generator/templates/sdk/wasp/client/webSocket/WebSocketProvider.tsx +77 -0
  163. package/data/Generator/templates/sdk/wasp/client/webSocket/index.ts +39 -0
  164. package/data/Generator/templates/sdk/wasp/core/auth.ts +40 -0
  165. package/data/Generator/templates/sdk/wasp/core/serialization/custom-register.ts +21 -0
  166. package/data/Generator/templates/sdk/wasp/core/serialization/index.ts +56 -0
  167. package/data/Generator/templates/sdk/wasp/core/serialization/prisma.ts +54 -0
  168. package/data/Generator/templates/sdk/wasp/core/storage.ts +50 -0
  169. package/data/Generator/templates/sdk/wasp/dev/index.ts +19 -0
  170. package/data/Generator/templates/sdk/wasp/entities/index.ts +28 -0
  171. package/data/Generator/templates/sdk/wasp/env/index.ts +9 -0
  172. package/data/Generator/templates/sdk/wasp/env/validation.ts +38 -0
  173. package/data/Generator/templates/sdk/wasp/package.json +152 -0
  174. package/data/Generator/templates/sdk/wasp/prisma-runtime-library.d.ts +17 -0
  175. package/data/Generator/templates/sdk/wasp/scripts/copy-assets.js +14 -0
  176. package/data/Generator/templates/sdk/wasp/server/HttpError.ts +30 -0
  177. package/data/Generator/templates/sdk/wasp/server/_types/index.ts +105 -0
  178. package/data/Generator/templates/sdk/wasp/server/_types/taggedEntities.ts +26 -0
  179. package/data/Generator/templates/sdk/wasp/server/api/index.ts +44 -0
  180. package/data/Generator/templates/sdk/wasp/server/auth/email/index.ts +20 -0
  181. package/data/Generator/templates/sdk/wasp/server/auth/email/utils.ts +104 -0
  182. package/data/Generator/templates/sdk/wasp/server/auth/hooks.ts +188 -0
  183. package/data/Generator/templates/sdk/wasp/server/auth/index.ts +49 -0
  184. package/data/Generator/templates/sdk/wasp/server/auth/oauth/index.ts +38 -0
  185. package/data/Generator/templates/sdk/wasp/server/auth/oauth/oneTimeCode.ts +50 -0
  186. package/data/Generator/templates/sdk/wasp/server/auth/oauth/provider.ts +20 -0
  187. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/discord.ts +22 -0
  188. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/github.ts +20 -0
  189. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/google.ts +22 -0
  190. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/keycloak.ts +23 -0
  191. package/data/Generator/templates/sdk/wasp/server/auth/oauth/providers/slack.ts +22 -0
  192. package/data/Generator/templates/sdk/wasp/server/auth/oauth/redirect.ts +43 -0
  193. package/data/Generator/templates/sdk/wasp/server/auth/user.ts +148 -0
  194. package/data/Generator/templates/sdk/wasp/server/auth/username.ts +1 -0
  195. package/data/Generator/templates/sdk/wasp/server/config.ts +47 -0
  196. package/data/Generator/templates/sdk/wasp/server/crud/_operationTypes.ts +134 -0
  197. package/data/Generator/templates/sdk/wasp/server/crud/index.ts +5 -0
  198. package/data/Generator/templates/sdk/wasp/server/dbClient.ts +35 -0
  199. package/data/Generator/templates/sdk/wasp/server/email/core/helpers.ts +40 -0
  200. package/data/Generator/templates/sdk/wasp/server/email/core/index.ts +17 -0
  201. package/data/Generator/templates/sdk/wasp/server/email/core/providers/dummy.ts +34 -0
  202. package/data/Generator/templates/sdk/wasp/server/email/core/providers/mailgun.ts +31 -0
  203. package/data/Generator/templates/sdk/wasp/server/email/core/providers/sendgrid.ts +44 -0
  204. package/data/Generator/templates/sdk/wasp/server/email/core/providers/smtp.ts +29 -0
  205. package/data/Generator/templates/sdk/wasp/server/email/core/types.ts +59 -0
  206. package/data/Generator/templates/sdk/wasp/server/email/index.ts +39 -0
  207. package/data/Generator/templates/sdk/wasp/server/env.ts +173 -0
  208. package/data/Generator/templates/sdk/wasp/server/index.ts +17 -0
  209. package/data/Generator/templates/sdk/wasp/server/jobs/_job.ts +39 -0
  210. package/data/Generator/templates/sdk/wasp/server/jobs/core/job.ts +28 -0
  211. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/index.ts +3 -0
  212. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBoss.ts +76 -0
  213. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBossJob.ts +230 -0
  214. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/types.ts +9 -0
  215. package/data/Generator/templates/sdk/wasp/server/jobs/index.ts +5 -0
  216. package/data/Generator/templates/sdk/wasp/server/middleware/globalMiddleware.ts +8 -0
  217. package/data/Generator/templates/sdk/wasp/server/middleware/index.ts +1 -0
  218. package/data/Generator/templates/sdk/wasp/server/operations/actions/index.ts +41 -0
  219. package/data/Generator/templates/sdk/wasp/server/operations/actions/types.ts +35 -0
  220. package/data/Generator/templates/sdk/wasp/server/operations/index.ts +13 -0
  221. package/data/Generator/templates/sdk/wasp/server/operations/queries/index.ts +42 -0
  222. package/data/Generator/templates/sdk/wasp/server/operations/queries/types.ts +36 -0
  223. package/data/Generator/templates/sdk/wasp/server/operations/wrappers.ts +242 -0
  224. package/data/Generator/templates/sdk/wasp/server/types/index.ts +11 -0
  225. package/data/Generator/templates/sdk/wasp/server/utils.ts +38 -0
  226. package/data/Generator/templates/sdk/wasp/server/webSocket/index.ts +57 -0
  227. package/data/Generator/templates/sdk/wasp/tsconfig.json +102 -0
  228. package/data/Generator/templates/sdk/wasp/universal/ansiColors.ts +14 -0
  229. package/data/Generator/templates/sdk/wasp/universal/predicates.ts +3 -0
  230. package/data/Generator/templates/sdk/wasp/universal/types.ts +74 -0
  231. package/data/Generator/templates/sdk/wasp/universal/url.ts +9 -0
  232. package/data/Generator/templates/sdk/wasp/universal/validators.ts +21 -0
  233. package/data/Generator/templates/sdk/wasp/vite-env.d.ts +1 -0
  234. package/data/Generator/templates/server/README.md +1 -0
  235. package/data/Generator/templates/server/gitignore +6 -0
  236. package/data/Generator/templates/server/nodemon.json +13 -0
  237. package/data/Generator/templates/server/npmrc +1 -0
  238. package/data/Generator/templates/server/package.json +27 -0
  239. package/data/Generator/templates/server/rollup.config.js +44 -0
  240. package/data/Generator/templates/server/src/actions/_action.ts +18 -0
  241. package/data/Generator/templates/server/src/app.js +36 -0
  242. package/data/Generator/templates/server/src/auth/hooks.ts +135 -0
  243. package/data/Generator/templates/server/src/auth/providers/config/discord.ts +69 -0
  244. package/data/Generator/templates/server/src/auth/providers/config/email.ts +96 -0
  245. package/data/Generator/templates/server/src/auth/providers/config/github.ts +78 -0
  246. package/data/Generator/templates/server/src/auth/providers/config/google.ts +65 -0
  247. package/data/Generator/templates/server/src/auth/providers/config/keycloak.ts +67 -0
  248. package/data/Generator/templates/server/src/auth/providers/config/slack.ts +65 -0
  249. package/data/Generator/templates/server/src/auth/providers/config/username.ts +33 -0
  250. package/data/Generator/templates/server/src/auth/providers/email/login.ts +66 -0
  251. package/data/Generator/templates/server/src/auth/providers/email/requestPasswordReset.ts +74 -0
  252. package/data/Generator/templates/server/src/auth/providers/email/resetPassword.ts +48 -0
  253. package/data/Generator/templates/server/src/auth/providers/email/signup.ts +165 -0
  254. package/data/Generator/templates/server/src/auth/providers/email/verifyEmail.ts +42 -0
  255. package/data/Generator/templates/server/src/auth/providers/index.ts +32 -0
  256. package/data/Generator/templates/server/src/auth/providers/oauth/config.ts +19 -0
  257. package/data/Generator/templates/server/src/auth/providers/oauth/cookies.ts +35 -0
  258. package/data/Generator/templates/server/src/auth/providers/oauth/handler.ts +130 -0
  259. package/data/Generator/templates/server/src/auth/providers/oauth/oneTimeCode.ts +39 -0
  260. package/data/Generator/templates/server/src/auth/providers/oauth/state.ts +144 -0
  261. package/data/Generator/templates/server/src/auth/providers/oauth/types.ts +7 -0
  262. package/data/Generator/templates/server/src/auth/providers/oauth/user.ts +139 -0
  263. package/data/Generator/templates/server/src/auth/providers/username/login.ts +64 -0
  264. package/data/Generator/templates/server/src/auth/providers/username/signup.ts +59 -0
  265. package/data/Generator/templates/server/src/crud/_operations.ts +184 -0
  266. package/data/Generator/templates/server/src/dbSeed.ts +37 -0
  267. package/data/Generator/templates/server/src/jobs/_job.ts +9 -0
  268. package/data/Generator/templates/server/src/jobs/core/allJobs.ts +8 -0
  269. package/data/Generator/templates/server/src/middleware/globalMiddleware.ts +45 -0
  270. package/data/Generator/templates/server/src/middleware/index.ts +1 -0
  271. package/data/Generator/templates/server/src/middleware/operations.ts +28 -0
  272. package/data/Generator/templates/server/src/queries/_query.ts +18 -0
  273. package/data/Generator/templates/server/src/routes/apis/index.ts +67 -0
  274. package/data/Generator/templates/server/src/routes/auth/index.js +16 -0
  275. package/data/Generator/templates/server/src/routes/auth/logout.ts +12 -0
  276. package/data/Generator/templates/server/src/routes/auth/me.ts +10 -0
  277. package/data/Generator/templates/server/src/routes/crud/_crud.ts +46 -0
  278. package/data/Generator/templates/server/src/routes/crud/index.ts +12 -0
  279. package/data/Generator/templates/server/src/routes/index.js +55 -0
  280. package/data/Generator/templates/server/src/routes/operations/_action.js +5 -0
  281. package/data/Generator/templates/server/src/routes/operations/_query.js +5 -0
  282. package/data/Generator/templates/server/src/routes/operations/index.js +18 -0
  283. package/data/Generator/templates/server/src/server.ts +76 -0
  284. package/data/Generator/templates/server/src/views/wrong-port.ts +123 -0
  285. package/data/Generator/templates/server/src/webSocket/initialization.ts +59 -0
  286. package/data/Generator/templates/server/tsconfig.json +41 -0
  287. package/data/Lsp/templates/ts/action.fn.ts +12 -0
  288. package/data/Lsp/templates/ts/operation.fn.js +7 -0
  289. package/data/Lsp/templates/ts/page.component.jsx +9 -0
  290. package/data/Lsp/templates/ts/query.fn.ts +12 -0
  291. package/data/packages/deploy/dist/common/brandedTypes.js +2 -0
  292. package/data/packages/deploy/dist/common/clientApp.js +26 -0
  293. package/data/packages/deploy/dist/common/commander.js +8 -0
  294. package/data/packages/deploy/dist/common/random.js +5 -0
  295. package/data/packages/deploy/dist/common/terminal.js +24 -0
  296. package/data/packages/deploy/dist/common/typeUtils.js +2 -0
  297. package/data/packages/deploy/dist/common/validation.js +14 -0
  298. package/data/packages/deploy/dist/common/waspBuild.js +21 -0
  299. package/data/packages/deploy/dist/common/waspProject.js +43 -0
  300. package/data/packages/deploy/dist/common/zx.js +10 -0
  301. package/data/packages/deploy/dist/index.js +30 -0
  302. package/data/packages/deploy/dist/providers/fly/CommonCmdOptions.js +2 -0
  303. package/data/packages/deploy/dist/providers/fly/CommonOps.js +36 -0
  304. package/data/packages/deploy/dist/providers/fly/DeploymentInstructions.js +12 -0
  305. package/data/packages/deploy/dist/providers/fly/commands/cmd/CmdCmdOptions.js +2 -0
  306. package/data/packages/deploy/dist/providers/fly/commands/cmd/cmd.js +29 -0
  307. package/data/packages/deploy/dist/providers/fly/commands/createDb/CreateDbCmdOptions.js +2 -0
  308. package/data/packages/deploy/dist/providers/fly/commands/createDb/createDb.js +55 -0
  309. package/data/packages/deploy/dist/providers/fly/commands/deploy/DeployCmdOptions.js +2 -0
  310. package/data/packages/deploy/dist/providers/fly/commands/deploy/deploy.js +88 -0
  311. package/data/packages/deploy/dist/providers/fly/commands/launch/LaunchCmdOptions.js +2 -0
  312. package/data/packages/deploy/dist/providers/fly/commands/launch/launch.js +17 -0
  313. package/data/packages/deploy/dist/providers/fly/commands/setup/SetupCmdOptions.js +2 -0
  314. package/data/packages/deploy/dist/providers/fly/commands/setup/setup.js +141 -0
  315. package/data/packages/deploy/dist/providers/fly/flyAppUrl.js +4 -0
  316. package/data/packages/deploy/dist/providers/fly/flyCli.js +74 -0
  317. package/data/packages/deploy/dist/providers/fly/index.js +121 -0
  318. package/data/packages/deploy/dist/providers/fly/jsonOutputSchemas.js +37 -0
  319. package/data/packages/deploy/dist/providers/fly/tomlFile.js +65 -0
  320. package/data/packages/deploy/dist/providers/railway/DeploymentInstructions.js +11 -0
  321. package/data/packages/deploy/dist/providers/railway/brandedTypes.js +2 -0
  322. package/data/packages/deploy/dist/providers/railway/commands/deploy/DeployCmdOptions.js +2 -0
  323. package/data/packages/deploy/dist/providers/railway/commands/deploy/client.js +22 -0
  324. package/data/packages/deploy/dist/providers/railway/commands/deploy/common.js +40 -0
  325. package/data/packages/deploy/dist/providers/railway/commands/deploy/index.js +57 -0
  326. package/data/packages/deploy/dist/providers/railway/commands/deploy/server.js +17 -0
  327. package/data/packages/deploy/dist/providers/railway/commands/launch/LaunchCmdOptions.js +2 -0
  328. package/data/packages/deploy/dist/providers/railway/commands/launch/launch.js +9 -0
  329. package/data/packages/deploy/dist/providers/railway/commands/setup/SetupCmdOptions.js +2 -0
  330. package/data/packages/deploy/dist/providers/railway/commands/setup/setup.js +146 -0
  331. package/data/packages/deploy/dist/providers/railway/index.js +83 -0
  332. package/data/packages/deploy/dist/providers/railway/jsonOutputSchemas.js +19 -0
  333. package/data/packages/deploy/dist/providers/railway/ports.js +6 -0
  334. package/data/packages/deploy/dist/providers/railway/railwayCli.js +85 -0
  335. package/data/packages/deploy/dist/providers/railway/railwayProject/RailwayProject.js +14 -0
  336. package/data/packages/deploy/dist/providers/railway/railwayProject/cli.js +80 -0
  337. package/data/packages/deploy/dist/providers/railway/railwayProject/index.js +48 -0
  338. package/data/packages/deploy/dist/providers/railway/railwayService/nameGenerator.js +24 -0
  339. package/data/packages/deploy/dist/providers/railway/railwayService/url.js +32 -0
  340. package/data/packages/deploy/package-lock.json +3536 -0
  341. package/data/packages/deploy/package.json +29 -0
  342. package/data/packages/prisma/dist/format.js +35 -0
  343. package/data/packages/prisma/dist/index.js +33 -0
  344. package/data/packages/prisma/package-lock.json +5101 -0
  345. package/data/packages/prisma/package.json +30 -0
  346. package/data/packages/studio/dist/index.js +48 -0
  347. package/data/packages/studio/dist/public/assets/Flow-b5112d3d.js +26 -0
  348. package/data/packages/studio/dist/public/assets/index-17ce6ed4.css +1 -0
  349. package/data/packages/studio/dist/public/assets/index-62a9d21a.js +120 -0
  350. package/data/packages/studio/dist/public/index.html +14 -0
  351. package/data/packages/studio/package-lock.json +1866 -0
  352. package/data/packages/studio/package.json +33 -0
  353. package/data/packages/ts-inspect/dist/exports.js +82 -0
  354. package/data/packages/ts-inspect/dist/index.js +28 -0
  355. package/data/packages/ts-inspect/package-lock.json +4947 -0
  356. package/data/packages/ts-inspect/package.json +31 -0
  357. package/data/packages/wasp-config/dist/__tests__/appAnalyzer.unit.test.d.ts +2 -0
  358. package/data/packages/wasp-config/dist/__tests__/appAnalyzer.unit.test.d.ts.map +1 -0
  359. package/data/packages/wasp-config/dist/__tests__/appAnalyzer.unit.test.js +59 -0
  360. package/data/packages/wasp-config/dist/__tests__/cli.unit.test.d.ts +2 -0
  361. package/data/packages/wasp-config/dist/__tests__/cli.unit.test.d.ts.map +1 -0
  362. package/data/packages/wasp-config/dist/__tests__/cli.unit.test.js +65 -0
  363. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.integration.test.d.ts +2 -0
  364. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.integration.test.d.ts.map +1 -0
  365. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.integration.test.js +126 -0
  366. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.unit.test.d.ts +2 -0
  367. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.unit.test.d.ts.map +1 -0
  368. package/data/packages/wasp-config/dist/__tests__/mapTsAppSpecToAppSpecDecls.unit.test.js +743 -0
  369. package/data/packages/wasp-config/dist/__tests__/testFixtures.d.ts +224 -0
  370. package/data/packages/wasp-config/dist/__tests__/testFixtures.d.ts.map +1 -0
  371. package/data/packages/wasp-config/dist/__tests__/testFixtures.js +656 -0
  372. package/data/packages/wasp-config/dist/__tests__/testFixtures.test-d.d.ts +2 -0
  373. package/data/packages/wasp-config/dist/__tests__/testFixtures.test-d.d.ts.map +1 -0
  374. package/data/packages/wasp-config/dist/__tests__/testFixtures.test-d.js +57 -0
  375. package/data/packages/wasp-config/dist/src/_private.d.ts +2 -0
  376. package/data/packages/wasp-config/dist/src/_private.d.ts.map +1 -0
  377. package/data/packages/wasp-config/dist/src/_private.js +1 -0
  378. package/data/packages/wasp-config/dist/src/appAnalyzer.d.ts +16 -0
  379. package/data/packages/wasp-config/dist/src/appAnalyzer.d.ts.map +1 -0
  380. package/data/packages/wasp-config/dist/src/appAnalyzer.js +34 -0
  381. package/data/packages/wasp-config/dist/src/appSpec.d.ts +223 -0
  382. package/data/packages/wasp-config/dist/src/appSpec.d.ts.map +1 -0
  383. package/data/packages/wasp-config/dist/src/appSpec.js +6 -0
  384. package/data/packages/wasp-config/dist/src/branded.d.ts +7 -0
  385. package/data/packages/wasp-config/dist/src/branded.d.ts.map +1 -0
  386. package/data/packages/wasp-config/dist/src/branded.js +1 -0
  387. package/data/packages/wasp-config/dist/src/cli.d.ts +6 -0
  388. package/data/packages/wasp-config/dist/src/cli.d.ts.map +1 -0
  389. package/data/packages/wasp-config/dist/src/cli.js +24 -0
  390. package/data/packages/wasp-config/dist/src/index.d.ts +8 -0
  391. package/data/packages/wasp-config/dist/src/index.d.ts.map +1 -0
  392. package/data/packages/wasp-config/dist/src/index.js +1 -0
  393. package/data/packages/wasp-config/dist/src/mapTsAppSpecToAppSpecDecls.d.ts +38 -0
  394. package/data/packages/wasp-config/dist/src/mapTsAppSpecToAppSpecDecls.d.ts.map +1 -0
  395. package/data/packages/wasp-config/dist/src/mapTsAppSpecToAppSpecDecls.js +294 -0
  396. package/data/packages/wasp-config/dist/src/publicApi/App.d.ts +24 -0
  397. package/data/packages/wasp-config/dist/src/publicApi/App.d.ts.map +1 -0
  398. package/data/packages/wasp-config/dist/src/publicApi/App.js +75 -0
  399. package/data/packages/wasp-config/dist/src/publicApi/tsAppSpec.d.ts +171 -0
  400. package/data/packages/wasp-config/dist/src/publicApi/tsAppSpec.d.ts.map +1 -0
  401. package/data/packages/wasp-config/dist/src/publicApi/tsAppSpec.js +1 -0
  402. package/data/packages/wasp-config/dist/src/run.d.ts +3 -0
  403. package/data/packages/wasp-config/dist/src/run.d.ts.map +1 -0
  404. package/data/packages/wasp-config/dist/src/run.js +18 -0
  405. package/data/packages/wasp-config/package-lock.json +3992 -0
  406. package/data/packages/wasp-config/package.json +39 -0
  407. package/main.js +9 -0
  408. package/package.json +1 -0
  409. package/readme.md +3 -0
  410. package/wasp-bin +0 -0
@@ -0,0 +1,656 @@
1
+ /**
2
+ * This module contains sample data that can be used for testing purposes.
3
+ * In our case the sample data represents TsAppSpec data.
4
+ */
5
+ import { App } from "../src/publicApi/App.js";
6
+ export function createApp(scope) {
7
+ const { name: appName, config: appConfig } = getAppConfig(scope);
8
+ const app = new App(appName, appConfig);
9
+ switch (scope) {
10
+ case "minimal":
11
+ return { appConfigName: appName, app };
12
+ case "full": {
13
+ app.auth(getAuthConfig("full"));
14
+ app.client(getClientConfig("full"));
15
+ app.server(getServerConfig("full"));
16
+ app.emailSender(getEmailSenderConfig("full"));
17
+ app.webSocket(getWebSocketConfig("full"));
18
+ app.db(getDbConfig("full"));
19
+ /**
20
+ * We thinks this may be a false positive
21
+ * @see https://www.typescriptlang.org/play/?#code/LAKAxgNghgzjAEAZKBzKA7A9vA3qe8ADgE4BuUAFAC4AWAljAFxKoaYA08AHszFcXXQoAlM1KY6AE1wBffPEnEArmmr0mLNFk4946JQFsARgFNio+OKmzQckKCoBPQifgA5KAZMAVTN+euALy48gDaANLwgvAA1iaOmABmmmwAuswAClDEniZUZjAAPMhamBGpAHyhAAyptqCgYJjofPDQWoJ08MHoJgDuKVgUwgDcDSCJSuhgVHTN8PkwMZiFALLwJlz56JIIcQnJHl6+-i4VFOi5zKuc2SjMRz5+AaGrqRZW0nggBO0YnaFLl5UhQ7sJ4AB6CHwABWZngfAEQngADI9IZTMRunoTKQzPUQEA
22
+ */
23
+ function addNamedDecl({ declName, namedConfigs, }) {
24
+ namedConfigs.forEach(({ name, config }) =>
25
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
+ app[declName](name, config));
27
+ }
28
+ addNamedDecl({
29
+ declName: "page",
30
+ namedConfigs: getPageConfigs(),
31
+ });
32
+ addNamedDecl({
33
+ declName: "route",
34
+ namedConfigs: getRouteConfigs(),
35
+ });
36
+ addNamedDecl({
37
+ declName: "query",
38
+ namedConfigs: getQueryConfigs(),
39
+ });
40
+ addNamedDecl({
41
+ declName: "action",
42
+ namedConfigs: getActionConfigs(),
43
+ });
44
+ addNamedDecl({
45
+ declName: "crud",
46
+ namedConfigs: getCrudConfigs(),
47
+ });
48
+ addNamedDecl({
49
+ declName: "apiNamespace",
50
+ namedConfigs: getApiNamespaceConfigs(),
51
+ });
52
+ addNamedDecl({
53
+ declName: "api",
54
+ namedConfigs: getApiConfigs(),
55
+ });
56
+ addNamedDecl({
57
+ declName: "job",
58
+ namedConfigs: getJobConfigs(),
59
+ });
60
+ return { appConfigName: appName, app };
61
+ }
62
+ default:
63
+ assertUnreachable(scope);
64
+ }
65
+ }
66
+ export function getAppConfig(scope) {
67
+ switch (scope) {
68
+ case "minimal":
69
+ return {
70
+ name: "MinimalApp",
71
+ config: {
72
+ title: "Mock App",
73
+ wasp: { version: "^0.16.3" },
74
+ },
75
+ };
76
+ case "full":
77
+ return {
78
+ name: "FullApp",
79
+ config: {
80
+ title: "Mock App",
81
+ wasp: { version: "^0.16.3" },
82
+ head: ['<link rel="icon" href="/favicon.ico" />'],
83
+ },
84
+ };
85
+ default:
86
+ assertUnreachable(scope);
87
+ }
88
+ }
89
+ export function getAuthConfig(scope) {
90
+ switch (scope) {
91
+ case "minimal":
92
+ return {
93
+ userEntity: getEntity("user"),
94
+ onAuthFailedRedirectTo: "/login",
95
+ methods: getAuthMethods(scope),
96
+ };
97
+ case "full":
98
+ return {
99
+ userEntity: getEntity("user"),
100
+ onAuthFailedRedirectTo: "/login",
101
+ methods: getAuthMethods(scope),
102
+ externalAuthEntity: getEntity("social-user"),
103
+ onAuthSucceededRedirectTo: "/profile",
104
+ onBeforeSignup: getExtImport(scope, "named"),
105
+ onAfterSignup: getExtImport(scope, "named"),
106
+ onAfterEmailVerified: getExtImport(scope, "named"),
107
+ onBeforeOAuthRedirect: getExtImport(scope, "named"),
108
+ onBeforeLogin: getExtImport(scope, "named"),
109
+ onAfterLogin: getExtImport(scope, "named"),
110
+ };
111
+ default:
112
+ assertUnreachable(scope);
113
+ }
114
+ }
115
+ export function getAuthMethods(scope) {
116
+ switch (scope) {
117
+ case "minimal":
118
+ return {};
119
+ case "full":
120
+ return {
121
+ email: getEmailAuthConfig(scope),
122
+ usernameAndPassword: getUsernameAndPasswordConfig(scope),
123
+ discord: getExternalAuthConfig(scope),
124
+ google: getExternalAuthConfig(scope),
125
+ gitHub: getExternalAuthConfig(scope),
126
+ keycloak: getExternalAuthConfig(scope),
127
+ };
128
+ default:
129
+ assertUnreachable(scope);
130
+ }
131
+ }
132
+ export function getExternalAuthConfig(scope) {
133
+ switch (scope) {
134
+ case "minimal":
135
+ return {};
136
+ case "full":
137
+ return {
138
+ configFn: getExtImport(scope, "named"),
139
+ userSignupFields: getExtImport(scope, "named"),
140
+ };
141
+ default:
142
+ assertUnreachable(scope);
143
+ }
144
+ }
145
+ export function getUsernameAndPasswordConfig(scope) {
146
+ switch (scope) {
147
+ case "minimal":
148
+ return {};
149
+ case "full":
150
+ return {
151
+ userSignupFields: getExtImport(scope, "named"),
152
+ };
153
+ default:
154
+ assertUnreachable(scope);
155
+ }
156
+ }
157
+ export function getEmailAuthConfig(scope) {
158
+ switch (scope) {
159
+ case "minimal":
160
+ return {
161
+ fromField: getEmailFromField(scope),
162
+ emailVerification: getEmailVerificationConfig(scope),
163
+ passwordReset: getPasswordResetConfig(scope),
164
+ };
165
+ case "full":
166
+ return {
167
+ fromField: getEmailFromField(scope),
168
+ emailVerification: getEmailVerificationConfig(scope),
169
+ passwordReset: getPasswordResetConfig(scope),
170
+ userSignupFields: getExtImport(scope, "named"),
171
+ };
172
+ default:
173
+ assertUnreachable(scope);
174
+ }
175
+ }
176
+ export function getPasswordResetConfig(scope) {
177
+ switch (scope) {
178
+ case "minimal":
179
+ return {
180
+ clientRoute: getRouteConfig("password-reset").name,
181
+ };
182
+ case "full":
183
+ return {
184
+ clientRoute: getRouteConfig("password-reset").name,
185
+ getEmailContentFn: getExtImport(scope, "named"),
186
+ };
187
+ default:
188
+ assertUnreachable(scope);
189
+ }
190
+ }
191
+ export function getEmailVerificationConfig(scope) {
192
+ switch (scope) {
193
+ case "minimal":
194
+ return {
195
+ clientRoute: getRouteConfig("email-verification").name,
196
+ };
197
+ case "full":
198
+ return {
199
+ clientRoute: getRouteConfig("email-verification").name,
200
+ getEmailContentFn: getExtImport(scope, "named"),
201
+ };
202
+ default:
203
+ assertUnreachable(scope);
204
+ }
205
+ }
206
+ export function getClientConfig(scope) {
207
+ switch (scope) {
208
+ case "minimal":
209
+ return {};
210
+ case "full":
211
+ return {
212
+ rootComponent: getExtImport(scope, "named"),
213
+ setupFn: getExtImport(scope, "named"),
214
+ baseDir: "/src",
215
+ envValidationSchema: getExtImport(scope, "named"),
216
+ };
217
+ default:
218
+ assertUnreachable(scope);
219
+ }
220
+ }
221
+ export function getServerConfig(scope) {
222
+ switch (scope) {
223
+ case "minimal":
224
+ return {};
225
+ case "full":
226
+ return {
227
+ setupFn: getExtImport(scope, "named"),
228
+ middlewareConfigFn: getExtImport(scope, "named"),
229
+ envValidationSchema: getExtImport(scope, "named"),
230
+ };
231
+ default:
232
+ assertUnreachable(scope);
233
+ }
234
+ }
235
+ export function getEmailSenderConfig(scope) {
236
+ switch (scope) {
237
+ case "minimal":
238
+ return {
239
+ provider: "SMTP",
240
+ };
241
+ case "full":
242
+ return {
243
+ provider: "SMTP",
244
+ defaultFrom: getEmailFromField(scope),
245
+ };
246
+ default:
247
+ assertUnreachable(scope);
248
+ }
249
+ }
250
+ export function getWebSocketConfig(scope) {
251
+ switch (scope) {
252
+ case "minimal":
253
+ return {
254
+ fn: getExtImport(scope, "named"),
255
+ };
256
+ case "full":
257
+ return {
258
+ fn: getExtImport(scope, "named"),
259
+ autoConnect: true,
260
+ };
261
+ default:
262
+ assertUnreachable(scope);
263
+ }
264
+ }
265
+ export function getDbConfig(scope) {
266
+ switch (scope) {
267
+ case "minimal":
268
+ return {};
269
+ case "full":
270
+ return {
271
+ seeds: [getExtImport(scope, "named"), getExtImport(scope, "default")],
272
+ prismaSetupFn: getExtImport(scope, "named"),
273
+ };
274
+ default:
275
+ assertUnreachable(scope);
276
+ }
277
+ }
278
+ export function getPageConfigs() {
279
+ return PAGE_CONFIG_TYPES.map(getPageConfig);
280
+ }
281
+ export function getPageConfig(pageType) {
282
+ const name = `${pageType}-page`;
283
+ switch (pageType) {
284
+ case "minimal":
285
+ return {
286
+ name,
287
+ config: {
288
+ component: getExtImport(pageType, "named"),
289
+ },
290
+ };
291
+ case "email-verification":
292
+ return {
293
+ name,
294
+ config: {
295
+ component: getExtImport("full", "named"),
296
+ authRequired: false,
297
+ },
298
+ };
299
+ case "password-reset":
300
+ return {
301
+ name,
302
+ config: {
303
+ component: getExtImport("full", "named"),
304
+ authRequired: false,
305
+ },
306
+ };
307
+ case "full":
308
+ return {
309
+ name,
310
+ config: {
311
+ component: getExtImport(pageType, "named"),
312
+ authRequired: true,
313
+ },
314
+ };
315
+ default:
316
+ assertUnreachable(pageType);
317
+ }
318
+ }
319
+ export function getRouteConfigs() {
320
+ return PAGE_CONFIG_TYPES.map(getRouteConfig);
321
+ }
322
+ export function getRouteConfig(routeType) {
323
+ const name = `${routeType}-route`;
324
+ switch (routeType) {
325
+ case "minimal":
326
+ return {
327
+ name,
328
+ config: {
329
+ path: "/foo/bar",
330
+ to: getPageConfig(routeType).name,
331
+ },
332
+ };
333
+ case "full":
334
+ case "email-verification":
335
+ case "password-reset":
336
+ return {
337
+ name,
338
+ config: {
339
+ path: "/foo/bar",
340
+ to: getPageConfig(routeType).name,
341
+ },
342
+ };
343
+ default:
344
+ assertUnreachable(routeType);
345
+ }
346
+ }
347
+ export function getQueryConfigs() {
348
+ return CONFIG_TYPES.map(getQueryConfig);
349
+ }
350
+ export function getQueryConfig(scope) {
351
+ switch (scope) {
352
+ case "minimal":
353
+ return {
354
+ name: "MinimalQuery",
355
+ config: {
356
+ fn: getExtImport(scope, "named"),
357
+ },
358
+ };
359
+ case "full":
360
+ return {
361
+ name: "FullQuery",
362
+ config: {
363
+ fn: getExtImport(scope, "named"),
364
+ entities: [getEntity("task")],
365
+ auth: true,
366
+ },
367
+ };
368
+ default:
369
+ assertUnreachable(scope);
370
+ }
371
+ }
372
+ export function getActionConfigs() {
373
+ return CONFIG_TYPES.map(getActionConfig);
374
+ }
375
+ export function getActionConfig(scope) {
376
+ switch (scope) {
377
+ case "minimal":
378
+ return {
379
+ name: "MinimalAction",
380
+ config: {
381
+ fn: getExtImport(scope, "named"),
382
+ },
383
+ };
384
+ case "full":
385
+ return {
386
+ name: "FullAction",
387
+ config: {
388
+ fn: getExtImport(scope, "named"),
389
+ entities: [getEntity("task")],
390
+ auth: true,
391
+ },
392
+ };
393
+ default:
394
+ assertUnreachable(scope);
395
+ }
396
+ }
397
+ export function getCrudConfigs() {
398
+ return CONFIG_TYPES.map(getCrudConfig);
399
+ }
400
+ export function getCrudConfig(scope) {
401
+ switch (scope) {
402
+ case "minimal":
403
+ return {
404
+ name: "MinimalCrud",
405
+ config: {
406
+ entity: getEntity("task"),
407
+ operations: getCrudOperations(scope),
408
+ },
409
+ };
410
+ case "full":
411
+ return {
412
+ name: "FullCrud",
413
+ config: {
414
+ entity: getEntity("task"),
415
+ operations: getCrudOperations(scope),
416
+ },
417
+ };
418
+ default:
419
+ assertUnreachable(scope);
420
+ }
421
+ }
422
+ export function getCrudOperations(scope) {
423
+ switch (scope) {
424
+ case "minimal":
425
+ return {};
426
+ case "full":
427
+ return {
428
+ get: getCrudOperationOptions(scope),
429
+ getAll: getCrudOperationOptions(scope),
430
+ create: getCrudOperationOptions(scope),
431
+ update: getCrudOperationOptions(scope),
432
+ delete: getCrudOperationOptions(scope),
433
+ };
434
+ default:
435
+ assertUnreachable(scope);
436
+ }
437
+ }
438
+ export function getCrudOperationOptions(scope) {
439
+ switch (scope) {
440
+ case "minimal":
441
+ return {};
442
+ case "full":
443
+ return {
444
+ isPublic: true,
445
+ overrideFn: getExtImport(scope, "named"),
446
+ };
447
+ default:
448
+ assertUnreachable(scope);
449
+ }
450
+ }
451
+ export function getSchedule(scope) {
452
+ switch (scope) {
453
+ case "minimal":
454
+ return {
455
+ cron: "0 0 * * *",
456
+ };
457
+ case "full":
458
+ return {
459
+ cron: "0 0 * * *",
460
+ args: { foo: "bar" },
461
+ executorOptions: {
462
+ pgBoss: { jobOptions: { attempts: 3 } },
463
+ },
464
+ };
465
+ default:
466
+ assertUnreachable(scope);
467
+ }
468
+ }
469
+ export function getPerform(scope) {
470
+ switch (scope) {
471
+ case "minimal":
472
+ return {
473
+ fn: getExtImport(scope, "named"),
474
+ };
475
+ case "full":
476
+ return {
477
+ fn: getExtImport(scope, "named"),
478
+ executorOptions: {
479
+ pgBoss: { jobOptions: { attempts: 3 } },
480
+ },
481
+ };
482
+ default:
483
+ assertUnreachable(scope);
484
+ }
485
+ }
486
+ export function getApiNamespaceConfigs() {
487
+ return CONFIG_TYPES.map(getApiNamespaceConfig);
488
+ }
489
+ export function getApiNamespaceConfig(scope) {
490
+ switch (scope) {
491
+ case "minimal":
492
+ return {
493
+ name: "MinimalApiNamespace",
494
+ config: {
495
+ middlewareConfigFn: getExtImport(scope, "named"),
496
+ path: "/foo",
497
+ },
498
+ };
499
+ case "full":
500
+ return {
501
+ name: "FullApiNamespace",
502
+ config: {
503
+ middlewareConfigFn: getExtImport(scope, "named"),
504
+ path: "/foo",
505
+ },
506
+ };
507
+ default:
508
+ assertUnreachable(scope);
509
+ }
510
+ }
511
+ export function getApiConfigs() {
512
+ return CONFIG_TYPES.map(getApiConfig);
513
+ }
514
+ export function getApiConfig(scope) {
515
+ switch (scope) {
516
+ case "minimal":
517
+ return {
518
+ name: "MinimalApi",
519
+ config: {
520
+ fn: getExtImport(scope, "named"),
521
+ httpRoute: getHttpRoute(scope),
522
+ },
523
+ };
524
+ case "full":
525
+ return {
526
+ name: "FullApi",
527
+ config: {
528
+ fn: getExtImport(scope, "named"),
529
+ httpRoute: getHttpRoute(scope),
530
+ entities: [getEntity("task")],
531
+ auth: true,
532
+ middlewareConfigFn: getExtImport(scope, "named"),
533
+ },
534
+ };
535
+ default:
536
+ assertUnreachable(scope);
537
+ }
538
+ }
539
+ export function getHttpRoute(scope) {
540
+ switch (scope) {
541
+ case "minimal":
542
+ return {
543
+ method: "GET",
544
+ route: "/foo/bar",
545
+ };
546
+ case "full":
547
+ return {
548
+ method: "GET",
549
+ route: "/foo/bar",
550
+ };
551
+ default:
552
+ assertUnreachable(scope);
553
+ }
554
+ }
555
+ export function getJobConfigs() {
556
+ return CONFIG_TYPES.map(getJobConfig);
557
+ }
558
+ export function getJobConfig(scope) {
559
+ switch (scope) {
560
+ case "minimal":
561
+ return {
562
+ name: "MinimalJob",
563
+ config: {
564
+ executor: "PgBoss",
565
+ perform: getPerform(scope),
566
+ },
567
+ };
568
+ case "full":
569
+ return {
570
+ name: "FullJob",
571
+ config: {
572
+ executor: "PgBoss",
573
+ perform: getPerform(scope),
574
+ entities: [getEntity("task")],
575
+ schedule: getSchedule(scope),
576
+ },
577
+ };
578
+ default:
579
+ assertUnreachable(scope);
580
+ }
581
+ }
582
+ export function getEmailFromField(scope) {
583
+ switch (scope) {
584
+ case "minimal":
585
+ return {
586
+ email: "test@domain.tld",
587
+ };
588
+ case "full":
589
+ return {
590
+ email: "test@domain.tld",
591
+ name: "ToDo App",
592
+ };
593
+ default:
594
+ assertUnreachable(scope);
595
+ }
596
+ }
597
+ export function getExtImport(scope, importKind) {
598
+ const importObject = importKind === "default"
599
+ ? { importDefault: "defaultExport" }
600
+ : { import: "namedExport" };
601
+ switch (scope) {
602
+ case "minimal":
603
+ return {
604
+ ...importObject,
605
+ from: "@src/external",
606
+ };
607
+ case "full":
608
+ return {
609
+ ...importObject,
610
+ from: "@src/external",
611
+ };
612
+ default:
613
+ assertUnreachable(scope);
614
+ }
615
+ }
616
+ export function getEntity(entity) {
617
+ switch (entity) {
618
+ case "task":
619
+ return "Task";
620
+ case "user":
621
+ return "User";
622
+ case "social-user":
623
+ return "SocialUser";
624
+ default:
625
+ assertUnreachable(entity);
626
+ }
627
+ }
628
+ export function getEntities(scope) {
629
+ switch (scope) {
630
+ case "minimal":
631
+ return [];
632
+ case "full":
633
+ return ENTITY_CONFIG_TYPES.map(getEntity);
634
+ default:
635
+ assertUnreachable(scope);
636
+ }
637
+ }
638
+ function assertUnreachable(value) {
639
+ throw new Error(`Unhandled case: ${value}`);
640
+ }
641
+ const CONFIG_TYPES = ["minimal", "full"];
642
+ /**
643
+ * By default we define only `ConfigType` variants for all of the configs
644
+ * that can be used in the app. This is because we want to test both
645
+ * edge cases of the configs.
646
+ *
647
+ * Pages are a special case, because even though they are a top-level config,
648
+ * they are also used by `AuthConfig`. That is why we define those two cases separately.
649
+ * Mostly to bring attention that we have additional edge cases for pages.
650
+ */
651
+ const PAGE_CONFIG_TYPES = [
652
+ ...CONFIG_TYPES,
653
+ "email-verification",
654
+ "password-reset",
655
+ ];
656
+ const ENTITY_CONFIG_TYPES = ["task", "user", "social-user"];
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=testFixtures.test-d.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testFixtures.test-d.d.ts","sourceRoot":"","sources":["../../__tests__/testFixtures.test-d.ts"],"names":[],"mappings":""}