@adminiumjs/manifest 0.3.0-rc.3 → 0.3.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schema.d.ts CHANGED
@@ -148,6 +148,138 @@ export declare const COLUMN_TYPES: readonly ["id", "text", "int", "bigint", "dec
148
148
  export declare const COLUMN_SEMANTICS: readonly ["name", "money", "image", "email", "avatar", "geo-lat", "geo-lng"];
149
149
  /** Structural role markers. */
150
150
  export declare const COLUMN_ROLES: readonly ["pk", "created_at", "updated_at"];
151
+ /** A label in several languages. US English is the one every reader falls back to. */
152
+ export declare const labelsSchema: z.ZodRecord<z.ZodString, z.ZodString>;
153
+ /**
154
+ * The rules an app asks Adminium to keep on a column (written as column-rule
155
+ * overrides at install). The first five are the rules an operator can set in
156
+ * the column inspector; the rest are the ones Adminium DECIDES for a public
157
+ * write, so a browser never picks a price, a number or a code:
158
+ *
159
+ * - `copy`: take the value from the linked row (`via` is this table's
160
+ * foreign-key column, `from` a column of the row it points at).
161
+ * - `sequence`: the next number in this column's own counter.
162
+ * - `code`: a short random code (Crockford base 32), unique in the column.
163
+ * - `rollup`: a total over child rows, kept in step as they change.
164
+ * - `venueLocal`: a wall time with no zone is read in the venue's zone.
165
+ * - `personal`: whether the column is personal data, overriding the guess
166
+ * Adminium makes from its name.
167
+ */
168
+ export declare const columnRulesSchema: z.ZodObject<{
169
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
170
+ list: z.ZodString;
171
+ }, z.core.$strict>, z.ZodObject<{
172
+ values: z.ZodArray<z.ZodObject<{
173
+ value: z.ZodString;
174
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
175
+ tone: z.ZodOptional<z.ZodString>;
176
+ }, z.core.$strict>>;
177
+ }, z.core.$strict>]>>;
178
+ enumLabels: z.ZodOptional<z.ZodObject<{
179
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
180
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
181
+ }, z.core.$strict>>;
182
+ required: z.ZodOptional<z.ZodLiteral<true>>;
183
+ validation: z.ZodOptional<z.ZodObject<{
184
+ format: z.ZodOptional<z.ZodEnum<{
185
+ url: "url";
186
+ email: "email";
187
+ phone: "phone";
188
+ }>>;
189
+ min: z.ZodOptional<z.ZodNumber>;
190
+ max: z.ZodOptional<z.ZodNumber>;
191
+ minLength: z.ZodOptional<z.ZodNumber>;
192
+ maxLength: z.ZodOptional<z.ZodNumber>;
193
+ }, z.core.$strict>>;
194
+ copy: z.ZodOptional<z.ZodObject<{
195
+ via: z.ZodString;
196
+ from: z.ZodString;
197
+ mode: z.ZodOptional<z.ZodEnum<{
198
+ default: "default";
199
+ always: "always";
200
+ }>>;
201
+ }, z.core.$strict>>;
202
+ sequence: z.ZodOptional<z.ZodObject<{
203
+ start: z.ZodOptional<z.ZodNumber>;
204
+ }, z.core.$strict>>;
205
+ code: z.ZodOptional<z.ZodObject<{
206
+ prefix: z.ZodOptional<z.ZodString>;
207
+ length: z.ZodNumber;
208
+ }, z.core.$strict>>;
209
+ rollup: z.ZodOptional<z.ZodObject<{
210
+ from: z.ZodString;
211
+ via: z.ZodString;
212
+ sum: z.ZodString;
213
+ times: z.ZodOptional<z.ZodString>;
214
+ unlessSet: z.ZodOptional<z.ZodString>;
215
+ }, z.core.$strict>>;
216
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
217
+ personal: z.ZodOptional<z.ZodBoolean>;
218
+ }, z.core.$strict>;
219
+ export type ColumnRules = z.infer<typeof columnRulesSchema>;
220
+ /**
221
+ * A limit on how much of a slot rows may take — the booking guard. Only rows
222
+ * whose `countWhere` column holds one of its values count (a cancelled booking
223
+ * holds no seats).
224
+ */
225
+ export declare const capacitySchema: z.ZodObject<{
226
+ slot: z.ZodString;
227
+ amount: z.ZodString;
228
+ perSlot: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
229
+ table: z.ZodString;
230
+ column: z.ZodString;
231
+ }, z.core.$strict>]>;
232
+ countWhere: z.ZodOptional<z.ZodObject<{
233
+ column: z.ZodString;
234
+ values: z.ZodArray<z.ZodString>;
235
+ }, z.core.$strict>>;
236
+ slotMinutes: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
237
+ table: z.ZodString;
238
+ column: z.ZodString;
239
+ }, z.core.$strict>]>;
240
+ windowDays: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
241
+ table: z.ZodString;
242
+ column: z.ZodString;
243
+ }, z.core.$strict>]>>;
244
+ opens: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
245
+ table: z.ZodString;
246
+ column: z.ZodString;
247
+ }, z.core.$strict>]>>;
248
+ closes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
249
+ table: z.ZodString;
250
+ column: z.ZodString;
251
+ }, z.core.$strict>]>>;
252
+ resource: z.ZodOptional<z.ZodString>;
253
+ cancelHours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
254
+ table: z.ZodString;
255
+ column: z.ZodString;
256
+ }, z.core.$strict>]>>;
257
+ }, z.core.$strict>;
258
+ /** The longest `maxLength` a text column may ask for (see `maxLength` below). */
259
+ export declare const MAX_TEXT_LENGTH = 1000;
260
+ /**
261
+ * Why a column's `default` cannot be created, or `null` when it can.
262
+ *
263
+ * The rules are the ones every one of the three databases can honour with the
264
+ * same meaning, so a manifest that validates installs the same everywhere:
265
+ *
266
+ * - `now` only on a `timestamptz`, and a timestamp takes nothing else. A
267
+ * literal timestamp default is a fixed moment, which is never what a
268
+ * manifest author means.
269
+ * - `text` needs `maxLength`: MySQL gives an unbounded TEXT column no literal
270
+ * default, and a manifest must not install on two engines and fail on the
271
+ * third.
272
+ * - `json`, `blob`, `date`, keys and foreign keys take none.
273
+ * - an enum's default is one of its values, a number is a number, a boolean a
274
+ * boolean.
275
+ */
276
+ export declare function defaultIssue(c: {
277
+ type: string;
278
+ role?: string | undefined;
279
+ enum?: readonly string[] | undefined;
280
+ maxLength?: number | undefined;
281
+ default?: string | number | boolean | undefined;
282
+ }): string | null;
151
283
  export declare const requiredColumnSchema: z.ZodObject<{
152
284
  ref: z.ZodString;
153
285
  type: z.ZodEnum<{
@@ -184,6 +316,60 @@ export declare const requiredColumnSchema: z.ZodObject<{
184
316
  nullable: z.ZodOptional<z.ZodBoolean>;
185
317
  enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
186
318
  references: z.ZodOptional<z.ZodString>;
319
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
320
+ maxLength: z.ZodOptional<z.ZodNumber>;
321
+ rules: z.ZodOptional<z.ZodObject<{
322
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
323
+ list: z.ZodString;
324
+ }, z.core.$strict>, z.ZodObject<{
325
+ values: z.ZodArray<z.ZodObject<{
326
+ value: z.ZodString;
327
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
328
+ tone: z.ZodOptional<z.ZodString>;
329
+ }, z.core.$strict>>;
330
+ }, z.core.$strict>]>>;
331
+ enumLabels: z.ZodOptional<z.ZodObject<{
332
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
333
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
334
+ }, z.core.$strict>>;
335
+ required: z.ZodOptional<z.ZodLiteral<true>>;
336
+ validation: z.ZodOptional<z.ZodObject<{
337
+ format: z.ZodOptional<z.ZodEnum<{
338
+ url: "url";
339
+ email: "email";
340
+ phone: "phone";
341
+ }>>;
342
+ min: z.ZodOptional<z.ZodNumber>;
343
+ max: z.ZodOptional<z.ZodNumber>;
344
+ minLength: z.ZodOptional<z.ZodNumber>;
345
+ maxLength: z.ZodOptional<z.ZodNumber>;
346
+ }, z.core.$strict>>;
347
+ copy: z.ZodOptional<z.ZodObject<{
348
+ via: z.ZodString;
349
+ from: z.ZodString;
350
+ mode: z.ZodOptional<z.ZodEnum<{
351
+ default: "default";
352
+ always: "always";
353
+ }>>;
354
+ }, z.core.$strict>>;
355
+ sequence: z.ZodOptional<z.ZodObject<{
356
+ start: z.ZodOptional<z.ZodNumber>;
357
+ }, z.core.$strict>>;
358
+ code: z.ZodOptional<z.ZodObject<{
359
+ prefix: z.ZodOptional<z.ZodString>;
360
+ length: z.ZodNumber;
361
+ }, z.core.$strict>>;
362
+ rollup: z.ZodOptional<z.ZodObject<{
363
+ from: z.ZodString;
364
+ via: z.ZodString;
365
+ sum: z.ZodString;
366
+ times: z.ZodOptional<z.ZodString>;
367
+ unlessSet: z.ZodOptional<z.ZodString>;
368
+ }, z.core.$strict>>;
369
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
370
+ personal: z.ZodOptional<z.ZodBoolean>;
371
+ }, z.core.$strict>>;
372
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
187
373
  }, z.core.$strict>;
