@adminiumjs/manifest 0.3.5 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/capacity.d.ts +786 -0
  2. package/dist/capacity.d.ts.map +1 -0
  3. package/dist/capacity.js +717 -0
  4. package/dist/capacity.js.map +1 -0
  5. package/dist/documents.d.ts +91 -5
  6. package/dist/documents.d.ts.map +1 -1
  7. package/dist/documents.js +129 -32
  8. package/dist/documents.js.map +1 -1
  9. package/dist/formula.d.ts +114 -2
  10. package/dist/formula.d.ts.map +1 -1
  11. package/dist/formula.js +291 -5
  12. package/dist/formula.js.map +1 -1
  13. package/dist/index.d.ts +12 -6
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +12 -6
  16. package/dist/index.js.map +1 -1
  17. package/dist/marketplace-wire.d.ts +230 -0
  18. package/dist/marketplace-wire.d.ts.map +1 -0
  19. package/dist/marketplace-wire.js +138 -0
  20. package/dist/marketplace-wire.js.map +1 -0
  21. package/dist/outbox.d.ts +242 -27
  22. package/dist/outbox.d.ts.map +1 -1
  23. package/dist/outbox.js +553 -27
  24. package/dist/outbox.js.map +1 -1
  25. package/dist/plan-context.d.ts +28 -3
  26. package/dist/plan-context.d.ts.map +1 -1
  27. package/dist/plan-context.js +291 -14
  28. package/dist/plan-context.js.map +1 -1
  29. package/dist/plan-model.d.ts +58 -3
  30. package/dist/plan-model.d.ts.map +1 -1
  31. package/dist/public-access.d.ts +637 -0
  32. package/dist/public-access.d.ts.map +1 -1
  33. package/dist/public-access.js +1593 -12
  34. package/dist/public-access.js.map +1 -1
  35. package/dist/refs.d.ts +86 -0
  36. package/dist/refs.d.ts.map +1 -1
  37. package/dist/refs.js +186 -0
  38. package/dist/refs.js.map +1 -1
  39. package/dist/roles.d.ts +10 -2
  40. package/dist/roles.d.ts.map +1 -1
  41. package/dist/roles.js +27 -5
  42. package/dist/roles.js.map +1 -1
  43. package/dist/sample.d.ts +218 -2
  44. package/dist/sample.d.ts.map +1 -1
  45. package/dist/sample.js +145 -7
  46. package/dist/sample.js.map +1 -1
  47. package/dist/schema.d.ts +2860 -360
  48. package/dist/schema.d.ts.map +1 -1
  49. package/dist/schema.js +1002 -54
  50. package/dist/schema.js.map +1 -1
  51. package/dist/shapes.d.ts +5 -1
  52. package/dist/shapes.d.ts.map +1 -1
  53. package/dist/shapes.js +13 -3
  54. package/dist/shapes.js.map +1 -1
  55. package/dist/states.d.ts +342 -2
  56. package/dist/states.d.ts.map +1 -1
  57. package/dist/states.js +566 -7
  58. package/dist/states.js.map +1 -1
  59. package/dist/table-shapes.d.ts +47 -0
  60. package/dist/table-shapes.d.ts.map +1 -0
  61. package/dist/table-shapes.js +159 -0
  62. package/dist/table-shapes.js.map +1 -0
  63. package/dist/validate.d.ts.map +1 -1
  64. package/dist/validate.js +80 -2
  65. package/dist/validate.js.map +1 -1
  66. package/package.json +2 -2
@@ -26,6 +26,7 @@
26
26
  * entry reaches the parent row: a draft's lines stay as hidden as the draft.
27
27
  */
28
28
  import { z } from 'zod';
29
+ import { type Capacity } from './capacity.js';
29
30
  import { type ReferenceIssue, type TableIndex } from './refs.js';
30
31
  /** The key every entry uses unless it names another. */
31
32
  export declare const CUSTOMER_KEY = "customer";
@@ -41,6 +42,8 @@ export declare const claimSchema: z.ZodUnion<readonly [z.ZodObject<{
41
42
  column: z.ZodString;
42
43
  expires: z.ZodOptional<z.ZodString>;
43
44
  stopped: z.ZodOptional<z.ZodString>;
45
+ own: z.ZodOptional<z.ZodLiteral<true>>;
46
+ address: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodString, z.ZodString], null>]>>;
44
47
  }, z.core.$strict>]>;
45
48
  export type Claim = z.infer<typeof claimSchema>;
46
49
  /** How an identity entry claims: by details, by an emailed link, or by a token. */
@@ -51,6 +54,258 @@ export declare function claimKind(claim: Claim): 'lookup' | 'link' | 'token';
51
54
  * listed, never a value the app's own package gives (its sample rows).
