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 +1 -1
- package/dist/api.d.mts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/api.js +1 -1
- package/dist/api.mjs +1 -1
- package/dist/{components-CUMu4QeI.mjs → components-0wA88nKJ.mjs} +25 -10
- package/dist/{components-CCPXuBcU.d.mts → components-CERE3LYU.d.mts} +5 -5
- package/dist/{components-D8Br4Oqx.d.ts → components-Ddt0DmKC.d.ts} +5 -5
- package/dist/{components-DpACv95L.js → components-Dvp0Kklk.js} +25 -10
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +6 -6
package/api/package.json
CHANGED
package/dist/api.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ComponentRegistry, Override, ZodOpenApiBaseMetadata, ZodOpenApiMetadata, createComponents, createRegistry } from "./components-
|
|
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-
|
|
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
package/dist/api.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { createComponents, createRegistry, isAnyZodType, unwrapZodObject } from "./components-
|
|
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(
|
|
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(
|
|
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))
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
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
|
|
328
|
-
|
|
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
|
-
}
|
|
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
|
|
328
|
-
|
|
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
|
-
}
|
|
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(
|
|
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(
|
|
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))
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
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-
|
|
2
|
-
import
|
|
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-
|
|
2
|
-
import
|
|
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
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createComponents, createPaths, createRegistry, createSchema } from "./components-
|
|
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.
|
|
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
|
|
50
|
-
"eslint-plugin-zod-openapi": "2.0.0
|
|
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
|
|
52
|
+
"skuba": "11.1.0",
|
|
53
53
|
"tsdown": "0.12.9",
|
|
54
54
|
"yaml": "2.8.0",
|
|
55
|
-
"zod": "
|
|
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"
|