@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,174 +0,0 @@
1
- import * as AppSpec from "../../appSpec.js";
2
- import { Branded } from "../../branded.js";
3
- export type TsAppSpec = {
4
- app: {
5
- name: string;
6
- config: AppConfig;
7
- };
8
- actions: Map<string, ActionConfig>;
9
- apiNamespaces: Map<string, ApiNamespaceConfig>;
10
- apis: Map<string, ApiConfig>;
11
- auth?: AuthConfig;
12
- client?: ClientConfig;
13
- cruds: Map<string, CrudConfig>;
14
- db?: DbConfig;
15
- emailSender?: EmailSenderConfig;
16
- jobs: Map<string, JobConfig>;
17
- pages: Map<string, PageConfig>;
18
- queries: Map<string, QueryConfig>;
19
- routes: Map<string, RouteConfig>;
20
- server?: ServerConfig;
21
- websocket?: WebsocketConfig;
22
- };
23
- export type AppConfig = {
24
- title: string;
25
- wasp: AppSpec.Wasp;
26
- head?: string[];
27
- };
28
- export type ActionConfig = {
29
- fn: ExtImport;
30
- entities?: string[];
31
- auth?: boolean;
32
- };
33
- export type ApiNamespaceConfig = {
34
- middlewareConfigFn: ExtImport;
35
- path: string;
36
- };
37
- export type ApiConfig = {
38
- fn: ExtImport;
39
- middlewareConfigFn?: ExtImport;
40
- entities?: string[];
41
- httpRoute: HttpRoute;
42
- auth?: boolean;
43
- };
44
- export type HttpRoute = {
45
- method: AppSpec.HttpMethod;
46
- route: string;
47
- };
48
- export type AuthConfig = {
49
- userEntity: string;
50
- methods: AuthMethods;
51
- onAuthFailedRedirectTo: string;
52
- onAuthSucceededRedirectTo?: string;
53
- onBeforeSignup?: ExtImport;
54
- onAfterSignup?: ExtImport;
55
- onAfterEmailVerified?: ExtImport;
56
- onBeforeOAuthRedirect?: ExtImport;
57
- onBeforeLogin?: ExtImport;
58
- onAfterLogin?: ExtImport;
59
- };
60
- export type AuthMethods = {
61
- usernameAndPassword?: UsernameAndPasswordConfig;
62
- slack?: ExternalAuthConfig;
63
- discord?: ExternalAuthConfig;
64
- google?: ExternalAuthConfig;
65
- gitHub?: ExternalAuthConfig;
66
- keycloak?: ExternalAuthConfig;
67
- microsoft?: ExternalAuthConfig;
68
- email?: EmailAuthConfig;
69
- };
70
- export type UsernameAndPasswordConfig = {
71
- userSignupFields?: ExtImport;
72
- };
73
- export type EmailAuthConfig = {
74
- userSignupFields?: ExtImport;
75
- fromField: EmailFromField;
76
- emailVerification: EmailVerificationConfig;
77
- passwordReset: PasswordResetConfig;
78
- };
79
- export type EmailVerificationConfig = {
80
- getEmailContentFn?: ExtImport;
81
- clientRoute: string;
82
- };
83
- export type PasswordResetConfig = {
84
- getEmailContentFn?: ExtImport;
85
- clientRoute: string;
86
- };
87
- export type ExternalAuthConfig = {
88
- configFn?: ExtImport;
89
- userSignupFields?: ExtImport;
90
- };
91
- export type ClientConfig = {
92
- rootComponent?: ExtImport;
93
- setupFn?: ExtImport;
94
- baseDir?: `/${string}`;
95
- envValidationSchema?: ExtImport;
96
- };
97
- export type CrudConfig = {
98
- entity: string;
99
- operations: CrudOperations;
100
- };
101
- export type CrudOperations = {
102
- get?: CrudOperationOptions;
103
- getAll?: CrudOperationOptions;
104
- create?: CrudOperationOptions;
105
- update?: CrudOperationOptions;
106
- delete?: CrudOperationOptions;
107
- };
108
- export type CrudOperationOptions = {
109
- isPublic?: boolean;
110
- overrideFn?: ExtImport;
111
- };
112
- export type DbConfig = {
113
- seeds?: ExtImport[];
114
- prismaSetupFn?: ExtImport;
115
- };
116
- export type EmailSenderConfig = {
117
- provider: AppSpec.EmailProvider;
118
- defaultFrom?: EmailFromField;
119
- };
120
- export type JobConfig = {
121
- executor: AppSpec.JobExecutor;
122
- perform: Perform;
123
- schedule?: Schedule;
124
- entities?: string[];
125
- };
126
- export type Perform = {
127
- fn: ExtImport;
128
- executorOptions?: ExecutorOptions;
129
- };
130
- export type Schedule = {
131
- cron: string;
132
- args?: object;
133
- executorOptions?: ExecutorOptions;
134
- };
135
- export type ExecutorOptions = {
136
- pgBoss: object;
137
- };
138
- export type PageConfig = {
139
- component: ExtImport;
140
- authRequired?: boolean;
141
- };
142
- export type QueryConfig = {
143
- fn: ExtImport;
144
- entities?: string[];
145
- auth?: boolean;
146
- };
147
- export type RouteConfig = {
148
- path: string;
149
- to: PageName;
150
- prerender?: boolean;
151
- lazy?: boolean;
152
- };
153
- export type PageName = Branded<string, "PageName">;
154
- export type ServerConfig = {
155
- setupFn?: ExtImport;
156
- middlewareConfigFn?: ExtImport;
157
- envValidationSchema?: ExtImport;
158
- };
159
- export type WebsocketConfig = {
160
- fn: ExtImport;
161
- autoConnect?: boolean;
162
- };
163
- export type ExtImport = {
164
- import: string;
165
- from: AppSpec.ExtImport["path"];
166
- } | {
167
- importDefault: string;
168
- from: AppSpec.ExtImport["path"];
169
- };
170
- export type EmailFromField = {
171
- name?: string;
172
- email: string;
173
- };
174
- //# sourceMappingURL=tsAppSpec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tsAppSpec.d.ts","sourceRoot":"","sources":["../../../../src/legacy/publicApi/tsAppSpec.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- /**
2
- * This module maps the Wasp Spec to the internal representation of
3
- * the app ({@link AppSpec.Decl}).
4
- * All of the mapping functions are exported so that they can be individually
5
- * tested.
6
- */
7
- import * as AppSpec from "../appSpec.js";
8
- import * as WaspSpec from "./publicApi/waspSpec.js";
9
- export declare function mapApp(app: WaspSpec.App, { projectRootDir, entityNames, }: {
10
- projectRootDir: string;
11
- entityNames: string[];
12
- }): AppSpec.Decl[];
13
- export type AppMapperContext = {
14
- entityRefParser: RefParser<"Entity">;
15
- routeRefParser: RefParser<"Route">;
16
- mapRefObject: RefObjectMapper;
17
- };
18
- type RefObjectMapper = (refObject: unknown) => AppSpec.ExtImport;
19
- export declare function mapPage(page: WaspSpec.Page, ctx: AppMapperContext): AppSpec.Page;
20
- export declare function mapRoute(route: WaspSpec.Route): AppSpec.Route;
21
- /**
22
- * {@link WaspSpec.Route} through it's constructor can either:
23
- * - Create a new {@link WaspSpec.Page}.
24
- * - Reference an existing {@link WaspSpec.Page}.
25
- *
26
- * In case when it references an existing page, we don't want to
27
- * count the reference as a separate {@link AppSpec.Page} specification.
28
- */
29
- export declare function dedupePageDecls(decls: AppSpec.GetDeclForType<"Page">[]): AppSpec.GetDeclForType<"Page">[];
30
- export declare function mapQuery(query: WaspSpec.Query, ctx: AppMapperContext): AppSpec.Query;
31
- export declare function mapAction(action: WaspSpec.Action, ctx: AppMapperContext): AppSpec.Action;
32
- export declare function mapAuth(auth: WaspSpec.Auth, ctx: AppMapperContext): AppSpec.Auth;
33
- export declare function mapAuthMethods(methods: WaspSpec.AuthMethods, ctx: AppMapperContext): AppSpec.AuthMethods;
34
- export declare function mapUsernameAndPassword(usernameAndPassword: WaspSpec.UsernameAndPasswordConfig, ctx: AppMapperContext): AppSpec.UsernameAndPasswordConfig;
35
- export declare function mapSocialAuth(socialAuth: WaspSpec.SocialAuthConfig, ctx: AppMapperContext): AppSpec.ExternalAuthConfig;
36
- export declare function mapEmailAuth(emailAuth: WaspSpec.EmailAuthConfig, ctx: AppMapperContext): AppSpec.EmailAuthConfig;
37
- export declare function mapEmailFlow(emailFlow: WaspSpec.EmailFlowConfig, ctx: AppMapperContext): AppSpec.EmailVerificationConfig;
38
- export declare function mapApi(api: WaspSpec.Api, ctx: AppMapperContext): AppSpec.Api;
39
- export declare function mapApiNamespace(apiNamespace: WaspSpec.ApiNamespace, ctx: AppMapperContext): AppSpec.ApiNamespace;
40
- export declare function mapServer(server: WaspSpec.Server, ctx: AppMapperContext): AppSpec.Server;
41
- export declare function mapClient(client: WaspSpec.Client, ctx: AppMapperContext): AppSpec.Client;
42
- export declare function mapDb(db: WaspSpec.Db, ctx: AppMapperContext): AppSpec.Db;
43
- export declare function mapEmailSender(emailSender: WaspSpec.EmailSender): AppSpec.EmailSender;
44
- export declare function mapEmailFromField(emailFromField: WaspSpec.EmailFromField): AppSpec.EmailFromField;
45
- export declare function mapWebSocket(webSocket: WaspSpec.WebSocket, ctx: AppMapperContext): AppSpec.WebSocket;
46
- export declare function mapJob(job: WaspSpec.Job, ctx: AppMapperContext): AppSpec.Job;
47
- export declare function mapCrud(crud: WaspSpec.Crud, ctx: AppMapperContext): AppSpec.Crud;
48
- export declare function mapCrudOperations(operations: WaspSpec.CrudOperations, ctx: AppMapperContext): AppSpec.CrudOperations;
49
- export declare function mapCrudOperationOptions(options: WaspSpec.CrudOperationOptions, ctx: AppMapperContext): AppSpec.CrudOperationOptions;
50
- export declare function mapSchedule(schedule: WaspSpec.Schedule): AppSpec.Schedule;
51
- export type RefParser<T extends AppSpec.DeclType> = (name: string) => AppSpec.Ref<T>;
52
- export declare function makeRefParser<T extends AppSpec.DeclType>(declType: T, declNames: string[]): RefParser<T>;
53
- export {};
54
- //# sourceMappingURL=mapApp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapApp.d.ts","sourceRoot":"","sources":["../../../src/spec/mapApp.ts"],"names":[],"mappings":"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"}
@@ -1,336 +0,0 @@
1
- /**
2
- * This module maps the Wasp Spec to the internal representation of
3
- * the app ({@link AppSpec.Decl}).
4
- * All of the mapping functions are exported so that they can be individually
5
- * tested.
6
- */
7
- import { getRefObjectDeclarationName, mapRefObject } from "./refObject.js";
8
- import { SpecUserError } from "./specUserError.js";
9
- export function mapApp(app, { projectRootDir, entityNames, }) {
10
- const { name, wasp, title, head, auth, server, client, db, emailSender, webSocket, spec, } = app;
11
- const flatSpec = flattenSpec(spec);
12
- const entityRefParser = makeRefParser("Entity", entityNames);
13
- const routeSpecElements = extractSpecElements("route", flatSpec);
14
- const routeRefParser = makeRefParser("Route", routeSpecElements.map((r) => r.name));
15
- const ctx = {
16
- entityRefParser,
17
- routeRefParser,
18
- mapRefObject: (refObject) => mapRefObject(refObject, {
19
- projectRootDir,
20
- }),
21
- };
22
- // TODO: When you add all declarations, see if you can generalize better
23
- // (e.g., maybe named parameters, maybe putting extractSpecElements inside
24
- // mapToDecls)
25
- const pageSpecElements = extractSpecElements("page", flatSpec);
26
- const pageDecls = mapToDecls(pageSpecElements, "Page", (page) => getRefObjectDeclarationName(page.component), (page) => mapPage(page, ctx));
27
- const routeDecls = mapToDecls(routeSpecElements, "Route", (route) => route.name, (route) => mapRoute(route));
28
- const routePageDecls = mapToDecls(routeSpecElements, "Page", (route) => getRefObjectDeclarationName(route.page.component), (route) => mapPage(route.page, ctx));
29
- const querySpecElements = extractSpecElements("query", flatSpec);
30
- const queryDecls = mapToDecls(querySpecElements, "Query", (query) => getRefObjectDeclarationName(query.fn), (query) => mapQuery(query, ctx));
31
- const actionSpecElements = extractSpecElements("action", flatSpec);
32
- const actionDecls = mapToDecls(actionSpecElements, "Action", (action) => getRefObjectDeclarationName(action.fn), (action) => mapAction(action, ctx));
33
- const apiSpecElements = extractSpecElements("api", flatSpec);
34
- const apiDecls = mapToDecls(apiSpecElements, "Api", (api) => getRefObjectDeclarationName(api.fn), (api) => mapApi(api, ctx));
35
- const apiNamespaceSpecElements = extractSpecElements("apiNamespace", flatSpec);
36
- const apiNamespaceDecls = mapToDecls(apiNamespaceSpecElements, "ApiNamespace", (ns) => getRefObjectDeclarationName(ns.middlewareConfigFn), (ns) => mapApiNamespace(ns, ctx));
37
- const jobSpecElements = extractSpecElements("job", flatSpec);
38
- const jobDecls = mapToDecls(jobSpecElements, "Job", (job) => getRefObjectDeclarationName(job.fn), (job) => mapJob(job, ctx));
39
- const crudSpecElements = extractSpecElements("crud", flatSpec);
40
- const crudDecls = mapToDecls(crudSpecElements, "Crud", (crud) => crud.name, (crud) => mapCrud(crud, ctx));
41
- const appDecl = {
42
- declType: "App",
43
- declName: name,
44
- declValue: {
45
- wasp,
46
- title,
47
- head,
48
- auth: auth && mapAuth(auth, ctx),
49
- server: server && mapServer(server, ctx),
50
- client: client && mapClient(client, ctx),
51
- db: db && mapDb(db, ctx),
52
- emailSender: emailSender && mapEmailSender(emailSender),
53
- webSocket: webSocket && mapWebSocket(webSocket, ctx),
54
- },
55
- };
56
- return ensureAllDecls({
57
- App: [appDecl],
58
- Page: dedupePageDecls([...pageDecls, ...routePageDecls]),
59
- Route: routeDecls,
60
- Query: queryDecls,
61
- Action: actionDecls,
62
- Api: apiDecls,
63
- ApiNamespace: apiNamespaceDecls,
64
- Job: jobDecls,
65
- Crud: crudDecls,
66
- });
67
- }
68
- export function mapPage(page, ctx) {
69
- const { component, authRequired } = page;
70
- return {
71
- component: ctx.mapRefObject(component),
72
- authRequired,
73
- };
74
- }
75
- export function mapRoute(route) {
76
- const { path, prerender, lazy } = route;
77
- return {
78
- path,
79
- to: {
80
- name: getRefObjectDeclarationName(route.page.component),
81
- declType: "Page",
82
- },
83
- prerender,
84
- lazy,
85
- };
86
- }
87
- /**
88
- * {@link WaspSpec.Route} through it's constructor can either:
89
- * - Create a new {@link WaspSpec.Page}.
90
- * - Reference an existing {@link WaspSpec.Page}.
91
- *
92
- * In case when it references an existing page, we don't want to
93
- * count the reference as a separate {@link AppSpec.Page} specification.
94
- */
95
- export function dedupePageDecls(decls) {
96
- const pagesByDeclName = Map.groupBy(decls, (decls) => decls.declName);
97
- return Array.from(pagesByDeclName.values()).map((pages) => pages.reduce((firstPage, currentPage) => {
98
- if (!arePageDeclsEqual(currentPage, firstPage)) {
99
- throw new SpecUserError(`Conflicting configurations for the page \`${firstPage.declName}\`:\n` +
100
- `- Definition A: ${JSON.stringify(firstPage.declValue)}\n` +
101
- `- Definition B: ${JSON.stringify(currentPage.declValue)}\n\n` +
102
- "All page instances with the same import name must produce the same configuration.\n" +
103
- "If the duplication was intentional, please use an alias to differentiate the pages.");
104
- }
105
- return firstPage;
106
- }));
107
- }
108
- function arePageDeclsEqual(page1, page2) {
109
- const isSameCanonicalPage = page1.declName === page2.declName;
110
- return (isSameCanonicalPage &&
111
- JSON.stringify(page1.declValue) === JSON.stringify(page2.declValue));
112
- }
113
- export function mapQuery(query, ctx) {
114
- const { fn, entities, auth } = query;
115
- return {
116
- fn: ctx.mapRefObject(fn),
117
- entities: entities?.map(ctx.entityRefParser),
118
- auth,
119
- };
120
- }
121
- export function mapAction(action, ctx) {
122
- const { fn, entities, auth } = action;
123
- return {
124
- fn: ctx.mapRefObject(fn),
125
- entities: entities?.map(ctx.entityRefParser),
126
- auth,
127
- };
128
- }
129
- export function mapAuth(auth, ctx) {
130
- const { userEntity, methods, onAuthFailedRedirectTo, onAuthSucceededRedirectTo, onBeforeSignup, onAfterSignup, onAfterEmailVerified, onBeforeOAuthRedirect, onBeforeLogin, onAfterLogin, } = auth;
131
- return {
132
- userEntity: ctx.entityRefParser(userEntity),
133
- methods: mapAuthMethods(methods, ctx),
134
- onAuthFailedRedirectTo,
135
- onAuthSucceededRedirectTo,
136
- onBeforeSignup: onBeforeSignup && ctx.mapRefObject(onBeforeSignup),
137
- onAfterSignup: onAfterSignup && ctx.mapRefObject(onAfterSignup),
138
- onAfterEmailVerified: onAfterEmailVerified && ctx.mapRefObject(onAfterEmailVerified),
139
- onBeforeOAuthRedirect: onBeforeOAuthRedirect && ctx.mapRefObject(onBeforeOAuthRedirect),
140
- onBeforeLogin: onBeforeLogin && ctx.mapRefObject(onBeforeLogin),
141
- onAfterLogin: onAfterLogin && ctx.mapRefObject(onAfterLogin),
142
- };
143
- }
144
- export function mapAuthMethods(methods, ctx) {
145
- const { usernameAndPassword, slack, discord, google, gitHub, keycloak, microsoft, email, } = methods;
146
- return {
147
- usernameAndPassword: usernameAndPassword && mapUsernameAndPassword(usernameAndPassword, ctx),
148
- slack: slack && mapSocialAuth(slack, ctx),
149
- discord: discord && mapSocialAuth(discord, ctx),
150
- google: google && mapSocialAuth(google, ctx),
151
- gitHub: gitHub && mapSocialAuth(gitHub, ctx),
152
- keycloak: keycloak && mapSocialAuth(keycloak, ctx),
153
- microsoft: microsoft && mapSocialAuth(microsoft, ctx),
154
- email: email && mapEmailAuth(email, ctx),
155
- };
156
- }
157
- export function mapUsernameAndPassword(usernameAndPassword, ctx) {
158
- const { userSignupFields } = usernameAndPassword;
159
- return {
160
- userSignupFields: userSignupFields && ctx.mapRefObject(userSignupFields),
161
- };
162
- }
163
- export function mapSocialAuth(socialAuth, ctx) {
164
- const { configFn, userSignupFields } = socialAuth;
165
- return {
166
- configFn: configFn && ctx.mapRefObject(configFn),
167
- userSignupFields: userSignupFields && ctx.mapRefObject(userSignupFields),
168
- };
169
- }
170
- export function mapEmailAuth(emailAuth, ctx) {
171
- const { userSignupFields, fromField, emailVerification, passwordReset } = emailAuth;
172
- return {
173
- userSignupFields: userSignupFields && ctx.mapRefObject(userSignupFields),
174
- fromField: mapEmailFromField(fromField),
175
- emailVerification: mapEmailFlow(emailVerification, ctx),
176
- passwordReset: mapEmailFlow(passwordReset, ctx),
177
- };
178
- }
179
- export function mapEmailFlow(emailFlow, ctx) {
180
- const { getEmailContentFn, clientRoute } = emailFlow;
181
- return {
182
- getEmailContentFn: getEmailContentFn && ctx.mapRefObject(getEmailContentFn),
183
- clientRoute: ctx.routeRefParser(clientRoute),
184
- };
185
- }
186
- export function mapApi(api, ctx) {
187
- const { method, path, fn, middlewareConfigFn, entities, auth } = api;
188
- return {
189
- fn: ctx.mapRefObject(fn),
190
- middlewareConfigFn: middlewareConfigFn && ctx.mapRefObject(middlewareConfigFn),
191
- entities: entities?.map(ctx.entityRefParser),
192
- httpRoute: [method, path],
193
- auth,
194
- };
195
- }
196
- export function mapApiNamespace(apiNamespace, ctx) {
197
- const { middlewareConfigFn, path } = apiNamespace;
198
- return {
199
- middlewareConfigFn: ctx.mapRefObject(middlewareConfigFn),
200
- path,
201
- };
202
- }
203
- export function mapServer(server, ctx) {
204
- const { setupFn, middlewareConfigFn, envValidationSchema } = server;
205
- return {
206
- setupFn: setupFn && ctx.mapRefObject(setupFn),
207
- middlewareConfigFn: middlewareConfigFn && ctx.mapRefObject(middlewareConfigFn),
208
- envValidationSchema: envValidationSchema && ctx.mapRefObject(envValidationSchema),
209
- };
210
- }
211
- export function mapClient(client, ctx) {
212
- const { rootComponent, setupFn, baseDir, envValidationSchema } = client;
213
- return {
214
- rootComponent: rootComponent && ctx.mapRefObject(rootComponent),
215
- setupFn: setupFn && ctx.mapRefObject(setupFn),
216
- baseDir,
217
- envValidationSchema: envValidationSchema && ctx.mapRefObject(envValidationSchema),
218
- };
219
- }
220
- export function mapDb(db, ctx) {
221
- const { seeds, prismaSetupFn } = db;
222
- return {
223
- seeds: seeds?.map(ctx.mapRefObject),
224
- prismaSetupFn: prismaSetupFn && ctx.mapRefObject(prismaSetupFn),
225
- };
226
- }
227
- export function mapEmailSender(emailSender) {
228
- const { provider, defaultFrom } = emailSender;
229
- return {
230
- provider,
231
- defaultFrom: defaultFrom && mapEmailFromField(defaultFrom),
232
- };
233
- }
234
- export function mapEmailFromField(emailFromField) {
235
- return {
236
- name: emailFromField.name,
237
- email: emailFromField.email,
238
- };
239
- }
240
- export function mapWebSocket(webSocket, ctx) {
241
- const { fn, autoConnect } = webSocket;
242
- return {
243
- fn: ctx.mapRefObject(fn),
244
- autoConnect,
245
- };
246
- }
247
- export function mapJob(job, ctx) {
248
- const { fn, executor, schedule, entities, performExecutorOptions } = job;
249
- return {
250
- executor,
251
- perform: {
252
- fn: ctx.mapRefObject(fn),
253
- executorOptions: performExecutorOptions,
254
- },
255
- schedule: schedule && mapSchedule(schedule),
256
- entities: entities?.map(ctx.entityRefParser),
257
- };
258
- }
259
- export function mapCrud(crud, ctx) {
260
- const { entity, operations } = crud;
261
- return {
262
- entity: ctx.entityRefParser(entity),
263
- operations: mapCrudOperations(operations, ctx),
264
- };
265
- }
266
- export function mapCrudOperations(operations, ctx) {
267
- const { get, getAll, create, update, delete: del } = operations;
268
- return {
269
- get: get && mapCrudOperationOptions(get, ctx),
270
- getAll: getAll && mapCrudOperationOptions(getAll, ctx),
271
- create: create && mapCrudOperationOptions(create, ctx),
272
- update: update && mapCrudOperationOptions(update, ctx),
273
- delete: del && mapCrudOperationOptions(del, ctx),
274
- };
275
- }
276
- export function mapCrudOperationOptions(options, ctx) {
277
- const { isPublic, overrideFn } = options;
278
- return {
279
- isPublic,
280
- overrideFn: overrideFn && ctx.mapRefObject(overrideFn),
281
- };
282
- }
283
- export function mapSchedule(schedule) {
284
- const { cron, args, executorOptions } = schedule;
285
- return {
286
- cron,
287
- args,
288
- executorOptions,
289
- };
290
- }
291
- export function makeRefParser(declType, declNames) {
292
- return function parseRef(potentialRef) {
293
- if (!declNames.includes(potentialRef)) {
294
- throw new SpecUserError(`Invalid \`${declType}\` reference: \`${potentialRef}\`\n` +
295
- `Please make sure that \`${potentialRef}\` is actually defined.`);
296
- }
297
- return {
298
- name: potentialRef,
299
- declType,
300
- };
301
- };
302
- }
303
- function extractSpecElements(id, spec) {
304
- return spec.filter((p) => p.kind === id);
305
- }
306
- function mapToDecls(items, declType, deriveName, mapValue) {
307
- return items.map((item) => ({
308
- declType,
309
- declName: deriveName(item),
310
- declValue: mapValue(item),
311
- }));
312
- }
313
- function flattenSpec(spec) {
314
- // We assert the `[spec]` as a `SpecElement[]` to avoid
315
- // inifnite recursion of the `WaspSpec.Spec` type.
316
- return [spec].flat(Infinity);
317
- }
318
- /**
319
- * The point of this function is to enforce exhaustivness over all AppSpec
320
- * declaration types, ensuring we don't forget to include anything.
321
- * Check the original comment for details: https://github.com/wasp-lang/wasp/pull/2393#discussion_r1866620833
322
- *
323
- * TODO: The new spec bundles all specifications (queries, actions...) together in
324
- * the `spec` array, so there's no need to go through them one by one.
325
- *
326
- * We'd likely be better off by:
327
- * 1. Mapping the entire array with a dispatcher that calls the correct
328
- * mapper depending on the declaration's kind
329
- * 2. Passing this mapped array into the app spec (which expects them all on
330
- * the same level anyway).
331
- * We'll likely lose some mapping type safety in the process though. Explore
332
- * when we're done with the port from legacy to the new spec.
333
- */
334
- function ensureAllDecls(decls) {
335
- return Object.values(decls).flat();
336
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Error caused by invalid user input (unknown entities, bad imports, etc.).
3
- *
4
- * These are the errors users hit most often during development, so their
5
- * messages should be short, clear, and actionable.
6
- */
7
- export declare class SpecUserError extends Error {
8
- }
9
- //# sourceMappingURL=specUserError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specUserError.d.ts","sourceRoot":"","sources":["../../../src/spec/specUserError.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,KAAK;CAAG"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Error caused by invalid user input (unknown entities, bad imports, etc.).
3
- *
4
- * These are the errors users hit most often during development, so their
5
- * messages should be short, clear, and actionable.
6
- */
7
- export class SpecUserError extends Error {
8
- }