52
55
  */
53
56
  export declare function shareCodeColumns(entries: readonly PublicAccess[], table: string): string[];
57
+ /**
58
+ * Why a column of another row may never be printed in a list one level down
59
+ * (an email's `joins`, a document's list of names): a list is read for
60
+ * whoever the email or document goes to, one row further from them than the
61
+ * row they asked for, so no reader decides what it shows. A secret, personal
62
+ * data, a code (the one a shared link opens its row with, one Adminium makes,
63
+ * one a person typed), or a column an entry withholds from all but its
64
+ * holder. Null for a column any reader may see listed.
65
+ */
66
+ export declare function unlistedColumn(m: {
67
+ publicAccess?: readonly PublicAccess[] | undefined;
68
+ requiredSchema: {
69
+ tables: readonly {
70
+ ref: string;
71
+ columns: readonly {
72
+ ref: string;
73
+ rules?: Record<string, unknown> | undefined;
74
+ }[];
75
+ }[];
76
+ };
77
+ }, table: string, column: string): string | null;
78
+ /**
79
+ * Whether a column holds personal data: marked so (`personal: true`), or —
80
+ * unless marked otherwise — guessed so by its name as the install does: an
81
+ * address, a phone number, a birth date, an ID or account number, a person's
82
+ * first, last or full name on a table of people. Secrets are not personal
83
+ * data (they are never shown at all).
84
+ */
85
+ export declare function personalColumn(table: {
86
+ ref: string;
87
+ columns: readonly {
88
+ ref: string;
89
+ type: string;
90
+ rules?: Record<string, unknown> | undefined;
91
+ }[];
92
+ }, column: string): 'marked' | 'guessed' | null;
93
+ /**
94
+ * Which rows of a codes table count when a typed code is looked up: a value a
95
+ * column must hold (`active = true`), or a date it must not be past
96
+ * (`notBefore: 'now'` on a `valid_until`, `orEmpty` for none) or before.
97
+ */
98
+ export declare const codeWhereSchema: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
99
+ column: z.ZodString;
100
+ eq: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
101
+ }, z.core.$strict>, z.ZodObject<{
102
+ column: z.ZodString;
103
+ notBefore: z.ZodEnum<{
104
+ today: "today";
105
+ now: "now";
106
+ }>;
107
+ orEmpty: z.ZodOptional<z.ZodLiteral<true>>;
108
+ }, z.core.$strict>, z.ZodObject<{
109
+ column: z.ZodString;
110
+ notAfter: z.ZodEnum<{
111
+ today: "today";
112
+ now: "now";
113
+ }>;
114
+ orEmpty: z.ZodOptional<z.ZodLiteral<true>>;
115
+ }, z.core.$strict>]>>;
116
+ /**
117
+ * A value of the row that must agree with another: `column` (followed along
118
+ * `path` through foreign keys) equals, is at most, or is at least the target.
119
+ * `when` applies it only to rows whose value (along its own `path`) is one of
120
+ * `in`.
121
+ */
122
+ export declare const agreeSchema: z.ZodObject<{
123
+ column: z.ZodString;
124
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
125
+ when: z.ZodOptional<z.ZodObject<{
126
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
127
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
128
+ }, z.core.$strict>>;
129
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
130
+ parent: z.ZodString;
131
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
132
+ }, z.core.$strict>, z.ZodObject<{
133
+ via: z.ZodString;
134
+ column: z.ZodString;
135
+ }, z.core.$strict>, z.ZodObject<{
136
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
137
+ }, z.core.$strict>]>>;
138
+ lte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
139
+ parent: z.ZodString;
140
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
141
+ }, z.core.$strict>, z.ZodObject<{
142
+ via: z.ZodString;
143
+ column: z.ZodString;
144
+ }, z.core.$strict>, z.ZodObject<{
145
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
146
+ }, z.core.$strict>]>>;
147
+ gte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
148
+ parent: z.ZodString;
149
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
150
+ }, z.core.$strict>, z.ZodObject<{
151
+ via: z.ZodString;
152
+ column: z.ZodString;
153
+ }, z.core.$strict>, z.ZodObject<{
154
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
155
+ }, z.core.$strict>]>>;
156
+ }, z.core.$strict>;
157
+ export type Agree = z.infer<typeof agreeSchema>;
158
+ /**
159
+ * How many sibling rows may fall in one group: `by` follows this row's
160
+ * foreign keys to the group (an option's group), whose `min` and `max`
161
+ * columns bound the count. `every` names the groups judged even when no row
162
+ * falls in them (a required size left out): those whose `column` equals the
163
+ * parent row's.
164
+ */
165
+ export declare const countsSchema: z.ZodObject<{
166
+ by: z.ZodArray<z.ZodString>;
167
+ every: z.ZodOptional<z.ZodObject<{
168
+ column: z.ZodString;
169
+ eq: z.ZodObject<{
170
+ parent: z.ZodString;
171
+ }, z.core.$strict>;
172
+ }, z.core.$strict>>;
173
+ min: z.ZodString;
174
+ max: z.ZodString;
175
+ }, z.core.$strict>;
176
+ export type Counts = z.infer<typeof countsSchema>;
177
+ /** A child row of a create (an order's line), with at most one more level below it. */
178
+ export declare const childEntrySchema: z.ZodObject<{
179
+ children: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
180
+ via: z.ZodString;
181
+ writable: z.ZodArray<z.ZodString>;
182
+ select: z.ZodOptional<z.ZodArray<z.ZodString>>;
183
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
184
+ writableValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
185
+ requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
186
+ position: z.ZodOptional<z.ZodString>;
187
+ min: z.ZodOptional<z.ZodNumber>;
188
+ max: z.ZodNumber;
189
+ agrees: z.ZodOptional<z.ZodArray<z.ZodObject<{
190
+ column: z.ZodString;
191
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
192
+ when: z.ZodOptional<z.ZodObject<{
193
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
194
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
195
+ }, z.core.$strict>>;
196
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
197
+ parent: z.ZodString;
198
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
199
+ }, z.core.$strict>, z.ZodObject<{
200
+ via: z.ZodString;
201
+ column: z.ZodString;
202
+ }, z.core.$strict>, z.ZodObject<{
203
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
204
+ }, z.core.$strict>]>>;
205
+ lte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
206
+ parent: z.ZodString;
207
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
208
+ }, z.core.$strict>, z.ZodObject<{
209
+ via: z.ZodString;
210
+ column: z.ZodString;
211
+ }, z.core.$strict>, z.ZodObject<{
212
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
213
+ }, z.core.$strict>]>>;
214
+ gte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
215
+ parent: z.ZodString;
216
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
217
+ }, z.core.$strict>, z.ZodObject<{
218
+ via: z.ZodString;
219
+ column: z.ZodString;
220
+ }, z.core.$strict>, z.ZodObject<{
221
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
222
+ }, z.core.$strict>]>>;
223
+ }, z.core.$strict>>>;
224
+ counts: z.ZodOptional<z.ZodArray<z.ZodObject<{
225
+ by: z.ZodArray<z.ZodString>;
226
+ every: z.ZodOptional<z.ZodObject<{
227
+ column: z.ZodString;
228
+ eq: z.ZodObject<{
229
+ parent: z.ZodString;
230
+ }, z.core.$strict>;
231
+ }, z.core.$strict>>;
232
+ min: z.ZodString;
233
+ max: z.ZodString;
234
+ }, z.core.$strict>>>;
235
+ plainText: z.ZodOptional<z.ZodArray<z.ZodString>>;
236
+ sumMax: z.ZodOptional<z.ZodObject<{
237
+ column: z.ZodString;
238
+ max: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
239
+ table: z.ZodString;
240
+ column: z.ZodString;
241
+ }, z.core.$strict>]>;
242
+ }, z.core.$strict>>;
243
+ }, z.core.$strict>>>;
244
+ via: z.ZodString;
245
+ writable: z.ZodArray<z.ZodString>;
246
+ select: z.ZodOptional<z.ZodArray<z.ZodString>>;
247
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
248
+ writableValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
249
+ requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
250
+ position: z.ZodOptional<z.ZodString>;
251
+ min: z.ZodOptional<z.ZodNumber>;
252
+ max: z.ZodNumber;
253
+ agrees: z.ZodOptional<z.ZodArray<z.ZodObject<{
254
+ column: z.ZodString;
255
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
256
+ when: z.ZodOptional<z.ZodObject<{
257
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
258
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
259
+ }, z.core.$strict>>;
260
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
261
+ parent: z.ZodString;
262
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
263
+ }, z.core.$strict>, z.ZodObject<{
264
+ via: z.ZodString;
265
+ column: z.ZodString;
266
+ }, z.core.$strict>, z.ZodObject<{
267
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
268
+ }, z.core.$strict>]>>;
269
+ lte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
270
+ parent: z.ZodString;
271
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
272
+ }, z.core.$strict>, z.ZodObject<{
273
+ via: z.ZodString;
274
+ column: z.ZodString;
275
+ }, z.core.$strict>, z.ZodObject<{
276
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
277
+ }, z.core.$strict>]>>;
278
+ gte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
279
+ parent: z.ZodString;
280
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
281
+ }, z.core.$strict>, z.ZodObject<{
282
+ via: z.ZodString;
283
+ column: z.ZodString;
284
+ }, z.core.$strict>, z.ZodObject<{
285
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
286
+ }, z.core.$strict>]>>;
287
+ }, z.core.$strict>>>;
288
+ counts: z.ZodOptional<z.ZodArray<z.ZodObject<{
289
+ by: z.ZodArray<z.ZodString>;
290
+ every: z.ZodOptional<z.ZodObject<{
291
+ column: z.ZodString;
292
+ eq: z.ZodObject<{
293
+ parent: z.ZodString;
294
+ }, z.core.$strict>;
295
+ }, z.core.$strict>>;
296
+ min: z.ZodString;
297
+ max: z.ZodString;
298
+ }, z.core.$strict>>>;
299
+ plainText: z.ZodOptional<z.ZodArray<z.ZodString>>;
300
+ sumMax: z.ZodOptional<z.ZodObject<{
301
+ column: z.ZodString;
302
+ max: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
303
+ table: z.ZodString;
304
+ column: z.ZodString;
305
+ }, z.core.$strict>]>;
306
+ }, z.core.$strict>>;
307
+ }, z.core.$strict>;
308
+ export type ChildEntry = z.infer<typeof childEntrySchema>;
54
309
  export declare const publicAccessSchema: z.ZodObject<{
55
310
  table: z.ZodString;
56
311
  kind: z.ZodOptional<z.ZodEnum<{
@@ -95,6 +350,8 @@ export declare const publicAccessSchema: z.ZodObject<{
95
350
  column: z.ZodString;
96
351
  expires: z.ZodOptional<z.ZodString>;
97
352
  stopped: z.ZodOptional<z.ZodString>;
353
+ own: z.ZodOptional<z.ZodLiteral<true>>;
354
+ address: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodString, z.ZodString], null>]>>;
98
355
  }, z.core.$strict>]>>;
