@tai42/studio-sdk 22.2.0 → 22.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/guards.d.ts +6 -0
  2. package/dist/guards.d.ts.map +1 -1
  3. package/dist/guards.js +8 -0
  4. package/dist/guards.js.map +1 -1
  5. package/dist/hooks/useApi.d.ts +7 -0
  6. package/dist/hooks/useApi.d.ts.map +1 -1
  7. package/dist/schema-form/SchemaForm.d.ts +4 -1
  8. package/dist/schema-form/SchemaForm.d.ts.map +1 -1
  9. package/dist/schema-form/SchemaForm.js.map +1 -1
  10. package/dist/schema-form/classify.js +3 -3
  11. package/dist/schema-form/classify.js.map +1 -1
  12. package/dist/schema-form/default-value.js +5 -4
  13. package/dist/schema-form/default-value.js.map +1 -1
  14. package/dist/schema-form/field-model.d.ts +3 -3
  15. package/dist/schema-form/field-model.d.ts.map +1 -1
  16. package/dist/schema-form/field-node.d.ts +1 -0
  17. package/dist/schema-form/field-node.d.ts.map +1 -1
  18. package/dist/schema-form/field-node.js +2 -1
  19. package/dist/schema-form/field-node.js.map +1 -1
  20. package/dist/schema-form/multiselect-field.d.ts +1 -1
  21. package/dist/schema-form/object-fields.d.ts +1 -0
  22. package/dist/schema-form/object-fields.d.ts.map +1 -1
  23. package/dist/schema-form/object-fields.js +4 -3
  24. package/dist/schema-form/object-fields.js.map +1 -1
  25. package/dist/schema-form/record-field.d.ts.map +1 -1
  26. package/dist/schema-form/record-field.js +4 -2
  27. package/dist/schema-form/record-field.js.map +1 -1
  28. package/dist/schema-form/string-field.js +2 -2
  29. package/dist/schema-form/string-field.js.map +1 -1
  30. package/dist/schema-form/union-field.d.ts.map +1 -1
  31. package/dist/schema-form/union-field.js +3 -8
  32. package/dist/schema-form/union-field.js.map +1 -1
  33. package/dist/schema-form/union.js +1 -1
  34. package/dist/schema-form/union.js.map +1 -1
  35. package/dist/schema-form/validate.d.ts +14 -1
  36. package/dist/schema-form/validate.d.ts.map +1 -1
  37. package/dist/schema-form/validate.js +99 -45
  38. package/dist/schema-form/validate.js.map +1 -1
  39. package/dist/schema-form/visibility.d.ts +0 -12
  40. package/dist/schema-form/visibility.d.ts.map +1 -1
  41. package/dist/schema-form/visibility.js +14 -1
  42. package/dist/schema-form/visibility.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/guards.ts +12 -0
  45. package/src/schema-form/SchemaForm.tsx +4 -2
  46. package/src/schema-form/classify.ts +3 -3
  47. package/src/schema-form/default-value.ts +5 -4
  48. package/src/schema-form/field-model.ts +3 -3
  49. package/src/schema-form/field-node.tsx +4 -3
  50. package/src/schema-form/multiselect-field.tsx +1 -1
  51. package/src/schema-form/object-fields.tsx +8 -7
  52. package/src/schema-form/record-field.tsx +4 -2
  53. package/src/schema-form/string-field.tsx +2 -2
  54. package/src/schema-form/union-field.tsx +5 -6
  55. package/src/schema-form/union.ts +1 -1
  56. package/src/schema-form/validate.ts +127 -46
  57. package/src/schema-form/visibility.ts +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"union-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/union-field.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,eAAe,CAAC;AAK9D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAsF5D,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,SAAS,CA2DZ"}
