zod-openapi 5.0.1 → 5.1.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/api/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "main": "../dist/api.cjs",
2
+ "main": "../dist/api.js",
3
3
  "module": "../dist/api.mjs",
4
4
  "types": "./index.d.ts"
5
5
  }
package/dist/api.d.mts CHANGED
@@ -1,6 +1,6 @@
1
- import { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, createComponents, createRegistry } from "./components-CCPXuBcU.mjs";
1
+ import { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverrideContext, createComponents, createRegistry } from "./components-CERE3LYU.mjs";
2
+ import * as core from "zod/v4/core";
2
3
  import { $ZodObject, $ZodType, $ZodTypes } from "zod/v4/core";
3
- import { core } from "zod/v4";
4
4
 
5
5
  //#region src/create/object.d.ts
6
6
  declare const unwrapZodObject: (zodType: $ZodTypes, io: "input" | "output", path: string[]) => $ZodObject;
@@ -8,4 +8,4 @@ declare const unwrapZodObject: (zodType: $ZodTypes, io: "input" | "output", path
8
8
  //#region src/zod.d.ts
9
9
  declare const isAnyZodType: (schema: unknown) => schema is core.$ZodTypes;
10
10
  //#endregion
11
- export { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, createComponents, createRegistry, isAnyZodType, unwrapZodObject };
11
+ export { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverrideContext, createComponents, createRegistry, isAnyZodType, unwrapZodObject };
package/dist/api.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, createComponents, createRegistry } from "./components-D8Br4Oqx.js";
1
+ import { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverrideContext, createComponents, createRegistry } from "./components-Ddt0DmKC.js";
2
+ import * as core from "zod/v4/core";
2
3
  import { $ZodObject, $ZodType, $ZodTypes } from "zod/v4/core";
3
- import { core } from "zod/v4";
4
4
 
5
5
  //#region src/create/object.d.ts
6
6
  declare const unwrapZodObject: (zodType: $ZodTypes, io: "input" | "output", path: string[]) => $ZodObject;