99
356
  claimedBy: z.ZodOptional<z.ZodObject<{
100
357
  table: z.ZodString;
@@ -105,6 +362,37 @@ export declare const publicAccessSchema: z.ZodObject<{
105
362
  lookup: "lookup";
106
363
  verified: "verified";
107
364
  }>>;
365
+ identity: z.ZodOptional<z.ZodObject<{
366
+ table: z.ZodString;
367
+ email: z.ZodString;
368
+ link: z.ZodString;
369
+ fill: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
370
+ on: z.ZodOptional<z.ZodObject<{
371
+ to: z.ZodString;
372
+ }, z.core.$strict>>;
373
+ }, z.core.$strict>>;
374
+ shareLink: z.ZodOptional<z.ZodString>;
375
+ forget: z.ZodOptional<z.ZodObject<{
376
+ columns: z.ZodArray<z.ZodString>;
377
+ stamp: z.ZodOptional<z.ZodString>;
378
+ links: z.ZodOptional<z.ZodLiteral<true>>;
379
+ }, z.core.$strict>>;
380
+ newLink: z.ZodOptional<z.ZodObject<{
381
+ column: z.ZodString;
382
+ kind: z.ZodString;
383
+ when: z.ZodOptional<z.ZodObject<{
384
+ where: z.ZodArray<z.ZodObject<{
385
+ column: z.ZodString;
386
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
387
+ in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
388
+ isNull: z.ZodOptional<z.ZodBoolean>;
389
+ gt: z.ZodOptional<z.ZodNumber>;
390
+ gte: z.ZodOptional<z.ZodNumber>;
391
+ lt: z.ZodOptional<z.ZodNumber>;
392
+ lte: z.ZodOptional<z.ZodNumber>;
393
+ }, z.core.$strict>>;
394
+ }, z.core.$strict>>;
395
+ }, z.core.$strict>>;
108
396
  visibleWith: z.ZodOptional<z.ZodObject<{
109
397
  table: z.ZodString;
110
398
  via: z.ZodString;
@@ -120,8 +408,201 @@ export declare const publicAccessSchema: z.ZodObject<{
120
408
  requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
121
409
  writableWhen: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>, z.ZodNull]>>, z.ZodLiteral<"from-now">, z.ZodLiteral<"from-today">, z.ZodLiteral<"before-today">, z.ZodObject<{
122
410
  within: z.ZodNumber;
411
+ }, z.core.$strict>, z.ZodObject<{
412
+ after: z.ZodOptional<z.ZodObject<{
413
+ column: z.ZodOptional<z.ZodString>;
414
+ time: z.ZodOptional<z.ZodType<import("./refs.js").WallTime, unknown, z.core.$ZodTypeInternals<import("./refs.js").WallTime, unknown>>>;
415
+ plus: z.ZodOptional<z.ZodType<import("./refs.js").MomentOffset, unknown, z.core.$ZodTypeInternals<import("./refs.js").MomentOffset, unknown>>>;
416
+ minus: z.ZodOptional<z.ZodType<import("./refs.js").MomentOffset, unknown, z.core.$ZodTypeInternals<import("./refs.js").MomentOffset, unknown>>>;
417
+ or: z.ZodOptional<z.ZodArray<z.ZodType<import("./refs.js").PlainMoment, unknown, z.core.$ZodTypeInternals<import("./refs.js").PlainMoment, unknown>>>>;
418
+ }, z.core.$strict>>;
419
+ before: z.ZodOptional<z.ZodObject<{
420
+ column: z.ZodOptional<z.ZodString>;
421
+ time: z.ZodOptional<z.ZodType<import("./refs.js").WallTime, unknown, z.core.$ZodTypeInternals<import("./refs.js").WallTime, unknown>>>;
422
+ plus: z.ZodOptional<z.ZodType<import("./refs.js").MomentOffset, unknown, z.core.$ZodTypeInternals<import("./refs.js").MomentOffset, unknown>>>;
423
+ minus: z.ZodOptional<z.ZodType<import("./refs.js").MomentOffset, unknown, z.core.$ZodTypeInternals<import("./refs.js").MomentOffset, unknown>>>;
424
+ or: z.ZodOptional<z.ZodArray<z.ZodType<import("./refs.js").PlainMoment, unknown, z.core.$ZodTypeInternals<import("./refs.js").PlainMoment, unknown>>>>;
425
+ }, z.core.$strict>>;
426
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
427
+ column: z.ZodString;
428
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
429
+ in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
430
+ isNull: z.ZodOptional<z.ZodBoolean>;
431
+ gt: z.ZodOptional<z.ZodNumber>;
432
+ gte: z.ZodOptional<z.ZodNumber>;
433
+ lt: z.ZodOptional<z.ZodNumber>;
434
+ lte: z.ZodOptional<z.ZodNumber>;
435
+ }, z.core.$strict>>>;
123
436
  }, z.core.$strict>]>>>;
