@ghentcdh/crouton-api 0.0.1-alpha.88 → 0.0.1-alpha.89

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.
@@ -0,0 +1,2692 @@
1
+ import { Type, CanActivate } from '@nestjs/common';
2
+ import { ZodType, z } from 'zod';
3
+ import * as _ghentcdh_crouton_core from '@ghentcdh/crouton-core';
4
+ import { SecurityConfig, ListRequest, DataSource } from '@ghentcdh/crouton-core';
5
+
6
+ type CroutonAppConfig = {
7
+ baseUrl: string;
8
+ /** URL path prefix prepended to every crouton controller route (e.g. `'api'`). */
9
+ prefix?: string;
10
+ /** Named security guards and an optional module-level default. */
11
+ security?: {
12
+ /** Map of guard name → NestJS guard class (e.g. `{ admin: AdminGuard }`). */
13
+ guards: Record<string, Type<CanActivate>>;
14
+ /** Applied when neither the operation nor the resource declares security. */
15
+ default?: SecurityConfig;
16
+ };
17
+ /** App-defined resource.json extension sections, keyed by top-level name. */
18
+ extensions?: Record<string, ZodType>;
19
+ /**
20
+ * Called on every schema-serving request (`GET /schemas`, `/definition`,
21
+ * `/resource.json`) with the built payload; its return value is spread into
22
+ * the payload.
23
+ */
24
+ schemaEnricher?: <T extends Record<string, unknown>>(schema: T) => Record<string, unknown>;
25
+ };
26
+
27
+ type CrudOp = 'findAll' | 'findOne' | 'create' | 'update' | 'patch' | 'delete';
28
+ type ReadOp = Extract<CrudOp, 'findAll' | 'findOne'>;
29
+ type WriteOp = Exclude<CrudOp, ReadOp>;
30
+ interface ParentContext {
31
+ route: string;
32
+ param: string;
33
+ id: string | number;
34
+ }
35
+ type DataSourceResolver = {
36
+ resolve(name?: string): unknown;
37
+ entries(): {
38
+ name: string;
39
+ client: unknown;
40
+ }[];
41
+ resolveAdapter?(name?: string): DataSourceAdapter;
42
+ };
43
+ /**
44
+ * Shared base context for hook handlers and custom-repository implementations.
45
+ *
46
+ * Both sides share `prisma`, `op`, `id`, `request` and `parent`.
47
+ * Hook contexts extend this with `dataSource` required.
48
+ * Repo contexts extend this with `config`, `dataSources` and `offset` required.
49
+ *
50
+ * Fields that one side requires but the other doesn't have yet are kept optional
51
+ * here — phase 2 wires them into the runtime factories and makes them non-optional.
52
+ */
53
+ interface CrudContext<PRISMA = unknown, OP extends CrudOp = CrudOp> {
54
+ op: OP;
55
+ /**
56
+ * Raw backend client.
57
+ * @deprecated prefer `dataSource.client` — available on hook contexts now,
58
+ * will be available on repo contexts in phase 2.
59
+ */
60
+ prisma: PRISMA;
61
+ id?: string | number;
62
+ request?: unknown;
63
+ parent?: ParentContext;
64
+ /** Datasource adapter for this resource. Required on hook contexts; added to repo contexts in phase 2. */
65
+ dataSource?: DataSourceAdapter;
66
+ /** All datasource adapters registered for this project. Required on repo contexts. */
67
+ dataSources?: DataSourceResolver;
68
+ /** The compiled resource config. Required on repo contexts. */
69
+ config?: Resource;
70
+ }
71
+
72
+ /**
73
+ * Contract for a `kind: "custom"` resource's `repository.ts`.
74
+ *
75
+ * The file default-exports an object implementing whichever operations the
76
+ * resource enables. Discovery is by convention, like `hooks.ts` — see
77
+ * `custom-repository.loader`.
78
+ *
79
+ * Hand-written interfaces, deliberately not `z.infer` of a Zod object:
80
+ * `ResourceHooks` takes that shortcut and its `PRISMACLIENT` generic is erased
81
+ * by the inference, so `ctx.prisma` is always `any` in a hook file. Here the
82
+ * generics survive, and `CustomRepository<Row, PrismaClient>` gives a typed
83
+ * `ctx.prisma`.
84
+ */
85
+ /** Operations a custom repository can implement. */
86
+ type CustomOp = 'findAll' | 'findOne' | 'create' | 'update' | 'patch' | 'delete';
87
+ /**
88
+ * Context passed to every method of a custom `repository.ts`.
89
+ *
90
+ * Extends the shared `CrudContext` base, narrowing `config` and `dataSources` to
91
+ * required and adding `offset` for offset-paginated backends.
92
+ */
93
+ interface CustomRepositoryContext<PRISMA = unknown> extends CrudContext<PRISMA> {
94
+ /** The fully resolved resource config, including columns and views. */
95
+ config: Resource;
96
+ /** Which operation is executing. */
97
+ op: CustomOp;
98
+ /** All datasource adapters registered for this project. */
99
+ dataSources: DataSourceResolver;
100
+ /**
101
+ * Zero-based row offset derived from `page`/`pageSize`, for backends that
102
+ * paginate by offset rather than page number.
103
+ */
104
+ offset: number;
105
+ /**
106
+ * The incoming HTTP request, when the controller layer supplies one.
107
+ * Same value hooks receive as `ctx.request` — use it for auth/tenant context.
108
+ * Cast to `CroutonRequest` (from `@ghentcdh/crouton-api`) for typed access.
109
+ */
110
+ request?: unknown;
111
+ /** Free-text search string from `?q=`. Use with `search` paths to implement custom search. */
112
+ q?: string;
113
+ /** Resolved dot-paths that `?q=` should match against (from `operations.findAll.search`). */
114
+ search?: string[];
115
+ /** Field allowlist for `?filter=`; absent means any column is accepted. */
116
+ filterAllowlist?: string[];
117
+ }
118
+ /** Rows plus the total matching count, used to build the list envelope. */
119
+ interface CustomListResult<T = any> {
120
+ data: T[];
121
+ count: number;
122
+ }
123
+ /**
124
+ * Operations for a resource that declares a `parent`.
125
+ *
126
+ * A nested resource is *only* reachable under its parent, so these replace the
127
+ * unnested operations rather than supplementing them — the parent id is always
128
+ * available, and a query can never accidentally run across every parent.
129
+ */
130
+ interface CustomParentRepository<T = any, PRISMA = unknown> {
131
+ /** List the children of one parent. Returns rows *and* the total count. */
132
+ findAllByParent?(parentId: string | number, params: ListRequest, ctx: CustomRepositoryContext<PRISMA>): Promise<CustomListResult<T>>;
133
+ /** Fetch one child of one parent. Return `null`/`undefined` for a 404. */
134
+ findOneByParent?(parentId: string | number, id: string | number, ctx: CustomRepositoryContext<PRISMA>): Promise<T | null | undefined>;
135
+ createByParent?(parentId: string | number, data: unknown, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
136
+ updateByParent?(parentId: string | number, id: string | number, data: unknown, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
137
+ /** Falls back to `updateByParent` when not implemented. */
138
+ patchByParent?(parentId: string | number, id: string | number, data: unknown, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
139
+ deleteByParent?(parentId: string | number, id: string | number, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
140
+ }
141
+ interface CustomRepository<T = any, PRISMA = unknown> extends CustomParentRepository<T, PRISMA> {
142
+ /**
143
+ * List rows. Must return the total `count` as well — the framework builds the
144
+ * `{ data, request: { count, totalPages, ... } }` envelope from it.
145
+ *
146
+ * `params.filter` holds raw `field:value:operator` strings; `parseFilterString`
147
+ * is exported from crouton-api if you want to reuse the grammar.
148
+ */
149
+ findAll?(params: ListRequest, ctx: CustomRepositoryContext<PRISMA>): Promise<CustomListResult<T>>;
150
+ /** Fetch one row. Return `null`/`undefined` to produce a 404. */
151
+ findOne?(id: string | number, ctx: CustomRepositoryContext<PRISMA>): Promise<T | null | undefined>;
152
+ create?(data: unknown, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
153
+ update?(id: string | number, data: unknown, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
154
+ /**
155
+ * Partial update. Falls back to `update` when not implemented, matching the
156
+ * Prisma repository where `patch` is `update` with a partial schema.
157
+ */
158
+ patch?(id: string | number, data: unknown, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
159
+ delete?(id: string | number, ctx: CustomRepositoryContext<PRISMA>): Promise<T>;
160
+ }
161
+
162
+ declare const WriteOpSchema: z.ZodEnum<{
163
+ create: "create";
164
+ update: "update";
165
+ patch: "patch";
166
+ delete: "delete";
167
+ }>;
168
+ declare const ReadOpSchema: z.ZodEnum<{
169
+ findAll: "findAll";
170
+ findOne: "findOne";
171
+ }>;
172
+ /**
173
+ * The parent a nested read or write is scoped to.
174
+ * Alias of `ParentContext` from the shared context module — kept for backward compatibility.
175
+ */
176
+ type ParentHookContext = ParentContext;
177
+ /** Hook context for write operations (`create`, `update`, `patch`, `delete`). */
178
+ interface WriteHookContext<PRISMACLIENT = unknown> extends CrudContext<PRISMACLIENT, 'create' | 'update' | 'patch' | 'delete'> {
179
+ /** The datasource adapter for this resource. Use `dataSource.client` to reach the raw backend. */
180
+ dataSource: DataSourceAdapter;
181
+ }
182
+ /** Hook context for read operations (`findAll`, `findOne`). */
183
+ interface ReadHookContext<PRISMACLIENT = unknown> extends CrudContext<PRISMACLIENT, 'findAll' | 'findOne'> {
184
+ /** The datasource adapter for this resource. Use `dataSource.client` to reach the raw backend. */
185
+ dataSource: DataSourceAdapter;
186
+ /** The record id for `findOne` reads. Absent on `findAll`. */
187
+ id?: string | number;
188
+ }
189
+ declare const ResourceHooksSchema: z.ZodObject<{
190
+ beforeWrite: z.ZodOptional<z.ZodCustom<(data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
191
+ afterWrite: z.ZodOptional<z.ZodCustom<(result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
192
+ afterRead: z.ZodOptional<z.ZodCustom<(row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown, (row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown>>;
193
+ beforeFindAll: z.ZodOptional<z.ZodCustom<(params: ListRequest, ctx: ReadHookContext) => Promise<ListRequest> | ListRequest, (params: ListRequest, ctx: ReadHookContext) => Promise<ListRequest> | ListRequest>>;
194
+ afterFindAll: z.ZodOptional<z.ZodCustom<(rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[], (rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[]>>;
195
+ }, z.core.$strip>;
196
+ /**
197
+ * Hand-written interface so the `PRISMACLIENT` generic is preserved.
198
+ * `z.infer<typeof ResourceHooksSchema>` erases it (Zod wraps every custom()
199
+ * in `ZodType<T>`, discarding the generic), making `ctx.prisma` always `any`.
200
+ */
201
+ interface ResourceHooks<PRISMACLIENT = unknown> {
202
+ beforeWrite?: (data: unknown, ctx: WriteHookContext<PRISMACLIENT>) => Promise<unknown> | unknown;
203
+ afterWrite?: (result: unknown, ctx: WriteHookContext<PRISMACLIENT>) => Promise<unknown> | unknown;
204
+ afterRead?: (row: unknown, ctx: ReadHookContext<PRISMACLIENT>) => Promise<unknown> | unknown;
205
+ beforeFindAll?: (params: ListRequest, ctx: ReadHookContext<PRISMACLIENT>) => Promise<ListRequest> | ListRequest;
206
+ afterFindAll?: (rows: unknown[], ctx: ReadHookContext<PRISMACLIENT>) => Promise<unknown[]> | unknown[];
207
+ }
208
+
209
+ declare abstract class ResourceConfigLoader {
210
+ abstract loadAll(): Promise<Resource[]>;
211
+ abstract loadByRoute(route: string): Promise<Resource | undefined>;
212
+ /**
213
+ * On-disk directory containing this resource's `resource.json`, if the
214
+ * loader knows one (populated as a side effect of the last `loadAll()`).
215
+ * Returns `undefined` for loaders with no filesystem concept (e.g. a
216
+ * resource defined purely via `resource.ts`) or before any load has run.
217
+ */
218
+ getResourceDir(_route: string): string | undefined;
219
+ }
220
+
221
+ declare class ResourceConfigRegistry<R extends Resource = Resource> {
222
+ private readonly loader;
223
+ private configs;
224
+ constructor(loader: ResourceConfigLoader, initialConfigs: R[]);
225
+ getAll(): Promise<R[]>;
226
+ getByRoute(route: string): Promise<R | undefined>;
227
+ findById(id: string): Promise<R | undefined>;
228
+ /**
229
+ * On-disk directory containing `route`'s `resource.json`, if known.
230
+ * Only meaningful after a load has populated the loader's internal map —
231
+ * callers in dev mode should call `getByRoute`/`getAll` first in the same
232
+ * request to guarantee freshness.
233
+ */
234
+ getResourceDir(route: string): string | undefined;
235
+ }
236
+
237
+ declare const SubResourceConfigSchema: z.ZodObject<{
238
+ column: z.ZodString;
239
+ relation: z.ZodString;
240
+ childRoute: z.ZodString;
241
+ childKind: z.ZodDefault<z.ZodEnum<{
242
+ custom: "custom";
243
+ prisma: "prisma";
244
+ }>>;
245
+ childDir: z.ZodOptional<z.ZodString>;
246
+ childModel: z.ZodString;
247
+ childTable: z.ZodOptional<z.ZodString>;
248
+ foreignKey: z.ZodString;
249
+ name: z.ZodOptional<z.ZodString>;
250
+ title: z.ZodOptional<z.ZodString>;
251
+ idField: z.ZodOptional<z.ZodString>;
252
+ idType: z.ZodDefault<z.ZodEnum<{
253
+ string: "string";
254
+ number: "number";
255
+ }>>;
256
+ views: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
257
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
258
+ ui: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
259
+ columns: z.ZodArray<z.ZodObject<{
260
+ id: z.ZodString;
261
+ label: z.ZodOptional<z.ZodString>;
262
+ labelKey: z.ZodOptional<z.ZodString>;
263
+ sortable: z.ZodOptional<z.ZodBoolean>;
264
+ searchable: z.ZodOptional<z.ZodBoolean>;
265
+ fieldInput: z.ZodOptional<z.ZodObject<{
266
+ $schema: z.ZodOptional<z.ZodString>;
267
+ type: z.ZodOptional<z.ZodString>;
268
+ customRender: z.ZodOptional<z.ZodString>;
269
+ format: z.ZodOptional<z.ZodString>;
270
+ resource: z.ZodOptional<z.ZodString>;
271
+ relationType: z.ZodOptional<z.ZodEnum<{
272
+ oneToOne: "oneToOne";
273
+ manyToOne: "manyToOne";
274
+ oneToMany: "oneToMany";
275
+ manyToMany: "manyToMany";
276
+ }>>;
277
+ foreignKey: z.ZodOptional<z.ZodString>;
278
+ relation: z.ZodOptional<z.ZodString>;
279
+ position: z.ZodOptional<z.ZodNumber>;
280
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
281
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
282
+ label: z.ZodOptional<z.ZodString>;
283
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
284
+ placeholder: z.ZodOptional<z.ZodString>;
285
+ readonly: z.ZodOptional<z.ZodBoolean>;
286
+ disabled: z.ZodOptional<z.ZodBoolean>;
287
+ disabledWhen: z.ZodOptional<z.ZodObject<{
288
+ field: z.ZodString;
289
+ eq: z.ZodOptional<z.ZodUnknown>;
290
+ neq: z.ZodOptional<z.ZodUnknown>;
291
+ exists: z.ZodOptional<z.ZodBoolean>;
292
+ notExists: z.ZodOptional<z.ZodBoolean>;
293
+ }, z.core.$strip>>;
294
+ width: z.ZodOptional<z.ZodString>;
295
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
296
+ customRender: z.ZodOptional<z.ZodString>;
297
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
298
+ sort: z.ZodOptional<z.ZodString>;
299
+ sortDir: z.ZodOptional<z.ZodEnum<{
300
+ asc: "asc";
301
+ desc: "desc";
302
+ }>>;
303
+ direction: z.ZodOptional<z.ZodString>;
304
+ displayKey: z.ZodOptional<z.ZodString>;
305
+ resource: z.ZodOptional<z.ZodString>;
306
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
307
+ detail: z.ZodOptional<z.ZodObject<{
308
+ layout: z.ZodEnum<{
309
+ row: "row";
310
+ collapse: "collapse";
311
+ }>;
312
+ titleKey: z.ZodOptional<z.ZodString>;
313
+ items: z.ZodArray<z.ZodObject<{
314
+ property: z.ZodString;
315
+ type: z.ZodOptional<z.ZodString>;
316
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
317
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
318
+ width: z.ZodOptional<z.ZodString>;
319
+ }, z.core.$strip>>;
320
+ controls: z.ZodOptional<z.ZodNever>;
321
+ }, z.core.$strip>>;
322
+ }, z.core.$strip>>;
323
+ enumName: z.ZodOptional<z.ZodString>;
324
+ }, z.core.$strip>>;
325
+ defaultSort: z.ZodOptional<z.ZodString>;
326
+ defaultSortDir: z.ZodOptional<z.ZodEnum<{
327
+ asc: "asc";
328
+ desc: "desc";
329
+ }>>;
330
+ }, z.core.$strip>>>;
331
+ operations: z.ZodObject<{
332
+ findAll: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
333
+ uri: z.ZodString;
334
+ method: z.ZodOptional<z.ZodString>;
335
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
336
+ public: z.ZodLiteral<true>;
337
+ }, z.core.$strip>, z.ZodObject<{
338
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
339
+ }, z.core.$strip>]>>;
340
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
341
+ search: z.ZodOptional<z.ZodArray<z.ZodString>>;
342
+ filter: z.ZodOptional<z.ZodArray<z.ZodString>>;
343
+ }, z.core.$strip>, z.ZodObject<{
344
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
345
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
346
+ public: z.ZodLiteral<true>;
347
+ }, z.core.$strip>, z.ZodObject<{
348
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
349
+ }, z.core.$strip>]>>;
350
+ search: z.ZodOptional<z.ZodArray<z.ZodString>>;
351
+ filter: z.ZodOptional<z.ZodArray<z.ZodString>>;
352
+ }, z.core.$strip>]>>;
353
+ findOne: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
354
+ uri: z.ZodString;
355
+ method: z.ZodOptional<z.ZodString>;
356
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
357
+ public: z.ZodLiteral<true>;
358
+ }, z.core.$strip>, z.ZodObject<{
359
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
360
+ }, z.core.$strip>]>>;
361
+ }, z.core.$strip>, z.ZodObject<{
362
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
363
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
364
+ public: z.ZodLiteral<true>;
365
+ }, z.core.$strip>, z.ZodObject<{
366
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
367
+ }, z.core.$strip>]>>;
368
+ }, z.core.$strip>]>>;
369
+ create: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
370
+ uri: z.ZodString;
371
+ method: z.ZodOptional<z.ZodString>;
372
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
373
+ public: z.ZodLiteral<true>;
374
+ }, z.core.$strip>, z.ZodObject<{
375
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
376
+ }, z.core.$strip>]>>;
377
+ }, z.core.$strip>, z.ZodObject<{
378
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
379
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
380
+ public: z.ZodLiteral<true>;
381
+ }, z.core.$strip>, z.ZodObject<{
382
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
383
+ }, z.core.$strip>]>>;
384
+ }, z.core.$strip>]>>;
385
+ update: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
386
+ uri: z.ZodString;
387
+ method: z.ZodOptional<z.ZodString>;
388
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
389
+ public: z.ZodLiteral<true>;
390
+ }, z.core.$strip>, z.ZodObject<{
391
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
392
+ }, z.core.$strip>]>>;
393
+ }, z.core.$strip>, z.ZodObject<{
394
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
395
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
396
+ public: z.ZodLiteral<true>;
397
+ }, z.core.$strip>, z.ZodObject<{
398
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
399
+ }, z.core.$strip>]>>;
400
+ }, z.core.$strip>]>>;
401
+ patch: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
402
+ uri: z.ZodString;
403
+ method: z.ZodOptional<z.ZodString>;
404
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
405
+ public: z.ZodLiteral<true>;
406
+ }, z.core.$strip>, z.ZodObject<{
407
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
408
+ }, z.core.$strip>]>>;
409
+ }, z.core.$strip>, z.ZodObject<{
410
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
411
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
412
+ public: z.ZodLiteral<true>;
413
+ }, z.core.$strip>, z.ZodObject<{
414
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
415
+ }, z.core.$strip>]>>;
416
+ }, z.core.$strip>]>>;
417
+ delete: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
418
+ uri: z.ZodString;
419
+ method: z.ZodOptional<z.ZodString>;
420
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
421
+ public: z.ZodLiteral<true>;
422
+ }, z.core.$strip>, z.ZodObject<{
423
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
424
+ }, z.core.$strip>]>>;
425
+ }, z.core.$strip>, z.ZodObject<{
426
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
427
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
428
+ public: z.ZodLiteral<true>;
429
+ }, z.core.$strip>, z.ZodObject<{
430
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
431
+ }, z.core.$strip>]>>;
432
+ }, z.core.$strip>]>>;
433
+ }, z.core.$strip>;
434
+ childInclude: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
435
+ calculatedColumns: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodObject<{
436
+ id: z.ZodString;
437
+ alias: z.ZodString;
438
+ label: z.ZodOptional<z.ZodString>;
439
+ sqlExpression: z.ZodString;
440
+ type: z.ZodOptional<z.ZodEnum<{
441
+ string: "string";
442
+ number: "number";
443
+ boolean: "boolean";
444
+ }>>;
445
+ position: z.ZodOptional<z.ZodNumber>;
446
+ fieldInput: z.ZodOptional<z.ZodObject<{
447
+ $schema: z.ZodOptional<z.ZodString>;
448
+ type: z.ZodOptional<z.ZodString>;
449
+ customRender: z.ZodOptional<z.ZodString>;
450
+ format: z.ZodOptional<z.ZodString>;
451
+ resource: z.ZodOptional<z.ZodString>;
452
+ relationType: z.ZodOptional<z.ZodEnum<{
453
+ oneToOne: "oneToOne";
454
+ manyToOne: "manyToOne";
455
+ oneToMany: "oneToMany";
456
+ manyToMany: "manyToMany";
457
+ }>>;
458
+ foreignKey: z.ZodOptional<z.ZodString>;
459
+ relation: z.ZodOptional<z.ZodString>;
460
+ position: z.ZodOptional<z.ZodNumber>;
461
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
462
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
463
+ label: z.ZodOptional<z.ZodString>;
464
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
465
+ placeholder: z.ZodOptional<z.ZodString>;
466
+ readonly: z.ZodOptional<z.ZodBoolean>;
467
+ disabled: z.ZodOptional<z.ZodBoolean>;
468
+ disabledWhen: z.ZodOptional<z.ZodObject<{
469
+ field: z.ZodString;
470
+ eq: z.ZodOptional<z.ZodUnknown>;
471
+ neq: z.ZodOptional<z.ZodUnknown>;
472
+ exists: z.ZodOptional<z.ZodBoolean>;
473
+ notExists: z.ZodOptional<z.ZodBoolean>;
474
+ }, z.core.$strip>>;
475
+ width: z.ZodOptional<z.ZodString>;
476
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
477
+ customRender: z.ZodOptional<z.ZodString>;
478
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
479
+ sort: z.ZodOptional<z.ZodString>;
480
+ sortDir: z.ZodOptional<z.ZodEnum<{
481
+ asc: "asc";
482
+ desc: "desc";
483
+ }>>;
484
+ direction: z.ZodOptional<z.ZodString>;
485
+ displayKey: z.ZodOptional<z.ZodString>;
486
+ resource: z.ZodOptional<z.ZodString>;
487
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
488
+ detail: z.ZodOptional<z.ZodObject<{
489
+ layout: z.ZodEnum<{
490
+ row: "row";
491
+ collapse: "collapse";
492
+ }>;
493
+ titleKey: z.ZodOptional<z.ZodString>;
494
+ items: z.ZodArray<z.ZodObject<{
495
+ property: z.ZodString;
496
+ type: z.ZodOptional<z.ZodString>;
497
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
498
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
499
+ width: z.ZodOptional<z.ZodString>;
500
+ }, z.core.$strip>>;
501
+ controls: z.ZodOptional<z.ZodNever>;
502
+ }, z.core.$strip>>;
503
+ }, z.core.$strip>>;
504
+ }, z.core.$strip>, z.ZodTransform<{
505
+ id: string;
506
+ alias: string;
507
+ sqlExpression: string;
508
+ label?: string | undefined;
509
+ type?: "string" | "number" | "boolean" | undefined;
510
+ position?: number | undefined;
511
+ fieldInput?: {
512
+ $schema?: string | undefined;
513
+ type?: string | undefined;
514
+ customRender?: string | undefined;
515
+ format?: string | undefined;
516
+ resource?: string | undefined;
517
+ relationType?: "oneToOne" | "manyToOne" | "oneToMany" | "manyToMany" | undefined;
518
+ foreignKey?: string | undefined;
519
+ relation?: string | undefined;
520
+ position?: number | undefined;
521
+ defaultValue?: unknown;
522
+ options?: unknown;
523
+ detail?: {
524
+ layout: "row" | "collapse";
525
+ items: {
526
+ property: string;
527
+ type?: string | undefined;
528
+ options?: Record<string, unknown> | undefined;
529
+ hideLabel?: boolean | undefined;
530
+ width?: string | undefined;
531
+ }[];
532
+ titleKey?: string | undefined;
533
+ controls?: undefined;
534
+ } | undefined;
535
+ } | undefined;
536
+ }, {
537
+ id: string;
538
+ alias: string;
539
+ sqlExpression: string;
540
+ label?: string | undefined;
541
+ type?: "string" | "number" | "boolean" | undefined;
542
+ position?: number | undefined;
543
+ fieldInput?: {
544
+ $schema?: string | undefined;
545
+ type?: string | undefined;
546
+ customRender?: string | undefined;
547
+ format?: string | undefined;
548
+ resource?: string | undefined;
549
+ relationType?: "oneToOne" | "manyToOne" | "oneToMany" | "manyToMany" | undefined;
550
+ foreignKey?: string | undefined;
551
+ relation?: string | undefined;
552
+ position?: number | undefined;
553
+ defaultValue?: unknown;
554
+ options?: unknown;
555
+ detail?: {
556
+ layout: "row" | "collapse";
557
+ items: {
558
+ property: string;
559
+ type?: string | undefined;
560
+ options?: Record<string, unknown> | undefined;
561
+ hideLabel?: boolean | undefined;
562
+ width?: string | undefined;
563
+ }[];
564
+ titleKey?: string | undefined;
565
+ controls?: undefined;
566
+ } | undefined;
567
+ } | undefined;
568
+ }>>>>;
569
+ includeRelationInParentFindOne: z.ZodOptional<z.ZodBoolean>;
570
+ hiddenInTable: z.ZodOptional<z.ZodBoolean>;
571
+ findOneOrderBy: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
572
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
573
+ id: z.ZodString;
574
+ column: z.ZodOptional<z.ZodString>;
575
+ label: z.ZodOptional<z.ZodString>;
576
+ labelKey: z.ZodOptional<z.ZodString>;
577
+ hiddenInTable: z.ZodDefault<z.ZodBoolean>;
578
+ hiddenInForm: z.ZodDefault<z.ZodBoolean>;
579
+ hiddenInView: z.ZodDefault<z.ZodBoolean>;
580
+ createable: z.ZodDefault<z.ZodBoolean>;
581
+ updateable: z.ZodDefault<z.ZodBoolean>;
582
+ hideLabel: z.ZodDefault<z.ZodBoolean>;
583
+ displayKey: z.ZodOptional<z.ZodString>;
584
+ sortId: z.ZodOptional<z.ZodString>;
585
+ enum: z.ZodOptional<z.ZodString>;
586
+ idField: z.ZodDefault<z.ZodBoolean>;
587
+ showInLookup: z.ZodOptional<z.ZodBoolean>;
588
+ unique: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
589
+ scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
590
+ caseInsensitive: z.ZodOptional<z.ZodBoolean>;
591
+ message: z.ZodOptional<z.ZodString>;
592
+ }, z.core.$strip>]>>;
593
+ type: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
594
+ string: "string";
595
+ number: "number";
596
+ boolean: "boolean";
597
+ object: "object";
598
+ array: "array";
599
+ date: "date";
600
+ integer: "integer";
601
+ "date-time": "date-time";
602
+ }>, z.ZodType<_ghentcdh_crouton_core.JsonSchemaFragment, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonSchemaFragment, unknown>>]>>;
603
+ required: z.ZodOptional<z.ZodBoolean>;
604
+ relation: z.ZodOptional<z.ZodObject<{
605
+ resource: z.ZodString;
606
+ type: z.ZodOptional<z.ZodEnum<{
607
+ oneToOne: "oneToOne";
608
+ manyToOne: "manyToOne";
609
+ oneToMany: "oneToMany";
610
+ manyToMany: "manyToMany";
611
+ }>>;
612
+ foreignKey: z.ZodOptional<z.ZodString>;
613
+ prismaField: z.ZodOptional<z.ZodString>;
614
+ sort: z.ZodOptional<z.ZodString>;
615
+ sortDir: z.ZodOptional<z.ZodEnum<{
616
+ asc: "asc";
617
+ desc: "desc";
618
+ }>>;
619
+ embed: z.ZodDefault<z.ZodBoolean>;
620
+ }, z.core.$strip>>;
621
+ fieldInput: z.ZodOptional<z.ZodObject<{
622
+ $schema: z.ZodOptional<z.ZodString>;
623
+ type: z.ZodOptional<z.ZodString>;
624
+ customRender: z.ZodOptional<z.ZodString>;
625
+ format: z.ZodOptional<z.ZodString>;
626
+ resource: z.ZodOptional<z.ZodString>;
627
+ relationType: z.ZodOptional<z.ZodEnum<{
628
+ oneToOne: "oneToOne";
629
+ manyToOne: "manyToOne";
630
+ oneToMany: "oneToMany";
631
+ manyToMany: "manyToMany";
632
+ }>>;
633
+ foreignKey: z.ZodOptional<z.ZodString>;
634
+ relation: z.ZodOptional<z.ZodString>;
635
+ position: z.ZodOptional<z.ZodNumber>;
636
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
637
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
638
+ label: z.ZodOptional<z.ZodString>;
639
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
640
+ placeholder: z.ZodOptional<z.ZodString>;
641
+ readonly: z.ZodOptional<z.ZodBoolean>;
642
+ disabled: z.ZodOptional<z.ZodBoolean>;
643
+ disabledWhen: z.ZodOptional<z.ZodObject<{
644
+ field: z.ZodString;
645
+ eq: z.ZodOptional<z.ZodUnknown>;
646
+ neq: z.ZodOptional<z.ZodUnknown>;
647
+ exists: z.ZodOptional<z.ZodBoolean>;
648
+ notExists: z.ZodOptional<z.ZodBoolean>;
649
+ }, z.core.$strip>>;
650
+ width: z.ZodOptional<z.ZodString>;
651
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
652
+ customRender: z.ZodOptional<z.ZodString>;
653
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
654
+ sort: z.ZodOptional<z.ZodString>;
655
+ sortDir: z.ZodOptional<z.ZodEnum<{
656
+ asc: "asc";
657
+ desc: "desc";
658
+ }>>;
659
+ direction: z.ZodOptional<z.ZodString>;
660
+ displayKey: z.ZodOptional<z.ZodString>;
661
+ resource: z.ZodOptional<z.ZodString>;
662
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
663
+ detail: z.ZodOptional<z.ZodObject<{
664
+ layout: z.ZodEnum<{
665
+ row: "row";
666
+ collapse: "collapse";
667
+ }>;
668
+ titleKey: z.ZodOptional<z.ZodString>;
669
+ items: z.ZodArray<z.ZodObject<{
670
+ property: z.ZodString;
671
+ type: z.ZodOptional<z.ZodString>;
672
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
673
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
674
+ width: z.ZodOptional<z.ZodString>;
675
+ }, z.core.$strip>>;
676
+ controls: z.ZodOptional<z.ZodNever>;
677
+ }, z.core.$strip>>;
678
+ }, z.core.$strip>>;
679
+ extend: z.ZodOptional<z.ZodString>;
680
+ columns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
681
+ computed: z.ZodOptional<z.ZodObject<{
682
+ sql: z.ZodString;
683
+ type: z.ZodOptional<z.ZodEnum<{
684
+ string: "string";
685
+ number: "number";
686
+ boolean: "boolean";
687
+ }>>;
688
+ }, z.core.$strip>>;
689
+ position: z.ZodOptional<z.ZodNumber>;
690
+ }, z.core.$strip>>>;
691
+ relationType: z.ZodOptional<z.ZodEnum<{
692
+ oneToOne: "oneToOne";
693
+ manyToOne: "manyToOne";
694
+ oneToMany: "oneToMany";
695
+ manyToMany: "manyToMany";
696
+ }>>;
697
+ displayKey: z.ZodOptional<z.ZodString>;
698
+ search: z.ZodOptional<z.ZodArray<z.ZodString>>;
699
+ layout: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
700
+ rowActions: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
701
+ id: z.ZodString;
702
+ label: z.ZodString;
703
+ icon: z.ZodOptional<z.ZodString>;
704
+ tooltip: z.ZodOptional<z.ZodString>;
705
+ condition: z.ZodOptional<z.ZodObject<{
706
+ field: z.ZodString;
707
+ op: z.ZodDefault<z.ZodEnum<{
708
+ gt: "gt";
709
+ lt: "lt";
710
+ eq: "eq";
711
+ neq: "neq";
712
+ exists: "exists";
713
+ notExists: "notExists";
714
+ gte: "gte";
715
+ lte: "lte";
716
+ }>>;
717
+ value: z.ZodOptional<z.ZodUnknown>;
718
+ }, z.core.$strip>>;
719
+ type: z.ZodDefault<z.ZodLiteral<"procedure">>;
720
+ procedure: z.ZodString;
721
+ method: z.ZodDefault<z.ZodOptional<z.ZodString>>;
722
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
723
+ pendingMessage: z.ZodOptional<z.ZodString>;
724
+ successMessage: z.ZodOptional<z.ZodString>;
725
+ errorMessage: z.ZodOptional<z.ZodString>;
726
+ }, z.core.$strip>, z.ZodObject<{
727
+ id: z.ZodString;
728
+ label: z.ZodString;
729
+ icon: z.ZodOptional<z.ZodString>;
730
+ tooltip: z.ZodOptional<z.ZodString>;
731
+ condition: z.ZodOptional<z.ZodObject<{
732
+ field: z.ZodString;
733
+ op: z.ZodDefault<z.ZodEnum<{
734
+ gt: "gt";
735
+ lt: "lt";
736
+ eq: "eq";
737
+ neq: "neq";
738
+ exists: "exists";
739
+ notExists: "notExists";
740
+ gte: "gte";
741
+ lte: "lte";
742
+ }>>;
743
+ value: z.ZodOptional<z.ZodUnknown>;
744
+ }, z.core.$strip>>;
745
+ type: z.ZodDefault<z.ZodLiteral<"link">>;
746
+ href: z.ZodString;
747
+ blank: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
748
+ }, z.core.$strip>]>, z.ZodTransform<({
749
+ tooltip: string;
750
+ } & {
751
+ id: string;
752
+ label: string;
753
+ type: "procedure";
754
+ procedure: string;
755
+ method: string;
756
+ icon?: string | undefined;
757
+ tooltip?: string | undefined;
758
+ condition?: {
759
+ field: string;
760
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
761
+ value?: unknown;
762
+ } | undefined;
763
+ data?: Record<string, unknown> | undefined;
764
+ pendingMessage?: string | undefined;
765
+ successMessage?: string | undefined;
766
+ errorMessage?: string | undefined;
767
+ }) | ({
768
+ tooltip: string;
769
+ } & {
770
+ id: string;
771
+ label: string;
772
+ type: "link";
773
+ href: string;
774
+ blank: boolean;
775
+ icon?: string | undefined;
776
+ tooltip?: string | undefined;
777
+ condition?: {
778
+ field: string;
779
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
780
+ value?: unknown;
781
+ } | undefined;
782
+ }), {
783
+ id: string;
784
+ label: string;
785
+ type: "procedure";
786
+ procedure: string;
787
+ method: string;
788
+ icon?: string | undefined;
789
+ tooltip?: string | undefined;
790
+ condition?: {
791
+ field: string;
792
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
793
+ value?: unknown;
794
+ } | undefined;
795
+ data?: Record<string, unknown> | undefined;
796
+ pendingMessage?: string | undefined;
797
+ successMessage?: string | undefined;
798
+ errorMessage?: string | undefined;
799
+ } | {
800
+ id: string;
801
+ label: string;
802
+ type: "link";
803
+ href: string;
804
+ blank: boolean;
805
+ icon?: string | undefined;
806
+ tooltip?: string | undefined;
807
+ condition?: {
808
+ field: string;
809
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
810
+ value?: unknown;
811
+ } | undefined;
812
+ }>>>>;
813
+ tableActions: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
814
+ id: z.ZodString;
815
+ label: z.ZodString;
816
+ icon: z.ZodOptional<z.ZodString>;
817
+ tooltip: z.ZodOptional<z.ZodString>;
818
+ condition: z.ZodOptional<z.ZodObject<{
819
+ field: z.ZodString;
820
+ op: z.ZodDefault<z.ZodEnum<{
821
+ gt: "gt";
822
+ lt: "lt";
823
+ eq: "eq";
824
+ neq: "neq";
825
+ exists: "exists";
826
+ notExists: "notExists";
827
+ gte: "gte";
828
+ lte: "lte";
829
+ }>>;
830
+ value: z.ZodOptional<z.ZodUnknown>;
831
+ }, z.core.$strip>>;
832
+ type: z.ZodDefault<z.ZodLiteral<"procedure">>;
833
+ procedure: z.ZodString;
834
+ method: z.ZodDefault<z.ZodOptional<z.ZodString>>;
835
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
836
+ pendingMessage: z.ZodOptional<z.ZodString>;
837
+ successMessage: z.ZodOptional<z.ZodString>;
838
+ errorMessage: z.ZodOptional<z.ZodString>;
839
+ }, z.core.$strip>, z.ZodObject<{
840
+ id: z.ZodString;
841
+ label: z.ZodString;
842
+ icon: z.ZodOptional<z.ZodString>;
843
+ tooltip: z.ZodOptional<z.ZodString>;
844
+ condition: z.ZodOptional<z.ZodObject<{
845
+ field: z.ZodString;
846
+ op: z.ZodDefault<z.ZodEnum<{
847
+ gt: "gt";
848
+ lt: "lt";
849
+ eq: "eq";
850
+ neq: "neq";
851
+ exists: "exists";
852
+ notExists: "notExists";
853
+ gte: "gte";
854
+ lte: "lte";
855
+ }>>;
856
+ value: z.ZodOptional<z.ZodUnknown>;
857
+ }, z.core.$strip>>;
858
+ type: z.ZodDefault<z.ZodLiteral<"link">>;
859
+ href: z.ZodString;
860
+ blank: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
861
+ }, z.core.$strip>]>, z.ZodTransform<({
862
+ tooltip: string;
863
+ } & {
864
+ id: string;
865
+ label: string;
866
+ type: "procedure";
867
+ procedure: string;
868
+ method: string;
869
+ icon?: string | undefined;
870
+ tooltip?: string | undefined;
871
+ condition?: {
872
+ field: string;
873
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
874
+ value?: unknown;
875
+ } | undefined;
876
+ data?: Record<string, unknown> | undefined;
877
+ pendingMessage?: string | undefined;
878
+ successMessage?: string | undefined;
879
+ errorMessage?: string | undefined;
880
+ }) | ({
881
+ tooltip: string;
882
+ } & {
883
+ id: string;
884
+ label: string;
885
+ type: "link";
886
+ href: string;
887
+ blank: boolean;
888
+ icon?: string | undefined;
889
+ tooltip?: string | undefined;
890
+ condition?: {
891
+ field: string;
892
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
893
+ value?: unknown;
894
+ } | undefined;
895
+ }), {
896
+ id: string;
897
+ label: string;
898
+ type: "procedure";
899
+ procedure: string;
900
+ method: string;
901
+ icon?: string | undefined;
902
+ tooltip?: string | undefined;
903
+ condition?: {
904
+ field: string;
905
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
906
+ value?: unknown;
907
+ } | undefined;
908
+ data?: Record<string, unknown> | undefined;
909
+ pendingMessage?: string | undefined;
910
+ successMessage?: string | undefined;
911
+ errorMessage?: string | undefined;
912
+ } | {
913
+ id: string;
914
+ label: string;
915
+ type: "link";
916
+ href: string;
917
+ blank: boolean;
918
+ icon?: string | undefined;
919
+ tooltip?: string | undefined;
920
+ condition?: {
921
+ field: string;
922
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
923
+ value?: unknown;
924
+ } | undefined;
925
+ }>>>>;
926
+ noRoutes: z.ZodOptional<z.ZodBoolean>;
927
+ repository: z.ZodOptional<z.ZodCustom<CustomRepository<any, unknown>, CustomRepository<any, unknown>>>;
928
+ hooks: z.ZodOptional<z.ZodObject<{
929
+ beforeWrite: z.ZodOptional<z.ZodCustom<(data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
930
+ afterWrite: z.ZodOptional<z.ZodCustom<(result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
931
+ afterRead: z.ZodOptional<z.ZodCustom<(row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown, (row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown>>;
932
+ beforeFindAll: z.ZodOptional<z.ZodCustom<(params: _ghentcdh_crouton_core.ListRequest, ctx: ReadHookContext) => Promise<_ghentcdh_crouton_core.ListRequest> | _ghentcdh_crouton_core.ListRequest, (params: _ghentcdh_crouton_core.ListRequest, ctx: ReadHookContext) => Promise<_ghentcdh_crouton_core.ListRequest> | _ghentcdh_crouton_core.ListRequest>>;
933
+ afterFindAll: z.ZodOptional<z.ZodCustom<(rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[], (rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[]>>;
934
+ }, z.core.$strip>>;
935
+ }, z.core.$strip>;
936
+ type SubResourceConfig = z.infer<typeof SubResourceConfigSchema>;
937
+
938
+ declare const ResourceSchema: z.ZodObject<{
939
+ id: z.ZodOptional<z.ZodString>;
940
+ title: z.ZodOptional<z.ZodString>;
941
+ layout: z.ZodOptional<z.ZodObject<{
942
+ form: z.ZodOptional<z.ZodIntersection<z.ZodType<_ghentcdh_crouton_core.FormLayoutNode, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.FormLayoutNode, unknown>>, z.ZodObject<{
943
+ container: z.ZodDefault<z.ZodObject<{
944
+ mode: z.ZodDefault<z.ZodEnum<{
945
+ page: "page";
946
+ modal: "modal";
947
+ }>>;
948
+ size: z.ZodDefault<z.ZodEnum<{
949
+ sm: "sm";
950
+ lg: "lg";
951
+ xs: "xs";
952
+ xl: "xl";
953
+ }>>;
954
+ }, z.core.$strip>>;
955
+ }, z.core.$strip>>>;
956
+ view: z.ZodOptional<z.ZodIntersection<z.ZodType<_ghentcdh_crouton_core.FormLayoutNode, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.FormLayoutNode, unknown>>, z.ZodObject<{
957
+ container: z.ZodDefault<z.ZodObject<{
958
+ mode: z.ZodDefault<z.ZodEnum<{
959
+ page: "page";
960
+ modal: "modal";
961
+ }>>;
962
+ size: z.ZodDefault<z.ZodEnum<{
963
+ sm: "sm";
964
+ lg: "lg";
965
+ xs: "xs";
966
+ xl: "xl";
967
+ }>>;
968
+ }, z.core.$strip>>;
969
+ component: z.ZodOptional<z.ZodString>;
970
+ }, z.core.$strip>>>;
971
+ table: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
972
+ type: z.ZodOptional<z.ZodLiteral<"table">>;
973
+ title: z.ZodOptional<z.ZodString>;
974
+ label: z.ZodOptional<z.ZodString>;
975
+ filterFields: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
976
+ defaultSort: z.ZodOptional<z.ZodObject<{
977
+ field: z.ZodDefault<z.ZodString>;
978
+ sortDir: z.ZodDefault<z.ZodEnum<{
979
+ asc: "asc";
980
+ desc: "desc";
981
+ }>>;
982
+ }, z.core.$strip>>;
983
+ items: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodPipe<z.ZodPipe<z.ZodObject<{
984
+ id: z.ZodString;
985
+ }, z.core.$loose>, z.ZodTransform<{
986
+ [x: string]: unknown;
987
+ id: string;
988
+ }, {
989
+ [x: string]: unknown;
990
+ id: string;
991
+ }>>, z.ZodObject<{
992
+ type: z.ZodOptional<z.ZodString>;
993
+ readonly: z.ZodOptional<z.ZodBoolean>;
994
+ id: z.ZodString;
995
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
996
+ label: z.ZodOptional<z.ZodString>;
997
+ showWhen: z.ZodOptional<z.ZodObject<{
998
+ field: z.ZodString;
999
+ eq: z.ZodOptional<z.ZodUnknown>;
1000
+ neq: z.ZodOptional<z.ZodUnknown>;
1001
+ exists: z.ZodOptional<z.ZodBoolean>;
1002
+ notExists: z.ZodOptional<z.ZodBoolean>;
1003
+ }, z.core.$strip>>;
1004
+ hideWhen: z.ZodOptional<z.ZodObject<{
1005
+ field: z.ZodString;
1006
+ eq: z.ZodOptional<z.ZodUnknown>;
1007
+ neq: z.ZodOptional<z.ZodUnknown>;
1008
+ exists: z.ZodOptional<z.ZodBoolean>;
1009
+ notExists: z.ZodOptional<z.ZodBoolean>;
1010
+ }, z.core.$strip>>;
1011
+ disabled: z.ZodOptional<z.ZodBoolean>;
1012
+ disabledWhen: z.ZodOptional<z.ZodObject<{
1013
+ field: z.ZodString;
1014
+ eq: z.ZodOptional<z.ZodUnknown>;
1015
+ neq: z.ZodOptional<z.ZodUnknown>;
1016
+ exists: z.ZodOptional<z.ZodBoolean>;
1017
+ notExists: z.ZodOptional<z.ZodBoolean>;
1018
+ }, z.core.$strip>>;
1019
+ sortable: z.ZodDefault<z.ZodBoolean>;
1020
+ sortId: z.ZodOptional<z.ZodString>;
1021
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
1022
+ md: "md";
1023
+ sm: "sm";
1024
+ lg: "lg";
1025
+ xs: "xs";
1026
+ xl: "xl";
1027
+ }>, z.ZodString]>>;
1028
+ minWidth: z.ZodDefault<z.ZodString>;
1029
+ maxWidth: z.ZodDefault<z.ZodString>;
1030
+ align: z.ZodOptional<z.ZodEnum<{
1031
+ left: "left";
1032
+ center: "center";
1033
+ right: "right";
1034
+ }>>;
1035
+ truncate: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber]>>;
1036
+ pin: z.ZodOptional<z.ZodEnum<{
1037
+ left: "left";
1038
+ right: "right";
1039
+ }>>;
1040
+ visible: z.ZodDefault<z.ZodBoolean>;
1041
+ headerTooltip: z.ZodOptional<z.ZodString>;
1042
+ }, z.core.$strip>>, z.ZodObject<{
1043
+ component: z.ZodString;
1044
+ colspan: z.ZodDefault<z.ZodNumber>;
1045
+ rowspan: z.ZodDefault<z.ZodNumber>;
1046
+ width: z.ZodDefault<z.ZodString>;
1047
+ label: z.ZodOptional<z.ZodString>;
1048
+ }, z.core.$strip>]>>>;
1049
+ rowActions: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
1050
+ id: z.ZodString;
1051
+ label: z.ZodString;
1052
+ icon: z.ZodOptional<z.ZodString>;
1053
+ tooltip: z.ZodOptional<z.ZodString>;
1054
+ condition: z.ZodOptional<z.ZodObject<{
1055
+ field: z.ZodString;
1056
+ op: z.ZodDefault<z.ZodEnum<{
1057
+ gt: "gt";
1058
+ lt: "lt";
1059
+ eq: "eq";
1060
+ neq: "neq";
1061
+ exists: "exists";
1062
+ notExists: "notExists";
1063
+ gte: "gte";
1064
+ lte: "lte";
1065
+ }>>;
1066
+ value: z.ZodOptional<z.ZodUnknown>;
1067
+ }, z.core.$strip>>;
1068
+ type: z.ZodDefault<z.ZodLiteral<"procedure">>;
1069
+ procedure: z.ZodString;
1070
+ method: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1071
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1072
+ pendingMessage: z.ZodOptional<z.ZodString>;
1073
+ successMessage: z.ZodOptional<z.ZodString>;
1074
+ errorMessage: z.ZodOptional<z.ZodString>;
1075
+ }, z.core.$strip>, z.ZodObject<{
1076
+ id: z.ZodString;
1077
+ label: z.ZodString;
1078
+ icon: z.ZodOptional<z.ZodString>;
1079
+ tooltip: z.ZodOptional<z.ZodString>;
1080
+ condition: z.ZodOptional<z.ZodObject<{
1081
+ field: z.ZodString;
1082
+ op: z.ZodDefault<z.ZodEnum<{
1083
+ gt: "gt";
1084
+ lt: "lt";
1085
+ eq: "eq";
1086
+ neq: "neq";
1087
+ exists: "exists";
1088
+ notExists: "notExists";
1089
+ gte: "gte";
1090
+ lte: "lte";
1091
+ }>>;
1092
+ value: z.ZodOptional<z.ZodUnknown>;
1093
+ }, z.core.$strip>>;
1094
+ type: z.ZodDefault<z.ZodLiteral<"link">>;
1095
+ href: z.ZodString;
1096
+ blank: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1097
+ }, z.core.$strip>]>, z.ZodTransform<({
1098
+ tooltip: string;
1099
+ } & {
1100
+ id: string;
1101
+ label: string;
1102
+ type: "procedure";
1103
+ procedure: string;
1104
+ method: string;
1105
+ icon?: string | undefined;
1106
+ tooltip?: string | undefined;
1107
+ condition?: {
1108
+ field: string;
1109
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1110
+ value?: unknown;
1111
+ } | undefined;
1112
+ data?: Record<string, unknown> | undefined;
1113
+ pendingMessage?: string | undefined;
1114
+ successMessage?: string | undefined;
1115
+ errorMessage?: string | undefined;
1116
+ }) | ({
1117
+ tooltip: string;
1118
+ } & {
1119
+ id: string;
1120
+ label: string;
1121
+ type: "link";
1122
+ href: string;
1123
+ blank: boolean;
1124
+ icon?: string | undefined;
1125
+ tooltip?: string | undefined;
1126
+ condition?: {
1127
+ field: string;
1128
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1129
+ value?: unknown;
1130
+ } | undefined;
1131
+ }), {
1132
+ id: string;
1133
+ label: string;
1134
+ type: "procedure";
1135
+ procedure: string;
1136
+ method: string;
1137
+ icon?: string | undefined;
1138
+ tooltip?: string | undefined;
1139
+ condition?: {
1140
+ field: string;
1141
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1142
+ value?: unknown;
1143
+ } | undefined;
1144
+ data?: Record<string, unknown> | undefined;
1145
+ pendingMessage?: string | undefined;
1146
+ successMessage?: string | undefined;
1147
+ errorMessage?: string | undefined;
1148
+ } | {
1149
+ id: string;
1150
+ label: string;
1151
+ type: "link";
1152
+ href: string;
1153
+ blank: boolean;
1154
+ icon?: string | undefined;
1155
+ tooltip?: string | undefined;
1156
+ condition?: {
1157
+ field: string;
1158
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1159
+ value?: unknown;
1160
+ } | undefined;
1161
+ }>>>>;
1162
+ tableActions: z.ZodDefault<z.ZodArray<z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
1163
+ id: z.ZodString;
1164
+ label: z.ZodString;
1165
+ icon: z.ZodOptional<z.ZodString>;
1166
+ tooltip: z.ZodOptional<z.ZodString>;
1167
+ condition: z.ZodOptional<z.ZodObject<{
1168
+ field: z.ZodString;
1169
+ op: z.ZodDefault<z.ZodEnum<{
1170
+ gt: "gt";
1171
+ lt: "lt";
1172
+ eq: "eq";
1173
+ neq: "neq";
1174
+ exists: "exists";
1175
+ notExists: "notExists";
1176
+ gte: "gte";
1177
+ lte: "lte";
1178
+ }>>;
1179
+ value: z.ZodOptional<z.ZodUnknown>;
1180
+ }, z.core.$strip>>;
1181
+ type: z.ZodDefault<z.ZodLiteral<"procedure">>;
1182
+ procedure: z.ZodString;
1183
+ method: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1184
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1185
+ pendingMessage: z.ZodOptional<z.ZodString>;
1186
+ successMessage: z.ZodOptional<z.ZodString>;
1187
+ errorMessage: z.ZodOptional<z.ZodString>;
1188
+ }, z.core.$strip>, z.ZodObject<{
1189
+ id: z.ZodString;
1190
+ label: z.ZodString;
1191
+ icon: z.ZodOptional<z.ZodString>;
1192
+ tooltip: z.ZodOptional<z.ZodString>;
1193
+ condition: z.ZodOptional<z.ZodObject<{
1194
+ field: z.ZodString;
1195
+ op: z.ZodDefault<z.ZodEnum<{
1196
+ gt: "gt";
1197
+ lt: "lt";
1198
+ eq: "eq";
1199
+ neq: "neq";
1200
+ exists: "exists";
1201
+ notExists: "notExists";
1202
+ gte: "gte";
1203
+ lte: "lte";
1204
+ }>>;
1205
+ value: z.ZodOptional<z.ZodUnknown>;
1206
+ }, z.core.$strip>>;
1207
+ type: z.ZodDefault<z.ZodLiteral<"link">>;
1208
+ href: z.ZodString;
1209
+ blank: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1210
+ }, z.core.$strip>]>, z.ZodTransform<({
1211
+ tooltip: string;
1212
+ } & {
1213
+ id: string;
1214
+ label: string;
1215
+ type: "procedure";
1216
+ procedure: string;
1217
+ method: string;
1218
+ icon?: string | undefined;
1219
+ tooltip?: string | undefined;
1220
+ condition?: {
1221
+ field: string;
1222
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1223
+ value?: unknown;
1224
+ } | undefined;
1225
+ data?: Record<string, unknown> | undefined;
1226
+ pendingMessage?: string | undefined;
1227
+ successMessage?: string | undefined;
1228
+ errorMessage?: string | undefined;
1229
+ }) | ({
1230
+ tooltip: string;
1231
+ } & {
1232
+ id: string;
1233
+ label: string;
1234
+ type: "link";
1235
+ href: string;
1236
+ blank: boolean;
1237
+ icon?: string | undefined;
1238
+ tooltip?: string | undefined;
1239
+ condition?: {
1240
+ field: string;
1241
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1242
+ value?: unknown;
1243
+ } | undefined;
1244
+ }), {
1245
+ id: string;
1246
+ label: string;
1247
+ type: "procedure";
1248
+ procedure: string;
1249
+ method: string;
1250
+ icon?: string | undefined;
1251
+ tooltip?: string | undefined;
1252
+ condition?: {
1253
+ field: string;
1254
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1255
+ value?: unknown;
1256
+ } | undefined;
1257
+ data?: Record<string, unknown> | undefined;
1258
+ pendingMessage?: string | undefined;
1259
+ successMessage?: string | undefined;
1260
+ errorMessage?: string | undefined;
1261
+ } | {
1262
+ id: string;
1263
+ label: string;
1264
+ type: "link";
1265
+ href: string;
1266
+ blank: boolean;
1267
+ icon?: string | undefined;
1268
+ tooltip?: string | undefined;
1269
+ condition?: {
1270
+ field: string;
1271
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
1272
+ value?: unknown;
1273
+ } | undefined;
1274
+ }>>>>;
1275
+ pageSize: z.ZodDefault<z.ZodNumber>;
1276
+ pageSizes: z.ZodDefault<z.ZodArray<z.ZodNumber>>;
1277
+ density: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
1278
+ normal: "normal";
1279
+ compact: "compact";
1280
+ }>>>;
1281
+ selectable: z.ZodOptional<z.ZodBoolean>;
1282
+ rowClick: z.ZodDefault<z.ZodEnum<{
1283
+ edit: "edit";
1284
+ view: "view";
1285
+ none: "none";
1286
+ }>>;
1287
+ emptyText: z.ZodOptional<z.ZodString>;
1288
+ }, z.core.$strip>, z.ZodType<_ghentcdh_crouton_core.TableWrapperNode, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.TableWrapperNode, unknown>>]>>;
1289
+ }, z.core.$strip>>;
1290
+ name: z.ZodString;
1291
+ schemaVersion: z.ZodOptional<z.ZodNumber>;
1292
+ kind: z.ZodDefault<z.ZodEnum<{
1293
+ custom: "custom";
1294
+ prisma: "prisma";
1295
+ }>>;
1296
+ tag: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1297
+ parent: z.ZodOptional<z.ZodObject<{
1298
+ route: z.ZodString;
1299
+ param: z.ZodDefault<z.ZodString>;
1300
+ idType: z.ZodOptional<z.ZodEnum<{
1301
+ string: "string";
1302
+ number: "number";
1303
+ }>>;
1304
+ }, z.core.$strip>>;
1305
+ sidebar: z.ZodDefault<z.ZodObject<{
1306
+ hide: z.ZodDefault<z.ZodBoolean>;
1307
+ position: z.ZodOptional<z.ZodNumber>;
1308
+ label: z.ZodOptional<z.ZodString>;
1309
+ group: z.ZodOptional<z.ZodString>;
1310
+ }, z.core.$strip>>;
1311
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1312
+ public: z.ZodLiteral<true>;
1313
+ }, z.core.$strip>, z.ZodObject<{
1314
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1315
+ }, z.core.$strip>]>>;
1316
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
1317
+ id: z.ZodString;
1318
+ column: z.ZodOptional<z.ZodString>;
1319
+ label: z.ZodOptional<z.ZodString>;
1320
+ labelKey: z.ZodOptional<z.ZodString>;
1321
+ hiddenInTable: z.ZodDefault<z.ZodBoolean>;
1322
+ hiddenInForm: z.ZodDefault<z.ZodBoolean>;
1323
+ hiddenInView: z.ZodDefault<z.ZodBoolean>;
1324
+ createable: z.ZodDefault<z.ZodBoolean>;
1325
+ updateable: z.ZodDefault<z.ZodBoolean>;
1326
+ hideLabel: z.ZodDefault<z.ZodBoolean>;
1327
+ displayKey: z.ZodOptional<z.ZodString>;
1328
+ sortId: z.ZodOptional<z.ZodString>;
1329
+ enum: z.ZodOptional<z.ZodString>;
1330
+ idField: z.ZodDefault<z.ZodBoolean>;
1331
+ showInLookup: z.ZodOptional<z.ZodBoolean>;
1332
+ unique: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
1333
+ scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
1334
+ caseInsensitive: z.ZodOptional<z.ZodBoolean>;
1335
+ message: z.ZodOptional<z.ZodString>;
1336
+ }, z.core.$strip>]>>;
1337
+ type: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
1338
+ string: "string";
1339
+ number: "number";
1340
+ boolean: "boolean";
1341
+ object: "object";
1342
+ array: "array";
1343
+ date: "date";
1344
+ integer: "integer";
1345
+ "date-time": "date-time";
1346
+ }>, z.ZodType<_ghentcdh_crouton_core.JsonSchemaFragment, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonSchemaFragment, unknown>>]>>;
1347
+ required: z.ZodOptional<z.ZodBoolean>;
1348
+ relation: z.ZodOptional<z.ZodObject<{
1349
+ resource: z.ZodString;
1350
+ type: z.ZodOptional<z.ZodEnum<{
1351
+ oneToOne: "oneToOne";
1352
+ manyToOne: "manyToOne";
1353
+ oneToMany: "oneToMany";
1354
+ manyToMany: "manyToMany";
1355
+ }>>;
1356
+ foreignKey: z.ZodOptional<z.ZodString>;
1357
+ prismaField: z.ZodOptional<z.ZodString>;
1358
+ sort: z.ZodOptional<z.ZodString>;
1359
+ sortDir: z.ZodOptional<z.ZodEnum<{
1360
+ asc: "asc";
1361
+ desc: "desc";
1362
+ }>>;
1363
+ embed: z.ZodDefault<z.ZodBoolean>;
1364
+ }, z.core.$strip>>;
1365
+ fieldInput: z.ZodOptional<z.ZodObject<{
1366
+ $schema: z.ZodOptional<z.ZodString>;
1367
+ type: z.ZodOptional<z.ZodString>;
1368
+ customRender: z.ZodOptional<z.ZodString>;
1369
+ format: z.ZodOptional<z.ZodString>;
1370
+ resource: z.ZodOptional<z.ZodString>;
1371
+ relationType: z.ZodOptional<z.ZodEnum<{
1372
+ oneToOne: "oneToOne";
1373
+ manyToOne: "manyToOne";
1374
+ oneToMany: "oneToMany";
1375
+ manyToMany: "manyToMany";
1376
+ }>>;
1377
+ foreignKey: z.ZodOptional<z.ZodString>;
1378
+ relation: z.ZodOptional<z.ZodString>;
1379
+ position: z.ZodOptional<z.ZodNumber>;
1380
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
1381
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1382
+ label: z.ZodOptional<z.ZodString>;
1383
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1384
+ placeholder: z.ZodOptional<z.ZodString>;
1385
+ readonly: z.ZodOptional<z.ZodBoolean>;
1386
+ disabled: z.ZodOptional<z.ZodBoolean>;
1387
+ disabledWhen: z.ZodOptional<z.ZodObject<{
1388
+ field: z.ZodString;
1389
+ eq: z.ZodOptional<z.ZodUnknown>;
1390
+ neq: z.ZodOptional<z.ZodUnknown>;
1391
+ exists: z.ZodOptional<z.ZodBoolean>;
1392
+ notExists: z.ZodOptional<z.ZodBoolean>;
1393
+ }, z.core.$strip>>;
1394
+ width: z.ZodOptional<z.ZodString>;
1395
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1396
+ customRender: z.ZodOptional<z.ZodString>;
1397
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1398
+ sort: z.ZodOptional<z.ZodString>;
1399
+ sortDir: z.ZodOptional<z.ZodEnum<{
1400
+ asc: "asc";
1401
+ desc: "desc";
1402
+ }>>;
1403
+ direction: z.ZodOptional<z.ZodString>;
1404
+ displayKey: z.ZodOptional<z.ZodString>;
1405
+ resource: z.ZodOptional<z.ZodString>;
1406
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
1407
+ detail: z.ZodOptional<z.ZodObject<{
1408
+ layout: z.ZodEnum<{
1409
+ row: "row";
1410
+ collapse: "collapse";
1411
+ }>;
1412
+ titleKey: z.ZodOptional<z.ZodString>;
1413
+ items: z.ZodArray<z.ZodObject<{
1414
+ property: z.ZodString;
1415
+ type: z.ZodOptional<z.ZodString>;
1416
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1417
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1418
+ width: z.ZodOptional<z.ZodString>;
1419
+ }, z.core.$strip>>;
1420
+ controls: z.ZodOptional<z.ZodNever>;
1421
+ }, z.core.$strip>>;
1422
+ }, z.core.$strip>>;
1423
+ extend: z.ZodOptional<z.ZodString>;
1424
+ columns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1425
+ computed: z.ZodOptional<z.ZodObject<{
1426
+ sql: z.ZodString;
1427
+ type: z.ZodOptional<z.ZodEnum<{
1428
+ string: "string";
1429
+ number: "number";
1430
+ boolean: "boolean";
1431
+ }>>;
1432
+ }, z.core.$strip>>;
1433
+ position: z.ZodOptional<z.ZodNumber>;
1434
+ }, z.core.$strip>>>;
1435
+ route: z.ZodString;
1436
+ calculatedColumns: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodObject<{
1437
+ id: z.ZodString;
1438
+ alias: z.ZodString;
1439
+ label: z.ZodOptional<z.ZodString>;
1440
+ sqlExpression: z.ZodString;
1441
+ type: z.ZodOptional<z.ZodEnum<{
1442
+ string: "string";
1443
+ number: "number";
1444
+ boolean: "boolean";
1445
+ }>>;
1446
+ position: z.ZodOptional<z.ZodNumber>;
1447
+ fieldInput: z.ZodOptional<z.ZodObject<{
1448
+ $schema: z.ZodOptional<z.ZodString>;
1449
+ type: z.ZodOptional<z.ZodString>;
1450
+ customRender: z.ZodOptional<z.ZodString>;
1451
+ format: z.ZodOptional<z.ZodString>;
1452
+ resource: z.ZodOptional<z.ZodString>;
1453
+ relationType: z.ZodOptional<z.ZodEnum<{
1454
+ oneToOne: "oneToOne";
1455
+ manyToOne: "manyToOne";
1456
+ oneToMany: "oneToMany";
1457
+ manyToMany: "manyToMany";
1458
+ }>>;
1459
+ foreignKey: z.ZodOptional<z.ZodString>;
1460
+ relation: z.ZodOptional<z.ZodString>;
1461
+ position: z.ZodOptional<z.ZodNumber>;
1462
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
1463
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1464
+ label: z.ZodOptional<z.ZodString>;
1465
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1466
+ placeholder: z.ZodOptional<z.ZodString>;
1467
+ readonly: z.ZodOptional<z.ZodBoolean>;
1468
+ disabled: z.ZodOptional<z.ZodBoolean>;
1469
+ disabledWhen: z.ZodOptional<z.ZodObject<{
1470
+ field: z.ZodString;
1471
+ eq: z.ZodOptional<z.ZodUnknown>;
1472
+ neq: z.ZodOptional<z.ZodUnknown>;
1473
+ exists: z.ZodOptional<z.ZodBoolean>;
1474
+ notExists: z.ZodOptional<z.ZodBoolean>;
1475
+ }, z.core.$strip>>;
1476
+ width: z.ZodOptional<z.ZodString>;
1477
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1478
+ customRender: z.ZodOptional<z.ZodString>;
1479
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1480
+ sort: z.ZodOptional<z.ZodString>;
1481
+ sortDir: z.ZodOptional<z.ZodEnum<{
1482
+ asc: "asc";
1483
+ desc: "desc";
1484
+ }>>;
1485
+ direction: z.ZodOptional<z.ZodString>;
1486
+ displayKey: z.ZodOptional<z.ZodString>;
1487
+ resource: z.ZodOptional<z.ZodString>;
1488
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
1489
+ detail: z.ZodOptional<z.ZodObject<{
1490
+ layout: z.ZodEnum<{
1491
+ row: "row";
1492
+ collapse: "collapse";
1493
+ }>;
1494
+ titleKey: z.ZodOptional<z.ZodString>;
1495
+ items: z.ZodArray<z.ZodObject<{
1496
+ property: z.ZodString;
1497
+ type: z.ZodOptional<z.ZodString>;
1498
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1499
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1500
+ width: z.ZodOptional<z.ZodString>;
1501
+ }, z.core.$strip>>;
1502
+ controls: z.ZodOptional<z.ZodNever>;
1503
+ }, z.core.$strip>>;
1504
+ }, z.core.$strip>>;
1505
+ }, z.core.$strip>, z.ZodTransform<{
1506
+ id: string;
1507
+ alias: string;
1508
+ sqlExpression: string;
1509
+ label?: string | undefined;
1510
+ type?: "string" | "number" | "boolean" | undefined;
1511
+ position?: number | undefined;
1512
+ fieldInput?: {
1513
+ $schema?: string | undefined;
1514
+ type?: string | undefined;
1515
+ customRender?: string | undefined;
1516
+ format?: string | undefined;
1517
+ resource?: string | undefined;
1518
+ relationType?: "oneToOne" | "manyToOne" | "oneToMany" | "manyToMany" | undefined;
1519
+ foreignKey?: string | undefined;
1520
+ relation?: string | undefined;
1521
+ position?: number | undefined;
1522
+ defaultValue?: unknown;
1523
+ options?: unknown;
1524
+ detail?: {
1525
+ layout: "row" | "collapse";
1526
+ items: {
1527
+ property: string;
1528
+ type?: string | undefined;
1529
+ options?: Record<string, unknown> | undefined;
1530
+ hideLabel?: boolean | undefined;
1531
+ width?: string | undefined;
1532
+ }[];
1533
+ titleKey?: string | undefined;
1534
+ controls?: undefined;
1535
+ } | undefined;
1536
+ } | undefined;
1537
+ }, {
1538
+ id: string;
1539
+ alias: string;
1540
+ sqlExpression: string;
1541
+ label?: string | undefined;
1542
+ type?: "string" | "number" | "boolean" | undefined;
1543
+ position?: number | undefined;
1544
+ fieldInput?: {
1545
+ $schema?: string | undefined;
1546
+ type?: string | undefined;
1547
+ customRender?: string | undefined;
1548
+ format?: string | undefined;
1549
+ resource?: string | undefined;
1550
+ relationType?: "oneToOne" | "manyToOne" | "oneToMany" | "manyToMany" | undefined;
1551
+ foreignKey?: string | undefined;
1552
+ relation?: string | undefined;
1553
+ position?: number | undefined;
1554
+ defaultValue?: unknown;
1555
+ options?: unknown;
1556
+ detail?: {
1557
+ layout: "row" | "collapse";
1558
+ items: {
1559
+ property: string;
1560
+ type?: string | undefined;
1561
+ options?: Record<string, unknown> | undefined;
1562
+ hideLabel?: boolean | undefined;
1563
+ width?: string | undefined;
1564
+ }[];
1565
+ titleKey?: string | undefined;
1566
+ controls?: undefined;
1567
+ } | undefined;
1568
+ } | undefined;
1569
+ }>>>>;
1570
+ search: z.ZodOptional<z.ZodArray<z.ZodString>>;
1571
+ filterAllowlist: z.ZodOptional<z.ZodArray<z.ZodString>>;
1572
+ lookup: z.ZodOptional<z.ZodObject<{
1573
+ label: z.ZodOptional<z.ZodString>;
1574
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
1575
+ separator: z.ZodOptional<z.ZodString>;
1576
+ }, z.core.$strip>>;
1577
+ views: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1578
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1579
+ ui: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1580
+ columns: z.ZodArray<z.ZodObject<{
1581
+ id: z.ZodString;
1582
+ label: z.ZodOptional<z.ZodString>;
1583
+ labelKey: z.ZodOptional<z.ZodString>;
1584
+ sortable: z.ZodOptional<z.ZodBoolean>;
1585
+ searchable: z.ZodOptional<z.ZodBoolean>;
1586
+ fieldInput: z.ZodOptional<z.ZodObject<{
1587
+ $schema: z.ZodOptional<z.ZodString>;
1588
+ type: z.ZodOptional<z.ZodString>;
1589
+ customRender: z.ZodOptional<z.ZodString>;
1590
+ format: z.ZodOptional<z.ZodString>;
1591
+ resource: z.ZodOptional<z.ZodString>;
1592
+ relationType: z.ZodOptional<z.ZodEnum<{
1593
+ oneToOne: "oneToOne";
1594
+ manyToOne: "manyToOne";
1595
+ oneToMany: "oneToMany";
1596
+ manyToMany: "manyToMany";
1597
+ }>>;
1598
+ foreignKey: z.ZodOptional<z.ZodString>;
1599
+ relation: z.ZodOptional<z.ZodString>;
1600
+ position: z.ZodOptional<z.ZodNumber>;
1601
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
1602
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1603
+ label: z.ZodOptional<z.ZodString>;
1604
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1605
+ placeholder: z.ZodOptional<z.ZodString>;
1606
+ readonly: z.ZodOptional<z.ZodBoolean>;
1607
+ disabled: z.ZodOptional<z.ZodBoolean>;
1608
+ disabledWhen: z.ZodOptional<z.ZodObject<{
1609
+ field: z.ZodString;
1610
+ eq: z.ZodOptional<z.ZodUnknown>;
1611
+ neq: z.ZodOptional<z.ZodUnknown>;
1612
+ exists: z.ZodOptional<z.ZodBoolean>;
1613
+ notExists: z.ZodOptional<z.ZodBoolean>;
1614
+ }, z.core.$strip>>;
1615
+ width: z.ZodOptional<z.ZodString>;
1616
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1617
+ customRender: z.ZodOptional<z.ZodString>;
1618
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1619
+ sort: z.ZodOptional<z.ZodString>;
1620
+ sortDir: z.ZodOptional<z.ZodEnum<{
1621
+ asc: "asc";
1622
+ desc: "desc";
1623
+ }>>;
1624
+ direction: z.ZodOptional<z.ZodString>;
1625
+ displayKey: z.ZodOptional<z.ZodString>;
1626
+ resource: z.ZodOptional<z.ZodString>;
1627
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
1628
+ detail: z.ZodOptional<z.ZodObject<{
1629
+ layout: z.ZodEnum<{
1630
+ row: "row";
1631
+ collapse: "collapse";
1632
+ }>;
1633
+ titleKey: z.ZodOptional<z.ZodString>;
1634
+ items: z.ZodArray<z.ZodObject<{
1635
+ property: z.ZodString;
1636
+ type: z.ZodOptional<z.ZodString>;
1637
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1638
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1639
+ width: z.ZodOptional<z.ZodString>;
1640
+ }, z.core.$strip>>;
1641
+ controls: z.ZodOptional<z.ZodNever>;
1642
+ }, z.core.$strip>>;
1643
+ }, z.core.$strip>>;
1644
+ enumName: z.ZodOptional<z.ZodString>;
1645
+ }, z.core.$strip>>;
1646
+ defaultSort: z.ZodOptional<z.ZodString>;
1647
+ defaultSortDir: z.ZodOptional<z.ZodEnum<{
1648
+ asc: "asc";
1649
+ desc: "desc";
1650
+ }>>;
1651
+ }, z.core.$strip>>>;
1652
+ definition: z.ZodUnion<readonly [z.ZodObject<{
1653
+ findAll: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1654
+ uri: z.ZodString;
1655
+ method: z.ZodOptional<z.ZodString>;
1656
+ }, z.core.$strip>, z.ZodObject<{
1657
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1658
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1659
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1660
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1661
+ }>, z.core.$strip>>, z.ZodObject<{
1662
+ type: z.ZodLiteral<"object">;
1663
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1664
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1665
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1666
+ }, z.core.$strip>]>>;
1667
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1668
+ public: z.ZodLiteral<true>;
1669
+ }, z.core.$strip>, z.ZodObject<{
1670
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1671
+ }, z.core.$strip>]>>;
1672
+ }, z.core.$strip>]>>;
1673
+ findOne: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1674
+ uri: z.ZodString;
1675
+ method: z.ZodOptional<z.ZodString>;
1676
+ }, z.core.$strip>, z.ZodObject<{
1677
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1678
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1679
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1680
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1681
+ }>, z.core.$strip>>, z.ZodObject<{
1682
+ type: z.ZodLiteral<"object">;
1683
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1684
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1685
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1686
+ }, z.core.$strip>]>>;
1687
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1688
+ public: z.ZodLiteral<true>;
1689
+ }, z.core.$strip>, z.ZodObject<{
1690
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1691
+ }, z.core.$strip>]>>;
1692
+ }, z.core.$strip>]>>;
1693
+ create: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1694
+ uri: z.ZodString;
1695
+ method: z.ZodOptional<z.ZodString>;
1696
+ }, z.core.$strip>, z.ZodObject<{
1697
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1698
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1699
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1700
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1701
+ }>, z.core.$strip>>, z.ZodObject<{
1702
+ type: z.ZodLiteral<"object">;
1703
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1704
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1705
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1706
+ }, z.core.$strip>]>>;
1707
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1708
+ public: z.ZodLiteral<true>;
1709
+ }, z.core.$strip>, z.ZodObject<{
1710
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1711
+ }, z.core.$strip>]>>;
1712
+ }, z.core.$strip>]>>;
1713
+ update: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1714
+ uri: z.ZodString;
1715
+ method: z.ZodOptional<z.ZodString>;
1716
+ }, z.core.$strip>, z.ZodObject<{
1717
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1718
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1719
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1720
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1721
+ }>, z.core.$strip>>, z.ZodObject<{
1722
+ type: z.ZodLiteral<"object">;
1723
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1724
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1725
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1726
+ }, z.core.$strip>]>>;
1727
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1728
+ public: z.ZodLiteral<true>;
1729
+ }, z.core.$strip>, z.ZodObject<{
1730
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1731
+ }, z.core.$strip>]>>;
1732
+ }, z.core.$strip>]>>;
1733
+ patch: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1734
+ uri: z.ZodString;
1735
+ method: z.ZodOptional<z.ZodString>;
1736
+ }, z.core.$strip>, z.ZodObject<{
1737
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1738
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1739
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1740
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1741
+ }>, z.core.$strip>>, z.ZodObject<{
1742
+ type: z.ZodLiteral<"object">;
1743
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1744
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1745
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1746
+ }, z.core.$strip>]>>;
1747
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1748
+ public: z.ZodLiteral<true>;
1749
+ }, z.core.$strip>, z.ZodObject<{
1750
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1751
+ }, z.core.$strip>]>>;
1752
+ }, z.core.$strip>]>>;
1753
+ delete: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1754
+ uri: z.ZodString;
1755
+ method: z.ZodOptional<z.ZodString>;
1756
+ }, z.core.$strip>, z.ZodObject<{
1757
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1758
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1759
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1760
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1761
+ }>, z.core.$strip>>, z.ZodObject<{
1762
+ type: z.ZodLiteral<"object">;
1763
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1764
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1765
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1766
+ }, z.core.$strip>]>>;
1767
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1768
+ public: z.ZodLiteral<true>;
1769
+ }, z.core.$strip>, z.ZodObject<{
1770
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1771
+ }, z.core.$strip>]>>;
1772
+ }, z.core.$strip>]>>;
1773
+ }, z.core.$strip>, z.ZodFunction<z.ZodTuple<readonly [], null>, z.ZodObject<{
1774
+ findAll: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1775
+ uri: z.ZodString;
1776
+ method: z.ZodOptional<z.ZodString>;
1777
+ }, z.core.$strip>, z.ZodObject<{
1778
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1779
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1780
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1781
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1782
+ }>, z.core.$strip>>, z.ZodObject<{
1783
+ type: z.ZodLiteral<"object">;
1784
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1785
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1786
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1787
+ }, z.core.$strip>]>>;
1788
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1789
+ public: z.ZodLiteral<true>;
1790
+ }, z.core.$strip>, z.ZodObject<{
1791
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1792
+ }, z.core.$strip>]>>;
1793
+ }, z.core.$strip>]>>;
1794
+ findOne: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1795
+ uri: z.ZodString;
1796
+ method: z.ZodOptional<z.ZodString>;
1797
+ }, z.core.$strip>, z.ZodObject<{
1798
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1799
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1800
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1801
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1802
+ }>, z.core.$strip>>, z.ZodObject<{
1803
+ type: z.ZodLiteral<"object">;
1804
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1805
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1806
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1807
+ }, z.core.$strip>]>>;
1808
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1809
+ public: z.ZodLiteral<true>;
1810
+ }, z.core.$strip>, z.ZodObject<{
1811
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1812
+ }, z.core.$strip>]>>;
1813
+ }, z.core.$strip>]>>;
1814
+ create: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1815
+ uri: z.ZodString;
1816
+ method: z.ZodOptional<z.ZodString>;
1817
+ }, z.core.$strip>, z.ZodObject<{
1818
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1819
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1820
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1821
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1822
+ }>, z.core.$strip>>, z.ZodObject<{
1823
+ type: z.ZodLiteral<"object">;
1824
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1825
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1826
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1827
+ }, z.core.$strip>]>>;
1828
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1829
+ public: z.ZodLiteral<true>;
1830
+ }, z.core.$strip>, z.ZodObject<{
1831
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1832
+ }, z.core.$strip>]>>;
1833
+ }, z.core.$strip>]>>;
1834
+ update: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1835
+ uri: z.ZodString;
1836
+ method: z.ZodOptional<z.ZodString>;
1837
+ }, z.core.$strip>, z.ZodObject<{
1838
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1839
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1840
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1841
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1842
+ }>, z.core.$strip>>, z.ZodObject<{
1843
+ type: z.ZodLiteral<"object">;
1844
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1845
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1846
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1847
+ }, z.core.$strip>]>>;
1848
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1849
+ public: z.ZodLiteral<true>;
1850
+ }, z.core.$strip>, z.ZodObject<{
1851
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1852
+ }, z.core.$strip>]>>;
1853
+ }, z.core.$strip>]>>;
1854
+ patch: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1855
+ uri: z.ZodString;
1856
+ method: z.ZodOptional<z.ZodString>;
1857
+ }, z.core.$strip>, z.ZodObject<{
1858
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1859
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1860
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1861
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1862
+ }>, z.core.$strip>>, z.ZodObject<{
1863
+ type: z.ZodLiteral<"object">;
1864
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1865
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1866
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1867
+ }, z.core.$strip>]>>;
1868
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1869
+ public: z.ZodLiteral<true>;
1870
+ }, z.core.$strip>, z.ZodObject<{
1871
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1872
+ }, z.core.$strip>]>>;
1873
+ }, z.core.$strip>]>>;
1874
+ delete: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<true>, z.ZodObject<{
1875
+ uri: z.ZodString;
1876
+ method: z.ZodOptional<z.ZodString>;
1877
+ }, z.core.$strip>, z.ZodObject<{
1878
+ schema: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<z.ZodObject<Readonly<{
1879
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1880
+ }>, z.core.$strip>, z.ZodObject<Readonly<{
1881
+ [k: string]: z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
1882
+ }>, z.core.$strip>>, z.ZodObject<{
1883
+ type: z.ZodLiteral<"object">;
1884
+ properties: z.ZodRecord<z.ZodString, z.ZodUnknown>;
1885
+ required: z.ZodOptional<z.ZodArray<z.ZodString>>;
1886
+ additionalProperties: z.ZodOptional<z.ZodBoolean>;
1887
+ }, z.core.$strip>]>>;
1888
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1889
+ public: z.ZodLiteral<true>;
1890
+ }, z.core.$strip>, z.ZodObject<{
1891
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
1892
+ }, z.core.$strip>]>>;
1893
+ }, z.core.$strip>]>>;
1894
+ }, z.core.$strip>>]>;
1895
+ idField: z.ZodString;
1896
+ findAllInclude: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
1897
+ findOneInclude: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
1898
+ model: z.ZodOptional<z.ZodString>;
1899
+ table: z.ZodOptional<z.ZodString>;
1900
+ database: z.ZodOptional<z.ZodString>;
1901
+ idType: z.ZodDefault<z.ZodEnum<{
1902
+ string: "string";
1903
+ number: "number";
1904
+ }>>;
1905
+ draft: z.ZodOptional<z.ZodBoolean>;
1906
+ subResources: z.ZodDefault<z.ZodLazy<z.ZodArray<z.ZodObject<{
1907
+ column: z.ZodString;
1908
+ relation: z.ZodString;
1909
+ childRoute: z.ZodString;
1910
+ childKind: z.ZodDefault<z.ZodEnum<{
1911
+ custom: "custom";
1912
+ prisma: "prisma";
1913
+ }>>;
1914
+ childDir: z.ZodOptional<z.ZodString>;
1915
+ childModel: z.ZodString;
1916
+ childTable: z.ZodOptional<z.ZodString>;
1917
+ foreignKey: z.ZodString;
1918
+ name: z.ZodOptional<z.ZodString>;
1919
+ title: z.ZodOptional<z.ZodString>;
1920
+ idField: z.ZodOptional<z.ZodString>;
1921
+ idType: z.ZodDefault<z.ZodEnum<{
1922
+ string: "string";
1923
+ number: "number";
1924
+ }>>;
1925
+ views: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1926
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1927
+ ui: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1928
+ columns: z.ZodArray<z.ZodObject<{
1929
+ id: z.ZodString;
1930
+ label: z.ZodOptional<z.ZodString>;
1931
+ labelKey: z.ZodOptional<z.ZodString>;
1932
+ sortable: z.ZodOptional<z.ZodBoolean>;
1933
+ searchable: z.ZodOptional<z.ZodBoolean>;
1934
+ fieldInput: z.ZodOptional<z.ZodObject<{
1935
+ $schema: z.ZodOptional<z.ZodString>;
1936
+ type: z.ZodOptional<z.ZodString>;
1937
+ customRender: z.ZodOptional<z.ZodString>;
1938
+ format: z.ZodOptional<z.ZodString>;
1939
+ resource: z.ZodOptional<z.ZodString>;
1940
+ relationType: z.ZodOptional<z.ZodEnum<{
1941
+ oneToOne: "oneToOne";
1942
+ manyToOne: "manyToOne";
1943
+ oneToMany: "oneToMany";
1944
+ manyToMany: "manyToMany";
1945
+ }>>;
1946
+ foreignKey: z.ZodOptional<z.ZodString>;
1947
+ relation: z.ZodOptional<z.ZodString>;
1948
+ position: z.ZodOptional<z.ZodNumber>;
1949
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
1950
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1951
+ label: z.ZodOptional<z.ZodString>;
1952
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1953
+ placeholder: z.ZodOptional<z.ZodString>;
1954
+ readonly: z.ZodOptional<z.ZodBoolean>;
1955
+ disabled: z.ZodOptional<z.ZodBoolean>;
1956
+ disabledWhen: z.ZodOptional<z.ZodObject<{
1957
+ field: z.ZodString;
1958
+ eq: z.ZodOptional<z.ZodUnknown>;
1959
+ neq: z.ZodOptional<z.ZodUnknown>;
1960
+ exists: z.ZodOptional<z.ZodBoolean>;
1961
+ notExists: z.ZodOptional<z.ZodBoolean>;
1962
+ }, z.core.$strip>>;
1963
+ width: z.ZodOptional<z.ZodString>;
1964
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1965
+ customRender: z.ZodOptional<z.ZodString>;
1966
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1967
+ sort: z.ZodOptional<z.ZodString>;
1968
+ sortDir: z.ZodOptional<z.ZodEnum<{
1969
+ asc: "asc";
1970
+ desc: "desc";
1971
+ }>>;
1972
+ direction: z.ZodOptional<z.ZodString>;
1973
+ displayKey: z.ZodOptional<z.ZodString>;
1974
+ resource: z.ZodOptional<z.ZodString>;
1975
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
1976
+ detail: z.ZodOptional<z.ZodObject<{
1977
+ layout: z.ZodEnum<{
1978
+ row: "row";
1979
+ collapse: "collapse";
1980
+ }>;
1981
+ titleKey: z.ZodOptional<z.ZodString>;
1982
+ items: z.ZodArray<z.ZodObject<{
1983
+ property: z.ZodString;
1984
+ type: z.ZodOptional<z.ZodString>;
1985
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1986
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
1987
+ width: z.ZodOptional<z.ZodString>;
1988
+ }, z.core.$strip>>;
1989
+ controls: z.ZodOptional<z.ZodNever>;
1990
+ }, z.core.$strip>>;
1991
+ }, z.core.$strip>>;
1992
+ enumName: z.ZodOptional<z.ZodString>;
1993
+ }, z.core.$strip>>;
1994
+ defaultSort: z.ZodOptional<z.ZodString>;
1995
+ defaultSortDir: z.ZodOptional<z.ZodEnum<{
1996
+ asc: "asc";
1997
+ desc: "desc";
1998
+ }>>;
1999
+ }, z.core.$strip>>>;
2000
+ operations: z.ZodObject<{
2001
+ findAll: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
2002
+ uri: z.ZodString;
2003
+ method: z.ZodOptional<z.ZodString>;
2004
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2005
+ public: z.ZodLiteral<true>;
2006
+ }, z.core.$strip>, z.ZodObject<{
2007
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2008
+ }, z.core.$strip>]>>;
2009
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2010
+ search: z.ZodOptional<z.ZodArray<z.ZodString>>;
2011
+ filter: z.ZodOptional<z.ZodArray<z.ZodString>>;
2012
+ }, z.core.$strip>, z.ZodObject<{
2013
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2014
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2015
+ public: z.ZodLiteral<true>;
2016
+ }, z.core.$strip>, z.ZodObject<{
2017
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2018
+ }, z.core.$strip>]>>;
2019
+ search: z.ZodOptional<z.ZodArray<z.ZodString>>;
2020
+ filter: z.ZodOptional<z.ZodArray<z.ZodString>>;
2021
+ }, z.core.$strip>]>>;
2022
+ findOne: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
2023
+ uri: z.ZodString;
2024
+ method: z.ZodOptional<z.ZodString>;
2025
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2026
+ public: z.ZodLiteral<true>;
2027
+ }, z.core.$strip>, z.ZodObject<{
2028
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2029
+ }, z.core.$strip>]>>;
2030
+ }, z.core.$strip>, z.ZodObject<{
2031
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2032
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2033
+ public: z.ZodLiteral<true>;
2034
+ }, z.core.$strip>, z.ZodObject<{
2035
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2036
+ }, z.core.$strip>]>>;
2037
+ }, z.core.$strip>]>>;
2038
+ create: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
2039
+ uri: z.ZodString;
2040
+ method: z.ZodOptional<z.ZodString>;
2041
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2042
+ public: z.ZodLiteral<true>;
2043
+ }, z.core.$strip>, z.ZodObject<{
2044
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2045
+ }, z.core.$strip>]>>;
2046
+ }, z.core.$strip>, z.ZodObject<{
2047
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2048
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2049
+ public: z.ZodLiteral<true>;
2050
+ }, z.core.$strip>, z.ZodObject<{
2051
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2052
+ }, z.core.$strip>]>>;
2053
+ }, z.core.$strip>]>>;
2054
+ update: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
2055
+ uri: z.ZodString;
2056
+ method: z.ZodOptional<z.ZodString>;
2057
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2058
+ public: z.ZodLiteral<true>;
2059
+ }, z.core.$strip>, z.ZodObject<{
2060
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2061
+ }, z.core.$strip>]>>;
2062
+ }, z.core.$strip>, z.ZodObject<{
2063
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2064
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2065
+ public: z.ZodLiteral<true>;
2066
+ }, z.core.$strip>, z.ZodObject<{
2067
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2068
+ }, z.core.$strip>]>>;
2069
+ }, z.core.$strip>]>>;
2070
+ patch: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
2071
+ uri: z.ZodString;
2072
+ method: z.ZodOptional<z.ZodString>;
2073
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2074
+ public: z.ZodLiteral<true>;
2075
+ }, z.core.$strip>, z.ZodObject<{
2076
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2077
+ }, z.core.$strip>]>>;
2078
+ }, z.core.$strip>, z.ZodObject<{
2079
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2080
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2081
+ public: z.ZodLiteral<true>;
2082
+ }, z.core.$strip>, z.ZodObject<{
2083
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2084
+ }, z.core.$strip>]>>;
2085
+ }, z.core.$strip>]>>;
2086
+ delete: z.ZodDefault<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
2087
+ uri: z.ZodString;
2088
+ method: z.ZodOptional<z.ZodString>;
2089
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2090
+ public: z.ZodLiteral<true>;
2091
+ }, z.core.$strip>, z.ZodObject<{
2092
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2093
+ }, z.core.$strip>]>>;
2094
+ }, z.core.$strip>, z.ZodObject<{
2095
+ include: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2096
+ security: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2097
+ public: z.ZodLiteral<true>;
2098
+ }, z.core.$strip>, z.ZodObject<{
2099
+ guard: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
2100
+ }, z.core.$strip>]>>;
2101
+ }, z.core.$strip>]>>;
2102
+ }, z.core.$strip>;
2103
+ childInclude: z.ZodOptional<z.ZodArray<z.ZodType<_ghentcdh_crouton_core.JsonIncludeEntry, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonIncludeEntry, unknown>>>>;
2104
+ calculatedColumns: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodObject<{
2105
+ id: z.ZodString;
2106
+ alias: z.ZodString;
2107
+ label: z.ZodOptional<z.ZodString>;
2108
+ sqlExpression: z.ZodString;
2109
+ type: z.ZodOptional<z.ZodEnum<{
2110
+ string: "string";
2111
+ number: "number";
2112
+ boolean: "boolean";
2113
+ }>>;
2114
+ position: z.ZodOptional<z.ZodNumber>;
2115
+ fieldInput: z.ZodOptional<z.ZodObject<{
2116
+ $schema: z.ZodOptional<z.ZodString>;
2117
+ type: z.ZodOptional<z.ZodString>;
2118
+ customRender: z.ZodOptional<z.ZodString>;
2119
+ format: z.ZodOptional<z.ZodString>;
2120
+ resource: z.ZodOptional<z.ZodString>;
2121
+ relationType: z.ZodOptional<z.ZodEnum<{
2122
+ oneToOne: "oneToOne";
2123
+ manyToOne: "manyToOne";
2124
+ oneToMany: "oneToMany";
2125
+ manyToMany: "manyToMany";
2126
+ }>>;
2127
+ foreignKey: z.ZodOptional<z.ZodString>;
2128
+ relation: z.ZodOptional<z.ZodString>;
2129
+ position: z.ZodOptional<z.ZodNumber>;
2130
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
2131
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2132
+ label: z.ZodOptional<z.ZodString>;
2133
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
2134
+ placeholder: z.ZodOptional<z.ZodString>;
2135
+ readonly: z.ZodOptional<z.ZodBoolean>;
2136
+ disabled: z.ZodOptional<z.ZodBoolean>;
2137
+ disabledWhen: z.ZodOptional<z.ZodObject<{
2138
+ field: z.ZodString;
2139
+ eq: z.ZodOptional<z.ZodUnknown>;
2140
+ neq: z.ZodOptional<z.ZodUnknown>;
2141
+ exists: z.ZodOptional<z.ZodBoolean>;
2142
+ notExists: z.ZodOptional<z.ZodBoolean>;
2143
+ }, z.core.$strip>>;
2144
+ width: z.ZodOptional<z.ZodString>;
2145
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2146
+ customRender: z.ZodOptional<z.ZodString>;
2147
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2148
+ sort: z.ZodOptional<z.ZodString>;
2149
+ sortDir: z.ZodOptional<z.ZodEnum<{
2150
+ asc: "asc";
2151
+ desc: "desc";
2152
+ }>>;
2153
+ direction: z.ZodOptional<z.ZodString>;
2154
+ displayKey: z.ZodOptional<z.ZodString>;
2155
+ resource: z.ZodOptional<z.ZodString>;
2156
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
2157
+ detail: z.ZodOptional<z.ZodObject<{
2158
+ layout: z.ZodEnum<{
2159
+ row: "row";
2160
+ collapse: "collapse";
2161
+ }>;
2162
+ titleKey: z.ZodOptional<z.ZodString>;
2163
+ items: z.ZodArray<z.ZodObject<{
2164
+ property: z.ZodString;
2165
+ type: z.ZodOptional<z.ZodString>;
2166
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2167
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
2168
+ width: z.ZodOptional<z.ZodString>;
2169
+ }, z.core.$strip>>;
2170
+ controls: z.ZodOptional<z.ZodNever>;
2171
+ }, z.core.$strip>>;
2172
+ }, z.core.$strip>>;
2173
+ }, z.core.$strip>, z.ZodTransform<{
2174
+ id: string;
2175
+ alias: string;
2176
+ sqlExpression: string;
2177
+ label?: string | undefined;
2178
+ type?: "string" | "number" | "boolean" | undefined;
2179
+ position?: number | undefined;
2180
+ fieldInput?: {
2181
+ $schema?: string | undefined;
2182
+ type?: string | undefined;
2183
+ customRender?: string | undefined;
2184
+ format?: string | undefined;
2185
+ resource?: string | undefined;
2186
+ relationType?: "oneToOne" | "manyToOne" | "oneToMany" | "manyToMany" | undefined;
2187
+ foreignKey?: string | undefined;
2188
+ relation?: string | undefined;
2189
+ position?: number | undefined;
2190
+ defaultValue?: unknown;
2191
+ options?: unknown;
2192
+ detail?: {
2193
+ layout: "row" | "collapse";
2194
+ items: {
2195
+ property: string;
2196
+ type?: string | undefined;
2197
+ options?: Record<string, unknown> | undefined;
2198
+ hideLabel?: boolean | undefined;
2199
+ width?: string | undefined;
2200
+ }[];
2201
+ titleKey?: string | undefined;
2202
+ controls?: undefined;
2203
+ } | undefined;
2204
+ } | undefined;
2205
+ }, {
2206
+ id: string;
2207
+ alias: string;
2208
+ sqlExpression: string;
2209
+ label?: string | undefined;
2210
+ type?: "string" | "number" | "boolean" | undefined;
2211
+ position?: number | undefined;
2212
+ fieldInput?: {
2213
+ $schema?: string | undefined;
2214
+ type?: string | undefined;
2215
+ customRender?: string | undefined;
2216
+ format?: string | undefined;
2217
+ resource?: string | undefined;
2218
+ relationType?: "oneToOne" | "manyToOne" | "oneToMany" | "manyToMany" | undefined;
2219
+ foreignKey?: string | undefined;
2220
+ relation?: string | undefined;
2221
+ position?: number | undefined;
2222
+ defaultValue?: unknown;
2223
+ options?: unknown;
2224
+ detail?: {
2225
+ layout: "row" | "collapse";
2226
+ items: {
2227
+ property: string;
2228
+ type?: string | undefined;
2229
+ options?: Record<string, unknown> | undefined;
2230
+ hideLabel?: boolean | undefined;
2231
+ width?: string | undefined;
2232
+ }[];
2233
+ titleKey?: string | undefined;
2234
+ controls?: undefined;
2235
+ } | undefined;
2236
+ } | undefined;
2237
+ }>>>>;
2238
+ includeRelationInParentFindOne: z.ZodOptional<z.ZodBoolean>;
2239
+ hiddenInTable: z.ZodOptional<z.ZodBoolean>;
2240
+ findOneOrderBy: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2241
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
2242
+ id: z.ZodString;
2243
+ column: z.ZodOptional<z.ZodString>;
2244
+ label: z.ZodOptional<z.ZodString>;
2245
+ labelKey: z.ZodOptional<z.ZodString>;
2246
+ hiddenInTable: z.ZodDefault<z.ZodBoolean>;
2247
+ hiddenInForm: z.ZodDefault<z.ZodBoolean>;
2248
+ hiddenInView: z.ZodDefault<z.ZodBoolean>;
2249
+ createable: z.ZodDefault<z.ZodBoolean>;
2250
+ updateable: z.ZodDefault<z.ZodBoolean>;
2251
+ hideLabel: z.ZodDefault<z.ZodBoolean>;
2252
+ displayKey: z.ZodOptional<z.ZodString>;
2253
+ sortId: z.ZodOptional<z.ZodString>;
2254
+ enum: z.ZodOptional<z.ZodString>;
2255
+ idField: z.ZodDefault<z.ZodBoolean>;
2256
+ showInLookup: z.ZodOptional<z.ZodBoolean>;
2257
+ unique: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
2258
+ scope: z.ZodOptional<z.ZodArray<z.ZodString>>;
2259
+ caseInsensitive: z.ZodOptional<z.ZodBoolean>;
2260
+ message: z.ZodOptional<z.ZodString>;
2261
+ }, z.core.$strip>]>>;
2262
+ type: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
2263
+ string: "string";
2264
+ number: "number";
2265
+ boolean: "boolean";
2266
+ object: "object";
2267
+ array: "array";
2268
+ date: "date";
2269
+ integer: "integer";
2270
+ "date-time": "date-time";
2271
+ }>, z.ZodType<_ghentcdh_crouton_core.JsonSchemaFragment, unknown, z.core.$ZodTypeInternals<_ghentcdh_crouton_core.JsonSchemaFragment, unknown>>]>>;
2272
+ required: z.ZodOptional<z.ZodBoolean>;
2273
+ relation: z.ZodOptional<z.ZodObject<{
2274
+ resource: z.ZodString;
2275
+ type: z.ZodOptional<z.ZodEnum<{
2276
+ oneToOne: "oneToOne";
2277
+ manyToOne: "manyToOne";
2278
+ oneToMany: "oneToMany";
2279
+ manyToMany: "manyToMany";
2280
+ }>>;
2281
+ foreignKey: z.ZodOptional<z.ZodString>;
2282
+ prismaField: z.ZodOptional<z.ZodString>;
2283
+ sort: z.ZodOptional<z.ZodString>;
2284
+ sortDir: z.ZodOptional<z.ZodEnum<{
2285
+ asc: "asc";
2286
+ desc: "desc";
2287
+ }>>;
2288
+ embed: z.ZodDefault<z.ZodBoolean>;
2289
+ }, z.core.$strip>>;
2290
+ fieldInput: z.ZodOptional<z.ZodObject<{
2291
+ $schema: z.ZodOptional<z.ZodString>;
2292
+ type: z.ZodOptional<z.ZodString>;
2293
+ customRender: z.ZodOptional<z.ZodString>;
2294
+ format: z.ZodOptional<z.ZodString>;
2295
+ resource: z.ZodOptional<z.ZodString>;
2296
+ relationType: z.ZodOptional<z.ZodEnum<{
2297
+ oneToOne: "oneToOne";
2298
+ manyToOne: "manyToOne";
2299
+ oneToMany: "oneToMany";
2300
+ manyToMany: "manyToMany";
2301
+ }>>;
2302
+ foreignKey: z.ZodOptional<z.ZodString>;
2303
+ relation: z.ZodOptional<z.ZodString>;
2304
+ position: z.ZodOptional<z.ZodNumber>;
2305
+ defaultValue: z.ZodOptional<z.ZodUnknown>;
2306
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2307
+ label: z.ZodOptional<z.ZodString>;
2308
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
2309
+ placeholder: z.ZodOptional<z.ZodString>;
2310
+ readonly: z.ZodOptional<z.ZodBoolean>;
2311
+ disabled: z.ZodOptional<z.ZodBoolean>;
2312
+ disabledWhen: z.ZodOptional<z.ZodObject<{
2313
+ field: z.ZodString;
2314
+ eq: z.ZodOptional<z.ZodUnknown>;
2315
+ neq: z.ZodOptional<z.ZodUnknown>;
2316
+ exists: z.ZodOptional<z.ZodBoolean>;
2317
+ notExists: z.ZodOptional<z.ZodBoolean>;
2318
+ }, z.core.$strip>>;
2319
+ width: z.ZodOptional<z.ZodString>;
2320
+ styles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2321
+ customRender: z.ZodOptional<z.ZodString>;
2322
+ colspan: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
2323
+ sort: z.ZodOptional<z.ZodString>;
2324
+ sortDir: z.ZodOptional<z.ZodEnum<{
2325
+ asc: "asc";
2326
+ desc: "desc";
2327
+ }>>;
2328
+ direction: z.ZodOptional<z.ZodString>;
2329
+ displayKey: z.ZodOptional<z.ZodString>;
2330
+ resource: z.ZodOptional<z.ZodString>;
2331
+ }, z.core.$catchall<z.ZodUnknown>>, z.ZodUnknown]>>;
2332
+ detail: z.ZodOptional<z.ZodObject<{
2333
+ layout: z.ZodEnum<{
2334
+ row: "row";
2335
+ collapse: "collapse";
2336
+ }>;
2337
+ titleKey: z.ZodOptional<z.ZodString>;
2338
+ items: z.ZodArray<z.ZodObject<{
2339
+ property: z.ZodString;
2340
+ type: z.ZodOptional<z.ZodString>;
2341
+ options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2342
+ hideLabel: z.ZodOptional<z.ZodBoolean>;
2343
+ width: z.ZodOptional<z.ZodString>;
2344
+ }, z.core.$strip>>;
2345
+ controls: z.ZodOptional<z.ZodNever>;
2346
+ }, z.core.$strip>>;
2347
+ }, z.core.$strip>>;
2348
+ extend: z.ZodOptional<z.ZodString>;
2349
+ columns: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2350
+ computed: z.ZodOptional<z.ZodObject<{
2351
+ sql: z.ZodString;
2352
+ type: z.ZodOptional<z.ZodEnum<{
2353
+ string: "string";
2354
+ number: "number";
2355
+ boolean: "boolean";
2356
+ }>>;
2357
+ }, z.core.$strip>>;
2358
+ position: z.ZodOptional<z.ZodNumber>;
2359
+ }, z.core.$strip>>>;
2360
+ relationType: z.ZodOptional<z.ZodEnum<{
2361
+ oneToOne: "oneToOne";
2362
+ manyToOne: "manyToOne";
2363
+ oneToMany: "oneToMany";
2364
+ manyToMany: "manyToMany";
2365
+ }>>;
2366
+ displayKey: z.ZodOptional<z.ZodString>;
2367
+ search: z.ZodOptional<z.ZodArray<z.ZodString>>;
2368
+ layout: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2369
+ rowActions: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
2370
+ id: z.ZodString;
2371
+ label: z.ZodString;
2372
+ icon: z.ZodOptional<z.ZodString>;
2373
+ tooltip: z.ZodOptional<z.ZodString>;
2374
+ condition: z.ZodOptional<z.ZodObject<{
2375
+ field: z.ZodString;
2376
+ op: z.ZodDefault<z.ZodEnum<{
2377
+ gt: "gt";
2378
+ lt: "lt";
2379
+ eq: "eq";
2380
+ neq: "neq";
2381
+ exists: "exists";
2382
+ notExists: "notExists";
2383
+ gte: "gte";
2384
+ lte: "lte";
2385
+ }>>;
2386
+ value: z.ZodOptional<z.ZodUnknown>;
2387
+ }, z.core.$strip>>;
2388
+ type: z.ZodDefault<z.ZodLiteral<"procedure">>;
2389
+ procedure: z.ZodString;
2390
+ method: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2391
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2392
+ pendingMessage: z.ZodOptional<z.ZodString>;
2393
+ successMessage: z.ZodOptional<z.ZodString>;
2394
+ errorMessage: z.ZodOptional<z.ZodString>;
2395
+ }, z.core.$strip>, z.ZodObject<{
2396
+ id: z.ZodString;
2397
+ label: z.ZodString;
2398
+ icon: z.ZodOptional<z.ZodString>;
2399
+ tooltip: z.ZodOptional<z.ZodString>;
2400
+ condition: z.ZodOptional<z.ZodObject<{
2401
+ field: z.ZodString;
2402
+ op: z.ZodDefault<z.ZodEnum<{
2403
+ gt: "gt";
2404
+ lt: "lt";
2405
+ eq: "eq";
2406
+ neq: "neq";
2407
+ exists: "exists";
2408
+ notExists: "notExists";
2409
+ gte: "gte";
2410
+ lte: "lte";
2411
+ }>>;
2412
+ value: z.ZodOptional<z.ZodUnknown>;
2413
+ }, z.core.$strip>>;
2414
+ type: z.ZodDefault<z.ZodLiteral<"link">>;
2415
+ href: z.ZodString;
2416
+ blank: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2417
+ }, z.core.$strip>]>, z.ZodTransform<({
2418
+ tooltip: string;
2419
+ } & {
2420
+ id: string;
2421
+ label: string;
2422
+ type: "procedure";
2423
+ procedure: string;
2424
+ method: string;
2425
+ icon?: string | undefined;
2426
+ tooltip?: string | undefined;
2427
+ condition?: {
2428
+ field: string;
2429
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2430
+ value?: unknown;
2431
+ } | undefined;
2432
+ data?: Record<string, unknown> | undefined;
2433
+ pendingMessage?: string | undefined;
2434
+ successMessage?: string | undefined;
2435
+ errorMessage?: string | undefined;
2436
+ }) | ({
2437
+ tooltip: string;
2438
+ } & {
2439
+ id: string;
2440
+ label: string;
2441
+ type: "link";
2442
+ href: string;
2443
+ blank: boolean;
2444
+ icon?: string | undefined;
2445
+ tooltip?: string | undefined;
2446
+ condition?: {
2447
+ field: string;
2448
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2449
+ value?: unknown;
2450
+ } | undefined;
2451
+ }), {
2452
+ id: string;
2453
+ label: string;
2454
+ type: "procedure";
2455
+ procedure: string;
2456
+ method: string;
2457
+ icon?: string | undefined;
2458
+ tooltip?: string | undefined;
2459
+ condition?: {
2460
+ field: string;
2461
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2462
+ value?: unknown;
2463
+ } | undefined;
2464
+ data?: Record<string, unknown> | undefined;
2465
+ pendingMessage?: string | undefined;
2466
+ successMessage?: string | undefined;
2467
+ errorMessage?: string | undefined;
2468
+ } | {
2469
+ id: string;
2470
+ label: string;
2471
+ type: "link";
2472
+ href: string;
2473
+ blank: boolean;
2474
+ icon?: string | undefined;
2475
+ tooltip?: string | undefined;
2476
+ condition?: {
2477
+ field: string;
2478
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2479
+ value?: unknown;
2480
+ } | undefined;
2481
+ }>>>>;
2482
+ tableActions: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodUnion<readonly [z.ZodObject<{
2483
+ id: z.ZodString;
2484
+ label: z.ZodString;
2485
+ icon: z.ZodOptional<z.ZodString>;
2486
+ tooltip: z.ZodOptional<z.ZodString>;
2487
+ condition: z.ZodOptional<z.ZodObject<{
2488
+ field: z.ZodString;
2489
+ op: z.ZodDefault<z.ZodEnum<{
2490
+ gt: "gt";
2491
+ lt: "lt";
2492
+ eq: "eq";
2493
+ neq: "neq";
2494
+ exists: "exists";
2495
+ notExists: "notExists";
2496
+ gte: "gte";
2497
+ lte: "lte";
2498
+ }>>;
2499
+ value: z.ZodOptional<z.ZodUnknown>;
2500
+ }, z.core.$strip>>;
2501
+ type: z.ZodDefault<z.ZodLiteral<"procedure">>;
2502
+ procedure: z.ZodString;
2503
+ method: z.ZodDefault<z.ZodOptional<z.ZodString>>;
2504
+ data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2505
+ pendingMessage: z.ZodOptional<z.ZodString>;
2506
+ successMessage: z.ZodOptional<z.ZodString>;
2507
+ errorMessage: z.ZodOptional<z.ZodString>;
2508
+ }, z.core.$strip>, z.ZodObject<{
2509
+ id: z.ZodString;
2510
+ label: z.ZodString;
2511
+ icon: z.ZodOptional<z.ZodString>;
2512
+ tooltip: z.ZodOptional<z.ZodString>;
2513
+ condition: z.ZodOptional<z.ZodObject<{
2514
+ field: z.ZodString;
2515
+ op: z.ZodDefault<z.ZodEnum<{
2516
+ gt: "gt";
2517
+ lt: "lt";
2518
+ eq: "eq";
2519
+ neq: "neq";
2520
+ exists: "exists";
2521
+ notExists: "notExists";
2522
+ gte: "gte";
2523
+ lte: "lte";
2524
+ }>>;
2525
+ value: z.ZodOptional<z.ZodUnknown>;
2526
+ }, z.core.$strip>>;
2527
+ type: z.ZodDefault<z.ZodLiteral<"link">>;
2528
+ href: z.ZodString;
2529
+ blank: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
2530
+ }, z.core.$strip>]>, z.ZodTransform<({
2531
+ tooltip: string;
2532
+ } & {
2533
+ id: string;
2534
+ label: string;
2535
+ type: "procedure";
2536
+ procedure: string;
2537
+ method: string;
2538
+ icon?: string | undefined;
2539
+ tooltip?: string | undefined;
2540
+ condition?: {
2541
+ field: string;
2542
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2543
+ value?: unknown;
2544
+ } | undefined;
2545
+ data?: Record<string, unknown> | undefined;
2546
+ pendingMessage?: string | undefined;
2547
+ successMessage?: string | undefined;
2548
+ errorMessage?: string | undefined;
2549
+ }) | ({
2550
+ tooltip: string;
2551
+ } & {
2552
+ id: string;
2553
+ label: string;
2554
+ type: "link";
2555
+ href: string;
2556
+ blank: boolean;
2557
+ icon?: string | undefined;
2558
+ tooltip?: string | undefined;
2559
+ condition?: {
2560
+ field: string;
2561
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2562
+ value?: unknown;
2563
+ } | undefined;
2564
+ }), {
2565
+ id: string;
2566
+ label: string;
2567
+ type: "procedure";
2568
+ procedure: string;
2569
+ method: string;
2570
+ icon?: string | undefined;
2571
+ tooltip?: string | undefined;
2572
+ condition?: {
2573
+ field: string;
2574
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2575
+ value?: unknown;
2576
+ } | undefined;
2577
+ data?: Record<string, unknown> | undefined;
2578
+ pendingMessage?: string | undefined;
2579
+ successMessage?: string | undefined;
2580
+ errorMessage?: string | undefined;
2581
+ } | {
2582
+ id: string;
2583
+ label: string;
2584
+ type: "link";
2585
+ href: string;
2586
+ blank: boolean;
2587
+ icon?: string | undefined;
2588
+ tooltip?: string | undefined;
2589
+ condition?: {
2590
+ field: string;
2591
+ op: "gt" | "lt" | "eq" | "neq" | "exists" | "notExists" | "gte" | "lte";
2592
+ value?: unknown;
2593
+ } | undefined;
2594
+ }>>>>;
2595
+ noRoutes: z.ZodOptional<z.ZodBoolean>;
2596
+ repository: z.ZodOptional<z.ZodCustom<CustomRepository<any, unknown>, CustomRepository<any, unknown>>>;
2597
+ hooks: z.ZodOptional<z.ZodObject<{
2598
+ beforeWrite: z.ZodOptional<z.ZodCustom<(data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
2599
+ afterWrite: z.ZodOptional<z.ZodCustom<(result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
2600
+ afterRead: z.ZodOptional<z.ZodCustom<(row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown, (row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown>>;
2601
+ beforeFindAll: z.ZodOptional<z.ZodCustom<(params: _ghentcdh_crouton_core.ListRequest, ctx: ReadHookContext) => Promise<_ghentcdh_crouton_core.ListRequest> | _ghentcdh_crouton_core.ListRequest, (params: _ghentcdh_crouton_core.ListRequest, ctx: ReadHookContext) => Promise<_ghentcdh_crouton_core.ListRequest> | _ghentcdh_crouton_core.ListRequest>>;
2602
+ afterFindAll: z.ZodOptional<z.ZodCustom<(rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[], (rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[]>>;
2603
+ }, z.core.$strip>>;
2604
+ }, z.core.$strip>>>>;
2605
+ hooks: z.ZodOptional<z.ZodObject<{
2606
+ beforeWrite: z.ZodOptional<z.ZodCustom<(data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (data: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
2607
+ afterWrite: z.ZodOptional<z.ZodCustom<(result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown, (result: unknown, ctx: WriteHookContext) => Promise<unknown> | unknown>>;
2608
+ afterRead: z.ZodOptional<z.ZodCustom<(row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown, (row: unknown, ctx: ReadHookContext) => Promise<unknown> | unknown>>;
2609
+ beforeFindAll: z.ZodOptional<z.ZodCustom<(params: _ghentcdh_crouton_core.ListRequest, ctx: ReadHookContext) => Promise<_ghentcdh_crouton_core.ListRequest> | _ghentcdh_crouton_core.ListRequest, (params: _ghentcdh_crouton_core.ListRequest, ctx: ReadHookContext) => Promise<_ghentcdh_crouton_core.ListRequest> | _ghentcdh_crouton_core.ListRequest>>;
2610
+ afterFindAll: z.ZodOptional<z.ZodCustom<(rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[], (rows: unknown[], ctx: ReadHookContext) => Promise<unknown[]> | unknown[]>>;
2611
+ }, z.core.$strip>>;
2612
+ repository: z.ZodOptional<z.ZodCustom<CustomRepository<any, unknown>, CustomRepository<any, unknown>>>;
2613
+ }, z.core.$strip>;
2614
+ type Resource = z.infer<typeof ResourceSchema>;
2615
+
2616
+ interface AdapterCrudContext {
2617
+ config: Resource;
2618
+ op: string;
2619
+ request?: unknown;
2620
+ offset: number;
2621
+ listSelect?: Record<string, unknown>;
2622
+ oneSelect?: Record<string, unknown>;
2623
+ configRegistry?: ResourceConfigRegistry;
2624
+ /** Free-text search term forwarded from `?q=` for OR search in `ReadRepository`. */
2625
+ q?: string;
2626
+ /** Resolved dot-paths that `?q=` matches against (from `operations.findAll.search`). */
2627
+ search?: string[];
2628
+ /** Field allowlist for `?filter=`; absent means any column is accepted. */
2629
+ filterAllowlist?: string[];
2630
+ }
2631
+ /**
2632
+ * Per-datasource, resource-keyed data-access contract.
2633
+ *
2634
+ * Prisma is the default adapter (`kind: "prisma"`). A developer can supply a
2635
+ * `custom` adapter by setting `adapter: "custom"` in `data-source.json` and
2636
+ * exporting a `DataSourceAdapter` (or factory) from the datasource `index.ts`.
2637
+ *
2638
+ * Phase 1 (lifecycle) + Phase 2 (CRUD surface): the CRUD methods are optional
2639
+ * so existing adapters and tests that only set up lifecycle are unaffected.
2640
+ * A subclass of `PrismaDataSourceAdapter` can override any CRUD method to
2641
+ * intercept or enrich data without reimplementing the rest.
2642
+ */
2643
+ interface DataSourceAdapter {
2644
+ readonly kind: string;
2645
+ /**
2646
+ * Raw backend handle — the escape hatch for action procedures and
2647
+ * `ctx.prisma`. `undefined` on a non-Prisma adapter.
2648
+ */
2649
+ readonly client?: unknown;
2650
+ /**
2651
+ * Database provider for placeholder syntax in raw SQL queries.
2652
+ * Set automatically for Prisma adapters by reading the Prisma client's
2653
+ * internal `_activeProvider`. Values: `'postgresql' | 'sqlite' | 'mysql' | 'cockroachdb'`.
2654
+ */
2655
+ readonly provider?: string;
2656
+ /** Return `true` when this adapter can serve the given model key. */
2657
+ supports?(model: string): boolean;
2658
+ /**
2659
+ * Probe the datasource. Throw on failure; the status service catches it and
2660
+ * reports `connected: false`. Omit on adapters that have no meaningful probe
2661
+ * (in-memory, custom REST) — the status page will report them as connected
2662
+ * without probing.
2663
+ */
2664
+ healthCheck?(): Promise<void>;
2665
+ connect?(): Promise<void>;
2666
+ disconnect?(): Promise<void>;
2667
+ findAll?(model: string, params: ListRequest, ctx: AdapterCrudContext): Promise<{
2668
+ data: unknown[];
2669
+ count: number;
2670
+ }>;
2671
+ count?(model: string, filter: string[], ctx: AdapterCrudContext): Promise<number>;
2672
+ findOne?(model: string, id: string | number, ctx: AdapterCrudContext): Promise<unknown | null>;
2673
+ create?(model: string, data: unknown, ctx: AdapterCrudContext): Promise<unknown>;
2674
+ update?(model: string, id: string | number, data: unknown, ctx: AdapterCrudContext): Promise<unknown>;
2675
+ patch?(model: string, id: string | number, data: unknown, ctx: AdapterCrudContext): Promise<unknown>;
2676
+ delete?(model: string, id: string | number, ctx: AdapterCrudContext): Promise<unknown>;
2677
+ findAllByParent?(model: string, parentId: string | number, sub: SubResourceConfig, params: ListRequest, ctx: AdapterCrudContext): Promise<{
2678
+ data: unknown[];
2679
+ count: number;
2680
+ }>;
2681
+ findOneChild?(model: string, sub: SubResourceConfig, childId: string | number, parentId: string | number | undefined, ctx: AdapterCrudContext): Promise<unknown | null>;
2682
+ createChild?(model: string, parentId: string | number, sub: SubResourceConfig, data: unknown, ctx: AdapterCrudContext): Promise<unknown>;
2683
+ updateChild?(model: string, sub: SubResourceConfig, childId: string | number, data: unknown, ctx: AdapterCrudContext): Promise<unknown>;
2684
+ deleteChild?(model: string, sub: SubResourceConfig, childId: string | number, parentId: string | number | undefined, ctx: AdapterCrudContext): Promise<unknown>;
2685
+ }
2686
+
2687
+ type DataSourceEntry = {
2688
+ config: DataSource;
2689
+ adapter: DataSourceAdapter;
2690
+ };
2691
+
2692
+ export { type AdapterCrudContext as A, type CrudOp as C, type DataSourceAdapter as D, type ParentContext as P, type Resource as R, type SubResourceConfig as S, type WriteOp as W, type DataSourceResolver as a, type CrudContext as b, type CustomRepositoryContext as c, type ResourceHooks as d, type ParentHookContext as e, type ReadOp as f, type DataSourceEntry as g, type CroutonAppConfig as h, ResourceConfigLoader as i, type CustomListResult as j, type CustomOp as k, type CustomRepository as l, type ReadHookContext as m, ReadOpSchema as n, ResourceConfigRegistry as o, ResourceHooksSchema as p, type WriteHookContext as q, WriteOpSchema as r };