zod-openapi 0.6.0 → 0.7.0
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 +28 -16
- package/lib-commonjs/create/components.js +32 -23
- package/lib-commonjs/create/components.js.map +1 -1
- package/lib-commonjs/create/schema/index.js +14 -13
- package/lib-commonjs/create/schema/index.js.map +1 -1
- package/lib-commonjs/create/schema/metadata.js +1 -1
- package/lib-commonjs/create/schema/metadata.js.map +1 -1
- package/lib-es2015/create/components.js +32 -23
- package/lib-es2015/create/components.js.map +1 -1
- package/lib-es2015/create/schema/index.js +14 -13
- package/lib-es2015/create/schema/index.js.map +1 -1
- package/lib-es2015/create/schema/metadata.js +1 -1
- package/lib-es2015/create/schema/metadata.js.map +1 -1
- package/lib-types/create/components.d.ts +5 -7
- package/lib-types/create/schema/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# zod-openapi
|
|
2
2
|
|
|
3
|
-
A Typescript library to create full OpenAPI 3 documentation from [Zod](https://github.com/colinhacks/zod) Types.
|
|
3
|
+
A Typescript library to create full OpenAPI 3.x documentation from [Zod](https://github.com/colinhacks/zod) Types.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/zod-openapi)
|
|
6
6
|
[](https://www.npmjs.com/package/zod-openapi)
|
|
@@ -179,7 +179,7 @@ const document = createDocumentYaml(
|
|
|
179
179
|
version: '1.0.0',
|
|
180
180
|
},
|
|
181
181
|
},
|
|
182
|
-
{ options: {
|
|
182
|
+
{ options: { aliasDuplicateObjects: false } },
|
|
183
183
|
);
|
|
184
184
|
```
|
|
185
185
|
|
|
@@ -258,12 +258,17 @@ createDocument({
|
|
|
258
258
|
|
|
259
259
|
### Creating Components
|
|
260
260
|
|
|
261
|
-
OpenAPI allows you to define reusable [components](https://swagger.io/docs/specification/components/) and this library allows you to replicate that in
|
|
261
|
+
OpenAPI allows you to define reusable [components](https://swagger.io/docs/specification/components/) and this library allows you to replicate that in two separate ways.
|
|
262
|
+
|
|
263
|
+
1. Auto registering schema
|
|
264
|
+
2. Manually registering schema
|
|
262
265
|
|
|
263
266
|
#### Schema
|
|
264
267
|
|
|
265
268
|
If we take the example in `createDocument` and instead create `title` as follows
|
|
266
269
|
|
|
270
|
+
##### Auto Registering Schema
|
|
271
|
+
|
|
267
272
|
```typescript
|
|
268
273
|
const title = z.string().openapi({
|
|
269
274
|
description: 'Job title',
|
|
@@ -298,7 +303,9 @@ Wherever `title` is used in schemas across the document, it will instead be crea
|
|
|
298
303
|
|
|
299
304
|
This can be an extremely powerful way to generate better Open API documentation. There are some Open API features like [discriminator mapping](https://swagger.io/docs/specification/data-models/inheritance-and-polymorphism/) which require all schemas in the union to contain a ref.
|
|
300
305
|
|
|
301
|
-
|
|
306
|
+
##### Manually Registering Schema
|
|
307
|
+
|
|
308
|
+
Another way to register schema instead of adding a `ref` is to add it to the components directly. This will still work in the same way as `ref`. So whenever we run into that Zod type we will replace it with a reference.
|
|
302
309
|
|
|
303
310
|
eg.
|
|
304
311
|
|
|
@@ -306,7 +313,7 @@ eg.
|
|
|
306
313
|
{
|
|
307
314
|
"components": {
|
|
308
315
|
"schemas": {
|
|
309
|
-
MyJobSchema //
|
|
316
|
+
MyJobSchema // this will register this Zod Schema as MyJobSchema unless `ref` in `.openapi()` is specified on the type
|
|
310
317
|
}
|
|
311
318
|
}
|
|
312
319
|
}
|
|
@@ -316,9 +323,9 @@ eg.
|
|
|
316
323
|
|
|
317
324
|
`.transform()` is complicated because it technically comprises of two types (input & output). This means that we need to understand which type you are creating. If you are adding the ZodSchema directly to the `components` section, context is required with knowing to create an input schema or an output schema. You can do this by setting the `refType` field to `input` or `output` in `.openapi()`. This defaults to `output` by default.
|
|
318
325
|
|
|
319
|
-
|
|
326
|
+
If a registered schema with a transform is used in both a request and response schema you will receive an error because the created schema for each will be different. To override the creation type for a specific ZodEffect, add an `.openapi()` field and set the `effectType` field to `input`. This will force this library to always generate the input type even if we are creating a response type.
|
|
320
327
|
|
|
321
|
-
|
|
328
|
+
`.preprocess()` will always return the `output` type even if we are creating an input schema. If a different input type is required you can achieve this with a `.transform()` combined with a `.pipe()` or simply declare a manual `type` in `.openapi()`.
|
|
322
329
|
|
|
323
330
|
#### Parameters
|
|
324
331
|
|
|
@@ -393,7 +400,7 @@ For example in `z.string().nullable()` will be rendered differently
|
|
|
393
400
|
- ZodDiscriminatedUnion
|
|
394
401
|
- `discriminator` mapping when all schemas in the union contain a `ref`.
|
|
395
402
|
- ZodEffects
|
|
396
|
-
- `transform` support for request schemas.
|
|
403
|
+
- `transform` support for request schemas. See [Zod Effects](#zod-effects) for how to enable response schema support
|
|
397
404
|
- `pre-process` full support.
|
|
398
405
|
- `refine` full support.
|
|
399
406
|
- ZodEnum
|
|
@@ -480,7 +487,7 @@ To release a new beta version
|
|
|
480
487
|
|
|
481
488
|
### [@asteasolutions/zod-to-openapi](https://github.com/asteasolutions/zod-to-openapi)
|
|
482
489
|
|
|
483
|
-
zod-openapi was created while trying to re-write
|
|
490
|
+
zod-openapi was created while trying to re-write this library to support auto registering schemas. However, the underlying structure of the library which consists of tightly coupled classes would not allow for this be done easily in a way that I envisioned. Did I really rewrite an entire library just for this? Absolutely. I believe that creating documentation should be as simple and as frictionless as possible.
|
|
484
491
|
|
|
485
492
|
#### Migration
|
|
486
493
|
|
|
@@ -510,21 +517,22 @@ registry.registerComponent('securitySchemes', 'auth', {
|
|
|
510
517
|
type: 'http',
|
|
511
518
|
scheme: 'bearer',
|
|
512
519
|
bearerFormat: 'JWT',
|
|
513
|
-
description: 'An auth token issued by oauth
|
|
520
|
+
description: 'An auth token issued by oauth',
|
|
514
521
|
});
|
|
515
522
|
// Replace with regular component declaration
|
|
516
523
|
|
|
517
524
|
const document = createDocument({
|
|
518
525
|
components: {
|
|
519
|
-
|
|
526
|
+
// declare directly in components
|
|
527
|
+
securitySchemes: {
|
|
520
528
|
auth: {
|
|
521
529
|
type: 'http',
|
|
522
530
|
scheme: 'bearer',
|
|
523
531
|
bearerFormat: 'JWT',
|
|
524
|
-
description: 'An auth token issued by oauth
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
}
|
|
532
|
+
description: 'An auth token issued by oauth',
|
|
533
|
+
},
|
|
534
|
+
},
|
|
535
|
+
},
|
|
528
536
|
});
|
|
529
537
|
```
|
|
530
538
|
|
|
@@ -539,6 +547,8 @@ registry.registerPath({
|
|
|
539
547
|
request: {
|
|
540
548
|
query: z.object({ a: z.string() }),
|
|
541
549
|
params: z.object({ b: z.string() }),
|
|
550
|
+
body: z.object({ c: z.string() }),
|
|
551
|
+
headers: z.object({ d: z.string() })
|
|
542
552
|
},
|
|
543
553
|
responses: {},
|
|
544
554
|
});
|
|
@@ -548,8 +558,10 @@ const getFoo: ZodOpenApiPathItemObject = {
|
|
|
548
558
|
get: {
|
|
549
559
|
requestParams: {
|
|
550
560
|
query: z.object({ a: z.string() }),
|
|
551
|
-
path: z.object({ b: z.string() }), //
|
|
561
|
+
path: z.object({ b: z.string() }), // params -> path
|
|
562
|
+
header: z.object({ c: z.string() }) // headers -> header
|
|
552
563
|
}, // renamed from request -> requestParams
|
|
564
|
+
requestBody: z.object({c: z.string() }) // request.body -> requestBody
|
|
553
565
|
responses: {},
|
|
554
566
|
},
|
|
555
567
|
};
|
|
@@ -5,7 +5,7 @@ const zod_1 = require("zod");
|
|
|
5
5
|
const metadata_1 = require("./schema/metadata");
|
|
6
6
|
const getDefaultComponents = (componentsObject, openapi = '3.1.0') => {
|
|
7
7
|
const defaultComponents = {
|
|
8
|
-
schemas:
|
|
8
|
+
schemas: new Map(),
|
|
9
9
|
parameters: {},
|
|
10
10
|
headers: {},
|
|
11
11
|
openapi,
|
|
@@ -24,26 +24,23 @@ const createSchemas = (schemas, components) => {
|
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
return Object.entries(schemas).forEach(([key, schema]) => {
|
|
27
|
-
const ref = schema instanceof zod_1.ZodType ? schema._def.openapi?.ref ?? key : key;
|
|
28
|
-
const component = components.schemas[key];
|
|
29
|
-
if (component) {
|
|
30
|
-
throw new Error(`schemaRef "${ref}" is already registered`);
|
|
31
|
-
}
|
|
32
27
|
if (schema instanceof zod_1.ZodType) {
|
|
28
|
+
const ref = schema._def.openapi?.ref ?? key;
|
|
29
|
+
const component = components.schemas.get(schema);
|
|
30
|
+
if (component) {
|
|
31
|
+
throw new Error(`schemaRef "${ref}" is already registered`);
|
|
32
|
+
}
|
|
33
33
|
const state = {
|
|
34
34
|
components,
|
|
35
35
|
type: schema._def.openapi?.refType ?? 'output',
|
|
36
36
|
};
|
|
37
|
-
components.schemas
|
|
37
|
+
components.schemas.set(schema, {
|
|
38
|
+
ref,
|
|
38
39
|
schemaObject: (0, metadata_1.createSchemaWithMetadata)(schema, state),
|
|
39
|
-
zodSchema: schema,
|
|
40
40
|
types: state.effectType ? [state.effectType] : ['input', 'output'],
|
|
41
|
-
};
|
|
41
|
+
});
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
|
-
components.schemas[ref] = {
|
|
45
|
-
schemaObject: schema,
|
|
46
|
-
};
|
|
47
44
|
});
|
|
48
45
|
};
|
|
49
46
|
const createParameters = (parameters, components) => {
|
|
@@ -77,25 +74,37 @@ const createHeaders = (headers, components) => {
|
|
|
77
74
|
const createComponentSchemaRef = (schemaRef) => `#/components/schemas/${schemaRef}`;
|
|
78
75
|
exports.createComponentSchemaRef = createComponentSchemaRef;
|
|
79
76
|
const createComponents = (componentsObject, components) => {
|
|
80
|
-
const
|
|
81
|
-
const
|
|
82
|
-
const
|
|
77
|
+
const combinedSchemas = createSchemaComponents(componentsObject, components.schemas);
|
|
78
|
+
const combinedParameters = createParamComponents(components.parameters);
|
|
79
|
+
const combinedHeaders = createHeaderComponents(components.headers);
|
|
80
|
+
const { schemas, parameters, headers, ...rest } = componentsObject;
|
|
83
81
|
const finalComponents = {
|
|
84
|
-
...
|
|
85
|
-
...(
|
|
86
|
-
...(
|
|
87
|
-
...(
|
|
82
|
+
...rest,
|
|
83
|
+
...(combinedSchemas && { schemas: combinedSchemas }),
|
|
84
|
+
...(combinedParameters && { parameters: combinedParameters }),
|
|
85
|
+
...(combinedHeaders && { headers: combinedHeaders }),
|
|
88
86
|
};
|
|
89
87
|
return Object.keys(finalComponents).length ? finalComponents : undefined;
|
|
90
88
|
};
|
|
91
89
|
exports.createComponents = createComponents;
|
|
92
|
-
const createSchemaComponents = (
|
|
93
|
-
const
|
|
94
|
-
if (value) {
|
|
95
|
-
acc
|
|
90
|
+
const createSchemaComponents = (componentsObject, componentMap) => {
|
|
91
|
+
const customComponents = Object.entries(componentsObject.schemas ?? {}).reduce((acc, [key, value]) => {
|
|
92
|
+
if (value instanceof zod_1.ZodType) {
|
|
93
|
+
return acc;
|
|
94
|
+
}
|
|
95
|
+
if (acc[key]) {
|
|
96
|
+
throw new Error(`Schema "${key}" is already registered`);
|
|
96
97
|
}
|
|
98
|
+
acc[key] = value;
|
|
97
99
|
return acc;
|
|
98
100
|
}, {});
|
|
101
|
+
const components = Array.from(componentMap).reduce((acc, [_zodType, value]) => {
|
|
102
|
+
if (acc[value.ref]) {
|
|
103
|
+
throw new Error(`Schema "${value.ref}" is already registered`);
|
|
104
|
+
}
|
|
105
|
+
acc[value.ref] = value.schemaObject;
|
|
106
|
+
return acc;
|
|
107
|
+
}, customComponents);
|
|
99
108
|
return Object.keys(components).length ? components : undefined;
|
|
100
109
|
};
|
|
101
110
|
const createParamComponents = (component) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/create/components.ts"],"names":[],"mappings":";;;AACA,6BAA8B;AAI9B,gDAA6D;
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/create/components.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,19 +114,20 @@ const createSchema = (zodSchema, state) => {
|
|
|
114
114
|
return (0, manual_1.createManualTypeSchema)(zodSchema);
|
|
115
115
|
};
|
|
116
116
|
exports.createSchema = createSchema;
|
|
117
|
-
const createRegisteredSchema = (zodSchema,
|
|
118
|
-
const component = state.components.schemas
|
|
117
|
+
const createRegisteredSchema = (zodSchema, state) => {
|
|
118
|
+
const component = state.components.schemas.get(zodSchema);
|
|
119
119
|
if (component) {
|
|
120
|
-
if (component.zodSchema !== zodSchema) {
|
|
121
|
-
throw new Error(`schemaRef "${schemaRef}" is already registered`);
|
|
122
|
-
}
|
|
123
120
|
if (!component.types?.includes(state.type)) {
|
|
124
|
-
throw new Error(`schemaRef "${
|
|
121
|
+
throw new Error(`schemaRef "${component.ref}" was created with a ZodTransform meaning that the input type is different from the output type. This type is currently being referenced in a response and request. Wrap it in a ZodPipeline, assign it a manual type or effectType`);
|
|
125
122
|
}
|
|
126
123
|
return {
|
|
127
|
-
$ref: (0, components_1.createComponentSchemaRef)(
|
|
124
|
+
$ref: (0, components_1.createComponentSchemaRef)(component.ref),
|
|
128
125
|
};
|
|
129
126
|
}
|
|
127
|
+
const schemaRef = zodSchema._def.openapi?.ref;
|
|
128
|
+
if (!schemaRef) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
130
131
|
const newState = {
|
|
131
132
|
components: state.components,
|
|
132
133
|
type: state.type,
|
|
@@ -136,11 +137,11 @@ const createRegisteredSchema = (zodSchema, schemaRef, state) => {
|
|
|
136
137
|
if ('$ref' in schemaOrRef) {
|
|
137
138
|
throw new Error('Unexpected Error: received a reference object');
|
|
138
139
|
}
|
|
139
|
-
state.components.schemas
|
|
140
|
+
state.components.schemas.set(zodSchema, {
|
|
141
|
+
ref: schemaRef,
|
|
140
142
|
schemaObject: schemaOrRef,
|
|
141
|
-
zodSchema,
|
|
142
143
|
types: newState?.effectType ? [newState.effectType] : ['input', 'output'],
|
|
143
|
-
};
|
|
144
|
+
});
|
|
144
145
|
if (newState.effectType) {
|
|
145
146
|
state.effectType = newState.effectType;
|
|
146
147
|
}
|
|
@@ -150,9 +151,9 @@ const createRegisteredSchema = (zodSchema, schemaRef, state) => {
|
|
|
150
151
|
};
|
|
151
152
|
exports.createRegisteredSchema = createRegisteredSchema;
|
|
152
153
|
const createSchemaOrRef = (zodSchema, state) => {
|
|
153
|
-
const
|
|
154
|
-
if (
|
|
155
|
-
return
|
|
154
|
+
const schema = (0, exports.createRegisteredSchema)(zodSchema, state);
|
|
155
|
+
if (schema) {
|
|
156
|
+
return schema;
|
|
156
157
|
}
|
|
157
158
|
return (0, metadata_1.createSchemaWithMetadata)(zodSchema, state);
|
|
158
159
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/create/schema/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/create/schema/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.enhanceWithMetadata = exports.createSchemaWithMetadata = void 0;
|
|
4
4
|
const _1 = require(".");
|
|
5
5
|
const createSchemaWithMetadata = (zodSchema, state) => {
|
|
6
|
-
const {
|
|
6
|
+
const { effectType, param, header, ref, refType, ...additionalMetadata } = zodSchema._def.openapi ?? {};
|
|
7
7
|
const schemaOrRef = (0, _1.createSchema)(zodSchema, state);
|
|
8
8
|
const description = zodSchema.description;
|
|
9
9
|
return (0, exports.enhanceWithMetadata)(schemaOrRef, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/create/schema/metadata.ts"],"names":[],"mappings":";;;AAGA,wBAA8C;AAEvC,MAAM,wBAAwB,GAAG,CAKtC,SAAsC,EACtC,KAAkB,EAC0B,EAAE;IAC9C,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/create/schema/metadata.ts"],"names":[],"mappings":";;;AAGA,wBAA8C;AAEvC,MAAM,wBAAwB,GAAG,CAKtC,SAAsC,EACtC,KAAkB,EAC0B,EAAE;IAC9C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,GACtE,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,IAAA,eAAY,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAE1C,OAAO,IAAA,2BAAmB,EAAC,WAAW,EAAE;QACtC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,GAAG,kBAAkB;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAjBW,QAAA,wBAAwB,4BAiBnC;AAEK,MAAM,mBAAmB,GAAG,CACjC,WAAuD,EACvD,QAAoD,EACR,EAAE;IAC9C,IAAI,MAAM,IAAI,WAAW,EAAE;QACzB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE;YAC7D,OAAO,WAAW,CAAC;SACpB;QAED,OAAO;YACL,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;SAC/B,CAAC;KACH;IAED,IAAI,WAAW,CAAC,KAAK,EAAE;QACrB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,GAAG,WAAW;YACd,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvE,CAAC;KACH;IAED,OAAO;QACL,GAAG,WAAW;QACd,GAAG,QAAQ;KACZ,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,mBAAmB,uBA2B9B"}
|
|
@@ -2,7 +2,7 @@ import { ZodType } from 'zod';
|
|
|
2
2
|
import { createSchemaWithMetadata } from './schema/metadata';
|
|
3
3
|
export const getDefaultComponents = (componentsObject, openapi = '3.1.0') => {
|
|
4
4
|
const defaultComponents = {
|
|
5
|
-
schemas:
|
|
5
|
+
schemas: new Map(),
|
|
6
6
|
parameters: {},
|
|
7
7
|
headers: {},
|
|
8
8
|
openapi,
|
|
@@ -20,26 +20,23 @@ const createSchemas = (schemas, components) => {
|
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
return Object.entries(schemas).forEach(([key, schema]) => {
|
|
23
|
-
const ref = schema instanceof ZodType ? schema._def.openapi?.ref ?? key : key;
|
|
24
|
-
const component = components.schemas[key];
|
|
25
|
-
if (component) {
|
|
26
|
-
throw new Error(`schemaRef "${ref}" is already registered`);
|
|
27
|
-
}
|
|
28
23
|
if (schema instanceof ZodType) {
|
|
24
|
+
const ref = schema._def.openapi?.ref ?? key;
|
|
25
|
+
const component = components.schemas.get(schema);
|
|
26
|
+
if (component) {
|
|
27
|
+
throw new Error(`schemaRef "${ref}" is already registered`);
|
|
28
|
+
}
|
|
29
29
|
const state = {
|
|
30
30
|
components,
|
|
31
31
|
type: schema._def.openapi?.refType ?? 'output',
|
|
32
32
|
};
|
|
33
|
-
components.schemas
|
|
33
|
+
components.schemas.set(schema, {
|
|
34
|
+
ref,
|
|
34
35
|
schemaObject: createSchemaWithMetadata(schema, state),
|
|
35
|
-
zodSchema: schema,
|
|
36
36
|
types: state.effectType ? [state.effectType] : ['input', 'output'],
|
|
37
|
-
};
|
|
37
|
+
});
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
components.schemas[ref] = {
|
|
41
|
-
schemaObject: schema,
|
|
42
|
-
};
|
|
43
40
|
});
|
|
44
41
|
};
|
|
45
42
|
const createParameters = (parameters, components) => {
|
|
@@ -72,24 +69,36 @@ const createHeaders = (headers, components) => {
|
|
|
72
69
|
};
|
|
73
70
|
export const createComponentSchemaRef = (schemaRef) => `#/components/schemas/${schemaRef}`;
|
|
74
71
|
export const createComponents = (componentsObject, components) => {
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const
|
|
72
|
+
const combinedSchemas = createSchemaComponents(componentsObject, components.schemas);
|
|
73
|
+
const combinedParameters = createParamComponents(components.parameters);
|
|
74
|
+
const combinedHeaders = createHeaderComponents(components.headers);
|
|
75
|
+
const { schemas, parameters, headers, ...rest } = componentsObject;
|
|
78
76
|
const finalComponents = {
|
|
79
|
-
...
|
|
80
|
-
...(
|
|
81
|
-
...(
|
|
82
|
-
...(
|
|
77
|
+
...rest,
|
|
78
|
+
...(combinedSchemas && { schemas: combinedSchemas }),
|
|
79
|
+
...(combinedParameters && { parameters: combinedParameters }),
|
|
80
|
+
...(combinedHeaders && { headers: combinedHeaders }),
|
|
83
81
|
};
|
|
84
82
|
return Object.keys(finalComponents).length ? finalComponents : undefined;
|
|
85
83
|
};
|
|
86
|
-
const createSchemaComponents = (
|
|
87
|
-
const
|
|
88
|
-
if (value) {
|
|
89
|
-
acc
|
|
84
|
+
const createSchemaComponents = (componentsObject, componentMap) => {
|
|
85
|
+
const customComponents = Object.entries(componentsObject.schemas ?? {}).reduce((acc, [key, value]) => {
|
|
86
|
+
if (value instanceof ZodType) {
|
|
87
|
+
return acc;
|
|
88
|
+
}
|
|
89
|
+
if (acc[key]) {
|
|
90
|
+
throw new Error(`Schema "${key}" is already registered`);
|
|
90
91
|
}
|
|
92
|
+
acc[key] = value;
|
|
91
93
|
return acc;
|
|
92
94
|
}, {});
|
|
95
|
+
const components = Array.from(componentMap).reduce((acc, [_zodType, value]) => {
|
|
96
|
+
if (acc[value.ref]) {
|
|
97
|
+
throw new Error(`Schema "${value.ref}" is already registered`);
|
|
98
|
+
}
|
|
99
|
+
acc[value.ref] = value.schemaObject;
|
|
100
|
+
return acc;
|
|
101
|
+
}, customComponents);
|
|
93
102
|
return Object.keys(components).length ? components : undefined;
|
|
94
103
|
};
|
|
95
104
|
const createParamComponents = (component) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/create/components.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAI9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/create/components.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAI9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAiD7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,gBAGC,EACD,UAA6B,OAAO,EAClB,EAAE;IACpB,MAAM,iBAAiB,GAAqB;QAC1C,OAAO,EAAE,IAAI,GAAG,EAAE;QAClB,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE;QACX,OAAO;KACR,CAAC;IACF,IAAI,CAAC,gBAAgB,EAAE;QACrB,OAAO,iBAAiB,CAAC;KAC1B;IAED,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAC3D,gBAAgB,CAAC,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACjE,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAE3D,OAAO,iBAAiB,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,OAA8C,EAC9C,UAA4B,EACtB,EAAE;IACR,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO;KACR;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;QACvD,IAAI,MAAM,YAAY,OAAO,EAAE;YAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,CAAC;YAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,SAAS,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,yBAAyB,CAAC,CAAC;aAC7D;YACD,MAAM,KAAK,GAAgB;gBACzB,UAAU;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,QAAQ;aAC/C,CAAC;YACF,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE;gBAC7B,GAAG;gBACH,YAAY,EAAE,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC;gBACrD,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC;aACnE,CAAC,CAAC;YACH,OAAO;SACR;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,UAAoD,EACpD,UAA4B,EACtB,EAAE;IACR,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,SAAS,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,yBAAyB,CAAC,CAAC;SAC7D;QAED,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG;YAC3B,WAAW,EAAE,MAAM;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CACpB,OAA8C,EAC9C,UAA4B,EACtB,EAAE;IACR,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO;KACR;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;QACvD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,SAAS,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,yBAAyB,CAAC,CAAC;SAC1D;QAED,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG;YACxB,YAAY,EAAE,MAAM;SACrB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAC5D,wBAAwB,SAAS,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,gBAA4C,EAC5C,UAA4B,EACQ,EAAE;IACtC,MAAM,eAAe,GAAG,sBAAsB,CAC5C,gBAAgB,EAChB,UAAU,CAAC,OAAO,CACnB,CAAC;IACF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEnE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,gBAAgB,CAAC;IAEnE,MAAM,eAAe,GAA2B;QAC9C,GAAG,IAAI;QACP,GAAG,CAAC,eAAe,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;QACpD,GAAG,CAAC,kBAAkB,IAAI,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC;QAC7D,GAAG,CAAC,eAAe,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;KACrD,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,gBAA4C,EAC5C,YAAgC,EACG,EAAE;IACrC,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,CACrC,gBAAgB,CAAC,OAAO,IAAI,EAAE,CAC/B,CAAC,MAAM,CACN,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,IAAI,KAAK,YAAY,OAAO,EAAE;YAC5B,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;YACZ,MAAM,IAAI,KAAK,CAAC,WAAW,GAAG,yBAAyB,CAAC,CAAC;SAC1D;QAED,GAAG,CAAC,GAAG,CAAC,GAAG,KAAmD,CAAC;QAC/D,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAEhD,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE;QAC3B,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,GAAG,yBAAyB,CAAC,CAAC;SAChE;QACD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAkC,CAAC;QAC1D,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAErB,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,SAAoC,EACE,EAAE;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAEjD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACtB,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,WAAoC,CAAC;SACvD;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,SAAiC,EACE,EAAE;IACrC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAEjD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACtB,IAAI,KAAK,EAAE;YACT,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,YAAkC,CAAC;SACrD;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC,CAAC"}
|
|
@@ -110,19 +110,20 @@ export const createSchema = (zodSchema, state) => {
|
|
|
110
110
|
}
|
|
111
111
|
return createManualTypeSchema(zodSchema);
|
|
112
112
|
};
|
|
113
|
-
export const createRegisteredSchema = (zodSchema,
|
|
114
|
-
const component = state.components.schemas
|
|
113
|
+
export const createRegisteredSchema = (zodSchema, state) => {
|
|
114
|
+
const component = state.components.schemas.get(zodSchema);
|
|
115
115
|
if (component) {
|
|
116
|
-
if (component.zodSchema !== zodSchema) {
|
|
117
|
-
throw new Error(`schemaRef "${schemaRef}" is already registered`);
|
|
118
|
-
}
|
|
119
116
|
if (!component.types?.includes(state.type)) {
|
|
120
|
-
throw new Error(`schemaRef "${
|
|
117
|
+
throw new Error(`schemaRef "${component.ref}" was created with a ZodTransform meaning that the input type is different from the output type. This type is currently being referenced in a response and request. Wrap it in a ZodPipeline, assign it a manual type or effectType`);
|
|
121
118
|
}
|
|
122
119
|
return {
|
|
123
|
-
$ref: createComponentSchemaRef(
|
|
120
|
+
$ref: createComponentSchemaRef(component.ref),
|
|
124
121
|
};
|
|
125
122
|
}
|
|
123
|
+
const schemaRef = zodSchema._def.openapi?.ref;
|
|
124
|
+
if (!schemaRef) {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
126
127
|
const newState = {
|
|
127
128
|
components: state.components,
|
|
128
129
|
type: state.type,
|
|
@@ -132,11 +133,11 @@ export const createRegisteredSchema = (zodSchema, schemaRef, state) => {
|
|
|
132
133
|
if ('$ref' in schemaOrRef) {
|
|
133
134
|
throw new Error('Unexpected Error: received a reference object');
|
|
134
135
|
}
|
|
135
|
-
state.components.schemas
|
|
136
|
+
state.components.schemas.set(zodSchema, {
|
|
137
|
+
ref: schemaRef,
|
|
136
138
|
schemaObject: schemaOrRef,
|
|
137
|
-
zodSchema,
|
|
138
139
|
types: newState?.effectType ? [newState.effectType] : ['input', 'output'],
|
|
139
|
-
};
|
|
140
|
+
});
|
|
140
141
|
if (newState.effectType) {
|
|
141
142
|
state.effectType = newState.effectType;
|
|
142
143
|
}
|
|
@@ -145,9 +146,9 @@ export const createRegisteredSchema = (zodSchema, schemaRef, state) => {
|
|
|
145
146
|
};
|
|
146
147
|
};
|
|
147
148
|
export const createSchemaOrRef = (zodSchema, state) => {
|
|
148
|
-
const
|
|
149
|
-
if (
|
|
150
|
-
return
|
|
149
|
+
const schema = createRegisteredSchema(zodSchema, state);
|
|
150
|
+
if (schema) {
|
|
151
|
+
return schema;
|
|
151
152
|
}
|
|
152
153
|
return createSchemaWithMetadata(zodSchema, state);
|
|
153
154
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/create/schema/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/create/schema/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createSchema } from '.';
|
|
2
2
|
export const createSchemaWithMetadata = (zodSchema, state) => {
|
|
3
|
-
const {
|
|
3
|
+
const { effectType, param, header, ref, refType, ...additionalMetadata } = zodSchema._def.openapi ?? {};
|
|
4
4
|
const schemaOrRef = createSchema(zodSchema, state);
|
|
5
5
|
const description = zodSchema.description;
|
|
6
6
|
return enhanceWithMetadata(schemaOrRef, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/create/schema/metadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,YAAY,EAAE,MAAM,GAAG,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAKtC,SAAsC,EACtC,KAAkB,EAC0B,EAAE;IAC9C,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/create/schema/metadata.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,YAAY,EAAE,MAAM,GAAG,CAAC;AAE9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAKtC,SAAsC,EACtC,KAAkB,EAC0B,EAAE;IAC9C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,kBAAkB,EAAE,GACtE,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAE1C,OAAO,mBAAmB,CAAC,WAAW,EAAE;QACtC,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;QACnC,GAAG,kBAAkB;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAAuD,EACvD,QAAoD,EACR,EAAE;IAC9C,IAAI,MAAM,IAAI,WAAW,EAAE;QACzB,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE;YAC7D,OAAO,WAAW,CAAC;SACpB;QAED,OAAO;YACL,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;SAC/B,CAAC;KACH;IAED,IAAI,WAAW,CAAC,KAAK,EAAE;QACrB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,GAAG,WAAW;YACd,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACvE,CAAC;KACH;IAED,OAAO;QACL,GAAG,WAAW;QACd,GAAG,QAAQ;KACZ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -3,13 +3,11 @@ import { ZodType } from 'zod';
|
|
|
3
3
|
import { ZodOpenApiComponentsObject, ZodOpenApiVersion } from './document';
|
|
4
4
|
export type CreationType = 'input' | 'output';
|
|
5
5
|
export interface SchemaComponent {
|
|
6
|
-
|
|
6
|
+
ref: string;
|
|
7
7
|
schemaObject: oas31.SchemaObject | oas31.ReferenceObject | oas30.SchemaObject | oas30.ReferenceObject;
|
|
8
|
-
types
|
|
9
|
-
}
|
|
10
|
-
interface SchemaComponentObject {
|
|
11
|
-
[ref: string]: SchemaComponent | undefined;
|
|
8
|
+
types: [CreationType, ...CreationType[]];
|
|
12
9
|
}
|
|
10
|
+
export type SchemaComponentMap = Map<ZodType, SchemaComponent>;
|
|
13
11
|
export interface ParameterComponent {
|
|
14
12
|
zodSchema?: ZodType;
|
|
15
13
|
paramObject: oas31.ParameterObject | oas31.ReferenceObject | oas30.ParameterObject | oas30.ReferenceObject;
|
|
@@ -25,12 +23,12 @@ interface HeadersComponentObject {
|
|
|
25
23
|
[ref: string]: Header | undefined;
|
|
26
24
|
}
|
|
27
25
|
export interface ComponentsObject {
|
|
28
|
-
schemas:
|
|
26
|
+
schemas: SchemaComponentMap;
|
|
29
27
|
parameters: ParametersComponentObject;
|
|
30
28
|
headers: HeadersComponentObject;
|
|
31
29
|
openapi: ZodOpenApiVersion;
|
|
32
30
|
}
|
|
33
31
|
export declare const getDefaultComponents: (componentsObject?: Pick<ZodOpenApiComponentsObject, 'schemas' | 'parameters' | 'headers'>, openapi?: ZodOpenApiVersion) => ComponentsObject;
|
|
34
32
|
export declare const createComponentSchemaRef: (schemaRef: string) => string;
|
|
35
|
-
export declare const createComponents: (componentsObject:
|
|
33
|
+
export declare const createComponents: (componentsObject: ZodOpenApiComponentsObject, components: ComponentsObject) => oas31.ComponentsObject | undefined;
|
|
36
34
|
export {};
|
|
@@ -7,5 +7,5 @@ export interface SchemaState {
|
|
|
7
7
|
effectType?: CreationType;
|
|
8
8
|
}
|
|
9
9
|
export declare const createSchema: <Output = any, Def extends ZodTypeDef = ZodTypeDef, Input = Output>(zodSchema: ZodType<Output, Def, Input>, state: SchemaState) => oas31.SchemaObject | oas31.ReferenceObject;
|
|
10
|
-
export declare const createRegisteredSchema: <Output = any, Def extends ZodTypeDef = ZodTypeDef, Input = Output>(zodSchema: ZodType<Output, Def, Input>,
|
|
10
|
+
export declare const createRegisteredSchema: <Output = any, Def extends ZodTypeDef = ZodTypeDef, Input = Output>(zodSchema: ZodType<Output, Def, Input>, state: SchemaState) => oas31.ReferenceObject | undefined;
|
|
11
11
|
export declare const createSchemaOrRef: <Output = any, Def extends ZodTypeDef = ZodTypeDef, Input = Output>(zodSchema: ZodType<Output, Def, Input>, state: SchemaState) => oas31.SchemaObject | oas31.ReferenceObject;
|