zod-openapi 5.3.1 → 5.4.1

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/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <h1 align="center">zod-openapi</h1>
4
4
  </p>
5
5
  <p align="center">
6
- A TypeScript library which uses <a href="https://github.com/colinhacks/zod">Zod</a> schemas to generate OpenAPI v3.1x documentation.
6
+ A TypeScript library which uses <a href="https://github.com/colinhacks/zod">Zod</a> schemas to generate OpenAPI v3.x documentation.
7
7
  </p>
8
8
  <div align="center">
9
9
  <a href="https://www.npmjs.com/package/zod-openapi"><img src="https://img.shields.io/npm/v/zod-openapi"/></a>
package/dist/api.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_components = require('./components-Bgg6LgwE.cjs');
1
+ const require_components = require('./components-y0WDbAMK.cjs');
2
2
 
3
3
  exports.createComponents = require_components.createComponents;
4
4
  exports.createRegistry = require_components.createRegistry;
package/dist/api.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { ComponentRegistry, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, createComponents, createRegistry } from "./components-CJtL_UCT.cjs";
1
+ import { ComponentRegistry, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, createComponents, createRegistry } from "./components-JnL0iOr_.cjs";
2
2
  import * as core from "zod/v4/core";
3
3
  import { $ZodObject, $ZodType, $ZodTypes } from "zod/v4/core";
4
4
 
package/dist/api.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ComponentRegistry, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, createComponents, createRegistry } from "./components-BYHzS0hV.js";
1
+ import { ComponentRegistry, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, createComponents, createRegistry } from "./components-CXzxKPFp.js";
2
2
  import * as core from "zod/v4/core";
3
3
  import { $ZodObject, $ZodType, $ZodTypes } from "zod/v4/core";
4
4
 
package/dist/api.js CHANGED
@@ -1,3 +1,3 @@
1
- import { createComponents, createRegistry, isAnyZodType, unwrapZodObject } from "./components-B6MpvUFu.js";
1
+ import { createComponents, createRegistry, isAnyZodType, unwrapZodObject } from "./components-DTiQQs5D.js";
2
2
 
3
3
  export { createComponents, createRegistry, isAnyZodType, unwrapZodObject };
@@ -1,7 +1,7 @@
1
1
  import { $ZodType, $ZodTypes, JSONSchemaMeta, toJSONSchema } from "zod/v4/core";
2
2
 
3
3
  //#region src/openapi.d.ts
4
- declare const openApiVersions: readonly ["3.1.0", "3.1.1"];
4
+ declare const openApiVersions: readonly ["3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", "3.1.1"];
5
5
  type OpenApiVersion = (typeof openApiVersions)[number];
6
6
  //#endregion
7
7
  //#region packages/openapi3-ts/lib-types/dist/model/specification-extension.d.ts
@@ -630,6 +630,6 @@ interface ComponentRegistry {
630
630
  }) => ExampleObject | ReferenceObject;
631
631
  }
632
632
  declare const createRegistry: (components?: ZodOpenApiComponentsObject) => ComponentRegistry;
633
- declare const createComponents: (registry: ComponentRegistry, opts: CreateDocumentOptions) => ComponentsObject;
633
+ declare const createComponents: (registry: ComponentRegistry, opts: CreateDocumentOptions, openapiVersion?: OpenApiVersion) => ComponentsObject;
634
634
  //#endregion
