@formspec/build 0.1.0-alpha.40 → 0.1.0-alpha.42
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/browser.cjs +305 -23
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.js +305 -23
- package/dist/browser.js.map +1 -1
- package/dist/build-alpha.d.ts +10 -0
- package/dist/build-beta.d.ts +10 -0
- package/dist/build-internal.d.ts +10 -0
- package/dist/build.d.ts +10 -0
- package/dist/canonicalize/chain-dsl-canonicalizer.d.ts.map +1 -1
- package/dist/cli.cjs +243 -33
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +243 -33
- package/dist/cli.js.map +1 -1
- package/dist/generators/class-schema.d.ts +5 -0
- package/dist/generators/class-schema.d.ts.map +1 -1
- package/dist/generators/discovered-schema.d.ts.map +1 -1
- package/dist/generators/method-schema.d.ts +9 -2
- package/dist/generators/method-schema.d.ts.map +1 -1
- package/dist/index.cjs +222 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +222 -30
- package/dist/index.js.map +1 -1
- package/dist/internals.cjs +199 -33
- package/dist/internals.cjs.map +1 -1
- package/dist/internals.js +199 -33
- package/dist/internals.js.map +1 -1
- package/dist/json-schema/generator.d.ts +5 -0
- package/dist/json-schema/generator.d.ts.map +1 -1
- package/dist/json-schema/ir-generator.d.ts +5 -0
- package/dist/json-schema/ir-generator.d.ts.map +1 -1
- package/dist/metadata/policy.d.ts +3 -2
- package/dist/metadata/policy.d.ts.map +1 -1
- package/dist/metadata/resolve.d.ts +1 -0
- package/dist/metadata/resolve.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -119,6 +119,11 @@ export interface StaticSchemaGenerationOptions {
|
|
|
119
119
|
* @defaultValue "x-formspec"
|
|
120
120
|
*/
|
|
121
121
|
readonly vendorPrefix?: string | undefined;
|
|
122
|
+
/**
|
|
123
|
+
* JSON Schema representation to use for static enums.
|
|
124
|
+
* @defaultValue "enum"
|
|
125
|
+
*/
|
|
126
|
+
readonly enumSerialization?: "enum" | "oneOf";
|
|
122
127
|
/** Metadata resolution policy for static schema generation. */
|
|
123
128
|
readonly metadata?: MetadataPolicyInput | undefined;
|
|
124
129
|
/** Discriminator-specific schema generation behavior. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-schema.d.ts","sourceRoot":"","sources":["../../src/generators/class-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"class-schema.d.ts","sourceRoot":"","sources":["../../src/generators/class-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovered-schema.d.ts","sourceRoot":"","sources":["../../src/generators/discovered-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAQjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAU7D,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"discovered-schema.d.ts","sourceRoot":"","sources":["../../src/generators/discovered-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type * as ts from "typescript";
|
|
8
8
|
import type { MethodInfo } from "../analyzer/class-analyzer.js";
|
|
9
|
-
import { type JsonSchema2020 } from "../json-schema/ir-generator.js";
|
|
9
|
+
import { type GenerateJsonSchemaFromIROptions, type JsonSchema2020 } from "../json-schema/ir-generator.js";
|
|
10
10
|
/**
|
|
11
11
|
* Runtime-loaded FormSpec schemas, compatible with the CLI's FormSpecSchemas type.
|
|
12
12
|
*/
|
|
@@ -40,6 +40,13 @@ export interface MethodParamsSchemas {
|
|
|
40
40
|
/** Name of the FormSpec export used (if any) */
|
|
41
41
|
formSpecExport: string | null;
|
|
42
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Options for generating method schemas.
|
|
45
|
+
*/
|
|
46
|
+
export interface GenerateMethodSchemasOptions {
|
|
47
|
+
/** JSON Schema representation to use for static enums. */
|
|
48
|
+
readonly enumSerialization?: GenerateJsonSchemaFromIROptions["enumSerialization"] | undefined;
|
|
49
|
+
}
|
|
43
50
|
/**
|
|
44
51
|
* Generates schemas for a method's parameters and return type.
|
|
45
52
|
*
|
|
@@ -52,7 +59,7 @@ export interface MethodParamsSchemas {
|
|
|
52
59
|
* @param loadedFormSpecs - Map of FormSpec export names to their schemas
|
|
53
60
|
* @returns Generated method schemas
|
|
54
61
|
*/
|
|
55
|
-
export declare function generateMethodSchemas(method: MethodInfo, checker: ts.TypeChecker, loadedFormSpecs: Map<string, LoadedFormSpecSchemas
|
|
62
|
+
export declare function generateMethodSchemas(method: MethodInfo, checker: ts.TypeChecker, loadedFormSpecs: Map<string, LoadedFormSpecSchemas>, options?: GenerateMethodSchemasOptions): MethodSchemas;
|
|
56
63
|
/**
|
|
57
64
|
* Collects all FormSpec export names referenced by methods.
|
|
58
65
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"method-schema.d.ts","sourceRoot":"","sources":["../../src/generators/method-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,+BAA+B,CAAC;AAG/E,OAAO,
|
|
1
|
+
{"version":3,"file":"method-schema.d.ts","sourceRoot":"","sources":["../../src/generators/method-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,+BAA+B,CAAC;AAG/E,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AAGxC;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACnC,yBAAyB;IACzB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,UAAU,EAAE,cAAc,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gDAAgD;IAChD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,+BAA+B,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC;CAC/F;AAyED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACnD,OAAO,CAAC,EAAE,4BAA4B,GACrC,aAAa,CAYf;AAoED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAY5E"}
|
package/dist/index.cjs
CHANGED
|
@@ -110,11 +110,35 @@ function normalizeDeclarationPolicy(input) {
|
|
|
110
110
|
displayName: normalizeScalarPolicy(input?.displayName)
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
+
function normalizeEnumMemberDisplayNamePolicy(input) {
|
|
114
|
+
if (input?.mode === "infer-if-missing") {
|
|
115
|
+
return {
|
|
116
|
+
mode: "infer-if-missing",
|
|
117
|
+
infer: input.infer
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
if (input?.mode === "require-explicit") {
|
|
121
|
+
return {
|
|
122
|
+
mode: "require-explicit",
|
|
123
|
+
infer: () => ""
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
mode: "disabled",
|
|
128
|
+
infer: () => ""
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function normalizeEnumMemberPolicy(input) {
|
|
132
|
+
return {
|
|
133
|
+
displayName: normalizeEnumMemberDisplayNamePolicy(input?.displayName)
|
|
134
|
+
};
|
|
135
|
+
}
|
|
113
136
|
function normalizeMetadataPolicy(input) {
|
|
114
137
|
return {
|
|
115
138
|
type: normalizeDeclarationPolicy(input?.type),
|
|
116
139
|
field: normalizeDeclarationPolicy(input?.field),
|
|
117
|
-
method: normalizeDeclarationPolicy(input?.method)
|
|
140
|
+
method: normalizeDeclarationPolicy(input?.method),
|
|
141
|
+
enumMember: normalizeEnumMemberPolicy(input?.enumMember)
|
|
118
142
|
};
|
|
119
143
|
}
|
|
120
144
|
function getDeclarationMetadataPolicy(policy, declarationKind) {
|
|
@@ -220,6 +244,40 @@ function pickResolvedMetadataValue(baseValue, overlayValue) {
|
|
|
220
244
|
}
|
|
221
245
|
return baseValue ?? overlayValue;
|
|
222
246
|
}
|
|
247
|
+
function resolveEnumMemberDisplayName(current, policy, context) {
|
|
248
|
+
if (current !== void 0) {
|
|
249
|
+
return current;
|
|
250
|
+
}
|
|
251
|
+
if (policy.mode === "require-explicit") {
|
|
252
|
+
throw new Error(
|
|
253
|
+
`Metadata policy requires explicit displayName for enum member "${context.logicalName}" on the ${context.surface} surface.`
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
if (policy.mode !== "infer-if-missing") {
|
|
257
|
+
return void 0;
|
|
258
|
+
}
|
|
259
|
+
const inferredValue = policy.infer(context).trim();
|
|
260
|
+
return inferredValue !== "" ? inferredValue : void 0;
|
|
261
|
+
}
|
|
262
|
+
function resolveEnumTypeMetadata(type, options) {
|
|
263
|
+
const members = type.members.map((member) => {
|
|
264
|
+
const displayName = resolveEnumMemberDisplayName(
|
|
265
|
+
member.displayName,
|
|
266
|
+
options.policy.enumMember.displayName,
|
|
267
|
+
{
|
|
268
|
+
surface: options.surface,
|
|
269
|
+
logicalName: String(member.value),
|
|
270
|
+
memberValue: member.value,
|
|
271
|
+
...options.buildContext !== void 0 && { buildContext: options.buildContext }
|
|
272
|
+
}
|
|
273
|
+
);
|
|
274
|
+
if (displayName === member.displayName) {
|
|
275
|
+
return member;
|
|
276
|
+
}
|
|
277
|
+
return displayName === void 0 ? { value: member.value } : { value: member.value, displayName };
|
|
278
|
+
});
|
|
279
|
+
return members.some((member, index) => member !== type.members[index]) ? { ...type, members } : type;
|
|
280
|
+
}
|
|
223
281
|
function resolveTypeNodeMetadata(type, options) {
|
|
224
282
|
switch (type.kind) {
|
|
225
283
|
case "array":
|
|
@@ -242,9 +300,10 @@ function resolveTypeNodeMetadata(type, options) {
|
|
|
242
300
|
...type,
|
|
243
301
|
members: type.members.map((member) => resolveTypeNodeMetadata(member, options))
|
|
244
302
|
};
|
|
303
|
+
case "enum":
|
|
304
|
+
return resolveEnumTypeMetadata(type, options);
|
|
245
305
|
case "reference":
|
|
246
306
|
case "primitive":
|
|
247
|
-
case "enum":
|
|
248
307
|
case "dynamic":
|
|
249
308
|
case "custom":
|
|
250
309
|
return type;
|
|
@@ -347,11 +406,10 @@ function getDisplayName(metadata) {
|
|
|
347
406
|
return metadata?.displayName?.value;
|
|
348
407
|
}
|
|
349
408
|
function resolveFormIRMetadata(ir, options) {
|
|
350
|
-
const
|
|
351
|
-
const metadata = resolveResolvedMetadata(ir.metadata, options.policy.type, {
|
|
409
|
+
const metadata = options.resolveRootTypeMetadata === false ? ir.metadata : resolveResolvedMetadata(ir.metadata, options.policy.type, {
|
|
352
410
|
surface: options.surface,
|
|
353
411
|
declarationKind: "type",
|
|
354
|
-
logicalName: rootLogicalName,
|
|
412
|
+
logicalName: options.rootLogicalName ?? ir.name ?? "FormSpec",
|
|
355
413
|
...options.buildContext !== void 0 && { buildContext: options.buildContext }
|
|
356
414
|
});
|
|
357
415
|
return {
|
|
@@ -387,7 +445,7 @@ function canonicalizeChainDSL(form, options) {
|
|
|
387
445
|
const metadataPolicy = normalizeMetadataPolicy(
|
|
388
446
|
options?.metadata ?? (0, import_internals._getFormSpecMetadataPolicy)(form)
|
|
389
447
|
);
|
|
390
|
-
|
|
448
|
+
const ir = {
|
|
391
449
|
kind: "form-ir",
|
|
392
450
|
irVersion: import_internals.IR_VERSION,
|
|
393
451
|
elements: canonicalizeElements(form.elements, metadataPolicy),
|
|
@@ -395,6 +453,13 @@ function canonicalizeChainDSL(form, options) {
|
|
|
395
453
|
typeRegistry: {},
|
|
396
454
|
provenance: CHAIN_DSL_PROVENANCE
|
|
397
455
|
};
|
|
456
|
+
return resolveFormIRMetadata(ir, {
|
|
457
|
+
policy: metadataPolicy,
|
|
458
|
+
surface: "chain-dsl",
|
|
459
|
+
// Chain DSL has no root/type-metadata authoring surface, so only resolve
|
|
460
|
+
// field/type-registry metadata and enum-member labels here.
|
|
461
|
+
resolveRootTypeMetadata: false
|
|
462
|
+
});
|
|
398
463
|
}
|
|
399
464
|
function canonicalizeElements(elements, metadataPolicy) {
|
|
400
465
|
return elements.map((element) => canonicalizeElement(element, metadataPolicy));
|
|
@@ -932,17 +997,25 @@ function assertNoSerializedNameCollisions(ir) {
|
|
|
932
997
|
// src/json-schema/ir-generator.ts
|
|
933
998
|
function makeContext(options) {
|
|
934
999
|
const vendorPrefix = options?.vendorPrefix ?? "x-formspec";
|
|
1000
|
+
const rawEnumSerialization = options?.enumSerialization;
|
|
935
1001
|
if (!vendorPrefix.startsWith("x-")) {
|
|
936
1002
|
throw new Error(
|
|
937
1003
|
`Invalid vendorPrefix "${vendorPrefix}". Extension JSON Schema keywords must start with "x-".`
|
|
938
1004
|
);
|
|
939
1005
|
}
|
|
1006
|
+
if (rawEnumSerialization !== void 0 && rawEnumSerialization !== "enum" && rawEnumSerialization !== "oneOf") {
|
|
1007
|
+
throw new Error(
|
|
1008
|
+
`Invalid enumSerialization "${rawEnumSerialization}". Expected "enum" or "oneOf".`
|
|
1009
|
+
);
|
|
1010
|
+
}
|
|
1011
|
+
const enumSerialization = rawEnumSerialization ?? "enum";
|
|
940
1012
|
return {
|
|
941
1013
|
defs: {},
|
|
942
1014
|
typeNameMap: {},
|
|
943
1015
|
typeRegistry: {},
|
|
944
1016
|
extensionRegistry: options?.extensionRegistry,
|
|
945
|
-
vendorPrefix
|
|
1017
|
+
vendorPrefix,
|
|
1018
|
+
enumSerialization
|
|
946
1019
|
};
|
|
947
1020
|
}
|
|
948
1021
|
function generateJsonSchemaFromIR(ir, options) {
|
|
@@ -1116,7 +1189,7 @@ function generateTypeNode(type, ctx) {
|
|
|
1116
1189
|
case "primitive":
|
|
1117
1190
|
return generatePrimitiveType(type);
|
|
1118
1191
|
case "enum":
|
|
1119
|
-
return generateEnumType(type);
|
|
1192
|
+
return generateEnumType(type, ctx);
|
|
1120
1193
|
case "array":
|
|
1121
1194
|
return generateArrayType(type, ctx);
|
|
1122
1195
|
case "object":
|
|
@@ -1142,20 +1215,37 @@ function generatePrimitiveType(type) {
|
|
|
1142
1215
|
type: type.primitiveKind === "integer" || type.primitiveKind === "bigint" ? "integer" : type.primitiveKind
|
|
1143
1216
|
};
|
|
1144
1217
|
}
|
|
1145
|
-
function generateEnumType(type) {
|
|
1146
|
-
|
|
1147
|
-
if (hasDisplayNames) {
|
|
1218
|
+
function generateEnumType(type, ctx) {
|
|
1219
|
+
if (ctx.enumSerialization === "oneOf") {
|
|
1148
1220
|
return {
|
|
1149
|
-
oneOf: type.members.map((m) => {
|
|
1150
|
-
const
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
}
|
|
1154
|
-
return entry;
|
|
1155
|
-
})
|
|
1221
|
+
oneOf: type.members.map((m) => ({
|
|
1222
|
+
const: m.value,
|
|
1223
|
+
title: m.displayName ?? String(m.value)
|
|
1224
|
+
}))
|
|
1156
1225
|
};
|
|
1157
1226
|
}
|
|
1158
|
-
|
|
1227
|
+
const schema = { enum: type.members.map((m) => m.value) };
|
|
1228
|
+
const displayNames = buildEnumDisplayNameExtension(type);
|
|
1229
|
+
if (displayNames !== void 0) {
|
|
1230
|
+
schema[`${ctx.vendorPrefix}-display-names`] = displayNames;
|
|
1231
|
+
}
|
|
1232
|
+
return schema;
|
|
1233
|
+
}
|
|
1234
|
+
function buildEnumDisplayNameExtension(type) {
|
|
1235
|
+
if (!type.members.some((member) => member.displayName !== void 0)) {
|
|
1236
|
+
return void 0;
|
|
1237
|
+
}
|
|
1238
|
+
const displayNames = /* @__PURE__ */ Object.create(null);
|
|
1239
|
+
for (const member of type.members) {
|
|
1240
|
+
const key = String(member.value);
|
|
1241
|
+
if (Object.hasOwn(displayNames, key)) {
|
|
1242
|
+
throw new Error(
|
|
1243
|
+
`Enum display-name key "${key}" is ambiguous after stringification. Use oneOf serialization for mixed string/number enum values that collide.`
|
|
1244
|
+
);
|
|
1245
|
+
}
|
|
1246
|
+
displayNames[key] = member.displayName ?? key;
|
|
1247
|
+
}
|
|
1248
|
+
return displayNames;
|
|
1159
1249
|
}
|
|
1160
1250
|
function generateArrayType(type, ctx) {
|
|
1161
1251
|
return {
|
|
@@ -1504,6 +1594,66 @@ function generateCustomType(type, ctx) {
|
|
|
1504
1594
|
}
|
|
1505
1595
|
return registration.toJsonSchema(type.payload, ctx.vendorPrefix);
|
|
1506
1596
|
}
|
|
1597
|
+
var JSON_SCHEMA_STRUCTURAL_KEYWORDS = /* @__PURE__ */ new Set([
|
|
1598
|
+
"$schema",
|
|
1599
|
+
"$ref",
|
|
1600
|
+
"$defs",
|
|
1601
|
+
"$id",
|
|
1602
|
+
"$anchor",
|
|
1603
|
+
"$dynamicRef",
|
|
1604
|
+
"$dynamicAnchor",
|
|
1605
|
+
"$vocabulary",
|
|
1606
|
+
"$comment",
|
|
1607
|
+
"type",
|
|
1608
|
+
"enum",
|
|
1609
|
+
"const",
|
|
1610
|
+
"properties",
|
|
1611
|
+
"patternProperties",
|
|
1612
|
+
"additionalProperties",
|
|
1613
|
+
"required",
|
|
1614
|
+
"items",
|
|
1615
|
+
"prefixItems",
|
|
1616
|
+
"additionalItems",
|
|
1617
|
+
"contains",
|
|
1618
|
+
"allOf",
|
|
1619
|
+
"oneOf",
|
|
1620
|
+
"anyOf",
|
|
1621
|
+
"not",
|
|
1622
|
+
"if",
|
|
1623
|
+
"then",
|
|
1624
|
+
"else",
|
|
1625
|
+
"minimum",
|
|
1626
|
+
"maximum",
|
|
1627
|
+
"exclusiveMinimum",
|
|
1628
|
+
"exclusiveMaximum",
|
|
1629
|
+
"multipleOf",
|
|
1630
|
+
"minLength",
|
|
1631
|
+
"maxLength",
|
|
1632
|
+
"pattern",
|
|
1633
|
+
"minItems",
|
|
1634
|
+
"maxItems",
|
|
1635
|
+
"uniqueItems",
|
|
1636
|
+
"minProperties",
|
|
1637
|
+
"maxProperties",
|
|
1638
|
+
"minContains",
|
|
1639
|
+
"maxContains",
|
|
1640
|
+
"format",
|
|
1641
|
+
"title",
|
|
1642
|
+
"description",
|
|
1643
|
+
"default",
|
|
1644
|
+
"deprecated",
|
|
1645
|
+
"readOnly",
|
|
1646
|
+
"writeOnly",
|
|
1647
|
+
"examples",
|
|
1648
|
+
"dependentRequired",
|
|
1649
|
+
"dependentSchemas",
|
|
1650
|
+
"propertyNames",
|
|
1651
|
+
"unevaluatedItems",
|
|
1652
|
+
"unevaluatedProperties",
|
|
1653
|
+
"contentEncoding",
|
|
1654
|
+
"contentMediaType",
|
|
1655
|
+
"contentSchema"
|
|
1656
|
+
]);
|
|
1507
1657
|
function applyCustomConstraint(schema, constraint, ctx) {
|
|
1508
1658
|
const registration = ctx.extensionRegistry?.findConstraint(constraint.constraintId);
|
|
1509
1659
|
if (registration === void 0) {
|
|
@@ -1511,12 +1661,25 @@ function applyCustomConstraint(schema, constraint, ctx) {
|
|
|
1511
1661
|
`Cannot generate JSON Schema for custom constraint "${constraint.constraintId}" without a matching extension registration`
|
|
1512
1662
|
);
|
|
1513
1663
|
}
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1664
|
+
const extensionSchema = registration.toJsonSchema(constraint.payload, ctx.vendorPrefix);
|
|
1665
|
+
if (registration.emitsVocabularyKeywords) {
|
|
1666
|
+
const target = schema;
|
|
1667
|
+
for (const [key, value] of Object.entries(extensionSchema)) {
|
|
1668
|
+
if (JSON_SCHEMA_STRUCTURAL_KEYWORDS.has(key)) {
|
|
1669
|
+
throw new Error(
|
|
1670
|
+
`Custom constraint "${constraint.constraintId}" with emitsVocabularyKeywords must not overwrite standard JSON Schema keyword "${key}"`
|
|
1671
|
+
);
|
|
1672
|
+
}
|
|
1673
|
+
target[key] = value;
|
|
1674
|
+
}
|
|
1675
|
+
} else {
|
|
1676
|
+
assignVendorPrefixedExtensionKeywords(
|
|
1677
|
+
schema,
|
|
1678
|
+
extensionSchema,
|
|
1679
|
+
ctx.vendorPrefix,
|
|
1680
|
+
`custom constraint "${constraint.constraintId}"`
|
|
1681
|
+
);
|
|
1682
|
+
}
|
|
1520
1683
|
}
|
|
1521
1684
|
function applyCustomAnnotation(schema, annotation, ctx) {
|
|
1522
1685
|
const registration = ctx.extensionRegistry?.findAnnotation(annotation.annotationId);
|
|
@@ -1548,11 +1711,17 @@ function assignVendorPrefixedExtensionKeywords(schema, extensionSchema, vendorPr
|
|
|
1548
1711
|
|
|
1549
1712
|
// src/json-schema/generator.ts
|
|
1550
1713
|
function generateJsonSchema(form, options) {
|
|
1714
|
+
const metadata = options?.metadata;
|
|
1715
|
+
const vendorPrefix = options?.vendorPrefix;
|
|
1716
|
+
const enumSerialization = options?.enumSerialization;
|
|
1551
1717
|
const ir = canonicalizeChainDSL(
|
|
1552
1718
|
form,
|
|
1553
|
-
|
|
1719
|
+
metadata !== void 0 ? { metadata } : void 0
|
|
1554
1720
|
);
|
|
1555
|
-
const internalOptions =
|
|
1721
|
+
const internalOptions = vendorPrefix === void 0 && enumSerialization === void 0 ? void 0 : {
|
|
1722
|
+
...vendorPrefix !== void 0 && { vendorPrefix },
|
|
1723
|
+
...enumSerialization !== void 0 && { enumSerialization }
|
|
1724
|
+
};
|
|
1556
1725
|
return generateJsonSchemaFromIR(ir, internalOptions);
|
|
1557
1726
|
}
|
|
1558
1727
|
|
|
@@ -5487,6 +5656,7 @@ function generateSchemasFromClass(options) {
|
|
|
5487
5656
|
{
|
|
5488
5657
|
extensionRegistry: options.extensionRegistry,
|
|
5489
5658
|
metadata: options.metadata,
|
|
5659
|
+
enumSerialization: options.enumSerialization,
|
|
5490
5660
|
vendorPrefix: options.vendorPrefix
|
|
5491
5661
|
}
|
|
5492
5662
|
);
|
|
@@ -5616,6 +5786,7 @@ function generateSchemasFromDetailedProgramContext(ctx, filePath, typeName, opti
|
|
|
5616
5786
|
{
|
|
5617
5787
|
extensionRegistry: options.extensionRegistry,
|
|
5618
5788
|
metadata: options.metadata,
|
|
5789
|
+
enumSerialization: options.enumSerialization,
|
|
5619
5790
|
vendorPrefix: options.vendorPrefix
|
|
5620
5791
|
}
|
|
5621
5792
|
);
|
|
@@ -5815,7 +5986,7 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
|
|
|
5815
5986
|
column: 0
|
|
5816
5987
|
}
|
|
5817
5988
|
};
|
|
5818
|
-
const
|
|
5989
|
+
const ir = resolveFormIRMetadata(
|
|
5819
5990
|
{
|
|
5820
5991
|
kind: "form-ir",
|
|
5821
5992
|
name: root.name,
|
|
@@ -5826,8 +5997,17 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
|
|
|
5826
5997
|
typeRegistry,
|
|
5827
5998
|
provenance: syntheticField.provenance
|
|
5828
5999
|
},
|
|
6000
|
+
{
|
|
6001
|
+
policy: normalizeMetadataPolicy(options?.metadata),
|
|
6002
|
+
surface: "tsdoc",
|
|
6003
|
+
rootLogicalName: root.name
|
|
6004
|
+
}
|
|
6005
|
+
);
|
|
6006
|
+
const schema = generateJsonSchemaFromIR(
|
|
6007
|
+
ir,
|
|
5829
6008
|
{
|
|
5830
6009
|
extensionRegistry: options?.extensionRegistry,
|
|
6010
|
+
enumSerialization: options?.enumSerialization,
|
|
5831
6011
|
vendorPrefix: options?.vendorPrefix
|
|
5832
6012
|
}
|
|
5833
6013
|
);
|
|
@@ -5854,6 +6034,7 @@ function generateSchemasFromAnalysis(analysis, filePath, options) {
|
|
|
5854
6034
|
{ file: filePath },
|
|
5855
6035
|
{
|
|
5856
6036
|
extensionRegistry: options?.extensionRegistry,
|
|
6037
|
+
enumSerialization: options?.enumSerialization,
|
|
5857
6038
|
metadata: options?.metadata,
|
|
5858
6039
|
vendorPrefix: options?.vendorPrefix
|
|
5859
6040
|
}
|
|
@@ -6251,8 +6432,19 @@ function buildFormSchemas(form, options) {
|
|
|
6251
6432
|
};
|
|
6252
6433
|
}
|
|
6253
6434
|
function writeSchemas(form, options) {
|
|
6254
|
-
const {
|
|
6255
|
-
|
|
6435
|
+
const {
|
|
6436
|
+
outDir,
|
|
6437
|
+
name = "schema",
|
|
6438
|
+
indent = 2,
|
|
6439
|
+
vendorPrefix,
|
|
6440
|
+
enumSerialization,
|
|
6441
|
+
metadata
|
|
6442
|
+
} = options;
|
|
6443
|
+
const buildOptions = vendorPrefix === void 0 && enumSerialization === void 0 && metadata === void 0 ? void 0 : {
|
|
6444
|
+
...vendorPrefix !== void 0 && { vendorPrefix },
|
|
6445
|
+
...enumSerialization !== void 0 && { enumSerialization },
|
|
6446
|
+
...metadata !== void 0 && { metadata }
|
|
6447
|
+
};
|
|
6256
6448
|
const { jsonSchema, uiSchema: uiSchema2 } = buildFormSchemas(form, buildOptions);
|
|
6257
6449
|
if (!fs.existsSync(outDir)) {
|
|
6258
6450
|
fs.mkdirSync(outDir, { recursive: true });
|