1
+ {"version":3,"file":"union-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/union-field.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,eAAe,CAAC;AAK9D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAqF5D,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,SAAS,CA2DZ"}
@@ -50,14 +50,9 @@ function switchVariantValue(current, target, discriminator, root) {
50
50
  if (model.kind !== 'object')
51
51
  return seeded;
52
52
  const targetNames = new Set(model.properties.map(([name]) => name));
53
- const merged = { ...seeded };
54
- for (const [name, held] of Object.entries(current)) {
55
- if (name === discriminator)
56
- continue;
57
- if (targetNames.has(name))
58
- merged[name] = held;
59
- }
60
- return merged;
53
+ const carried = Object.entries(current).filter(([name]) => name !== discriminator && targetNames.has(name));
54
+ // Built from entries so every property name, `__proto__` included, lands as an own key.
55
+ return Object.fromEntries([...Object.entries(seeded), ...carried]);
61
56
  }
62
57
  /** Title-case a property name: `kind` → "Kind", `content_type` → "Content Type". */
63
58
  function titleCaseName(name) {
@@ -1 +1 @@
1
- {"version":3,"file":"union-field.js","sourceRoot":"","sources":["../../src/schema-form/union-field.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"union-field.js","sourceRoot":"","sources":["../../src/schema-form/union-field.tsx"],"names":[],"mappings":"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"}
@@ -48,7 +48,7 @@ export function activeVariantIndex(value, variants, discriminator, root) {
48
48
  const required = resolved.required ?? [];
49
49
  let score = 0;
50
50
  for (const key of required) {
51
- if (key in value)
51
+ if (Object.hasOwn(value, key))
52
52
  score += 1;
53
53
  }
54
54
  if (score > bestScore) {
@@ -1 +1 @@
1
- {"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/schema-form/union.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/schema-form/union.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,25 @@ export interface ValidateOptions {
7
7
  * absent both, the shared default applies.
8
8
  */
9
9
  readonly maxUploadBytes?: number;
10
+ /**
11
+ * Per-field words, keyed by the root object's exact property name. A field's
12
+ * `invalid` sentence replaces every shape error on that field and anything inside
13
+ * it (a format, pattern, length, bound, type or item error). A missing required
14
+ * value keeps its own required message, and a `pattern` that cannot compile keeps
15
+ * its own message, since that is a defect of the schema, not of the value. A field
16
+ * with no `invalid` sentence keeps the SDK's word for the failing shape.
17
+ */
18
+ readonly fieldWording?: Readonly<Record<string, {
19
+ invalid?: string;
20
+ }>>;
10
21
  }
11
22
  /**
12
23
  * Validate `value` against `schema`, returning a per-path error bag (empty =
13
24
  * valid). The caller runs this before submit and feeds the result back to
14
25
  * `SchemaForm` for display. `options.maxUploadBytes` mirrors the renderer's
15
- * `maxUploadBytes` prop so a media field's byte cap is enforced identically here.
26
+ * `maxUploadBytes` prop so a media field's byte cap is enforced identically here;
27
+ * `options.fieldWording` puts a field's own `invalid` sentence in place of the
28
+ * SDK's word for any shape error on that field.
16
29
  */
17
30
  export declare function validateAgainstSchema(schema: JsonSchema, value: unknown, options?: ValidateOptions): SchemaFormErrors;
18
31
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/schema-form/validate.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI5D,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AA8ZD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,gBAAgB,CAIlB"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/schema-form/validate.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI5D,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CACxE;AAwdD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,gBAAgB,CAgBlB"}
@@ -5,12 +5,35 @@
5
5
  * container constraint on a free-form `json` field. It never throws on a
6
6
  * malformed value — a malformed value IS the error it reports.
7
7
  */
8
- import { isRecord } from '../guards';
8
+ import { isRecord, ownValue } from '../guards';
9
9
  import { classifySchema } from './classify';
10
10
  import { decodedByteSize, effectiveMaxBytes, overCapMessage } from './media';
11
11
  import { resolveRef, scalarLabel } from './resolve';
12
12
  import { activeVariantIndex } from './union';
13
13
  import { isFieldVisible } from './visibility';
14
+ /**
15
+ * Record a shape error at `path`: the value breaks a shape the schema declares. Inside
16
+ * a root property, that field's `invalid` sentence may replace it.
17
+ */
18
+ function shapeError(ctx, path, message) {
19
+ ctx.errors[path] = message;
20
+ if (ctx.field === undefined)
21
+ ctx.shapeErrorFields.delete(path);
22
+ else
23
+ ctx.shapeErrorFields.set(path, ctx.field);
24
+ }
25
+ /**
26
+ * Record an error at `path` that is not a shape the value breaks (a missing required
27
+ * value, a schema constraint that cannot run): a field's words never replace it.
28
+ */
29
+ function keptError(ctx, path, message) {
30
+ ctx.errors[path] = message;
31
+ ctx.shapeErrorFields.delete(path);
32
+ }
33
+ /** The context for the child `name` of the value at `path`: a root child is its own field. */
34
+ function childCtx(ctx, path, name) {
35
+ return path === '' ? { ...ctx, field: name } : ctx;
36
+ }
14
37
  const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
15
38
  const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
16
39
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
@@ -46,24 +69,24 @@ function formatError(format, value) {
46
69
  // schema commits to (mirrors the renderer's inline check).
47
70
  function validateJson(model, value, path, ctx) {
48
71
  if (model.jsonType === 'object' && !isRecord(value)) {
49
- ctx.errors[path] = 'must be a JSON object';
72
+ shapeError(ctx, path, 'must be a JSON object');
50
73
  }
51
74
  else if (model.jsonType === 'array' && !Array.isArray(value)) {
52
- ctx.errors[path] = 'must be a JSON array';
75
+ shapeError(ctx, path, 'must be a JSON array');
53
76
  }
54
77
  }
55
78
  function validateConst(model, value, path, ctx) {
56
79
  if (value !== model.value)
57
- ctx.errors[path] = `must equal ${scalarLabel(model.value)}`;
80
+ shapeError(ctx, path, `must equal ${scalarLabel(model.value)}`);
58
81
  }
59
82
  function validateEnum(model, value, path, ctx) {
60
83
  const allowed = model.options.some((option) => option.value === value);
61
84
  if (!allowed)
62
- ctx.errors[path] = 'must be one of the allowed values';
85
+ shapeError(ctx, path, 'must be one of the allowed values');
63
86
  }
64
87
  function validateString(model, value, path, ctx) {
65
88
  if (typeof value !== 'string') {
66
- ctx.errors[path] = 'must be a string';
89
+ shapeError(ctx, path, 'must be a string');
67
90
  return;
68
91
  }
69
92
  // A media-annotated string carries a byte cap; enforce it on the value's
@@ -74,23 +97,23 @@ function validateString(model, value, path, ctx) {
74
97
  const cap = effectiveMaxBytes(model.media.maxBytes, ctx.maxUploadBytes);
75
98
  const size = decodedByteSize(value);
76
99
  if (size > cap) {
77
- ctx.errors[path] = overCapMessage('The value', size, cap);
100
+ shapeError(ctx, path, overCapMessage('The value', size, cap));
78
101
  return;
79
102
  }
80
103
  }
81
104
  if (value.length > 0 && model.format !== undefined) {
82
105
  const message = formatError(model.format, value);
83
106
  if (message !== undefined) {
84
- ctx.errors[path] = message;
107
+ shapeError(ctx, path, message);
85
108
  return;
86
109
  }
87
110
  }
88
- // Date bounds and unavailable days (scope C). Range span/ordering needs the sibling
111
+ // Date bounds and unavailable days. Range span/ordering needs the sibling
89
112
  // start field, so it is enforced at the object level (see validateDateRanges).
90
113
  if (model.date !== undefined && value.length > 0) {
91
114
  const message = dateConstraintError(model.date, value);
92
115
  if (message !== undefined)
93
- ctx.errors[path] = message;
116
+ shapeError(ctx, path, message);
94
117
  }
95
118
  }
96
119
  /** The inclusive bound/unavailable-day violation on a date value, or `undefined`. */
@@ -110,19 +133,19 @@ function dateConstraintError(date, value) {
110
133
  }
111
134
  function validateNumber(model, value, path, ctx) {
112
135
  if (typeof value !== 'number' || Number.isNaN(value)) {
113
- ctx.errors[path] = model.integer ? 'must be an integer' : 'must be a number';
136
+ shapeError(ctx, path, model.integer ? 'must be an integer' : 'must be a number');
114
137
  return;
115
138
  }
116
139
  if (model.integer && !Number.isInteger(value))
117
- ctx.errors[path] = 'must be an integer';
140
+ shapeError(ctx, path, 'must be an integer');
118
141
  }
119
142
  function validateBoolean(value, path, ctx) {
120
143
  if (typeof value !== 'boolean')
121
- ctx.errors[path] = 'must be true or false';
144
+ shapeError(ctx, path, 'must be true or false');
122
145
  }
123
146
  function validateArray(model, value, path, ctx) {
124
147
  if (!Array.isArray(value)) {
125
- ctx.errors[path] = 'must be an array';
148
+ shapeError(ctx, path, 'must be an array');
126
149
  return;
127
150
  }
128
151
  value.forEach((item, index) => {
@@ -131,40 +154,44 @@ function validateArray(model, value, path, ctx) {
131
154
  }
132
155
  function validateObject(model, value, path, ctx) {
133
156
  if (!isRecord(value)) {
134
- ctx.errors[path] = 'must be an object';
157
+ shapeError(ctx, path, 'must be an object');
135
158
  return;
136
159
  }
137
160
  const propMap = new Map(model.properties);
138
161
  for (const [name, propSchema] of model.properties) {
139
- // A field hidden by its `visibleWhen` predicate (scope B) is not part of the answer:
162
+ // A field hidden by its `visibleWhen` predicate is not part of the answer:
140
163
  // it is not required and not validated, and a value left on it is dropped by the
141
164
  // server, not an error here. Evaluated on the current values, so a field that was
142
165
  // hidden by the predicate is skipped even if it still carries a stale value.
143
166
  if (!isFieldVisible(propSchema, value))
144
167
  continue;
145
168
  const childPath = joinPath(path, name);
146
- const childValue = value[name];
169
+ const childValue = ownValue(value, name);
147
170
  if (childValue === undefined) {
148
171
  if (model.required.has(name))
149
- ctx.errors[childPath] = `"${name}" is required`;
172
+ markRequired(childPath, name, ctx);
150
173
  continue;
151
174
  }
152
- walk(propSchema, childValue, childPath, ctx);
175
+ walk(propSchema, childValue, childPath, childCtx(ctx, path, name));
153
176
  }
154
177
  // Required keys naming a property that somehow isn't declared still count.
155
178
  for (const name of model.required) {
156
- if (!propMap.has(name) && value[name] === undefined) {
157
- ctx.errors[joinPath(path, name)] = `"${name}" is required`;
179
+ if (!propMap.has(name) && ownValue(value, name) === undefined) {
180
+ markRequired(joinPath(path, name), name, ctx);
158
181
  }
159
182
  }
160
183
  validateDateRanges(model, value, path, ctx);
161
184
  }
185
+ /** Record a missing required value at `path`, the one error a field's words never replace. */
186
+ function markRequired(path, name, ctx) {
187
+ keptError(ctx, path, `"${name}" is required`);
188
+ }
162
189
  /** Days from `start` to `end` inclusive (both `YYYY-MM-DD`); 1 when they are equal. */
163
190
  function inclusiveDayCount(start, end) {
164
191
  return Math.round((Date.parse(end) - Date.parse(start)) / 86_400_000) + 1;
165
192
  }
166
193
  /**
167
- * Enforce a date RANGE declared on an END field (scope C): the end is on or after its
194
+ * Enforce a date RANGE declared on an END field: the end is on or after its
168
195
  * named `rangeStart` field, and the inclusive day span is within `minDays`/`maxDays`.
169
196
  * Read from the two plain date values — nothing recombined. A missing or not-yet-valid
170
197
  * endpoint is left to that field's own validation; a hidden end field is skipped.
@@ -176,8 +203,8 @@ function validateDateRanges(model, value, path, ctx) {
176
203
  const resolved = resolveRef(propSchema, ctx.root);
177
204
  if (typeof resolved.rangeStart !== 'string')
178
205
  continue;
179
- const endValue = value[name];
180
- const startValue = value[resolved.rangeStart];
206
+ const endValue = ownValue(value, name);
207
+ const startValue = ownValue(value, resolved.rangeStart);
181
208
  if (typeof endValue !== 'string' || typeof startValue !== 'string')
182
209
  continue;
183
210
  if (!DATE_RE.test(endValue) || !DATE_RE.test(startValue))
@@ -187,7 +214,7 @@ function validateDateRanges(model, value, path, ctx) {
187
214
  continue;
188
215
  const message = dateRangeMessage(resolved, startValue, endValue);
189
216
  if (message !== undefined)
190
- ctx.errors[childPath] = message;
217
+ shapeError(childCtx(ctx, path, name), childPath, message);
191
218
  }
192
219
  }
193
220
  /** The ordering/span violation on a range END field, or `undefined` when it holds. */
@@ -205,19 +232,19 @@ function dateRangeMessage(resolved, startValue, endValue) {
205
232
  }
206
233
  function validateMultiselect(model, value, path, ctx) {
207
234
  if (!Array.isArray(value)) {
208
- ctx.errors[path] = 'must be an array';
235
+ shapeError(ctx, path, 'must be an array');
209
236
  return;
210
237
  }
211
238
  const allowed = new Set(model.options.map((option) => option.value));
212
239
  for (const item of value) {
213
240
  if (!allowed.has(item)) {
214
- ctx.errors[path] = 'must be one of the allowed values';
241
+ shapeError(ctx, path, 'must be one of the allowed values');
215
242
  return;
216
243
  }
217
244
  }
218
245
  }
219
246
  /**
220
- * The JSON-Schema value/length/items bounds the client mirrors from the server (bug 4):
247
+ * The JSON-Schema value/length/items bounds the client mirrors from the server:
221
248
  * `minLength`/`maxLength`/`pattern` on a string, `minimum`/`maximum` on a number,
222
249
  * `minItems`/`maxItems` on an array. Applied only when the kind check found no type
223
250
  * error. A `pattern` that cannot compile surfaces as a loud field error, never a silent
@@ -234,11 +261,11 @@ function applyBounds(schema, value, path, ctx) {
234
261
  function applyStringBounds(schema, value, path, ctx) {
235
262
  const length = Array.from(value).length;
236
263
  if (typeof schema.minLength === 'number' && length < schema.minLength) {
237
- ctx.errors[path] = `must be at least ${String(schema.minLength)} character(s)`;
264
+ shapeError(ctx, path, `must be at least ${String(schema.minLength)} character(s)`);
238
265
  return;
239
266
  }
240
267
  if (typeof schema.maxLength === 'number' && length > schema.maxLength) {
241
- ctx.errors[path] = `must be at most ${String(schema.maxLength)} character(s)`;
268
+ shapeError(ctx, path, `must be at most ${String(schema.maxLength)} character(s)`);
242
269
  return;
243
270
  }
244
271
  if (typeof schema.pattern !== 'string' || schema.pattern === '')
@@ -248,44 +275,44 @@ function applyStringBounds(schema, value, path, ctx) {
248
275
  pattern = new RegExp(schema.pattern);
249
276
  }
250
277
  catch {
251
- ctx.errors[path] = 'has an invalid pattern constraint';
278
+ keptError(ctx, path, 'has an invalid pattern constraint');
252
279
  return;
253
280
  }
254
281
  if (!pattern.test(value))
255
- ctx.errors[path] = 'must match the required pattern';
282
+ shapeError(ctx, path, 'must match the required pattern');
256
283
  }
257
284
  function applyNumberBounds(schema, value, path, ctx) {
258
285
  if (typeof schema.minimum === 'number' && value < schema.minimum) {
259
- ctx.errors[path] = `must be at least ${String(schema.minimum)}`;
286
+ shapeError(ctx, path, `must be at least ${String(schema.minimum)}`);
260
287
  return;
261
288
  }
262
289
  if (typeof schema.maximum === 'number' && value > schema.maximum) {
263
- ctx.errors[path] = `must be at most ${String(schema.maximum)}`;
290
+ shapeError(ctx, path, `must be at most ${String(schema.maximum)}`);
264
291
  }
265
292
  }
266
293
  function applyArrayBounds(schema, value, path, ctx) {
267
294
  if (typeof schema.minItems === 'number' && value.length < schema.minItems) {
268
- ctx.errors[path] = `must have at least ${String(schema.minItems)} item(s)`;
295
+ shapeError(ctx, path, `must have at least ${String(schema.minItems)} item(s)`);
269
296
  return;
270
297
  }
271
298
  if (typeof schema.maxItems === 'number' && value.length > schema.maxItems) {
272
- ctx.errors[path] = `must have at most ${String(schema.maxItems)} item(s)`;
299
+ shapeError(ctx, path, `must have at most ${String(schema.maxItems)} item(s)`);
273
300
  }
274
301
  }
275
302
  function validateRecord(model, value, path, ctx) {
276
303
  if (!isRecord(value)) {
277
- ctx.errors[path] = 'must be an object';
304
+ shapeError(ctx, path, 'must be an object');
278
305
  return;
279
306
  }
280
307
  for (const [key, entryValue] of Object.entries(value)) {
281
- walk(model.values, entryValue, joinPath(path, key), ctx);
308
+ walk(model.values, entryValue, joinPath(path, key), childCtx(ctx, path, key));
282
309
  }
283
310
  }
284
311
  function validateUnion(model, value, path, ctx) {
285
312
  const index = activeVariantIndex(value, model.variants, model.discriminator, ctx.root);
286
313
  const variant = index === -1 ? undefined : model.variants[index];
287
314
  if (variant === undefined) {
288
- ctx.errors[path] = 'does not match any allowed variant';
315
+ shapeError(ctx, path, 'does not match any allowed variant');
289
316
  return;
290
317
  }
291
318
  walk(variant.schema, value, path, ctx);
@@ -294,11 +321,11 @@ function walk(schema, value, path, ctx) {
294
321
  const classified = classifySchema(schema, ctx.root);
295
322
  if (value === null) {
296
323
  if (!classified.nullable)
297
- ctx.errors[path] = 'must not be null';
324
+ shapeError(ctx, path, 'must not be null');
298
325
  return;
299
326
  }
300
327
  dispatchKind(classified.model, value, path, ctx);
301
- // The value/length/items bounds (bug 4) mirror the server and apply only when the kind
328
+ // The value/length/items bounds mirror the server and apply only when the kind
302
329
  // check found no type error for this field — a bound on a wrong-typed value is noise.
303
330
  if (ctx.errors[path] === undefined)
304
331
  applyBounds(classified.schema, value, path, ctx);
@@ -340,15 +367,42 @@ function dispatchKind(model, value, path, ctx) {
340
367
  return;
341
368
  }
342
369
  }
370
+ /**
371
+ * Replace each shape error inside a root property whose words carry an `invalid`
372
+ * sentence with that sentence; every other error keeps its own message.
373
+ */
374
+ function applyFieldWording(fieldWording, errors, shapeErrorFields) {
375
+ for (const [path, field] of shapeErrorFields) {
376
+ if (!Object.hasOwn(fieldWording, field))
377
+ continue;
378
+ const invalid = fieldWording[field]?.invalid;
379
+ if (invalid !== undefined)
380
+ errors[path] = invalid;
381
+ }
382
+ }
343
383
  /**
344
384
  * Validate `value` against `schema`, returning a per-path error bag (empty =
345
385
  * valid). The caller runs this before submit and feeds the result back to
346
386
  * `SchemaForm` for display. `options.maxUploadBytes` mirrors the renderer's
347
- * `maxUploadBytes` prop so a media field's byte cap is enforced identically here.
387
+ * `maxUploadBytes` prop so a media field's byte cap is enforced identically here;
388
+ * `options.fieldWording` puts a field's own `invalid` sentence in place of the
389
+ * SDK's word for any shape error on that field.
348
390
  */
349
391
  export function validateAgainstSchema(schema, value, options) {
350
- const errors = {};
351
- walk(schema, value, '', { root: schema, errors, maxUploadBytes: options?.maxUploadBytes });
352
- return errors;
392
+ const errors = Object.create(null);
393
+ const shapeErrorFields = new Map();
394
+ walk(schema, value, '', {
395
+ root: schema,
396
+ errors,
397
+ maxUploadBytes: options?.maxUploadBytes,
398
+ field: undefined,
399
+ shapeErrorFields,
400
+ });
401
+ if (options?.fieldWording !== undefined) {
402
+ applyFieldWording(options.fieldWording, errors, shapeErrorFields);
403
+ }
404
+ // Hand back an ordinary object; its entries are defined as own keys, so a path such as
405
+ // `__proto__` stays an entry of the result.
406
+ return Object.fromEntries(Object.entries(errors));
353
407
  }
354
408
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/schema-form/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/schema-form/validate.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,3 @@
1
- /**
2
- * The single evaluator for a property's `visibleWhen` predicate — a static,
3
- * declarative field-visibility rule (scope B). The renderer (`ObjectFields`) and the
4
- * validator both call it so a field shown by the form is exactly the field validated at
5
- * submit, and a hidden field is neither rendered nor required. It reads only sibling
6
- * values already in the object; it never calls a consumer handler (that is scope A).
7
- *
8
- * A malformed predicate degrades to VISIBLE: the send-time server validation rejects a
9
- * malformed predicate loudly, so one never reaches a well-formed render, and showing a
10
- * field is the safe non-hiding default (a hidden-by-accident required field would dead-
11
- * end a form).
12
- */
13
1
  import type { JsonSchema } from './types';
14
2
  /**
15
3
  * Whether a property carrying `schema.visibleWhen` is visible against the current
@@ -1 +1 @@
1
- {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../src/schema-form/visibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAc1C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAc3F"}
1
+ {"version":3,"file":"visibility.d.ts","sourceRoot":"","sources":["../../src/schema-form/visibility.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAc1C;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAc3F"}
@@ -1,3 +1,16 @@
1
+ /**
2
+ * The single evaluator for a property's `visibleWhen` predicate — a static,
3
+ * declarative field-visibility rule. The renderer (`ObjectFields`) and the
4
+ * validator both call it so a field shown by the form is exactly the field validated at
5
+ * submit, and a hidden field is neither rendered nor required. It reads only sibling
6
+ * values already in the object; it never calls a consumer handler.
7
+ *
8
+ * A malformed predicate degrades to VISIBLE: the send-time server validation rejects a
9
+ * malformed predicate loudly, so one never reaches a well-formed render, and showing a
10
+ * field is the safe non-hiding default (a hidden-by-accident required field would dead-
11
+ * end a form).
12
+ */
13
+ import { ownValue } from '../guards';
1
14
  function isRecord(value) {
2
15
  return typeof value === 'object' && value !== null && !Array.isArray(value);
3
16
  }
@@ -21,7 +34,7 @@ export function isFieldVisible(schema, values) {
21
34
  const predicate = schema.visibleWhen;
22
35
  if (!isRecord(predicate) || typeof predicate.field !== 'string')
23
36
  return true;
24
- const current = values[predicate.field];
37
+ const current = ownValue(values, predicate.field);
25
38
  const inList = predicate.in;
26
39
  const hasEquals = 'equals' in predicate;
27
40
  const hasIn = Array.isArray(inList);
@@ -1 +1 @@
1
- {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../src/schema-form/visibility.ts"],"names":[],"mappings":"AAcA,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,6FAA6F;AAC7F,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,MAA+B;IAChF,MAAM,SAAS,GAAY,MAAM,CAAC,WAAW,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,QAAQ,IAAI,SAAS,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChD,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/E,IAAI,SAAS;QAAE,OAAO,OAAO,KAAK,SAAS,CAAC,MAAM,CAAC;IACnD,IAAI,KAAK;QAAE,OAAQ,MAA6B,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;IAC5F,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"visibility.js","sourceRoot":"","sources":["../../src/schema-form/visibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,6FAA6F;AAC7F,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,MAAkB,EAAE,MAA+B;IAChF,MAAM,SAAS,GAAY,MAAM,CAAC,WAAW,CAAC;IAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,QAAQ,IAAI,SAAS,CAAC;IACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC;IAChD,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/E,IAAI,SAAS;QAAE,OAAO,OAAO,KAAK,SAAS,CAAC,MAAM,CAAC;IACnD,IAAI,KAAK;QAAE,OAAQ,MAA6B,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;IAC5F,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tai42/studio-sdk",
3
- "version": "22.2.0",
3
+ "version": "22.4.0",
4
4
  "description": "The Studio plugin contract, shared UI components, and hooks that every feature builds on.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "tai42 <oss@tai42.ai>",
@@ -96,7 +96,7 @@
96
96
  "@radix-ui/react-select": "^2.3.8",
97
97
  "@radix-ui/react-tabs": "^1.1.22",
98
98
  "@radix-ui/react-tooltip": "^1.3.0",
99
- "@tai42/api-client": "22.2.0"
99
+ "@tai42/api-client": "22.4.0"
100
100
  },
101
101
  "scripts": {
102
102
  "build": "tsc -b tsconfig.build.json && node scripts/copy-assets.mjs",
package/src/guards.ts CHANGED
@@ -5,3 +5,15 @@
5
5
  export function isRecord(value: unknown): value is Record<string, unknown> {
6
6
  return typeof value === 'object' && value !== null && !Array.isArray(value);
7
7
  }
8
+
9
+ /**
10
+ * `record[key]` when `key` is one of the record's own keys, else `undefined`. A key
11
+ * that names a built-in object member (`toString`, `constructor`, `__proto__`) reads
12
+ * only the record's own entry, never the inherited member.
13
+ */
14
+ export function ownValue<T>(
15
+ record: Readonly<Record<string, T>> | undefined,
16
+ key: string,
17
+ ): T | undefined {
18
+ return record !== undefined && Object.hasOwn(record, key) ? record[key] : undefined;
19
+ }
@@ -100,9 +100,11 @@ export interface SchemaFormProps {
100
100
  * name. A top-level `enum` field that draws as a select shows its entry's
101
101
  * `choiceLabel` as the select placeholder (in place of the default `Select…`);
102
102
  * other controls and nested fields are unaffected. A field with no entry draws
103
- * its own default.
103
+ * its own default. The entry's `invalid` sentence is not read here: pass the same
104
+ * record to `validateAgainstSchema` as `fieldWording`, and the errors it returns
105
+ * carry that sentence.
104
106
  */
105
- readonly fieldWording?: Readonly<Record<string, { choiceLabel?: string }>>;
107
+ readonly fieldWording?: Readonly<Record<string, { choiceLabel?: string; invalid?: string }>>;
106
108
  }
107
109
 
108
110
  /**