zod-openapi 0.3.0 → 0.4.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.
Files changed (44) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +19 -1
  3. package/lib-commonjs/create/components.js +11 -5
  4. package/lib-commonjs/create/components.js.map +1 -1
  5. package/lib-commonjs/create/document.js +1 -1
  6. package/lib-commonjs/create/document.js.map +1 -1
  7. package/lib-commonjs/create/schema/index.js +115 -132
  8. package/lib-commonjs/create/schema/index.js.map +1 -1
  9. package/lib-commonjs/create/schema/nativeEnum.js +11 -3
  10. package/lib-commonjs/create/schema/nativeEnum.js.map +1 -1
  11. package/lib-commonjs/create/schema/nullable.js +20 -16
  12. package/lib-commonjs/create/schema/nullable.js.map +1 -1
  13. package/lib-commonjs/create/schema/number.js +12 -5
  14. package/lib-commonjs/create/schema/number.js.map +1 -1
  15. package/lib-commonjs/create/schema/tuple.js +25 -5
  16. package/lib-commonjs/create/schema/tuple.js.map +1 -1
  17. package/lib-commonjs/extendZod.js.map +1 -1
  18. package/lib-commonjs/openapi.js +13 -0
  19. package/lib-commonjs/openapi.js.map +1 -0
  20. package/lib-es2015/create/components.js +11 -5
  21. package/lib-es2015/create/components.js.map +1 -1
  22. package/lib-es2015/create/document.js +1 -1
  23. package/lib-es2015/create/document.js.map +1 -1
  24. package/lib-es2015/create/schema/index.js +3 -3
  25. package/lib-es2015/create/schema/index.js.map +1 -1
  26. package/lib-es2015/create/schema/nativeEnum.js +11 -3
  27. package/lib-es2015/create/schema/nativeEnum.js.map +1 -1
  28. package/lib-es2015/create/schema/nullable.js +20 -15
  29. package/lib-es2015/create/schema/nullable.js.map +1 -1
  30. package/lib-es2015/create/schema/number.js +12 -5
  31. package/lib-es2015/create/schema/number.js.map +1 -1
  32. package/lib-es2015/create/schema/tuple.js +25 -5
  33. package/lib-es2015/create/schema/tuple.js.map +1 -1
  34. package/lib-es2015/extendZod.js.map +1 -1
  35. package/lib-es2015/openapi.js +9 -0
  36. package/lib-es2015/openapi.js.map +1 -0
  37. package/lib-types/create/components.d.ts +7 -6
  38. package/lib-types/create/document.d.ts +12 -11
  39. package/lib-types/create/schema/nativeEnum.d.ts +2 -1
  40. package/lib-types/create/schema/nullable.d.ts +0 -1
  41. package/lib-types/create/schema/number.d.ts +2 -1
  42. package/lib-types/extendZod.d.ts +5 -3
  43. package/lib-types/openapi.d.ts +3 -0
  44. package/package.json +2 -2
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  ### MIT License
2
2
 
3
- Copyright (c) 2020 SEEK
3
+ Copyright (c) 2020 Sam Chung
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,8 +1,18 @@
1
1
  # zod-openapi
2
2
 
