@origins-digital/zod-openapi-utils 1.1.1 → 2.0.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 CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  A utility package that bridges Zod schemas with OpenAPI/Swagger documentation in NestJS applications.
4
4
 
5
+ > **Zod compatibility**: Fully compatible with **Zod v4.x**.
6
+
5
7
  ## Installation
6
8
 
7
9
  ```bash
@@ -1,10 +1,10 @@
1
- import { ZodSchema, ZodTypeDef } from 'zod';
2
- export interface ZodDto<TOutput = any, TDef extends ZodTypeDef = ZodTypeDef, TInput = TOutput> {
1
+ import { ZodSchema } from 'zod';
2
+ export interface ZodDto<TOutput = any> {
3
3
  new (): TOutput;
4
4
  isZodDto: true;
5
- schema: ZodSchema<TOutput, TDef, TInput>;
5
+ schema: ZodSchema<TOutput>;
6
6
  create(input: unknown): TOutput;
7
7
  }
8
- export declare function createZodDto<TOutput = any, TDef extends ZodTypeDef = ZodTypeDef, TInput = TOutput>(schema: ZodSchema<TOutput, TDef, TInput>): ZodDto<TOutput, TDef, TInput>;
8
+ export declare function createZodDto<TOutput = any>(schema: ZodSchema<TOutput>): ZodDto<TOutput>;
9
9
  export declare function isZodDto(metatype: any): metatype is ZodDto<unknown>;
10
10
  //# sourceMappingURL=dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/openapi/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAG5C,MAAM,WAAW,MAAM,CACrB,OAAO,GAAG,GAAG,EACb,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,MAAM,GAAG,OAAO;IAEhB,QAAQ,OAAO,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AAED,wBAAgB,YAAY,CAC1B,OAAO,GAAG,GAAG,EACb,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,MAAM,GAAG,OAAO,EAChB,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,GAUH,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CACnE;AAGD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAEnE"}
1
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/openapi/dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAGhC,MAAM,WAAW,MAAM,CAAC,OAAO,GAAG,GAAG;IACnC,QAAQ,OAAO,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAG,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,GAU/B,MAAM,CAAC,OAAO,CAAC,CACrD;AAGD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAEnE"}
@@ -14,6 +14,6 @@ function createZodDto(schema) {
14
14
  }
15
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
16
  function isZodDto(metatype) {
17
- return metatype === null || metatype === void 0 ? void 0 : metatype.isZodDto;
17
+ return !!(metatype === null || metatype === void 0 ? void 0 : metatype.isZodDto);
18
18
  }
19
19
  //# sourceMappingURL=dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/openapi/dto.ts"],"names":[],"mappings":";;AAcA,oCAeC;AAGD,4BAEC;AApBD,SAAgB,YAAY,CAI1B,MAAwC;IACxC,MAAM,eAAe;QAIZ,MAAM,CAAC,MAAM,CAAC,KAAc;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;;IALa,wBAAQ,GAAG,IAAI,CAAC;IAChB,sBAAM,GAAG,MAAM,CAAC;IAOhC,OAAO,eAA2D,CAAC;AACrE,CAAC;AAED,8DAA8D;AAC9D,SAAgB,QAAQ,CAAC,QAAa;IACpC,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/openapi/dto.ts"],"names":[],"mappings":";;AAUA,oCAWC;AAGD,4BAEC;AAhBD,SAAgB,YAAY,CAAgB,MAA0B;IACpE,MAAM,eAAe;QAIZ,MAAM,CAAC,MAAM,CAAC,KAAc;YACjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;;IALa,wBAAQ,GAAG,IAAI,CAAC;IAChB,sBAAM,GAAG,MAAM,CAAC;IAOhC,OAAO,eAA6C,CAAC;AACvD,CAAC;AAED,8DAA8D;AAC9D,SAAgB,QAAQ,CAAC,QAAa;IACpC,OAAO,CAAC,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dto.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto.spec.d.ts","sourceRoot":"","sources":["../../src/openapi/dto.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const zod_1 = require("zod");
4
+ const dto_1 = require("./dto");
5
+ const zod_extension_1 = require("./zod.extension");
6
+ const zod_to_openapi_1 = require("./zod-to-openapi");
7
+ describe('createZodDto', () => {
8
+ beforeAll(() => {
9
+ (0, zod_extension_1.extendZodWithOpenApi)(zod_1.z, true);
10
+ });
11
+ it('should create a ZodDto class with static schema and create()', () => {
12
+ const schema = zod_1.z.object({
13
+ id: zod_1.z.string().uuid(),
14
+ name: zod_1.z.string(),
15
+ });
16
+ const UserDto = (0, dto_1.createZodDto)(schema);
17
+ expect(UserDto.isZodDto).toBe(true);
18
+ expect(UserDto.schema).toBe(schema);
19
+ const input = { id: '550e8400-e29b-41d4-a716-446655440000', name: 'John' };
20
+ const result = UserDto.create(input);
21
+ expect(result).toEqual(input);
22
+ });
23
+ it('isZodDto should detect DTOs created by createZodDto', () => {
24
+ const schema = zod_1.z.object({ foo: zod_1.z.string() });
25
+ const FooDto = (0, dto_1.createZodDto)(schema);
26
+ expect((0, dto_1.isZodDto)(FooDto)).toBe(true);
27
+ expect((0, dto_1.isZodDto)(schema)).toBe(false);
28
+ expect((0, dto_1.isZodDto)(class {
29
+ })).toBe(false);
30
+ });
31
+ it('should work with openapi metadata and zodToOpenAPI', () => {
32
+ const schema = zod_1.z
33
+ .object({
34
+ id: zod_1.z.string().uuid(),
35
+ email: zod_1.z.string().openapi({ format: 'email' }),
36
+ })
37
+ .openapi({ title: 'UserDto' });
38
+ const UserDto = (0, dto_1.createZodDto)(schema);
39
+ // schema debe conservarse tal cual en el DTO
40
+ expect(UserDto.schema).toBe(schema);
41
+ const openapiSchema = (0, zod_to_openapi_1.zodToOpenAPI)(UserDto.schema);
42
+ expect(openapiSchema.type).toBe('object');
43
+ expect(openapiSchema.title).toBe('UserDto');
44
+ expect(openapiSchema.properties.email.format).toBe('email');
45
+ });
46
+ });
47
+ //# sourceMappingURL=dto.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dto.spec.js","sourceRoot":"","sources":["../../src/openapi/dto.spec.ts"],"names":[],"mappings":";;AAAA,6BAAwB;AACxB,+BAAuD;AACvD,mDAAuD;AACvD,qDAAgD;AAEhD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,SAAS,CAAC,GAAG,EAAE;QACb,IAAA,oCAAoB,EAAC,OAAC,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC;YACtB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YACrB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;SACjB,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC;QAErC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,sCAAsC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC3E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,OAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,CAAC,IAAA,cAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,IAAA,cAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,IAAA,cAAQ,EAAC;SAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,OAAC;aACb,MAAM,CAAC;YACN,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;YACrB,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;SAC/C,CAAC;aACD,OAAO,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEjC,MAAM,OAAO,GAAG,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC;QAErC,6CAA6C;QAC7C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAQ,IAAA,6BAAY,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"make-open-api.d.ts","sourceRoot":"","sources":["../../src/openapi/make-open-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAGjC,eAAO,MAAM,qBAAqB,GAAI,YAAY,UAAU,EAAE,OAS7D,CAAC"}
1
+ {"version":3,"file":"make-open-api.d.ts","sourceRoot":"","sources":["../../src/openapi/make-open-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAGjC,eAAO,MAAM,qBAAqB,GAAI,YAAY,UAAU,EAAE,OAY7D,CAAC"}
@@ -4,10 +4,11 @@ exports.makeOpenAPIComponents = void 0;
4
4
  const zod_to_openapi_1 = require("./zod-to-openapi");
5
5
  const makeOpenAPIComponents = (components) => {
6
6
  return components.reduce((components, item) => {
7
- if (item._def.schemaName) {
8
- if (!components[item._def.schemaName]) {
9
- components[item._def.schemaName] = (0, zod_to_openapi_1.zodToOpenAPI)(item, {});
10
- }
7
+ var _a, _b, _c;
8
+ const def = item._def;
9
+ const name = (_c = (_b = (_a = def === null || def === void 0 ? void 0 : def.metadata) === null || _a === void 0 ? void 0 : _a.title) !== null && _b !== void 0 ? _b : def === null || def === void 0 ? void 0 : def.schemaName) !== null && _c !== void 0 ? _c : undefined;
10
+ if (name && !components[name]) {
11
+ components[name] = (0, zod_to_openapi_1.zodToOpenAPI)(item, {});
11
12
  }
12
13
  return components;
13
14
  }, {});
@@ -1 +1 @@
1
- {"version":3,"file":"make-open-api.js","sourceRoot":"","sources":["../../src/openapi/make-open-api.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAEzC,MAAM,qBAAqB,GAAG,CAAC,UAAwB,EAAE,EAAE;IAChE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;QAC5C,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAA,6BAAY,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AATW,QAAA,qBAAqB,yBAShC"}
1
+ {"version":3,"file":"make-open-api.js","sourceRoot":"","sources":["../../src/openapi/make-open-api.ts"],"names":[],"mappings":";;;AACA,qDAAgD;AAEzC,MAAM,qBAAqB,GAAG,CAAC,UAAwB,EAAE,EAAE;IAChE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;;QAC5C,MAAM,GAAG,GAAS,IAAY,CAAC,IAAI,CAAC;QACpC,MAAM,IAAI,GACR,MAAA,MAAA,MAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,0CAAE,KAAK,mCAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,mCAAI,SAAS,CAAC;QAEvD,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,6BAAY,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAZW,QAAA,qBAAqB,yBAYhC"}
@@ -7,6 +7,8 @@ interface ZodToOpenAPIOptions {
7
7
  generateRef?: boolean;
8
8
  }
9
9
  export declare function is<T extends Type<z.ZodTypeAny>>(input: z.ZodTypeAny, factory: T): input is InstanceType<T>;
10
- export declare function zodToOpenAPI(zodType: z.ZodTypeAny, options?: ZodToOpenAPIOptions): SchemaObject;
10
+ export declare function zodToOpenAPI(zodType: z.ZodTypeAny, options?: ZodToOpenAPIOptions): SchemaObject | {
11
+ $ref: string;
12
+ };
11
13
  export {};
12
14
  //# sourceMappingURL=zod-to-openapi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-openapi.d.ts","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAEL,YAAY,EACb,MAAM,yDAAyD,CAAC;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAC7C,KAAK,EAAE,CAAC,CAAC,UAAU,EACnB,OAAO,EAAE,CAAC,GACT,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAG1B;AA0CD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,CAAC,CAAC,UAAU,EACrB,OAAO,GAAE,mBAAwB,gBA8TlC"}
1
+ {"version":3,"file":"zod-to-openapi.d.ts","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAEL,YAAY,EACb,MAAM,yDAAyD,CAAC;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAC7C,KAAK,EAAE,CAAC,CAAC,UAAU,EACnB,OAAO,EAAE,CAAC,GACT,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC,CAI1B;AA8CD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,CAAC,CAAC,UAAU,EACrB,OAAO,GAAE,mBAAwB;;EA2TlC"}
@@ -9,12 +9,13 @@ const deepmerge_1 = __importDefault(require("deepmerge"));
9
9
  const zod_1 = require("zod");
10
10
  function is(input, factory) {
11
11
  const factories = zod_1.z;
12
- return factory === factories[input._def.typeName];
12
+ const def = input._def;
13
+ return factory === factories[def === null || def === void 0 ? void 0 : def.typeName];
13
14
  }
14
15
  function applyOpenAPIMetadata(zodType, object) {
15
- var _a;
16
- if ((_a = zodType === null || zodType === void 0 ? void 0 : zodType._def) === null || _a === void 0 ? void 0 : _a.metadata) {
17
- const openapi = zodType._def.metadata;
16
+ const def = zodType._def;
17
+ if (def === null || def === void 0 ? void 0 : def.metadata) {
18
+ const openapi = def.metadata;
18
19
  if (openapi.title) {
19
20
  object.title = openapi.title;
20
21
  }
@@ -39,13 +40,16 @@ function applyOpenAPIMetadata(zodType, object) {
39
40
  if (openapi.externalDocs) {
40
41
  object.externalDocs = openapi.externalDocs;
41
42
  }
43
+ if (openapi.format) {
44
+ object.format = openapi.format;
45
+ }
42
46
  }
43
47
  else if (zodType && zodType.description) {
44
48
  object.description = zodType.description;
45
49
  }
46
50
  }
47
51
  function zodToOpenAPI(zodType, options = {}) {
48
- var _a, _b;
52
+ var _a, _b, _c, _d, _e, _f, _g, _h;
49
53
  const { visited = new Set(), child = false, generateRef = true } = options;
50
54
  // Safety check for undefined or null zodType
51
55
  if (!zodType || typeof zodType !== 'object') {
@@ -54,12 +58,16 @@ function zodToOpenAPI(zodType, options = {}) {
54
58
  const object = {};
55
59
  // Handle OpenAPI metadata
56
60
  applyOpenAPIMetadata(zodType, object);
57
- if (generateRef && child && zodType && ((_b = (_a = zodType._def) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.title)) {
58
- object['$ref'] = `#/components/schemas/${zodType._def.metadata.title}`;
59
- return object;
61
+ const meta = (_a = zodType._def) === null || _a === void 0 ? void 0 : _a.metadata;
62
+ if (generateRef && child && (meta === null || meta === void 0 ? void 0 : meta.title)) {
63
+ // For child schemas with a named component, emit only a $ref
64
+ return {
65
+ $ref: `#/components/schemas/${meta.title}`,
66
+ };
60
67
  }