635
- export { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, type ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
635
+ export { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, type ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OpenApiVersion, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
@@ -1,5 +1,5 @@
1
1
  import { globalRegistry } from "zod/v4/core";
2
- import { object, registry, toJSONSchema as toJSONSchema$1 } from "zod/v4";
2
+ import { globalRegistry as globalRegistry$1, object, registry, toJSONSchema as toJSONSchema$1 } from "zod/v4";
3
3
 
4
4
  //#region src/zod.ts
5
5
  const isAnyZodType = (schema) => typeof schema === "object" && schema !== null && "_zod" in schema;
@@ -187,6 +187,18 @@ const createPaths = (paths, registry$1, path) => {
187
187
  return pathsObject;
188
188
  };
189
189
 
190
+ //#endregion
191
+ //#region src/openapi.ts
192
+ const openApiVersions = [
193
+ "3.0.0",
194
+ "3.0.1",
195
+ "3.0.2",
196
+ "3.0.3",
197
+ "3.1.0",
198
+ "3.1.1"
199
+ ];
200
+ const satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against);
201
+
190
202
  //#endregion
191
203
  //#region src/create/schema/override.ts
192
204
  const override = (ctx) => {
@@ -218,7 +230,7 @@ const override = (ctx) => {
218
230
  }
219
231
  ctx.jsonSchema.discriminator.mapping = mapping;
220
232
  }
221
- const meta = ctx.zodSchema.meta();
233
+ const meta = globalRegistry$1.get(ctx.zodSchema);
222
234
  if (typeof meta?.unionOneOf === "boolean") {
223
235
  if (meta.unionOneOf) {
224
236
  ctx.jsonSchema.oneOf = ctx.jsonSchema.anyOf;
@@ -332,7 +344,8 @@ const createSchema = (schema, ctx = {
332
344
  opts: {
333
345
  ...ctx.opts,
334
346
  schemaRefPath: ctx.schemaRefPath
335
- }
347
+ },
348
+ openapiVersion: ctx.openapiVersion
336
349
  });
337
350
  return {
338
351
  schema: jsonSchemas.schemas.zodOpenApiCreateSchema,
@@ -366,7 +379,7 @@ const createSchemas = (schemas, ctx) => {
366
379
  const outputIds = /* @__PURE__ */ new Map();
367
380
  const jsonSchema = toJSONSchema$1(zodRegistry, {
368
381
  override(context) {
369
- const meta = context.zodSchema.meta();
382
+ const meta = globalRegistry$1.get(context.zodSchema);
370
383
  if (meta?.outputId && meta?.id) outputIds.set(meta.id, meta.outputId);
371
384
  if (context.jsonSchema.$ref) return;
372
385
  const enrichedContext = {
@@ -391,6 +404,7 @@ const createSchemas = (schemas, ctx) => {
391
404
  unrepresentable: "any",
392
405
  reused: ctx.opts.reused,
393
406
  cycles: ctx.opts.cycles,
407
+ target: satisfiesVersion(ctx.openapiVersion ?? "3.1.0", "3.1.0") ? void 0 : "openapi-3.0",
394
408
  uri: (id) => id === "__shared" ? `#ZOD_OPENAPI/${id}` : `#ZOD_OPENAPI/__shared#/$defs/${id}`
395
409
  });
396
410
  const components = jsonSchema.schemas.__shared?.$defs ?? {};
@@ -889,16 +903,18 @@ const createManualSchemas = (registry$1) => {
889
903
  registry$1.components.schemas.ids.set(key, schema);
890
904
  }
891
905
  };
892
- const createComponents = (registry$1, opts) => {
906
+ const createComponents = (registry$1, opts, openapiVersion) => {
893
907
  createIOSchemas({
894
908
  registry: registry$1,
895
909
  io: "input",
896
- opts
910
+ opts,
911
+ openapiVersion
897
912
  });
898
913
  createIOSchemas({
899
914
  registry: registry$1,
900
915
  io: "output",
901
- opts
916
+ opts,
917
+ openapiVersion
902
918
  });
903
919
  createManualSchemas(registry$1);
904
920
  const components = {};
@@ -1,7 +1,7 @@
1
1
  import { $ZodType, $ZodTypes, JSONSchemaMeta, toJSONSchema } from "zod/v4/core";
2
2
 
3
3
  //#region src/openapi.d.ts
4
- declare const openApiVersions: readonly ["3.1.0", "3.1.1"];
4
+ declare const openApiVersions: readonly ["3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.1.0", "3.1.1"];
5
5
  type OpenApiVersion = (typeof openApiVersions)[number];
6
6
  //#endregion
7
7
  //#region packages/openapi3-ts/lib-types/dist/model/specification-extension.d.ts
@@ -630,6 +630,6 @@ interface ComponentRegistry {
630
630
  }) => ExampleObject | ReferenceObject;
631
631
  }
632
632
  declare const createRegistry: (components?: ZodOpenApiComponentsObject) => ComponentRegistry;
633
- declare const createComponents: (registry: ComponentRegistry, opts: CreateDocumentOptions) => ComponentsObject;
633
+ declare const createComponents: (registry: ComponentRegistry, opts: CreateDocumentOptions, openapiVersion?: OpenApiVersion) => ComponentsObject;
634
634
  //#endregion
635
- export { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, type ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
635
+ export { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, type ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OpenApiVersion, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
@@ -21,8 +21,10 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  }) : target, mod));
22
22
 
23
23
  //#endregion
24
- const zod_v4_core = __toESM(require("zod/v4/core"));
25
- const zod_v4 = __toESM(require("zod/v4"));
24
+ let zod_v4_core = require("zod/v4/core");
25
+ zod_v4_core = __toESM(zod_v4_core);
26
+ let zod_v4 = require("zod/v4");
27
+ zod_v4 = __toESM(zod_v4);
26
28
 
27
29
  //#region src/zod.ts
28
30
  const isAnyZodType = (schema) => typeof schema === "object" && schema !== null && "_zod" in schema;
@@ -210,6 +212,18 @@ const createPaths = (paths, registry$1, path) => {
210
212
  return pathsObject;
211
213
  };
212
214
 
215
+ //#endregion
216
+ //#region src/openapi.ts
217
+ const openApiVersions = [
218
+ "3.0.0",
219
+ "3.0.1",
220
+ "3.0.2",
221
+ "3.0.3",
222
+ "3.1.0",
223
+ "3.1.1"
224
+ ];
225
+ const satisfiesVersion = (test, against) => openApiVersions.indexOf(test) >= openApiVersions.indexOf(against);
226
+
213
227
  //#endregion
214
228
  //#region src/create/schema/override.ts
215
229
  const override = (ctx) => {
@@ -241,7 +255,7 @@ const override = (ctx) => {
241
255
  }
242
256
  ctx.jsonSchema.discriminator.mapping = mapping;
243
257
  }
244
- const meta = ctx.zodSchema.meta();
258
+ const meta = zod_v4.globalRegistry.get(ctx.zodSchema);
245
259
  if (typeof meta?.unionOneOf === "boolean") {
246
260
  if (meta.unionOneOf) {
247
261
  ctx.jsonSchema.oneOf = ctx.jsonSchema.anyOf;
@@ -355,7 +369,8 @@ const createSchema = (schema, ctx = {
355
369
  opts: {
356
370
  ...ctx.opts,
357
371
  schemaRefPath: ctx.schemaRefPath
358
- }
372
+ },
373
+ openapiVersion: ctx.openapiVersion
359
374
  });
360
375
  return {
361
376
  schema: jsonSchemas.schemas.zodOpenApiCreateSchema,
@@ -389,7 +404,7 @@ const createSchemas = (schemas, ctx) => {
389
404
  const outputIds = /* @__PURE__ */ new Map();
390
405
  const jsonSchema = (0, zod_v4.toJSONSchema)(zodRegistry, {
391
406
  override(context) {
392
- const meta = context.zodSchema.meta();
407
+ const meta = zod_v4.globalRegistry.get(context.zodSchema);
393
408
  if (meta?.outputId && meta?.id) outputIds.set(meta.id, meta.outputId);
394
409
  if (context.jsonSchema.$ref) return;
395
410
  const enrichedContext = {
@@ -414,6 +429,7 @@ const createSchemas = (schemas, ctx) => {
414
429
  unrepresentable: "any",
415
430
  reused: ctx.opts.reused,
416
431
  cycles: ctx.opts.cycles,
432
+ target: satisfiesVersion(ctx.openapiVersion ?? "3.1.0", "3.1.0") ? void 0 : "openapi-3.0",
417
433
  uri: (id) => id === "__shared" ? `#ZOD_OPENAPI/${id}` : `#ZOD_OPENAPI/__shared#/$defs/${id}`
418
434
  });
419
435
  const components = jsonSchema.schemas.__shared?.$defs ?? {};
@@ -912,16 +928,18 @@ const createManualSchemas = (registry$1) => {
912
928
  registry$1.components.schemas.ids.set(key, schema);
913
929
  }
914
930
  };
915
- const createComponents = (registry$1, opts) => {
931
+ const createComponents = (registry$1, opts, openapiVersion) => {
916
932
  createIOSchemas({
917
933
  registry: registry$1,
918
934
  io: "input",
919
- opts
935
+ opts,
936
+ openapiVersion
920
937
  });
921
938
  createIOSchemas({
922
939
  registry: registry$1,
923
940
  io: "output",
924
- opts
941
+ opts,
942
+ openapiVersion
925
943
  });
926
944
  createManualSchemas(registry$1);
927
945
  const components = {};
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- const require_components = require('./components-Bgg6LgwE.cjs');
1
+ const require_components = require('./components-y0WDbAMK.cjs');
2
2
 
3
3
  //#region src/create/document.ts
4
4
  const createDocument = (zodOpenApiObject, opts = {}) => {
@@ -9,7 +9,7 @@ const createDocument = (zodOpenApiObject, opts = {}) => {
9
9
  if (createdPaths) document.paths = createdPaths;
10
10
  const createdWebhooks = require_components.createPaths(webhooks, registry, ["webhooks"]);
11
11
  if (createdWebhooks) document.webhooks = createdWebhooks;
12
- const createdComponents = require_components.createComponents(registry, opts);
12
+ const createdComponents = require_components.createComponents(registry, opts, zodOpenApiObject.openapi);
13
13
  if (Object.keys(createdComponents).length > 0) document.components = createdComponents;
14
14
  return document;
15
15
  };
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-CJtL_UCT.cjs";
1
+ import { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OpenApiVersion, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-JnL0iOr_.cjs";
2
2
  import * as core from "zod/v4/core";
3
3
 
4
4
  //#region rolldown:runtime
@@ -23,6 +23,7 @@ declare const createSchema: (schema: core.$ZodType, ctx?: {
23
23
  * The $ref path to use for a schema component. Defaults to `#/components/schemas/`
24
24
  */
25
25
  schemaRefPath?: string;
26
+ openapiVersion?: OpenApiVersion;
26
27
  }) => {
27
28
  schema: SchemaObject | ReferenceObject;
28
29
  components: Record<string, SchemaObject>;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-BYHzS0hV.js";
1
+ import { BaseParameterObject, CallbackObject, CallbacksObject, ComponentRegistry, ComponentsObject, ContactObject, ContentObject, CreateDocumentOptions, DiscriminatorObject, EncodingObject, EncodingPropertyObject, ExampleObject, ExamplesObject, ExternalDocumentationObject, HeaderObject, HeadersObject, IExtensionName, IExtensionType, ISpecificationExtension, InfoObject, LicenseObject, LinkObject, LinkParametersObject, LinksObject, MediaTypeObject, OAuthFlowObject, OAuthFlowsObject, OpenAPIObject, OpenApiVersion, OperationObject, ParameterLocation, ParameterObject, ParameterStyle, PathItemObject, PathObject, PathsObject, ReferenceObject, RequestBodyObject, ResponseObject, ResponsesObject, SchemaObject, SchemaObjectType, SchemasObject, ScopesObject, SecurityRequirementObject, SecuritySchemeObject, SecuritySchemeType, ServerObject, ServerVariableObject, TagObject, XmlObject, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverride, ZodOpenApiOverrideContext, ZodOpenApiOverrideMeta, ZodOpenApiOverrideMetaContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-CXzxKPFp.js";
2
2
  import * as core from "zod/v4/core";
3
3
 
4
4
  //#region rolldown:runtime
@@ -23,6 +23,7 @@ declare const createSchema: (schema: core.$ZodType, ctx?: {
23
23
  * The $ref path to use for a schema component. Defaults to `#/components/schemas/`
24
24
  */
25
25
  schemaRefPath?: string;
26
+ openapiVersion?: OpenApiVersion;
26
27
  }) => {
27
28
  schema: SchemaObject | ReferenceObject;
28
29
  components: Record<string, SchemaObject>;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { createComponents, createPaths, createRegistry, createSchema } from "./components-B6MpvUFu.js";
1
+ import { createComponents, createPaths, createRegistry, createSchema } from "./components-DTiQQs5D.js";
2
2
 
3
3
  //#region src/create/document.ts
4
4
  const createDocument = (zodOpenApiObject, opts = {}) => {
@@ -9,7 +9,7 @@ const createDocument = (zodOpenApiObject, opts = {}) => {
9
9
  if (createdPaths) document.paths = createdPaths;
10
10
  const createdWebhooks = createPaths(webhooks, registry, ["webhooks"]);
11
11
  if (createdWebhooks) document.webhooks = createdWebhooks;
12
- const createdComponents = createComponents(registry, opts);
12
+ const createdComponents = createComponents(registry, opts, zodOpenApiObject.openapi);
13
13
  if (Object.keys(createdComponents).length > 0) document.components = createdComponents;
14
14
  return document;
15
15
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-openapi",
3
- "version": "5.3.1",
3
+ "version": "5.4.1",
4
4
  "description": "Convert Zod Schemas to OpenAPI v3.x documentation",
5
5
  "keywords": [
6
6
  "typescript",
@@ -44,19 +44,19 @@
44
44
  "devDependencies": {
45
45
  "@arethetypeswrong/cli": "0.18.2",
46
46
  "@changesets/changelog-github": "0.5.1",
47
- "@changesets/cli": "2.29.5",
48
- "@redocly/cli": "2.0.2",
47
+ "@changesets/cli": "2.29.6",
48
+ "@redocly/cli": "2.0.8",
49
49
  "@types/node": "22.15.21",
50
50
  "@vitest/coverage-v8": "3.2.4",
51
51
  "@zod-openapi/openapi3-ts": "1.0.0",
52
52
  "ajv": "8.17.1",
53
53
  "eslint-plugin-import-zod": "1.2.0",
54
54
  "eslint-plugin-zod-openapi": "2.0.0",
55
- "skuba": "12.0.2",
56
- "tsdown": "0.13.2",
55
+ "skuba": "12.2.0",
56
+ "tsdown": "0.14.2",
57
57
  "vitest": "3.2.4",
58
- "yaml": "2.8.0",
59
- "zod": "4.0.14"
58
+ "yaml": "2.8.1",
59
+ "zod": "4.1.5"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "zod": "^3.25.74 || ^4.0.0"
@@ -72,7 +72,7 @@
72
72
  "entryPoint": "src/index.ts",
73
73
  "template": "oss-npm-package",
74
74
  "type": "package",
75
- "version": "11.0.0"
75
+ "version": "12.1.1"
76
76
  },
77
77
  "scripts": {
78
78
  "build": "pnpm -r build && tsdown",