188
374
  export declare const requiredTableSchema: z.ZodObject<{
189
375
  ref: z.ZodString;
@@ -223,7 +409,98 @@ export declare const requiredTableSchema: z.ZodObject<{
223
409
  nullable: z.ZodOptional<z.ZodBoolean>;
224
410
  enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
225
411
  references: z.ZodOptional<z.ZodString>;
412
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
413
+ maxLength: z.ZodOptional<z.ZodNumber>;
414
+ rules: z.ZodOptional<z.ZodObject<{
415
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
416
+ list: z.ZodString;
417
+ }, z.core.$strict>, z.ZodObject<{
418
+ values: z.ZodArray<z.ZodObject<{
419
+ value: z.ZodString;
420
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
421
+ tone: z.ZodOptional<z.ZodString>;
422
+ }, z.core.$strict>>;
423
+ }, z.core.$strict>]>>;
424
+ enumLabels: z.ZodOptional<z.ZodObject<{
425
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
426
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
427
+ }, z.core.$strict>>;
428
+ required: z.ZodOptional<z.ZodLiteral<true>>;
429
+ validation: z.ZodOptional<z.ZodObject<{
430
+ format: z.ZodOptional<z.ZodEnum<{
431
+ url: "url";
432
+ email: "email";
433
+ phone: "phone";
434
+ }>>;
435
+ min: z.ZodOptional<z.ZodNumber>;
436
+ max: z.ZodOptional<z.ZodNumber>;
437
+ minLength: z.ZodOptional<z.ZodNumber>;
438
+ maxLength: z.ZodOptional<z.ZodNumber>;
439
+ }, z.core.$strict>>;
440
+ copy: z.ZodOptional<z.ZodObject<{
441
+ via: z.ZodString;
442
+ from: z.ZodString;
443
+ mode: z.ZodOptional<z.ZodEnum<{
444
+ default: "default";
445
+ always: "always";
446
+ }>>;
447
+ }, z.core.$strict>>;
448
+ sequence: z.ZodOptional<z.ZodObject<{
449
+ start: z.ZodOptional<z.ZodNumber>;
450
+ }, z.core.$strict>>;
451
+ code: z.ZodOptional<z.ZodObject<{
452
+ prefix: z.ZodOptional<z.ZodString>;
453
+ length: z.ZodNumber;
454
+ }, z.core.$strict>>;
455
+ rollup: z.ZodOptional<z.ZodObject<{
456
+ from: z.ZodString;
457
+ via: z.ZodString;
458
+ sum: z.ZodString;
459
+ times: z.ZodOptional<z.ZodString>;
460
+ unlessSet: z.ZodOptional<z.ZodString>;
461
+ }, z.core.$strict>>;
462
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
463
+ personal: z.ZodOptional<z.ZodBoolean>;
464
+ }, z.core.$strict>>;
465
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
466
+ }, z.core.$strict>>;
467
+ shape: z.ZodOptional<z.ZodString>;
468
+ capacity: z.ZodOptional<z.ZodObject<{
469
+ slot: z.ZodString;
470
+ amount: z.ZodString;
471
+ perSlot: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
472
+ table: z.ZodString;
473
+ column: z.ZodString;
474
+ }, z.core.$strict>]>;
475
+ countWhere: z.ZodOptional<z.ZodObject<{
476
+ column: z.ZodString;
477
+ values: z.ZodArray<z.ZodString>;
478
+ }, z.core.$strict>>;
479
+ slotMinutes: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
480
+ table: z.ZodString;
481
+ column: z.ZodString;
482
+ }, z.core.$strict>]>;
483
+ windowDays: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
484
+ table: z.ZodString;
485
+ column: z.ZodString;
486
+ }, z.core.$strict>]>>;
487
+ opens: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
488
+ table: z.ZodString;
489
+ column: z.ZodString;
490
+ }, z.core.$strict>]>>;
491
+ closes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
492
+ table: z.ZodString;
493
+ column: z.ZodString;
494
+ }, z.core.$strict>]>>;
495
+ resource: z.ZodOptional<z.ZodString>;
496
+ cancelHours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
497
+ table: z.ZodString;
498
+ column: z.ZodString;
499
+ }, z.core.$strict>]>>;
226
500
  }, z.core.$strict>>;
