@wasp.sh/wasp-cli-darwin-arm64-unknown 0.24.0-rc.2 → 0.24.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.
- package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts +32 -11
- package/data/packages/spec/dist/src/spec/publicApi/constructors.d.ts.map +1 -1
- package/data/packages/spec/dist/src/spec/publicApi/constructors.js +32 -11
- package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts +442 -62
- package/data/packages/spec/dist/src/spec/publicApi/waspSpec.d.ts.map +1 -1
- package/package.json +1 -1
- package/wasp-bin +0 -0
|
@@ -114,16 +114,28 @@ type RouteConfig = Omit<Route, "kind" | "name" | "path" | "page">;
|
|
|
114
114
|
*
|
|
115
115
|
* @example
|
|
116
116
|
* ```ts
|
|
117
|
-
* import { query } from
|
|
117
|
+
* import { app, query } from "@wasp.sh/spec"
|
|
118
118
|
* import { getTasks } from './src/queries' with { type: 'ref' }
|
|
119
119
|
*
|
|
120
|
-
*
|
|
120
|
+
* export default app({
|
|
121
|
+
* // ...
|
|
122
|
+
* spec: [
|
|
123
|
+
* query(getTasks, { entities: ["Foo"] }),
|
|
124
|
+
* ],
|
|
125
|
+
* })
|
|
121
126
|
* ```
|
|
122
127
|
*
|
|
123
|
-
* @param fn
|
|
128
|
+
* @param fn
|
|
129
|
+
*
|
|
130
|
+
* Reference to the Query's NodeJS implementation.
|
|
131
|
+
*
|
|
132
|
+
* See [the
|
|
133
|
+
* docs](https://wasp.sh/docs/data-model/operations/queries#implementing-queries)
|
|
134
|
+
* for details on the implementation and its context.
|
|
124
135
|
*
|
|
125
136
|
* {@include ./referenceImports.md}
|
|
126
|
-
*
|
|
137
|
+
*
|
|
138
|
+
* @param config
|
|
127
139
|
*
|
|
128
140
|
* @category Constructors
|
|
129
141
|
*/
|
|
@@ -144,16 +156,23 @@ type QueryConfig = Omit<Query, "kind" | "fn">;
|
|
|
144
156
|
*
|
|
145
157
|
* @example
|
|
146
158
|
* ```ts
|
|
147
|
-
* import { action } from
|
|
148
|
-
* import { createTask } from
|
|
149
|
-
*
|
|
150
|
-
*
|
|
159
|
+
* import { app, action } from "@wasp.sh/spec"
|
|
160
|
+
* import { createTask } from "./src/actions" with { type: "ref" }
|
|
161
|
+
* export default app({
|
|
162
|
+
* // ...
|
|
163
|
+
* spec: [
|
|
164
|
+
* action(createTask, { entities: ["Task"] }),
|
|
165
|
+
* ],
|
|
166
|
+
* })
|
|
151
167
|
* ```
|
|
152
168
|
*
|
|
153
|
-
* @param fn
|
|
169
|
+
* @param fn
|
|
170
|
+
* Reference to the Action's NodeJS implementation.
|
|
171
|
+
*
|
|
172
|
+
* See [the docs](https://wasp.sh/docs/data-model/operations/actions#implementing-actions) for details on the implementation and its context.
|
|
154
173
|
*
|
|
155
174
|
* {@include ./referenceImports.md}
|
|
156
|
-
* @param config
|
|
175
|
+
* @param config
|
|
157
176
|
*
|
|
158
177
|
* @category Constructors
|
|
159
178
|
*/
|
|
@@ -278,8 +297,10 @@ type JobConfig = Omit<Job, "kind" | "fn">;
|
|
|
278
297
|
* import { createTaskOverride } from './src/actions' with { type: 'ref' }
|
|
279
298
|
*
|
|
280
299
|
* crud('tasks', 'Task', {
|
|
281
|
-
* getAll: {},
|
|
300
|
+
* getAll: { isPublic: true },
|
|
301
|
+
* get: {},
|
|
282
302
|
* create: { overrideFn: createTaskOverride },
|
|
303
|
+
* update: {},
|
|
283
304
|
* })
|
|
284
305
|
* ```
|
|
285
306
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constructors.d.ts","sourceRoot":"","sources":["../../../../src/spec/publicApi/constructors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,GAAG,EACH,YAAY,EACZ,GAAG,EACH,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACN,MAAM,eAAe,CAAC;AASvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAE1C;AAED;;;GAGG;AACH,KAAK,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,CAE5E;AAED;;;GAGG;AACH,KAAK,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;AACnB;;;GAGG;AACH,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,KAAK,CAEP;AAED;;;GAGG;AACH,KAAK,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAElE
|
|
1
|
+
{"version":3,"file":"constructors.d.ts","sourceRoot":"","sources":["../../../../src/spec/publicApi/constructors.ts"],"names":[],"mappings":"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"}
|
|
@@ -110,16 +110,28 @@ page, config) {
|
|
|
110
110
|
*
|
|
111
111
|
* @example
|
|
112
112
|
* ```ts
|
|
113
|
-
* import { query } from
|
|
113
|
+
* import { app, query } from "@wasp.sh/spec"
|
|
114
114
|
* import { getTasks } from './src/queries' with { type: 'ref' }
|
|
115
115
|
*
|
|
116
|
-
*
|
|
116
|
+
* export default app({
|
|
117
|
+
* // ...
|
|
118
|
+
* spec: [
|
|
119
|
+
* query(getTasks, { entities: ["Foo"] }),
|
|
120
|
+
* ],
|
|
121
|
+
* })
|
|
117
122
|
* ```
|
|
118
123
|
*
|
|
119
|
-
* @param fn
|
|
124
|
+
* @param fn
|
|
125
|
+
*
|
|
126
|
+
* Reference to the Query's NodeJS implementation.
|
|
127
|
+
*
|
|
128
|
+
* See [the
|
|
129
|
+
* docs](https://wasp.sh/docs/data-model/operations/queries#implementing-queries)
|
|
130
|
+
* for details on the implementation and its context.
|
|
120
131
|
*
|
|
121
132
|
* {@include ./referenceImports.md}
|
|
122
|
-
*
|
|
133
|
+
*
|
|
134
|
+
* @param config
|
|
123
135
|
*
|
|
124
136
|
* @category Constructors
|
|
125
137
|
*/
|
|
@@ -137,16 +149,23 @@ export function query(fn, config) {
|
|
|
137
149
|
*
|
|
138
150
|
* @example
|
|
139
151
|
* ```ts
|
|
140
|
-
* import { action } from
|
|
141
|
-
* import { createTask } from
|
|
142
|
-
*
|
|
143
|
-
*
|
|
152
|
+
* import { app, action } from "@wasp.sh/spec"
|
|
153
|
+
* import { createTask } from "./src/actions" with { type: "ref" }
|
|
154
|
+
* export default app({
|
|
155
|
+
* // ...
|
|
156
|
+
* spec: [
|
|
157
|
+
* action(createTask, { entities: ["Task"] }),
|
|
158
|
+
* ],
|
|
159
|
+
* })
|
|
144
160
|
* ```
|
|
145
161
|
*
|
|
146
|
-
* @param fn
|
|
162
|
+
* @param fn
|
|
163
|
+
* Reference to the Action's NodeJS implementation.
|
|
164
|
+
*
|
|
165
|
+
* See [the docs](https://wasp.sh/docs/data-model/operations/actions#implementing-actions) for details on the implementation and its context.
|
|
147
166
|
*
|
|
148
167
|
* {@include ./referenceImports.md}
|
|
149
|
-
* @param config
|
|
168
|
+
* @param config
|
|
150
169
|
*
|
|
151
170
|
* @category Constructors
|
|
152
171
|
*/
|
|
@@ -259,8 +278,10 @@ export function job(fn, config) {
|
|
|
259
278
|
* import { createTaskOverride } from './src/actions' with { type: 'ref' }
|
|
260
279
|
*
|
|
261
280
|
* crud('tasks', 'Task', {
|
|
262
|
-
* getAll: {},
|
|
281
|
+
* getAll: { isPublic: true },
|
|
282
|
+
* get: {},
|
|
263
283
|
* create: { overrideFn: createTaskOverride },
|
|
284
|
+
* update: {},
|
|
264
285
|
* })
|
|
265
286
|
* ```
|
|
266
287
|
*
|
|
@@ -49,8 +49,9 @@ export interface App {
|
|
|
49
49
|
* and attributes must be camelCased (e.g. `httpEquiv` instead of
|
|
50
50
|
* `http-equiv`).
|
|
51
51
|
*
|
|
52
|
-
* Due to a React bug,
|
|
53
|
-
*
|
|
52
|
+
* Due to a [React bug](https://github.com/facebook/react/issues/36169),
|
|
53
|
+
* avoid `defer` on `<script>` tags because it can cause hydration
|
|
54
|
+
* warnings. Use `async` instead.
|
|
54
55
|
*/
|
|
55
56
|
head?: string[];
|
|
56
57
|
/** Configuration for authentication. Enables auth when set. */
|
|
@@ -79,7 +80,8 @@ export interface App {
|
|
|
79
80
|
*/
|
|
80
81
|
export interface Wasp {
|
|
81
82
|
/**
|
|
82
|
-
* The Wasp version this app is built for, as an npm-compatible
|
|
83
|
+
* The Wasp version this app is built for, as an npm-compatible
|
|
84
|
+
* [SemVer range](https://github.com/npm/node-semver#ranges)
|
|
83
85
|
* (e.g. `"^0.24.0"`).
|
|
84
86
|
*/
|
|
85
87
|
version: string;
|
|
@@ -92,17 +94,50 @@ export interface Wasp {
|
|
|
92
94
|
* If hooks are async, Wasp awaits them. All hooks receive `prisma` and `req`
|
|
93
95
|
* in their input. Hook return values are ignored except for
|
|
94
96
|
* {@link AuthHooks.onBeforeOAuthRedirect}, which can change the redirect URL.
|
|
97
|
+
*
|
|
98
|
+
* In TypeScript, you can type each hook implementation with its matching
|
|
99
|
+
* type from `wasp/server/auth` (e.g. `OnBeforeSignupHook`). See
|
|
100
|
+
* [Auth Hooks](https://wasp.sh/docs/auth/auth-hooks) for the full hook
|
|
101
|
+
* inputs and examples.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* import { app } from "@wasp.sh/spec"
|
|
106
|
+
*
|
|
107
|
+
* export default app({
|
|
108
|
+
* // ...
|
|
109
|
+
* auth: {
|
|
110
|
+
* userEntity: "User",
|
|
111
|
+
* methods: {
|
|
112
|
+
* usernameAndPassword: {}, // use this or email, not both
|
|
113
|
+
* google: {},
|
|
114
|
+
* gitHub: {},
|
|
115
|
+
* },
|
|
116
|
+
* onAuthFailedRedirectTo: "/login",
|
|
117
|
+
* },
|
|
118
|
+
* })
|
|
119
|
+
* ```
|
|
95
120
|
*/
|
|
96
121
|
export interface Auth extends AuthHooks {
|
|
97
122
|
/**
|
|
98
|
-
* Name of the Prisma model that represents the application user connected
|
|
99
|
-
*
|
|
123
|
+
* Name of the Prisma model that represents the application user connected to
|
|
124
|
+
* your business logic.
|
|
125
|
+
*
|
|
126
|
+
* The user entity needs to have an ID field that uniquely identifies each
|
|
127
|
+
* user. It can be of any name and type, but it needs to be marked with `@id`:
|
|
100
128
|
*
|
|
101
|
-
*
|
|
102
|
-
*
|
|
129
|
+
* ```prisma title="schema.prisma"
|
|
130
|
+
* model User {
|
|
131
|
+
* id Int @id @default(autoincrement())
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
134
|
+
*
|
|
135
|
+
* You can add any other fields you want to the user entity. Make sure to also
|
|
136
|
+
* define them in the `userSignupFields` field if they need to be set during
|
|
137
|
+
* the sign-up process.
|
|
103
138
|
*
|
|
104
|
-
* See [Accessing User Data](https://wasp.sh/docs/auth/entities) for
|
|
105
|
-
*
|
|
139
|
+
* See [Accessing User Data](https://wasp.sh/docs/auth/entities) for how the
|
|
140
|
+
* user entity connects to the rest of the auth system.
|
|
106
141
|
*/
|
|
107
142
|
userEntity: EntityName;
|
|
108
143
|
/** Enabled authentication methods. */
|
|
@@ -131,12 +166,16 @@ interface AuthHooks {
|
|
|
131
166
|
* Called before the user is created. Receives `providerId` plus the common
|
|
132
167
|
* hook input. Throw from this hook to reject a signup based on custom
|
|
133
168
|
* criteria.
|
|
169
|
+
*
|
|
170
|
+
* @category Hooks
|
|
134
171
|
*/
|
|
135
172
|
onBeforeSignup?: Reference<AnyFunction>;
|
|
136
173
|
/**
|
|
137
174
|
* Called after the user is created. Receives `providerId`, the created
|
|
138
175
|
* `user`, and, for social auth, `oauth` fields including tokens and the
|
|
139
176
|
* unique OAuth request ID.
|
|
177
|
+
*
|
|
178
|
+
* @category Hooks
|
|
140
179
|
*/
|
|
141
180
|
onAfterSignup?: Reference<AnyFunction>;
|
|
142
181
|
/** Called once, after the user verifies their email. Receives `email` and `user`. */
|
|
@@ -145,17 +184,23 @@ interface AuthHooks {
|
|
|
145
184
|
* Called before redirecting the user to the OAuth provider. Receives the
|
|
146
185
|
* generated `url` and `oauth.uniqueRequestId`. Return `{ url }` to override
|
|
147
186
|
* the redirect URL.
|
|
187
|
+
*
|
|
188
|
+
* @category Hooks
|
|
148
189
|
*/
|
|
149
190
|
onBeforeOAuthRedirect?: Reference<AnyFunction>;
|
|
150
191
|
/**
|
|
151
192
|
* Called before the user is logged in. Receives `providerId` and `user`.
|
|
152
193
|
* Throw from this hook to reject a login based on custom criteria.
|
|
194
|
+
*
|
|
195
|
+
* @category Hooks
|
|
153
196
|
*/
|
|
154
197
|
onBeforeLogin?: Reference<AnyFunction>;
|
|
155
198
|
/**
|
|
156
199
|
* Called after a successful login. Receives `providerId`, `user`, and, for
|
|
157
200
|
* social auth, `oauth` fields including tokens and the unique OAuth request
|
|
158
201
|
* ID.
|
|
202
|
+
*
|
|
203
|
+
* @category Hooks
|
|
159
204
|
*/
|
|
160
205
|
onAfterLogin?: Reference<AnyFunction>;
|
|
161
206
|
}
|
|
@@ -197,6 +242,25 @@ export interface ExternalAuthMethods extends Partial<Record<SocialAuthMethodName
|
|
|
197
242
|
type SocialAuthMethodName = "discord" | "google" | "gitHub" | "keycloak" | "microsoft" | "slack";
|
|
198
243
|
/**
|
|
199
244
|
* Username and password auth configuration.
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```ts
|
|
248
|
+
* import { app } from "@wasp.sh/spec"
|
|
249
|
+
* import { userSignupFields } from "./src/auth" with { type: "ref" }
|
|
250
|
+
*
|
|
251
|
+
* export default app({
|
|
252
|
+
* // ...
|
|
253
|
+
* auth: {
|
|
254
|
+
* userEntity: "User",
|
|
255
|
+
* methods: {
|
|
256
|
+
* usernameAndPassword: {
|
|
257
|
+
* userSignupFields,
|
|
258
|
+
* },
|
|
259
|
+
* },
|
|
260
|
+
* onAuthFailedRedirectTo: "/login",
|
|
261
|
+
* },
|
|
262
|
+
* })
|
|
263
|
+
* ```
|
|
200
264
|
*/
|
|
201
265
|
export interface UsernameAndPasswordConfig extends BaseAuthMethodConfig {
|
|
202
266
|
}
|
|
@@ -208,6 +272,26 @@ export interface UsernameAndPasswordConfig extends BaseAuthMethodConfig {
|
|
|
208
272
|
* on your {@link Auth.userEntity}. Each provider has provider-specific
|
|
209
273
|
* `userSignupFields` and `configFn` behavior, documented in the
|
|
210
274
|
* [Social Auth docs](https://wasp.sh/docs/auth/social-auth/overview).
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* ```ts
|
|
278
|
+
* import { app } from "@wasp.sh/spec"
|
|
279
|
+
* import { getConfig, userSignupFields } from "./src/auth/google" with { type: "ref" }
|
|
280
|
+
*
|
|
281
|
+
* export default app({
|
|
282
|
+
* // ...
|
|
283
|
+
* auth: {
|
|
284
|
+
* userEntity: "User",
|
|
285
|
+
* methods: {
|
|
286
|
+
* google: {
|
|
287
|
+
* configFn: getConfig,
|
|
288
|
+
* userSignupFields,
|
|
289
|
+
* },
|
|
290
|
+
* },
|
|
291
|
+
* onAuthFailedRedirectTo: "/login",
|
|
292
|
+
* },
|
|
293
|
+
* })
|
|
294
|
+
* ```
|
|
211
295
|
*/
|
|
212
296
|
export interface SocialAuthConfig extends BaseAuthMethodConfig {
|
|
213
297
|
/**
|
|
@@ -215,6 +299,15 @@ export interface SocialAuthConfig extends BaseAuthMethodConfig {
|
|
|
215
299
|
* etc.). Use this to request extra scopes, such as requesting email/profile
|
|
216
300
|
* data from providers that do not include it by default, or to customize the
|
|
217
301
|
* OAuth flow.
|
|
302
|
+
*
|
|
303
|
+
* @example
|
|
304
|
+
* ```ts
|
|
305
|
+
* export function getConfig() {
|
|
306
|
+
* return {
|
|
307
|
+
* scopes: ["openid", "profile", "email"],
|
|
308
|
+
* }
|
|
309
|
+
* }
|
|
310
|
+
* ```
|
|
218
311
|
*/
|
|
219
312
|
configFn?: Reference<AnyFunction>;
|
|
220
313
|
}
|
|
@@ -223,21 +316,51 @@ export interface SocialAuthConfig extends BaseAuthMethodConfig {
|
|
|
223
316
|
*
|
|
224
317
|
* See the [Email auth docs](https://wasp.sh/docs/auth/email) for the full
|
|
225
318
|
* signup, verification, and password reset flows.
|
|
319
|
+
*
|
|
320
|
+
* @example
|
|
321
|
+
* ```ts
|
|
322
|
+
* import { app } from "@wasp.sh/spec"
|
|
323
|
+
* import { userSignupFields } from "./src/auth" with { type: "ref" }
|
|
324
|
+
* import {
|
|
325
|
+
* getVerificationEmailContent,
|
|
326
|
+
* getPasswordResetEmailContent,
|
|
327
|
+
* } from "./src/auth/email" with { type: "ref" }
|
|
328
|
+
*
|
|
329
|
+
* export default app({
|
|
330
|
+
* // ...
|
|
331
|
+
* auth: {
|
|
332
|
+
* userEntity: "User",
|
|
333
|
+
* methods: {
|
|
334
|
+
* email: {
|
|
335
|
+
* userSignupFields,
|
|
336
|
+
* fromField: {
|
|
337
|
+
* name: "My App",
|
|
338
|
+
* email: "hello@itsme.com",
|
|
339
|
+
* },
|
|
340
|
+
* emailVerification: {
|
|
341
|
+
* clientRoute: "EmailVerificationRoute",
|
|
342
|
+
* getEmailContentFn: getVerificationEmailContent,
|
|
343
|
+
* },
|
|
344
|
+
* passwordReset: {
|
|
345
|
+
* clientRoute: "PasswordResetRoute",
|
|
346
|
+
* getEmailContentFn: getPasswordResetEmailContent,
|
|
347
|
+
* },
|
|
348
|
+
* },
|
|
349
|
+
* },
|
|
350
|
+
* onAuthFailedRedirectTo: "/login",
|
|
351
|
+
* },
|
|
352
|
+
* })
|
|
353
|
+
* ```
|
|
226
354
|
*/
|
|
227
355
|
export interface EmailAuthConfig extends BaseAuthMethodConfig {
|
|
228
356
|
/** Sender identity used for verification and password reset emails. */
|
|
229
357
|
fromField: EmailFromField;
|
|
230
358
|
/**
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
* Its `clientRoute` should handle the verification link sent to the user.
|
|
359
|
+
* An object that specifies the details of the e-mail verification process.
|
|
234
360
|
*/
|
|
235
361
|
emailVerification: EmailFlowConfig;
|
|
236
362
|
/**
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
* Its `clientRoute` should handle the password reset link and the new
|
|
240
|
-
* password submitted by the user.
|
|
363
|
+
* An object that specifies the password reset process.
|
|
241
364
|
*/
|
|
242
365
|
passwordReset: EmailFlowConfig;
|
|
243
366
|
}
|
|
@@ -254,6 +377,21 @@ interface BaseAuthMethodConfig {
|
|
|
254
377
|
* Wasp's auth backend.
|
|
255
378
|
*
|
|
256
379
|
* See [Signup Fields Customization](https://wasp.sh/docs/auth/overview#signup-fields-customization).
|
|
380
|
+
*
|
|
381
|
+
* @example
|
|
382
|
+
* ```ts
|
|
383
|
+
* import { defineUserSignupFields } from 'wasp/server/auth'
|
|
384
|
+
*
|
|
385
|
+
* export const userSignupFields = defineUserSignupFields({
|
|
386
|
+
* address: (data) => {
|
|
387
|
+
* if (!data.address) {
|
|
388
|
+
* throw new Error('Address is required')
|
|
389
|
+
* }
|
|
390
|
+
* return data.address
|
|
391
|
+
* },
|
|
392
|
+
* phone: (data) => data.phone,
|
|
393
|
+
* })
|
|
394
|
+
* ```
|
|
257
395
|
*/
|
|
258
396
|
userSignupFields?: Reference<AnyObject>;
|
|
259
397
|
}
|
|
@@ -267,14 +405,42 @@ export interface EmailFlowConfig {
|
|
|
267
405
|
* `{ verificationLink }`, and password reset email functions receive
|
|
268
406
|
* `{ passwordResetLink }`. If omitted, Wasp uses a built-in default
|
|
269
407
|
* template.
|
|
408
|
+
*
|
|
409
|
+
* In TypeScript, you can type the function with the
|
|
410
|
+
* `GetVerificationEmailContentFn` or `GetPasswordResetEmailContentFn` type
|
|
411
|
+
* from `wasp/server/auth`.
|
|
412
|
+
*
|
|
413
|
+
* @example
|
|
414
|
+
* ```ts title="src/email.ts"
|
|
415
|
+
* import { GetVerificationEmailContentFn } from "wasp/server/auth"
|
|
416
|
+
*
|
|
417
|
+
* export const getVerificationEmailContent: GetVerificationEmailContentFn = ({
|
|
418
|
+
* verificationLink,
|
|
419
|
+
* }) => ({
|
|
420
|
+
* subject: "Verify your email",
|
|
421
|
+
* text: `Click the link below to verify your email: ${verificationLink}`,
|
|
422
|
+
* html: `
|
|
423
|
+
* <p>Click the link below to verify your email</p>
|
|
424
|
+
* <a href="${verificationLink}">Verify email</a>
|
|
425
|
+
* `,
|
|
426
|
+
* })
|
|
427
|
+
* ```
|
|
270
428
|
*/
|
|
271
429
|
getEmailContentFn?: Reference<AnyFunction>;
|
|
272
430
|
/**
|
|
273
|
-
* Name of the route that handles the link sent in the email
|
|
274
|
-
*
|
|
431
|
+
* Name of the route that handles the link sent in the email (e.g.
|
|
432
|
+
* `"EmailVerificationRoute"` or `"PasswordResetRoute"`).
|
|
275
433
|
*
|
|
276
434
|
* The route must be defined in {@link App.spec} with the {@link route}
|
|
277
435
|
* constructor.
|
|
436
|
+
*
|
|
437
|
+
* This route should handle the process of taking a token from the URL and
|
|
438
|
+
* sending it to the server to verify the e-mail address. You can use our
|
|
439
|
+
* [`verifyEmail`
|
|
440
|
+
* action](https://wasp.sh/docs/auth/email/create-your-own-ui#verifyemail) and
|
|
441
|
+
* [`resetPassword`
|
|
442
|
+
* action](https://wasp.sh/docs/auth/email/create-your-own-ui#resetpassword)
|
|
443
|
+
* helpers for that.
|
|
278
444
|
*/
|
|
279
445
|
clientRoute: string;
|
|
280
446
|
}
|
|
@@ -283,6 +449,20 @@ export interface EmailFlowConfig {
|
|
|
283
449
|
*
|
|
284
450
|
* See [Server Config](https://wasp.sh/docs/project/server-config) for usage
|
|
285
451
|
* details.
|
|
452
|
+
*
|
|
453
|
+
* @example
|
|
454
|
+
* ```ts
|
|
455
|
+
* import { app } from "@wasp.sh/spec"
|
|
456
|
+
* import { myMiddlewareConfigFn, mySetupFunction } from "./src/myServerSetupCode" with { type: "ref" }
|
|
457
|
+
*
|
|
458
|
+
* export default app({
|
|
459
|
+
* // ...
|
|
460
|
+
* server: {
|
|
461
|
+
* setupFn: mySetupFunction,
|
|
462
|
+
* middlewareConfigFn: myMiddlewareConfigFn,
|
|
463
|
+
* },
|
|
464
|
+
* })
|
|
465
|
+
* ```
|
|
286
466
|
*/
|
|
287
467
|
export interface Server {
|
|
288
468
|
/**
|
|
@@ -290,6 +470,18 @@ export interface Server {
|
|
|
290
470
|
* server accepts requests. Receives a context containing the Express `app`
|
|
291
471
|
* and underlying `http.Server`, so you can register custom routes, set up
|
|
292
472
|
* additional databases or WebSockets, or kick off scheduled jobs.
|
|
473
|
+
*
|
|
474
|
+
* In TypeScript, you can type the function with the `ServerSetupFn` type
|
|
475
|
+
* from `wasp/server`.
|
|
476
|
+
*
|
|
477
|
+
* @example
|
|
478
|
+
* ```ts
|
|
479
|
+
* import { type ServerSetupFn } from "wasp/server"
|
|
480
|
+
*
|
|
481
|
+
* export const mySetupFunction: ServerSetupFn = async () => {
|
|
482
|
+
* await setUpSomeResource()
|
|
483
|
+
* }
|
|
484
|
+
* ```
|
|
293
485
|
*/
|
|
294
486
|
setupFn?: Reference<AnyFunction>;
|
|
295
487
|
/**
|
|
@@ -302,7 +494,9 @@ export interface Server {
|
|
|
302
494
|
/**
|
|
303
495
|
* Zod schema used to validate user-defined server environment variables on
|
|
304
496
|
* startup. Wasp merges it with built-in validation for Wasp-defined env vars
|
|
305
|
-
* when validating `process.env`.
|
|
497
|
+
* when validating `process.env`. Define the schema with
|
|
498
|
+
* `defineEnvValidationSchema` from `wasp/env` to make sure it is
|
|
499
|
+
* type-checked.
|
|
306
500
|
*
|
|
307
501
|
* {@include ./referenceImports.md}
|
|
308
502
|
*
|
|
@@ -321,6 +515,22 @@ export interface Server {
|
|
|
321
515
|
*
|
|
322
516
|
* See [Client Config](https://wasp.sh/docs/project/client-config) for usage
|
|
323
517
|
* details.
|
|
518
|
+
*
|
|
519
|
+
* @example
|
|
520
|
+
* ```ts
|
|
521
|
+
* import { app } from "@wasp.sh/spec"
|
|
522
|
+
* import Root from "./src/Root" with { type: "ref" }
|
|
523
|
+
* import mySetupFunction from "./src/myClientSetupCode" with { type: "ref" }
|
|
524
|
+
*
|
|
525
|
+
* export default app({
|
|
526
|
+
* // ...
|
|
527
|
+
* client: {
|
|
528
|
+
* rootComponent: Root,
|
|
529
|
+
* setupFn: mySetupFunction,
|
|
530
|
+
* baseDir: "/my-app",
|
|
531
|
+
* },
|
|
532
|
+
* })
|
|
533
|
+
* ```
|
|
324
534
|
*/
|
|
325
535
|
export interface Client {
|
|
326
536
|
/**
|
|
@@ -328,6 +538,38 @@ export interface Client {
|
|
|
328
538
|
* render `Outlet` from `react-router` to show the current page.
|
|
329
539
|
*
|
|
330
540
|
* Useful for layouts, providers (Redux, theme, etc.), and global UI.
|
|
541
|
+
*
|
|
542
|
+
* @example
|
|
543
|
+
* ```tsx
|
|
544
|
+
* import { Outlet } from "react-router"
|
|
545
|
+
* import store from "./store"
|
|
546
|
+
* import { Provider } from "react-redux"
|
|
547
|
+
*
|
|
548
|
+
* export default function Root() {
|
|
549
|
+
* return (
|
|
550
|
+
* <Provider store={store}>
|
|
551
|
+
* <Layout />
|
|
552
|
+
* </Provider>
|
|
553
|
+
* )
|
|
554
|
+
* }
|
|
555
|
+
*
|
|
556
|
+
* function Layout() {
|
|
557
|
+
* return (
|
|
558
|
+
* <div>
|
|
559
|
+
* <header>
|
|
560
|
+
* <h1>My App</h1>
|
|
561
|
+
* </header>
|
|
562
|
+
*
|
|
563
|
+
* {/* The current page will be rendered here *\/}
|
|
564
|
+
* <Outlet />
|
|
565
|
+
*
|
|
566
|
+
* <footer>
|
|
567
|
+
* <p>My App footer</p>
|
|
568
|
+
* </footer>
|
|
569
|
+
* </div>
|
|
570
|
+
* )
|
|
571
|
+
* }
|
|
572
|
+
* ```
|
|
331
573
|
*/
|
|
332
574
|
rootComponent?: Reference<AnyFunction>;
|
|
333
575
|
/**
|
|
@@ -335,21 +577,39 @@ export interface Client {
|
|
|
335
577
|
* awaits it before rendering the app. It receives no arguments, and its
|
|
336
578
|
* return value is ignored. Use it for one-time client-side setup, such as
|
|
337
579
|
* configuring the query client or starting client-side periodic jobs.
|
|
580
|
+
*
|
|
581
|
+
* @example
|
|
582
|
+
* ```ts
|
|
583
|
+
* export default async function mySetupFunction(): Promise<void> {
|
|
584
|
+
* // Run some code
|
|
585
|
+
* }
|
|
586
|
+
* ```
|
|
338
587
|
*/
|
|
339
588
|
setupFn?: Reference<AnyFunction>;
|
|
340
589
|
/**
|
|
341
|
-
* Subpath the client app is served from (e.g. `"/my-app"`).
|
|
342
590
|
*
|
|
343
|
-
*
|
|
344
|
-
*
|
|
591
|
+
* If you need to serve the client from a subdirectory, you can use the
|
|
592
|
+
* `baseDir` option.
|
|
593
|
+
*
|
|
594
|
+
* If you set `baseDir` to `/my-app` for example, that will make Wasp set the
|
|
595
|
+
* `basename` prop of the `Router` to `/my-app`. It will also set the `base`
|
|
596
|
+
* option of the Vite config to `/my-app`.
|
|
597
|
+
*
|
|
598
|
+
* This means that if you serve your app from `https://example.com/my-app`,
|
|
599
|
+
* the router will work correctly, and all the assets will be served from
|
|
345
600
|
* `https://example.com/my-app`.
|
|
601
|
+
*
|
|
602
|
+
* Check the [Base directory
|
|
603
|
+
* docs](https://wasp.sh/docs/project/client-config#base-directory) for
|
|
604
|
+
* important details.
|
|
346
605
|
*/
|
|
347
606
|
baseDir?: `/${string}`;
|
|
348
607
|
/**
|
|
349
608
|
* Zod schema used to validate user-defined client environment variables at
|
|
350
609
|
* build time. Wasp merges it with built-in validation for Wasp-defined env
|
|
351
610
|
* vars when validating `import.meta.env`. Client env vars must be prefixed
|
|
352
|
-
* with `REACT_APP_`.
|
|
611
|
+
* with `REACT_APP_`. Define the schema with `defineEnvValidationSchema`
|
|
612
|
+
* from `wasp/env` to make sure it is type-checked.
|
|
353
613
|
*
|
|
354
614
|
* {@include ./referenceImports.md}
|
|
355
615
|
*
|
|
@@ -368,6 +628,21 @@ export interface Client {
|
|
|
368
628
|
*
|
|
369
629
|
* See [Databases](https://wasp.sh/docs/data-model/databases) for seeding and
|
|
370
630
|
* Prisma client customization.
|
|
631
|
+
*
|
|
632
|
+
* @example
|
|
633
|
+
* ```ts
|
|
634
|
+
* import { app } from "@wasp.sh/spec"
|
|
635
|
+
* import devSeed from "./src/dbSeeds" with { type: "ref" }
|
|
636
|
+
* import { setUpPrisma } from "./src/prisma" with { type: "ref" }
|
|
637
|
+
*
|
|
638
|
+
* export default app({
|
|
639
|
+
* // ...
|
|
640
|
+
* db: {
|
|
641
|
+
* seeds: [devSeed],
|
|
642
|
+
* prismaSetupFn: setUpPrisma,
|
|
643
|
+
* },
|
|
644
|
+
* })
|
|
645
|
+
* ```
|
|
371
646
|
*/
|
|
372
647
|
export interface Db {
|
|
373
648
|
/**
|
|
@@ -386,6 +661,19 @@ export interface Db {
|
|
|
386
661
|
* See Prisma's [logging](https://www.prisma.io/docs/orm/prisma-client/observability-and-logging/logging)
|
|
387
662
|
* and [client extensions](https://www.prisma.io/docs/orm/prisma-client/client-extensions)
|
|
388
663
|
* docs.
|
|
664
|
+
*
|
|
665
|
+
* @example
|
|
666
|
+
* ```ts
|
|
667
|
+
* import { PrismaClient } from "@prisma/client"
|
|
668
|
+
*
|
|
669
|
+
* export const setUpPrisma = () => {
|
|
670
|
+
* const prisma = new PrismaClient({
|
|
671
|
+
* log: ["query", "info", "warn", "error"],
|
|
672
|
+
* })
|
|
673
|
+
*
|
|
674
|
+
* return prisma
|
|
675
|
+
* }
|
|
676
|
+
* ```
|
|
389
677
|
*/
|
|
390
678
|
prismaSetupFn?: Reference<AnyFunction>;
|
|
391
679
|
}
|
|
@@ -396,12 +684,29 @@ export interface Db {
|
|
|
396
684
|
* available for sending arbitrary emails via `wasp/server/email`.
|
|
397
685
|
*
|
|
398
686
|
* See [Sending Emails](https://wasp.sh/docs/advanced/email).
|
|
687
|
+
*
|
|
688
|
+
* @example
|
|
689
|
+
* ```ts
|
|
690
|
+
* import { app } from "@wasp.sh/spec"
|
|
691
|
+
*
|
|
692
|
+
* export default app({
|
|
693
|
+
* // ...
|
|
694
|
+
* emailSender: {
|
|
695
|
+
* provider: "SMTP",
|
|
696
|
+
* defaultFrom: {
|
|
697
|
+
* name: "Example",
|
|
698
|
+
* email: "hello@itsme.com",
|
|
699
|
+
* },
|
|
700
|
+
* },
|
|
701
|
+
* })
|
|
702
|
+
* ```
|
|
399
703
|
*/
|
|
400
704
|
export interface EmailSender {
|
|
401
705
|
/** Provider Wasp uses to deliver outgoing emails. */
|
|
402
706
|
provider: EmailSenderProviderName;
|
|
403
707
|
/**
|
|
404
|
-
*
|
|
708
|
+
* The default sender's details. If you set this field, you don't need to
|
|
709
|
+
* provide the `from` field when sending an email.
|
|
405
710
|
*/
|
|
406
711
|
defaultFrom?: EmailFromField;
|
|
407
712
|
}
|
|
@@ -426,6 +731,20 @@ export interface EmailFromField {
|
|
|
426
731
|
*
|
|
427
732
|
* See [Web Sockets](https://wasp.sh/docs/advanced/web-sockets) for handler
|
|
428
733
|
* shape and client-side usage.
|
|
734
|
+
*
|
|
735
|
+
* @example
|
|
736
|
+
* ```ts
|
|
737
|
+
* import { app } from "@wasp.sh/spec"
|
|
738
|
+
* import { webSocketFn } from "./src/webSocket" with { type: "ref" }
|
|
739
|
+
*
|
|
740
|
+
* export default app({
|
|
741
|
+
* // ...
|
|
742
|
+
* webSocket: {
|
|
743
|
+
* fn: webSocketFn,
|
|
744
|
+
* autoConnect: true,
|
|
745
|
+
* },
|
|
746
|
+
* })
|
|
747
|
+
* ```
|
|
429
748
|
*/
|
|
430
749
|
export interface WebSocket {
|
|
431
750
|
/**
|
|
@@ -433,6 +752,8 @@ export interface WebSocket {
|
|
|
433
752
|
* server start with the Socket.IO server instance and a context containing
|
|
434
753
|
* all app entities. If a connected socket is authenticated, Wasp stores the
|
|
435
754
|
* user on `socket.data.user`.
|
|
755
|
+
*
|
|
756
|
+
* See [the `websocketFn` docs](https://wasp.sh/docs/advanced/web-sockets#websocketfn).
|
|
436
757
|
*/
|
|
437
758
|
fn: Reference<AnyFunction>;
|
|
438
759
|
/**
|
|
@@ -457,10 +778,15 @@ export interface WebSocket {
|
|
|
457
778
|
* @example
|
|
458
779
|
* Nested arrays let you compose a spec from separate sub-specs:
|
|
459
780
|
* ```ts
|
|
781
|
+
* import { app } from "@wasp.sh/spec"
|
|
782
|
+
*
|
|
460
783
|
* const authSpec: Spec = [signupRoute, loginRoute];
|
|
461
784
|
* const tasksSpec: Spec = [tasksRoute, getTasks, createTask];
|
|
462
785
|
*
|
|
463
|
-
*
|
|
786
|
+
* export default app({
|
|
787
|
+
* // ...
|
|
788
|
+
* spec: [authSpec, tasksSpec],
|
|
789
|
+
* });
|
|
464
790
|
* ```
|
|
465
791
|
*/
|
|
466
792
|
export type Spec = SpecElement | Spec[];
|
|
@@ -516,11 +842,26 @@ export interface Route extends BaseSpecElement<"route"> {
|
|
|
516
842
|
* If `true`, Wasp renders this page to static HTML at build time. Useful
|
|
517
843
|
* for SEO and AI crawlers.
|
|
518
844
|
*
|
|
519
|
-
* Only works on static paths
|
|
520
|
-
* {@link Page.authRequired}. See
|
|
845
|
+
* Only works on fully static paths (no `:paramName`, `*`, or `?` segments)
|
|
846
|
+
* and cannot be combined with {@link Page.authRequired}. See
|
|
521
847
|
* [Prerendering](https://wasp.sh/docs/advanced/prerendering).
|
|
522
848
|
*
|
|
523
849
|
* @default false
|
|
850
|
+
*
|
|
851
|
+
* @example
|
|
852
|
+
* ```ts
|
|
853
|
+
* import { app, page, route } from "@wasp.sh/spec"
|
|
854
|
+
* import { SomePage } from "./src/SomePage" with { type: "ref" }
|
|
855
|
+
*
|
|
856
|
+
* export default app({
|
|
857
|
+
* // ...
|
|
858
|
+
* spec: [
|
|
859
|
+
* route("NameRoute", "/some-path", page(SomePage), {
|
|
860
|
+
* prerender: true,
|
|
861
|
+
* }),
|
|
862
|
+
* ],
|
|
863
|
+
* })
|
|
864
|
+
* ```
|
|
524
865
|
*/
|
|
525
866
|
prerender?: boolean;
|
|
526
867
|
/**
|
|
@@ -545,25 +886,24 @@ export interface Route extends BaseSpecElement<"route"> {
|
|
|
545
886
|
*/
|
|
546
887
|
export interface Query extends BaseSpecElement<"query"> {
|
|
547
888
|
/**
|
|
548
|
-
* Reference to the Query's NodeJS implementation.
|
|
549
|
-
*
|
|
550
|
-
*
|
|
551
|
-
*
|
|
889
|
+
* Reference to the Query's NodeJS implementation.
|
|
890
|
+
*
|
|
891
|
+
* See [the
|
|
892
|
+
* docs](https://wasp.sh/docs/data-model/operations/queries#implementing-queries)
|
|
893
|
+
* for details on the implementation and its context.
|
|
552
894
|
*/
|
|
553
895
|
fn: Reference<AnyFunction>;
|
|
554
896
|
/**
|
|
555
|
-
*
|
|
556
|
-
* one into the query's `context.entities`, and uses the list to invalidate
|
|
557
|
-
* the client-side cache when related actions run.
|
|
897
|
+
* A list of entities you wish to use inside your Query.
|
|
558
898
|
*
|
|
559
899
|
* See [Using Entities in Queries](https://wasp.sh/docs/data-model/operations/queries#using-entities-in-queries).
|
|
560
900
|
*/
|
|
561
901
|
entities?: EntityName[];
|
|
562
902
|
/**
|
|
563
|
-
*
|
|
564
|
-
*
|
|
903
|
+
* Whether this Query requires auth. If your app has auth enabled, this
|
|
904
|
+
* defaults to `true`.
|
|
565
905
|
*
|
|
566
|
-
*
|
|
906
|
+
* Only available if your app has auth enabled.
|
|
567
907
|
*/
|
|
568
908
|
auth?: boolean;
|
|
569
909
|
}
|
|
@@ -578,25 +918,24 @@ export interface Query extends BaseSpecElement<"query"> {
|
|
|
578
918
|
*/
|
|
579
919
|
export interface Action extends BaseSpecElement<"action"> {
|
|
580
920
|
/**
|
|
581
|
-
* Reference to the Action's NodeJS implementation.
|
|
582
|
-
*
|
|
583
|
-
*
|
|
584
|
-
*
|
|
921
|
+
* Reference to the Action's NodeJS implementation.
|
|
922
|
+
*
|
|
923
|
+
* See [the
|
|
924
|
+
* docs](https://wasp.sh/docs/data-model/operations/actions#implementing-actions)
|
|
925
|
+
* for details on the implementation and its context.
|
|
585
926
|
*/
|
|
586
927
|
fn: Reference<AnyFunction>;
|
|
587
928
|
/**
|
|
588
|
-
*
|
|
589
|
-
* one into the action's `context.entities`, and uses the list to
|
|
590
|
-
* invalidate the related query caches on the client.
|
|
929
|
+
* A list of entities you wish to use inside your Action.
|
|
591
930
|
*
|
|
592
931
|
* See [Using Entities in Actions](https://wasp.sh/docs/data-model/operations/actions#using-entities-in-actions).
|
|
593
932
|
*/
|
|
594
933
|
entities?: EntityName[];
|
|
595
934
|
/**
|
|
596
|
-
*
|
|
597
|
-
*
|
|
935
|
+
* Whether this Action requires auth. If your app has auth enabled, this
|
|
936
|
+
* defaults to `true`.
|
|
598
937
|
*
|
|
599
|
-
*
|
|
938
|
+
* Only available if your app has auth enabled.
|
|
600
939
|
*/
|
|
601
940
|
auth?: boolean;
|
|
602
941
|
}
|
|
@@ -674,9 +1013,15 @@ export interface Job extends BaseSpecElement<"job"> {
|
|
|
674
1013
|
/**
|
|
675
1014
|
* Reference to the job's NodeJS implementation. It receives the submitted
|
|
676
1015
|
* args and a context containing the declared entities.
|
|
1016
|
+
*
|
|
1017
|
+
* See [Jobs documentation](https://wasp.sh/docs/advanced/jobs#worker-api) for more details.
|
|
677
1018
|
*/
|
|
678
1019
|
fn: Reference<AnyFunction>;
|
|
679
|
-
/**
|
|
1020
|
+
/**
|
|
1021
|
+
* Executor backing this job.
|
|
1022
|
+
*
|
|
1023
|
+
* Currently only `"PgBoss"` is available.
|
|
1024
|
+
*/
|
|
680
1025
|
executor: JobExecutor;
|
|
681
1026
|
/** Cron schedule that runs the job automatically. */
|
|
682
1027
|
schedule?: Schedule;
|
|
@@ -701,9 +1046,10 @@ export interface Job extends BaseSpecElement<"job"> {
|
|
|
701
1046
|
performExecutorOptions?: ExecutorOptions;
|
|
702
1047
|
}
|
|
703
1048
|
/**
|
|
704
|
-
* Supported job executors.
|
|
705
|
-
*
|
|
706
|
-
*
|
|
1049
|
+
* Supported job executors.
|
|
1050
|
+
*
|
|
1051
|
+
* Currently only `"PgBoss"` is available, which stores jobs in the app's
|
|
1052
|
+
* PostgreSQL database via [pg-boss](https://github.com/timgit/pg-boss).
|
|
707
1053
|
*/
|
|
708
1054
|
export type JobExecutor = "PgBoss";
|
|
709
1055
|
/**
|
|
@@ -759,19 +1105,43 @@ export interface Crud extends BaseSpecElement<"crud"> {
|
|
|
759
1105
|
* Mapping of CRUD operations to their options.
|
|
760
1106
|
*
|
|
761
1107
|
* Each key enables the matching operation; an empty object enables it with
|
|
762
|
-
* Wasp's defaults.
|
|
763
|
-
*
|
|
764
|
-
*
|
|
1108
|
+
* Wasp's defaults.
|
|
1109
|
+
*
|
|
1110
|
+
* The default implementations map directly to Prisma calls on the entity, and
|
|
1111
|
+
* use the field marked with `@id` in the Prisma schema as the entity ID. Unless
|
|
1112
|
+
* an operation is marked with {@link CrudOperationOptions.isPublic}, Wasp
|
|
1113
|
+
* checks that an authenticated user is making the request.
|
|
765
1114
|
*
|
|
766
1115
|
* CRUD operations are implemented with Wasp queries and actions. See
|
|
767
1116
|
* [Operations](https://wasp.sh/docs/data-model/operations/overview).
|
|
768
1117
|
*/
|
|
769
|
-
export interface CrudOperations
|
|
1118
|
+
export interface CrudOperations {
|
|
1119
|
+
/**
|
|
1120
|
+
* @default
|
|
1121
|
+
* `Entity.findUnique({ where: { id: args.id } })`
|
|
1122
|
+
*/
|
|
1123
|
+
get?: CrudOperationOptions;
|
|
1124
|
+
/**
|
|
1125
|
+
* @default
|
|
1126
|
+
* `Entity.findMany()`
|
|
1127
|
+
*/
|
|
1128
|
+
getAll?: CrudOperationOptions;
|
|
1129
|
+
/**
|
|
1130
|
+
* @default
|
|
1131
|
+
* `Entity.create({ data: args.data })`
|
|
1132
|
+
*/
|
|
1133
|
+
create?: CrudOperationOptions;
|
|
1134
|
+
/**
|
|
1135
|
+
* @default
|
|
1136
|
+
* `Entity.update({ where: { id: args.id }, data: args.data })`
|
|
1137
|
+
*/
|
|
1138
|
+
update?: CrudOperationOptions;
|
|
1139
|
+
/**
|
|
1140
|
+
* @default
|
|
1141
|
+
* `Entity.delete({ where: { id: args.id } })`
|
|
1142
|
+
*/
|
|
1143
|
+
delete?: CrudOperationOptions;
|
|
770
1144
|
}
|
|
771
|
-
/**
|
|
772
|
-
* Operations a {@link Crud} can generate.
|
|
773
|
-
*/
|
|
774
|
-
export type CrudOperation = "get" | "getAll" | "create" | "update" | "delete";
|
|
775
1145
|
/**
|
|
776
1146
|
* Configuration for a single CRUD operation.
|
|
777
1147
|
*/
|
|
@@ -793,7 +1163,10 @@ export interface CrudOperationOptions {
|
|
|
793
1163
|
*
|
|
794
1164
|
* The override receives the caller-provided `args` payload and a
|
|
795
1165
|
* Wasp-provided `context` containing the current user and the entity being
|
|
796
|
-
* operated on.
|
|
1166
|
+
* operated on.
|
|
1167
|
+
*
|
|
1168
|
+
* **Important**
|
|
1169
|
+
* Use an override to validate or filter input before saving it;
|
|
797
1170
|
* the default `create` and `update` implementations pass client-sent data to
|
|
798
1171
|
* Prisma.
|
|
799
1172
|
*/
|
|
@@ -818,10 +1191,15 @@ type Entities = FromRegister<"entities", {}>;
|
|
|
818
1191
|
*
|
|
819
1192
|
* @example
|
|
820
1193
|
* ```ts
|
|
821
|
-
* import { query } from "@wasp.sh/spec"
|
|
1194
|
+
* import { app, query } from "@wasp.sh/spec"
|
|
822
1195
|
* import { getTasks } from "./src/queries" with { type: "ref" }
|
|
823
1196
|
*
|
|
824
|
-
*
|
|
1197
|
+
* export default app({
|
|
1198
|
+
* // ...
|
|
1199
|
+
* spec: [
|
|
1200
|
+
* query(getTasks, { entities: ["Task"] }),
|
|
1201
|
+
* ],
|
|
1202
|
+
* })
|
|
825
1203
|
* ```
|
|
826
1204
|
*/
|
|
827
1205
|
export type Reference<AppValue> = RefObject | AppValue;
|
|
@@ -862,6 +1240,8 @@ interface BaseSpecElement<Kind extends string> {
|
|
|
862
1240
|
* schemas via their documented library-author marker. See
|
|
863
1241
|
* https://zod.dev/library-authors.
|
|
864
1242
|
*
|
|
1243
|
+
* @inline
|
|
1244
|
+
*
|
|
865
1245
|
* @category References
|
|
866
1246
|
*/
|
|
867
1247
|
export type ZodSchema = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waspSpec.d.ts","sourceRoot":"","sources":["../../../../src/spec/publicApi/waspSpec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,GAAG;IAClB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,IAAI,CAAC;IACX;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd
|
|
1
|
+
{"version":3,"file":"waspSpec.d.ts","sourceRoot":"","sources":["../../../../src/spec/publicApi/waspSpec.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,GAAG;IAClB;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,EAAE,IAAI,CAAC;IACX;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,gDAAgD;IAChD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qDAAqD;IACrD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;OAMG;IACH,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,WAAW,IAAK,SAAQ,SAAS;IACrC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,EAAE,UAAU,CAAC;IACvB,sCAAsC;IACtC,OAAO,EAAE,WAAW,CAAC;IACrB;;;;;;OAMG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAC/B;;;;;;;;OAQG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,UAAU,SAAS;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9C;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC/C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CACvC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAC1D,mBAAmB,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0CAA0C;IAC1C,mBAAmB,EAAE,yBAAyB,CAAC;IAC/C;;;OAGG;IACH,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBACf,SAAQ,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;CAAG;AAEpE;;GAEG;AACH,KAAK,oBAAoB,GACrB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,WAAW,GACX,OAAO,CAAC;AAEZ;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;CAAG;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,uEAAuE;IACvE,SAAS,EAAE,cAAc,CAAC;IAC1B;;OAEG;IACH,iBAAiB,EAAE,eAAe,CAAC;IACnC;;OAEG;IACH,aAAa,EAAE,eAAe,CAAC;CAChC;AAED,UAAU,oBAAoB;IAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,gBAAgB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,iBAAiB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C;;;;;;;;;;;;;;OAcG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACjC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,MAAM;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IACjC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;IACvB;;;;;;;;;;;;;;;;OAgBG;IACH,mBAAmB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC5C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,EAAE;IACjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;IACjC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,QAAQ,EAAE,uBAAuB,CAAC;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;OAOG;IACH,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3B;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,IAAI,GAAG,WAAW,GAAG,IAAI,EAAE,CAAC;AAExC;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB,IAAI,GACJ,KAAK,GACL,KAAK,GACL,MAAM,GACN,GAAG,GACH,YAAY,GACZ,GAAG,GACH,IAAI,CAAC;AAET;;;;;;GAMG;AACH,MAAM,WAAW,IAAK,SAAQ,eAAe,CAAC,MAAM,CAAC;IACnD,8CAA8C;IAC9C,SAAS,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,KAAM,SAAQ,eAAe,CAAC,OAAO,CAAC;IACrD,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,KAAM,SAAQ,eAAe,CAAC,OAAO,CAAC;IACrD;;;;;;OAMG;IACH,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,MAAO,SAAQ,eAAe,CAAC,QAAQ,CAAC;IACvD;;;;;;OAMG;IACH,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,GAAI,SAAQ,eAAe,CAAC,KAAK,CAAC;IACjD,6CAA6C;IAC7C,MAAM,EAAE,UAAU,CAAC;IACnB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IACnE,6EAA6E;IAC7E,kBAAkB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,WAAW,GAAI,SAAQ,eAAe,CAAC,KAAK,CAAC;IACjD;;;;;OAKG;IACH,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,WAAW,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB;;;;;;;;;OASG;IACH,sBAAsB,CAAC,EAAE,eAAe,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;;;OAQG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAK,SAAQ,eAAe,CAAC,MAAM,CAAC;IACnD,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,MAAM,EAAE,UAAU,CAAC;IACnB,kEAAkE;IAClE,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B;;;OAGG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B;;;OAGG;IACH,MAAM,CAAC,EAAE,oBAAoB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;;;;;OAgBG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,QAAQ,SAAS,KAAK,GACjD,MAAM,GACN,OAAO,CAAC,MAAM,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEpC,KAAK,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,SAAS,CAAC,QAAQ,IAAI,SAAS,GAAG,QAAQ,CAAC;AAEvD,YAAY;AACV;;GAEG;AACH,0BAA0B;AAC1B;;GAEG;AACH,wBAAwB;AACxB;;;GAGG;AACH,SAAS;AACT;;GAEG;AACH,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,UAAU,eAAe,CAAC,IAAI,SAAS,MAAM;IAC3C;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAAC;CACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"type":"module","repository":{"type":"git","url":"git+https://github.com/wasp-lang/wasp.git"},"homepage":"https://wasp.sh/","bugs":{"url":"https://github.com/wasp-lang/wasp/issues"},"author":{"name":"Wasp, Inc.","url":"https://wasp.sh"},"funding":"https://github.com/wasp-lang/wasp?sponsor=1","license":"MIT","engines":{"node":">=24.14.1"},"exports":"./main.js","name":"@wasp.sh/wasp-cli-darwin-arm64-unknown","version":"0.24.0
|
|
1
|
+
{"type":"module","repository":{"type":"git","url":"git+https://github.com/wasp-lang/wasp.git"},"homepage":"https://wasp.sh/","bugs":{"url":"https://github.com/wasp-lang/wasp/issues"},"author":{"name":"Wasp, Inc.","url":"https://wasp.sh"},"funding":"https://github.com/wasp-lang/wasp?sponsor=1","license":"MIT","engines":{"node":">=24.14.1"},"exports":"./main.js","name":"@wasp.sh/wasp-cli-darwin-arm64-unknown","version":"0.24.0","os":["darwin"],"cpu":["arm64"],"bin":{"__internal_wasp-darwin-arm64-unknown":"wasp-bin"}}
|
package/wasp-bin
CHANGED
|
Binary file
|