124
437
  humanCheck: z.ZodOptional<z.ZodLiteral<true>>;
438
+ children: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
439
+ children: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
440
+ via: z.ZodString;
441
+ writable: z.ZodArray<z.ZodString>;
442
+ select: z.ZodOptional<z.ZodArray<z.ZodString>>;
443
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
444
+ writableValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
445
+ requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
446
+ position: z.ZodOptional<z.ZodString>;
447
+ min: z.ZodOptional<z.ZodNumber>;
448
+ max: z.ZodNumber;
449
+ agrees: z.ZodOptional<z.ZodArray<z.ZodObject<{
450
+ column: z.ZodString;
451
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
452
+ when: z.ZodOptional<z.ZodObject<{
453
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
454
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
455
+ }, z.core.$strict>>;
456
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
457
+ parent: z.ZodString;
458
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
459
+ }, z.core.$strict>, z.ZodObject<{
460
+ via: z.ZodString;
461
+ column: z.ZodString;
462
+ }, z.core.$strict>, z.ZodObject<{
463
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
464
+ }, z.core.$strict>]>>;
465
+ lte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
466
+ parent: z.ZodString;
467
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
468
+ }, z.core.$strict>, z.ZodObject<{
469
+ via: z.ZodString;
470
+ column: z.ZodString;
471
+ }, z.core.$strict>, z.ZodObject<{
472
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
473
+ }, z.core.$strict>]>>;
474
+ gte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
475
+ parent: z.ZodString;
476
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
477
+ }, z.core.$strict>, z.ZodObject<{
478
+ via: z.ZodString;
479
+ column: z.ZodString;
480
+ }, z.core.$strict>, z.ZodObject<{
481
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
482
+ }, z.core.$strict>]>>;
483
+ }, z.core.$strict>>>;
484
+ counts: z.ZodOptional<z.ZodArray<z.ZodObject<{
485
+ by: z.ZodArray<z.ZodString>;
486
+ every: z.ZodOptional<z.ZodObject<{
487
+ column: z.ZodString;
488
+ eq: z.ZodObject<{
489
+ parent: z.ZodString;
490
+ }, z.core.$strict>;
491
+ }, z.core.$strict>>;
492
+ min: z.ZodString;
493
+ max: z.ZodString;
494
+ }, z.core.$strict>>>;
495
+ plainText: z.ZodOptional<z.ZodArray<z.ZodString>>;
496
+ sumMax: z.ZodOptional<z.ZodObject<{
497
+ column: z.ZodString;
498
+ max: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
499
+ table: z.ZodString;
500
+ column: z.ZodString;
501
+ }, z.core.$strict>]>;
502
+ }, z.core.$strict>>;
503
+ }, z.core.$strict>>>;
504
+ via: z.ZodString;
505
+ writable: z.ZodArray<z.ZodString>;
506
+ select: z.ZodOptional<z.ZodArray<z.ZodString>>;
507
+ defaults: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
508
+ writableValues: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>>;
509
+ requires: z.ZodOptional<z.ZodArray<z.ZodString>>;
510
+ position: z.ZodOptional<z.ZodString>;
511
+ min: z.ZodOptional<z.ZodNumber>;
512
+ max: z.ZodNumber;
513
+ agrees: z.ZodOptional<z.ZodArray<z.ZodObject<{
514
+ column: z.ZodString;
515
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
516
+ when: z.ZodOptional<z.ZodObject<{
517
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
518
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
519
+ }, z.core.$strict>>;
520
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
521
+ parent: z.ZodString;
522
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
523
+ }, z.core.$strict>, z.ZodObject<{
524
+ via: z.ZodString;
525
+ column: z.ZodString;
526
+ }, z.core.$strict>, z.ZodObject<{
527
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
528
+ }, z.core.$strict>]>>;
529
+ lte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
530
+ parent: z.ZodString;
531
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
532
+ }, z.core.$strict>, z.ZodObject<{
533
+ via: z.ZodString;
534
+ column: z.ZodString;
535
+ }, z.core.$strict>, z.ZodObject<{
536
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
537
+ }, z.core.$strict>]>>;
538
+ gte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
539
+ parent: z.ZodString;
540
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
541
+ }, z.core.$strict>, z.ZodObject<{
542
+ via: z.ZodString;
543
+ column: z.ZodString;
544
+ }, z.core.$strict>, z.ZodObject<{
545
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
546
+ }, z.core.$strict>]>>;
547
+ }, z.core.$strict>>>;
548
+ counts: z.ZodOptional<z.ZodArray<z.ZodObject<{
549
+ by: z.ZodArray<z.ZodString>;
550
+ every: z.ZodOptional<z.ZodObject<{
551
+ column: z.ZodString;
552
+ eq: z.ZodObject<{
553
+ parent: z.ZodString;
554
+ }, z.core.$strict>;
555
+ }, z.core.$strict>>;
556
+ min: z.ZodString;
557
+ max: z.ZodString;
558
+ }, z.core.$strict>>>;
559
+ plainText: z.ZodOptional<z.ZodArray<z.ZodString>>;
560
+ sumMax: z.ZodOptional<z.ZodObject<{
561
+ column: z.ZodString;
562
+ max: z.ZodUnion<readonly [z.ZodNumber, z.ZodObject<{
563
+ table: z.ZodString;
564
+ column: z.ZodString;
565
+ }, z.core.$strict>]>;
566
+ }, z.core.$strict>>;
567
+ }, z.core.$strict>>>;
568
+ agrees: z.ZodOptional<z.ZodArray<z.ZodObject<{
569
+ column: z.ZodString;
570
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
571
+ when: z.ZodOptional<z.ZodObject<{
572
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
573
+ in: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
574
+ }, z.core.$strict>>;
575
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
576
+ parent: z.ZodString;
577
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
578
+ }, z.core.$strict>, z.ZodObject<{
579
+ via: z.ZodString;
580
+ column: z.ZodString;
581
+ }, z.core.$strict>, z.ZodObject<{
582
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
583
+ }, z.core.$strict>]>>;
584
+ lte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
585
+ parent: z.ZodString;
586
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
587
+ }, z.core.$strict>, z.ZodObject<{
588
+ via: z.ZodString;
589
+ column: z.ZodString;
590
+ }, z.core.$strict>, z.ZodObject<{
591
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
592
+ }, z.core.$strict>]>>;
593
+ gte: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
594
+ parent: z.ZodString;
595
+ path: z.ZodOptional<z.ZodArray<z.ZodString>>;
596
+ }, z.core.$strict>, z.ZodObject<{
597
+ via: z.ZodString;
598
+ column: z.ZodString;
599
+ }, z.core.$strict>, z.ZodObject<{
600
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
601
+ }, z.core.$strict>]>>;
602
+ }, z.core.$strict>>>;
603
+ dryRun: z.ZodOptional<z.ZodLiteral<true>>;
604
+ expect: z.ZodOptional<z.ZodString>;
605
+ clientKey: z.ZodOptional<z.ZodString>;
125
606
  rank: z.ZodOptional<z.ZodObject<{
126
607
  orderBy: z.ZodString;
127
608
  where: z.ZodOptional<z.ZodObject<{
@@ -141,6 +622,14 @@ export declare const publicAccessSchema: z.ZodObject<{
141
622
  n: z.ZodNumber;
142
623
  }, z.core.$strict>>;
143
624
  perKeyHour: z.ZodOptional<z.ZodNumber>;
625
+ perIpHour: z.ZodOptional<z.ZodNumber>;
626
+ plainText: z.ZodOptional<z.ZodArray<z.ZodString>>;
627
+ }, z.core.$strict>>;
628
+ limits: z.ZodOptional<z.ZodObject<{
629
+ perValue: z.ZodOptional<z.ZodObject<{
630
+ columns: z.ZodArray<z.ZodString>;
631
+ n: z.ZodNumber;
632
+ }, z.core.$strict>>;
144
633
  plainText: z.ZodOptional<z.ZodArray<z.ZodString>>;
145
634
  }, z.core.$strict>>;
146
635
  requireSetting: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -166,6 +655,66 @@ export declare const publicAccessSchema: z.ZodObject<{
166
655
  }, z.core.$strict>>;
167
656
  link: z.ZodOptional<z.ZodString>;
168
657
  }, z.core.$strict>>;