501
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
502
+ labelPlural: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
503
+ keyField: z.ZodOptional<z.ZodString>;
227
504
  }, z.core.$strict>;
228
505
  export declare const requiredSchemaSchema: z.ZodObject<{
229
506
  tables: z.ZodArray<z.ZodObject<{
@@ -264,8 +541,100 @@ export declare const requiredSchemaSchema: z.ZodObject<{
264
541
  nullable: z.ZodOptional<z.ZodBoolean>;
265
542
  enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
266
543
  references: z.ZodOptional<z.ZodString>;
544
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
545
+ maxLength: z.ZodOptional<z.ZodNumber>;
546
+ rules: z.ZodOptional<z.ZodObject<{
547
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
548
+ list: z.ZodString;
549
+ }, z.core.$strict>, z.ZodObject<{
550
+ values: z.ZodArray<z.ZodObject<{
551
+ value: z.ZodString;
552
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
553
+ tone: z.ZodOptional<z.ZodString>;
554
+ }, z.core.$strict>>;
555
+ }, z.core.$strict>]>>;
556
+ enumLabels: z.ZodOptional<z.ZodObject<{
557
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
558
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
559
+ }, z.core.$strict>>;
560
+ required: z.ZodOptional<z.ZodLiteral<true>>;
561
+ validation: z.ZodOptional<z.ZodObject<{
562
+ format: z.ZodOptional<z.ZodEnum<{
563
+ url: "url";
564
+ email: "email";
565
+ phone: "phone";
566
+ }>>;
567
+ min: z.ZodOptional<z.ZodNumber>;
568
+ max: z.ZodOptional<z.ZodNumber>;
569
+ minLength: z.ZodOptional<z.ZodNumber>;
570
+ maxLength: z.ZodOptional<z.ZodNumber>;
571
+ }, z.core.$strict>>;
572
+ copy: z.ZodOptional<z.ZodObject<{
573
+ via: z.ZodString;
574
+ from: z.ZodString;
575
+ mode: z.ZodOptional<z.ZodEnum<{
576
+ default: "default";
577
+ always: "always";
578
+ }>>;
579
+ }, z.core.$strict>>;
580
+ sequence: z.ZodOptional<z.ZodObject<{
581
+ start: z.ZodOptional<z.ZodNumber>;
582
+ }, z.core.$strict>>;
583
+ code: z.ZodOptional<z.ZodObject<{
584
+ prefix: z.ZodOptional<z.ZodString>;
585
+ length: z.ZodNumber;
586
+ }, z.core.$strict>>;
587
+ rollup: z.ZodOptional<z.ZodObject<{
588
+ from: z.ZodString;
589
+ via: z.ZodString;
590
+ sum: z.ZodString;
591
+ times: z.ZodOptional<z.ZodString>;
592
+ unlessSet: z.ZodOptional<z.ZodString>;
593
+ }, z.core.$strict>>;
594
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
595
+ personal: z.ZodOptional<z.ZodBoolean>;
596
+ }, z.core.$strict>>;
597
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
598
+ }, z.core.$strict>>;
599
+ shape: z.ZodOptional<z.ZodString>;
600
+ capacity: z.ZodOptional<z.ZodObject<{
601
+ slot: z.ZodString;
602
+ amount: z.ZodString;
603
+ perSlot: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
604
+ table: z.ZodString;
605
+ column: z.ZodString;
606
+ }, z.core.$strict>]>;
607
+ countWhere: z.ZodOptional<z.ZodObject<{
608
+ column: z.ZodString;
609
+ values: z.ZodArray<z.ZodString>;
610
+ }, z.core.$strict>>;
611
+ slotMinutes: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
612
+ table: z.ZodString;
613
+ column: z.ZodString;
614
+ }, z.core.$strict>]>;
615
+ windowDays: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
616
+ table: z.ZodString;
617
+ column: z.ZodString;
618
+ }, z.core.$strict>]>>;
619
+ opens: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
620
+ table: z.ZodString;
621
+ column: z.ZodString;
622
+ }, z.core.$strict>]>>;
623
+ closes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
624
+ table: z.ZodString;
625
+ column: z.ZodString;
626
+ }, z.core.$strict>]>>;
627
+ resource: z.ZodOptional<z.ZodString>;
628
+ cancelHours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
629
+ table: z.ZodString;
630
+ column: z.ZodString;
631
+ }, z.core.$strict>]>>;
267
632
  }, z.core.$strict>>;
633
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
634
+ labelPlural: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
635
+ keyField: z.ZodOptional<z.ZodString>;
268
636
  }, z.core.$strict>>;
637
+ prefixed: z.ZodOptional<z.ZodLiteral<true>>;
269
638
  }, z.core.$strict>;
270
639
  export declare const pageNavSchema: z.ZodObject<{
271
640
  group: z.ZodString;
@@ -286,12 +655,14 @@ export declare const pageSchema: z.ZodObject<{
286
655
  }, z.core.$strict>;
287
656
  bindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
288
657
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
658
+ titles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
289
659
  }, z.core.$strict>;
290
660
  export declare const roleSchema: z.ZodObject<{
291
661
  key: z.ZodString;
292
662
  name: z.ZodString;
293
663
  cloneFrom: z.ZodOptional<z.ZodString>;
294
664
  permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
665
+ screensOnly: z.ZodOptional<z.ZodBoolean>;
295
666
  }, z.core.$strict>;
296
667
  export declare const settingSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
297
668
  type: z.ZodLiteral<"string">;
@@ -421,7 +792,122 @@ export declare const frontendSchema: z.ZodObject<{
421
792
  example: z.ZodOptional<z.ZodString>;
422
793
  }, z.core.$strict>>>;
423
794
  routes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
