@opensaas/stack-cli 0.3.0 → 0.4.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +141 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +4 -13
- package/dist/commands/generate.js.map +1 -1
- package/dist/generator/context.d.ts.map +1 -1
- package/dist/generator/context.js +20 -5
- package/dist/generator/context.js.map +1 -1
- package/dist/generator/index.d.ts +1 -1
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +1 -1
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/lists.d.ts.map +1 -1
- package/dist/generator/lists.js +33 -1
- package/dist/generator/lists.js.map +1 -1
- package/dist/generator/prisma-extensions.d.ts +11 -0
- package/dist/generator/prisma-extensions.d.ts.map +1 -0
- package/dist/generator/prisma-extensions.js +134 -0
- package/dist/generator/prisma-extensions.js.map +1 -0
- package/dist/generator/prisma.d.ts.map +1 -1
- package/dist/generator/prisma.js +4 -0
- package/dist/generator/prisma.js.map +1 -1
- package/dist/generator/types.d.ts.map +1 -1
- package/dist/generator/types.js +151 -17
- package/dist/generator/types.js.map +1 -1
- package/package.json +9 -9
- package/src/commands/__snapshots__/generate.test.ts.snap +92 -21
- package/src/commands/generate.ts +8 -19
- package/src/generator/__snapshots__/context.test.ts.snap +60 -15
- package/src/generator/__snapshots__/types.test.ts.snap +689 -95
- package/src/generator/context.test.ts +3 -1
- package/src/generator/context.ts +20 -5
- package/src/generator/index.ts +1 -1
- package/src/generator/lists.ts +39 -1
- package/src/generator/prisma-extensions.ts +159 -0
- package/src/generator/prisma.ts +5 -0
- package/src/generator/types.ts +204 -17
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/generator/type-patcher.d.ts +0 -13
- package/dist/generator/type-patcher.d.ts.map +0 -1
- package/dist/generator/type-patcher.js +0 -68
- package/dist/generator/type-patcher.js.map +0 -1
- package/src/generator/type-patcher.ts +0 -93
|
@@ -6,16 +6,34 @@ exports[`Types Generator > generateTypes > should generate Context type with all
|
|
|
6
6
|
* DO NOT EDIT - This file is automatically generated
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
9
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
10
10
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
11
11
|
import type { PluginServices } from './plugin-types'
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Virtual fields for User - computed fields not in database
|
|
15
|
+
* These are added to query results via resolveOutput hooks
|
|
16
|
+
*/
|
|
17
|
+
export type UserVirtualFields = {
|
|
18
|
+
// No virtual fields defined
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Transformed fields for User - fields with resultExtension transformations
|
|
23
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
24
|
+
*/
|
|
25
|
+
export type UserTransformedFields = {
|
|
26
|
+
// No transformed fields defined
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type UserOutput = {
|
|
14
30
|
id: string
|
|
15
31
|
name: string | null
|
|
16
32
|
createdAt: Date
|
|
17
33
|
updatedAt: Date
|
|
18
|
-
}
|
|
34
|
+
} & UserVirtualFields
|
|
35
|
+
|
|
36
|
+
export type User = UserOutput
|
|
19
37
|
|
|
20
38
|
export type UserCreateInput = {
|
|
21
39
|
name?: string
|
|
@@ -73,15 +91,43 @@ export type UserHooks = {
|
|
|
73
91
|
}) => Promise<void>
|
|
74
92
|
}
|
|
75
93
|
|
|
76
|
-
|
|
77
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
96
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
97
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
98
|
+
*/
|
|
99
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
100
|
+
'user'
|
|
101
|
+
> & {
|
|
102
|
+
user: {
|
|
103
|
+
findUnique: <T extends Prisma.UserFindUniqueArgs>(
|
|
104
|
+
args: Prisma.SelectSubset<T, Prisma.UserFindUniqueArgs>
|
|
105
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
106
|
+
findMany: <T extends Prisma.UserFindManyArgs>(
|
|
107
|
+
args?: Prisma.SelectSubset<T, Prisma.UserFindManyArgs>
|
|
108
|
+
) => Promise<Array<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>>
|
|
109
|
+
create: <T extends Prisma.UserCreateArgs>(
|
|
110
|
+
args: Prisma.SelectSubset<T, Prisma.UserCreateArgs>
|
|
111
|
+
) => Promise<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>
|
|
112
|
+
update: <T extends Prisma.UserUpdateArgs>(
|
|
113
|
+
args: Prisma.SelectSubset<T, Prisma.UserUpdateArgs>
|
|
114
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
115
|
+
delete: <T extends Prisma.UserDeleteArgs>(
|
|
116
|
+
args: Prisma.SelectSubset<T, Prisma.UserDeleteArgs>
|
|
117
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
118
|
+
count: (args?: Prisma.UserCountArgs) => Promise<number>
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
124
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
125
|
+
*/
|
|
126
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
127
|
+
db: CustomDB
|
|
78
128
|
session: TSession
|
|
79
|
-
prisma: PrismaClient
|
|
80
|
-
storage: StorageUtils
|
|
81
|
-
plugins: PluginServices
|
|
82
129
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
83
130
|
sudo: () => Context<TSession>
|
|
84
|
-
_isSudo: boolean
|
|
85
131
|
}"
|
|
86
132
|
`;
|
|
87
133
|
|
|
@@ -91,17 +137,35 @@ exports[`Types Generator > generateTypes > should generate CreateInput type 1`]
|
|
|
91
137
|
* DO NOT EDIT - This file is automatically generated
|
|
92
138
|
*/
|
|
93
139
|
|
|
94
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
140
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
95
141
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
96
142
|
import type { PluginServices } from './plugin-types'
|
|
97
143
|
|
|
98
|
-
|
|
144
|
+
/**
|
|
145
|
+
* Virtual fields for Post - computed fields not in database
|
|
146
|
+
* These are added to query results via resolveOutput hooks
|
|
147
|
+
*/
|
|
148
|
+
export type PostVirtualFields = {
|
|
149
|
+
// No virtual fields defined
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Transformed fields for Post - fields with resultExtension transformations
|
|
154
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
155
|
+
*/
|
|
156
|
+
export type PostTransformedFields = {
|
|
157
|
+
// No transformed fields defined
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export type PostOutput = {
|
|
99
161
|
id: string
|
|
100
162
|
title: string
|
|
101
163
|
content: string | null
|
|
102
164
|
createdAt: Date
|
|
103
165
|
updatedAt: Date
|
|
104
|
-
}
|
|
166
|
+
} & PostVirtualFields
|
|
167
|
+
|
|
168
|
+
export type Post = PostOutput
|
|
105
169
|
|
|
106
170
|
export type PostCreateInput = {
|
|
107
171
|
title: string
|
|
@@ -162,15 +226,43 @@ export type PostHooks = {
|
|
|
162
226
|
}) => Promise<void>
|
|
163
227
|
}
|
|
164
228
|
|
|
165
|
-
|
|
166
|
-
|
|
229
|
+
/**
|
|
230
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
231
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
232
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
233
|
+
*/
|
|
234
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
235
|
+
'post'
|
|
236
|
+
> & {
|
|
237
|
+
post: {
|
|
238
|
+
findUnique: <T extends Prisma.PostFindUniqueArgs>(
|
|
239
|
+
args: Prisma.SelectSubset<T, Prisma.PostFindUniqueArgs>
|
|
240
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
241
|
+
findMany: <T extends Prisma.PostFindManyArgs>(
|
|
242
|
+
args?: Prisma.SelectSubset<T, Prisma.PostFindManyArgs>
|
|
243
|
+
) => Promise<Array<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>>
|
|
244
|
+
create: <T extends Prisma.PostCreateArgs>(
|
|
245
|
+
args: Prisma.SelectSubset<T, Prisma.PostCreateArgs>
|
|
246
|
+
) => Promise<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>
|
|
247
|
+
update: <T extends Prisma.PostUpdateArgs>(
|
|
248
|
+
args: Prisma.SelectSubset<T, Prisma.PostUpdateArgs>
|
|
249
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
250
|
+
delete: <T extends Prisma.PostDeleteArgs>(
|
|
251
|
+
args: Prisma.SelectSubset<T, Prisma.PostDeleteArgs>
|
|
252
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
253
|
+
count: (args?: Prisma.PostCountArgs) => Promise<number>
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/**
|
|
258
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
259
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
260
|
+
*/
|
|
261
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
262
|
+
db: CustomDB
|
|
167
263
|
session: TSession
|
|
168
|
-
prisma: PrismaClient
|
|
169
|
-
storage: StorageUtils
|
|
170
|
-
plugins: PluginServices
|
|
171
264
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
172
265
|
sudo: () => Context<TSession>
|
|
173
|
-
_isSudo: boolean
|
|
174
266
|
}"
|
|
175
267
|
`;
|
|
176
268
|
|
|
@@ -180,17 +272,35 @@ exports[`Types Generator > generateTypes > should generate UpdateInput type 1`]
|
|
|
180
272
|
* DO NOT EDIT - This file is automatically generated
|
|
181
273
|
*/
|
|
182
274
|
|
|
183
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
275
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
184
276
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
185
277
|
import type { PluginServices } from './plugin-types'
|
|
186
278
|
|
|
187
|
-
|
|
279
|
+
/**
|
|
280
|
+
* Virtual fields for Post - computed fields not in database
|
|
281
|
+
* These are added to query results via resolveOutput hooks
|
|
282
|
+
*/
|
|
283
|
+
export type PostVirtualFields = {
|
|
284
|
+
// No virtual fields defined
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Transformed fields for Post - fields with resultExtension transformations
|
|
289
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
290
|
+
*/
|
|
291
|
+
export type PostTransformedFields = {
|
|
292
|
+
// No transformed fields defined
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
export type PostOutput = {
|
|
188
296
|
id: string
|
|
189
297
|
title: string
|
|
190
298
|
content: string | null
|
|
191
299
|
createdAt: Date
|
|
192
300
|
updatedAt: Date
|
|
193
|
-
}
|
|
301
|
+
} & PostVirtualFields
|
|
302
|
+
|
|
303
|
+
export type Post = PostOutput
|
|
194
304
|
|
|
195
305
|
export type PostCreateInput = {
|
|
196
306
|
title: string
|
|
@@ -251,15 +361,43 @@ export type PostHooks = {
|
|
|
251
361
|
}) => Promise<void>
|
|
252
362
|
}
|
|
253
363
|
|
|
254
|
-
|
|
255
|
-
|
|
364
|
+
/**
|
|
365
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
366
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
367
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
368
|
+
*/
|
|
369
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
370
|
+
'post'
|
|
371
|
+
> & {
|
|
372
|
+
post: {
|
|
373
|
+
findUnique: <T extends Prisma.PostFindUniqueArgs>(
|
|
374
|
+
args: Prisma.SelectSubset<T, Prisma.PostFindUniqueArgs>
|
|
375
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
376
|
+
findMany: <T extends Prisma.PostFindManyArgs>(
|
|
377
|
+
args?: Prisma.SelectSubset<T, Prisma.PostFindManyArgs>
|
|
378
|
+
) => Promise<Array<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>>
|
|
379
|
+
create: <T extends Prisma.PostCreateArgs>(
|
|
380
|
+
args: Prisma.SelectSubset<T, Prisma.PostCreateArgs>
|
|
381
|
+
) => Promise<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>
|
|
382
|
+
update: <T extends Prisma.PostUpdateArgs>(
|
|
383
|
+
args: Prisma.SelectSubset<T, Prisma.PostUpdateArgs>
|
|
384
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
385
|
+
delete: <T extends Prisma.PostDeleteArgs>(
|
|
386
|
+
args: Prisma.SelectSubset<T, Prisma.PostDeleteArgs>
|
|
387
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
388
|
+
count: (args?: Prisma.PostCountArgs) => Promise<number>
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
394
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
395
|
+
*/
|
|
396
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
397
|
+
db: CustomDB
|
|
256
398
|
session: TSession
|
|
257
|
-
prisma: PrismaClient
|
|
258
|
-
storage: StorageUtils
|
|
259
|
-
plugins: PluginServices
|
|
260
399
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
261
400
|
sudo: () => Context<TSession>
|
|
262
|
-
_isSudo: boolean
|
|
263
401
|
}"
|
|
264
402
|
`;
|
|
265
403
|
|
|
@@ -269,16 +407,34 @@ exports[`Types Generator > generateTypes > should generate WhereInput type 1`] =
|
|
|
269
407
|
* DO NOT EDIT - This file is automatically generated
|
|
270
408
|
*/
|
|
271
409
|
|
|
272
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
410
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
273
411
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
274
412
|
import type { PluginServices } from './plugin-types'
|
|
275
413
|
|
|
276
|
-
|
|
414
|
+
/**
|
|
415
|
+
* Virtual fields for User - computed fields not in database
|
|
416
|
+
* These are added to query results via resolveOutput hooks
|
|
417
|
+
*/
|
|
418
|
+
export type UserVirtualFields = {
|
|
419
|
+
// No virtual fields defined
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/**
|
|
423
|
+
* Transformed fields for User - fields with resultExtension transformations
|
|
424
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
425
|
+
*/
|
|
426
|
+
export type UserTransformedFields = {
|
|
427
|
+
// No transformed fields defined
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
export type UserOutput = {
|
|
277
431
|
id: string
|
|
278
432
|
name: string | null
|
|
279
433
|
createdAt: Date
|
|
280
434
|
updatedAt: Date
|
|
281
|
-
}
|
|
435
|
+
} & UserVirtualFields
|
|
436
|
+
|
|
437
|
+
export type User = UserOutput
|
|
282
438
|
|
|
283
439
|
export type UserCreateInput = {
|
|
284
440
|
name?: string
|
|
@@ -336,15 +492,43 @@ export type UserHooks = {
|
|
|
336
492
|
}) => Promise<void>
|
|
337
493
|
}
|
|
338
494
|
|
|
339
|
-
|
|
340
|
-
|
|
495
|
+
/**
|
|
496
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
497
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
498
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
499
|
+
*/
|
|
500
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
501
|
+
'user'
|
|
502
|
+
> & {
|
|
503
|
+
user: {
|
|
504
|
+
findUnique: <T extends Prisma.UserFindUniqueArgs>(
|
|
505
|
+
args: Prisma.SelectSubset<T, Prisma.UserFindUniqueArgs>
|
|
506
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
507
|
+
findMany: <T extends Prisma.UserFindManyArgs>(
|
|
508
|
+
args?: Prisma.SelectSubset<T, Prisma.UserFindManyArgs>
|
|
509
|
+
) => Promise<Array<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>>
|
|
510
|
+
create: <T extends Prisma.UserCreateArgs>(
|
|
511
|
+
args: Prisma.SelectSubset<T, Prisma.UserCreateArgs>
|
|
512
|
+
) => Promise<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>
|
|
513
|
+
update: <T extends Prisma.UserUpdateArgs>(
|
|
514
|
+
args: Prisma.SelectSubset<T, Prisma.UserUpdateArgs>
|
|
515
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
516
|
+
delete: <T extends Prisma.UserDeleteArgs>(
|
|
517
|
+
args: Prisma.SelectSubset<T, Prisma.UserDeleteArgs>
|
|
518
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
519
|
+
count: (args?: Prisma.UserCountArgs) => Promise<number>
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
525
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
526
|
+
*/
|
|
527
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
528
|
+
db: CustomDB
|
|
341
529
|
session: TSession
|
|
342
|
-
prisma: PrismaClient
|
|
343
|
-
storage: StorageUtils
|
|
344
|
-
plugins: PluginServices
|
|
345
530
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
346
531
|
sudo: () => Context<TSession>
|
|
347
|
-
_isSudo: boolean
|
|
348
532
|
}"
|
|
349
533
|
`;
|
|
350
534
|
|
|
@@ -354,17 +538,35 @@ exports[`Types Generator > generateTypes > should generate type definitions for
|
|
|
354
538
|
* DO NOT EDIT - This file is automatically generated
|
|
355
539
|
*/
|
|
356
540
|
|
|
357
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
541
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
358
542
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
359
543
|
import type { PluginServices } from './plugin-types'
|
|
360
544
|
|
|
361
|
-
|
|
545
|
+
/**
|
|
546
|
+
* Virtual fields for User - computed fields not in database
|
|
547
|
+
* These are added to query results via resolveOutput hooks
|
|
548
|
+
*/
|
|
549
|
+
export type UserVirtualFields = {
|
|
550
|
+
// No virtual fields defined
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* Transformed fields for User - fields with resultExtension transformations
|
|
555
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
556
|
+
*/
|
|
557
|
+
export type UserTransformedFields = {
|
|
558
|
+
// No transformed fields defined
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
export type UserOutput = {
|
|
362
562
|
id: string
|
|
363
563
|
name: string
|
|
364
564
|
email: string
|
|
365
565
|
createdAt: Date
|
|
366
566
|
updatedAt: Date
|
|
367
|
-
}
|
|
567
|
+
} & UserVirtualFields
|
|
568
|
+
|
|
569
|
+
export type User = UserOutput
|
|
368
570
|
|
|
369
571
|
export type UserCreateInput = {
|
|
370
572
|
name: string
|
|
@@ -425,15 +627,43 @@ export type UserHooks = {
|
|
|
425
627
|
}) => Promise<void>
|
|
426
628
|
}
|
|
427
629
|
|
|
428
|
-
|
|
429
|
-
|
|
630
|
+
/**
|
|
631
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
632
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
633
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
634
|
+
*/
|
|
635
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
636
|
+
'user'
|
|
637
|
+
> & {
|
|
638
|
+
user: {
|
|
639
|
+
findUnique: <T extends Prisma.UserFindUniqueArgs>(
|
|
640
|
+
args: Prisma.SelectSubset<T, Prisma.UserFindUniqueArgs>
|
|
641
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
642
|
+
findMany: <T extends Prisma.UserFindManyArgs>(
|
|
643
|
+
args?: Prisma.SelectSubset<T, Prisma.UserFindManyArgs>
|
|
644
|
+
) => Promise<Array<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>>
|
|
645
|
+
create: <T extends Prisma.UserCreateArgs>(
|
|
646
|
+
args: Prisma.SelectSubset<T, Prisma.UserCreateArgs>
|
|
647
|
+
) => Promise<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>
|
|
648
|
+
update: <T extends Prisma.UserUpdateArgs>(
|
|
649
|
+
args: Prisma.SelectSubset<T, Prisma.UserUpdateArgs>
|
|
650
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
651
|
+
delete: <T extends Prisma.UserDeleteArgs>(
|
|
652
|
+
args: Prisma.SelectSubset<T, Prisma.UserDeleteArgs>
|
|
653
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
654
|
+
count: (args?: Prisma.UserCountArgs) => Promise<number>
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
660
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
661
|
+
*/
|
|
662
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
663
|
+
db: CustomDB
|
|
430
664
|
session: TSession
|
|
431
|
-
prisma: PrismaClient
|
|
432
|
-
storage: StorageUtils
|
|
433
|
-
plugins: PluginServices
|
|
434
665
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
435
666
|
sudo: () => Context<TSession>
|
|
436
|
-
_isSudo: boolean
|
|
437
667
|
}"
|
|
438
668
|
`;
|
|
439
669
|
|
|
@@ -443,16 +673,34 @@ exports[`Types Generator > generateTypes > should generate types for multiple li
|
|
|
443
673
|
* DO NOT EDIT - This file is automatically generated
|
|
444
674
|
*/
|
|
445
675
|
|
|
446
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
676
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
447
677
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
448
678
|
import type { PluginServices } from './plugin-types'
|
|
449
679
|
|
|
450
|
-
|
|
680
|
+
/**
|
|
681
|
+
* Virtual fields for User - computed fields not in database
|
|
682
|
+
* These are added to query results via resolveOutput hooks
|
|
683
|
+
*/
|
|
684
|
+
export type UserVirtualFields = {
|
|
685
|
+
// No virtual fields defined
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
/**
|
|
689
|
+
* Transformed fields for User - fields with resultExtension transformations
|
|
690
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
691
|
+
*/
|
|
692
|
+
export type UserTransformedFields = {
|
|
693
|
+
// No transformed fields defined
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
export type UserOutput = {
|
|
451
697
|
id: string
|
|
452
698
|
name: string | null
|
|
453
699
|
createdAt: Date
|
|
454
700
|
updatedAt: Date
|
|
455
|
-
}
|
|
701
|
+
} & UserVirtualFields
|
|
702
|
+
|
|
703
|
+
export type User = UserOutput
|
|
456
704
|
|
|
457
705
|
export type UserCreateInput = {
|
|
458
706
|
name?: string
|
|
@@ -510,12 +758,30 @@ export type UserHooks = {
|
|
|
510
758
|
}) => Promise<void>
|
|
511
759
|
}
|
|
512
760
|
|
|
513
|
-
|
|
761
|
+
/**
|
|
762
|
+
* Virtual fields for Post - computed fields not in database
|
|
763
|
+
* These are added to query results via resolveOutput hooks
|
|
764
|
+
*/
|
|
765
|
+
export type PostVirtualFields = {
|
|
766
|
+
// No virtual fields defined
|
|
767
|
+
}
|
|
768
|
+
|
|
769
|
+
/**
|
|
770
|
+
* Transformed fields for Post - fields with resultExtension transformations
|
|
771
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
772
|
+
*/
|
|
773
|
+
export type PostTransformedFields = {
|
|
774
|
+
// No transformed fields defined
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
export type PostOutput = {
|
|
514
778
|
id: string
|
|
515
779
|
title: string | null
|
|
516
780
|
createdAt: Date
|
|
517
781
|
updatedAt: Date
|
|
518
|
-
}
|
|
782
|
+
} & PostVirtualFields
|
|
783
|
+
|
|
784
|
+
export type Post = PostOutput
|
|
519
785
|
|
|
520
786
|
export type PostCreateInput = {
|
|
521
787
|
title?: string
|
|
@@ -573,12 +839,30 @@ export type PostHooks = {
|
|
|
573
839
|
}) => Promise<void>
|
|
574
840
|
}
|
|
575
841
|
|
|
576
|
-
|
|
842
|
+
/**
|
|
843
|
+
* Virtual fields for Comment - computed fields not in database
|
|
844
|
+
* These are added to query results via resolveOutput hooks
|
|
845
|
+
*/
|
|
846
|
+
export type CommentVirtualFields = {
|
|
847
|
+
// No virtual fields defined
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
/**
|
|
851
|
+
* Transformed fields for Comment - fields with resultExtension transformations
|
|
852
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
853
|
+
*/
|
|
854
|
+
export type CommentTransformedFields = {
|
|
855
|
+
// No transformed fields defined
|
|
856
|
+
}
|
|
857
|
+
|
|
858
|
+
export type CommentOutput = {
|
|
577
859
|
id: string
|
|
578
860
|
content: string | null
|
|
579
861
|
createdAt: Date
|
|
580
862
|
updatedAt: Date
|
|
581
|
-
}
|
|
863
|
+
} & CommentVirtualFields
|
|
864
|
+
|
|
865
|
+
export type Comment = CommentOutput
|
|
582
866
|
|
|
583
867
|
export type CommentCreateInput = {
|
|
584
868
|
content?: string
|
|
@@ -636,15 +920,79 @@ export type CommentHooks = {
|
|
|
636
920
|
}) => Promise<void>
|
|
637
921
|
}
|
|
638
922
|
|
|
639
|
-
|
|
640
|
-
|
|
923
|
+
/**
|
|
924
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
925
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
926
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
927
|
+
*/
|
|
928
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
929
|
+
'user' | 'post' | 'comment'
|
|
930
|
+
> & {
|
|
931
|
+
user: {
|
|
932
|
+
findUnique: <T extends Prisma.UserFindUniqueArgs>(
|
|
933
|
+
args: Prisma.SelectSubset<T, Prisma.UserFindUniqueArgs>
|
|
934
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
935
|
+
findMany: <T extends Prisma.UserFindManyArgs>(
|
|
936
|
+
args?: Prisma.SelectSubset<T, Prisma.UserFindManyArgs>
|
|
937
|
+
) => Promise<Array<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>>
|
|
938
|
+
create: <T extends Prisma.UserCreateArgs>(
|
|
939
|
+
args: Prisma.SelectSubset<T, Prisma.UserCreateArgs>
|
|
940
|
+
) => Promise<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>
|
|
941
|
+
update: <T extends Prisma.UserUpdateArgs>(
|
|
942
|
+
args: Prisma.SelectSubset<T, Prisma.UserUpdateArgs>
|
|
943
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
944
|
+
delete: <T extends Prisma.UserDeleteArgs>(
|
|
945
|
+
args: Prisma.SelectSubset<T, Prisma.UserDeleteArgs>
|
|
946
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
947
|
+
count: (args?: Prisma.UserCountArgs) => Promise<number>
|
|
948
|
+
}
|
|
949
|
+
post: {
|
|
950
|
+
findUnique: <T extends Prisma.PostFindUniqueArgs>(
|
|
951
|
+
args: Prisma.SelectSubset<T, Prisma.PostFindUniqueArgs>
|
|
952
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
953
|
+
findMany: <T extends Prisma.PostFindManyArgs>(
|
|
954
|
+
args?: Prisma.SelectSubset<T, Prisma.PostFindManyArgs>
|
|
955
|
+
) => Promise<Array<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>>
|
|
956
|
+
create: <T extends Prisma.PostCreateArgs>(
|
|
957
|
+
args: Prisma.SelectSubset<T, Prisma.PostCreateArgs>
|
|
958
|
+
) => Promise<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>
|
|
959
|
+
update: <T extends Prisma.PostUpdateArgs>(
|
|
960
|
+
args: Prisma.SelectSubset<T, Prisma.PostUpdateArgs>
|
|
961
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
962
|
+
delete: <T extends Prisma.PostDeleteArgs>(
|
|
963
|
+
args: Prisma.SelectSubset<T, Prisma.PostDeleteArgs>
|
|
964
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
965
|
+
count: (args?: Prisma.PostCountArgs) => Promise<number>
|
|
966
|
+
}
|
|
967
|
+
comment: {
|
|
968
|
+
findUnique: <T extends Prisma.CommentFindUniqueArgs>(
|
|
969
|
+
args: Prisma.SelectSubset<T, Prisma.CommentFindUniqueArgs>
|
|
970
|
+
) => Promise<(Omit<Prisma.CommentGetPayload<T>, keyof CommentTransformedFields> & CommentTransformedFields & CommentVirtualFields) | null>
|
|
971
|
+
findMany: <T extends Prisma.CommentFindManyArgs>(
|
|
972
|
+
args?: Prisma.SelectSubset<T, Prisma.CommentFindManyArgs>
|
|
973
|
+
) => Promise<Array<Omit<Prisma.CommentGetPayload<T>, keyof CommentTransformedFields> & CommentTransformedFields & CommentVirtualFields>>
|
|
974
|
+
create: <T extends Prisma.CommentCreateArgs>(
|
|
975
|
+
args: Prisma.SelectSubset<T, Prisma.CommentCreateArgs>
|
|
976
|
+
) => Promise<Omit<Prisma.CommentGetPayload<T>, keyof CommentTransformedFields> & CommentTransformedFields & CommentVirtualFields>
|
|
977
|
+
update: <T extends Prisma.CommentUpdateArgs>(
|
|
978
|
+
args: Prisma.SelectSubset<T, Prisma.CommentUpdateArgs>
|
|
979
|
+
) => Promise<(Omit<Prisma.CommentGetPayload<T>, keyof CommentTransformedFields> & CommentTransformedFields & CommentVirtualFields) | null>
|
|
980
|
+
delete: <T extends Prisma.CommentDeleteArgs>(
|
|
981
|
+
args: Prisma.SelectSubset<T, Prisma.CommentDeleteArgs>
|
|
982
|
+
) => Promise<(Omit<Prisma.CommentGetPayload<T>, keyof CommentTransformedFields> & CommentTransformedFields & CommentVirtualFields) | null>
|
|
983
|
+
count: (args?: Prisma.CommentCountArgs) => Promise<number>
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
/**
|
|
988
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
989
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
990
|
+
*/
|
|
991
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
992
|
+
db: CustomDB
|
|
641
993
|
session: TSession
|
|
642
|
-
prisma: PrismaClient
|
|
643
|
-
storage: StorageUtils
|
|
644
|
-
plugins: PluginServices
|
|
645
994
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
646
995
|
sudo: () => Context<TSession>
|
|
647
|
-
_isSudo: boolean
|
|
648
996
|
}"
|
|
649
997
|
`;
|
|
650
998
|
|
|
@@ -654,18 +1002,36 @@ exports[`Types Generator > generateTypes > should handle relationship fields in
|
|
|
654
1002
|
* DO NOT EDIT - This file is automatically generated
|
|
655
1003
|
*/
|
|
656
1004
|
|
|
657
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
1005
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
658
1006
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
659
1007
|
import type { PluginServices } from './plugin-types'
|
|
660
1008
|
|
|
661
|
-
|
|
1009
|
+
/**
|
|
1010
|
+
* Virtual fields for Post - computed fields not in database
|
|
1011
|
+
* These are added to query results via resolveOutput hooks
|
|
1012
|
+
*/
|
|
1013
|
+
export type PostVirtualFields = {
|
|
1014
|
+
// No virtual fields defined
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
/**
|
|
1018
|
+
* Transformed fields for Post - fields with resultExtension transformations
|
|
1019
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
1020
|
+
*/
|
|
1021
|
+
export type PostTransformedFields = {
|
|
1022
|
+
// No transformed fields defined
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
export type PostOutput = {
|
|
662
1026
|
id: string
|
|
663
1027
|
title: string | null
|
|
664
1028
|
authorId: string | null
|
|
665
|
-
author
|
|
1029
|
+
author?: UserOutput | null
|
|
666
1030
|
createdAt: Date
|
|
667
1031
|
updatedAt: Date
|
|
668
|
-
}
|
|
1032
|
+
} & PostVirtualFields
|
|
1033
|
+
|
|
1034
|
+
export type Post = PostOutput
|
|
669
1035
|
|
|
670
1036
|
export type PostCreateInput = {
|
|
671
1037
|
title?: string
|
|
@@ -725,12 +1091,30 @@ export type PostHooks = {
|
|
|
725
1091
|
}) => Promise<void>
|
|
726
1092
|
}
|
|
727
1093
|
|
|
728
|
-
|
|
1094
|
+
/**
|
|
1095
|
+
* Virtual fields for User - computed fields not in database
|
|
1096
|
+
* These are added to query results via resolveOutput hooks
|
|
1097
|
+
*/
|
|
1098
|
+
export type UserVirtualFields = {
|
|
1099
|
+
// No virtual fields defined
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
/**
|
|
1103
|
+
* Transformed fields for User - fields with resultExtension transformations
|
|
1104
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
1105
|
+
*/
|
|
1106
|
+
export type UserTransformedFields = {
|
|
1107
|
+
// No transformed fields defined
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
export type UserOutput = {
|
|
729
1111
|
id: string
|
|
730
1112
|
name: string | null
|
|
731
1113
|
createdAt: Date
|
|
732
1114
|
updatedAt: Date
|
|
733
|
-
}
|
|
1115
|
+
} & UserVirtualFields
|
|
1116
|
+
|
|
1117
|
+
export type User = UserOutput
|
|
734
1118
|
|
|
735
1119
|
export type UserCreateInput = {
|
|
736
1120
|
name?: string
|
|
@@ -788,15 +1172,61 @@ export type UserHooks = {
|
|
|
788
1172
|
}) => Promise<void>
|
|
789
1173
|
}
|
|
790
1174
|
|
|
791
|
-
|
|
792
|
-
|
|
1175
|
+
/**
|
|
1176
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
1177
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
1178
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
1179
|
+
*/
|
|
1180
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
1181
|
+
'post' | 'user'
|
|
1182
|
+
> & {
|
|
1183
|
+
post: {
|
|
1184
|
+
findUnique: <T extends Prisma.PostFindUniqueArgs>(
|
|
1185
|
+
args: Prisma.SelectSubset<T, Prisma.PostFindUniqueArgs>
|
|
1186
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1187
|
+
findMany: <T extends Prisma.PostFindManyArgs>(
|
|
1188
|
+
args?: Prisma.SelectSubset<T, Prisma.PostFindManyArgs>
|
|
1189
|
+
) => Promise<Array<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>>
|
|
1190
|
+
create: <T extends Prisma.PostCreateArgs>(
|
|
1191
|
+
args: Prisma.SelectSubset<T, Prisma.PostCreateArgs>
|
|
1192
|
+
) => Promise<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>
|
|
1193
|
+
update: <T extends Prisma.PostUpdateArgs>(
|
|
1194
|
+
args: Prisma.SelectSubset<T, Prisma.PostUpdateArgs>
|
|
1195
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1196
|
+
delete: <T extends Prisma.PostDeleteArgs>(
|
|
1197
|
+
args: Prisma.SelectSubset<T, Prisma.PostDeleteArgs>
|
|
1198
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1199
|
+
count: (args?: Prisma.PostCountArgs) => Promise<number>
|
|
1200
|
+
}
|
|
1201
|
+
user: {
|
|
1202
|
+
findUnique: <T extends Prisma.UserFindUniqueArgs>(
|
|
1203
|
+
args: Prisma.SelectSubset<T, Prisma.UserFindUniqueArgs>
|
|
1204
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1205
|
+
findMany: <T extends Prisma.UserFindManyArgs>(
|
|
1206
|
+
args?: Prisma.SelectSubset<T, Prisma.UserFindManyArgs>
|
|
1207
|
+
) => Promise<Array<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>>
|
|
1208
|
+
create: <T extends Prisma.UserCreateArgs>(
|
|
1209
|
+
args: Prisma.SelectSubset<T, Prisma.UserCreateArgs>
|
|
1210
|
+
) => Promise<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>
|
|
1211
|
+
update: <T extends Prisma.UserUpdateArgs>(
|
|
1212
|
+
args: Prisma.SelectSubset<T, Prisma.UserUpdateArgs>
|
|
1213
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1214
|
+
delete: <T extends Prisma.UserDeleteArgs>(
|
|
1215
|
+
args: Prisma.SelectSubset<T, Prisma.UserDeleteArgs>
|
|
1216
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1217
|
+
count: (args?: Prisma.UserCountArgs) => Promise<number>
|
|
1218
|
+
}
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
/**
|
|
1222
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
1223
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
1224
|
+
*/
|
|
1225
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
1226
|
+
db: CustomDB
|
|
793
1227
|
session: TSession
|
|
794
|
-
prisma: PrismaClient
|
|
795
|
-
storage: StorageUtils
|
|
796
|
-
plugins: PluginServices
|
|
797
1228
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
798
1229
|
sudo: () => Context<TSession>
|
|
799
|
-
_isSudo: boolean
|
|
800
1230
|
}"
|
|
801
1231
|
`;
|
|
802
1232
|
|
|
@@ -806,18 +1236,36 @@ exports[`Types Generator > generateTypes > should handle relationship fields in
|
|
|
806
1236
|
* DO NOT EDIT - This file is automatically generated
|
|
807
1237
|
*/
|
|
808
1238
|
|
|
809
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
1239
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
810
1240
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
811
1241
|
import type { PluginServices } from './plugin-types'
|
|
812
1242
|
|
|
813
|
-
|
|
1243
|
+
/**
|
|
1244
|
+
* Virtual fields for Post - computed fields not in database
|
|
1245
|
+
* These are added to query results via resolveOutput hooks
|
|
1246
|
+
*/
|
|
1247
|
+
export type PostVirtualFields = {
|
|
1248
|
+
// No virtual fields defined
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
/**
|
|
1252
|
+
* Transformed fields for Post - fields with resultExtension transformations
|
|
1253
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
1254
|
+
*/
|
|
1255
|
+
export type PostTransformedFields = {
|
|
1256
|
+
// No transformed fields defined
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
export type PostOutput = {
|
|
814
1260
|
id: string
|
|
815
1261
|
title: string | null
|
|
816
1262
|
authorId: string | null
|
|
817
|
-
author
|
|
1263
|
+
author?: UserOutput | null
|
|
818
1264
|
createdAt: Date
|
|
819
1265
|
updatedAt: Date
|
|
820
|
-
}
|
|
1266
|
+
} & PostVirtualFields
|
|
1267
|
+
|
|
1268
|
+
export type Post = PostOutput
|
|
821
1269
|
|
|
822
1270
|
export type PostCreateInput = {
|
|
823
1271
|
title?: string
|
|
@@ -877,12 +1325,30 @@ export type PostHooks = {
|
|
|
877
1325
|
}) => Promise<void>
|
|
878
1326
|
}
|
|
879
1327
|
|
|
880
|
-
|
|
1328
|
+
/**
|
|
1329
|
+
* Virtual fields for User - computed fields not in database
|
|
1330
|
+
* These are added to query results via resolveOutput hooks
|
|
1331
|
+
*/
|
|
1332
|
+
export type UserVirtualFields = {
|
|
1333
|
+
// No virtual fields defined
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
/**
|
|
1337
|
+
* Transformed fields for User - fields with resultExtension transformations
|
|
1338
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
1339
|
+
*/
|
|
1340
|
+
export type UserTransformedFields = {
|
|
1341
|
+
// No transformed fields defined
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1344
|
+
export type UserOutput = {
|
|
881
1345
|
id: string
|
|
882
1346
|
name: string | null
|
|
883
1347
|
createdAt: Date
|
|
884
1348
|
updatedAt: Date
|
|
885
|
-
}
|
|
1349
|
+
} & UserVirtualFields
|
|
1350
|
+
|
|
1351
|
+
export type User = UserOutput
|
|
886
1352
|
|
|
887
1353
|
export type UserCreateInput = {
|
|
888
1354
|
name?: string
|
|
@@ -940,15 +1406,61 @@ export type UserHooks = {
|
|
|
940
1406
|
}) => Promise<void>
|
|
941
1407
|
}
|
|
942
1408
|
|
|
943
|
-
|
|
944
|
-
|
|
1409
|
+
/**
|
|
1410
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
1411
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
1412
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
1413
|
+
*/
|
|
1414
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
1415
|
+
'post' | 'user'
|
|
1416
|
+
> & {
|
|
1417
|
+
post: {
|
|
1418
|
+
findUnique: <T extends Prisma.PostFindUniqueArgs>(
|
|
1419
|
+
args: Prisma.SelectSubset<T, Prisma.PostFindUniqueArgs>
|
|
1420
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1421
|
+
findMany: <T extends Prisma.PostFindManyArgs>(
|
|
1422
|
+
args?: Prisma.SelectSubset<T, Prisma.PostFindManyArgs>
|
|
1423
|
+
) => Promise<Array<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>>
|
|
1424
|
+
create: <T extends Prisma.PostCreateArgs>(
|
|
1425
|
+
args: Prisma.SelectSubset<T, Prisma.PostCreateArgs>
|
|
1426
|
+
) => Promise<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>
|
|
1427
|
+
update: <T extends Prisma.PostUpdateArgs>(
|
|
1428
|
+
args: Prisma.SelectSubset<T, Prisma.PostUpdateArgs>
|
|
1429
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1430
|
+
delete: <T extends Prisma.PostDeleteArgs>(
|
|
1431
|
+
args: Prisma.SelectSubset<T, Prisma.PostDeleteArgs>
|
|
1432
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1433
|
+
count: (args?: Prisma.PostCountArgs) => Promise<number>
|
|
1434
|
+
}
|
|
1435
|
+
user: {
|
|
1436
|
+
findUnique: <T extends Prisma.UserFindUniqueArgs>(
|
|
1437
|
+
args: Prisma.SelectSubset<T, Prisma.UserFindUniqueArgs>
|
|
1438
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1439
|
+
findMany: <T extends Prisma.UserFindManyArgs>(
|
|
1440
|
+
args?: Prisma.SelectSubset<T, Prisma.UserFindManyArgs>
|
|
1441
|
+
) => Promise<Array<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>>
|
|
1442
|
+
create: <T extends Prisma.UserCreateArgs>(
|
|
1443
|
+
args: Prisma.SelectSubset<T, Prisma.UserCreateArgs>
|
|
1444
|
+
) => Promise<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>
|
|
1445
|
+
update: <T extends Prisma.UserUpdateArgs>(
|
|
1446
|
+
args: Prisma.SelectSubset<T, Prisma.UserUpdateArgs>
|
|
1447
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1448
|
+
delete: <T extends Prisma.UserDeleteArgs>(
|
|
1449
|
+
args: Prisma.SelectSubset<T, Prisma.UserDeleteArgs>
|
|
1450
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1451
|
+
count: (args?: Prisma.UserCountArgs) => Promise<number>
|
|
1452
|
+
}
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
/**
|
|
1456
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
1457
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
1458
|
+
*/
|
|
1459
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
1460
|
+
db: CustomDB
|
|
945
1461
|
session: TSession
|
|
946
|
-
prisma: PrismaClient
|
|
947
|
-
storage: StorageUtils
|
|
948
|
-
plugins: PluginServices
|
|
949
1462
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
950
1463
|
sudo: () => Context<TSession>
|
|
951
|
-
_isSudo: boolean
|
|
952
1464
|
}"
|
|
953
1465
|
`;
|
|
954
1466
|
|
|
@@ -958,17 +1470,35 @@ exports[`Types Generator > generateTypes > should handle relationship fields in
|
|
|
958
1470
|
* DO NOT EDIT - This file is automatically generated
|
|
959
1471
|
*/
|
|
960
1472
|
|
|
961
|
-
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB } from '@opensaas/stack-core'
|
|
1473
|
+
import type { Session as OpensaasSession, StorageUtils, ServerActionProps, AccessControlledDB, AccessContext } from '@opensaas/stack-core'
|
|
962
1474
|
import type { PrismaClient, Prisma } from './prisma-client/client'
|
|
963
1475
|
import type { PluginServices } from './plugin-types'
|
|
964
1476
|
|
|
965
|
-
|
|
1477
|
+
/**
|
|
1478
|
+
* Virtual fields for User - computed fields not in database
|
|
1479
|
+
* These are added to query results via resolveOutput hooks
|
|
1480
|
+
*/
|
|
1481
|
+
export type UserVirtualFields = {
|
|
1482
|
+
// No virtual fields defined
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
/**
|
|
1486
|
+
* Transformed fields for User - fields with resultExtension transformations
|
|
1487
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
1488
|
+
*/
|
|
1489
|
+
export type UserTransformedFields = {
|
|
1490
|
+
// No transformed fields defined
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
export type UserOutput = {
|
|
966
1494
|
id: string
|
|
967
1495
|
name: string | null
|
|
968
|
-
posts
|
|
1496
|
+
posts?: PostOutput[]
|
|
969
1497
|
createdAt: Date
|
|
970
1498
|
updatedAt: Date
|
|
971
|
-
}
|
|
1499
|
+
} & UserVirtualFields
|
|
1500
|
+
|
|
1501
|
+
export type User = UserOutput
|
|
972
1502
|
|
|
973
1503
|
export type UserCreateInput = {
|
|
974
1504
|
name?: string
|
|
@@ -1028,14 +1558,32 @@ export type UserHooks = {
|
|
|
1028
1558
|
}) => Promise<void>
|
|
1029
1559
|
}
|
|
1030
1560
|
|
|
1031
|
-
|
|
1561
|
+
/**
|
|
1562
|
+
* Virtual fields for Post - computed fields not in database
|
|
1563
|
+
* These are added to query results via resolveOutput hooks
|
|
1564
|
+
*/
|
|
1565
|
+
export type PostVirtualFields = {
|
|
1566
|
+
// No virtual fields defined
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
|
+
/**
|
|
1570
|
+
* Transformed fields for Post - fields with resultExtension transformations
|
|
1571
|
+
* These override Prisma's base types with transformed types via result extensions
|
|
1572
|
+
*/
|
|
1573
|
+
export type PostTransformedFields = {
|
|
1574
|
+
// No transformed fields defined
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
export type PostOutput = {
|
|
1032
1578
|
id: string
|
|
1033
1579
|
title: string | null
|
|
1034
1580
|
authorId: string | null
|
|
1035
|
-
author
|
|
1581
|
+
author?: UserOutput | null
|
|
1036
1582
|
createdAt: Date
|
|
1037
1583
|
updatedAt: Date
|
|
1038
|
-
}
|
|
1584
|
+
} & PostVirtualFields
|
|
1585
|
+
|
|
1586
|
+
export type Post = PostOutput
|
|
1039
1587
|
|
|
1040
1588
|
export type PostCreateInput = {
|
|
1041
1589
|
title?: string
|
|
@@ -1095,14 +1643,60 @@ export type PostHooks = {
|
|
|
1095
1643
|
}) => Promise<void>
|
|
1096
1644
|
}
|
|
1097
1645
|
|
|
1098
|
-
|
|
1099
|
-
|
|
1646
|
+
/**
|
|
1647
|
+
* Custom DB type that uses Prisma's conditional types with virtual and transformed field support
|
|
1648
|
+
* Types change based on select/include - relationships only present when explicitly included
|
|
1649
|
+
* Virtual fields and transformed fields are added to the base model type
|
|
1650
|
+
*/
|
|
1651
|
+
export type CustomDB = Omit<AccessControlledDB<PrismaClient>,
|
|
1652
|
+
'user' | 'post'
|
|
1653
|
+
> & {
|
|
1654
|
+
user: {
|
|
1655
|
+
findUnique: <T extends Prisma.UserFindUniqueArgs>(
|
|
1656
|
+
args: Prisma.SelectSubset<T, Prisma.UserFindUniqueArgs>
|
|
1657
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1658
|
+
findMany: <T extends Prisma.UserFindManyArgs>(
|
|
1659
|
+
args?: Prisma.SelectSubset<T, Prisma.UserFindManyArgs>
|
|
1660
|
+
) => Promise<Array<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>>
|
|
1661
|
+
create: <T extends Prisma.UserCreateArgs>(
|
|
1662
|
+
args: Prisma.SelectSubset<T, Prisma.UserCreateArgs>
|
|
1663
|
+
) => Promise<Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields>
|
|
1664
|
+
update: <T extends Prisma.UserUpdateArgs>(
|
|
1665
|
+
args: Prisma.SelectSubset<T, Prisma.UserUpdateArgs>
|
|
1666
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1667
|
+
delete: <T extends Prisma.UserDeleteArgs>(
|
|
1668
|
+
args: Prisma.SelectSubset<T, Prisma.UserDeleteArgs>
|
|
1669
|
+
) => Promise<(Omit<Prisma.UserGetPayload<T>, keyof UserTransformedFields> & UserTransformedFields & UserVirtualFields) | null>
|
|
1670
|
+
count: (args?: Prisma.UserCountArgs) => Promise<number>
|
|
1671
|
+
}
|
|
1672
|
+
post: {
|
|
1673
|
+
findUnique: <T extends Prisma.PostFindUniqueArgs>(
|
|
1674
|
+
args: Prisma.SelectSubset<T, Prisma.PostFindUniqueArgs>
|
|
1675
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1676
|
+
findMany: <T extends Prisma.PostFindManyArgs>(
|
|
1677
|
+
args?: Prisma.SelectSubset<T, Prisma.PostFindManyArgs>
|
|
1678
|
+
) => Promise<Array<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>>
|
|
1679
|
+
create: <T extends Prisma.PostCreateArgs>(
|
|
1680
|
+
args: Prisma.SelectSubset<T, Prisma.PostCreateArgs>
|
|
1681
|
+
) => Promise<Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields>
|
|
1682
|
+
update: <T extends Prisma.PostUpdateArgs>(
|
|
1683
|
+
args: Prisma.SelectSubset<T, Prisma.PostUpdateArgs>
|
|
1684
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1685
|
+
delete: <T extends Prisma.PostDeleteArgs>(
|
|
1686
|
+
args: Prisma.SelectSubset<T, Prisma.PostDeleteArgs>
|
|
1687
|
+
) => Promise<(Omit<Prisma.PostGetPayload<T>, keyof PostTransformedFields> & PostTransformedFields & PostVirtualFields) | null>
|
|
1688
|
+
count: (args?: Prisma.PostCountArgs) => Promise<number>
|
|
1689
|
+
}
|
|
1690
|
+
}
|
|
1691
|
+
|
|
1692
|
+
/**
|
|
1693
|
+
* Context type compatible with AccessContext but with CustomDB for virtual field typing
|
|
1694
|
+
* Extends AccessContext and overrides db property to include virtual fields in output types
|
|
1695
|
+
*/
|
|
1696
|
+
export type Context<TSession extends OpensaasSession = OpensaasSession> = Omit<AccessContext<PrismaClient>, 'db' | 'session'> & {
|
|
1697
|
+
db: CustomDB
|
|
1100
1698
|
session: TSession
|
|
1101
|
-
prisma: PrismaClient
|
|
1102
|
-
storage: StorageUtils
|
|
1103
|
-
plugins: PluginServices
|
|
1104
1699
|
serverAction: (props: ServerActionProps) => Promise<unknown>
|
|
1105
1700
|
sudo: () => Context<TSession>
|
|
1106
|
-
_isSudo: boolean
|
|
1107
1701
|
}"
|
|
1108
1702
|
`;
|