@origins-digital/zod-openapi-utils 2.1.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -54,7 +54,7 @@ export class AppModule {
54
54
  import { z } from 'zod';
55
55
  import { createZodDto } from '@origins-digital/zod-openapi-utils';
56
56
 
57
- // Define your Zod schema with .openapi() decorator
57
+ // Define your Zod schema with .meta() OpenAPI metadata
58
58
  const UserSchema = z
59
59
  .object({
60
60
  id: z.string().uuid(),
@@ -62,9 +62,9 @@ const UserSchema = z
62
62
  name: z.string().min(2).max(100),
63
63
  age: z.number().int().min(0).max(120),
64
64
  createdAt: z.date(),
65
- password: z.string().min(8).password(),
65
+ password: z.string().min(8), // use helpers like z.password() if available
66
66
  })
67
- .openapi({
67
+ .meta({
68
68
  title: 'User',
69
69
  description: 'User entity schema',
70
70
  });
@@ -94,7 +94,7 @@ export class UsersController {
94
94
  - **Unions and Enums**
95
95
  - **Lazy Schemas**: recursive and circular references
96
96
  - **Custom Formats**: password, time, etc.
97
- - **Nested types**: This package is also able to detect nested types when using the .openapi() method, and create the reference in the openapi spec.
97
+ - **Nested types**: This package is also able to detect nested types when using metadata via `.meta()` and create the reference in the OpenAPI spec.
98
98
 
99
99
  ## Error Handling
100
100
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './openapi/zod.extension';
2
1
  export * from './openapi/zod-to-openapi';
3
2
  export * from './openapi/make-open-api';
4
3
  export * from './openapi/dto';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./openapi/zod.extension"), exports);
18
17
  __exportStar(require("./openapi/zod-to-openapi"), exports);
19
18
  __exportStar(require("./openapi/make-open-api"), exports);
20
19
  __exportStar(require("./openapi/dto"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,2DAAyC;AACzC,0DAAwC;AACxC,gDAA8B;AAC9B,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2DAAyC;AACzC,0DAAwC;AACxC,gDAA8B;AAC9B,0DAAwC"}
@@ -1,10 +1,10 @@
1
- import { ZodSchema } from 'zod';
1
+ import type { ZodType } from 'zod';
2
2
  export interface ZodDto<TOutput = any> {
3
3
  new (): TOutput;
4
4
  isZodDto: true;
5
- schema: ZodSchema<TOutput>;
5
+ schema: ZodType<TOutput>;
6
6
  create(input: unknown): TOutput;
7
7
  }
8
- export declare function createZodDto<TOutput = any>(schema: ZodSchema<TOutput>): ZodDto<TOutput>;
8
+ export declare function createZodDto<TOutput = any>(schema: ZodType<TOutput>, refTitle?: string): 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,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"}
1
+ {"version":3,"file":"dto.d.ts","sourceRoot":"","sources":["../../src/openapi/dto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGnC,MAAM,WAAW,MAAM,CAAC,OAAO,GAAG,GAAG;IACnC,QAAQ,OAAO,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACzB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAG,GAAG,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EACxB,QAAQ,CAAC,EAAE,MAAM,GAgCoB,MAAM,CAAC,OAAO,CAAC,CACrD;AAGD,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,CAEnE"}
@@ -2,7 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createZodDto = createZodDto;
4
4
  exports.isZodDto = isZodDto;
5
- function createZodDto(schema) {
5
+ function createZodDto(schema, refTitle) {
6
+ if (refTitle) {
7
+ // Try to record the title via Zod's meta API when available
8
+ if (schema.meta && typeof schema.meta === 'function') {
9
+ const currentMeta = schema.meta();
10
+ schema.meta(Object.assign(Object.assign({}, (currentMeta || {})), { title: refTitle }));
11
+ }
12
+ // Also store on _def.metadata so objects (where meta() may not be readable)
13
+ // still expose the title to zodToOpenAPI.
14
+ const def = schema._def;
15
+ if (def) {
16
+ def.metadata = Object.assign(Object.assign({}, (def.metadata || {})), { title: refTitle });
17
+ }
18
+ }
6
19
  class AugmentedZodDto {
7
20
  static create(input) {
8
21
  return this.schema.parse(input);
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"dto.js","sourceRoot":"","sources":["../../src/openapi/dto.ts"],"names":[],"mappings":";;AAUA,oCAmCC;AAGD,4BAEC;AAxCD,SAAgB,YAAY,CAC1B,MAAwB,EACxB,QAAiB;IAEjB,IAAI,QAAQ,EAAE,CAAC;QACb,4DAA4D;QAC5D,IAAK,MAAc,CAAC,IAAI,IAAI,OAAQ,MAAc,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACvE,MAAM,WAAW,GAAI,MAAc,CAAC,IAAI,EAAE,CAAC;YAC1C,MAAc,CAAC,IAAI,iCACf,CAAC,WAAW,IAAI,EAAE,CAAC,KACtB,KAAK,EAAE,QAAQ,IACf,CAAC;QACL,CAAC;QAED,4EAA4E;QAC5E,0CAA0C;QAC1C,MAAM,GAAG,GAAS,MAAc,CAAC,IAAI,CAAC;QACtC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,QAAQ,mCACP,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,KACvB,KAAK,EAAE,QAAQ,GAChB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,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"}
@@ -2,15 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const zod_1 = require("zod");
4
4
  const dto_1 = require("./dto");
5
- const zod_extension_1 = require("./zod.extension");
6
5
  const zod_to_openapi_1 = require("./zod-to-openapi");
7
6
  describe('createZodDto', () => {
8
- beforeAll(() => {
9
- (0, zod_extension_1.extendZodWithOpenApi)(zod_1.z, true);
10
- });
11
7
  it('should create a ZodDto class with static schema and create()', () => {
12
8
  const schema = zod_1.z.object({
13
- id: zod_1.z.string().uuid(),
9
+ id: zod_1.z.uuid(),
14
10
  name: zod_1.z.string(),
15
11
  });
16
12
  const UserDto = (0, dto_1.createZodDto)(schema);
@@ -28,13 +24,13 @@ describe('createZodDto', () => {
28
24
  expect((0, dto_1.isZodDto)(class {
29
25
  })).toBe(false);
30
26
  });
31
- it('should work with openapi metadata and zodToOpenAPI', () => {
27
+ it('should work with metadata and zodToOpenAPI', () => {
32
28
  const schema = zod_1.z
33
29
  .object({
34
- id: zod_1.z.string().uuid(),
35
- email: zod_1.z.string().openapi({ format: 'email' }),
30
+ id: zod_1.z.uuid(),
31
+ email: zod_1.z.email(),
36
32
  })
37
- .openapi({ title: 'UserDto' });
33
+ .meta({ title: 'UserDto' });
38
34
  const UserDto = (0, dto_1.createZodDto)(schema);
39
35
  // schema debe conservarse tal cual en el DTO
40
36
  expect(UserDto.schema).toBe(schema);
@@ -43,5 +39,40 @@ describe('createZodDto', () => {
43
39
  expect(openapiSchema.title).toBe('UserDto');
44
40
  expect(openapiSchema.properties.email.format).toBe('email');
45
41
  });
42
+ it('should generate $ref for shared nested DTOs across multiple parents', () => {
43
+ // Define shared child schema B
44
+ const BSchema = zod_1.z.object({
45
+ id: zod_1.z.uuid(),
46
+ value: zod_1.z.string(),
47
+ });
48
+ // Parent A with nested B
49
+ const ASchema = zod_1.z.object({
50
+ id: zod_1.z.uuid(),
51
+ b: BSchema,
52
+ });
53
+ // Parent C with nested B
54
+ const CSchema = zod_1.z.object({
55
+ id: zod_1.z.uuid(),
56
+ name: zod_1.z.string(),
57
+ b: BSchema,
58
+ });
59
+ // Create DTOs and assign explicit OpenAPI titles via refTitle
60
+ const BDto = (0, dto_1.createZodDto)(BSchema, 'BDto');
61
+ const ADto = (0, dto_1.createZodDto)(ASchema, 'ADto');
62
+ const CDto = (0, dto_1.createZodDto)(CSchema, 'CDto');
63
+ // Top-level B should be an inline object schema
64
+ const bOpenApi = (0, zod_to_openapi_1.zodToOpenAPI)(BDto.schema);
65
+ expect(bOpenApi.type).toBe('object');
66
+ expect(bOpenApi.properties.value.type).toBe('string');
67
+ // Nested references in A and C should be $ref to the shared BDto schema
68
+ const aOpenApi = (0, zod_to_openapi_1.zodToOpenAPI)(ADto.schema);
69
+ const cOpenApi = (0, zod_to_openapi_1.zodToOpenAPI)(CDto.schema);
70
+ expect(aOpenApi.properties.b).toEqual({
71
+ $ref: '#/components/schemas/BDto',
72
+ });
73
+ expect(cOpenApi.properties.b).toEqual({
74
+ $ref: '#/components/schemas/BDto',
75
+ });
76
+ });
46
77
  });
47
78
  //# sourceMappingURL=dto.spec.js.map
@@ -1 +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
+ {"version":3,"file":"dto.spec.js","sourceRoot":"","sources":["../../src/openapi/dto.spec.ts"],"names":[],"mappings":"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"}
@@ -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;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;;EAiVlC"}
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;AAoFD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,CAAC,CAAC,UAAU,EACrB,OAAO,GAAE,mBAAwB;;EA6alC"}
@@ -12,17 +12,34 @@ function is(input, factory) {
12
12
  const def = input._def;
13
13
  return factory === factories[def === null || def === void 0 ? void 0 : def.typeName];
14
14
  }
15
- function applyOpenAPIMetadata(zodType, object) {
15
+ function getZodMeta(zodType) {
16
+ if (!zodType)
17
+ return undefined;
18
+ const metaFn = zodType.meta;
19
+ if (typeof metaFn === 'function') {
20
+ try {
21
+ const meta = metaFn.call(zodType);
22
+ if (meta && typeof meta === 'object') {
23
+ return meta;
24
+ }
25
+ }
26
+ catch (_a) {
27
+ // ignore and fall back to _def.metadata
28
+ }
29
+ }
16
30
  const def = zodType._def;
17
- if (def === null || def === void 0 ? void 0 : def.metadata) {
18
- const openapi = def.metadata;
31
+ return def === null || def === void 0 ? void 0 : def.metadata;
32
+ }
33
+ function applyOpenAPIMetadata(zodType, object) {
34
+ const openapi = getZodMeta(zodType);
35
+ if (openapi) {
19
36
  if (openapi.title) {
20
37
  object.title = openapi.title;
21
38
  }
22
39
  if (openapi.description) {
23
40
  object.description = openapi.description;
24
41
  }
25
- if (openapi.example) {
42
+ if (openapi.example !== undefined) {
26
43
  object.example = openapi.example;
27
44
  }
28
45
  if (openapi.examples) {
@@ -43,13 +60,32 @@ function applyOpenAPIMetadata(zodType, object) {
43
60
  if (openapi.format) {
44
61
  object.format = openapi.format;
45
62
  }
63
+ // Allow overriding pattern via meta for non-standard formats.
64
+ // Pattern from meta wins over internal regex as long as the format
65
+ // is not one of the standard OpenAPI formats.
66
+ if (openapi.pattern) {
67
+ const standardFormats = new Set([
68
+ 'email',
69
+ 'uri',
70
+ 'hostname',
71
+ 'uuid',
72
+ 'date',
73
+ 'date-time',
74
+ 'ipv4',
75
+ 'ipv6',
76
+ 'byte',
77
+ ]);
78
+ if (!object.format || !standardFormats.has(object.format)) {
79
+ object.pattern = openapi.pattern;
80
+ }
81
+ }
46
82
  }
47
- else if (zodType && zodType.description) {
83
+ else if (zodType === null || zodType === void 0 ? void 0 : zodType.description) {
48
84
  object.description = zodType.description;
49
85
  }
50
86
  }
51
87
  function zodToOpenAPI(zodType, options = {}) {
52
- var _a, _b, _c, _d, _e, _f, _g, _h;
88
+ var _a, _b, _c, _d, _e, _f, _g;
53
89
  const { visited = new Set(), child = false, generateRef = true } = options;
54
90
  // Safety check for undefined or null zodType
55
91
  if (!zodType || typeof zodType !== 'object') {
@@ -58,37 +94,118 @@ function zodToOpenAPI(zodType, options = {}) {
58
94
  const object = {};
59
95
  // Handle OpenAPI metadata
60
96
  applyOpenAPIMetadata(zodType, object);
61
- const meta = (_a = zodType._def) === null || _a === void 0 ? void 0 : _a.metadata;
97
+ const meta = getZodMeta(zodType);
62
98
  if (generateRef && child && (meta === null || meta === void 0 ? void 0 : meta.title)) {
63
99
  // For child schemas with a named component, emit only a $ref
64
100
  return {
65
101
  $ref: `#/components/schemas/${meta.title}`,
66
102
  };
67
103
  }
68
- // Handle Zod v4 ISO string helpers (z.iso.datetime/date/time),
69
- // which use a different internal def shape (type/format/check/pattern)
70
- const isoDef = zodType._def;
71
- if (isoDef &&
72
- isoDef.type === 'string' &&
73
- isoDef.check === 'string_format' &&
74
- typeof isoDef.format === 'string') {
75
- object.type = 'string';
76
- if (isoDef.format === 'datetime') {
77
- object.format = 'date-time';
78
- }
79
- else if (isoDef.format === 'date') {
80
- object.format = 'date';
104
+ // Handle Zod v4 string-format helpers (z.email(), z.url(), z.hostname(), z.iso.*, etc.)
105
+ // which may encode format either directly on _def or nested in checks[].def
106
+ const rootDef = zodType._def;
107
+ let stringFormatDef;
108
+ if (rootDef &&
109
+ rootDef.type === 'string' &&
110
+ rootDef.check === 'string_format' &&
111
+ typeof rootDef.format === 'string') {
112
+ stringFormatDef = rootDef;
113
+ }
114
+ else if (rootDef && Array.isArray(rootDef.checks)) {
115
+ for (const check of rootDef.checks) {
116
+ const inner = check.def;
117
+ if (inner &&
118
+ inner.type === 'string' &&
119
+ inner.check === 'string_format' &&
120
+ typeof inner.format === 'string') {
121
+ stringFormatDef = inner;
122
+ break;
123
+ }
81
124
  }
82
- else if (isoDef.format === 'time') {
83
- // OpenAPI no tiene un format estándar "time", así que usamos el patrón
84
- if (isoDef.pattern instanceof RegExp) {
85
- object.pattern = isoDef.pattern.source;
125
+ }
126
+ if (stringFormatDef) {
127
+ object.type = 'string';
128
+ const fmt = stringFormatDef.format;
129
+ // Only overwrite format from internals if metadata has not already set one
130
+ const setFormat = (value) => {
131
+ if (!object.format) {
132
+ object.format = value;
86
133
  }
134
+ };
135
+ switch (fmt) {
136
+ case 'email':
137
+ setFormat('email');
138
+ break;
139
+ case 'url':
140
+ // OpenAPI standard uses 'uri'
141
+ setFormat('uri');
142
+ break;
143
+ case 'hostname':
144
+ setFormat('hostname');
145
+ break;
146
+ case 'uuid':
147
+ setFormat('uuid');
148
+ break;
149
+ case 'datetime':
150
+ setFormat('date-time');
151
+ break;
152
+ case 'date':
153
+ setFormat('date');
154
+ break;
155
+ case 'time':
156
+ // No standard time format; reuse pattern
157
+ setFormat('time');
158
+ break;
159
+ case 'emoji':
160
+ case 'base64url':
161
+ case 'hex':
162
+ case 'jwt':
163
+ case 'nanoid':
164
+ case 'cuid':
165
+ case 'cuid2':
166
+ case 'ulid':
167
+ case 'ipv4':
168
+ case 'ipv6':
169
+ case 'cidrv4':
170
+ case 'cidrv6':
171
+ case 'duration':
172
+ case 'sha256_hex':
173
+ // Custom formats are allowed in OpenAPI; propagate as-is
174
+ setFormat(fmt);
175
+ break;
176
+ case 'base64':
177
+ // Map base64 to standard OpenAPI 'byte' format
178
+ setFormat('byte');
179
+ break;
180
+ default:
181
+ // Unknown string_format helpers - just propagate the format string
182
+ setFormat(fmt);
183
+ break;
184
+ }
185
+ // Propagate regex pattern when available ONLY for non-standard OpenAPI formats,
186
+ // and only if it has not been explicitly overridden via meta().
187
+ // Standard formats like email/uri/hostname/uuid/date/date-time/ipv4/ipv6/byte
188
+ // don't need a pattern in OpenAPI and tools often ignore it.
189
+ const standardFormats = new Set([
190
+ 'email',
191
+ 'uri',
192
+ 'hostname',
193
+ 'uuid',
194
+ 'date',
195
+ 'date-time',
196
+ 'ipv4',
197
+ 'ipv6',
198
+ 'byte',
199
+ ]);
200
+ if (stringFormatDef.pattern instanceof RegExp &&
201
+ (!object.format || !standardFormats.has(object.format)) &&
202
+ !object.pattern) {
203
+ object.pattern = stringFormatDef.pattern.source;
87
204
  }
88
205
  }
89
206
  if (zodType instanceof zod_1.z.ZodString) {
90
207
  const def = zodType._def;
91
- const checks = (_b = def.checks) !== null && _b !== void 0 ? _b : [];
208
+ const checks = (_a = def.checks) !== null && _a !== void 0 ? _a : [];
92
209
  object.type = 'string';
93
210
  for (const check of checks) {
94
211
  if (check.kind === 'min') {
@@ -128,7 +245,7 @@ function zodToOpenAPI(zodType, options = {}) {
128
245
  }
129
246
  if (is(zodType, zod_1.z.ZodNumber)) {
130
247
  const def = zodType._def;
131
- const checks = (_c = def.checks) !== null && _c !== void 0 ? _c : [];
248
+ const checks = (_b = def.checks) !== null && _b !== void 0 ? _b : [];
132
249
  object.type = 'number';
133
250
  for (const check of checks) {
134
251
  if (check.kind === 'int') {
@@ -149,7 +266,7 @@ function zodToOpenAPI(zodType, options = {}) {
149
266
  }
150
267
  if (is(zodType, zod_1.z.ZodDate)) {
151
268
  const def = zodType._def;
152
- const checks = (_d = def.checks) !== null && _d !== void 0 ? _d : [];
269
+ const checks = (_c = def.checks) !== null && _c !== void 0 ? _c : [];
153
270
  object.type = 'string';
154
271
  for (const check of checks) {
155
272
  object.format = 'data-time';
@@ -178,7 +295,7 @@ function zodToOpenAPI(zodType, options = {}) {
178
295
  }
179
296
  if (is(zodType, zod_1.z.ZodTuple)) {
180
297
  const def = zodType._def;
181
- const items = (_e = def.items) !== null && _e !== void 0 ? _e : [];
298
+ const items = (_d = def.items) !== null && _d !== void 0 ? _d : [];
182
299
  object.type = 'array';
183
300
  object.items = {
184
301
  oneOf: items
@@ -205,7 +322,7 @@ function zodToOpenAPI(zodType, options = {}) {
205
322
  }
206
323
  if (is(zodType, zod_1.z.ZodUnion)) {
207
324
  const def = zodType._def;
208
- const options = (_f = def.options) !== null && _f !== void 0 ? _f : [];
325
+ const options = (_e = def.options) !== null && _e !== void 0 ? _e : [];
209
326
  object.oneOf = [];
210
327
  for (const schema of options) {
211
328
  if (!schema) {
@@ -223,7 +340,7 @@ function zodToOpenAPI(zodType, options = {}) {
223
340
  }
224
341
  if (is(zodType, zod_1.z.ZodDiscriminatedUnion)) {
225
342
  const def = zodType._def;
226
- const options = (_g = def.options) !== null && _g !== void 0 ? _g : new Map();
343
+ const options = (_f = def.options) !== null && _f !== void 0 ? _f : new Map();
227
344
  object.discriminator = {
228
345
  propertyName: def.discriminator,
229
346
  };
@@ -251,7 +368,7 @@ function zodToOpenAPI(zodType, options = {}) {
251
368
  }
252
369
  if (is(zodType, zod_1.z.ZodEnum)) {
253
370
  const def = zodType._def;
254
- const values = (_h = def.values) !== null && _h !== void 0 ? _h : [];
371
+ const values = (_g = def.values) !== null && _g !== void 0 ? _g : [];
255
372
  object.type = 'string';
256
373
  object.enum = values;
257
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-openapi.js","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zod-to-openapi.js","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.ts"],"names":[],"mappings":";;;;;AAiBA,gBAOC;AAoFD,oCA+aC;AArhBD,0DAAkC;AAClC,6BAAwB;AAUxB,SAAgB,EAAE,CAChB,KAAmB,EACnB,OAAU;IAEV,MAAM,SAAS,GAAG,OAAkD,CAAC;IACrE,MAAM,GAAG,GAAS,KAAa,CAAC,IAAI,CAAC;IACrC,OAAO,OAAO,KAAK,SAAS,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,UAAU,CAAC,OAAqB;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,MAAM,GAAI,OAAe,CAAC,IAAI,CAAC;IACrC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,wCAAwC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;IACvC,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAC;AACvB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAqB,EAAE,MAAW;IAC9D,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAEpC,IAAI,OAAO,EAAE,CAAC;QACZ,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,KAAK,SAAS,EAAE,CAAC;YAClC,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;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QACjC,CAAC;QAED,8DAA8D;QAC9D,mEAAmE;QACnE,8CAA8C;QAC9C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;gBAC9B,OAAO;gBACP,KAAK;gBACL,UAAU;gBACV,MAAM;gBACN,MAAM;gBACN,WAAW;gBACX,MAAM;gBACN,MAAM;gBACN,MAAM;aACP,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAK,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,WAAW,GAAI,OAAe,CAAC,WAAW,CAAC;IACpD,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,MAAM,IAAI,GAAQ,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,WAAW,IAAI,KAAK,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA,EAAE,CAAC;QACxC,6DAA6D;QAC7D,OAAO;YACL,IAAI,EAAE,wBAAwB,IAAI,CAAC,KAAK,EAAE;SAC3C,CAAC;IACJ,CAAC;IAED,wFAAwF;IACxF,4EAA4E;IAC5E,MAAM,OAAO,GAAS,OAAe,CAAC,IAAI,CAAC;IAE3C,IAAI,eAAgC,CAAC;IACrC,IACE,OAAO;QACP,OAAO,CAAC,IAAI,KAAK,QAAQ;QACzB,OAAO,CAAC,KAAK,KAAK,eAAe;QACjC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAClC,CAAC;QACD,eAAe,GAAG,OAAO,CAAC;IAC5B,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAe,EAAE,CAAC;YAC5C,MAAM,KAAK,GAAI,KAAa,CAAC,GAAG,CAAC;YACjC,IACE,KAAK;gBACL,KAAK,CAAC,IAAI,KAAK,QAAQ;gBACvB,KAAK,CAAC,KAAK,KAAK,eAAe;gBAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAChC,CAAC;gBACD,eAAe,GAAG,KAAK,CAAC;gBACxB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QAEvB,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC;QAEnC,2EAA2E;QAC3E,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;YACxB,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,OAAO;gBACV,SAAS,CAAC,OAAO,CAAC,CAAC;gBACnB,MAAM;YACR,KAAK,KAAK;gBACR,8BAA8B;gBAC9B,SAAS,CAAC,KAAK,CAAC,CAAC;gBACjB,MAAM;YACR,KAAK,UAAU;gBACb,SAAS,CAAC,UAAU,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,MAAM;gBACT,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClB,MAAM;YACR,KAAK,UAAU;gBACb,SAAS,CAAC,WAAW,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClB,MAAM;YACR,KAAK,MAAM;gBACT,yCAAyC;gBACzC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClB,MAAM;YACR,KAAK,OAAO,CAAC;YACb,KAAK,WAAW,CAAC;YACjB,KAAK,KAAK,CAAC;YACX,KAAK,KAAK,CAAC;YACX,KAAK,QAAQ,CAAC;YACd,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM,CAAC;YACZ,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,UAAU,CAAC;YAChB,KAAK,YAAY;gBACf,yDAAyD;gBACzD,SAAS,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM;YACR,KAAK,QAAQ;gBACX,+CAA+C;gBAC/C,SAAS,CAAC,MAAM,CAAC,CAAC;gBAClB,MAAM;YACR;gBACE,mEAAmE;gBACnE,SAAS,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM;QACV,CAAC;QAED,gFAAgF;QAChF,gEAAgE;QAChE,8EAA8E;QAC9E,6DAA6D;QAC7D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;YAC9B,OAAO;YACP,KAAK;YACL,UAAU;YACV,MAAM;YACN,MAAM;YACN,WAAW;YACX,MAAM;YACN,MAAM;YACN,MAAM;SACP,CAAC,CAAC;QACH,IACE,eAAe,CAAC,OAAO,YAAY,MAAM;YACzC,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvD,CAAC,MAAM,CAAC,OAAO,EACf,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,YAAY,OAAC,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,MAAM,GAAU,MAAA,GAAG,CAAC,MAAM,mCAAI,EAAE,CAAC;QACvC,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;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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,MAAM,GAAU,MAAA,GAAG,CAAC,MAAM,mCAAI,EAAE,CAAC;QACvC,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,MAAM,GAAU,MAAA,GAAG,CAAC,MAAM,mCAAI,EAAE,CAAC;QACvC,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;QAChC,MAAM,IAAI,GAA6B,GAAG,CAAC,IAAI,CAAC;QAChD,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,KAAK,GAAmB,MAAA,GAAG,CAAC,KAAK,mCAAI,EAAE,CAAC;QAC9C,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,SAAS,GAAiB,GAAG,CAAC,SAAS,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,OAAO,GAAmB,MAAA,GAAG,CAAC,OAAO,mCAAI,EAAE,CAAC;QAClD,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,OAAO,GAA8B,MAAA,GAAG,CAAC,OAAO,mCAAI,IAAI,GAAG,EAAE,CAAC;QACpE,MAAM,CAAC,aAAa,GAAG;YACrB,YAAY,EAAE,GAAG,CAAC,aAAa;SAChC,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;QAExB,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,MAAM,GAAG,MAAA,GAAG,CAAC,MAAM,mCAAI,EAAE,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,WAAW,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,SAAS,GAAiB,GAAG,CAAC,SAAS,CAAC;QAC9C,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,SAAS,GAAiB,GAAG,CAAC,SAAS,CAAC;QAC9C,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,YAAY,GAAkB,GAAG,CAAC,YAAY,CAAC;QACrD,MAAM,SAAS,GAAiB,GAAG,CAAC,SAAS,CAAC;QAC9C,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,OAAO,YAAY,OAAC,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,QAAQ,GACZ,OAAO,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5D,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,QAAQ,CAAC,EAAE,CAAC;YACnE,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,SAAS,GAAiB,GAAG,CAAC,SAAS,CAAC;QAC9C,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,GAAG,GAAS,OAAe,CAAC,IAAI,CAAC;QACvC,MAAM,IAAI,GAAiB,GAAG,CAAC,IAAI,CAAC;QACpC,MAAM,KAAK,GAAiB,GAAG,CAAC,KAAK,CAAC;QAEtC,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,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,EAAE,MAAM,EAAE,GAAI,OAAe,CAAC,IAAI,CAAC;QACzC,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,EAAkB,CAAC;YAEhD,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"}
@@ -2,13 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const zod_1 = require("zod");
4
4
  const zod_to_openapi_1 = require("./zod-to-openapi");
5
- const zod_extension_1 = require("./zod.extension");
6
5
  describe('zodToOpenAPI', () => {
7
- beforeAll(() => {
8
- (0, zod_extension_1.extendZodWithOpenApi)(zod_1.z, true);
9
- });
10
6
  it('should generate basic schema for string with metadata', () => {
11
- const schema = zod_1.z.string().min(3).max(10).openapi({
7
+ const schema = zod_1.z.string().min(3).max(10).meta({
12
8
  title: 'Name',
13
9
  description: 'User name',
14
10
  format: 'email',
@@ -27,7 +23,7 @@ describe('zodToOpenAPI', () => {
27
23
  id: zod_1.z.uuid(),
28
24
  name: zod_1.z.string().optional(),
29
25
  })
30
- .openapi({ title: 'User' });
26
+ .meta({ title: 'User' });
31
27
  const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
32
28
  expect(result.type).toBe('object');
33
29
  expect(result.properties).toBeDefined();
@@ -40,38 +36,38 @@ describe('zodToOpenAPI', () => {
40
36
  }
41
37
  });
42
38
  it('should generate $ref when child=true and metadata title exists', () => {
43
- const schema = zod_1.z.string().openapi({ title: 'RefString' });
39
+ const schema = zod_1.z.string().meta({ title: 'RefString' });
44
40
  const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema, { child: true, generateRef: true });
45
41
  expect(result).toEqual({
46
42
  $ref: '#/components/schemas/RefString',
47
43
  });
48
44
  });
49
45
  it('should propagate email format from metadata', () => {
50
- const schema = zod_1.z.string().openapi({ format: 'email' });
46
+ const schema = zod_1.z.string().meta({ format: 'email' });
51
47
  const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
52
48
  expect(result.type).toBe('string');
53
49
  expect(result.format).toBe('email');
54
50
  });
55
51
  it('should propagate uuid format from metadata', () => {
56
- const schema = zod_1.z.string().openapi({ format: 'uuid' });
52
+ const schema = zod_1.z.string().meta({ format: 'uuid' });
57
53
  const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
58
54
  expect(result.type).toBe('string');
59
55
  expect(result.format).toBe('uuid');
60
56
  });
61
57
  it('should propagate date format from metadata', () => {
62
- const schema = zod_1.z.string().openapi({ format: 'date' });
58
+ const schema = zod_1.z.string().meta({ format: 'date' });
63
59
  const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
64
60
  expect(result.type).toBe('string');
65
61
  expect(result.format).toBe('date');
66
62
  });
67
63
  it('should propagate date-time format from metadata', () => {
68
- const schema = zod_1.z.string().openapi({ format: 'date-time' });
64
+ const schema = zod_1.z.string().meta({ format: 'date-time' });
69
65
  const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
70
66
  expect(result.type).toBe('string');
71
67
  expect(result.format).toBe('date-time');
72
68
  });
73
69
  it('should propagate password format from metadata', () => {
74
- const schema = zod_1.z.string().openapi({ format: 'password' });
70
+ const schema = zod_1.z.string().meta({ format: 'password' });
75
71
  const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
76
72
  expect(result.type).toBe('string');
77
73
  expect(result.format).toBe('password');
@@ -94,5 +90,148 @@ describe('zodToOpenAPI', () => {
94
90
  expect(result.type).toBe('string');
95
91
  expect(result.pattern).toBe('^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?$');
96
92
  });
93
+ it('should map z.email() to email format', () => {
94
+ const schema = zod_1.z.email();
95
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
96
+ expect(result.type).toBe('string');
97
+ expect(result.format).toBe('email');
98
+ });
99
+ it('should map z.uuid() to uuid format', () => {
100
+ const schema = zod_1.z.uuid();
101
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
102
+ expect(result.type).toBe('string');
103
+ expect(result.format).toBe('uuid');
104
+ });
105
+ it('should map z.url() to uri format', () => {
106
+ const schema = zod_1.z.url();
107
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
108
+ expect(result.type).toBe('string');
109
+ expect(result.format).toBe('uri');
110
+ });
111
+ it('should map z.httpUrl() to uri format', () => {
112
+ const schema = zod_1.z.httpUrl();
113
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
114
+ expect(result.type).toBe('string');
115
+ expect(result.format).toBe('uri');
116
+ });
117
+ it('should map z.hostname() to hostname format', () => {
118
+ const schema = zod_1.z.hostname();
119
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
120
+ expect(result.type).toBe('string');
121
+ expect(result.format).toBe('hostname');
122
+ });
123
+ it('should map z.emoji() to emoji format with pattern', () => {
124
+ const schema = zod_1.z.emoji();
125
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
126
+ expect(result.type).toBe('string');
127
+ expect(result.format).toBe('emoji');
128
+ expect(result.pattern).toBeDefined();
129
+ });
130
+ it('should allow overriding pattern via meta for non-standard formats', () => {
131
+ const customPattern = '^[A-Z]{3}-[0-9]{3}$';
132
+ const schema = zod_1.z.cuid().meta({ pattern: customPattern });
133
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
134
+ expect(result.type).toBe('string');
135
+ expect(result.format).toBe('cuid');
136
+ expect(result.pattern).toBe(customPattern);
137
+ });
138
+ it('should allow overriding both format and pattern via meta', () => {
139
+ const customFormat = 'my-custom-id';
140
+ const customPattern = '^[A-Z]{2}_[0-9]{4}$';
141
+ // z.cuid() normally sets format 'cuid' and its own regex,
142
+ // but meta() must take precedence for both.
143
+ const schema = zod_1.z.cuid().meta({
144
+ format: customFormat,
145
+ pattern: customPattern,
146
+ });
147
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
148
+ expect(result.type).toBe('string');
149
+ expect(result.format).toBe(customFormat);
150
+ expect(result.pattern).toBe(customPattern);
151
+ });
152
+ it('should map z.base64() to byte format with pattern', () => {
153
+ const schema = zod_1.z.base64();
154
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
155
+ expect(result.type).toBe('string');
156
+ expect(result.format).toBe('byte');
157
+ });
158
+ it('should map z.base64url() to base64url format with pattern', () => {
159
+ const schema = zod_1.z.base64url();
160
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
161
+ expect(result.type).toBe('string');
162
+ expect(result.format).toBe('base64url');
163
+ expect(result.pattern).toBeDefined();
164
+ });
165
+ it('should map z.hex() to hex format with pattern', () => {
166
+ const schema = zod_1.z.hex();
167
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
168
+ expect(result.type).toBe('string');
169
+ expect(result.format).toBe('hex');
170
+ expect(result.pattern).toBeDefined();
171
+ });
172
+ it('should map z.jwt() to jwt format', () => {
173
+ const schema = zod_1.z.jwt();
174
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
175
+ expect(result.type).toBe('string');
176
+ expect(result.format).toBe('jwt');
177
+ });
178
+ it('should map z.nanoid() to nanoid format with pattern', () => {
179
+ const schema = zod_1.z.nanoid();
180
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
181
+ expect(result.type).toBe('string');
182
+ expect(result.format).toBe('nanoid');
183
+ expect(result.pattern).toBeDefined();
184
+ });
185
+ it('should map cuid/cuid2/ulid helpers to their custom formats with patterns', () => {
186
+ const cuidSchema = zod_1.z.cuid();
187
+ const cuid2Schema = zod_1.z.cuid2();
188
+ const ulidSchema = zod_1.z.ulid();
189
+ const cuidResult = (0, zod_to_openapi_1.zodToOpenAPI)(cuidSchema);
190
+ const cuid2Result = (0, zod_to_openapi_1.zodToOpenAPI)(cuid2Schema);
191
+ const ulidResult = (0, zod_to_openapi_1.zodToOpenAPI)(ulidSchema);
192
+ expect(cuidResult.type).toBe('string');
193
+ expect(cuidResult.format).toBe('cuid');
194
+ expect(cuidResult.pattern).toBeDefined();
195
+ expect(cuid2Result.type).toBe('string');
196
+ expect(cuid2Result.format).toBe('cuid2');
197
+ expect(cuid2Result.pattern).toBeDefined();
198
+ expect(ulidResult.type).toBe('string');
199
+ expect(ulidResult.format).toBe('ulid');
200
+ expect(ulidResult.pattern).toBeDefined();
201
+ });
202
+ it('should map ipv4/ipv6 and cidr helpers to formats with patterns', () => {
203
+ const ipv4Schema = zod_1.z.ipv4();
204
+ const ipv6Schema = zod_1.z.ipv6();
205
+ const cidrv4Schema = zod_1.z.cidrv4();
206
+ const cidrv6Schema = zod_1.z.cidrv6();
207
+ const ipv4Result = (0, zod_to_openapi_1.zodToOpenAPI)(ipv4Schema);
208
+ const ipv6Result = (0, zod_to_openapi_1.zodToOpenAPI)(ipv6Schema);
209
+ const cidrv4Result = (0, zod_to_openapi_1.zodToOpenAPI)(cidrv4Schema);
210
+ const cidrv6Result = (0, zod_to_openapi_1.zodToOpenAPI)(cidrv6Schema);
211
+ expect(ipv4Result.type).toBe('string');
212
+ expect(ipv4Result.format).toBe('ipv4');
213
+ expect(ipv6Result.type).toBe('string');
214
+ expect(ipv6Result.format).toBe('ipv6');
215
+ expect(cidrv4Result.type).toBe('string');
216
+ expect(cidrv4Result.format).toBe('cidrv4');
217
+ expect(cidrv4Result.pattern).toBeDefined();
218
+ expect(cidrv6Result.type).toBe('string');
219
+ expect(cidrv6Result.format).toBe('cidrv6');
220
+ expect(cidrv6Result.pattern).toBeDefined();
221
+ });
222
+ it('should map z.hash(\"sha256\") to sha256_hex format with pattern', () => {
223
+ const schema = zod_1.z.hash('sha256');
224
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
225
+ expect(result.type).toBe('string');
226
+ expect(result.format).toBe('sha256_hex');
227
+ expect(result.pattern).toBeDefined();
228
+ });
229
+ it('should map z.iso.duration() to duration format with pattern', () => {
230
+ const schema = zod_1.z.iso.duration();
231
+ const result = (0, zod_to_openapi_1.zodToOpenAPI)(schema);
232
+ expect(result.type).toBe('string');
233
+ expect(result.format).toBe('duration');
234
+ expect(result.pattern).toBeDefined();
235
+ });
97
236
  });
98
237
  //# sourceMappingURL=zod-to-openapi.spec.js.map
@@ -1 +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
+ {"version":3,"file":"zod-to-openapi.spec.js","sourceRoot":"","sources":["../../src/openapi/zod-to-openapi.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@origins-digital/zod-openapi-utils",
3
- "version": "2.1.0",
3
+ "version": "2.2.1",
4
4
  "description": "Origins Zod OpenAPI Utils",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.d.ts",
@@ -1,26 +0,0 @@
1
- import { ZodTypeAny, z } from 'zod';
2
- export type ZodOpenAPIMetadata = {
3
- title?: string;
4
- description?: string;
5
- example?: any;
6
- examples?: Record<string, any>;
7
- deprecated?: boolean;
8
- readOnly?: boolean;
9
- writeOnly?: boolean;
10
- format?: string;
11
- externalDocs?: {
12
- description?: string;
13
- url: string;
14
- };
15
- };
16
- declare module 'zod' {
17
- interface ZodTypeDef {
18
- }
19
- interface ZodTypeAny {
20
- openapi(metadata: ZodOpenAPIMetadata): this;
21
- }
22
- }
23
- export declare function extendApi<T extends ZodTypeAny>(schema: T, schemaObject?: ZodOpenAPIMetadata): T;
24
- export declare function extendZodWithOpenApi(zod: typeof z, forceOverride?: boolean): void;
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>;
26
- //# sourceMappingURL=zod.extension.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZodRecord = void 0;
4
- exports.extendApi = extendApi;
5
- exports.extendZodWithOpenApi = extendZodWithOpenApi;
6
- /* eslint-disable @typescript-eslint/no-unused-vars */
7
- const zod_1 = require("zod");
8
- function extendApi(schema, schemaObject = {}) {
9
- const This = schema.constructor;
10
- const def = schema._def || {};
11
- const newSchema = new This(def);
12
- newSchema._def.metadata = Object.assign({}, def.metadata || {}, schemaObject);
13
- return newSchema;
14
- }
15
- function extendZodWithOpenApi(zod, forceOverride = false) {
16
- if (forceOverride || typeof zod.ZodType.prototype.openapi === 'undefined') {
17
- zod.ZodType.prototype.openapi = function (metadata) {
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;
24
- };
25
- }
26
- }
27
- // Apply extensions once by default
28
- extendZodWithOpenApi(zod_1.z);
29
- const ZodRecord = (keys, zodValueType) => zod_1.z.object(keys.reduce((agg, k) => (Object.assign(Object.assign({}, agg), { [k]: zodValueType })), {}));
30
- exports.ZodRecord = ZodRecord;
31
- //# sourceMappingURL=zod.extension.js.map
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=zod.extension.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zod.extension.spec.d.ts","sourceRoot":"","sources":["../../src/openapi/zod.extension.spec.ts"],"names":[],"mappings":""}
@@ -1,24 +0,0 @@
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
@@ -1 +0,0 @@
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"}