3
+ A Typescript library to create full OpenAPI 3 documentation from [Zod](https://github.com/colinhacks/zod) Types.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/zod-openapi)](https://www.npmjs.com/package/zod-openapi)
6
+ [![npm downloads](https://img.shields.io/npm/dm/zod-openapi)](https://www.npmjs.com/package/zod-openapi)
3
7
  [![Powered by skuba](https://img.shields.io/badge/🤿%20skuba-powered-009DC4)](https://github.com/seek-oss/skuba)
4
8
 
5
- A Typescript library to create full OpenAPI 3.1 documentation from Zod Schemas.
9
+ ## Install
10
+
11
+ Install via npm:
12
+
13
+ ```bash
14
+ npm install zod zod-openapi
15
+ ```
6
16
 
7
17
  ## API
8
18
 
@@ -312,6 +322,14 @@ const header = z.string().openapi({
312
322
  });
313
323
  ```
314
324
 
325
+ ## Supported OpenAPI Versions
326
+
327
+ - '3.0.0'
328
+ - '3.0.1'
329
+ - '3.0.2'
330
+ - '3.0.3'
331
+ - '3.1.0'
332
+
315
333
  ## Supported Zod Schema
316
334
 
317
335
  - ZodArray
@@ -3,8 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createComponents = exports.createComponentSchemaRef = exports.getDefaultComponents = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const metadata_1 = require("./schema/metadata");
6
- const getDefaultComponents = (componentsObject) => {
7
- const defaultComponents = { schemas: {}, parameters: {}, headers: {} };
6
+ const getDefaultComponents = (componentsObject, openapi = '3.1.0') => {
7
+ const defaultComponents = {
8
+ schemas: {},
9
+ parameters: {},
10
+ headers: {},
11
+ openapi,
12
+ };
8
13
  if (!componentsObject) {
9
14
  return defaultComponents;
10
15
  }
@@ -19,18 +24,19 @@ const createSchemas = (schemas, components) => {
19
24
  return;
20
25
  }
21
26
  return Object.entries(schemas).forEach(([key, schema]) => {
27
+ const ref = schema instanceof zod_1.ZodType ? schema._def.openapi?.ref ?? key : key;
22
28
  const component = components.schemas[key];
23
29
  if (component) {
24
- throw new Error(`schemaRef "${key}" is already registered`);
30
+ throw new Error(`schemaRef "${ref}" is already registered`);
25
31
  }
26
32
  if (schema instanceof zod_1.ZodType) {
27
- components.schemas[key] = {
33
+ components.schemas[ref] = {
28
34
  schemaObject: (0, metadata_1.createSchemaWithMetadata)(schema, components),
29
35
  zodSchema: schema,
30
36
  };
31
37
  return;
32
38
  }
33
- components.schemas[key] = {
39
+ components.schemas[ref] = {
34
40
  schemaObject: schema,
35
41
  };
36
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/create/components.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/create/components.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ const components_1 = require("./components");
6
6
  const paths_1 = require("./paths");
7
7
  const createDocument = (zodOpenApiObject) => {
8
8
  const { schemas, parameters, headers, ...rest } = zodOpenApiObject.components ?? {};
9
- const components = (0, components_1.getDefaultComponents)({ headers, schemas, parameters });
9
+ const components = (0, components_1.getDefaultComponents)({ headers, schemas, parameters }, zodOpenApiObject.openapi);
10
10
  return {
11
11
  ...zodOpenApiObject,
12
12
  paths: (0, paths_1.createPaths)(zodOpenApiObject.paths, components),
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/create/document.ts"],"names":[],"mappings":";;;AACA,+BAAiC;AAGjC,6CAAsE;AACtE,mCAAsC;AA+E/B,MAAM,cAAc,GAAG,CAC5B,gBAAkC,EACb,EAAE;IACvB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAC7C,gBAAgB,CAAC,UAAU,IAAI,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAA,iCAAoB,EAAC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAE1E,OAAO;QACL,GAAG,gBAAgB;QACnB,KAAK,EAAE,IAAA,mBAAW,EAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;QACtD,QAAQ,EAAE,IAAA,mBAAW,EAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC5D,UAAU,EAAE,IAAA,6BAAgB,EAAC,IAAI,EAAE,UAAU,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,cAAc,kBAazB;AAEK,MAAM,kBAAkB,GAAG,CAChC,MAAwB,EACxB,WAGC,EACO,EAAE;IACV,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,SAAS,CACnB,QAAQ,EACR,WAAW,EAAE,QAAQ,EACrB,WAAW,EAAE,OAAO,IAAI,CAAC,CAC1B,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,kBAAkB,sBAa7B;AAEK,MAAM,kBAAkB,GAAG,CAChC,MAAwB,EACxB,cAGI,EAAE,EACE,EAAE;IACV,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAA,gBAAS,EAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/create/document.ts"],"names":[],"mappings":";;;AACA,+BAAiC;AAGjC,6CAAsE;AACtE,mCAAsC;AA4F/B,MAAM,cAAc,GAAG,CAC5B,gBAAkC,EACb,EAAE;IACvB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAC7C,gBAAgB,CAAC,UAAU,IAAI,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAA,iCAAoB,EACrC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAChC,gBAAgB,CAAC,OAAO,CACzB,CAAC;IAEF,OAAO;QACL,GAAG,gBAAgB;QACnB,KAAK,EAAE,IAAA,mBAAW,EAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;QACtD,QAAQ,EAAE,IAAA,mBAAW,EAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC;QAC5D,UAAU,EAAE,IAAA,6BAAgB,EAAC,IAAI,EAAE,UAAU,CAAC;KAC/C,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB;AAEK,MAAM,kBAAkB,GAAG,CAChC,MAAwB,EACxB,WAGC,EACO,EAAE;IACV,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,SAAS,CACnB,QAAQ,EACR,WAAW,EAAE,QAAQ,EACrB,WAAW,EAAE,OAAO,IAAI,CAAC,CAC1B,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,kBAAkB,sBAa7B;AAEK,MAAM,kBAAkB,GAAG,CAChC,MAAwB,EACxB,cAGI,EAAE,EACE,EAAE;IACV,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAA,gBAAS,EAAC,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B"}
@@ -1,144 +1,127 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.createSchemaOrRef =
4
- exports.createRegisteredSchema =
5
- exports.createSchema =
6
- void 0;
7
- const zod_1 = require('zod');
8
- const components_1 = require('../components');
9
- const array_1 = require('./array');
10
- const boolean_1 = require('./boolean');
11
- const date_1 = require('./date');
12
- const default_1 = require('./default');
13
- const discriminatedUnion_1 = require('./discriminatedUnion');
14
- const effects_1 = require('./effects');
15
- const enum_1 = require('./enum');
16
- const intersection_1 = require('./intersection');
17
- const literal_1 = require('./literal');
18
- const metadata_1 = require('./metadata');
19
- const nativeEnum_1 = require('./nativeEnum');
20
- const null_1 = require('./null');
21
- const nullable_1 = require('./nullable');
22
- const number_1 = require('./number');
23
- const object_1 = require('./object');
24
- const optional_1 = require('./optional');
25
- const record_1 = require('./record');
26
- const string_1 = require('./string');
27
- const tuple_1 = require('./tuple');
28
- const union_1 = require('./union');
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSchemaOrRef = exports.createRegisteredSchema = exports.createSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const components_1 = require("../components");
6
+ const array_1 = require("./array");
7
+ const boolean_1 = require("./boolean");
8
+ const date_1 = require("./date");
9
+ const default_1 = require("./default");
10
+ const discriminatedUnion_1 = require("./discriminatedUnion");
11
+ const effects_1 = require("./effects");
12
+ const enum_1 = require("./enum");
13
+ const intersection_1 = require("./intersection");
14
+ const literal_1 = require("./literal");
15
+ const metadata_1 = require("./metadata");
16
+ const nativeEnum_1 = require("./nativeEnum");
17
+ const null_1 = require("./null");
18
+ const nullable_1 = require("./nullable");
19
+ const number_1 = require("./number");
20
+ const object_1 = require("./object");
21
+ const optional_1 = require("./optional");
22
+ const record_1 = require("./record");
23
+ const string_1 = require("./string");
24
+ const tuple_1 = require("./tuple");
25
+ const union_1 = require("./union");
29
26
  const createSchema = (zodSchema, components) => {
30
- if (zodSchema instanceof zod_1.ZodString) {
31
- return (0, string_1.createStringSchema)(zodSchema);
32
- }
33
- if (zodSchema instanceof zod_1.ZodNumber) {
34
- return (0, number_1.createNumberSchema)(zodSchema);
35
- }
36
- if (zodSchema instanceof zod_1.ZodBoolean) {
37
- return (0, boolean_1.createBooleanSchema)(zodSchema);
38
- }
39
- if (zodSchema instanceof zod_1.ZodEnum) {
40
- return (0, enum_1.createEnumSchema)(zodSchema);
41
- }
42
- if (zodSchema instanceof zod_1.ZodLiteral) {
43
- return (0, literal_1.createLiteralSchema)(zodSchema);
44
- }
45
- if (zodSchema instanceof zod_1.ZodNativeEnum) {
46
- return (0, nativeEnum_1.createNativeEnumSchema)(zodSchema);
47
- }
48
- if (zodSchema instanceof zod_1.ZodArray) {
49
- return (0, array_1.createArraySchema)(zodSchema, components);
50
- }
51
- if (zodSchema instanceof zod_1.ZodObject) {
52
- return (0, object_1.createObjectSchema)(zodSchema, components);
53
- }
54
- if (zodSchema instanceof zod_1.ZodUnion) {
55
- return (0, union_1.createUnionSchema)(zodSchema, components);
56
- }
57
- if (zodSchema instanceof zod_1.ZodDiscriminatedUnion) {
58
- return (0, discriminatedUnion_1.createDiscriminatedUnionSchema)(
59
- zodSchema,
60
- components,
61
- );
62
- }
63
- if (zodSchema instanceof zod_1.ZodNull) {
64
- return (0, null_1.createNullSchema)(zodSchema);
65
- }
66
- if (zodSchema instanceof zod_1.ZodNullable) {
67
- return (0, nullable_1.createNullableSchema)(zodSchema, components);
68
- }
69
- if (zodSchema instanceof zod_1.ZodOptional) {
70
- return (0, optional_1.createOptionalSchema)(zodSchema, components);
71
- }
72
- if (zodSchema instanceof zod_1.ZodDefault) {
73
- return (0, default_1.createDefaultSchema)(zodSchema, components);
74
- }
75
- if (zodSchema instanceof zod_1.ZodRecord) {
76
- return (0, record_1.createRecordSchema)(zodSchema, components);
77
- }
78
- if (zodSchema instanceof zod_1.ZodTuple) {
79
- return (0, tuple_1.createTupleSchema)(zodSchema, components);
80
- }
81
- if (zodSchema instanceof zod_1.ZodDate) {
82
- return (0, date_1.createDateSchema)(zodSchema);
83
- }
84
- if (
85
- zodSchema._def.effect?.type === 'refinement' ||
86
- zodSchema._def.effect?.type === 'preprocess'
87
- ) {
88
- return (0, effects_1.createEffectsSchema)(zodSchema, components);
89
- }
90
- if (zodSchema instanceof zod_1.ZodNativeEnum) {
91
- return (0, nativeEnum_1.createNativeEnumSchema)(zodSchema);
92
- }
93
- if (zodSchema instanceof zod_1.ZodIntersection) {
94
- return (0, intersection_1.createIntersectionSchema)(zodSchema, components);
95
- }
96
- if (!zodSchema._def.openapi?.type) {
97
- console.log(zodSchema);
98
- throw new Error(
99
- `Unknown schema ${zodSchema.toString()}. Please assign it a manual type`,
100
- );
101
- }
102
- return {};
27
+ if (zodSchema instanceof zod_1.ZodString) {
28
+ return (0, string_1.createStringSchema)(zodSchema);
29
+ }
30
+ if (zodSchema instanceof zod_1.ZodNumber) {
31
+ return (0, number_1.createNumberSchema)(zodSchema, components);
32
+ }
33
+ if (zodSchema instanceof zod_1.ZodBoolean) {
34
+ return (0, boolean_1.createBooleanSchema)(zodSchema);
35
+ }
36
+ if (zodSchema instanceof zod_1.ZodEnum) {
37
+ return (0, enum_1.createEnumSchema)(zodSchema);
38
+ }
39
+ if (zodSchema instanceof zod_1.ZodLiteral) {
40
+ return (0, literal_1.createLiteralSchema)(zodSchema);
41
+ }
42
+ if (zodSchema instanceof zod_1.ZodNativeEnum) {
43
+ return (0, nativeEnum_1.createNativeEnumSchema)(zodSchema, components);
44
+ }
45
+ if (zodSchema instanceof zod_1.ZodArray) {
46
+ return (0, array_1.createArraySchema)(zodSchema, components);
47
+ }
48
+ if (zodSchema instanceof zod_1.ZodObject) {
49
+ return (0, object_1.createObjectSchema)(zodSchema, components);
50
+ }
51
+ if (zodSchema instanceof zod_1.ZodUnion) {
52
+ return (0, union_1.createUnionSchema)(zodSchema, components);
53
+ }
54
+ if (zodSchema instanceof zod_1.ZodDiscriminatedUnion) {
55
+ return (0, discriminatedUnion_1.createDiscriminatedUnionSchema)(zodSchema, components);
56
+ }
57
+ if (zodSchema instanceof zod_1.ZodNull) {
58
+ return (0, null_1.createNullSchema)(zodSchema);
59
+ }
60
+ if (zodSchema instanceof zod_1.ZodNullable) {
61
+ return (0, nullable_1.createNullableSchema)(zodSchema, components);
62
+ }
63
+ if (zodSchema instanceof zod_1.ZodOptional) {
64
+ return (0, optional_1.createOptionalSchema)(zodSchema, components);
65
+ }
66
+ if (zodSchema instanceof zod_1.ZodDefault) {
67
+ return (0, default_1.createDefaultSchema)(zodSchema, components);
68
+ }
69
+ if (zodSchema instanceof zod_1.ZodRecord) {
70
+ return (0, record_1.createRecordSchema)(zodSchema, components);
71
+ }
72
+ if (zodSchema instanceof zod_1.ZodTuple) {
73
+ return (0, tuple_1.createTupleSchema)(zodSchema, components);
74
+ }
75
+ if (zodSchema instanceof zod_1.ZodDate) {
76
+ return (0, date_1.createDateSchema)(zodSchema);
77
+ }
78
+ if (zodSchema instanceof zod_1.ZodEffects &&
79
+ (zodSchema._def.effect.type === 'refinement' ||
80
+ zodSchema._def.effect.type === 'preprocess')) {
81
+ return (0, effects_1.createEffectsSchema)(zodSchema, components);
82
+ }
83
+ if (zodSchema instanceof zod_1.ZodNativeEnum) {
84
+ return (0, nativeEnum_1.createNativeEnumSchema)(zodSchema, components);
85
+ }
86
+ if (zodSchema instanceof zod_1.ZodIntersection) {
87
+ return (0, intersection_1.createIntersectionSchema)(zodSchema, components);
88
+ }
89
+ if (!zodSchema._def.openapi?.type) {
90
+ throw new Error(`Unknown schema ${zodSchema.toString()}. Please assign it a manual type`);
91
+ }
92
+ return {};
103
93
  };
104
94
  exports.createSchema = createSchema;
105
95
  const createRegisteredSchema = (zodSchema, schemaRef, components) => {
106
- const component = components.schemas[schemaRef];
107
- if (component) {
108
- if (component.zodSchema !== zodSchema) {
109
- throw new Error(`schemaRef "${schemaRef}" is already registered`);
96
+ const component = components.schemas[schemaRef];
97
+ if (component) {
98
+ if (component.zodSchema !== zodSchema) {
99
+ throw new Error(`schemaRef "${schemaRef}" is already registered`);
100
+ }
101
+ return {
102
+ $ref: (0, components_1.createComponentSchemaRef)(schemaRef),
103
+ };
110
104
  }
105
+ // Optional Objects can return a reference object
106
+ const schemaOrRef = (0, metadata_1.createSchemaWithMetadata)(zodSchema, components);
107
+ if ('$ref' in schemaOrRef) {
108
+ throw new Error('Unexpected Error: received a reference object');
109
+ }
110
+ components.schemas[schemaRef] = {
111
+ schemaObject: schemaOrRef,
112
+ zodSchema,
113
+ };
111
114
  return {
112
- $ref: (0, components_1.createComponentSchemaRef)(schemaRef),
115
+ $ref: (0, components_1.createComponentSchemaRef)(schemaRef),
113
116
  };
114
- }
115
- // Optional Objects can return a reference object
116
- const schemaOrRef = (0, metadata_1.createSchemaWithMetadata)(
117
- zodSchema,
118
- components,
119
- );
120
- if ('$ref' in schemaOrRef) {
121
- throw new Error('Unexpected Error: received a reference object');
122
- }
123
- components.schemas[schemaRef] = {
124
- schemaObject: schemaOrRef,
125
- zodSchema,
126
- };
127
- return {
128
- $ref: (0, components_1.createComponentSchemaRef)(schemaRef),
129
- };
130
117
  };
131
118
  exports.createRegisteredSchema = createRegisteredSchema;
132
119
  const createSchemaOrRef = (zodSchema, components) => {
133
- const schemaRef = zodSchema._def.openapi?.ref;
134
- if (schemaRef) {
135
- return (0, exports.createRegisteredSchema)(
136
- zodSchema,
137
- schemaRef,
138
- components,
139
- );
140
- }
141
- return (0, metadata_1.createSchemaWithMetadata)(zodSchema, components);
120
+ const schemaRef = zodSchema._def.openapi?.ref;
121
+ if (schemaRef) {
122
+ return (0, exports.createRegisteredSchema)(zodSchema, schemaRef, components);
123
+ }
124
+ return (0, metadata_1.createSchemaWithMetadata)(zodSchema, components);
142
125
  };
143
126
  exports.createSchemaOrRef = createSchemaOrRef;
144
- //# sourceMappingURL=index.js.map
127
+ //# sourceMappingURL=index.js.map
@@ -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,13 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sortStringsAndNumbers = exports.getValidEnumValues = exports.createNativeEnumSchema = void 0;
4
- const createNativeEnumSchema = (zodEnum) => {
4
+ const openapi_1 = require("../../openapi");
5
+ const createNativeEnumSchema = (zodEnum, components) => {
5
6
  const enumValues = (0, exports.getValidEnumValues)(zodEnum._def.values);
6
7
  const { numbers, strings } = (0, exports.sortStringsAndNumbers)(enumValues);
7
8
  if (strings.length && numbers.length) {
9
+ if ((0, openapi_1.satisfiesVersion)(components.openapi, '3.1.0'))
10
+ return {
11
+ type: ['string', 'number'],
12
+ enum: [...strings, ...numbers],
13
+ };
8
14
  return {
9
- type: ['string', 'number'],
10
- enum: [...strings, ...numbers],
15
+ oneOf: [
16
+ { type: 'string', enum: strings },
17
+ { type: 'number', enum: numbers },
18
+ ],
11
19
  };
12
20
  }
13
21
  if (strings.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"nativeEnum.js","sourceRoot":"","sources":["../../../src/create/schema/nativeEnum.ts"],"names":[],"mappings":";;;AAGO,MAAM,sBAAsB,GAAG,CACpC,OAAyB,EACmB,EAAE;IAC9C,MAAM,UAAU,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;QACpC,OAAO;YACL,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAC1B,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;SAC/B,CAAC;KACH;IAED,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;SACd,CAAC;KACH;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;KACd,CAAC;AACJ,CAAC,CAAC;AAxBW,QAAA,sBAAsB,0BAwBjC;AAOK,MAAM,kBAAkB,GAAG,CAAC,UAAoB,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CACzD,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,qBAAqB,GAAG,CACnC,MAA2B,EACR,EAAE,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;CAC9E,CAAC,CAAC;AALU,QAAA,qBAAqB,yBAK/B"}
1
+ {"version":3,"file":"nativeEnum.js","sourceRoot":"","sources":["../../../src/create/schema/nativeEnum.ts"],"names":[],"mappings":";;;AAGA,2CAAiD;AAG1C,MAAM,sBAAsB,GAAG,CACpC,OAAyB,EACzB,UAA4B,EACgB,EAAE;IAC9C,MAAM,UAAU,GAAG,IAAA,0BAAkB,EAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;IAE/D,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;QACpC,IAAI,IAAA,0BAAgB,EAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;YAC/C,OAAO;gBACL,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBAC1B,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC;aAC/B,CAAC;QACJ,OAAO;YACL,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;gBACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;aAClC;SACF,CAAC;KACH;IAED,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,OAAO;SACd,CAAC;KACH;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;KACd,CAAC;AACJ,CAAC,CAAC;AAhCW,QAAA,sBAAsB,0BAgCjC;AAOK,MAAM,kBAAkB,GAAG,CAAC,UAAoB,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CACzD,CAAC;IACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B;AAEK,MAAM,qBAAqB,GAAG,CACnC,MAA2B,EACR,EAAE,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;IAC7E,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;CAC9E,CAAC,CAAC;AALU,QAAA,qBAAqB,yBAK/B"}
@@ -1,36 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.mapNullType = exports.createNullableSchema = void 0;
3
+ exports.createNullableSchema = void 0;
4
+ const openapi_1 = require("../../openapi");
4
5
  const _1 = require(".");
5
6
  const createNullableSchema = (zodNullable, components) => {
6
7
  const schemaOrReference = (0, _1.createSchemaOrRef)(zodNullable.unwrap(), components);
7
- if ('$ref' in schemaOrReference) {
8
+ if ('$ref' in schemaOrReference || schemaOrReference.allOf) {
8
9
  return {
9
- oneOf: mapNullOf([schemaOrReference]),
10
+ oneOf: mapNullOf([schemaOrReference], components.openapi),
10
11
  };
11
12
  }
12
13
  if (schemaOrReference.oneOf) {
13
14
  const { oneOf, ...schema } = schemaOrReference;
14
15
  return {
15
- oneOf: mapNullOf(oneOf),
16
+ oneOf: mapNullOf(oneOf, components.openapi),
16
17
  ...schema,
17
18
  };
18
19
  }
19
- if (schemaOrReference.allOf) {
20
- return {
21
- oneOf: [schemaOrReference, { type: 'null' }],
22
- };
23
- }
24
20
  if (schemaOrReference.anyOf) {
25
21
  const { anyOf, ...schema } = schemaOrReference;
26
22
  return {
27
- anyOf: mapNullOf(anyOf),
23
+ anyOf: mapNullOf(anyOf, components.openapi),
28
24
  ...schema,
29
25
  };
30
26
  }
31
27
  const { type, ...schema } = schemaOrReference;
28
+ if ((0, openapi_1.satisfiesVersion)(components.openapi, '3.1.0')) {
29
+ return {
30
+ type: mapNullType(type),
31
+ ...schema,
32
+ };
33
+ }
32
34
  return {
33
- type: (0, exports.mapNullType)(type),
35
+ type,
36
+ nullable: true,
34
37
  ...schema,
35
38
  };
36
39
  };
@@ -44,9 +47,10 @@ const mapNullType = (type) => {
44
47
  }
45
48
  return [type, 'null'];
46
49
  };
47
- exports.mapNullType = mapNullType;
48
- const mapNullOf = (ofSchema) => [
49
- ...ofSchema,
50
- { type: 'null' },
51
- ];
50
+ const mapNullOf = (ofSchema, openapi) => {
51
+ if ((0, openapi_1.satisfiesVersion)(openapi, '3.1.0')) {
52
+ return [...ofSchema, { type: 'null' }];
53
+ }
54
+ return [...ofSchema, { nullable: true }];
55
+ };
52
56
  //# sourceMappingURL=nullable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../src/create/schema/nullable.ts"],"names":[],"mappings":";;;AAKA,wBAAsC;AAE/B,MAAM,oBAAoB,GAAG,CAClC,WAA6B,EAC7B,UAA4B,EACR,EAAE;IACtB,MAAM,iBAAiB,GAAG,IAAA,oBAAiB,EACzC,WAAW,CAAC,MAAM,EAAgB,EAClC,UAAU,CACX,CAAC;IAEF,IAAI,MAAM,IAAI,iBAAiB,EAAE;QAC/B,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;SACtC,CAAC;KACH;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;YACvB,GAAG,MAAM;SACV,CAAC;KACH;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE;QAC3B,OAAO;YACL,KAAK,EAAE,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SAC7C,CAAC;KACH;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;YACvB,GAAG,MAAM;SACV,CAAC;KACH;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,CAAC;IAE9C,OAAO;QACL,IAAI,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC;QACvB,GAAG,MAAM;KACV,CAAC;AACJ,CAAC,CAAC;AA3CW,QAAA,oBAAoB,wBA2C/B;AAEK,MAAM,WAAW,GAAG,CACzB,IAAgC,EACJ,EAAE;IAC9B,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,MAAM,CAAC;KACf;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;KAC1B;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC;AAZW,QAAA,WAAW,eAYtB;AAEF,MAAM,SAAS,GAAG,CAChB,QAAwD,EACR,EAAE,CAAC;IACnD,GAAG,QAAQ;IACX,EAAE,IAAI,EAAE,MAAM,EAAE;CACjB,CAAC"}
1
+ {"version":3,"file":"nullable.js","sourceRoot":"","sources":["../../../src/create/schema/nullable.ts"],"names":[],"mappings":";;;AAGA,2CAAiD;AAIjD,wBAAsC;AAE/B,MAAM,oBAAoB,GAAG,CAClC,WAA6B,EAC7B,UAA4B,EACR,EAAE;IACtB,MAAM,iBAAiB,GAAG,IAAA,oBAAiB,EACzC,WAAW,CAAC,MAAM,EAAgB,EAClC,UAAU,CACX,CAAC;IAEF,IAAI,MAAM,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;SAC1D,CAAC;KACH;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;YAC3C,GAAG,MAAM;SACV,CAAC;KACH;IAED,IAAI,iBAAiB,CAAC,KAAK,EAAE;QAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,CAAC;QAC/C,OAAO;YACL,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;YAC3C,GAAG,MAAM;SACV,CAAC;KACH;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,iBAAiB,CAAC;IAE9C,IAAI,IAAA,0BAAgB,EAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACjD,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC;YACvB,GAAG,MAAM;SACV,CAAC;KACH;IAED,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,IAAI;QACd,GAAG,MAAM;KACV,CAAC;AACJ,CAAC,CAAC;AA7CW,QAAA,oBAAoB,wBA6C/B;AAEF,MAAM,WAAW,GAAG,CAClB,IAAgC,EACJ,EAAE;IAC9B,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,MAAM,CAAC;KACf;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;KAC1B;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAChB,QAAwD,EACxD,OAA0B,EACsB,EAAE;IAClD,IAAI,IAAA,0BAAgB,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACtC,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;KACxC;IACD,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,CAAC,CAAC"}
@@ -1,22 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createNumberSchema = void 0;
4
- const createNumberSchema = (zodNumber) => {
4
+ const openapi_1 = require("../../openapi");
5
+ const createNumberSchema = (zodNumber, components) => {
5
6
  const zodNumberChecks = getZodNumberChecks(zodNumber);
6
7
  return {
7
8
  type: mapNumberType(zodNumberChecks),
8
- ...mapRanges(zodNumberChecks),
9
+ ...mapRanges(zodNumberChecks, components.openapi), // union types are too pesky to drill through
9
10
  };
10
11
  };
11
12
  exports.createNumberSchema = createNumberSchema;
12
- const mapRanges = (zodNumberChecks) => {
13
+ const mapRanges = (zodNumberChecks, openapi) => {
13
14
  const minimum = zodNumberChecks.min?.value;
14
15
  const maximum = zodNumberChecks.max?.value;
16
+ const exclusiveMinimum = zodNumberChecks.min?.inclusive;
17
+ const exclusiveMaximum = zodNumberChecks.max?.inclusive;
15
18
  return {
16
19
  ...(minimum !== undefined && { minimum }),
17
20
  ...(maximum !== undefined && { maximum }),
18
- ...(zodNumberChecks.min?.inclusive && { exclusiveMinimum: minimum }),
19
- ...(zodNumberChecks.max?.inclusive && { exclusiveMaximum: maximum }),
21
+ ...(exclusiveMinimum && {
22
+ exclusiveMinimum: (0, openapi_1.satisfiesVersion)(openapi, '3.1.0') ? minimum : true,
23
+ }),
24
+ ...(exclusiveMaximum && {
25
+ exclusiveMaximum: (0, openapi_1.satisfiesVersion)(openapi, '3.1.0') ? maximum : true,
26
+ }),
20
27
  };
21
28
  };
22
29
  const getZodNumberChecks = (zodNumber) => zodNumber._def.checks.reduce((acc, check) => {
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/create/schema/number.ts"],"names":[],"mappings":";;;AAGO,MAAM,kBAAkB,GAAG,CAChC,SAAoB,EACA,EAAE;IACtB,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC;QACpC,GAAG,SAAS,CAAC,eAAe,CAAC;KAC9B,CAAC;AACJ,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEF,MAAM,SAAS,GAAG,CAChB,eAAkC,EAIlC,EAAE;IACF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;IAC3C,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;QACpE,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;KACrE,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAqB,EAAE,CACrE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IAC7D,mEAAmE;IACnE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAY,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAAC,CAAC;AAET,MAAM,aAAa,GAAG,CACpB,eAAkC,EACN,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/create/schema/number.ts"],"names":[],"mappings":";;;AAGA,2CAAiD;AAI1C,MAAM,kBAAkB,GAAG,CAChC,SAAoB,EACpB,UAA4B,EACR,EAAE;IACtB,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAEtD,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC;QACpC,GAAI,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,OAAO,CAAwB,EAAE,6CAA6C;KACzH,CAAC;AACJ,CAAC,CAAC;AAVW,QAAA,kBAAkB,sBAU7B;AAEF,MAAM,SAAS,GAAG,CAChB,eAAkC,EAClC,OAA0B,EAI1B,EAAE;IACF,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;IAE3C,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC;IACxD,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC;IAExD,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,gBAAgB,IAAI;YACtB,gBAAgB,EAAE,IAAA,0BAAgB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SACtE,CAAC;QACF,GAAG,CAAC,gBAAgB,IAAI;YACtB,gBAAgB,EAAE,IAAA,0BAAgB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SACtE,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAMF,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAAqB,EAAE,CACrE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IAC7D,mEAAmE;IACnE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAY,CAAC;IAC/B,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAAC,CAAC;AAET,MAAM,aAAa,GAAG,CACpB,eAAkC,EACN,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,29 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createTupleSchema = void 0;
4
+ const openapi_1 = require("../../openapi");
4
5
  const _1 = require(".");
5
6
  const createTupleSchema = (zodTuple, components) => {
6
7
  const items = zodTuple.items;
7
8
  const rest = zodTuple._def.rest;
8
9
  return {
9
10
  type: 'array',
10
- ...mapPrefixItems(items, components),
11
11
  ...mapItemProperties(items, rest, components),
12
12
  };
13
13
  };
14
14
  exports.createTupleSchema = createTupleSchema;
15
- const mapPrefixItems = (items, components) => items.length
16
- ? { prefixItems: items.map((item) => (0, _1.createSchemaOrRef)(item, components)) }
17
- : undefined;
15
+ const mapPrefixItems = (items, components) => {
16
+ if (items.length) {
17
+ return items.map((item) => (0, _1.createSchemaOrRef)(item, components));
18
+ }
19
+ return undefined;
20
+ };
18
21
  const mapItemProperties = (items, rest, components) => {
22
+ const prefixItems = mapPrefixItems(items, components);
23
+ if ((0, openapi_1.satisfiesVersion)(components.openapi, '3.1.0')) {
24
+ if (!rest) {
25
+ return {
26
+ maxItems: items.length,
27
+ minItems: items.length,
28
+ ...(prefixItems && { prefixItems }),
29
+ };
30
+ }
31
+ return {
32
+ items: (0, _1.createSchemaOrRef)(rest, components),
33
+ ...(prefixItems && { prefixItems }),
34
+ };
35
+ }
19
36
  if (!rest) {
20
37
  return {
21
38
  maxItems: items.length,
22
39
  minItems: items.length,
40
+ ...(prefixItems && { items: { oneOf: prefixItems } }),
23
41
  };
24
42
  }
25
43
  return {
26
- items: (0, _1.createSchemaOrRef)(rest, components),
44
+ ...(prefixItems && {
45
+ items: { oneOf: [...prefixItems, (0, _1.createSchemaOrRef)(rest, components)] },
46
+ }),
27
47
  };
28
48
  };
29
49
  //# sourceMappingURL=tuple.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../../src/create/schema/tuple.ts"],"names":[],"mappings":";;;AAKA,wBAAsC;AAE/B,MAAM,iBAAiB,GAAG,CAC/B,QAA4B,EAC5B,UAA4B,EACR,EAAE;IACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAqB,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAkB,CAAC;IAC9C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,GAAG,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC;QACpC,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;KACxB,CAAC;AAC1B,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B;AAEF,MAAM,cAAc,GAAG,CACrB,KAAmB,EACnB,UAA4B,EAGhB,EAAE,CACd,KAAK,CAAC,MAAM;IACV,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAiB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE;IAC3E,CAAC,CAAC,SAAS,CAAC;AAEhB,MAAM,iBAAiB,GAAG,CACxB,KAAmB,EACnB,IAAgB,EAChB,UAA4B,EACiC,EAAE;IAC/D,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,QAAQ,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC;KACH;IAED,OAAO;QACL,KAAK,EAAE,IAAA,oBAAiB,EAAC,IAAI,EAAE,UAAU,CAAC;KAC3C,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"tuple.js","sourceRoot":"","sources":["../../../src/create/schema/tuple.ts"],"names":[],"mappings":";;;AAGA,2CAAiD;AAGjD,wBAAsC;AAE/B,MAAM,iBAAiB,GAAG,CAC/B,QAA4B,EAC5B,UAA4B,EACR,EAAE;IACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAqB,CAAC;IAC7C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAkB,CAAC;IAC9C,OAAO;QACL,IAAI,EAAE,OAAO;QACb,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC;KACxB,CAAC;AAC1B,CAAC,CAAC;AAVW,QAAA,iBAAiB,qBAU5B;AAEF,MAAM,cAAc,GAAG,CACrB,KAAmB,EACnB,UAA4B,EACmB,EAAE;IACjD,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAiB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;KACjE;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,KAAmB,EACnB,IAAgB,EAChB,UAA4B,EAI5B,EAAE;IACF,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEtD,IAAI,IAAA,0BAAgB,EAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACjD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;gBACL,QAAQ,EAAE,KAAK,CAAC,MAAM;gBACtB,QAAQ,EAAE,KAAK,CAAC,MAAM;gBACtB,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;aACpC,CAAC;SACH;QAED,OAAO;YACL,KAAK,EAAE,IAAA,oBAAiB,EAAC,IAAI,EAAE,UAAU,CAAC;YAC1C,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;SACpC,CAAC;KACH;IAED,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;YACL,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,QAAQ,EAAE,KAAK,CAAC,MAAM;YACtB,GAAG,CAAC,WAAW,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;SACtD,CAAC;KACH;IAED,OAAO;QACL,GAAG,CAAC,WAAW,IAAI;YACjB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,WAAW,EAAE,IAAA,oBAAiB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE;SACxE,CAAC;KACH,CAAC;AACJ,CAAC,CAAC"}