61
- if (is(zodType, zod_1.z.ZodString)) {
62
- const { checks } = zodType._def;
68
+ if (zodType instanceof zod_1.z.ZodString) {
69
+ const def = zodType._def;
70
+ const checks = (_b = def.checks) !== null && _b !== void 0 ? _b : [];
63
71
  object.type = 'string';
64
72
  for (const check of checks) {
65
73
  if (check.kind === 'min') {
@@ -92,16 +100,14 @@ function zodToOpenAPI(zodType, options = {}) {
92
100
  else if (check.kind === 'time') {
93
101
  object.pattern = '^[0-9]{2}:[0-9]{2}:[0-9]{2}$';
94
102
  }
95
- else if (check.kind === 'password') {
96
- object.format = 'password';
97
- }
98
103
  }
99
104
  }
100
105
  if (is(zodType, zod_1.z.ZodBoolean)) {
101
106
  object.type = 'boolean';
102
107
  }
103
108
  if (is(zodType, zod_1.z.ZodNumber)) {
104
- const { checks } = zodType._def;
109
+ const def = zodType._def;
110
+ const checks = (_c = def.checks) !== null && _c !== void 0 ? _c : [];
105
111
  object.type = 'number';
106
112
  for (const check of checks) {
107
113
  if (check.kind === 'int') {
@@ -121,7 +127,8 @@ function zodToOpenAPI(zodType, options = {}) {
121
127
  }
122
128
  }
123
129
  if (is(zodType, zod_1.z.ZodDate)) {
124
- const { checks } = zodType._def;
130
+ const def = zodType._def;
131
+ const checks = (_d = def.checks) !== null && _d !== void 0 ? _d : [];
125
132
  object.type = 'string';
126
133
  for (const check of checks) {
127
134
  object.format = 'data-time';
@@ -132,7 +139,10 @@ function zodToOpenAPI(zodType, options = {}) {
132
139
  object.format = 'int64';
133
140
  }
134
141
  if (is(zodType, zod_1.z.ZodArray)) {
135
- const { minLength, maxLength, type } = zodType._def;
142
+ const def = zodType._def;
143
+ const minLength = def.minLength;
144
+ const maxLength = def.maxLength;
145
+ const type = def.type;
136
146
  object.type = 'array';
137
147
  if (minLength)
138
148
  object.minItems = minLength.value;
@@ -146,7 +156,8 @@ function zodToOpenAPI(zodType, options = {}) {
146
156
  }
147
157
  }
148
158
  if (is(zodType, zod_1.z.ZodTuple)) {
149
- const { items } = zodType._def;
159
+ const def = zodType._def;
160
+ const items = (_e = def.items) !== null && _e !== void 0 ? _e : [];
150
161
  object.type = 'array';
151
162
  object.items = {
152
163
  oneOf: items
@@ -155,7 +166,10 @@ function zodToOpenAPI(zodType, options = {}) {
155
166
  };
156
167
  }
157
168
  if (is(zodType, zod_1.z.ZodSet)) {
158
- const { valueType, minSize, maxSize } = zodType._def;
169
+ const def = zodType._def;
170
+ const valueType = def.valueType;
171
+ const minSize = def.minSize;
172
+ const maxSize = def.maxSize;
159
173
  object.type = 'array';
160
174
  if (minSize)
161
175
  object.minItems = minSize.value;
@@ -169,7 +183,8 @@ function zodToOpenAPI(zodType, options = {}) {
169
183
  object.uniqueItems = true;
170
184
  }
171
185
  if (is(zodType, zod_1.z.ZodUnion)) {
172
- const { options } = zodType._def;
186
+ const def = zodType._def;
187
+ const options = (_f = def.options) !== null && _f !== void 0 ? _f : [];
173
188
  object.oneOf = [];
174
189
  for (const schema of options) {
175
190
  if (!schema) {
@@ -186,9 +201,10 @@ function zodToOpenAPI(zodType, options = {}) {
186
201
  }
187
202
  }
188
203
  if (is(zodType, zod_1.z.ZodDiscriminatedUnion)) {
189
- const { options } = zodType._def;
204
+ const def = zodType._def;
205
+ const options = (_g = def.options) !== null && _g !== void 0 ? _g : new Map();
190
206
  object.discriminator = {
191
- propertyName: zodType._def.discriminator,
207
+ propertyName: def.discriminator,
192
208
  };
193
209
  object.oneOf = [];
194
210
  for (const schema of options.values()) {
@@ -196,7 +212,8 @@ function zodToOpenAPI(zodType, options = {}) {
196
212
  }
197
213
  }
198
214
  if (is(zodType, zod_1.z.ZodLiteral)) {
199
- const { value } = zodType._def;
215
+ const def = zodType._def;
216
+ const value = def.value;
200
217
  if (typeof value === 'string') {
201
218
  object.type = 'string';
202
219
  object.enum = [value];
@@ -212,28 +229,20 @@ function zodToOpenAPI(zodType, options = {}) {
212
229
  }
213
230
  }
214
231
  if (is(zodType, zod_1.z.ZodEnum)) {
215
- const { values } = zodType._def;
232
+ const def = zodType._def;
233
+ const values = (_h = def.values) !== null && _h !== void 0 ? _h : [];
216
234
  object.type = 'string';
217
235
  object.enum = values;
218
236
  }
219
- if (is(zodType, zod_1.z.ZodNativeEnum)) {
220
- const { values } = zodType._def;
221
- // this only supports enums with string literal values
222
- object.type = 'string';
223
- object.enum = Object.values(values);
224
- object['x-enumNames'] = Object.keys(values);
225
- }
226
- if (is(zodType, zod_1.z.ZodTransformer)) {
227
- const { schema } = zodType._def;
228
- Object.assign(object, zodToOpenAPI(schema, { visited, child: true, generateRef }));
229
- }
230
237
  if (is(zodType, zod_1.z.ZodNullable)) {
231
- const { innerType } = zodType._def;
238
+ const def = zodType._def;
239
+ const innerType = def.innerType;
232
240
  Object.assign(object, zodToOpenAPI(innerType, { visited, child: true, generateRef }));
233
241
  object.nullable = true;
234
242
  }
235
243
  if (is(zodType, zod_1.z.ZodOptional)) {
236
- const { innerType } = zodType._def;
244
+ const def = zodType._def;
245
+ const innerType = def.innerType;
237
246
  const innerSchema = zodToOpenAPI(innerType, {
238
247
  visited,
239
248
  child: true,
@@ -243,16 +252,19 @@ function zodToOpenAPI(zodType, options = {}) {
243
252
  // Mark as optional by not adding to required array (handled in ZodObject)
244
253
  }
245
254
  if (is(zodType, zod_1.z.ZodDefault)) {
246
- const { defaultValue, innerType } = zodType._def;
255
+ const def = zodType._def;
256
+ const defaultValue = def.defaultValue;
257
+ const innerType = def.innerType;
247
258
  Object.assign(object, zodToOpenAPI(innerType, { visited, child: true, generateRef }));
248
259
  object.default = defaultValue();
249
260
  }
250
- if (is(zodType, zod_1.z.ZodObject)) {
251
- const { shape } = zodType._def;
261
+ if (zodType instanceof zod_1.z.ZodObject) {
262
+ const def = zodType._def;
263
+ const rawShape = typeof def.shape === 'function' ? def.shape() : def.shape;
252
264
  object.type = 'object';
253
265
  object.properties = {};
254
266
  object.required = [];
255
- for (const [key, schema] of Object.entries(shape())) {
267
+ for (const [key, schema] of Object.entries(rawShape)) {
256
268
  object.properties[key] = zodToOpenAPI(schema, {
257
269
  visited,
258
270
  child: true,
@@ -268,7 +280,8 @@ function zodToOpenAPI(zodType, options = {}) {
268
280
  }
269
281
  }
270
282
  if (is(zodType, zod_1.z.ZodRecord)) {
271
- const { valueType } = zodType._def;
283
+ const def = zodType._def;
284
+ const valueType = def.valueType;
272
285
  object.type = 'object';
273
286
  object.additionalProperties = zodToOpenAPI(valueType, {
274
287
  visited,
@@ -277,7 +290,9 @@ function zodToOpenAPI(zodType, options = {}) {
277
290
  });
278
291
  }
279
292
  if (is(zodType, zod_1.z.ZodIntersection)) {
280
- const { left, right } = zodType._def;
293
+ const def = zodType._def;
294
+ const left = def.left;
295
+ const right = def.right;
281
296
  const leftSchema = zodToOpenAPI(left, {
282
297
  visited,
283
298
  child: true,
@@ -299,10 +314,6 @@ function zodToOpenAPI(zodType, options = {}) {
299
314
  }
300
315
  Object.assign(object, merged);
301
316
  }
302
- if (is(zodType, zod_1.z.ZodEffects)) {
303
- const { schema } = zodType._def;
304
- Object.assign(object, zodToOpenAPI(schema, { visited, child: true, generateRef }));
305
- }
306
317
  if (is(zodType, zod_1.z.ZodLazy)) {
307
318
  const { getter } = zodType._def;
308
319
  if (visited.has(getter))
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-openapi.js","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.ts"],"names":[],"mappings":";;;;;AAkBA,gBAMC;AA0CD,oCAgUC;AA5XD,0DAAkC;AAClC,6BAAwB;AAWxB,SAAgB,EAAE,CAChB,KAAmB,EACnB,OAAU;IAEV,MAAM,SAAS,GAAG,OAAkD,CAAC;IACrE,OAAO,OAAO,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAqB,EAAE,MAAW;;IAC9D,IAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,0CAAE,QAAQ,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;QAEtC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC/B,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC3C,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,CAAC;QAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAC1B,OAAqB,EACrB,UAA+B,EAAE;;IAEjC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3E,6CAA6C;IAC7C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAyB,EAAE,CAAC;IAExC,0BAA0B;IAC1B,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtC,IAAI,WAAW,IAAI,KAAK,IAAI,OAAO,KAAI,MAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,0CAAE,KAAK,CAAA,EAAE,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,GAAG,wBAAwB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEvE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YACjC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;YACjC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;YAC1B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YACxB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YACtC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACrC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;YAC9B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,CAAC,OAAO,GAAG,8BAA8B,CAAC;YAClD,CAAC;iBAAM,IACJ,KAAK,CAAC,IAAwC,KAAK,UAAU,EAC9D,CAAC;gBACD,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YAC1B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC7B,MAAM,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YAC7C,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;gBAChC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC7B,MAAM,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;YAC7C,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBACvC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QAEvB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;QACxB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACpD,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,IAAI,SAAS;YAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;QACjD,IAAI,SAAS;YAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;QACjD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAC/B,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,MAAM,CAAC,KAAK,GAAG;YACb,KAAK,EAAE,KAAK;iBACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC;iBACrD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACZ,YAAY,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAC1D;SACJ,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACrD,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;QACtB,IAAI,OAAO;YAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7C,IAAI,OAAO;YAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QAC7C,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE;YACrC,OAAO;YACP,KAAK,EAAE,IAAI;YACX,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YACD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE;gBACxC,OAAO;gBACP,KAAK,EAAE,IAAI;gBACX,WAAW;aACZ,CAAC,CAAC;YACH,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,CAAC,aAAa,GAAG;YACrB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa;SACzC,CAAC;QACF,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;QAClB,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAC5D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAE/B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;YACvB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,mEAAmE;YACnE,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,sDAAsD;QACtD,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,cAAc,CAAC,EAAE,CAAC;QAClC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,MAAM,CACX,MAAM,EACN,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,MAAM,CACX,MAAM,EACN,YAAY,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAC/D,CAAC;QACF,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACnC,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE;YAC1C,OAAO;YACP,KAAK,EAAE,IAAI;YACX,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnC,0EAA0E;IAC5E,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACjD,MAAM,CAAC,MAAM,CACX,MAAM,EACN,YAAY,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAC/D,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAC/B,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QAErB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAe,KAAK,EAAE,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE;gBAC5C,OAAO;gBACP,KAAK,EAAE,IAAI;gBACX,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,aAAa,GAAG,CAAC,OAAC,CAAC,WAAW,CAAC,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QACnC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,oBAAoB,GAAG,YAAY,CAAC,SAAS,EAAE;YACpD,OAAO;YACP,KAAK,EAAE,IAAI;YACX,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,eAAe,CAAC,EAAE,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAErC,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE;YACpC,OAAO;YACP,KAAK,EAAE,IAAI;YACX,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,EAAE;YACtC,OAAO;YACP,KAAK,EAAE,IAAI;YACX,WAAW;SACZ,CAAC,CAAC;QACH,IAAI,MAA4B,CAAC;QAEjC,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,IAAI,WAAW,EAAE,CAAC;YAClD,MAAM,GAAG,EAAE,KAAK,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,wBAAwB;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAA,mBAAS,EAAC,UAAU,EAAE,WAAW,EAAE;gBAC1C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;aAC9C,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,MAAM,CACX,MAAM,EACN,YAAY,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,OAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,MAAM,CAAC;QAEvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,sCAAsC;YACtC,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC;YAEhC,0CAA0C;YAC1C,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,EAAE;gBAClD,OAAO;gBACP,KAAK,EAAE,IAAI;gBACX,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8DAA8D;YAC9D,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"zod-to-openapi.js","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=zod-to-openapi.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-to-openapi.spec.d.ts","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const zod_1 = require("zod");
4
+ const zod_to_openapi_1 = require("./zod-to-openapi");
5
+ const zod_extension_1 = require("./zod.extension");
6
+ describe('zodToOpenAPI', () => {
7
+ beforeAll(() => {
8
+ (0, zod_extension_1.extendZodWithOpenApi)(zod_1.z, true);
9
+ });
10
+ it('should generate basic schema for string with metadata', () => {
11
+ const schema = zod_1.z.string().min(3).max(10).openapi({
12
+ title: 'Name',
13
+ description: 'User name',
14
+ format: 'email',
15
+ });
16
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
17
+ expect(result).toMatchObject({
18
+ type: 'string',
19
+ title: 'Name',
20
+ description: 'User name',
21
+ format: 'email',
22
+ });
23
+ });
24
+ it('should generate object schema with properties and required', () => {
25
+ const schema = zod_1.z
26
+ .object({
27
+ id: zod_1.z.uuid(),
28
+ name: zod_1.z.string().optional(),
29
+ })
30
+ .openapi({ title: 'User' });
31
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
32
+ expect(result.type).toBe('object');
33
+ expect(result.properties).toBeDefined();
34
+ expect(result.properties.id).toBeDefined();
35
+ expect(result.properties.name).toBeDefined();
36
+ // id should be required, name optional
37
+ expect(result.required).toContain('id');
38
+ if (result.required) {
39
+ expect(result.required).not.toContain('name');
40
+ }
41
+ });
42
+ it('should generate $ref when child=true and metadata title exists', () => {
43
+ const schema = zod_1.z.string().openapi({ title: 'RefString' });
44
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema, { child: true, generateRef: true });
45
+ expect(result).toEqual({
46
+ $ref: '#/components/schemas/RefString',
47
+ });
48
+ });
49
+ it('should propagate email format from metadata', () => {
50
+ const schema = zod_1.z.string().openapi({ format: 'email' });
51
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
52
+ expect(result.type).toBe('string');
53
+ expect(result.format).toBe('email');
54
+ });
55
+ it('should propagate uuid format from metadata', () => {
56
+ const schema = zod_1.z.string().openapi({ format: 'uuid' });
57
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
58
+ expect(result.type).toBe('string');
59
+ expect(result.format).toBe('uuid');
60
+ });
61
+ it('should propagate date format from metadata', () => {
62
+ const schema = zod_1.z.string().openapi({ format: 'date' });
63
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
64
+ expect(result.type).toBe('string');
65
+ expect(result.format).toBe('date');
66
+ });
67
+ it('should propagate date-time format from metadata', () => {
68
+ const schema = zod_1.z.string().openapi({ format: 'date-time' });
69
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
70
+ expect(result.type).toBe('string');
71
+ expect(result.format).toBe('date-time');
72
+ });
73
+ it('should propagate password format from metadata', () => {
74
+ const schema = zod_1.z.string().openapi({ format: 'password' });
75
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
76
+ expect(result.type).toBe('string');
77
+ expect(result.format).toBe('password');
78
+ });
79
+ });
80
+ //# sourceMappingURL=zod-to-openapi.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-to-openapi.spec.js","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.spec.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- import { ZodObject, AnyZodObject, ZodRawShape, ZodType, ZodTypeAny, objectInputType, objectUtil, objectOutputType, UnknownKeysParam, z, ZodStringCheck } from 'zod';
2
- export type ZodStringCheckAugmented = ZodStringCheck | {
3
- kind: 'password';
4
- message?: string;
5
- };
1
+ import { ZodTypeAny, z } from 'zod';
6
2
  export type ZodOpenAPIMetadata = {
7
3
  title?: string;
8
4
  description?: string;
@@ -11,32 +7,20 @@ export type ZodOpenAPIMetadata = {
11
7
  deprecated?: boolean;
12
8
  readOnly?: boolean;
13
9
  writeOnly?: boolean;
10
+ format?: string;
14
11
  externalDocs?: {
15
12
  description?: string;
16
13
  url: string;
17
14
  };
18
15
  };
19
16
  declare module 'zod' {
20
- interface ZodSchema<Output = any, Def extends ZodTypeDef = ZodTypeDef, Input = Output> {
21
- openapi<T extends ZodSchema<Output, Def, Input>>(this: T, metadata: ZodOpenAPIMetadata): T;
22
- }
23
17
  interface ZodTypeDef {
24
- metadata?: ZodOpenAPIMetadata;
25
- }
26
- interface ZodObjectDef {
27
- metadata?: ZodOpenAPIMetadata;
28
- mergedSchemas?: ZodType<any, any, any>[];
29
- }
30
- interface ZodObject<T extends ZodRawShape, UnknownKeys extends UnknownKeysParam = UnknownKeysParam, Catchall extends ZodTypeAny = ZodTypeAny, Output = objectOutputType<T, Catchall, UnknownKeys>, Input = objectInputType<T, Catchall, UnknownKeys>> {
31
- merge<Incoming extends AnyZodObject, Augmentation extends Incoming['shape']>(this: this, other: Incoming): ZodObject<objectUtil.extendShape<T, Augmentation>, Incoming['_def']['unknownKeys'], Incoming['_def']['catchall']>;
32
18
  }
33
- interface ZodString {
34
- password(): this;
35
- _addCheck(check: ZodStringCheckAugmented): this;
19
+ interface ZodTypeAny {
20
+ openapi(metadata: ZodOpenAPIMetadata): this;
36
21
  }
37
22
  }
38
- export declare function extendApi<T extends ZodType<any, any, any>>(schema: T, schemaObject?: ZodOpenAPIMetadata): T;
23
+ export declare function extendApi<T extends ZodTypeAny>(schema: T, schemaObject?: ZodOpenAPIMetadata): T;
39
24
  export declare function extendZodWithOpenApi(zod: typeof z, forceOverride?: boolean): void;
40
- export declare const ZodRecord: <KeyType extends string, ZodValueType extends z.ZodTypeAny>(keys: KeyType[], zodValueType: ZodValueType) => ZodObject<Record<KeyType, ZodValueType>, "strip", ZodTypeAny, objectUtil.addQuestionMarks<z.baseObjectOutputType<Record<KeyType, ZodValueType>>, any> extends infer T ? { [k in keyof T]: objectUtil.addQuestionMarks<z.baseObjectOutputType<Record<KeyType, ZodValueType>>, any>[k]; } : never, z.baseObjectInputType<Record<KeyType, ZodValueType>> extends infer T_1 ? { [k_1 in keyof T_1]: z.baseObjectInputType<Record<KeyType, ZodValueType>>[k_1]; } : never>;
41
- export declare function extendZodWithOpenAPI<T extends z.ZodTypeAny>(schema: T, metadata: ZodOpenAPIMetadata): T;
25
+ export declare const ZodRecord: <KeyType extends string, ZodValueType extends z.ZodTypeAny>(keys: KeyType[], zodValueType: ZodValueType) => z.ZodObject<Record<KeyType, ZodValueType> extends infer T ? { -readonly [P in keyof T]: T[P]; } : never, z.core.$strip>;
42
26
  //# sourceMappingURL=zod.extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.extension.d.ts","sourceRoot":"","sources":["../../src/openapi/zod.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod.extension.d.ts","sourceRoot":"","sources":["../../src/openapi/zod.extension.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,OAAO,QAAQ,KAAK,CAAC;IACnB,UAAU,UAAU;KACnB;IACD,UAAU,UAAU;QAClB,OAAO,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;KAC7C;CACF;AAED,wBAAgB,SAAS,CAAC,CAAC,SAAS,UAAU,EAC5C,MAAM,EAAE,CAAC,EACT,YAAY,GAAE,kBAAuB,GACpC,CAAC,CAUH;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,UAAQ,QAexE;AAKD,eAAO,MAAM,SAAS,GACpB,OAAO,SAAS,MAAM,EACtB,YAAY,SAAS,CAAC,CAAC,UAAU,EAEjC,MAAM,OAAO,EAAE,EACf,cAAc,YAAY,4HAUzB,CAAC"}
@@ -3,61 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ZodRecord = void 0;
4
4
  exports.extendApi = extendApi;
5
5
  exports.extendZodWithOpenApi = extendZodWithOpenApi;
6
- exports.extendZodWithOpenAPI = extendZodWithOpenAPI;
7
6
  /* eslint-disable @typescript-eslint/no-unused-vars */
8
7
  const zod_1 = require("zod");
9
8
  function extendApi(schema, schemaObject = {}) {
10
9
  const This = schema.constructor;
11
- const newSchema = new This(schema._def);
12
- newSchema._def.metadata = Object.assign({}, schema._def.metadata || {}, schemaObject);
10
+ const def = schema._def || {};
11
+ const newSchema = new This(def);
12
+ newSchema._def.metadata = Object.assign({}, def.metadata || {}, schemaObject);
13
13
  return newSchema;
14
14
  }
15
15
  function extendZodWithOpenApi(zod, forceOverride = false) {
16
16
  if (forceOverride || typeof zod.ZodType.prototype.openapi === 'undefined') {
17
17
  zod.ZodType.prototype.openapi = function (metadata) {
18
- this._def.metadata = metadata;
19
- return extendApi(this, metadata);
20
- };
21
- }
22
- if (forceOverride || typeof zod.ZodObject.prototype.merge === 'undefined') {
23
- const originalMerge = zod.ZodObject.prototype.merge;
24
- zod.ZodObject.prototype.merge = function (other) {
25
- const merged = originalMerge.apply(this, [other]);
26
- merged._def.mergedSchemas = [this, other];
27
- return merged;
28
- };
29
- }
30
- if (forceOverride ||
31
- typeof zod.ZodString.prototype._addCheck === 'undefined') {
32
- const originalStringCheck = zod_1.ZodString.prototype._addCheck;
33
- zod_1.ZodString.prototype._addCheck = function (check) {
34
- return originalStringCheck.call(this, check);
35
- };
36
- }
37
- if (forceOverride ||
38
- typeof zod.ZodString.prototype.password === 'undefined') {
39
- zod_1.ZodString.prototype.password = function () {
40
- return this._addCheck({ kind: 'password' });
18
+ const def = this._def;
19
+ if (!def) {
20
+ return this;
21
+ }
22
+ def.metadata = Object.assign(Object.assign({}, (def.metadata || {})), metadata);
23
+ return this;
41
24
  };
42
25
  }
43
26
  }
44
- const originalMerge = zod_1.ZodObject.prototype.merge;
45
- zod_1.ZodObject.prototype.merge = function (other) {
46
- const merged = originalMerge.apply(this, [other]);
47
- merged._def.mergedSchemas = [this, other];
48
- return merged;
49
- };
50
- const originalStringCheck = zod_1.ZodString.prototype._addCheck;
51
- zod_1.ZodString.prototype._addCheck = function (check) {
52
- return originalStringCheck.call(this, check);
53
- };
54
- zod_1.ZodString.prototype.password = function () {
55
- return this._addCheck({ kind: 'password' });
56
- };
27
+ // Apply extensions once by default
28
+ extendZodWithOpenApi(zod_1.z);
57
29
  const ZodRecord = (keys, zodValueType) => zod_1.z.object(keys.reduce((agg, k) => (Object.assign(Object.assign({}, agg), { [k]: zodValueType })), {}));
58
30
  exports.ZodRecord = ZodRecord;
59
- function extendZodWithOpenAPI(schema, metadata) {
60
- schema._def.metadata = metadata;
61
- return schema;
62
- }
63
31
  //# sourceMappingURL=zod.extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod.extension.js","sourceRoot":"","sources":["../../src/openapi/zod.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod.extension.js","sourceRoot":"","sources":["../../src/openapi/zod.extension.ts"],"names":[],"mappings":";;;AA0BA,8BAaC;AAED,oDAeC;AAxDD,sDAAsD;AACtD,6BAAoC;AAyBpC,SAAgB,SAAS,CACvB,MAAS,EACT,eAAmC,EAAE;IAErC,MAAM,IAAI,GAAI,MAAc,CAAC,WAAW,CAAC;IACzC,MAAM,GAAG,GAAI,MAAc,CAAC,IAAI,IAAI,EAAE,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,SAAiB,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAC9C,EAAE,EACF,GAAG,CAAC,QAAQ,IAAI,EAAE,EAClB,YAAY,CACb,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,oBAAoB,CAAC,GAAa,EAAE,aAAa,GAAG,KAAK;IACvE,IAAI,aAAa,IAAI,OAAQ,GAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;QAClF,GAAW,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,UAEvC,QAA4B;YAE5B,MAAM,GAAG,GAAI,IAAY,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,OAAO,IAAI,CAAC;YACd,CAAC;YACD,GAAG,CAAC,QAAQ,mCAAQ,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAK,QAAQ,CAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;IACJ,CAAC;AAEH,CAAC;AAED,mCAAmC;AACnC,oBAAoB,CAAC,OAAC,CAAC,CAAC;AAEjB,MAAM,SAAS,GAAG,CAIvB,IAAe,EACf,YAA0B,EAC1B,EAAE,CACF,OAAC,CAAC,MAAM,CACN,IAAI,CAAC,MAAM,CACT,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iCACP,GAAG,KACN,CAAC,CAAC,CAAC,EAAE,YAAY,IACjB,EACF,EAAmC,CACpC,CACF,CAAC;AAfS,QAAA,SAAS,aAelB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=zod.extension.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.extension.spec.d.ts","sourceRoot":"","sources":["../../src/openapi/zod.extension.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const zod_1 = require("zod");
4
+ const zod_extension_1 = require("./zod.extension");
5
+ describe('zod.extension (openapi & password)', () => {
6
+ beforeAll(() => {
7
+ // ensure extensions are applied (in case tree-shaking removed side effects)
8
+ (0, zod_extension_1.extendZodWithOpenApi)(zod_1.z, true);
9
+ });
10
+ it('should attach OpenAPI metadata via .openapi()', () => {
11
+ const schema = zod_1.z
12
+ .string()
13
+ .describe('a description')
14
+ .openapi({ title: 'MyString', description: 'My desc', example: 'abc' });
15
+ const def = schema._def;
16
+ const meta = def.metadata;
17
+ expect(meta).toBeDefined();
18
+ expect(meta === null || meta === void 0 ? void 0 : meta.title).toBe('MyString');
19
+ expect(meta === null || meta === void 0 ? void 0 : meta.description).toBe('My desc');
20
+ expect(meta === null || meta === void 0 ? void 0 : meta.example).toBe('abc');
21
+ });
22
+ // here you could add tests for custom helpers that call .openapi()
23
+ });
24
+ //# sourceMappingURL=zod.extension.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.extension.spec.js","sourceRoot":"","sources":["../../src/openapi/zod.extension.spec.ts"],"names":[],"mappings":";;AAAA,6BAAwB;AACxB,mDAA2E;AAE3E,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,SAAS,CAAC,GAAG,EAAE;QACb,4EAA4E;QAC5E,IAAA,oCAAoB,EAAC,OAAC,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,MAAM,GAAG,OAAC;aACb,MAAM,EAAE;aACR,QAAQ,CAAC,eAAe,CAAC;aACzB,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1E,MAAM,GAAG,GAAS,MAAc,CAAC,IAAI,CAAC;QACtC,MAAM,IAAI,GAAmC,GAAG,CAAC,QAAQ,CAAC;QAE1D,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,mEAAmE;AACrE,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@origins-digital/zod-openapi-utils",
3
- "version": "1.1.1",
3
+ "version": "2.0.0",
4
4
  "description": "Origins Zod OpenAPI Utils",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.d.ts",
@@ -32,7 +32,7 @@
32
32
  "webpack": "^5.88.1"
33
33
  },
34
34
  "peerDependencies": {
35
- "zod": ">=3.23.8"
35
+ "zod": ">=4.1.11"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@commitlint/cli": "^17.6.6",
@@ -40,15 +40,15 @@
40
40
  "@faker-js/faker": "^8.3.1",
41
41
  "@types/node": "^20.3.1",
42
42
  "commitizen": "^4.3.0",
43
- "conventional-recommended-bump": "^7.0.1",
43
+ "conventional-recommended-bump": "^11.2.0",
44
44
  "cz-conventional-changelog": "^3.3.0",
45
- "eslint": "^8.42.0",
45
+ "eslint": "^9.0.0",
46
46
  "eslint-config-prettier": "^9.0.0",
47
47
  "eslint-plugin-prettier": "^5.0.0",
48
48
  "jest": "^29.5.0",
49
49
  "prettier": "^3.0.0",
50
50
  "rimraf": "^5.0.5",
51
- "supertest": "^6.3.3",
51
+ "supertest": "^7.1.3",
52
52
  "ts-jest": "^29.1.0",
53
53
  "ts-loader": "^9.4.3",
54
54
  "ts-node": "^10.9.1",