@wasp.sh/wasp-cli-darwin-arm64-unknown 0.24.0 → 0.25.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 (189) hide show
  1. package/data/Cli/starters/basic/main.wasp.ts +1 -1
  2. package/data/Cli/starters/basic/package.json +5 -5
  3. package/data/Cli/starters/basic/src/App.css +12 -11
  4. package/data/Cli/starters/basic/src/assets/wasp-logo-rounded.svg +1 -0
  5. package/data/Cli/starters/basic/src/shared/components/Header.tsx +3 -3
  6. package/data/Cli/starters/minimal/main.wasp.ts +1 -1
  7. package/data/Cli/starters/minimal/package.json +4 -4
  8. package/data/Cli/starters/minimal/src/Main.css +5 -5
  9. package/data/Cli/starters/minimal/src/MainPage.tsx +2 -2
  10. package/data/Cli/starters/minimal/src/assets/wasp-logo-rounded.svg +1 -0
  11. package/data/Cli/starters/skeleton/public/favicon.ico +0 -0
  12. package/data/Cli/starters/skeleton/tsconfig.src.json +2 -1
  13. package/data/Cli/starters/skeleton/tsconfig.wasp.json +3 -2
  14. package/data/Generator/libs/auth/wasp.sh-lib-auth-0.25.0.tgz +0 -0
  15. package/data/Generator/libs/vite-ssr/wasp.sh-lib-vite-ssr-0.25.0.tgz +0 -0
  16. package/data/Generator/templates/sdk/wasp/api/index.ts +2 -2
  17. package/data/Generator/templates/sdk/wasp/auth/email/actions/login.ts +1 -1
  18. package/data/Generator/templates/sdk/wasp/auth/email/actions/passwordReset.ts +1 -1
  19. package/data/Generator/templates/sdk/wasp/auth/email/actions/signup.ts +1 -1
  20. package/data/Generator/templates/sdk/wasp/auth/email/actions/verifyEmail.ts +1 -1
  21. package/data/Generator/templates/sdk/wasp/auth/forms/internal/auth-styles.css +2 -2
  22. package/data/Generator/templates/sdk/wasp/auth/forms/internal/common/LoginSignupForm.tsx +1 -1
  23. package/data/Generator/templates/sdk/wasp/auth/helpers/_Provider.tsx +1 -1
  24. package/data/Generator/templates/sdk/wasp/auth/helpers/user.ts +1 -1
  25. package/data/Generator/templates/sdk/wasp/auth/jwt.ts +1 -1
  26. package/data/Generator/templates/sdk/wasp/auth/logout.ts +1 -1
  27. package/data/Generator/templates/sdk/wasp/auth/lucia.ts +2 -2
  28. package/data/Generator/templates/sdk/wasp/auth/providers/types.ts +1 -1
  29. package/data/Generator/templates/sdk/wasp/auth/session.ts +1 -1
  30. package/data/Generator/templates/sdk/wasp/auth/types.ts +1 -1
  31. package/data/Generator/templates/sdk/wasp/auth/useAuth.ts +5 -5
  32. package/data/Generator/templates/sdk/wasp/auth/username/actions/login.ts +1 -1
  33. package/data/Generator/templates/sdk/wasp/auth/username/actions/signup.ts +1 -1
  34. package/data/Generator/templates/sdk/wasp/auth/utils.ts +3 -3
  35. package/data/Generator/templates/sdk/wasp/auth/validation.ts +1 -1
  36. package/data/Generator/templates/sdk/wasp/client/app/layout.tsx +55 -46
  37. package/data/Generator/templates/sdk/wasp/client/app/router.tsx +2 -5
  38. package/data/Generator/templates/sdk/wasp/client/crud/_crud.ts +2 -2
  39. package/data/Generator/templates/sdk/wasp/client/operations/actions/core.ts +1 -1
  40. package/data/Generator/templates/sdk/wasp/client/operations/index.ts +5 -0
  41. package/data/Generator/templates/sdk/wasp/client/operations/internal/index.ts +3 -3
  42. package/data/Generator/templates/sdk/wasp/client/operations/internal/resources.js +4 -2
  43. package/data/Generator/templates/sdk/wasp/client/operations/queries/core.ts +2 -2
  44. package/data/Generator/templates/sdk/wasp/client/operations/rpc.ts +2 -2
  45. package/data/Generator/templates/sdk/wasp/client/test/vitest/helpers.tsx +3 -4
  46. package/data/Generator/templates/sdk/wasp/client/vite/plugins/validateEnv.ts +14 -8
  47. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/files/client-entry.tsx +31 -11
  48. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/files/routes.tsx +26 -20
  49. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/files/ssr-entry.tsx +29 -24
  50. package/data/Generator/templates/sdk/wasp/client/vite/virtual-files/resolver.ts +12 -5
  51. package/data/Generator/templates/sdk/wasp/client/webSocket/WebSocketProvider.tsx +4 -4
  52. package/data/Generator/templates/sdk/wasp/client/webSocket/index.ts +1 -1
  53. package/data/Generator/templates/sdk/wasp/core/auth.ts +3 -3
  54. package/data/Generator/templates/sdk/wasp/env/validation.ts +1 -1
  55. package/data/Generator/templates/sdk/wasp/package.json +2 -42
  56. package/data/Generator/templates/sdk/wasp/serialization/index.ts +11 -0
  57. package/data/Generator/templates/sdk/wasp/server/_types/index.ts +6 -6
  58. package/data/Generator/templates/sdk/wasp/server/_types/taggedEntities.ts +1 -1
  59. package/data/Generator/templates/sdk/wasp/server/auth/email/utils.ts +6 -6
  60. package/data/Generator/templates/sdk/wasp/server/crud/_operationTypes.ts +2 -2
  61. package/data/Generator/templates/sdk/wasp/server/email/core/index.ts +4 -0
  62. package/data/Generator/templates/sdk/wasp/server/email/core/providers/dummy.ts +1 -1
  63. package/data/Generator/templates/sdk/wasp/server/email/core/providers/resend.ts +31 -0
  64. package/data/Generator/templates/sdk/wasp/server/email/core/types.ts +7 -1
  65. package/data/Generator/templates/sdk/wasp/server/email/index.ts +6 -0
  66. package/data/Generator/templates/sdk/wasp/server/env.ts +5 -0
  67. package/data/Generator/templates/sdk/wasp/server/jobs/_job.ts +2 -2
  68. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/pgBossJob.ts +3 -3
  69. package/data/Generator/templates/sdk/wasp/server/jobs/core/pgBoss/types.ts +2 -2
  70. package/data/Generator/templates/sdk/wasp/server/operations/actions/index.ts +1 -1
  71. package/data/Generator/templates/sdk/wasp/server/operations/actions/types.ts +2 -2
  72. package/data/Generator/templates/sdk/wasp/server/operations/queries/index.ts +1 -1
  73. package/data/Generator/templates/sdk/wasp/server/operations/queries/types.ts +2 -2
  74. package/data/Generator/templates/sdk/wasp/server/operations/wrappers.ts +1 -1
  75. package/data/Generator/templates/sdk/wasp/server/webSocket/index.ts +2 -3
  76. package/data/Generator/templates/sdk/wasp/tsconfig.json +1 -0
  77. package/data/Generator/templates/server/tsconfig.json +2 -1
  78. package/data/packages/deploy/package-lock.json +2015 -2285
  79. package/data/packages/deploy/package.json +7 -6
  80. package/data/packages/prisma/package-lock.json +1730 -2131
  81. package/data/packages/prisma/package.json +6 -6
  82. package/data/packages/spec/dist/__tests__/spec/appAnalyzer.unit.test.js +4 -4
  83. package/data/packages/spec/dist/__tests__/spec/mapApp.unit.test.js +161 -129
  84. package/data/packages/spec/dist/__tests__/spec/normalizePrerender.unit.test.d.ts +2 -0
  85. package/data/packages/spec/dist/__tests__/spec/normalizePrerender.unit.test.d.ts.map +1 -0
  86. package/data/packages/spec/dist/__tests__/spec/normalizePrerender.unit.test.js +15 -0
  87. package/data/packages/spec/dist/__tests__/spec/refObject.unit.test.js +2 -2
  88. package/data/packages/spec/dist/__tests__/spec/refObjectPath.unit.test.js +3 -3
  89. package/data/packages/spec/dist/__tests__/spec-pipeline/pipeline.integration.test.js +38 -7
  90. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/imports.unit.test.js +5 -5
  91. package/data/packages/spec/dist/__tests__/spec-pipeline/transformWaspTsSpecFile/refHelper.unit.test.js +2 -2
  92. package/data/packages/spec/dist/src/appSpec.d.ts +2 -2
  93. package/data/packages/spec/dist/src/appSpec.d.ts.map +1 -1
  94. package/data/packages/spec/dist/src/normalizePrerender.d.ts +11 -0
  95. package/data/packages/spec/dist/src/normalizePrerender.d.ts.map +1 -0
  96. package/data/packages/spec/dist/src/normalizePrerender.js +18 -0
  97. package/data/packages/spec/dist/src/run.js +2 -2
  98. package/data/packages/spec/dist/src/spec/appAnalyzer.js +5 -5
  99. package/data/packages/spec/dist/src/spec/mapper/app.d.ts +17 -0
  100. package/data/packages/spec/dist/src/spec/mapper/app.d.ts.map +1 -0
  101. package/data/packages/spec/dist/src/spec/mapper/app.js +119 -0
  102. package/data/packages/spec/dist/src/spec/mapper/context.d.ts +19 -0
  103. package/data/packages/spec/dist/src/spec/mapper/context.d.ts.map +1 -0
  104. package/data/packages/spec/dist/src/spec/mapper/context.js +65 -0
  105. package/data/packages/spec/dist/src/spec/mapper/index.d.ts +7 -0
  106. package/data/packages/spec/dist/src/spec/mapper/index.d.ts.map +1 -0
  107. package/data/packages/spec/dist/src/spec/mapper/index.js +20 -0
  108. package/data/packages/spec/dist/src/spec/mapper/specElements.d.ts +28 -0
  109. package/data/packages/spec/dist/src/spec/mapper/specElements.d.ts.map +1 -0
  110. package/data/packages/spec/dist/src/spec/mapper/specElements.js +162 -0
  111. package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts +54 -13
  112. package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts.map +1 -1
  113. package/data/packages/spec/dist/src/spec/publicApi/constructors.js +10 -7
  114. package/data/packages/spec/dist/src/spec/publicApi/index.d.ts +2 -0
  115. package/data/packages/spec/dist/src/spec/publicApi/index.d.ts.map +1 -1
  116. package/data/packages/spec/dist/src/spec/publicApi/index.js +1 -0
  117. package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts +23 -10
  118. package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts.map +1 -1
  119. package/data/packages/spec/dist/src/spec/refObject.js +4 -4
  120. package/data/packages/spec/dist/src/spec/refObjectPath.js +2 -2
  121. package/data/packages/spec/dist/src/spec/waspSpecUserError.d.ts +31 -0
  122. package/data/packages/spec/dist/src/spec/waspSpecUserError.d.ts.map +1 -0
  123. package/data/packages/spec/dist/src/spec/waspSpecUserError.js +30 -0
  124. package/data/packages/spec/dist/src/spec-pipeline/loadWaspTsSpec.d.ts.map +1 -1
  125. package/data/packages/spec/dist/src/spec-pipeline/loadWaspTsSpec.js +18 -15
  126. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/apply.js +2 -2
  127. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/check.js +2 -2
  128. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/imports/plan.js +2 -2
  129. package/data/packages/spec/dist/src/spec-pipeline/transformWaspTsSpecFilesPlugin/refHelper/check.js +2 -2
  130. package/data/packages/spec/dist/src/spec-pipeline/typecheckPlugin/index.js +2 -2
  131. package/data/packages/spec/package-lock.json +189 -169
  132. package/data/packages/spec/package.json +30 -7
  133. package/data/packages/studio/dist/public/assets/Flow-CyIU6UP_.js +26 -0
  134. package/data/packages/studio/dist/public/assets/dist-CttM53IC.js +1 -0
  135. package/data/packages/studio/dist/public/assets/index-Cb2AqsRv.js +20 -0
  136. package/data/packages/studio/dist/public/assets/index-Cq-JJ-zI.css +1 -0
  137. package/data/packages/studio/dist/public/index.html +2 -2
  138. package/data/packages/studio/package-lock.json +6 -6
  139. package/data/packages/studio/package.json +2 -2
  140. package/data/packages/ts-inspect/package-lock.json +1918 -2142
  141. package/data/packages/ts-inspect/package.json +6 -6
  142. package/package.json +1 -1
  143. package/wasp-bin +0 -0
  144. package/data/Cli/starters/basic/src/assets/logo.svg +0 -1
  145. package/data/Cli/starters/minimal/src/assets/logo.svg +0 -1
  146. package/data/Cli/starters/skeleton/public/.gitkeep +0 -0
  147. package/data/Generator/libs/auth/wasp.sh-lib-auth-0.24.0.tgz +0 -0
  148. package/data/Generator/libs/vite-ssr/wasp.sh-lib-vite-ssr-0.24.0.tgz +0 -0
  149. package/data/Generator/templates/sdk/wasp/client/app/hooks/useIsClient.ts +0 -16
  150. package/data/packages/spec/dist/__tests__/legacy/appAnalyzer.unit.test.d.ts +0 -2
  151. package/data/packages/spec/dist/__tests__/legacy/appAnalyzer.unit.test.d.ts.map +0 -1
  152. package/data/packages/spec/dist/__tests__/legacy/appAnalyzer.unit.test.js +0 -72
  153. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.integration.test.d.ts +0 -2
  154. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.integration.test.d.ts.map +0 -1
  155. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.integration.test.js +0 -126
  156. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.unit.test.d.ts +0 -2
  157. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.unit.test.d.ts.map +0 -1
  158. package/data/packages/spec/dist/__tests__/legacy/mapTsAppSpecToAppSpecDecls.unit.test.js +0 -732
  159. package/data/packages/spec/dist/__tests__/legacy/testFixtures.d.ts +0 -224
  160. package/data/packages/spec/dist/__tests__/legacy/testFixtures.d.ts.map +0 -1
  161. package/data/packages/spec/dist/__tests__/legacy/testFixtures.js +0 -659
  162. package/data/packages/spec/dist/__tests__/legacy/testFixtures.test-d.d.ts +0 -2
  163. package/data/packages/spec/dist/__tests__/legacy/testFixtures.test-d.d.ts.map +0 -1
  164. package/data/packages/spec/dist/__tests__/legacy/testFixtures.test-d.js +0 -57
  165. package/data/packages/spec/dist/src/legacy/_private.d.ts +0 -2
  166. package/data/packages/spec/dist/src/legacy/_private.d.ts.map +0 -1
  167. package/data/packages/spec/dist/src/legacy/_private.js +0 -1
  168. package/data/packages/spec/dist/src/legacy/appAnalyzer.d.ts +0 -16
  169. package/data/packages/spec/dist/src/legacy/appAnalyzer.d.ts.map +0 -1
  170. package/data/packages/spec/dist/src/legacy/appAnalyzer.js +0 -34
  171. package/data/packages/spec/dist/src/legacy/mapTsAppSpecToAppSpecDecls.d.ts +0 -38
  172. package/data/packages/spec/dist/src/legacy/mapTsAppSpecToAppSpecDecls.d.ts.map +0 -1
  173. package/data/packages/spec/dist/src/legacy/mapTsAppSpecToAppSpecDecls.js +0 -294
  174. package/data/packages/spec/dist/src/legacy/publicApi/App.d.ts +0 -24
  175. package/data/packages/spec/dist/src/legacy/publicApi/App.d.ts.map +0 -1
  176. package/data/packages/spec/dist/src/legacy/publicApi/App.js +0 -75
  177. package/data/packages/spec/dist/src/legacy/publicApi/tsAppSpec.d.ts +0 -174
  178. package/data/packages/spec/dist/src/legacy/publicApi/tsAppSpec.d.ts.map +0 -1
  179. package/data/packages/spec/dist/src/legacy/publicApi/tsAppSpec.js +0 -1
  180. package/data/packages/spec/dist/src/spec/mapApp.d.ts +0 -54
  181. package/data/packages/spec/dist/src/spec/mapApp.d.ts.map +0 -1
  182. package/data/packages/spec/dist/src/spec/mapApp.js +0 -336
  183. package/data/packages/spec/dist/src/spec/specUserError.d.ts +0 -9
  184. package/data/packages/spec/dist/src/spec/specUserError.d.ts.map +0 -1
  185. package/data/packages/spec/dist/src/spec/specUserError.js +0 -8
  186. package/data/packages/studio/dist/public/assets/Flow-_d98T2dd.js +0 -26
  187. package/data/packages/studio/dist/public/assets/index-B6X8EdJH.js +0 -21
  188. package/data/packages/studio/dist/public/assets/index-CXlD_bzV.js +0 -1
  189. package/data/packages/studio/dist/public/assets/index-IWX3d-Jz.css +0 -1
