@formspec/build 0.1.0-alpha.40 → 0.1.0-alpha.41

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.
@@ -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":"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"}
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>): MethodSchemas;
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,EAA4B,KAAK,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAG/F;;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;AAgED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,EAAE,CAAC,WAAW,EACvB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAClD,aAAa,CAYf;AAmED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAY5E"}
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 rootLogicalName = options.rootLogicalName ?? ir.name ?? "FormSpec";
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
- return {
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
- const hasDisplayNames = type.members.some((m) => m.displayName !== void 0);
1147
- if (hasDisplayNames) {
1218
+ function generateEnumType(type, ctx) {
1219
+ if (ctx.enumSerialization === "oneOf") {
1148
1220
  return {
1149
- oneOf: type.members.map((m) => {
1150
- const entry = { const: m.value };
1151
- if (m.displayName !== void 0) {
1152
- entry.title = m.displayName;
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
- return { enum: type.members.map((m) => m.value) };
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 {
@@ -1548,11 +1638,17 @@ function assignVendorPrefixedExtensionKeywords(schema, extensionSchema, vendorPr
1548
1638
 
1549
1639
  // src/json-schema/generator.ts
1550
1640
  function generateJsonSchema(form, options) {
1641
+ const metadata = options?.metadata;
1642
+ const vendorPrefix = options?.vendorPrefix;
1643
+ const enumSerialization = options?.enumSerialization;
1551
1644
  const ir = canonicalizeChainDSL(
1552
1645
  form,
1553
- options?.metadata !== void 0 ? { metadata: options.metadata } : void 0
1646
+ metadata !== void 0 ? { metadata } : void 0
1554
1647
  );
1555
- const internalOptions = options?.vendorPrefix === void 0 ? void 0 : { vendorPrefix: options.vendorPrefix };
1648
+ const internalOptions = vendorPrefix === void 0 && enumSerialization === void 0 ? void 0 : {
1649
+ ...vendorPrefix !== void 0 && { vendorPrefix },
1650
+ ...enumSerialization !== void 0 && { enumSerialization }
1651
+ };
1556
1652
  return generateJsonSchemaFromIR(ir, internalOptions);
1557
1653
  }
1558
1654
 
@@ -5487,6 +5583,7 @@ function generateSchemasFromClass(options) {
5487
5583
  {
5488
5584
  extensionRegistry: options.extensionRegistry,
5489
5585
  metadata: options.metadata,
5586
+ enumSerialization: options.enumSerialization,
5490
5587
  vendorPrefix: options.vendorPrefix
5491
5588
  }
5492
5589
  );
@@ -5616,6 +5713,7 @@ function generateSchemasFromDetailedProgramContext(ctx, filePath, typeName, opti
5616
5713
  {
5617
5714
  extensionRegistry: options.extensionRegistry,
5618
5715
  metadata: options.metadata,
5716
+ enumSerialization: options.enumSerialization,
5619
5717
  vendorPrefix: options.vendorPrefix
5620
5718
  }
5621
5719
  );
@@ -5815,7 +5913,7 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
5815
5913
  column: 0
5816
5914
  }
5817
5915
  };
5818
- const schema = generateJsonSchemaFromIR(
5916
+ const ir = resolveFormIRMetadata(
5819
5917
  {
5820
5918
  kind: "form-ir",
5821
5919
  name: root.name,
@@ -5826,8 +5924,17 @@ function toStandaloneJsonSchema(root, typeRegistry, options) {
5826
5924
  typeRegistry,
5827
5925
  provenance: syntheticField.provenance
5828
5926
  },
5927
+ {
5928
+ policy: normalizeMetadataPolicy(options?.metadata),
5929
+ surface: "tsdoc",
5930
+ rootLogicalName: root.name
5931
+ }
5932
+ );
5933
+ const schema = generateJsonSchemaFromIR(
5934
+ ir,
5829
5935
  {
5830
5936
  extensionRegistry: options?.extensionRegistry,
5937
+ enumSerialization: options?.enumSerialization,
5831
5938
  vendorPrefix: options?.vendorPrefix
5832
5939
  }
5833
5940
  );
@@ -5854,6 +5961,7 @@ function generateSchemasFromAnalysis(analysis, filePath, options) {
5854
5961
  { file: filePath },
5855
5962
  {
5856
5963
  extensionRegistry: options?.extensionRegistry,
5964
+ enumSerialization: options?.enumSerialization,
5857
5965
  metadata: options?.metadata,
5858
5966
  vendorPrefix: options?.vendorPrefix
5859
5967
  }
@@ -6251,8 +6359,19 @@ function buildFormSchemas(form, options) {
6251
6359
  };
6252
6360
  }
6253
6361
  function writeSchemas(form, options) {
6254
- const { outDir, name = "schema", indent = 2, vendorPrefix, metadata } = options;
6255
- const buildOptions = vendorPrefix === void 0 && metadata === void 0 ? void 0 : { vendorPrefix, metadata };
6362
+ const {
6363
+ outDir,
6364
+ name = "schema",
6365
+ indent = 2,
6366
+ vendorPrefix,
6367
+ enumSerialization,
6368
+ metadata
6369
+ } = options;
6370
+ const buildOptions = vendorPrefix === void 0 && enumSerialization === void 0 && metadata === void 0 ? void 0 : {
6371
+ ...vendorPrefix !== void 0 && { vendorPrefix },
6372
+ ...enumSerialization !== void 0 && { enumSerialization },
6373
+ ...metadata !== void 0 && { metadata }
6374
+ };
6256
6375
  const { jsonSchema, uiSchema: uiSchema2 } = buildFormSchemas(form, buildOptions);
6257
6376
  if (!fs.existsSync(outDir)) {
6258
6377
  fs.mkdirSync(outDir, { recursive: true });