795
+ placement: z.ZodOptional<z.ZodEnum<{
796
+ internal: "internal";
797
+ external: "external";
798
+ }>>;
799
+ enabled: z.ZodOptional<z.ZodBoolean>;
424
800
  }, z.core.$strict>;
801
+ /** A heading in the app's own sidebar section; pages name it in `nav.group`. */
802
+ /**
803
+ * A list of answers the app ships, for a column's `options: {list}`. Installed
804
+ * as the option list `<appKey>-<name>`, which the operator can then edit like
805
+ * any other; a list of that key they already made is left alone.
806
+ */
807
+ export declare const optionListSchema: z.ZodObject<{
808
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
809
+ values: z.ZodArray<z.ZodObject<{
810
+ value: z.ZodString;
811
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
812
+ tone: z.ZodOptional<z.ZodString>;
813
+ }, z.core.$strict>>;
814
+ }, z.core.$strict>;
815
+ export declare const navGroupSchema: z.ZodObject<{
816
+ key: z.ZodString;
817
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
818
+ order: z.ZodNumber;
819
+ }, z.core.$strict>;
820
+ /**
821
+ * What the app's public screens may do with one table, through the one
822
+ * browser key the install creates. `GET` reads, `POST` creates; `PATCH` only
823
+ * behind a claim (a guest changing their own booking), on a narrow writable
824
+ * list. `availability` answers free or full per slot and never a row.
825
+ */
826
+ export declare const publicAccessSchema: z.ZodObject<{
827
+ table: z.ZodString;
828
+ kind: z.ZodOptional<z.ZodEnum<{
829
+ records: "records";
830
+ availability: "availability";
831
+ }>>;
832
+ methods: z.ZodArray<z.ZodEnum<{
833
+ GET: "GET";
834
+ POST: "POST";
835
+ PATCH: "PATCH";
836
+ }>>;
837
+ select: z.ZodOptional<z.ZodArray<z.ZodString>>;
838
+ writable: z.ZodOptional<z.ZodArray<z.ZodString>>;
839
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
840
+ column: z.ZodString;
841
+ op: z.ZodEnum<{
842
+ in: "in";
843
+ eq: "eq";
844
+ neq: "neq";
845
+ gte: "gte";
846
+ lte: "lte";
847
+ }>;
848
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>]>;
849
+ }, z.core.$strict>>>;
850
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
851
+ claim: z.ZodOptional<z.ZodObject<{
852
+ match: z.ZodArray<z.ZodString>;
853
+ }, z.core.$strict>>;
854
+ confirm: z.ZodOptional<z.ZodObject<{
855
+ template: z.ZodEnum<{
856
+ "booking-confirmation": "booking-confirmation";
857
+ }>;
858
+ to: z.ZodString;
859
+ code: z.ZodOptional<z.ZodString>;
860
+ when: z.ZodOptional<z.ZodString>;
861
+ party: z.ZodOptional<z.ZodString>;
862
+ name: z.ZodOptional<z.ZodString>;
863
+ venue: z.ZodOptional<z.ZodObject<{
864
+ table: z.ZodString;
865
+ name: z.ZodOptional<z.ZodString>;
866
+ address: z.ZodOptional<z.ZodString>;
867
+ phone: z.ZodOptional<z.ZodString>;
868
+ }, z.core.$strict>>;
869
+ link: z.ZodOptional<z.ZodString>;
870
+ }, z.core.$strict>>;
871
+ }, z.core.$strict>;
872
+ export type PublicAccess = z.infer<typeof publicAccessSchema>;
873
+ /** The bundled sample data file, inside the package's `seeds/` folder. */
874
+ export declare const sampleDataSchema: z.ZodObject<{
875
+ file: z.ZodString;
876
+ }, z.core.$strict>;
877
+ /** The prefix Adminium gives an app's tables: its key, `-` as `_`, then `_`. */
878
+ export declare function prefixFor(appKey: string): string;
879
+ /** The longest real table name every engine accepts (Postgres: 63 bytes). */
880
+ export declare const MAX_TABLE_NAME = 63;
881
+ /**
882
+ * Every name a manifest's own blocks use must name something the manifest
883
+ * declares: a rule's columns, a capacity's columns, a public table and the
884
+ * columns it reads and writes. Checked here so an app's CI refuses a typo long
885
+ * before an operator's install would.
886
+ */
887
+ export declare function appReferenceIssues(m: {
888
+ key: string;
889
+ requiredSchema: {
890
+ tables: readonly RequiredTableShape[];
891
+ prefixed?: true | undefined;
892
+ };
893
+ publicAccess?: readonly PublicAccess[] | undefined;
894
+ optionLists?: Readonly<Record<string, unknown>> | undefined;
895
+ }): {
896
+ path: (string | number)[];
897
+ message: string;
898
+ }[];
899
+ /** What `appReferenceIssues` reads of a table. */
900
+ interface RequiredTableShape {
901
+ ref: string;
902
+ columns: readonly {
903
+ ref: string;
904
+ type: string;
905
+ role?: string | undefined;
906
+ references?: string | undefined;
907
+ rules?: ColumnRules | undefined;
908
+ }[];
909
+ capacity?: z.infer<typeof capacitySchema> | undefined;
910
+ }
425
911
  export declare const appManifestSchema: z.ZodObject<{
426
912
  compatibility: z.ZodObject<{
427
913
  minAdminiumVersion: z.ZodString;
@@ -483,8 +969,100 @@ export declare const appManifestSchema: z.ZodObject<{
483
969
  nullable: z.ZodOptional<z.ZodBoolean>;
484
970
  enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
485
971
  references: z.ZodOptional<z.ZodString>;
972
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
973
+ maxLength: z.ZodOptional<z.ZodNumber>;
974
+ rules: z.ZodOptional<z.ZodObject<{
975
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
976
+ list: z.ZodString;
977
+ }, z.core.$strict>, z.ZodObject<{
978
+ values: z.ZodArray<z.ZodObject<{
979
+ value: z.ZodString;
980
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
981
+ tone: z.ZodOptional<z.ZodString>;
982
+ }, z.core.$strict>>;
983
+ }, z.core.$strict>]>>;
984
+ enumLabels: z.ZodOptional<z.ZodObject<{
985
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
986
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
987
+ }, z.core.$strict>>;
988
+ required: z.ZodOptional<z.ZodLiteral<true>>;
989
+ validation: z.ZodOptional<z.ZodObject<{
990
+ format: z.ZodOptional<z.ZodEnum<{
991
+ url: "url";
992
+ email: "email";
993
+ phone: "phone";
994
+ }>>;
995
+ min: z.ZodOptional<z.ZodNumber>;
996
+ max: z.ZodOptional<z.ZodNumber>;
997
+ minLength: z.ZodOptional<z.ZodNumber>;
998
+ maxLength: z.ZodOptional<z.ZodNumber>;
999
+ }, z.core.$strict>>;
1000
+ copy: z.ZodOptional<z.ZodObject<{
1001
+ via: z.ZodString;
1002
+ from: z.ZodString;
1003
+ mode: z.ZodOptional<z.ZodEnum<{
1004
+ default: "default";
1005
+ always: "always";
1006
+ }>>;
1007
+ }, z.core.$strict>>;
1008
+ sequence: z.ZodOptional<z.ZodObject<{
1009
+ start: z.ZodOptional<z.ZodNumber>;
1010
+ }, z.core.$strict>>;
1011
+ code: z.ZodOptional<z.ZodObject<{
1012
+ prefix: z.ZodOptional<z.ZodString>;
1013
+ length: z.ZodNumber;
1014
+ }, z.core.$strict>>;
1015
+ rollup: z.ZodOptional<z.ZodObject<{
1016
+ from: z.ZodString;
1017
+ via: z.ZodString;
1018
+ sum: z.ZodString;
1019
+ times: z.ZodOptional<z.ZodString>;
1020
+ unlessSet: z.ZodOptional<z.ZodString>;
1021
+ }, z.core.$strict>>;
1022
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
1023
+ personal: z.ZodOptional<z.ZodBoolean>;
1024
+ }, z.core.$strict>>;
1025
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1026
+ }, z.core.$strict>>;
1027
+ shape: z.ZodOptional<z.ZodString>;
1028
+ capacity: z.ZodOptional<z.ZodObject<{
1029
+ slot: z.ZodString;
1030
+ amount: z.ZodString;
1031
+ perSlot: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1032
+ table: z.ZodString;
1033
+ column: z.ZodString;
1034
+ }, z.core.$strict>]>;
1035
+ countWhere: z.ZodOptional<z.ZodObject<{
1036
+ column: z.ZodString;
1037
+ values: z.ZodArray<z.ZodString>;
1038
+ }, z.core.$strict>>;
1039
+ slotMinutes: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1040
+ table: z.ZodString;
1041
+ column: z.ZodString;
1042
+ }, z.core.$strict>]>;
1043
+ windowDays: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1044
+ table: z.ZodString;
1045
+ column: z.ZodString;
1046
+ }, z.core.$strict>]>>;
1047
+ opens: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1048
+ table: z.ZodString;
1049
+ column: z.ZodString;
1050
+ }, z.core.$strict>]>>;
1051
+ closes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1052
+ table: z.ZodString;
1053
+ column: z.ZodString;
1054
+ }, z.core.$strict>]>>;
1055
+ resource: z.ZodOptional<z.ZodString>;
1056
+ cancelHours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1057
+ table: z.ZodString;
1058
+ column: z.ZodString;
1059
+ }, z.core.$strict>]>>;
486
1060
  }, z.core.$strict>>;