@@ -1,659 +0,0 @@
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/legacy/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
- onAuthSucceededRedirectTo: "/profile",
103
- onBeforeSignup: getExtImport(scope, "named"),
104
- onAfterSignup: getExtImport(scope, "named"),
105
- onAfterEmailVerified: getExtImport(scope, "named"),
106
- onBeforeOAuthRedirect: getExtImport(scope, "named"),
107
- onBeforeLogin: getExtImport(scope, "named"),
108
- onAfterLogin: getExtImport(scope, "named"),
109
- };
110
- default:
111
- assertUnreachable(scope);
112
- }
113
- }
114
- export function getAuthMethods(scope) {
115
- switch (scope) {
116
- case "minimal":
117
- return {};
118
- case "full":
119
- return {
120
- email: getEmailAuthConfig(scope),
121
- usernameAndPassword: getUsernameAndPasswordConfig(scope),
122
- slack: getExternalAuthConfig(scope),
123
- discord: getExternalAuthConfig(scope),
124
- google: getExternalAuthConfig(scope),
125
- gitHub: getExternalAuthConfig(scope),
126
- keycloak: getExternalAuthConfig(scope),
127
- microsoft: getExternalAuthConfig(scope),
128
- };
129
- default:
130
- assertUnreachable(scope);
131
- }
132
- }
133
- export function getExternalAuthConfig(scope) {
134
- switch (scope) {
135
- case "minimal":
136
- return {};
137
- case "full":
138
- return {
139
- configFn: getExtImport(scope, "named"),
140
- userSignupFields: getExtImport(scope, "named"),
141
- };
142
- default:
143
- assertUnreachable(scope);
144
- }
145
- }
146
- export function getUsernameAndPasswordConfig(scope) {
147
- switch (scope) {
148
- case "minimal":
149
- return {};
150
- case "full":
151
- return {
152
- userSignupFields: getExtImport(scope, "named"),
153
- };
154
- default:
155
- assertUnreachable(scope);
156
- }
157
- }
158
- export function getEmailAuthConfig(scope) {
159
- switch (scope) {
160
- case "minimal":
161
- return {
162
- fromField: getEmailFromField(scope),
163
- emailVerification: getEmailVerificationConfig(scope),
164
- passwordReset: getPasswordResetConfig(scope),
165
- };
166
- case "full":
167
- return {
168
- fromField: getEmailFromField(scope),
169
- emailVerification: getEmailVerificationConfig(scope),
170
- passwordReset: getPasswordResetConfig(scope),
171
- userSignupFields: getExtImport(scope, "named"),
172
- };
173
- default:
174
- assertUnreachable(scope);
175
- }
176
- }
177
- export function getPasswordResetConfig(scope) {
178
- switch (scope) {
179
- case "minimal":
180
- return {
181
- clientRoute: getRouteConfig("password-reset").name,
182
- };
183
- case "full":
184
- return {
185
- clientRoute: getRouteConfig("password-reset").name,
186
- getEmailContentFn: getExtImport(scope, "named"),
187
- };
188
- default:
189
- assertUnreachable(scope);
190
- }
191
- }
192
- export function getEmailVerificationConfig(scope) {
193
- switch (scope) {
194
- case "minimal":
195
- return {
196
- clientRoute: getRouteConfig("email-verification").name,
197
- };
198
- case "full":
199
- return {
200
- clientRoute: getRouteConfig("email-verification").name,
201
- getEmailContentFn: getExtImport(scope, "named"),
202
- };
203
- default:
204
- assertUnreachable(scope);
205
- }
206
- }
207
- export function getClientConfig(scope) {
208
- switch (scope) {
209
- case "minimal":
210
- return {};
211
- case "full":
212
- return {
213
- rootComponent: getExtImport(scope, "named"),
214
- setupFn: getExtImport(scope, "named"),
215
- baseDir: "/src",
216
- envValidationSchema: getExtImport(scope, "named"),
217
- };
218
- default:
219
- assertUnreachable(scope);
220
- }
221
- }
222
- export function getServerConfig(scope) {
223
- switch (scope) {
224
- case "minimal":
225
- return {};
226
- case "full":
227
- return {
228
- setupFn: getExtImport(scope, "named"),
229
- middlewareConfigFn: getExtImport(scope, "named"),
230
- envValidationSchema: getExtImport(scope, "named"),
231
- };
232
- default:
233
- assertUnreachable(scope);
234
- }
235
- }
236
- export function getEmailSenderConfig(scope) {
237
- switch (scope) {
238
- case "minimal":
239
- return {
240
- provider: "SMTP",
241
- };
242
- case "full":
243
- return {
244
- provider: "SMTP",
245
- defaultFrom: getEmailFromField(scope),
246
- };
247
- default:
248
- assertUnreachable(scope);
249
- }
250
- }
251
- export function getWebSocketConfig(scope) {
252
- switch (scope) {
253
- case "minimal":
254
- return {
255
- fn: getExtImport(scope, "named"),
256
- };
257
- case "full":
258
- return {
259
- fn: getExtImport(scope, "named"),
260
- autoConnect: true,
261
- };
262
- default:
263
- assertUnreachable(scope);
264
- }
265
- }
266
- export function getDbConfig(scope) {
267
- switch (scope) {
268
- case "minimal":
269
- return {};
270
- case "full":
271
- return {
272
- seeds: [getExtImport(scope, "named"), getExtImport(scope, "default")],
273
- prismaSetupFn: getExtImport(scope, "named"),
274
- };
275
- default:
276
- assertUnreachable(scope);
277
- }
278
- }
279
- export function getPageConfigs() {
280
- return PAGE_CONFIG_TYPES.map(getPageConfig);
281
- }
282
- export function getPageConfig(pageType) {
283
- const name = `${pageType}-page`;
284
- switch (pageType) {
285
- case "minimal":
286
- return {
287
- name,
288
- config: {
289
- component: getExtImport(pageType, "named"),
290
- },
291
- };
292
- case "email-verification":
293
- return {
294
- name,
295
- config: {
296
- component: getExtImport("full", "named"),
297
- authRequired: false,
298
- },
299
- };
300
- case "password-reset":
301
- return {
302
- name,
303
- config: {
304
- component: getExtImport("full", "named"),
305
- authRequired: false,
306
- },
307
- };
308
- case "full":
309
- return {
310
- name,
311
- config: {
312
- component: getExtImport(pageType, "named"),
313
- authRequired: true,
314
- },
315
- };
316
- default:
317
- assertUnreachable(pageType);
318
- }
319
- }
320
- export function getRouteConfigs() {
321
- return PAGE_CONFIG_TYPES.map(getRouteConfig);
322
- }
323
- export function getRouteConfig(routeType) {
324
- const name = `${routeType}-route`;
325
- switch (routeType) {
326
- case "minimal":
327
- return {
328
- name,
329
- config: {
330
- path: "/foo/bar",
331
- to: getPageConfig(routeType).name,
332
- },
333
- };
334
- case "full":
335
- case "email-verification":
336
- case "password-reset":
337
- return {
338
- name,
339
- config: {
340
- path: "/foo/bar",
341
- to: getPageConfig(routeType).name,
342
- prerender: true,
343
- lazy: false,
344
- },
345
- };
346
- default:
347
- assertUnreachable(routeType);
348
- }
349
- }
350
- export function getQueryConfigs() {
351
- return CONFIG_TYPES.map(getQueryConfig);
352
- }
353
- export function getQueryConfig(scope) {
354
- switch (scope) {
355
- case "minimal":
356
- return {
357
- name: "MinimalQuery",
358
- config: {
359
- fn: getExtImport(scope, "named"),
360
- },
361
- };
362
- case "full":
363
- return {
364
- name: "FullQuery",
365
- config: {
366
- fn: getExtImport(scope, "named"),
367
- entities: [getEntity("task")],
368
- auth: true,
369
- },
370
- };
371
- default:
372
- assertUnreachable(scope);
373
- }
374
- }
375
- export function getActionConfigs() {
376
- return CONFIG_TYPES.map(getActionConfig);
377
- }
378
- export function getActionConfig(scope) {
379
- switch (scope) {
380
- case "minimal":
381
- return {
382
- name: "MinimalAction",
383
- config: {
384
- fn: getExtImport(scope, "named"),
385
- },
386
- };
387
- case "full":
388
- return {
389
- name: "FullAction",
390
- config: {
391
- fn: getExtImport(scope, "named"),
392
- entities: [getEntity("task")],
393
- auth: true,
394
- },
395
- };
396
- default:
397
- assertUnreachable(scope);
398
- }
399
- }
400
- export function getCrudConfigs() {
401
- return CONFIG_TYPES.map(getCrudConfig);
402
- }
403
- export function getCrudConfig(scope) {
404
- switch (scope) {
405
- case "minimal":
406
- return {
407
- name: "MinimalCrud",
408
- config: {
409
- entity: getEntity("task"),
410
- operations: getCrudOperations(scope),
411
- },
412
- };
413
- case "full":
414
- return {
415
- name: "FullCrud",
416
- config: {
417
- entity: getEntity("task"),
418
- operations: getCrudOperations(scope),
419
- },
420
- };
421
- default:
422
- assertUnreachable(scope);
423
- }
424
- }
425
- export function getCrudOperations(scope) {
426
- switch (scope) {
427
- case "minimal":
428
- return {};
429
- case "full":
430
- return {
431
- get: getCrudOperationOptions(scope),
432
- getAll: getCrudOperationOptions(scope),
433
- create: getCrudOperationOptions(scope),
434
- update: getCrudOperationOptions(scope),
435
- delete: getCrudOperationOptions(scope),
436
- };
437
- default:
438
- assertUnreachable(scope);
439
- }
440
- }
441
- export function getCrudOperationOptions(scope) {
442
- switch (scope) {
443
- case "minimal":
444
- return {};
445
- case "full":
446
- return {
447
- isPublic: true,
448
- overrideFn: getExtImport(scope, "named"),
449
- };
450
- default:
451
- assertUnreachable(scope);
452
- }
453
- }
454
- export function getSchedule(scope) {
455
- switch (scope) {
456
- case "minimal":
457
- return {
458
- cron: "0 0 * * *",
459
- };
460
- case "full":
461
- return {
462
- cron: "0 0 * * *",
463
- args: { foo: "bar" },
464
- executorOptions: {
465
- pgBoss: { jobOptions: { attempts: 3 } },
466
- },
467
- };
468
- default:
469
- assertUnreachable(scope);
470
- }
471
- }
472
- export function getPerform(scope) {
473
- switch (scope) {
474
- case "minimal":
475
- return {
476
- fn: getExtImport(scope, "named"),
477
- };
478
- case "full":
479
- return {
480
- fn: getExtImport(scope, "named"),
481
- executorOptions: {
482
- pgBoss: { jobOptions: { attempts: 3 } },
483
- },
484
- };
485
- default:
486
- assertUnreachable(scope);
487
- }
488
- }
489
- export function getApiNamespaceConfigs() {
490
- return CONFIG_TYPES.map(getApiNamespaceConfig);
491
- }
492
- export function getApiNamespaceConfig(scope) {
493
- switch (scope) {
494
- case "minimal":
495
- return {
496
- name: "MinimalApiNamespace",
497
- config: {
498
- middlewareConfigFn: getExtImport(scope, "named"),
499
- path: "/foo",
500
- },
501
- };
502
- case "full":
503
- return {
504
- name: "FullApiNamespace",
505
- config: {
506
- middlewareConfigFn: getExtImport(scope, "named"),
507
- path: "/foo",
508
- },
509
- };
510
- default:
511
- assertUnreachable(scope);
512
- }
513
- }
514
- export function getApiConfigs() {
515
- return CONFIG_TYPES.map(getApiConfig);
516
- }
517
- export function getApiConfig(scope) {
518
- switch (scope) {
519
- case "minimal":
520
- return {
521
- name: "MinimalApi",
522
- config: {
523
- fn: getExtImport(scope, "named"),
524
- httpRoute: getHttpRoute(scope),
525
- },
526
- };
527
- case "full":
528
- return {
529
- name: "FullApi",
530
- config: {
531
- fn: getExtImport(scope, "named"),
532
- httpRoute: getHttpRoute(scope),
533
- entities: [getEntity("task")],
534
- auth: true,
535
- middlewareConfigFn: getExtImport(scope, "named"),
536
- },
537
- };
538
- default:
539
- assertUnreachable(scope);
540
- }
541
- }
542
- export function getHttpRoute(scope) {
543
- switch (scope) {
544
- case "minimal":
545
- return {
546
- method: "GET",
547
- route: "/foo/bar",
548
- };
549
- case "full":
550
- return {
551
- method: "GET",
552
- route: "/foo/bar",
553
- };
554
- default:
555
- assertUnreachable(scope);
556
- }
557
- }
558
- export function getJobConfigs() {
559
- return CONFIG_TYPES.map(getJobConfig);
560
- }
561
- export function getJobConfig(scope) {
562
- switch (scope) {
563
- case "minimal":
564
- return {
565
- name: "MinimalJob",
566
- config: {
567
- executor: "PgBoss",
568
- perform: getPerform(scope),
569
- },
570
- };
571
- case "full":
572
- return {
573
- name: "FullJob",
574
- config: {
575
- executor: "PgBoss",
576
- perform: getPerform(scope),
577
- entities: [getEntity("task")],
578
- schedule: getSchedule(scope),
579
- },
580
- };
581
- default:
582
- assertUnreachable(scope);
583
- }
584
- }
585
- export function getEmailFromField(scope) {
586
- switch (scope) {
587
- case "minimal":
588
- return {
589
- email: "test@domain.tld",
590
- };
591
- case "full":
592
- return {
593
- email: "test@domain.tld",
594
- name: "ToDo App",
595
- };
596
- default:
597
- assertUnreachable(scope);
598
- }
599
- }
600
- export function getExtImport(scope, importKind) {
601
- const importObject = importKind === "default"
602
- ? { importDefault: "defaultExport" }
603
- : { import: "namedExport" };
604
- switch (scope) {
605
- case "minimal":
606
- return {
607
- ...importObject,
608
- from: "@src/external",
609
- };
610
- case "full":
611
- return {
612
- ...importObject,
613
- from: "@src/external",
614
- };
615
- default:
616
- assertUnreachable(scope);
617
- }
618
- }
619
- export function getEntity(entity) {
620
- switch (entity) {
621
- case "task":
622
- return "Task";
623
- case "user":
624
- return "User";
625
- case "social-user":
626
- return "SocialUser";
627
- default:
628
- assertUnreachable(entity);
629
- }
630
- }
631
- export function getEntities(scope) {
632
- switch (scope) {
633
- case "minimal":
634
- return [];
635
- case "full":
636
- return ENTITY_CONFIG_TYPES.map(getEntity);
637
- default:
638
- assertUnreachable(scope);
639
- }
640
- }
641
- function assertUnreachable(value) {
642
- throw new Error(`Unhandled case: ${value}`);
643
- }
644
- const CONFIG_TYPES = ["minimal", "full"];
645
- /**
646
- * By default we define only `ConfigType` variants for all of the configs
647
- * that can be used in the app. This is because we want to test both
648
- * edge cases of the configs.
649
- *
650
- * Pages are a special case, because even though they are a top-level config,
651
- * they are also used by `AuthConfig`. That is why we define those two cases separately.
652
- * Mostly to bring attention that we have additional edge cases for pages.
653
- */
654
- const PAGE_CONFIG_TYPES = [
655
- ...CONFIG_TYPES,
656
- "email-verification",
657
- "password-reset",
658
- ];
659
- const ENTITY_CONFIG_TYPES = ["task", "user", "social-user"];
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=testFixtures.test-d.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testFixtures.test-d.d.ts","sourceRoot":"","sources":["../../../__tests__/legacy/testFixtures.test-d.ts"],"names":[],"mappings":""}