658
+ rule: z.ZodOptional<z.ZodNumber>;
659
+ showLeft: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
660
+ below: z.ZodNumber;
661
+ }, z.core.$strict>, z.ZodObject<{
662
+ belowShare: z.ZodNumber;
663
+ }, z.core.$strict>]>>;
664
+ under: z.ZodOptional<z.ZodString>;
665
+ unlockBy: z.ZodOptional<z.ZodObject<{
666
+ table: z.ZodString;
667
+ column: z.ZodString;
668
+ link: z.ZodString;
669
+ where: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
670
+ column: z.ZodString;
671
+ eq: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
672
+ }, z.core.$strict>, z.ZodObject<{
673
+ column: z.ZodString;
674
+ notBefore: z.ZodEnum<{
675
+ today: "today";
676
+ now: "now";
677
+ }>;
678
+ orEmpty: z.ZodOptional<z.ZodLiteral<true>>;
679
+ }, z.core.$strict>, z.ZodObject<{
680
+ column: z.ZodString;
681
+ notAfter: z.ZodEnum<{
682
+ today: "today";
683
+ now: "now";
684
+ }>;
685
+ orEmpty: z.ZodOptional<z.ZodLiteral<true>>;
686
+ }, z.core.$strict>]>>>;
687
+ }, z.core.$strict>>;
688
+ pictures: z.ZodOptional<z.ZodArray<z.ZodString>>;
689
+ withhold: z.ZodOptional<z.ZodObject<{
690
+ columns: z.ZodArray<z.ZodString>;
691
+ unlessHolder: z.ZodOptional<z.ZodString>;
692
+ when: z.ZodOptional<z.ZodObject<{
693
+ where: z.ZodOptional<z.ZodArray<z.ZodObject<{
694
+ column: z.ZodString;
695
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
696
+ in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
697
+ isNull: z.ZodOptional<z.ZodBoolean>;
698
+ gt: z.ZodOptional<z.ZodNumber>;
699
+ gte: z.ZodOptional<z.ZodNumber>;
700
+ lt: z.ZodOptional<z.ZodNumber>;
701
+ lte: z.ZodOptional<z.ZodNumber>;
702
+ }, z.core.$strict>>>;
703
+ linked: z.ZodOptional<z.ZodArray<z.ZodObject<{
704
+ via: z.ZodString;
705
+ where: z.ZodArray<z.ZodObject<{
706
+ column: z.ZodString;
707
+ eq: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
708
+ in: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
709
+ isNull: z.ZodOptional<z.ZodBoolean>;
710
+ gt: z.ZodOptional<z.ZodNumber>;
711
+ gte: z.ZodOptional<z.ZodNumber>;
712
+ lt: z.ZodOptional<z.ZodNumber>;
713
+ lte: z.ZodOptional<z.ZodNumber>;
714
+ }, z.core.$strict>>;
715
+ }, z.core.$strict>>>;
716
+ }, z.core.$strict>>;
717
+ }, z.core.$strict>>;
169
718
  }, z.core.$strict>;