1061
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1062
+ labelPlural: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1063
+ keyField: z.ZodOptional<z.ZodString>;
487
1064
  }, z.core.$strict>>;
1065
+ prefixed: z.ZodOptional<z.ZodLiteral<true>>;
488
1066
  }, z.core.$strict>;
489
1067
  pages: z.ZodArray<z.ZodObject<{
490
1068
  ref: z.ZodString;
@@ -500,12 +1078,14 @@ export declare const appManifestSchema: z.ZodObject<{
500
1078
  }, z.core.$strict>;
501
1079
  bindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
502
1080
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1081
+ titles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
503
1082
  }, z.core.$strict>>;
504
1083
  roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
505
1084
  key: z.ZodString;
506
1085
  name: z.ZodString;
507
1086
  cloneFrom: z.ZodOptional<z.ZodString>;
508
1087
  permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1088
+ screensOnly: z.ZodOptional<z.ZodBoolean>;
509
1089
  }, z.core.$strict>>>;
510
1090
  settings: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
511
1091
  type: z.ZodLiteral<"string">;
@@ -633,6 +1213,73 @@ export declare const appManifestSchema: z.ZodObject<{
633
1213
  example: z.ZodOptional<z.ZodString>;
634
1214
  }, z.core.$strict>>>;
635
1215
  routes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1216
+ placement: z.ZodOptional<z.ZodEnum<{
1217
+ internal: "internal";
1218
+ external: "external";
1219
+ }>>;
1220
+ enabled: z.ZodOptional<z.ZodBoolean>;
1221
+ }, z.core.$strict>>;
1222
+ navGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
1223
+ key: z.ZodString;
1224
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
1225
+ order: z.ZodNumber;
1226
+ }, z.core.$strict>>>;
1227
+ optionLists: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
1228
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1229
+ values: z.ZodArray<z.ZodObject<{
1230
+ value: z.ZodString;
1231
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1232
+ tone: z.ZodOptional<z.ZodString>;
1233
+ }, z.core.$strict>>;
1234
+ }, z.core.$strict>>>;
1235
+ publicAccess: z.ZodOptional<z.ZodArray<z.ZodObject<{
1236
+ table: z.ZodString;
1237
+ kind: z.ZodOptional<z.ZodEnum<{
1238
+ records: "records";
1239
+ availability: "availability";
1240
+ }>>;
1241
+ methods: z.ZodArray<z.ZodEnum<{
1242
+ GET: "GET";
1243
+ POST: "POST";
1244
+ PATCH: "PATCH";
1245
+ }>>;
1246
+ select: z.ZodOptional<z.ZodArray<z.ZodString>>;
1247
+ writable: z.ZodOptional<z.ZodArray<z.ZodString>>;
1248
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
1249
+ column: z.ZodString;
1250
+ op: z.ZodEnum<{
1251
+ in: "in";
1252
+ eq: "eq";
1253
+ neq: "neq";
1254
+ gte: "gte";
1255
+ lte: "lte";
1256
+ }>;
1257
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>]>;
1258
+ }, z.core.$strict>>>;
1259
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
1260
+ claim: z.ZodOptional<z.ZodObject<{
1261
+ match: z.ZodArray<z.ZodString>;
1262
+ }, z.core.$strict>>;
1263
+ confirm: z.ZodOptional<z.ZodObject<{
1264
+ template: z.ZodEnum<{
1265
+ "booking-confirmation": "booking-confirmation";
1266
+ }>;
1267
+ to: z.ZodString;
1268
+ code: z.ZodOptional<z.ZodString>;
1269
+ when: z.ZodOptional<z.ZodString>;
1270
+ party: z.ZodOptional<z.ZodString>;
1271
+ name: z.ZodOptional<z.ZodString>;
1272
+ venue: z.ZodOptional<z.ZodObject<{
1273
+ table: z.ZodString;
1274
+ name: z.ZodOptional<z.ZodString>;
1275
+ address: z.ZodOptional<z.ZodString>;
1276
+ phone: z.ZodOptional<z.ZodString>;
1277
+ }, z.core.$strict>>;
1278
+ link: z.ZodOptional<z.ZodString>;
1279
+ }, z.core.$strict>>;
1280
+ }, z.core.$strict>>>;
1281
+ sampleData: z.ZodOptional<z.ZodObject<{
1282
+ file: z.ZodString;
636
1283
  }, z.core.$strict>>;
