zod-openapi 0.4.1 → 0.4.3

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.
@@ -1,31 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createNumberSchema = void 0;
3
+ exports.mapMinimum = exports.mapMaximum = exports.mapNumberChecks = exports.createNumberSchema = void 0;
4
4
  const openapi_1 = require("../../openapi");
5
5
  const createNumberSchema = (zodNumber, components) => {
6
6
  const zodNumberChecks = getZodNumberChecks(zodNumber);
7
+ const minimum = (0, exports.mapMinimum)(zodNumberChecks, components.openapi);
8
+ const maximum = (0, exports.mapMaximum)(zodNumberChecks, components.openapi);
7
9
  return {
8
10
  type: mapNumberType(zodNumberChecks),
9
- ...mapRanges(zodNumberChecks, components.openapi), // union types are too pesky to drill through
11
+ ...(minimum && minimum),
12
+ ...(maximum && maximum),
10
13
  };
11
14
  };
12
15
  exports.createNumberSchema = createNumberSchema;
13
- const mapRanges = (zodNumberChecks, openapi) => {
14
- const minimum = zodNumberChecks.min?.value;
15
- const maximum = zodNumberChecks.max?.value;
16
- const exclusiveMinimum = zodNumberChecks.min?.inclusive;
17
- const exclusiveMaximum = zodNumberChecks.max?.inclusive;
18
- return {
19
- ...(minimum !== undefined && { minimum }),
20
- ...(maximum !== undefined && { 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
- }),
27
- };
16
+ const mapNumberChecks = () => { };
17
+ exports.mapNumberChecks = mapNumberChecks;
18
+ const mapMaximum = (zodNumberCheck, openapi) => {
19
+ if (!zodNumberCheck.max) {
20
+ return undefined;
21
+ }
22
+ const maximum = zodNumberCheck.max.value;
23
+ if (zodNumberCheck.max.inclusive) {
24
+ return { ...(maximum !== undefined && { maximum }) };
25
+ }
26
+ if ((0, openapi_1.satisfiesVersion)(openapi, '3.1.0')) {
27
+ return { exclusiveMaximum: maximum };
28
+ }
29
+ return { maximum, exclusiveMaximum: true };
30
+ };
31
+ exports.mapMaximum = mapMaximum;
32
+ const mapMinimum = (zodNumberCheck, openapi) => {
33
+ if (!zodNumberCheck.min) {
34
+ return undefined;
35
+ }
36
+ const minimum = zodNumberCheck.min.value;
37
+ if (zodNumberCheck.min.inclusive) {
38
+ return { ...(minimum !== undefined && { minimum }) };
39
+ }
40
+ if ((0, openapi_1.satisfiesVersion)(openapi, '3.1.0')) {
41
+ return { exclusiveMinimum: minimum };
42
+ }
43
+ return { minimum, exclusiveMinimum: true };
28
44
  };
45
+ exports.mapMinimum = mapMinimum;
29
46
  const getZodNumberChecks = (zodNumber) => zodNumber._def.checks.reduce((acc, check) => {
30
47
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
31
48
  acc[check.kind] = check;
@@ -1 +1 @@
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
+ {"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,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAEhE,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC;QACpC,GAAG,CAAC,OAAO,IAAK,OAA8B,CAAC;QAC/C,GAAG,CAAC,OAAO,IAAK,OAA8B,CAAC;KAChD,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,kBAAkB,sBAc7B;AAEK,MAAM,eAAe,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAA3B,QAAA,eAAe,mBAAY;AAEjC,MAAM,UAAU,GAAG,CACxB,cAAiC,EACjC,OAA0B,EAMd,EAAE;IACd,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;QACvB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;IACzC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KACtD;IACD,IAAI,IAAA,0BAAgB,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACtC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;KACtC;IACD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC,CAAC;AArBW,QAAA,UAAU,cAqBrB;AACK,MAAM,UAAU,GAAG,CACxB,cAAiC,EACjC,OAA0B,EAMd,EAAE;IACd,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;QACvB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;IACzC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KACtD;IACD,IAAI,IAAA,0BAAgB,EAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACtC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;KACtC;IACD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC,CAAC;AArBW,QAAA,UAAU,cAqBrB;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"}
@@ -30,7 +30,7 @@ const createObjectSchemaFromShape = (shape, strict, components) => ({
30
30
  type: 'object',
31
31
  properties: (0, exports.mapProperties)(shape, components),
32
32
  required: (0, exports.mapRequired)(shape),
33
- ...(strict && { additionalProperties: strict }),
33
+ ...(strict && { additionalProperties: false }),
34
34
  });
35
35
  exports.createObjectSchemaFromShape = createObjectSchemaFromShape;
36
36
  const mapRequired = (shape) => {
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/create/schema/object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/create/schema/object.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,40 @@
1
1
  import { satisfiesVersion } from '../../openapi';
2
2
  export const createNumberSchema = (zodNumber, components) => {
3
3
  const zodNumberChecks = getZodNumberChecks(zodNumber);
4
+ const minimum = mapMinimum(zodNumberChecks, components.openapi);
5
+ const maximum = mapMaximum(zodNumberChecks, components.openapi);
4
6
  return {
5
7
  type: mapNumberType(zodNumberChecks),
6
- ...mapRanges(zodNumberChecks, components.openapi), // union types are too pesky to drill through
8
+ ...(minimum && minimum),
9
+ ...(maximum && maximum),
7
10
  };
8
11
  };
9
- const mapRanges = (zodNumberChecks, openapi) => {
10
- const minimum = zodNumberChecks.min?.value;
11
- const maximum = zodNumberChecks.max?.value;
12
- const exclusiveMinimum = zodNumberChecks.min?.inclusive;
13
- const exclusiveMaximum = zodNumberChecks.max?.inclusive;
14
- return {
15
- ...(minimum !== undefined && { minimum }),
16
- ...(maximum !== undefined && { maximum }),
17
- ...(exclusiveMinimum && {
18
- exclusiveMinimum: satisfiesVersion(openapi, '3.1.0') ? minimum : true,
19
- }),
20
- ...(exclusiveMaximum && {
21
- exclusiveMaximum: satisfiesVersion(openapi, '3.1.0') ? maximum : true,
22
- }),
23
- };
12
+ export const mapNumberChecks = () => { };
13
+ export const mapMaximum = (zodNumberCheck, openapi) => {
14
+ if (!zodNumberCheck.max) {
15
+ return undefined;
16
+ }
17
+ const maximum = zodNumberCheck.max.value;
18
+ if (zodNumberCheck.max.inclusive) {
19
+ return { ...(maximum !== undefined && { maximum }) };
20
+ }
21
+ if (satisfiesVersion(openapi, '3.1.0')) {
22
+ return { exclusiveMaximum: maximum };
23
+ }
24
+ return { maximum, exclusiveMaximum: true };
25
+ };
26
+ export const mapMinimum = (zodNumberCheck, openapi) => {
27
+ if (!zodNumberCheck.min) {
28
+ return undefined;
29
+ }
30
+ const minimum = zodNumberCheck.min.value;
31
+ if (zodNumberCheck.min.inclusive) {
32
+ return { ...(minimum !== undefined && { minimum }) };
33
+ }
34
+ if (satisfiesVersion(openapi, '3.1.0')) {
35
+ return { exclusiveMinimum: minimum };
36
+ }
37
+ return { minimum, exclusiveMinimum: true };
24
38
  };
25
39
  const getZodNumberChecks = (zodNumber) => zodNumber._def.checks.reduce((acc, check) => {
26
40
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
@@ -1 +1 @@
1
- {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/create/schema/number.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,MAAM,CAAC,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;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,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;SACtE,CAAC;QACF,GAAG,CAAC,gBAAgB,IAAI;YACtB,gBAAgB,EAAE,gBAAgB,CAAC,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
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../src/create/schema/number.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,SAAoB,EACpB,UAA4B,EACR,EAAE;IACtB,MAAM,eAAe,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAEhE,OAAO;QACL,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC;QACpC,GAAG,CAAC,OAAO,IAAK,OAA8B,CAAC;QAC/C,GAAG,CAAC,OAAO,IAAK,OAA8B,CAAC;KAChD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,cAAiC,EACjC,OAA0B,EAMd,EAAE;IACd,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;QACvB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;IACzC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KACtD;IACD,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACtC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;KACtC;IACD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AAC7C,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,cAAiC,EACjC,OAA0B,EAMd,EAAE;IACd,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE;QACvB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;IACzC,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAChC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;KACtD;IACD,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE;QACtC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC;KACtC;IACD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;AAC7C,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"}
@@ -25,7 +25,7 @@ export const createObjectSchemaFromShape = (shape, strict, components) => ({
25
25
  type: 'object',
26
26
  properties: mapProperties(shape, components),
27
27
  required: mapRequired(shape),
28
- ...(strict && { additionalProperties: strict }),
28
+ ...(strict && { additionalProperties: false }),
29
29
  });
30
30
  export const mapRequired = (shape) => {
31
31
  const required = Object.entries(shape)
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/create/schema/object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/create/schema/object.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoB,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAEtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAIhC,SAAmD,EACnD,UAA4B,EACR,EAAE;IACtB,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;QAC7C,OAAO,oBAAoB,CACzB,SAAS,EACT,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EACrC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EACxC,UAAU,CACX,CAAC;KACH;IAED,OAAO,2BAA2B,CAChC,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,IAAI,CAAC,WAAW,KAAK,QAAQ,EACvC,UAAU,CACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,SAA6C,EAC7C,aAAiD,EACjD,SAAiB,EACjB,UAA4B,EACR,EAAE;IACtB,MAAM,SAAS,GAAG,eAAe,CAC/B,aAAa,CAAC,IAAI,CAAC,KAAK,EAAiB,EACzC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAiB,CACtC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,wBAAwB,CAAC,SAAS,CAAC,EAAE;YAC7C,2BAA2B,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC;SAC1D;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,OAAoB,EACpB,WAAwB,EACX,EAAE,CACf,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,CAAc,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;IAClE,IAAI,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE;QACxB,GAAG,CAAC,GAA+B,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;KACzD;IAED,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAAC,CAAC;AAET,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,KAAkB,EAClB,MAAe,EACf,UAA4B,EACR,EAAE,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;IAC5C,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC;IAC5B,GAAG,CAAC,MAAM,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAkB,EACc,EAAE;IAClC,MAAM,QAAQ,GAAa,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;SACtD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;IAEvB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;QACpB,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAkB,EAClB,UAA4B,EACM,EAAE,CACpC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAiD,EAAE;IACvE,GAAG,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACpD,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAE,CACH,CAAC"}
@@ -1,4 +1,14 @@
1
- import { oas31 } from 'openapi3-ts';
2
- import { ZodNumber } from 'zod';
1
+ import { oas30, oas31 } from 'openapi3-ts';
2
+ import { ZodNumber, ZodNumberCheck } from 'zod';
3
3
  import { ComponentsObject } from '../components';
4
+ import { ZodOpenApiVersion } from '../document';
4
5
  export declare const createNumberSchema: (zodNumber: ZodNumber, components: ComponentsObject) => oas31.SchemaObject;
6
+ export declare const mapNumberChecks: () => void;
7
+ export declare const mapMaximum: (zodNumberCheck: ZodNumberCheckMap, openapi: ZodOpenApiVersion) => Pick<oas31.SchemaObject | oas30.SchemaObject, 'maximum' | 'exclusiveMaximum'> | undefined;
8
+ export declare const mapMinimum: (zodNumberCheck: ZodNumberCheckMap, openapi: ZodOpenApiVersion) => Pick<oas31.SchemaObject | oas30.SchemaObject, 'minimum' | 'exclusiveMinimum'> | undefined;
9
+ type ZodNumberCheckMap = {
10
+ [kind in ZodNumberCheck['kind']]?: Extract<ZodNumberCheck, {
11
+ kind: kind;
12
+ }>;
13
+ };
14
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod-openapi",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "A library to create full OpenAPI documents from your Zod types",
5
5
  "homepage": "https://github.com/samchungy/zod-openapi#readme",
6
6
  "bugs": {