@beff/client 0.0.128 → 0.0.130

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 (42) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/codegen-v2.d.ts +32 -3
  3. package/dist/cjs/codegen-v2.d.ts.map +1 -1
  4. package/dist/cjs/codegen-v2.js +183 -3
  5. package/dist/cjs/index.d.ts +1 -1
  6. package/dist/cjs/index.d.ts.map +1 -1
  7. package/dist/cjs/index.js +2 -1
  8. package/dist/cjs/json-schema.d.ts +7 -0
  9. package/dist/cjs/json-schema.d.ts.map +1 -1
  10. package/dist/cjs/openapi-pp.d.ts +13 -0
  11. package/dist/cjs/openapi-pp.d.ts.map +1 -0
  12. package/dist/cjs/openapi-pp.js +169 -0
  13. package/dist/cjs/types.d.ts +2 -0
  14. package/dist/cjs/types.d.ts.map +1 -1
  15. package/dist/esm/codegen-v2.d.ts +32 -3
  16. package/dist/esm/codegen-v2.d.ts.map +1 -1
  17. package/dist/esm/codegen-v2.js +181 -2
  18. package/dist/esm/index.d.ts +1 -1
  19. package/dist/esm/index.d.ts.map +1 -1
  20. package/dist/esm/index.js +1 -1
  21. package/dist/esm/json-schema.d.ts +7 -0
  22. package/dist/esm/json-schema.d.ts.map +1 -1
  23. package/dist/esm/openapi-pp.d.ts +13 -0
  24. package/dist/esm/openapi-pp.d.ts.map +1 -0
  25. package/dist/esm/openapi-pp.js +165 -0
  26. package/dist/esm/types.d.ts +2 -0
  27. package/dist/esm/types.d.ts.map +1 -1
  28. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  29. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  30. package/dist/tsconfig.types.tsbuildinfo +1 -1
  31. package/dist/types/codegen-v2.d.ts +32 -3
  32. package/dist/types/codegen-v2.d.ts.map +1 -1
  33. package/dist/types/index.d.ts +1 -1
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/json-schema.d.ts +7 -0
  36. package/dist/types/json-schema.d.ts.map +1 -1
  37. package/dist/types/openapi-pp.d.ts +13 -0
  38. package/dist/types/openapi-pp.d.ts.map +1 -0
  39. package/dist/types/types.d.ts +2 -0
  40. package/dist/types/types.d.ts.map +1 -1
  41. package/package.json +6 -4
  42. package/tests/openapi-pp.test.ts +217 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @beff/client
2
2
 
3
+ ## 0.0.130
4
+
5
+ ### Patch Changes
6
+
7
+ - improve openapi mode
8
+ - Updated dependencies
9
+ - @beff/cli@0.0.130
10
+
11
+ ## 0.0.129
12
+
13
+ ### Patch Changes
14
+
15
+ - printing schema for openapi
16
+ - Updated dependencies
17
+ - @beff/cli@0.0.129
18
+
3
19
  ## 0.0.128
4
20
 
5
21
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { type BeffParser, type DecodeError } from "./types.js";
2
- import { JSONSchema7 } from "./json-schema.js";
2
+ import { JSONSchema7, JSONSchema7Definition } from "./json-schema.js";
3
3
  export { generateHashFromString, generateHashFromNumbers } from "./hash.js";
4
4
  type UserProvidedStringValidatorFn = (input: string) => boolean;
5
5
  export declare function registerStringFormatter(name: string, validator: UserProvidedStringValidatorFn): void;
@@ -10,9 +10,30 @@ type DescribeContext = {
10
10
  deps: Record<string, boolean | string>;
11
11
  deps_counter: Record<string, number>;
12
12
  };