637
1284
  categories: z.ZodArray<z.ZodEnum<{
638
1285
  commerce: "commerce";
@@ -830,8 +1477,100 @@ export declare const addOnManifestSchema: z.ZodObject<{
830
1477
  nullable: z.ZodOptional<z.ZodBoolean>;
831
1478
  enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
832
1479
  references: z.ZodOptional<z.ZodString>;
1480
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
1481
+ maxLength: z.ZodOptional<z.ZodNumber>;
1482
+ rules: z.ZodOptional<z.ZodObject<{
1483
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1484
+ list: z.ZodString;
1485
+ }, z.core.$strict>, z.ZodObject<{
1486
+ values: z.ZodArray<z.ZodObject<{
1487
+ value: z.ZodString;
1488
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1489
+ tone: z.ZodOptional<z.ZodString>;
1490
+ }, z.core.$strict>>;
1491
+ }, z.core.$strict>]>>;
1492
+ enumLabels: z.ZodOptional<z.ZodObject<{
1493
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1494
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1495
+ }, z.core.$strict>>;
1496
+ required: z.ZodOptional<z.ZodLiteral<true>>;
1497
+ validation: z.ZodOptional<z.ZodObject<{
1498
+ format: z.ZodOptional<z.ZodEnum<{
1499
+ url: "url";
1500
+ email: "email";
1501
+ phone: "phone";
1502
+ }>>;
1503
+ min: z.ZodOptional<z.ZodNumber>;
1504
+ max: z.ZodOptional<z.ZodNumber>;
1505
+ minLength: z.ZodOptional<z.ZodNumber>;
1506
+ maxLength: z.ZodOptional<z.ZodNumber>;
1507
+ }, z.core.$strict>>;
1508
+ copy: z.ZodOptional<z.ZodObject<{
1509
+ via: z.ZodString;
1510
+ from: z.ZodString;
1511
+ mode: z.ZodOptional<z.ZodEnum<{
1512
+ default: "default";
1513
+ always: "always";
1514
+ }>>;
1515
+ }, z.core.$strict>>;
1516
+ sequence: z.ZodOptional<z.ZodObject<{
1517
+ start: z.ZodOptional<z.ZodNumber>;
1518
+ }, z.core.$strict>>;
1519
+ code: z.ZodOptional<z.ZodObject<{
1520
+ prefix: z.ZodOptional<z.ZodString>;
1521
+ length: z.ZodNumber;
1522
+ }, z.core.$strict>>;
1523
+ rollup: z.ZodOptional<z.ZodObject<{
1524
+ from: z.ZodString;
1525
+ via: z.ZodString;
1526
+ sum: z.ZodString;
1527
+ times: z.ZodOptional<z.ZodString>;
1528
+ unlessSet: z.ZodOptional<z.ZodString>;
1529
+ }, z.core.$strict>>;
1530
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
1531
+ personal: z.ZodOptional<z.ZodBoolean>;
1532
+ }, z.core.$strict>>;
1533
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
833
1534
  }, z.core.$strict>>;
1535
+ shape: z.ZodOptional<z.ZodString>;
1536
+ capacity: z.ZodOptional<z.ZodObject<{
1537
+ slot: z.ZodString;
1538
+ amount: z.ZodString;
1539
+ perSlot: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1540
+ table: z.ZodString;
1541
+ column: z.ZodString;
1542
+ }, z.core.$strict>]>;
1543
+ countWhere: z.ZodOptional<z.ZodObject<{
1544
+ column: z.ZodString;
1545
+ values: z.ZodArray<z.ZodString>;
1546
+ }, z.core.$strict>>;
1547
+ slotMinutes: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1548
+ table: z.ZodString;
1549
+ column: z.ZodString;
1550
+ }, z.core.$strict>]>;
1551
+ windowDays: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1552
+ table: z.ZodString;
1553
+ column: z.ZodString;
1554
+ }, z.core.$strict>]>>;
1555
+ opens: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1556
+ table: z.ZodString;
1557
+ column: z.ZodString;
1558
+ }, z.core.$strict>]>>;
1559
+ closes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1560
+ table: z.ZodString;
1561
+ column: z.ZodString;
1562
+ }, z.core.$strict>]>>;
1563
+ resource: z.ZodOptional<z.ZodString>;
1564
+ cancelHours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1565
+ table: z.ZodString;
1566
+ column: z.ZodString;
1567
+ }, z.core.$strict>]>>;
1568
+ }, z.core.$strict>>;
1569
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1570
+ labelPlural: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1571
+ keyField: z.ZodOptional<z.ZodString>;
834
1572
  }, z.core.$strict>>;
1573
+ prefixed: z.ZodOptional<z.ZodLiteral<true>>;
835
1574
  }, z.core.$strict>>;
836
1575
  settings: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
837
1576
  type: z.ZodLiteral<"string">;
@@ -1019,8 +1758,100 @@ export declare const manifestSchema: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.
1019
1758
  nullable: z.ZodOptional<z.ZodBoolean>;
1020
1759
  enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
1021
1760
  references: z.ZodOptional<z.ZodString>;