170
719
  export type PublicAccess = z.infer<typeof publicAccessSchema>;
171
720
  /**
@@ -198,8 +747,14 @@ interface PublicAccessContext {
198
747
  index: TableIndex;
199
748
  /** Columns Adminium decides on a table: a browser may never write them. */
200
749
  decided: (table: string) => ReadonlySet<string>;
750
+ /** The columns of a table a money figure Adminium works out reads (a formula, a total, a copy into one). */
751
+ figures?: (table: string) => ReadonlySet<string>;
752
+ /** Whether the app's outbox writes a message when a row of the table is created. */
753
+ mailsOnCreate?: (table: string) => boolean;
201
754
  /** Whether the table carries a capacity or a booking rule to answer availability from. */
202
755
  answersAvailability: (table: string) => boolean;
756
+ /** The table's limits, as it declares them (absent: the caller does not say). */
757
+ capacityOf?: (table: string) => Capacity | undefined;
203
758
  publicKeys: Readonly<Record<string, PublicKey>> | undefined;
204
759
  roles: readonly {
205
760
  key: string;
@@ -207,7 +762,89 @@ interface PublicAccessContext {
207
762
  cloneFrom?: string | undefined;
208
763
  permissions?: readonly string[] | undefined;
209
764
  }[];
765
+ /** The app's outbox, for a new link it emails (absent: the app has none). */
766
+ outbox?: {
767
+ table: string;
768
+ kinds: Readonly<Record<string, string>>;
769
+ columns: {
770
+ repeatKey?: string | undefined;
771
+ };
772
+ links?: Readonly<Record<string, string>> | undefined;
773
+ recipient?: ResendOutbox['recipient'] | undefined;
774
+ producers?: ResendOutbox['producers'];
775
+ } | undefined;
776
+ }
777
+ /** A row's own link a person reaches: its table, the code column that opens it, and the columns that link its rows to the person. */
778
+ export interface PersonOwnLink {
779
+ table: string;
780
+ column: string;
781
+ people: string[];
210
782
  }
