@supatype/cli 0.1.11 → 0.1.13

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 (68) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-test.log +136 -130
  3. package/.turbo/turbo-typecheck.log +1 -1
  4. package/dist/cli-version-embedded.js +1 -1
  5. package/dist/commands/db.d.ts.map +1 -1
  6. package/dist/commands/db.js +23 -1
  7. package/dist/commands/db.js.map +1 -1
  8. package/dist/commands/doctor.d.ts +0 -7
  9. package/dist/commands/doctor.d.ts.map +1 -1
  10. package/dist/commands/doctor.js +26 -0
  11. package/dist/commands/doctor.js.map +1 -1
  12. package/dist/commands/push.d.ts.map +1 -1
  13. package/dist/commands/push.js +15 -7
  14. package/dist/commands/push.js.map +1 -1
  15. package/dist/compose-local-server-image.d.ts +11 -0
  16. package/dist/compose-local-server-image.d.ts.map +1 -1
  17. package/dist/compose-local-server-image.js +18 -0
  18. package/dist/compose-local-server-image.js.map +1 -1
  19. package/dist/db-preflight.d.ts +23 -0
  20. package/dist/db-preflight.d.ts.map +1 -1
  21. package/dist/db-preflight.js +66 -1
  22. package/dist/db-preflight.js.map +1 -1
  23. package/dist/dev-compose.d.ts +1 -0
  24. package/dist/dev-compose.d.ts.map +1 -1
  25. package/dist/dev-compose.js +79 -10
  26. package/dist/dev-compose.js.map +1 -1
  27. package/dist/field-bounds.d.ts +68 -0
  28. package/dist/field-bounds.d.ts.map +1 -0
  29. package/dist/field-bounds.js +277 -0
  30. package/dist/field-bounds.js.map +1 -0
  31. package/dist/hooks-generator.d.ts +1 -1
  32. package/dist/hooks-generator.d.ts.map +1 -1
  33. package/dist/hooks-generator.js +78 -4
  34. package/dist/hooks-generator.js.map +1 -1
  35. package/dist/model-hooks.d.ts +44 -2
  36. package/dist/model-hooks.d.ts.map +1 -1
  37. package/dist/model-hooks.js +116 -12
  38. package/dist/model-hooks.js.map +1 -1
  39. package/dist/schema-ast-v2.d.ts +38 -4
  40. package/dist/schema-ast-v2.d.ts.map +1 -1
  41. package/dist/schema-ast-v2.js +87 -4
  42. package/dist/schema-ast-v2.js.map +1 -1
  43. package/dist/type-extractor.d.ts.map +1 -1
  44. package/dist/type-extractor.js +309 -27
  45. package/dist/type-extractor.js.map +1 -1
  46. package/package.json +4 -3
  47. package/src/cli-version-embedded.ts +1 -1
  48. package/src/commands/db.ts +27 -1
  49. package/src/commands/doctor.ts +30 -0
  50. package/src/commands/push.ts +26 -6
  51. package/src/compose-local-server-image.ts +17 -0
  52. package/src/db-preflight.ts +89 -1
  53. package/src/dev-compose.ts +96 -9
  54. package/src/field-bounds.ts +359 -0
  55. package/src/hooks-generator.ts +81 -4
  56. package/src/model-hooks.ts +158 -12
  57. package/src/schema-ast-v2.ts +114 -10
  58. package/src/type-extractor.ts +374 -39
  59. package/tests/db-preflight.test.ts +80 -0
  60. package/tests/field-bounds-matrix.test.ts +163 -0
  61. package/tests/field-bounds.test.ts +139 -0
  62. package/tests/field-validators.test.ts +139 -0
  63. package/tests/hooks-generator.test.ts +86 -0
  64. package/tests/local-server-image-env.test.ts +93 -0
  65. package/tests/model-constraints.test.ts +293 -0
  66. package/tests/model-hooks.test.ts +56 -0
  67. package/tests/type-extractor.test.ts +49 -0
  68. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"dev-compose.js","sourceRoot":"","sources":["../src/dev-compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev-compose.js","sourceRoot":"","sources":["../src/dev-compose.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * What a declared bound means for each field kind, and the SQL it compiles to.
3
+ *
4
+ * **This table is the mechanism.** Bounds used to be compiled inside the modifier cases of
5
+ * `type-extractor.ts`, which meant `MaxLength` became `char_length(col)` whatever the column turned
6
+ * out to be: `char_length(text[])` does not exist, so the RFC's own `tags: MaxLength<string[], 10>`
7
+ * produced SQL that fails `CREATE TABLE`. Worse, nine of twelve engine field structs had nowhere to
8
+ * put a `check`, so the constraint was dropped by serde with no error anywhere in the chain.
9
+ *
10
+ * A table keyed by kind fixes the class of bug rather than the instances: a kind absent from
11
+ * {@link BOUNDS_BY_KIND} throws, so a new field kind cannot be added without answering "what does a
12
+ * bound mean here", and every answer is either an expression or a refusal with a named alternative.
13
+ * There is no third outcome, which is what "no bound is ever silent" means in practice.
14
+ */
15
+ import { type FieldKind, type FieldValidation } from "./schema-ast-v2.js";
16
+ /** Bounds as declared on the type, before anything knows what column they will land on. */
17
+ export interface DeclaredBounds {
18
+ maxLength?: number;
19
+ minLength?: number;
20
+ maxItems?: number;
21
+ minItems?: number;
22
+ min?: number | string;
23
+ max?: number | string;
24
+ }
25
+ /** What "length" counts, per storage. */
26
+ type LengthForm = "chars" | "octets" | "richText";
27
+ /** What "items" counts, per storage. */
28
+ type ItemsForm = "array" | "jsonbArray";
29
+ /**
30
+ * Re-exported for tests. Completeness is now the compiler's job, not a test's: this exists so the
31
+ * matrix can assert it covers every kind, which is a different question from whether every kind is
32
+ * classified.
33
+ */
34
+ export declare const CLASSIFIED_KINDS: readonly FieldKind[];
35
+ /** How a column is measured, once the kind has decided. */
36
+ export type MeasureForm = LengthForm | ItemsForm;
37
+ export interface MeasureResolution {
38
+ /** How to measure, when this kind can be measured this way. */
39
+ form?: MeasureForm;
40
+ /** Why it cannot, and what to use instead. Present exactly when `form` is not. */
41
+ instead?: string;
42
+ }
43
+ /**
44
+ * How a kind is measured, for one measure family.
45
+ *
46
+ * **The single answer for both paths.** `MaxLength<T, N>` on a field and `Length<"col">` inside a
47
+ * model constraint have to agree about what "length" means for a given column, or the same schema
48
+ * gets `char_length` in one place and `cardinality` in the other. A second table for the constraint
49
+ * path is how `char_length(text[])` would come back, in a new file, having been fixed once already.
50
+ */
51
+ export declare function measureFormFor(kind: FieldKind, measure: "length" | "items", options?: {
52
+ jsonIsArray?: boolean;
53
+ }): MeasureResolution;
54
+ export interface BoundsCompileResult {
55
+ check?: string;
56
+ validation?: FieldValidation;
57
+ }
58
+ /**
59
+ * Compile declared bounds against the kind they landed on.
60
+ *
61
+ * Throws rather than dropping. A bound that cannot be honoured is a mistake in the schema, and the
62
+ * failure it used to produce, silence, is the one failure this must not have.
63
+ */
64
+ export declare function compileBounds(field: string, kind: FieldKind, bounds: DeclaredBounds, options?: {
65
+ jsonIsArray?: boolean;
66
+ }): BoundsCompileResult;
67
+ export {};
68
+ //# sourceMappingURL=field-bounds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-bounds.d.ts","sourceRoot":"","sources":["../src/field-bounds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAe,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEtF,2FAA2F;AAC3F,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AAED,yCAAyC;AACzC,KAAK,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAA;AACjD,wCAAwC;AACxC,KAAK,SAAS,GAAG,OAAO,GAAG,YAAY,CAAA;AAqIvC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,SAAS,EAAgB,CAAA;AAiBjE,2DAA2D;AAC3D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,CAAA;AAEhD,MAAM,WAAW,iBAAiB;IAChC,+DAA+D;IAC/D,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,QAAQ,GAAG,OAAO,EAC3B,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,iBAAiB,CAKnB;AAuCD,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,eAAe,CAAA;CAC7B;AASD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,mBAAmB,CA2DrB"}
@@ -0,0 +1,277 @@
1
+ /**
2
+ * What a declared bound means for each field kind, and the SQL it compiles to.
3
+ *
4
+ * **This table is the mechanism.** Bounds used to be compiled inside the modifier cases of
5
+ * `type-extractor.ts`, which meant `MaxLength` became `char_length(col)` whatever the column turned
6
+ * out to be: `char_length(text[])` does not exist, so the RFC's own `tags: MaxLength<string[], 10>`
7
+ * produced SQL that fails `CREATE TABLE`. Worse, nine of twelve engine field structs had nowhere to
8
+ * put a `check`, so the constraint was dropped by serde with no error anywhere in the chain.
9
+ *
10
+ * A table keyed by kind fixes the class of bug rather than the instances: a kind absent from
11
+ * {@link BOUNDS_BY_KIND} throws, so a new field kind cannot be added without answering "what does a
12
+ * bound mean here", and every answer is either an expression or a refusal with a named alternative.
13
+ * There is no third outcome, which is what "no bound is ever silent" means in practice.
14
+ */
15
+ import { FIELD_KINDS } from "./schema-ast-v2.js";
16
+ const TEXTUAL = {
17
+ length: "chars",
18
+ instead: {
19
+ items: "text has characters, not items; use MaxLength/MinLength",
20
+ range: "text is not ordered numerically; use a model-level constraint if you need a comparison",
21
+ },
22
+ };
23
+ const NUMERIC = {
24
+ range: "numeric",
25
+ instead: {
26
+ length: "a number has no length; use Between to bound its value",
27
+ items: "a number has no items; use Between to bound its value",
28
+ },
29
+ };
30
+ const temporal = (range) => ({
31
+ range,
32
+ instead: {
33
+ length: "a date has no length; use Between with ISO-8601 string bounds",
34
+ items: "a date has no items; use Between with ISO-8601 string bounds",
35
+ },
36
+ });
37
+ const NO_BOUNDS = (why) => ({
38
+ instead: { length: why, items: why, range: why },
39
+ });
40
+ /**
41
+ * What each bound means for each kind.
42
+ *
43
+ * `Record<FieldKind, KindBounds>` is the whole mechanism: it is **exhaustive by the compiler**, so
44
+ * adding a kind to `FIELD_KINDS` fails the build here until someone says what `MaxLength`,
45
+ * `MaxItems` and `Between` do for it. Composite kinds (`timestamps`, `publishable`, `softDelete`)
46
+ * expand into real columns before a bound could apply, so they carry none, but they still have to
47
+ * say so.
48
+ */
49
+ const BOUNDS_BY_KIND = {
50
+ text: TEXTUAL,
51
+ email: TEXTUAL,
52
+ url: TEXTUAL,
53
+ slug: TEXTUAL,
54
+ color: TEXTUAL,
55
+ xml: TEXTUAL,
56
+ ip: TEXTUAL,
57
+ cidr: TEXTUAL,
58
+ macaddr: TEXTUAL,
59
+ tsQuery: TEXTUAL,
60
+ tsVector: TEXTUAL,
61
+ richText: {
62
+ length: "richText",
63
+ instead: {
64
+ items: "rich text is measured in characters of plain text; use MaxLength/MinLength",
65
+ range: "rich text is not ordered; use MaxLength/MinLength",
66
+ },
67
+ },
68
+ bytes: {
69
+ length: "octets",
70
+ instead: {
71
+ items: "a binary column has octets, not items; use MaxLength/MinLength",
72
+ range: "a binary column is not ordered; use MaxLength/MinLength",
73
+ },
74
+ },
75
+ integer: NUMERIC,
76
+ smallInt: NUMERIC,
77
+ bigInt: NUMERIC,
78
+ float: NUMERIC,
79
+ serial: NUMERIC,
80
+ bigSerial: NUMERIC,
81
+ decimal: NUMERIC,
82
+ money: NUMERIC,
83
+ datetime: temporal("timestamptz"),
84
+ timestamp: temporal("timestamp"),
85
+ date: temporal("date"),
86
+ interval: temporal("interval"),
87
+ array: {
88
+ items: "array",
89
+ instead: {
90
+ length: "an array has items, not characters; use MaxItems/MinItems",
91
+ range: "an array is not ordered; use MaxItems/MinItems",
92
+ },
93
+ },
94
+ blocks: {
95
+ items: "jsonbArray",
96
+ instead: {
97
+ length: "blocks are counted, not measured; use MaxItems/MinItems",
98
+ range: "blocks are not ordered; use MaxItems/MinItems",
99
+ },
100
+ },
101
+ // `json` is decided per field, not per kind: `JSON<Item[]>` takes item bounds and `JSON<{...}>`
102
+ // takes none. {@link boundsForKind} applies that, which is why the entry here is the object case.
103
+ json: NO_BOUNDS("a JSON object has no single measure; bound a sub-field with a model-level constraint, " +
104
+ "or declare the field as JSON<T[]> to bound its element count"),
105
+ button: NO_BOUNDS("a button is a composite value; bound a sub-field with a model-level constraint"),
106
+ enum: NO_BOUNDS("the union already constrains the permitted values"),
107
+ boolean: NO_BOUNDS("a boolean has two values and needs no bound"),
108
+ uuid: NO_BOUNDS("a UUID is fixed width"),
109
+ image: NO_BOUNDS("size and type limits belong on the bucket: fileSizeLimit and allowedMimeTypes"),
110
+ file: NO_BOUNDS("size and type limits belong on the bucket: fileSizeLimit and allowedMimeTypes"),
111
+ geo: NO_BOUNDS("a geometry is not measured this way"),
112
+ vector: NO_BOUNDS("the dimension is already fixed by the type, as Vector<N>"),
113
+ relation: NO_BOUNDS("bound the column on the model this relation points at"),
114
+ custom: NO_BOUNDS("a plugin field declares its own storage; bounds are the plugin's to define"),
115
+ timestamps: NO_BOUNDS("a composite expands into columns before a bound could apply"),
116
+ publishable: NO_BOUNDS("a composite expands into columns before a bound could apply"),
117
+ softDelete: NO_BOUNDS("a composite expands into columns before a bound could apply"),
118
+ };
119
+ /**
120
+ * Re-exported for tests. Completeness is now the compiler's job, not a test's: this exists so the
121
+ * matrix can assert it covers every kind, which is a different question from whether every kind is
122
+ * classified.
123
+ */
124
+ export const CLASSIFIED_KINDS = FIELD_KINDS;
125
+ /** `JSON<T[]>` counts elements; `JSON<{...}>` takes no bound. Anything else follows its kind. */
126
+ function boundsForKind(kind, jsonIsArray) {
127
+ const entry = BOUNDS_BY_KIND[kind];
128
+ if (kind === "json" && jsonIsArray) {
129
+ return {
130
+ items: "jsonbArray",
131
+ instead: {
132
+ length: "a JSON array has items, not characters; use MaxItems/MinItems",
133
+ range: "a JSON array is not ordered; use MaxItems/MinItems",
134
+ },
135
+ };
136
+ }
137
+ return entry;
138
+ }
139
+ /**
140
+ * How a kind is measured, for one measure family.
141
+ *
142
+ * **The single answer for both paths.** `MaxLength<T, N>` on a field and `Length<"col">` inside a
143
+ * model constraint have to agree about what "length" means for a given column, or the same schema
144
+ * gets `char_length` in one place and `cardinality` in the other. A second table for the constraint
145
+ * path is how `char_length(text[])` would come back, in a new file, having been fixed once already.
146
+ */
147
+ export function measureFormFor(kind, measure, options = {}) {
148
+ const entry = boundsForKind(kind, options.jsonIsArray === true);
149
+ const form = measure === "length" ? entry.length : entry.items;
150
+ if (form !== undefined)
151
+ return { form };
152
+ return { instead: entry.instead?.[measure] ?? `a ${kind} field cannot be measured that way` };
153
+ }
154
+ const COLUMN = '"{name}"';
155
+ function lengthExpr(form) {
156
+ switch (form) {
157
+ case "chars":
158
+ return `char_length(${COLUMN})`;
159
+ case "octets":
160
+ return `octet_length(${COLUMN})`;
161
+ case "richText":
162
+ return `char_length(_supatype.richtext_text(${COLUMN}))`;
163
+ }
164
+ }
165
+ /**
166
+ * `jsonb_array_length` raises `cannot get array length of a non-array` at insert time, so the type
167
+ * guard is part of the constraint rather than an assumption about what callers send.
168
+ */
169
+ function itemsClause(form, comparisons) {
170
+ if (form === "array") {
171
+ return comparisons.map((c) => `cardinality(${COLUMN}) ${c}`).join(" AND ");
172
+ }
173
+ const guarded = comparisons.map((c) => `jsonb_array_length(${COLUMN}) ${c}`).join(" AND ");
174
+ return `jsonb_typeof(${COLUMN}) = 'array' AND ${guarded}`;
175
+ }
176
+ function rangeLiteral(form, value) {
177
+ if (form === "numeric")
178
+ return String(value);
179
+ const cast = form === "timestamptz" ? "timestamptz" : form;
180
+ return `'${String(value).replace(/'/g, "''")}'::${cast}`;
181
+ }
182
+ /** ISO-8601 date, date-time or a Postgres interval. Validated here so a bad literal is a CLI error. */
183
+ function isTemporalLiteral(form, value) {
184
+ if (form === "interval")
185
+ return /^\s*\d+\s+[a-z]+(\s+\d+\s+[a-z]+)*\s*$/i.test(value);
186
+ return !Number.isNaN(Date.parse(value));
187
+ }
188
+ function refuse(field, modifier, kind, hint) {
189
+ const tail = hint ? ` ${hint}.` : "";
190
+ throw new Error(`Field "${field}": ${modifier} is not supported on a ${kind} field.${tail}`);
191
+ }
192
+ /**
193
+ * Compile declared bounds against the kind they landed on.
194
+ *
195
+ * Throws rather than dropping. A bound that cannot be honoured is a mistake in the schema, and the
196
+ * failure it used to produce, silence, is the one failure this must not have.
197
+ */
198
+ export function compileBounds(field, kind, bounds, options = {}) {
199
+ const entry = boundsForKind(kind, options.jsonIsArray === true);
200
+ const clauses = [];
201
+ const validation = {};
202
+ const { maxLength, minLength } = bounds;
203
+ if (maxLength !== undefined || minLength !== undefined) {
204
+ const resolved = measureFormFor(kind, "length", options);
205
+ if (resolved.form === undefined) {
206
+ refuse(field, maxLength !== undefined ? "MaxLength" : "MinLength", kind, resolved.instead);
207
+ }
208
+ const expr = lengthExpr(resolved.form);
209
+ if (maxLength !== undefined) {
210
+ clauses.push(`${expr} <= ${maxLength}`);
211
+ validation.maxLength = maxLength;
212
+ }
213
+ if (minLength !== undefined) {
214
+ clauses.push(`${expr} >= ${minLength}`);
215
+ validation.minLength = minLength;
216
+ }
217
+ }
218
+ const { maxItems, minItems } = bounds;
219
+ const itemsResolved = measureFormFor(kind, "items", options);
220
+ if (maxItems !== undefined || minItems !== undefined) {
221
+ if (itemsResolved.form === undefined) {
222
+ refuse(field, maxItems !== undefined ? "MaxItems" : "MinItems", kind, itemsResolved.instead);
223
+ }
224
+ const comparisons = [];
225
+ if (maxItems !== undefined) {
226
+ comparisons.push(`<= ${maxItems}`);
227
+ validation.maxItems = maxItems;
228
+ }
229
+ if (minItems !== undefined) {
230
+ comparisons.push(`>= ${minItems}`);
231
+ validation.minItems = minItems;
232
+ }
233
+ clauses.push(itemsClause(itemsResolved.form, comparisons));
234
+ }
235
+ const { min, max } = bounds;
236
+ if (min !== undefined || max !== undefined) {
237
+ if (!entry.range)
238
+ refuse(field, "Between", kind, entry.instead?.range);
239
+ for (const [bound, comparison] of [[min, ">="], [max, "<="]]) {
240
+ if (bound === undefined)
241
+ continue;
242
+ assertRangeShape(field, kind, entry.range, bound);
243
+ clauses.push(`${COLUMN} ${comparison} ${rangeLiteral(entry.range, bound)}`);
244
+ }
245
+ if (min !== undefined)
246
+ validation.min = min;
247
+ if (max !== undefined)
248
+ validation.max = max;
249
+ }
250
+ // Parenthesised only when there is something to bind, matching `mergeCheckConstraint`. Gratuitous
251
+ // parentheses are not cosmetic here: the differ compares this text against what Postgres hands
252
+ // back from `pg_get_constraintdef`, so every avoidable difference is a false "changed" on push.
253
+ return {
254
+ ...(clauses.length > 0 && { check: joinClauses(clauses) }),
255
+ ...(Object.keys(validation).length > 0 && { validation }),
256
+ };
257
+ }
258
+ function joinClauses(clauses) {
259
+ const [only] = clauses;
260
+ if (clauses.length === 1 && only !== undefined)
261
+ return only;
262
+ return clauses.map((c) => `(${c})`).join(" AND ");
263
+ }
264
+ /** A number bounds a number and a string bounds a date. Crossing them is a mistake, not a cast. */
265
+ function assertRangeShape(field, kind, form, bound) {
266
+ const isNumeric = form === "numeric";
267
+ if (isNumeric && typeof bound !== "number") {
268
+ throw new Error(`Field "${field}": Between on a ${kind} field takes numbers, but "${bound}" is a string.`);
269
+ }
270
+ if (!isNumeric && typeof bound !== "string") {
271
+ throw new Error(`Field "${field}": Between on a ${kind} field takes ISO-8601 string bounds, but ${bound} is a number.`);
272
+ }
273
+ if (!isNumeric && !isTemporalLiteral(form, bound)) {
274
+ throw new Error(`Field "${field}": Between bound "${bound}" is not a valid ${form === "interval" ? "interval" : "ISO-8601 date"}.`);
275
+ }
276
+ }
277
+ //# sourceMappingURL=field-bounds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-bounds.js","sourceRoot":"","sources":["../src/field-bounds.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The module source, or `null` when no model declares a hook.
2
+ * The module source, or `null` when no model declares a hook or a field validator.
3
3
  *
4
4
  * Returning null rather than an empty module keeps a `_supatype/hooks.ts` from appearing in projects
5
5
  * that have no hooks, a generated file nobody imports is a file somebody eventually edits.
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-generator.d.ts","sourceRoot":"","sources":["../src/hooks-generator.ts"],"names":[],"mappings":"AAsCA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CA0R/D"}
1
+ {"version":3,"file":"hooks-generator.d.ts","sourceRoot":"","sources":["../src/hooks-generator.ts"],"names":[],"mappings":"AA2CA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAkW/D"}
@@ -16,15 +16,17 @@ function hookedModels(ast) {
16
16
  return [];
17
17
  return models
18
18
  .filter((model) => {
19
- const hooks = model.annotations
20
- ?.platform?.hooks;
21
- return typeof hooks === "object" && hooks !== null && Object.keys(hooks).length > 0;
19
+ const platform = model.annotations?.platform;
20
+ const declares = (value) => typeof value === "object" && value !== null && Object.keys(value).length > 0;
21
+ // Validators need the same row types hooks do, so a model declaring only validators must
22
+ // still appear here or `FieldValidator<"products", ...>` would not compile.
23
+ return declares(platform?.hooks) || declares(platform?.validate);
22
24
  })
23
25
  .map((model) => ({ table: resolveTableName(model), fields: model.fields }))
24
26
  .sort((a, b) => a.table.localeCompare(b.table));
25
27
  }
26
28
  /**
27
- * The module source, or `null` when no model declares a hook.
29
+ * The module source, or `null` when no model declares a hook or a field validator.
28
30
  *
29
31
  * Returning null rather than an empty module keeps a `_supatype/hooks.ts` from appearing in projects
30
32
  * that have no hooks, a generated file nobody imports is a file somebody eventually edits.
@@ -153,6 +155,78 @@ export type AfterDelete<T extends HookedTable> = (
153
155
  ctx: AfterDeleteContext<T>,
154
156
  ) => void | Promise<void>
155
157
 
158
+
159
+ /**
160
+ * A per-field validator: one field's value, and a verdict about it.
161
+ *
162
+ * \`FieldValidator<"products", "setup_items">\` types \`value\` as that column's real type, so a
163
+ * validator cannot quietly be written against the wrong shape.
164
+ *
165
+ * Return \`true\` to accept, or a message to refuse. The message reaches the caller attached to the
166
+ * field name, which is what lets a form put it on the input rather than in a banner: the whole
167
+ * reason for declaring this instead of putting the same logic in a \`beforeChange\` hook.
168
+ */
169
+ export type FieldValidatorContext<T extends HookedTable, F extends keyof HookTables[T]["Row"]> =
170
+ HookBase & {
171
+ readonly operation: "insert" | "update"
172
+ readonly field: F
173
+ readonly value: HookTables[T]["Row"][F]
174
+ }
175
+
176
+ export type FieldVerdict = true | string
177
+
178
+ export type FieldValidator<T extends HookedTable, F extends keyof HookTables[T]["Row"]> = (
179
+ ctx: FieldValidatorContext<T, F>,
180
+ ) => FieldVerdict | Promise<FieldVerdict>
181
+
182
+ interface WireValidatorContext {
183
+ table?: string
184
+ operation?: string
185
+ field?: string
186
+ value?: unknown
187
+ user?: unknown
188
+ requestId?: string
189
+ }
190
+
191
+ /**
192
+ * Wrap a typed validator as the request handler the worker expects.
193
+ *
194
+ * A refusal is **422 with the field named**, not a bare 400: the request was understood and one
195
+ * value was rejected. A thrown error is deliberately *not* turned into a refusal, because a broken
196
+ * validator has not decided anything: it becomes a 500, which the server reads as unavailable and
197
+ * refuses the write on, rather than as the validator saying no.
198
+ */
199
+ export function fieldValidator(
200
+ handler: (ctx: never) => FieldVerdict | Promise<FieldVerdict>,
201
+ ): (req: Request) => Promise<Response> {
202
+ return async (req: Request): Promise<Response> => {
203
+ if (req.method !== "POST") {
204
+ return json({ message: "A validator is invoked with POST" }, 405)
205
+ }
206
+
207
+ let wire: WireValidatorContext
208
+ try {
209
+ wire = (await req.json()) as WireValidatorContext
210
+ } catch {
211
+ return json({ message: "Validator payload was not JSON" }, 400)
212
+ }
213
+
214
+ const field = wire.field ?? ""
215
+ const ctx = {
216
+ table: wire.table ?? "",
217
+ operation: wire.operation === "update" ? "update" : "insert",
218
+ field,
219
+ value: wire.value,
220
+ user: (wire.user ?? null) as never,
221
+ requestId: wire.requestId ?? "",
222
+ }
223
+
224
+ const verdict = await handler(ctx as never)
225
+ if (verdict === true) return json({}, 200)
226
+ return json({ field, message: String(verdict), error: String(verdict) }, 422)
227
+ }
228
+ }
229
+
156
230
  /** Every handler a single function may serve, when one function covers a model's whole lifecycle. */
157
231
  export interface HookHandlers<T extends HookedTable> {
158
232
  readonly beforeChange?: BeforeChange<T>