1761
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
1762
+ maxLength: z.ZodOptional<z.ZodNumber>;
1763
+ rules: z.ZodOptional<z.ZodObject<{
1764
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
1765
+ list: z.ZodString;
1766
+ }, z.core.$strict>, z.ZodObject<{
1767
+ values: z.ZodArray<z.ZodObject<{
1768
+ value: z.ZodString;
1769
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1770
+ tone: z.ZodOptional<z.ZodString>;
1771
+ }, z.core.$strict>>;
1772
+ }, z.core.$strict>]>>;
1773
+ enumLabels: z.ZodOptional<z.ZodObject<{
1774
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1775
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1776
+ }, z.core.$strict>>;
1777
+ required: z.ZodOptional<z.ZodLiteral<true>>;
1778
+ validation: z.ZodOptional<z.ZodObject<{
1779
+ format: z.ZodOptional<z.ZodEnum<{
1780
+ url: "url";
1781
+ email: "email";
1782
+ phone: "phone";
1783
+ }>>;
1784
+ min: z.ZodOptional<z.ZodNumber>;
1785
+ max: z.ZodOptional<z.ZodNumber>;
1786
+ minLength: z.ZodOptional<z.ZodNumber>;
1787
+ maxLength: z.ZodOptional<z.ZodNumber>;
1788
+ }, z.core.$strict>>;
1789
+ copy: z.ZodOptional<z.ZodObject<{
1790
+ via: z.ZodString;
1791
+ from: z.ZodString;
1792
+ mode: z.ZodOptional<z.ZodEnum<{
1793
+ default: "default";
1794
+ always: "always";
1795
+ }>>;
1796
+ }, z.core.$strict>>;
1797
+ sequence: z.ZodOptional<z.ZodObject<{
1798
+ start: z.ZodOptional<z.ZodNumber>;
1799
+ }, z.core.$strict>>;
1800
+ code: z.ZodOptional<z.ZodObject<{
1801
+ prefix: z.ZodOptional<z.ZodString>;
1802
+ length: z.ZodNumber;
1803
+ }, z.core.$strict>>;
1804
+ rollup: z.ZodOptional<z.ZodObject<{
1805
+ from: z.ZodString;
1806
+ via: z.ZodString;
1807
+ sum: z.ZodString;
1808
+ times: z.ZodOptional<z.ZodString>;
1809
+ unlessSet: z.ZodOptional<z.ZodString>;
1810
+ }, z.core.$strict>>;
1811
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
1812
+ personal: z.ZodOptional<z.ZodBoolean>;
1813
+ }, z.core.$strict>>;
1814
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1815
+ }, z.core.$strict>>;
1816
+ shape: z.ZodOptional<z.ZodString>;
1817
+ capacity: z.ZodOptional<z.ZodObject<{
1818
+ slot: z.ZodString;
1819
+ amount: z.ZodString;
1820
+ perSlot: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1821
+ table: z.ZodString;
1822
+ column: z.ZodString;
1823
+ }, z.core.$strict>]>;
1824
+ countWhere: z.ZodOptional<z.ZodObject<{
1825
+ column: z.ZodString;
1826
+ values: z.ZodArray<z.ZodString>;
1827
+ }, z.core.$strict>>;
1828
+ slotMinutes: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1829
+ table: z.ZodString;
1830
+ column: z.ZodString;
1831
+ }, z.core.$strict>]>;
1832
+ windowDays: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1833
+ table: z.ZodString;
1834
+ column: z.ZodString;
1835
+ }, z.core.$strict>]>>;
1836
+ opens: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1837
+ table: z.ZodString;
1838
+ column: z.ZodString;
1839
+ }, z.core.$strict>]>>;
1840
+ closes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1841
+ table: z.ZodString;
1842
+ column: z.ZodString;
1843
+ }, z.core.$strict>]>>;
1844
+ resource: z.ZodOptional<z.ZodString>;
1845
+ cancelHours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
1846
+ table: z.ZodString;
1847
+ column: z.ZodString;
1848
+ }, z.core.$strict>]>>;
1022
1849
  }, z.core.$strict>>;
1850
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1851
+ labelPlural: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1852
+ keyField: z.ZodOptional<z.ZodString>;
1023
1853
  }, z.core.$strict>>;
1854
+ prefixed: z.ZodOptional<z.ZodLiteral<true>>;
1024
1855
  }, z.core.$strict>;
1025
1856
  pages: z.ZodArray<z.ZodObject<{
1026
1857
  ref: z.ZodString;
@@ -1036,12 +1867,14 @@ export declare const manifestSchema: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.
1036
1867
  }, z.core.$strict>;
1037
1868
  bindings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1038
1869
  config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1870
+ titles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1039
1871
  }, z.core.$strict>>;
1040
1872
  roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
1041
1873
  key: z.ZodString;
1042
1874
  name: z.ZodString;
1043
1875
  cloneFrom: z.ZodOptional<z.ZodString>;
1044
1876
  permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
1877
+ screensOnly: z.ZodOptional<z.ZodBoolean>;
1045
1878
  }, z.core.$strict>>>;
1046
1879
  settings: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1047
1880
  type: z.ZodLiteral<"string">;
@@ -1169,6 +2002,73 @@ export declare const manifestSchema: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.
1169
2002
  example: z.ZodOptional<z.ZodString>;
1170
2003
  }, z.core.$strict>>>;
1171
2004
  routes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2005
+ placement: z.ZodOptional<z.ZodEnum<{
2006
+ internal: "internal";
2007
+ external: "external";
2008
+ }>>;
2009
+ enabled: z.ZodOptional<z.ZodBoolean>;
2010
+ }, z.core.$strict>>;
2011
+ navGroups: z.ZodOptional<z.ZodArray<z.ZodObject<{
2012
+ key: z.ZodString;
2013
+ label: z.ZodRecord<z.ZodString, z.ZodString>;
2014
+ order: z.ZodNumber;
2015
+ }, z.core.$strict>>>;
2016
+ optionLists: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2017
+ label: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2018
+ values: z.ZodArray<z.ZodObject<{
2019
+ value: z.ZodString;
2020
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2021
+ tone: z.ZodOptional<z.ZodString>;
2022
+ }, z.core.$strict>>;
2023
+ }, z.core.$strict>>>;
2024
+ publicAccess: z.ZodOptional<z.ZodArray<z.ZodObject<{
2025
+ table: z.ZodString;
2026
+ kind: z.ZodOptional<z.ZodEnum<{
2027
+ records: "records";
2028
+ availability: "availability";
2029
+ }>>;
2030
+ methods: z.ZodArray<z.ZodEnum<{
2031
+ GET: "GET";
2032
+ POST: "POST";
2033
+ PATCH: "PATCH";
2034
+ }>>;
2035
+ select: z.ZodOptional<z.ZodArray<z.ZodString>>;
2036
+ writable: z.ZodOptional<z.ZodArray<z.ZodString>>;
2037
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
2038
+ column: z.ZodString;
2039
+ op: z.ZodEnum<{
2040
+ in: "in";
2041
+ eq: "eq";
2042
+ neq: "neq";
2043
+ gte: "gte";
2044
+ lte: "lte";
2045
+ }>;
2046
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>]>;
2047
+ }, z.core.$strict>>>;
2048
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
2049
+ claim: z.ZodOptional<z.ZodObject<{
2050
+ match: z.ZodArray<z.ZodString>;
2051
+ }, z.core.$strict>>;
2052
+ confirm: z.ZodOptional<z.ZodObject<{
2053
+ template: z.ZodEnum<{
2054
+ "booking-confirmation": "booking-confirmation";
2055
+ }>;
2056
+ to: z.ZodString;
2057
+ code: z.ZodOptional<z.ZodString>;
2058
+ when: z.ZodOptional<z.ZodString>;
2059
+ party: z.ZodOptional<z.ZodString>;
2060
+ name: z.ZodOptional<z.ZodString>;
2061
+ venue: z.ZodOptional<z.ZodObject<{
2062
+ table: z.ZodString;
2063
+ name: z.ZodOptional<z.ZodString>;
2064
+ address: z.ZodOptional<z.ZodString>;
2065
+ phone: z.ZodOptional<z.ZodString>;
2066
+ }, z.core.$strict>>;
2067
+ link: z.ZodOptional<z.ZodString>;
2068
+ }, z.core.$strict>>;
2069
+ }, z.core.$strict>>>;
2070
+ sampleData: z.ZodOptional<z.ZodObject<{
2071
+ file: z.ZodString;
1172
2072
  }, z.core.$strict>>;