@@ -8,4 +8,4 @@ declare const unwrapZodObject: (zodType: $ZodTypes, io: "input" | "output", path
8
8
  //#region src/zod.d.ts
9
9
  declare const isAnyZodType: (schema: unknown) => schema is core.$ZodTypes;
10
10
  //#endregion
11
- export { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, createComponents, createRegistry, isAnyZodType, unwrapZodObject };
11
+ export { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, ZodOpenApiOverrideContext, createComponents, createRegistry, isAnyZodType, unwrapZodObject };
package/dist/api.js CHANGED
@@ -1,4 +1,4 @@
1
- const require_components = require('./components-DpACv95L.js');
1
+ const require_components = require('./components-Dvp0Kklk.js');
2
2
 
3
3
  exports.createComponents = require_components.createComponents;
4
4
  exports.createRegistry = require_components.createRegistry;
package/dist/api.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { createComponents, createRegistry, isAnyZodType, unwrapZodObject } from "./components-CUMu4QeI.mjs";
1
+ import { createComponents, createRegistry, isAnyZodType, unwrapZodObject } from "./components-0wA88nKJ.mjs";
2
2
 
3
3
  export { createComponents, createRegistry, isAnyZodType, unwrapZodObject };
@@ -246,10 +246,17 @@ const validate = (ctx, opts) => {
246
246
  const allowEmptySchema = opts.allowEmptySchema?.[def.type];
247
247
  if (allowEmptySchema === true || allowEmptySchema?.[ctx.io]) return;
248
248
  switch (def.type) {
249
+ case "optional": {
250
+ validate({
251
+ ...ctx,
252
+ zodSchema: def.innerType
253
+ }, opts);
254
+ return;
255
+ }
249
256
  case "any": return;
250
257
  case "unknown": return;
251
258
  case "pipe": {
252
- if (ctx.io === "output") throw new Error("Zod transform schemas are not supported in output schemas. Please use `.overwrite()` or wrap the schema in a `.pipe()`");
259
+ if (ctx.io === "output") throw new Error(`Zod transform found at ${ctx.path.join(" > ")} are not supported in output schemas. Please use \`.overwrite()\` or wrap the schema in a \`.pipe()\` or assign it manual metadata with \`.meta()\``);
253
260
  return;
254
261
  }
255
262
  case "transform": {
@@ -257,11 +264,11 @@ const validate = (ctx, opts) => {
257
264
  break;
258
265
  }
259
266
  case "literal": {
260
- if (def.values.includes(void 0)) throw new Error("Zod literal schemas cannot include `undefined` as a value. Please use `z.undefined()` or `.optional()` instead.");
267
+ if (def.values.includes(void 0)) throw new Error(`Zod literal at ${ctx.path.join(" > ")} cannot include \`undefined\` as a value. Please use \`z.undefined()\` or \`.optional()\` instead.`);
261
268
  return;
262
269
  }
263
270
  }
264
- throw new Error(`Zod schema of type \`${def.type}\` cannot be represented in OpenAPI. Please assign it metadata with \`.meta()\``);
271
+ throw new Error(`Zod schema of type \`${def.type}\` at ${ctx.path.join(" > ")} cannot be represented in OpenAPI. Please assign it metadata with \`.meta()\``);
265
272
  };
266
273
 
267
274
  //#endregion
@@ -352,6 +359,7 @@ const deleteZodOpenApiMeta = (jsonSchema) => {
352
359
  const deleteInvalidJsonSchemaFields = (jsonSchema) => {
353
360
  delete jsonSchema.$schema;
354
361
  delete jsonSchema.id;
362
+ delete jsonSchema.$id;
355
363
  };
356
364
  const createSchemas = (schemas, ctx) => {
357
365
  const refPath = ctx.opts.schemaRefPath ?? "#/components/schemas/";
@@ -393,14 +401,22 @@ const createSchemas = (schemas, ctx) => {
393
401
  const components = jsonSchema.schemas.__shared?.$defs ?? {};
394
402
  jsonSchema.schemas.__shared ??= { $defs: components };
395
403
  const dynamicComponents = /* @__PURE__ */ new Map();
396
- for (const [key, value] of Object.entries(components)) if (/^schema\d+$/.test(key)) {
397
- const newName = `__schema${ctx.registry.components.schemas.dynamicSchemaCount++}`;
398
- dynamicComponents.set(key, `"${refPath}${newName}"`);
399
- if (newName !== key) {
400
- components[newName] = value;
401
- delete components[key];
404
+ for (const [key, value] of Object.entries(components)) {
405
+ deleteInvalidJsonSchemaFields(value);
406
+ if (/^schema\d+$/.test(key)) {
407
+ const newName = `__schema${ctx.registry.components.schemas.dynamicSchemaCount++}`;
408
+ dynamicComponents.set(key, `"${refPath}${newName}"`);
409
+ if (newName !== key) {
410
+ components[newName] = value;
411
+ delete components[key];
412
+ }
402
413
  }
403
414
  }
415
+ for (const [key] of ctx.registry.components.schemas.manual) {
416
+ const manualComponent = jsonSchema.schemas[key];
417
+ if (!manualComponent) continue;
418
+ deleteInvalidJsonSchemaFields(manualComponent);
419
+ }
404
420
  const manualUsed = {};
405
421
  const parsedJsonSchema = JSON.parse(JSON.stringify(jsonSchema).replace(/"#ZOD_OPENAPI\/__shared#\/\$defs\/([^"]+)"/g, (_, match) => {
406
422
  const dynamic = dynamicComponents.get(match);
@@ -414,7 +430,6 @@ const createSchemas = (schemas, ctx) => {
414
430
  for (const [key] of ctx.registry.components.schemas.manual) {
415
431
  const manualComponent = parsedJsonSchema.schemas[key];
416
432
  if (!manualComponent) continue;
417
- deleteInvalidJsonSchemaFields(manualComponent);
418
433
  if (manualUsed[key]) {
419
434
  if (parsedComponents[key]) throw new Error(`Component "${key}" is already registered as a component in the registry`);
420
435
  parsedComponents[key] = manualComponent;
@@ -324,11 +324,11 @@ declare const openApiVersions: readonly ["3.1.0", "3.1.1"];
324
324
  type OpenApiVersion = (typeof openApiVersions)[number];
325
325
  //#endregion
326
326
  //#region src/types.d.ts
327
- type Override = (ctx: {
328
- zodSchema: core.$ZodTypes;
329
- jsonSchema: core.JSONSchema.BaseSchema;
327
+ type OverrideParameters = Parameters<NonNullable<NonNullable<Parameters<typeof core.toJSONSchema>[1]>['override']>>[0];
328
+ type ZodOpenApiOverrideContext = OverrideParameters & {
330
329
  io: 'input' | 'output';
331
- }) => void;
330
+ };
331
+ type Override = (ctx: ZodOpenApiOverrideContext) => void;
332
332
  interface ZodOpenApiBaseMetadata {
333
333
  /**
334
334
  * Used to set metadata for a parameter
@@ -630,4 +630,4 @@ interface ComponentRegistry {
630
630
  declare const createRegistry: (components?: ZodOpenApiComponentsObject) => ComponentRegistry;
631
631
  declare const createComponents: (registry: ComponentRegistry, opts: CreateDocumentOptions) => ComponentsObject;
632
632
  //#endregion
633
- export { 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, Override, 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, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
633
+ export { 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, Override, 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, ZodOpenApiOverrideContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
@@ -324,11 +324,11 @@ declare const openApiVersions: readonly ["3.1.0", "3.1.1"];
324
324
  type OpenApiVersion = (typeof openApiVersions)[number];
325
325
  //#endregion
326
326
  //#region src/types.d.ts
327
- type Override = (ctx: {
328
- zodSchema: core.$ZodTypes;
329
- jsonSchema: core.JSONSchema.BaseSchema;
327
+ type OverrideParameters = Parameters<NonNullable<NonNullable<Parameters<typeof core.toJSONSchema>[1]>['override']>>[0];
328
+ type ZodOpenApiOverrideContext = OverrideParameters & {
330
329
  io: 'input' | 'output';
331
- }) => void;
330
+ };
331
+ type Override = (ctx: ZodOpenApiOverrideContext) => void;
332
332
  interface ZodOpenApiBaseMetadata {
333
333
  /**
334
334
  * Used to set metadata for a parameter
@@ -630,4 +630,4 @@ interface ComponentRegistry {
630
630
  declare const createRegistry: (components?: ZodOpenApiComponentsObject) => ComponentRegistry;
631
631
  declare const createComponents: (registry: ComponentRegistry, opts: CreateDocumentOptions) => ComponentsObject;
632
632
  //#endregion
633
- export { 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, Override, 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, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
633
+ export { 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, Override, 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, ZodOpenApiOverrideContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createComponents, createDocument, createRegistry };
@@ -269,10 +269,17 @@ const validate = (ctx, opts) => {
269
269
  const allowEmptySchema = opts.allowEmptySchema?.[def.type];
270
270
  if (allowEmptySchema === true || allowEmptySchema?.[ctx.io]) return;
271
271
  switch (def.type) {
272
+ case "optional": {
273
+ validate({
274
+ ...ctx,
275
+ zodSchema: def.innerType
276
+ }, opts);
277
+ return;
278
+ }
272
279
  case "any": return;
273
280
  case "unknown": return;
274
281
  case "pipe": {
275
- if (ctx.io === "output") throw new Error("Zod transform schemas are not supported in output schemas. Please use `.overwrite()` or wrap the schema in a `.pipe()`");
282
+ if (ctx.io === "output") throw new Error(`Zod transform found at ${ctx.path.join(" > ")} are not supported in output schemas. Please use \`.overwrite()\` or wrap the schema in a \`.pipe()\` or assign it manual metadata with \`.meta()\``);
276
283
  return;
277
284
  }
278
285
  case "transform": {
@@ -280,11 +287,11 @@ const validate = (ctx, opts) => {
280
287
  break;
281
288
  }
282
289
  case "literal": {
283
- if (def.values.includes(void 0)) throw new Error("Zod literal schemas cannot include `undefined` as a value. Please use `z.undefined()` or `.optional()` instead.");
290
+ if (def.values.includes(void 0)) throw new Error(`Zod literal at ${ctx.path.join(" > ")} cannot include \`undefined\` as a value. Please use \`z.undefined()\` or \`.optional()\` instead.`);
284
291
  return;
285
292
  }
286
293
  }
287
- throw new Error(`Zod schema of type \`${def.type}\` cannot be represented in OpenAPI. Please assign it metadata with \`.meta()\``);
294
+ throw new Error(`Zod schema of type \`${def.type}\` at ${ctx.path.join(" > ")} cannot be represented in OpenAPI. Please assign it metadata with \`.meta()\``);
288
295
  };
289
296
 
290
297
  //#endregion
@@ -375,6 +382,7 @@ const deleteZodOpenApiMeta = (jsonSchema) => {
375
382
  const deleteInvalidJsonSchemaFields = (jsonSchema) => {
376
383
  delete jsonSchema.$schema;
377
384
  delete jsonSchema.id;
385
+ delete jsonSchema.$id;
378
386
  };
379
387
  const createSchemas = (schemas, ctx) => {
380
388
  const refPath = ctx.opts.schemaRefPath ?? "#/components/schemas/";
@@ -416,14 +424,22 @@ const createSchemas = (schemas, ctx) => {
416
424
  const components = jsonSchema.schemas.__shared?.$defs ?? {};
417
425
  jsonSchema.schemas.__shared ??= { $defs: components };
418
426
  const dynamicComponents = /* @__PURE__ */ new Map();
419
- for (const [key, value] of Object.entries(components)) if (/^schema\d+$/.test(key)) {
420
- const newName = `__schema${ctx.registry.components.schemas.dynamicSchemaCount++}`;
421
- dynamicComponents.set(key, `"${refPath}${newName}"`);
422
- if (newName !== key) {
423
- components[newName] = value;
424
- delete components[key];
427
+ for (const [key, value] of Object.entries(components)) {
428
+ deleteInvalidJsonSchemaFields(value);
429
+ if (/^schema\d+$/.test(key)) {
430
+ const newName = `__schema${ctx.registry.components.schemas.dynamicSchemaCount++}`;
431
+ dynamicComponents.set(key, `"${refPath}${newName}"`);
432
+ if (newName !== key) {
433
+ components[newName] = value;
434
+ delete components[key];
435
+ }
425
436
  }
426
437
  }
438
+ for (const [key] of ctx.registry.components.schemas.manual) {
439
+ const manualComponent = jsonSchema.schemas[key];
440
+ if (!manualComponent) continue;
441
+ deleteInvalidJsonSchemaFields(manualComponent);
442
+ }
427
443
  const manualUsed = {};
428
444
  const parsedJsonSchema = JSON.parse(JSON.stringify(jsonSchema).replace(/"#ZOD_OPENAPI\/__shared#\/\$defs\/([^"]+)"/g, (_, match) => {
429
445
  const dynamic = dynamicComponents.get(match);
@@ -437,7 +453,6 @@ const createSchemas = (schemas, ctx) => {
437
453
  for (const [key] of ctx.registry.components.schemas.manual) {
438
454
  const manualComponent = parsedJsonSchema.schemas[key];
439
455
  if (!manualComponent) continue;
440
- deleteInvalidJsonSchemaFields(manualComponent);
441
456
  if (manualUsed[key]) {
442
457
  if (parsedComponents[key]) throw new Error(`Component "${key}" is already registered as a component in the registry`);
443
458
  parsedComponents[key] = manualComponent;
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
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, Override, 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, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-CCPXuBcU.mjs";
2
- import { core } from "zod/v4";
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, Override, 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, ZodOpenApiOverrideContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-CERE3LYU.mjs";
2
+ import * as core from "zod/v4/core";
3
3
 
4
4
  //#region rolldown:runtime
5
5
  //#endregion
@@ -28,4 +28,4 @@ declare namespace oas31_d_exports {
28
28
  export { BaseParameterObject, CallbackObject, CallbacksObject, ComponentsObject, ContactObject, ContentObject, 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 };
29
29
  }
30
30
  //#endregion
31
- export { CreateDocumentOptions, Override, SchemaResult, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument, createSchema, oas31_d_exports as oas31 };
31
+ export { CreateDocumentOptions, Override, SchemaResult, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverrideContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument, createSchema, oas31_d_exports as oas31 };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
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, Override, 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, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-D8Br4Oqx.js";
2
- import { core } from "zod/v4";
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, Override, 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, ZodOpenApiOverrideContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument } from "./components-Ddt0DmKC.js";
2
+ import * as core from "zod/v4/core";
3
3
 
4
4
  //#region rolldown:runtime
5
5
  //#endregion
@@ -28,4 +28,4 @@ declare namespace oas31_d_exports {
28
28
  export { BaseParameterObject, CallbackObject, CallbacksObject, ComponentsObject, ContactObject, ContentObject, 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 };
29
29
  }
30
30
  //#endregion
31
- export { CreateDocumentOptions, Override, SchemaResult, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument, createSchema, oas31_d_exports as oas31 };
31
+ export { CreateDocumentOptions, Override, SchemaResult, ZodObjectInput, ZodOpenApiBaseMetadata, ZodOpenApiCallbackObject, ZodOpenApiCallbacksObject, ZodOpenApiComponentsObject, ZodOpenApiContentObject, ZodOpenApiExampleObject, ZodOpenApiExamplesObject, ZodOpenApiHeaderObject, ZodOpenApiHeadersObject, ZodOpenApiLinkObject, ZodOpenApiLinksObject, ZodOpenApiMediaTypeObject, ZodOpenApiMetadata, ZodOpenApiObject, ZodOpenApiOperationObject, ZodOpenApiOverrideContext, ZodOpenApiParameterObject, ZodOpenApiParameters, ZodOpenApiPathItemObject, ZodOpenApiPathsObject, ZodOpenApiRequestBodyObject, ZodOpenApiResponseObject, ZodOpenApiResponsesObject, ZodOpenApiSchemaObject, ZodOpenApiSecuritySchemeObject, ZodOpenApiVersion, createDocument, createSchema, oas31_d_exports as oas31 };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const require_components = require('./components-DpACv95L.js');
1
+ const require_components = require('./components-Dvp0Kklk.js');
2
2
 
3
3
  //#region src/create/document.ts
4
4
  const createDocument = (zodOpenApiObject, opts = {}) => {
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { createComponents, createPaths, createRegistry, createSchema } from "./components-CUMu4QeI.mjs";
1
+ import { createComponents, createPaths, createRegistry, createSchema } from "./components-0wA88nKJ.mjs";
2
2
 
3
3
  //#region src/create/document.ts
4
4
  const createDocument = (zodOpenApiObject, opts = {}) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-openapi",
3
- "version": "5.0.1",
3
+ "version": "5.1.1",
4
4
  "description": "Convert Zod Schemas to OpenAPI v3.x documentation",
5
5
  "keywords": [
6
6
  "typescript",
@@ -46,16 +46,16 @@
46
46
  "@redocly/cli": "1.34.4",
47
47
  "@types/node": "22.15.21",
48
48
  "ajv": "8.17.1",
49
- "eslint-plugin-import-zod": "1.0.3",
50
- "eslint-plugin-zod-openapi": "2.0.0-beta.1",
49
+ "eslint-plugin-import-zod": "1.1.0",
50
+ "eslint-plugin-zod-openapi": "2.0.0",
51
51
  "openapi3-ts": "4.5.0",
52
- "skuba": "11.0.1",
52
+ "skuba": "11.1.0",
53
53
  "tsdown": "0.12.9",
54
54
  "yaml": "2.8.0",
55
- "zod": "3.25.74"
55
+ "zod": "4.0.1"
56
56
  },
57
57
  "peerDependencies": {
58
- "zod": "^3.25.74"
58
+ "zod": "^3.25.74 || ^4.0.0"
59
59
  },
60
60
  "engines": {
61
61
  "node": ">=20"