@tai42/studio-sdk 6.1.1 → 7.0.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.
- package/dist/components/completion-input.d.ts.map +1 -1
- package/dist/components/completion-input.js +19 -2
- package/dist/components/completion-input.js.map +1 -1
- package/dist/components/components.css +4 -3
- package/dist/components/explorer-view.d.ts.map +1 -1
- package/dist/components/explorer-view.js +11 -22
- package/dist/components/explorer-view.js.map +1 -1
- package/dist/components/field.d.ts +14 -1
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +5 -2
- package/dist/components/field.js.map +1 -1
- package/dist/components/open-target.d.ts +68 -0
- package/dist/components/open-target.d.ts.map +1 -0
- package/dist/components/open-target.js +48 -0
- package/dist/components/open-target.js.map +1 -0
- package/dist/expression/ExpressionField.d.ts +140 -0
- package/dist/expression/ExpressionField.d.ts.map +1 -0
- package/dist/expression/ExpressionField.js +88 -0
- package/dist/expression/ExpressionField.js.map +1 -0
- package/dist/expression/context.d.ts +50 -0
- package/dist/expression/context.d.ts.map +1 -0
- package/dist/expression/context.js +53 -0
- package/dist/expression/context.js.map +1 -0
- package/dist/expression/types.d.ts +157 -0
- package/dist/expression/types.d.ts.map +1 -0
- package/dist/expression/types.js +11 -0
- package/dist/expression/types.js.map +1 -0
- package/dist/hooks/useApi.d.ts +8 -0
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/plugin/registry.d.ts.map +1 -1
- package/dist/plugin/registry.js +39 -1
- package/dist/plugin/registry.js.map +1 -1
- package/dist/plugin/types.d.ts +31 -0
- package/dist/plugin/types.d.ts.map +1 -1
- package/dist/schema-editor/SchemaEditor.d.ts.map +1 -1
- package/dist/schema-editor/SchemaEditor.js +8 -4
- package/dist/schema-editor/SchemaEditor.js.map +1 -1
- package/dist/schema-form/classify.d.ts +5 -3
- package/dist/schema-form/classify.d.ts.map +1 -1
- package/dist/schema-form/classify.js +42 -16
- package/dist/schema-form/classify.js.map +1 -1
- package/dist/schema-form/default-value.d.ts.map +1 -1
- package/dist/schema-form/default-value.js +4 -1
- package/dist/schema-form/default-value.js.map +1 -1
- package/dist/schema-form/field-node.d.ts.map +1 -1
- package/dist/schema-form/field-node.js +3 -3
- package/dist/schema-form/field-node.js.map +1 -1
- package/dist/schema-form/json-field.d.ts +14 -0
- package/dist/schema-form/json-field.d.ts.map +1 -0
- package/dist/schema-form/json-field.js +104 -0
- package/dist/schema-form/json-field.js.map +1 -0
- package/dist/schema-form/types.d.ts +2 -2
- package/dist/schema-form/types.js +2 -2
- package/dist/schema-form/validate.d.ts.map +1 -1
- package/dist/schema-form/validate.js +11 -4
- package/dist/schema-form/validate.js.map +1 -1
- package/package.json +2 -2
- package/src/components/completion-input.tsx +19 -2
- package/src/components/components.css +4 -3
- package/src/components/explorer-view.tsx +16 -27
- package/src/components/field.tsx +20 -2
- package/src/components/open-target.ts +121 -0
- package/src/expression/ExpressionField.tsx +330 -0
- package/src/expression/context.tsx +83 -0
- package/src/expression/types.ts +164 -0
- package/src/index.ts +26 -0
- package/src/plugin/registry.ts +50 -1
- package/src/plugin/types.ts +32 -0
- package/src/schema-editor/SchemaEditor.tsx +8 -4
- package/src/schema-form/classify.ts +103 -18
- package/src/schema-form/default-value.ts +4 -1
- package/src/schema-form/field-node.tsx +7 -4
- package/src/schema-form/json-field.tsx +143 -0
- package/src/schema-form/types.ts +2 -2
- package/src/schema-form/validate.ts +10 -4
- package/dist/schema-form/unsupported-notice.d.ts +0 -18
- package/dist/schema-form/unsupported-notice.d.ts.map +0 -1
- package/dist/schema-form/unsupported-notice.js +0 -8
- package/dist/schema-form/unsupported-notice.js.map +0 -1
- package/src/schema-form/unsupported-notice.tsx +0 -39
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugin/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugin/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin/types.d.ts
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
* (a) and (b) still bind it.
|
|
22
22
|
*/
|
|
23
23
|
import type { ComponentType } from 'react';
|
|
24
|
+
import type { ExpressionEditorContribution } from '../expression/types';
|
|
24
25
|
/**
|
|
25
26
|
* A capability requirement a contribution may declare. `routes` is a list of
|
|
26
27
|
* route-path prefixes (anyOf semantics, the same evaluator the shell nav uses):
|
|
@@ -178,6 +179,19 @@ export interface PluginContributions {
|
|
|
178
179
|
readonly pages: readonly RegisteredPage[];
|
|
179
180
|
readonly settingsTabs: readonly RegisteredSettingsTab[];
|
|
180
181
|
readonly navEntries: readonly RegisteredNavEntry[];
|
|
182
|
+
/**
|
|
183
|
+
* The contributed expression editors, keyed by {@link ExpressionLanguage}. A
|
|
184
|
+
* language maps to at MOST one editor across the whole deployment — the registry
|
|
185
|
+
* rejects a second contribution for a language it already holds — so a field
|
|
186
|
+
* resolves its editor by language with no ambiguity. The shell reads this map and
|
|
187
|
+
* feeds it to `ExpressionEditorsProvider`; the plugin surface reaches it only
|
|
188
|
+
* through `useExpressionEditor`, never by enumerating this map.
|
|
189
|
+
*
|
|
190
|
+
* Optional in the TYPE (this host always provides it): a contributions object
|
|
191
|
+
* built against the pre-expression shape — an older host, a test double —
|
|
192
|
+
* remains a valid `PluginContributions`. Readers fall back to an empty map.
|
|
193
|
+
*/
|
|
194
|
+
readonly expressionEditors?: ReadonlyMap<string, ExpressionEditorContribution>;
|
|
181
195
|
}
|
|
182
196
|
/**
|
|
183
197
|
* The registration surface a plugin receives in its `register(context)` entry.
|
|
@@ -202,6 +216,23 @@ export interface PluginContext {
|
|
|
202
216
|
* registers (a nav entry with no page is a dead link and is rejected loudly).
|
|
203
217
|
*/
|
|
204
218
|
registerNavEntry(contribution: NavEntryContribution): void;
|
|
219
|
+
/**
|
|
220
|
+
* Register the visual editor for one {@link ExpressionLanguage}, which every
|
|
221
|
+
* `ExpressionField` authoring that language then offers. A language is a GLOBAL
|
|
222
|
+
* key — at most one editor across the deployment — so a second contribution for a
|
|
223
|
+
* language already registered (by this plugin or another) is rejected loudly, as
|
|
224
|
+
* a duplicate tool panel is. A contribution whose `contractVersion` is not the
|
|
225
|
+
* host's {@link EXPRESSION_EDITOR_CONTRACT_VERSION} is likewise rejected loudly
|
|
226
|
+
* during registration — never silently skipped — so an editor built against an
|
|
227
|
+
* incompatible props contract is a visible per-plugin error, not a blank field.
|
|
228
|
+
*
|
|
229
|
+
* This method is OPTIONAL/ADDITIVE — optional in the TYPE too, so a plugin
|
|
230
|
+
* written against this SDK still typechecks against an older host context and
|
|
231
|
+
* a test double of the pre-expression context stays a valid `PluginContext`.
|
|
232
|
+
* Plugins feature-detect (`typeof context.registerExpressionEditor ===
|
|
233
|
+
* 'function'`) and no-op gracefully on hosts that predate the extension point.
|
|
234
|
+
*/
|
|
235
|
+
registerExpressionEditor?(contribution: ExpressionEditorContribution): void;
|
|
205
236
|
}
|
|
206
237
|
/**
|
|
207
238
|
* A plugin bundle's entry: the default plugin API. The host imports the bundle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugin/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/plugin/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaEditor.d.ts","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYrE,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxD,qFAAqF;IACrF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"SchemaEditor.d.ts","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAYrE,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxD,qFAAqF;IACrF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAsFD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,KAAgB,EAChB,WAAW,EACX,QAAQ,EACR,QAA0B,GAC3B,EAAE,iBAAiB,GAAG,SAAS,CA2C/B"}
|
|
@@ -33,13 +33,17 @@ function seedText(value) {
|
|
|
33
33
|
return value === null ? '' : JSON.stringify(value, null, 2);
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
* Whether {@link SchemaForm} can render this schema's root
|
|
37
|
-
* concrete field kind rather than
|
|
38
|
-
*
|
|
36
|
+
* Whether {@link SchemaForm} can render this schema's root as a STRUCTURED form —
|
|
37
|
+
* i.e. it classifies to a concrete field kind rather than the free-form `json`
|
|
38
|
+
* fallback. A schema whose root has no structure to preview (a property-less
|
|
39
|
+
* object, an open/`allOf`/multi-type shape), or whose classification throws on a
|
|
40
|
+
* bad `$ref`, previews as a `JsonTree` of the schema dict instead. (Inside a live
|
|
41
|
+
* form such a node still renders the JSON editor; here, previewing a shapeless
|
|
42
|
+
* root as its own schema tree is the more legible affordance.)
|
|
39
43
|
*/
|
|
40
44
|
function canRenderWithForm(schema) {
|
|
41
45
|
try {
|
|
42
|
-
return classifySchema(schema, schema).model.kind !== '
|
|
46
|
+
return classifySchema(schema, schema).model.kind !== 'json';
|
|
43
47
|
}
|
|
44
48
|
catch {
|
|
45
49
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaEditor.js","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAuBxC,SAAS,QAAQ,CAAC,KAAqC;IACrD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"SchemaEditor.js","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAErE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAuBxC,SAAS,QAAQ,CAAC,KAAqC;IACrD,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,MAAkB;IAC3C,IAAI,CAAC;QACH,OAAO,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,EAAE,MAAM,EAAmC;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAU,GAAG,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,OAAO,KAAC,UAAU,IAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAC,gBAAgB,GAAG,CAAC;AACpG,CAAC;AAED;;;;GAIG;AACH,MAAM,eAAgB,SAAQ,SAG7B;IACU,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACnC,MAAM,CAAC,wBAAwB,CAAC,MAAe;QAC7C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IACQ,MAAM;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IACvE,CAAC;CACF;AAED,sFAAsF;AACtF,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CAAC,EACrB,MAAM,EACN,MAAM,GAIP;IACC,MAAM,YAAY,GAAG,CACnB,cAAK,SAAS,EAAC,UAAU,iBAAc,MAAM,YAC3C,KAAC,QAAQ,IAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAI,GAC5C,CACP,CAAC;IACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IACpD,OAAO,CACL,KAAC,eAAe,IAAC,QAAQ,EAAE,YAAY,YACrC,KAAC,YAAY,IAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAC,UAAU,iBAAc,MAAM,YAC1E,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,GAAI,GAClB,GACC,CACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,GAAG,QAAQ,EAChB,WAAW,EACX,QAAQ,EACR,QAAQ,GAAG,eAAe,GACR;IAClB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAEhE,8EAA8E;IAC9E,8EAA8E;IAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAEvF,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAQ,EAAE;QACtC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC;IAEF,OAAO,CACL,8BAAkB,QAAQ,EAAE,SAAS,EAAC,uBAAuB,aAC3D,KAAC,KAAK,IAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,YAChE,KAAC,QAAQ,IACP,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wBAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC3B,CAAC,EACD,IAAI,EAAE,EAAE,gBACI,GAAG,KAAK,OAAO,EAC3B,SAAS,EAAC,mBAAmB,EAC7B,UAAU,EAAE,KAAK,GACjB,GACI,EAEP,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CACxB,eAAK,SAAS,EAAC,uBAAuB,aACpC,eAAM,SAAS,EAAC,WAAW,wBAAe,EAC1C,KAAC,aAAa;oBACZ,kEAAkE;oBAClE,2BAA2B;wBAE3B,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,MAAM,EAAE,GAAG,QAAQ,UAAU,IAFxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAGlC,IACE,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* renderer and the validator classify through here so a construct is treated
|
|
4
4
|
* identically everywhere. Classification resolves `$ref`, normalizes `anyOf`/
|
|
5
5
|
* `oneOf` (null-union → nullable single field; multi-member → variant selector),
|
|
6
|
-
* and lands every
|
|
7
|
-
* a field is never silently dropped
|
|
6
|
+
* and lands every shape it has no structured editor for on the explicit `json`
|
|
7
|
+
* kind (a free-form JSON textarea) — a field is never silently dropped, and a
|
|
8
|
+
* shapeless one is edited as the JSON it is rather than dead-ending on a badge.
|
|
8
9
|
*/
|
|
9
10
|
import { type EnumOption } from './resolve';
|
|
10
11
|
import type { JsonSchema } from './types';
|
|
@@ -68,7 +69,8 @@ export type FieldModel = {
|
|
|
68
69
|
readonly variants: readonly UnionVariant[];
|
|
69
70
|
readonly discriminator: string | undefined;
|
|
70
71
|
} | {
|
|
71
|
-
readonly kind: '
|
|
72
|
+
readonly kind: 'json';
|
|
73
|
+
readonly jsonType: 'object' | 'array' | 'any';
|
|
72
74
|
readonly reason: string;
|
|
73
75
|
};
|
|
74
76
|
/** A fully classified field: its model plus resolved metadata. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/schema-form/classify.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/schema-form/classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAQL,KAAK,UAAU,EAChB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B;AAED,2DAA2D;AAC3D,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;CAAE,GAClE;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;CACzC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACtD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;IAChE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACxC,GACD;IAKE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C,GACD;IAQE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEN,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAgDD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,CA8PjF"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* renderer and the validator classify through here so a construct is treated
|
|
4
4
|
* identically everywhere. Classification resolves `$ref`, normalizes `anyOf`/
|
|
5
5
|
* `oneOf` (null-union → nullable single field; multi-member → variant selector),
|
|
6
|
-
* and lands every
|
|
7
|
-
* a field is never silently dropped
|
|
6
|
+
* and lands every shape it has no structured editor for on the explicit `json`
|
|
7
|
+
* kind (a free-form JSON textarea) — a field is never silently dropped, and a
|
|
8
|
+
* shapeless one is edited as the JSON it is rather than dead-ending on a badge.
|
|
8
9
|
*/
|
|
9
10
|
import { isNullSchema, resolveRef, scalarLabel, typeList, unionMembers, variantLabel, variantTag, } from './resolve';
|
|
10
11
|
function firstString(...values) {
|
|
@@ -32,8 +33,15 @@ function mediaUpload(schema) {
|
|
|
32
33
|
}
|
|
33
34
|
return undefined;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Land a shape the form has no structured editor for on the free-form JSON
|
|
38
|
+
* fallback (a mono JSON textarea) rather than a dead badge — a field is never
|
|
39
|
+
* silently dropped, and "any JSON" is the honest affordance for a shapeless one.
|
|
40
|
+
* `jsonType` is the container a valid buffer must parse to; `nullable` carries
|
|
41
|
+
* through so a nullable shape still accepts JSON `null`.
|
|
42
|
+
*/
|
|
43
|
+
function jsonFallback(schema, jsonType, reason, title, description, nullable = false) {
|
|
44
|
+
return { model: { kind: 'json', jsonType, reason }, nullable, schema, title, description };
|
|
37
45
|
}
|
|
38
46
|
/**
|
|
39
47
|
* Classify a schema node (resolving `$ref` first). `wrapper` metadata (a
|
|
@@ -44,11 +52,14 @@ export function classifySchema(raw, root) {
|
|
|
44
52
|
const resolved = resolveRef(raw, root);
|
|
45
53
|
const title = firstString(raw.title, resolved.title);
|
|
46
54
|
const description = firstString(raw.description, resolved.description);
|
|
47
|
-
// const pins a single value.
|
|
55
|
+
// const pins a single value. Null-acceptance is fully decidable here: the one
|
|
56
|
+
// permitted value either IS null or it is not. Without this, a `const: null`
|
|
57
|
+
// field would seed to null and then fail the validator's upstream "must not be
|
|
58
|
+
// null" gate before the equality check ever ran — permanently invalid.
|
|
48
59
|
if ('const' in resolved) {
|
|
49
60
|
return {
|
|
50
61
|
model: { kind: 'const', value: resolved.const },
|
|
51
|
-
nullable:
|
|
62
|
+
nullable: resolved.const === null,
|
|
52
63
|
schema: resolved,
|
|
53
64
|
title,
|
|
54
65
|
description,
|
|
@@ -70,7 +81,9 @@ export function classifySchema(raw, root) {
|
|
|
70
81
|
const nullable = nonNull.length !== members.length;
|
|
71
82
|
const soleNonNull = nonNull[0];
|
|
72
83
|
if (soleNonNull === undefined) {
|
|
73
|
-
|
|
84
|
+
// Every member is `null` — degenerate, but `null` is still valid, so edit
|
|
85
|
+
// it as JSON (nullable) rather than dead-ending on a badge.
|
|
86
|
+
return jsonFallback(resolved, 'any', 'union with no non-null members', title, description, true);
|
|
74
87
|
}
|
|
75
88
|
if (nonNull.length === 1) {
|
|
76
89
|
const inner = classifySchema(soleNonNull, root);
|
|
@@ -117,21 +130,31 @@ export function classifySchema(raw, root) {
|
|
|
117
130
|
description: description ?? inner.description,
|
|
118
131
|
};
|
|
119
132
|
}
|
|
120
|
-
|
|
133
|
+
// Whether the intersection accepts `null` is not statically decidable here
|
|
134
|
+
// (it does iff EVERY member does), and the json escape hatch only enforces
|
|
135
|
+
// what it KNOWS — so stay permissive like `jsonType: 'any'` itself and let
|
|
136
|
+
// the server-side contract be the authority, rather than rejecting a null
|
|
137
|
+
// the schema may well permit (e.g. an intersection of open schemas).
|
|
138
|
+
return jsonFallback(resolved, 'any', 'allOf intersection of multiple schemas', title, description, true);
|
|
121
139
|
}
|
|
122
140
|
// Type-driven classification.
|
|
123
141
|
const types = typeList(resolved);
|
|
124
142
|
const nonNullTypes = types.filter((type) => type !== 'null');
|
|
125
143
|
const nullableByType = nonNullTypes.length !== types.length;
|
|
126
144
|
if (nonNullTypes.length === 0) {
|
|
127
|
-
|
|
145
|
+
// No `type` at all (an open `{}` schema, or `type: "null"` alone) accepts any
|
|
146
|
+
// JSON — the classic "any" field. Edit it as free-form JSON. Nullable is
|
|
147
|
+
// always true here: `type: "null"` declares it, and an open schema with no
|
|
148
|
+
// type keyword permits null like any other value (`nullableByType` would say
|
|
149
|
+
// false for it only because there is no type list to find "null" in).
|
|
150
|
+
return jsonFallback(resolved, 'any', 'schema declares no renderable type', title, description, true);
|
|
128
151
|
}
|
|
129
152
|
if (nonNullTypes.length > 1) {
|
|
130
|
-
return
|
|
153
|
+
return jsonFallback(resolved, 'any', `multiple JSON types (${nonNullTypes.join(', ')}) without a discriminator`, title, description, nullableByType);
|
|
131
154
|
}
|
|
132
155
|
const type = nonNullTypes[0];
|
|
133
156
|
if (type === undefined) {
|
|
134
|
-
return
|
|
157
|
+
return jsonFallback(resolved, 'any', 'schema declares no renderable type', title, description, nullableByType);
|
|
135
158
|
}
|
|
136
159
|
switch (type) {
|
|
137
160
|
case 'string':
|
|
@@ -168,7 +191,9 @@ export function classifySchema(raw, root) {
|
|
|
168
191
|
};
|
|
169
192
|
case 'array': {
|
|
170
193
|
if (resolved.items === undefined) {
|
|
171
|
-
|
|
194
|
+
// A bare array with no item schema: no per-item editor to build, but the
|
|
195
|
+
// value is still a JSON array — edit it whole as free-form JSON.
|
|
196
|
+
return jsonFallback(resolved, 'array', 'array without an items schema', title, description, nullableByType);
|
|
172
197
|
}
|
|
173
198
|
return {
|
|
174
199
|
model: { kind: 'array', items: resolved.items },
|
|
@@ -182,8 +207,9 @@ export function classifySchema(raw, root) {
|
|
|
182
207
|
if (resolved.properties === undefined) {
|
|
183
208
|
// A free-form object typed by a VALUE SCHEMA (`additionalProperties` is a
|
|
184
209
|
// schema, not `false`/`true`/absent) is a string→X map — renderable as
|
|
185
|
-
// key/value rows. A boolean `additionalProperties` carries no value
|
|
186
|
-
// to build an entry editor from, so it
|
|
210
|
+
// key/value rows. A boolean/absent `additionalProperties` carries no value
|
|
211
|
+
// type to build an entry editor from, so it falls through to the free-form
|
|
212
|
+
// JSON editor (constrained to a JSON object).
|
|
187
213
|
// Read as `unknown`: the value is parsed JSON, where `additionalProperties:
|
|
188
214
|
// null` is possible and `typeof null === 'object'` would otherwise classify
|
|
189
215
|
// it as a record with a `null` value schema.
|
|
@@ -197,7 +223,7 @@ export function classifySchema(raw, root) {
|
|
|
197
223
|
description,
|
|
198
224
|
};
|
|
199
225
|
}
|
|
200
|
-
return
|
|
226
|
+
return jsonFallback(resolved, 'object', 'free-form object with no property schema', title, description, nullableByType);
|
|
201
227
|
}
|
|
202
228
|
const properties = Object.entries(resolved.properties);
|
|
203
229
|
const required = new Set(resolved.required ?? []);
|
|
@@ -210,7 +236,7 @@ export function classifySchema(raw, root) {
|
|
|
210
236
|
};
|
|
211
237
|
}
|
|
212
238
|
default:
|
|
213
|
-
return
|
|
239
|
+
return jsonFallback(resolved, 'any', `unrecognized type "${String(type)}"`, title, description, nullableByType);
|
|
214
240
|
}
|
|
215
241
|
}
|
|
216
242
|
//# sourceMappingURL=classify.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/schema-form/classify.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"classify.js","sourceRoot":"","sources":["../../src/schema-form/classify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-value.d.ts","sourceRoot":"","sources":["../../src/schema-form/default-value.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY1C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,UAAmB,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"default-value.d.ts","sourceRoot":"","sources":["../../src/schema-form/default-value.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAY1C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,GAAE,UAAmB,GAAG,OAAO,CAsC5F"}
|
|
@@ -59,7 +59,10 @@ export function defaultValueForSchema(schema, root = schema) {
|
|
|
59
59
|
case 'number':
|
|
60
60
|
case 'boolean':
|
|
61
61
|
case 'union':
|
|
62
|
-
case '
|
|
62
|
+
case 'json':
|
|
63
|
+
// A free-form JSON field starts ABSENT (its editor seeds an empty buffer),
|
|
64
|
+
// like the other value-less kinds: an optional one never invents a value,
|
|
65
|
+
// and a required one is left absent so validation flags it.
|
|
63
66
|
return undefined;
|
|
64
67
|
}
|
|
65
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-value.js","sourceRoot":"","sources":["../../src/schema-form/default-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,wFAAwF;AACxF,SAAS,eAAe,CACtB,GAAe,EACf,QAAoB;IAEpB,IAAI,SAAS,IAAI,GAAG;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACnE,IAAI,SAAS,IAAI,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAkB,EAAE,OAAmB,MAAM;IACjF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAE5C,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;IAC7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACvD,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;oBAChD,SAAS;gBACX,CAAC;gBACD,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACxD,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvE,IAAI,WAAW,CAAC,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;YAC5D,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,OAAO;YACV,OAAO,EAAE,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,
|
|
1
|
+
{"version":3,"file":"default-value.js","sourceRoot":"","sources":["../../src/schema-form/default-value.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,wFAAwF;AACxF,SAAS,eAAe,CACtB,GAAe,EACf,QAAoB;IAEpB,IAAI,SAAS,IAAI,GAAG;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;IACnE,IAAI,SAAS,IAAI,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAkB,EAAE,OAAmB,MAAM;IACjF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5D,IAAI,QAAQ,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAE5C,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;IAC7B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAClD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACvD,IAAI,MAAM,KAAK,SAAS;wBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;oBAChD,SAAS;gBACX,CAAC;gBACD,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACxD,MAAM,WAAW,GAAG,eAAe,CAAC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;gBACvE,IAAI,WAAW,CAAC,OAAO;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;YAC5D,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,KAAK,OAAO;YACV,OAAO,EAAE,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,2EAA2E;YAC3E,0EAA0E;YAC1E,4DAA4D;YAC5D,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-node.d.ts","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAevC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAMD,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"field-node.d.ts","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAevC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAMD,qEAAqE;AACrE,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CA0I1D"}
|
|
@@ -6,12 +6,12 @@ import { ArrayField } from './array-field';
|
|
|
6
6
|
import { classifySchema } from './classify';
|
|
7
7
|
import { EnumField } from './enum-field';
|
|
8
8
|
import { FieldGroup } from './field-group';
|
|
9
|
+
import { JsonField } from './json-field';
|
|
9
10
|
import { ObjectFields } from './object-fields';
|
|
10
11
|
import { RecordField } from './record-field';
|
|
11
12
|
import { scalarLabel } from './resolve';
|
|
12
13
|
import { StringField } from './string-field';
|
|
13
14
|
import { UnionField } from './union-field';
|
|
14
|
-
import { UnsupportedNotice } from './unsupported-notice';
|
|
15
15
|
function labelText(explicit, label) {
|
|
16
16
|
return explicit ?? label ?? 'Value';
|
|
17
17
|
}
|
|
@@ -24,8 +24,8 @@ export function FieldNode(props) {
|
|
|
24
24
|
const error = errors?.[path];
|
|
25
25
|
const model = classified.model;
|
|
26
26
|
switch (model.kind) {
|
|
27
|
-
case '
|
|
28
|
-
return (_jsx(
|
|
27
|
+
case 'json':
|
|
28
|
+
return (_jsx(JsonField, { heading: heading, description: description, error: error, jsonType: model.jsonType, nullable: classified.nullable, value: value, onChange: onChange }));
|
|
29
29
|
case 'const':
|
|
30
30
|
return (_jsx(Field, { label: heading, description: description, error: error, children: _jsx(TextInput, { value: scalarLabel(model.value), readOnly: true, disabled: true }) }));
|
|
31
31
|
case 'enum':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-node.js","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"field-node.js","sourceRoot":"","sources":["../../src/schema-form/field-node.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/** The JSON container a `json` field commits to (see `classify`). */
|
|
3
|
+
type JsonType = 'object' | 'array' | 'any';
|
|
4
|
+
export declare function JsonField({ heading, description, error, jsonType, nullable, value, onChange, }: {
|
|
5
|
+
heading: string;
|
|
6
|
+
description: string | undefined;
|
|
7
|
+
error: string | undefined;
|
|
8
|
+
jsonType: JsonType;
|
|
9
|
+
nullable: boolean;
|
|
10
|
+
value: unknown;
|
|
11
|
+
onChange: (value: unknown) => void;
|
|
12
|
+
}): ReactNode;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=json-field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-field.d.ts","sourceRoot":"","sources":["../../src/schema-form/json-field.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,qEAAqE;AACrE,KAAK,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAmC3C,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,GAAG,SAAS,CAgEZ"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* The free-form JSON field: the honest editor for a schema node the form has no
|
|
4
|
+
* STRUCTURED control for — a property-less object, a bare `additionalProperties`-
|
|
5
|
+
* open object, an items-less array, an empty/multi-type/`allOf` shape. Rather than
|
|
6
|
+
* dead-end on an "Unsupported" badge (a value the user can see but not set), it
|
|
7
|
+
* offers a mono textarea seeded with the current value pretty-printed and commits
|
|
8
|
+
* the PARSED value through the same `onChange` a structured field uses.
|
|
9
|
+
*
|
|
10
|
+
* Validation is LOUD and local: the buffer must parse as JSON, and — when the
|
|
11
|
+
* schema commits to a container (`jsonType` `'object'`/`'array'`) — the parsed
|
|
12
|
+
* value must be that container. An invalid buffer shows an inline error and does
|
|
13
|
+
* NOT commit, so a half-typed edit never writes a broken value through; the last
|
|
14
|
+
* committed value stands until the buffer is valid again.
|
|
15
|
+
*
|
|
16
|
+
* The buffer is LOCAL state (an invalid buffer has no committed value to derive
|
|
17
|
+
* from), resynced only when a DIFFERENT value arrives from the parent — the same
|
|
18
|
+
* `lastEmitted` guard `record-field` uses, so a parent echoing our own commit back
|
|
19
|
+
* does not clobber what is being typed.
|
|
20
|
+
*/
|
|
21
|
+
import { useRef, useState } from 'react';
|
|
22
|
+
import { Field } from '../components/field';
|
|
23
|
+
import { Textarea } from '../components/inputs';
|
|
24
|
+
import { errorMessage } from '../errors';
|
|
25
|
+
function isPlainObject(value) {
|
|
26
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
27
|
+
}
|
|
28
|
+
/** The current value as textarea text: pretty-printed JSON, or empty for absent. */
|
|
29
|
+
function serialize(value) {
|
|
30
|
+
return value === undefined ? '' : JSON.stringify(value, null, 2);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The container constraint on a PARSED buffer, or `null` when it satisfies the
|
|
34
|
+
* schema. `null` (the JSON literal) is rejected only when the schema is not
|
|
35
|
+
* nullable — matching `validateAgainstSchema`, so the inline check and the
|
|
36
|
+
* pre-submit check agree.
|
|
37
|
+
*/
|
|
38
|
+
function containerError(value, jsonType, nullable) {
|
|
39
|
+
if (value === null)
|
|
40
|
+
return nullable ? null : 'Must not be null.';
|
|
41
|
+
if (jsonType === 'object' && !isPlainObject(value)) {
|
|
42
|
+
return 'Must be a JSON object (e.g. {"key": "value"}).';
|
|
43
|
+
}
|
|
44
|
+
if (jsonType === 'array' && !Array.isArray(value)) {
|
|
45
|
+
return 'Must be a JSON array (e.g. [1, 2, 3]).';
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
/** The muted hint's leading noun, so the user knows what a valid buffer must be. */
|
|
50
|
+
function hintNoun(jsonType) {
|
|
51
|
+
if (jsonType === 'object')
|
|
52
|
+
return 'JSON object';
|
|
53
|
+
if (jsonType === 'array')
|
|
54
|
+
return 'JSON array';
|
|
55
|
+
return 'JSON';
|
|
56
|
+
}
|
|
57
|
+
export function JsonField({ heading, description, error, jsonType, nullable, value, onChange, }) {
|
|
58
|
+
// The last value THIS field emitted. A parent echoing our own commit back
|
|
59
|
+
// passes it identity-equal, so the buffer (which may hold an invalid, un-
|
|
60
|
+
// committed edit) survives; a parent that swaps in a different value resyncs it.
|
|
61
|
+
const lastEmitted = useRef(value);
|
|
62
|
+
const [buffer, setBuffer] = useState(() => serialize(value));
|
|
63
|
+
const [parseError, setParseError] = useState(null);
|
|
64
|
+
if (value !== lastEmitted.current) {
|
|
65
|
+
lastEmitted.current = value;
|
|
66
|
+
setBuffer(serialize(value));
|
|
67
|
+
setParseError(null);
|
|
68
|
+
}
|
|
69
|
+
const commit = (next) => {
|
|
70
|
+
lastEmitted.current = next;
|
|
71
|
+
onChange(next);
|
|
72
|
+
};
|
|
73
|
+
const handleChange = (text) => {
|
|
74
|
+
setBuffer(text);
|
|
75
|
+
// An empty buffer drops the value (emits `undefined`) — the same "absent
|
|
76
|
+
// optional" affordance a cleared text field gives; a required field's
|
|
77
|
+
// absence is then flagged by the pre-submit validator, not invented here.
|
|
78
|
+
if (text.trim() === '') {
|
|
79
|
+
setParseError(null);
|
|
80
|
+
commit(undefined);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
let parsed;
|
|
84
|
+
try {
|
|
85
|
+
parsed = JSON.parse(text);
|
|
86
|
+
}
|
|
87
|
+
catch (thrown) {
|
|
88
|
+
// Invalid JSON: surface it, and DO NOT commit — the last valid value stands.
|
|
89
|
+
setParseError(`Invalid JSON: ${errorMessage(thrown)}`);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const container = containerError(parsed, jsonType, nullable);
|
|
93
|
+
if (container !== null) {
|
|
94
|
+
setParseError(container);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
setParseError(null);
|
|
98
|
+
commit(parsed);
|
|
99
|
+
};
|
|
100
|
+
return (_jsxs(Field, { label: heading, description: description, error: parseError ?? error, children: [_jsx(Textarea, { value: buffer, onChange: (event) => {
|
|
101
|
+
handleChange(event.target.value);
|
|
102
|
+
}, rows: 6, "aria-label": `${heading} JSON`, className: "tai-textarea-mono", spellCheck: false }), _jsx("p", { className: "tai-field-hint", style: { margin: 0 }, children: `free-form ${hintNoun(jsonType)} — this field has no structured schema` })] }));
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=json-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-field.js","sourceRoot":"","sources":["../../src/schema-form/json-field.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* is deliberately PERMISSIVE — every field is optional and an open index
|
|
4
4
|
* signature admits unknown keywords — because the schemas come from Pydantic v2
|
|
5
5
|
* and may carry constructs the renderer does not consume. Unknown keys never
|
|
6
|
-
* break typing; the renderer classifies a node and
|
|
7
|
-
*
|
|
6
|
+
* break typing; the renderer classifies a node and, for a shape it has no
|
|
7
|
+
* structured control for, offers a free-form JSON editor rather than dropping it.
|
|
8
8
|
*/
|
|
9
9
|
/** The JSON-Schema `type` keyword values Pydantic emits. */
|
|
10
10
|
export type JsonSchemaType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'null';
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* is deliberately PERMISSIVE — every field is optional and an open index
|
|
4
4
|
* signature admits unknown keywords — because the schemas come from Pydantic v2
|
|
5
5
|
* and may carry constructs the renderer does not consume. Unknown keys never
|
|
6
|
-
* break typing; the renderer classifies a node and
|
|
7
|
-
*
|
|
6
|
+
* break typing; the renderer classifies a node and, for a shape it has no
|
|
7
|
+
* structured control for, offers a free-form JSON editor rather than dropping it.
|
|
8
8
|
*/
|
|
9
9
|
export {};
|
|
10
10
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/schema-form/validate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/schema-form/validate.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAmKD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,gBAAgB,CAIlB"}
|