13
+ export type SchemaPrintingMode = "flat" | "contextual";
14
+ export type SchemaPrintingContextOptions = {
15
+ refPathTemplate: string;
16
+ definitionContainerKey: string | null;
17
+ };
18
+ export declare class SchemaPrintingContext {
19
+ private readonly refPathTemplate;
20
+ readonly definitionContainerKey: string | null;
21
+ private readonly collectedDefinitions;
22
+ private readonly inProgressDefinitions;
23
+ constructor(options: SchemaPrintingContextOptions);
24
+ get refTemplate(): string;
25
+ getRef(name: string): string;
26
+ hasDefinition(name: string): boolean;
27
+ isDefinitionInProgress(name: string): boolean;
28
+ markDefinitionInProgress(name: string): void;
29
+ storeDefinition(name: string, schema: JSONSchema7Definition): void;
30
+ exportDefinitions(): Record<string, JSONSchema7Definition> | Record<string, Record<string, JSONSchema7Definition>>;
31
+ }
13
32
  type SchemaContext = {
14
33
  path: string[];
15
34
  seen: Record<string, boolean>;
35
+ mode: SchemaPrintingMode;
36
+ printingContext?: SchemaPrintingContext;
16
37
  };
17
38
  type ValidateContext = {
18
39
  disallowExtraProperties: boolean;
@@ -77,7 +98,7 @@ export declare class ConstRuntype implements Runtype {
77
98
  private value;
78
99
  constructor(value: Const);
79
100
  describe(_ctx: DescribeContext): string;
80
- schema(_ctx: SchemaContext): JSONSchema7;
101
+ schema(ctx: SchemaContext): JSONSchema7;
81
102
  validate(_ctx: ValidateContext, input: unknown): boolean;
82
103
  parseAfterValidation(_ctx: ParseContext, input: unknown): unknown;
83
104
  reportDecodeError(ctx: ReportContext, input: unknown): DecodeError[];
@@ -218,8 +239,16 @@ export declare class AnyOfDiscriminatedRuntype implements Runtype {
218
239
  private schemas;
219
240
  private discriminator;
220
241
  private mapping;
221
- constructor(schemas: Runtype[], discriminator: string, mapping: Record<string, Runtype>);
242
+ private schemaMapping;
243
+ constructor(schemas: Runtype[], discriminator: string, mapping: Record<string, Runtype>, schemaMapping: Record<string, Runtype>);
222
244
  schema(ctx: SchemaContext): JSONSchema7;
245
+ private getSchemaVariantRefs;
246
+ private getPrintingContext;
247
+ private getRefTarget;
248
+ private static sanitizeComponentNamePart;
249
+ private static getSyntheticRefName;
250
+ private ensureContextualDefinition;
251
+ private ensureSchemaVariantRef;
223
252
  validate(ctx: ValidateContext, input: unknown): boolean;
224
253
  parseAfterValidation(ctx: ParseContext, input: any): unknown;
225
254
  reportDecodeError(ctx: ReportContext, input: unknown): DecodeError[];
@@ -1 +1 @@
1
- {"version":3,"file":"codegen-v2.d.ts","sourceRoot":"","sources":["../../src/codegen-v2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen-v2.d.ts","sourceRoot":"","sources":["../../src/codegen-v2.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildParserFromRuntype = exports.overrideNamedType = exports.createNamedType = exports.BaseRefRuntype = exports.ObjectRuntype = exports.OptionalFieldRuntype = exports.AnyOfDiscriminatedRuntype = exports.SetRuntype = exports.MapRuntype = exports.ArrayRuntype = exports.AnyOfRuntype = exports.AllOfRuntype = exports.TupleRuntype = exports.AnyOfConstsRuntype = exports.NumberWithFormatRuntype = exports.StringWithFormatRuntype = exports.TypedArrayRuntype = exports.BigIntRuntype = exports.DateRuntype = exports.RegexRuntype = exports.ConstRuntype = exports.NeverRuntype = exports.NullishRuntype = exports.AnyRuntype = exports.TypeofRuntype = exports.generateHashFromNumbers = exports.generateHashFromString = void 0;
3
+ exports.buildParserFromRuntype = exports.overrideNamedType = exports.createNamedType = exports.BaseRefRuntype = exports.ObjectRuntype = exports.OptionalFieldRuntype = exports.AnyOfDiscriminatedRuntype = exports.SetRuntype = exports.MapRuntype = exports.ArrayRuntype = exports.AnyOfRuntype = exports.AllOfRuntype = exports.TupleRuntype = exports.AnyOfConstsRuntype = exports.NumberWithFormatRuntype = exports.StringWithFormatRuntype = exports.TypedArrayRuntype = exports.BigIntRuntype = exports.DateRuntype = exports.RegexRuntype = exports.ConstRuntype = exports.NeverRuntype = exports.NullishRuntype = exports.AnyRuntype = exports.TypeofRuntype = exports.SchemaPrintingContext = exports.generateHashFromNumbers = exports.generateHashFromString = void 0;
4
4
  exports.registerStringFormatter = registerStringFormatter;
5
5
  exports.registerNumberFormatter = registerNumberFormatter;
6
6
  const zod_1 = require("zod");
7
7
  const hash_js_1 = require("./hash.js");
8
+ const openapi_pp_js_1 = require("./openapi-pp.js");
8
9
  const err_js_1 = require("./err.js");
9
10
  var hash_js_2 = require("./hash.js");
10
11
  Object.defineProperty(exports, "generateHashFromString", { enumerable: true, get: function () { return hash_js_2.generateHashFromString; } });
@@ -234,6 +235,53 @@ const numberFormatters = {};
234
235
  function registerNumberFormatter(name, validator) {
235
236
  numberFormatters[name] = validator;
236
237
  }
238
+ class SchemaPrintingContext {
239
+ refPathTemplate;
240
+ definitionContainerKey;
241
+ collectedDefinitions;
242
+ inProgressDefinitions;
243
+ constructor(options) {
244
+ this.refPathTemplate = options.refPathTemplate;
245
+ this.definitionContainerKey = options.definitionContainerKey;
246
+ this.collectedDefinitions = {};
247
+ this.inProgressDefinitions = {};
248
+ }
249
+ get refTemplate() {
250
+ return this.refPathTemplate;
251
+ }
252
+ getRef(name) {
253
+ return this.refPathTemplate.replace("{name}", name);
254
+ }
255
+ hasDefinition(name) {
256
+ return name in this.collectedDefinitions;
257
+ }
258
+ isDefinitionInProgress(name) {
259
+ return this.inProgressDefinitions[name] === true;
260
+ }
261
+ markDefinitionInProgress(name) {
262
+ this.inProgressDefinitions[name] = true;
263
+ }
264
+ storeDefinition(name, schema) {
265
+ this.collectedDefinitions[name] = schema;
266
+ delete this.inProgressDefinitions[name];
267
+ }
268
+ exportDefinitions() {
269
+ const definitions = { ...this.collectedDefinitions };
270
+ const normalizedDefinitions = {};
271
+ for (const [name, schema] of Object.entries(definitions)) {
272
+ normalizedDefinitions[name] = (0, openapi_pp_js_1.normalizeOpenApiSchema)(schema, definitions, {
273
+ refPathTemplate: this.refPathTemplate,
274
+ });
275
+ }
276
+ if (this.definitionContainerKey == null) {
277
+ return normalizedDefinitions;
278
+ }
279
+ return {
280
+ [this.definitionContainerKey]: normalizedDefinitions,
281
+ };
282
+ }
283
+ }
284
+ exports.SchemaPrintingContext = SchemaPrintingContext;
237
285
  class TypeofRuntype {
238
286
  typeName;
239
287
  constructor(typeName) {
@@ -341,7 +389,17 @@ class ConstRuntype {
341
389
  describe(_ctx) {
342
390
  return JSON.stringify(this.value);
343
391
  }
344
- schema(_ctx) {
392
+ schema(ctx) {
393
+ if (ctx.mode == "contextual") {
394
+ const tp = typeof this.value;
395
+ if (tp === "string" || tp === "number" || tp === "boolean") {
396
+ // OpenAPI mode prefers a type + enum for constant values
397
+ return {
398
+ type: tp,
399
+ enum: [this.value],
400
+ };
401
+ }
402
+ }
345
403
  return { const: this.value };
346
404
  }
347
405
  validate(_ctx, input) {
@@ -591,6 +649,16 @@ class AnyOfConstsRuntype {
591
649
  return `(${inner})`;
592
650
  }
593
651
  schema(_ctx) {
652
+ const isSingleTypeof = this.values.length > 0 && this.values.every((v) => typeof v === typeof this.values[0]);
653
+ if (isSingleTypeof) {
654
+ const tp = typeof this.values[0];
655
+ if (tp == "string" || tp === "number" || tp === "boolean") {
656
+ return {
657
+ type: tp,
658
+ enum: this.values,
659
+ };
660
+ }
661
+ }
594
662
  return {
595
663
  enum: this.values,
596
664
  };
@@ -1005,16 +1073,92 @@ class AnyOfDiscriminatedRuntype {
1005
1073
  schemas;
1006
1074
  discriminator;
1007
1075
  mapping;
1008
- constructor(schemas, discriminator, mapping) {
1076
+ schemaMapping;
1077
+ constructor(schemas, discriminator, mapping, schemaMapping) {
1009
1078
  this.schemas = schemas;
1010
1079
  this.discriminator = discriminator;
1011
1080
  this.mapping = mapping;
1081
+ this.schemaMapping = schemaMapping;
1012
1082
  }
1013
1083
  schema(ctx) {
1084
+ if (ctx.mode === "contextual" && ctx.printingContext != null) {
1085
+ const variantRefs = this.getSchemaVariantRefs(ctx);
1086
+ return {
1087
+ type: "object",
1088
+ discriminator: {
1089
+ propertyName: this.discriminator,
1090
+ mapping: Object.fromEntries(variantRefs.map(({ key, ref }) => [key, ref])),
1091
+ },
1092
+ oneOf: variantRefs.map(({ ref }) => ({ $ref: ref })),
1093
+ };
1094
+ }
1014
1095
  return {
1096
+ type: "object",
1097
+ discriminator: {
1098
+ propertyName: this.discriminator,
1099
+ },
1015
1100
  anyOf: this.schemas.map((it) => it.schema(ctx)),
1016
1101
  };
1017
1102
  }
1103
+ getSchemaVariantRefs(ctx) {
1104
+ const unionHash = this.hash({ seen: {} });
1105
+ return Object.entries(this.schemaMapping).map(([key, schema]) => ({
1106
+ key,
1107
+ ref: this.ensureSchemaVariantRef(schema, key, unionHash, ctx),
1108
+ }));
1109
+ }
1110
+ getPrintingContext(ctx) {
1111
+ const printingContext = ctx.printingContext;
1112
+ if (printingContext == null) {
1113
+ throw new Error("INTERNAL ERROR: Missing SchemaPrintingContext");
1114
+ }
1115
+ return printingContext;
1116
+ }
1117
+ getRefTarget(runtype) {
1118
+ if (!(runtype instanceof BaseRefRuntype)) {
1119
+ return null;
1120
+ }
1121
+ const name = runtype.refName;
1122
+ return {
1123
+ name,
1124
+ target: runtype.getNamedRuntypes()[name],
1125
+ };
1126
+ }
1127
+ static sanitizeComponentNamePart(value) {
1128
+ const cleaned = value.replace(/[^a-zA-Z0-9]+/g, " ").trim();
1129
+ if (cleaned.length === 0) {
1130
+ return "Variant";
1131
+ }
1132
+ return cleaned
1133
+ .split(/\s+/)
1134
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
1135
+ .join("");
1136
+ }
1137
+ static getSyntheticRefName(discriminator, key, unionHash) {
1138
+ const discriminatorPart = AnyOfDiscriminatedRuntype.sanitizeComponentNamePart(discriminator);
1139
+ const keyPart = AnyOfDiscriminatedRuntype.sanitizeComponentNamePart(key);
1140
+ return `Discriminated${discriminatorPart}${keyPart}${Math.abs(unionHash)}`;
1141
+ }
1142
+ ensureContextualDefinition(name, target, ctx) {
1143
+ const printingContext = this.getPrintingContext(ctx);
1144
+ if (printingContext.hasDefinition(name) || printingContext.isDefinitionInProgress(name)) {
1145
+ return;
1146
+ }
1147
+ printingContext.markDefinitionInProgress(name);
1148
+ const body = target.schema(ctx);
1149
+ printingContext.storeDefinition(name, body);
1150
+ }
1151
+ ensureSchemaVariantRef(runtype, key, unionHash, ctx) {
1152
+ const printingContext = this.getPrintingContext(ctx);
1153
+ const refTarget = this.getRefTarget(runtype);
1154
+ if (refTarget != null) {
1155
+ this.ensureContextualDefinition(refTarget.name, refTarget.target, ctx);
1156
+ return printingContext.getRef(refTarget.name);
1157
+ }
1158
+ const syntheticRefName = AnyOfDiscriminatedRuntype.getSyntheticRefName(this.discriminator, key, unionHash);
1159
+ this.ensureContextualDefinition(syntheticRefName, runtype, ctx);
1160
+ return printingContext.getRef(syntheticRefName);
1161
+ }
1018
1162
  validate(ctx, input) {
1019
1163
  if (typeof input !== "object" || input == null) {
1020
1164
  return false;
@@ -1161,6 +1305,18 @@ class ObjectRuntype {
1161
1305
  if (indexSchemas.length === 0) {
1162
1306
  return { ...base, additionalProperties: false };
1163
1307
  }
1308
+ // special case for Record<string, unknown>
1309
+ if (Object.keys(properties).length === 0 && indexSchemas.length === 1) {
1310
+ const [indexSchema] = indexSchemas;
1311
+ return {
1312
+ type: "object",
1313
+ additionalProperties: typeof indexSchema.additionalProperties === "object" &&
1314
+ indexSchema.additionalProperties != null &&
1315
+ Object.keys(indexSchema.additionalProperties).length === 0
1316
+ ? true
1317
+ : indexSchema.additionalProperties,
1318
+ };
1319
+ }
1164
1320
  return {
1165
1321
  allOf: [base, ...indexSchemas],
1166
1322
  };
@@ -1338,6 +1494,18 @@ class BaseRefRuntype {
1338
1494
  schema(ctx) {
1339
1495
  const name = this.refName;
1340
1496
  const to = this.getNamedRuntypes()[this.refName];
1497
+ if (ctx.mode === "contextual") {
1498
+ const printingContext = ctx.printingContext;
1499
+ if (printingContext == null) {
1500
+ throw new Error("INTERNAL ERROR: Missing SchemaPrintingContext");
1501
+ }
1502
+ if (!printingContext.hasDefinition(name) && !printingContext.isDefinitionInProgress(name)) {
1503
+ printingContext.markDefinitionInProgress(name);
1504
+ const body = to.schema(ctx);
1505
+ printingContext.storeDefinition(name, body);
1506
+ }
1507
+ return { $ref: printingContext.getRef(name) };
1508
+ }
1341
1509
  if (ctx.seen[name]) {
1342
1510
  return {};
1343
1511
  }
@@ -1448,9 +1616,21 @@ class ParserFromRuntype {
1448
1616
  const ctx = {
1449
1617
  path: [],
1450
1618
  seen: {},
1619
+ mode: "flat",
1451
1620
  };
1452
1621
  return this._runtype.schema(ctx);
1453
1622
  }
1623
+ schemaWithContext(schemaPrintingContext) {
1624
+ const ctx = {
1625
+ path: [],
1626
+ seen: {},
1627
+ mode: "contextual",
1628
+ printingContext: schemaPrintingContext,
1629
+ };
1630
+ return (0, openapi_pp_js_1.normalizeOpenApiSchema)(this._runtype.schema(ctx), {}, {
1631
+ refPathTemplate: schemaPrintingContext.refTemplate,
1632
+ });
1633
+ }
1454
1634
  describe() {
1455
1635
  const ctx = {
1456
1636
  deps: {},
@@ -2,5 +2,5 @@ export { printErrors } from "./err.js";
2
2
  export { b, buntyped } from "./b.js";
3
3
  export { StringFormat, StringFormatExtends, NumberFormat, NumberFormatExtends, RegularDecodeError, UnionDecodeError, DecodeError, ParseOptions, BeffParser, BuildParserFunction, TypeOf, } from "./types.js";
4
4
  export { JSONSchema7TypeName, JSONSchema7Type, JSONSchema7Object, JSONSchema7Array, JSONSchema7Version, JSONSchema7Definition, JSONSchema7, } from "./json-schema.js";
5
- export { createNamedType, overrideNamedType } from "./codegen-v2.js";
5
+ export { createNamedType, overrideNamedType, SchemaPrintingContext } from "./codegen-v2.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.overrideNamedType = exports.createNamedType = exports.buntyped = exports.b = exports.printErrors = void 0;
3
+ exports.SchemaPrintingContext = exports.overrideNamedType = exports.createNamedType = exports.buntyped = exports.b = exports.printErrors = void 0;
4
4
  var err_js_1 = require("./err.js");
5
5
  Object.defineProperty(exports, "printErrors", { enumerable: true, get: function () { return err_js_1.printErrors; } });
6
6
  var b_js_1 = require("./b.js");
@@ -9,3 +9,4 @@ Object.defineProperty(exports, "buntyped", { enumerable: true, get: function ()
9
9
  var codegen_v2_js_1 = require("./codegen-v2.js");
10
10
  Object.defineProperty(exports, "createNamedType", { enumerable: true, get: function () { return codegen_v2_js_1.createNamedType; } });
11
11
  Object.defineProperty(exports, "overrideNamedType", { enumerable: true, get: function () { return codegen_v2_js_1.overrideNamedType; } });
12
+ Object.defineProperty(exports, "SchemaPrintingContext", { enumerable: true, get: function () { return codegen_v2_js_1.SchemaPrintingContext; } });
@@ -30,6 +30,12 @@ export type JSONSchema7Version = string;
30
30
  * @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01
31
31
  */
32
32
  export type JSONSchema7Definition = JSONSchema7 | boolean;
33
+ export interface OpenAPIDiscriminator {
34
+ propertyName: string;
35
+ mapping?: {
36
+ [key: string]: string;
37
+ } | undefined;
38
+ }
33
39
  export interface JSONSchema7 {
34
40
  $id?: string | undefined;
35
41
  $ref?: string | undefined;
@@ -125,5 +131,6 @@ export interface JSONSchema7 {
125
131
  readOnly?: boolean | undefined;
126
132
  writeOnly?: boolean | undefined;
127
133
  examples?: JSONSchema7Type | undefined;
134
+ discriminator?: OpenAPIDiscriminator | undefined;
128
135
  }
129
136
  //# sourceMappingURL=json-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../src/json-schema.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,MAAM,GACN,OAAO,GACP,iBAAiB,GACjB,gBAAgB,GAChB,IAAI,CAAC;AAGT,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;CAChC;AAID,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,eAAe,CAAC;CAAG;AAEnE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,OAAO,CAAC;AAC1D,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,KAAK,CAAC,EACF;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;KACtC,GACD,SAAS,CAAC;IAEd;;OAEG;IACH,IAAI,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,EAAE,GAAG,SAAS,CAAC;IAC/D,IAAI,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IACrC,KAAK,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IAEpC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEtC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,GAAG,SAAS,CAAC;IACpE,eAAe,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAE7C;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EACP;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;KACtC,GACD,SAAS,CAAC;IACd,iBAAiB,CAAC,EACd;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;KACtC,GACD,SAAS,CAAC;IACd,oBAAoB,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACzD,YAAY,CAAC,EACT;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,MAAM,EAAE,CAAC;KACjD,GACD,SAAS,CAAC;IACd,aAAa,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAElD;;OAEG;IACH,EAAE,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACzC,IAAI,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAEzC;;OAEG;IACH,KAAK,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAC5C,KAAK,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAC5C,KAAK,CAAC,EAAE,qBAAqB,EAAE,GAAG,SAAS,CAAC;IAC5C,GAAG,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAExC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAErC;;OAEG;IACH,WAAW,CAAC,EACR;QACE,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC;KACtC,GACD,SAAS,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CACxC"}
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../../src/json-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { JSONSchema7Definition } from "./json-schema.js";
2
+ type NormalizeOptions = {
3
+ refPathTemplate: string;
4
+ };
5
+ /**
6
+ * Normalizes generated JSON Schema into a shape that is easier for OpenAPI tooling
7
+ * to consume. The implementation is intentionally split in two phases:
8
+ * 1. recursively normalize nested child schemas
9
+ * 2. run object-level transforms on the current schema node
10
+ */
11
+ export declare const normalizeOpenApiSchema: (schema: JSONSchema7Definition, _definitions: Record<string, JSONSchema7Definition>, _options: NormalizeOptions) => JSONSchema7Definition;
12
+ export {};
13
+ //# sourceMappingURL=openapi-pp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi-pp.d.ts","sourceRoot":"","sources":["../../src/openapi-pp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEtE,KAAK,gBAAgB,GAAG;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAaF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,qBAAqB,EAC7B,cAAc,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACnD,UAAU,gBAAgB,KACzB,qBAEF,CAAC"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeOpenApiSchema = void 0;
4
+ /**
5
+ * Applies all object-schema transforms in order. The pipeline makes it explicit
6
+ * which post-processing operations run at object boundaries and in which order.
7
+ */
8
+ const runObjectSchemaPipeline = (schema) => {
9
+ const objectSchemaPipeline = [optionalizeNullUnionProperties];
10
+ return objectSchemaPipeline.reduce((acc, transform) => transform(acc), schema);
11
+ };
12
+ /**
13
+ * Normalizes generated JSON Schema into a shape that is easier for OpenAPI tooling
14
+ * to consume. The implementation is intentionally split in two phases:
15
+ * 1. recursively normalize nested child schemas
16
+ * 2. run object-level transforms on the current schema node
17
+ */
18
+ const normalizeOpenApiSchema = (schema, _definitions, _options) => {
19
+ return walkDefinition(schema);
20
+ };
21
+ exports.normalizeOpenApiSchema = normalizeOpenApiSchema;
22
+ /**
23
+ * Recursively walks a schema definition and normalizes every nested schema node.
24
+ * Booleans are JSON Schema leaf values, so they pass through untouched.
25
+ */
26
+ const walkDefinition = (definition) => {
27
+ if (typeof definition === "boolean") {
28
+ return definition;
29
+ }
30
+ const schema = { ...definition };
31
+ if (schema.properties != null) {
32
+ const properties = {};
33
+ for (const [key, value] of Object.entries(schema.properties)) {
34
+ properties[key] = walkDefinition(value);
35
+ }
36
+ schema.properties = properties;
37
+ }
38
+ if (schema.items != null) {
39
+ schema.items = Array.isArray(schema.items)
40
+ ? schema.items.map((item) => walkDefinition(item))
41
+ : walkDefinition(schema.items);
42
+ }
43
+ if (schema.additionalItems != null) {
44
+ schema.additionalItems = walkDefinition(schema.additionalItems);
45
+ }
46
+ if (schema.additionalProperties != null) {
47
+ schema.additionalProperties = walkDefinition(schema.additionalProperties);
48
+ }
49
+ if (schema.propertyNames != null) {
50
+ schema.propertyNames = walkDefinition(schema.propertyNames);
51
+ }
52
+ if (schema.contains != null) {
53
+ schema.contains = walkDefinition(schema.contains);
54
+ }
55
+ if (schema.not != null) {
56
+ schema.not = walkDefinition(schema.not);
57
+ }
58
+ if (schema.if != null) {
59
+ schema.if = walkDefinition(schema.if);
60
+ }
61
+ if (schema.then != null) {
62
+ schema.then = walkDefinition(schema.then);
63
+ }
64
+ if (schema.else != null) {
65
+ schema.else = walkDefinition(schema.else);
66
+ }
67
+ if (schema.anyOf != null) {
68
+ schema.anyOf = schema.anyOf.map((item) => walkDefinition(item));
69
+ }
70
+ if (schema.oneOf != null) {
71
+ schema.oneOf = schema.oneOf.map((item) => walkDefinition(item));
72
+ }
73
+ if (schema.allOf != null) {
74
+ schema.allOf = schema.allOf.map((item) => walkDefinition(item));
75
+ }
76
+ if (schema.$defs != null) {
77
+ schema.$defs = walkRecord(schema.$defs);
78
+ }
79
+ if (schema.definitions != null) {
80
+ schema.definitions = walkRecord(schema.definitions);
81
+ }
82
+ if (schema.patternProperties != null) {
83
+ schema.patternProperties = walkRecord(schema.patternProperties);
84
+ }
85
+ if (schema.dependencies != null) {
86
+ const dependencies = {};
87
+ for (const [key, value] of Object.entries(schema.dependencies)) {
88
+ dependencies[key] = Array.isArray(value) ? value : walkDefinition(value);
89
+ }
90
+ schema.dependencies = dependencies;
91
+ }
92
+ return runObjectSchemaPipeline(schema);
93
+ };
94
+ /**
95
+ * Recursively normalizes every value in a schema-definition map such as
96
+ * `properties`, `$defs`, `definitions`, or `patternProperties`.
97
+ */
98
+ const walkRecord = (record) => {
99
+ const normalized = {};
100
+ for (const [key, value] of Object.entries(record)) {
101
+ normalized[key] = walkDefinition(value);
102
+ }
103
+ return normalized;
104
+ };
105
+ /**
106
+ * Rewrites object properties shaped as `T | null` into optional properties.
107
+ *
108
+ * This only runs at object-property boundaries. Standalone unions, array items,
109
+ * and other non-property positions keep their original nullable-union semantics.
110
+ */
111
+ const optionalizeNullUnionProperties = (schema) => {
112
+ if (schema.properties == null) {
113
+ return schema;
114
+ }
115
+ const properties = {};
116
+ const optionalized = new Set();
117
+ for (const [key, value] of Object.entries(schema.properties)) {
118
+ const rewrite = removeNullUnionBranch(value);
119
+ if (rewrite != null) {
120
+ properties[key] = rewrite;
121
+ optionalized.add(key);
122
+ }
123
+ else {
124
+ properties[key] = value;
125
+ }
126
+ }
127
+ const required = schema.required?.filter((key) => !optionalized.has(key));
128
+ return {
129
+ ...schema,
130
+ properties,
131
+ required,
132
+ };
133
+ };
134
+ /**
135
+ * If a property schema is a top-level `anyOf`/`oneOf` that includes a `null`
136
+ * branch plus at least one non-null branch, remove the `null` branch.
137
+ *
138
+ * Returning `null` means "leave this property schema unchanged".
139
+ */
140
+ const removeNullUnionBranch = (definition) => {
141
+ if (typeof definition === "boolean") {
142
+ return null;
143
+ }
144
+ const variantsKey = definition.anyOf != null ? "anyOf" : definition.oneOf != null ? "oneOf" : null;
145
+ if (variantsKey == null) {
146
+ return null;
147
+ }
148
+ const variants = definition[variantsKey];
149
+ if (variants == null) {
150
+ return null;
151
+ }
152
+ const nonNull = variants.filter((variant) => !isNullDefinition(variant));
153
+ if (nonNull.length === variants.length || nonNull.length === 0) {
154
+ return null;
155
+ }
156
+ if (nonNull.length === 1) {
157
+ return nonNull[0];
158
+ }
159
+ return {
160
+ ...definition,
161
+ [variantsKey]: nonNull,
162
+ };
163
+ };
164
+ /**
165
+ * Detects a schema branch that represents JSON `null`.
166
+ */
167
+ const isNullDefinition = (definition) => {
168
+ return typeof definition !== "boolean" && definition.type === "null";
169
+ };
@@ -1,5 +1,6 @@
1
1
  import type { ZodType } from "zod";
2
2
  import { JSONSchema7 } from "./json-schema.js";
3
+ import type { SchemaPrintingContext } from "./codegen-v2.js";
3
4
  export type StringFormat<Tag1 extends string> = string & {
4
5
  [k in Tag1]: Tag1;
5
6
  };
@@ -40,6 +41,7 @@ export type BeffParser<T> = {
40
41
  name: string;
41
42
  validate(input: any, options?: ParseOptions): input is T;
42
43
  schema: () => JSONSchema7;
44
+ schemaWithContext: (ctx: SchemaPrintingContext) => JSONSchema7;
43
45
  describe: () => string;
44
46
  hash: () => number;
45
47
  };