783
+ /**
784
+ * The own links of the rows a person of `identityTable` holds: each table a
785
+ * token claims with `own: true`, by its code column, and the columns of it
786
+ * that point at the person — the ones a signed-in read claims by, or a found
787
+ * person is linked through.
788
+ */
789
+ export declare function ownLinksOfPerson(entries: readonly PublicAccess[], identityTable: string): PersonOwnLink[];
790
+ /** The outbox as a resend reads it: its recipient, its links and the producers that declare a kind's recipient. */
791
+ export interface ResendOutbox {
792
+ table: string;
793
+ recipient: {
794
+ table: string;
795
+ via: string;
796
+ email: string;
797
+ fallback?: {
798
+ via: string;
799
+ email: string;
800
+ } | undefined;
801
+ };
802
+ producers?: readonly {
803
+ kind: string;
804
+ link: string;
805
+ hold?: boolean | undefined;
806
+ repeatBy?: string | undefined;
807
+ recipient?: {
808
+ setting: unknown;
809
+ } | {
810
+ column: string;
811
+ name?: string | undefined;
812
+ language?: string | undefined;
813
+ } | undefined;
814
+ }[] | undefined;
815
+ }
816
+ /** Where a resend of a row's own link is read from: the kind's column recipient, or none (the outbox's own), and the columns the address comes from. */
817
+ export interface ResendAddress {
818
+ /** The kind's own producer mails an address a column of the row holds. */
819
+ recipient?: {
820
+ column: string;
821
+ name?: string | undefined;
822
+ language?: string | undefined;
823
+ } | undefined;
824
+ /** The row's columns the address is read from (or through). */
825
+ columns: string[];
826
+ /** The person's table and address column, when the address is read from the person the row links. */
827
+ person?: {
828
+ table: string;
829
+ column: string;
830
+ } | undefined;
831
+ }
832
+ /** A table's columns as a resend reads them: each name, and the table it references (null: no link). */
833
+ export type ResendColumns = (table: string) => readonly {
834
+ name: string;
835
+ references: string | null;
836
+ }[] | undefined;
837
+ /**
838
+ * How a message of `kind` about a row of `table` is addressed when it is
839
+ * sent again through the row's own link — as the kind's own producer
840
+ * declares it (the first producer of the kind, as the sender reads it), and
841
+ * only from the row: a column of the row, the person it links (the column
842
+ * named as the outbox's recipient link, else its one key to the recipient's
843
+ * table), or the outbox's fallback through this table. Null when nothing on
844
+ * the row addresses it (a setting's address, a column of another row, two
845
+ * keys to the recipient). The validator and the server ask this one function.
846
+ */
847
+ export declare function resendAddressOf(outbox: ResendOutbox, kind: string, table: string, columnsOf: ResendColumns): ResendAddress | null;
211
848
  /** Everything in `publicAccess` and `publicKeys` that names something undeclared, or breaks a rule. */
212
849
  export declare function publicAccessIssues(entries: readonly PublicAccess[], ctx: PublicAccessContext): ReferenceIssue[];
213
850
  export {};