1173
2073
  categories: z.ZodArray<z.ZodEnum<{
1174
2074
  commerce: "commerce";
@@ -1349,8 +2249,100 @@ export declare const manifestSchema: z.ZodPreprocess<z.ZodDiscriminatedUnion<[z.
1349
2249
  nullable: z.ZodOptional<z.ZodBoolean>;
1350
2250
  enum: z.ZodOptional<z.ZodArray<z.ZodString>>;
1351
2251
  references: z.ZodOptional<z.ZodString>;
2252
+ default: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
2253
+ maxLength: z.ZodOptional<z.ZodNumber>;
2254
+ rules: z.ZodOptional<z.ZodObject<{
2255
+ options: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
2256
+ list: z.ZodString;
2257
+ }, z.core.$strict>, z.ZodObject<{
2258
+ values: z.ZodArray<z.ZodObject<{
2259
+ value: z.ZodString;
2260
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2261
+ tone: z.ZodOptional<z.ZodString>;
2262
+ }, z.core.$strict>>;
2263
+ }, z.core.$strict>]>>;
2264
+ enumLabels: z.ZodOptional<z.ZodObject<{
2265
+ labels: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2266
+ tones: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2267
+ }, z.core.$strict>>;
2268
+ required: z.ZodOptional<z.ZodLiteral<true>>;
2269
+ validation: z.ZodOptional<z.ZodObject<{
2270
+ format: z.ZodOptional<z.ZodEnum<{
2271
+ url: "url";
2272
+ email: "email";
2273
+ phone: "phone";
2274
+ }>>;
2275
+ min: z.ZodOptional<z.ZodNumber>;
2276
+ max: z.ZodOptional<z.ZodNumber>;
2277
+ minLength: z.ZodOptional<z.ZodNumber>;
2278
+ maxLength: z.ZodOptional<z.ZodNumber>;
2279
+ }, z.core.$strict>>;
2280
+ copy: z.ZodOptional<z.ZodObject<{
2281
+ via: z.ZodString;
2282
+ from: z.ZodString;
2283
+ mode: z.ZodOptional<z.ZodEnum<{
2284
+ default: "default";
2285
+ always: "always";
2286
+ }>>;
2287
+ }, z.core.$strict>>;
2288
+ sequence: z.ZodOptional<z.ZodObject<{
2289
+ start: z.ZodOptional<z.ZodNumber>;
2290
+ }, z.core.$strict>>;
2291
+ code: z.ZodOptional<z.ZodObject<{
2292
+ prefix: z.ZodOptional<z.ZodString>;
2293
+ length: z.ZodNumber;
2294
+ }, z.core.$strict>>;
2295
+ rollup: z.ZodOptional<z.ZodObject<{
2296
+ from: z.ZodString;
2297
+ via: z.ZodString;
2298
+ sum: z.ZodString;
2299
+ times: z.ZodOptional<z.ZodString>;
2300
+ unlessSet: z.ZodOptional<z.ZodString>;
2301
+ }, z.core.$strict>>;
2302
+ venueLocal: z.ZodOptional<z.ZodLiteral<true>>;
2303
+ personal: z.ZodOptional<z.ZodBoolean>;
2304
+ }, z.core.$strict>>;
2305
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2306
+ }, z.core.$strict>>;
2307
+ shape: z.ZodOptional<z.ZodString>;
2308
+ capacity: z.ZodOptional<z.ZodObject<{
2309
+ slot: z.ZodString;
2310
+ amount: z.ZodString;
2311
+ perSlot: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
2312
+ table: z.ZodString;
2313
+ column: z.ZodString;
2314
+ }, z.core.$strict>]>;
2315
+ countWhere: z.ZodOptional<z.ZodObject<{
2316
+ column: z.ZodString;
2317
+ values: z.ZodArray<z.ZodString>;
2318
+ }, z.core.$strict>>;
2319
+ slotMinutes: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
2320
+ table: z.ZodString;
2321
+ column: z.ZodString;
2322
+ }, z.core.$strict>]>;
2323
+ windowDays: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
2324
+ table: z.ZodString;
2325
+ column: z.ZodString;
2326
+ }, z.core.$strict>]>>;
2327
+ opens: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2328
+ table: z.ZodString;
2329
+ column: z.ZodString;
2330
+ }, z.core.$strict>]>>;
2331
+ closes: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2332
+ table: z.ZodString;
2333
+ column: z.ZodString;
2334
+ }, z.core.$strict>]>>;
2335
+ resource: z.ZodOptional<z.ZodString>;
2336
+ cancelHours: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
2337
+ table: z.ZodString;
2338
+ column: z.ZodString;
2339
+ }, z.core.$strict>]>>;
1352
2340
  }, z.core.$strict>>;
2341
+ label: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2342
+ labelPlural: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2343
+ keyField: z.ZodOptional<z.ZodString>;
1353
2344
  }, z.core.$strict>>;
2345
+ prefixed: z.ZodOptional<z.ZodLiteral<true>>;
1354
2346
  }, z.core.$strict>>;
1355
2347
  settings: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
1356
2348
  type: z.ZodLiteral<"string">;