diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/valibot/default/valibot.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/valibot/default/valibot.gen.ts index 9a36fdf3fa..62bacb9387 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/valibot/default/valibot.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/plugins/valibot/default/valibot.gen.ts @@ -703,10 +703,10 @@ export const vModelWithPattern = v.object({ name: v.pipe(v.string(), v.maxLength(255)), enabled: v.optional(v.pipe(v.boolean(), v.readonly())), modified: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())), - id: v.optional(v.pipe(v.string(), v.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: v.optional(v.pipe(v.string(), v.regex(/^\w+$/))), - patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\nbbb/))), + id: v.optional(v.pipe(v.string(), v.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: v.optional(v.pipe(v.string(), v.regex(/^\\w+$/))), + patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\\nbbb/))), patternWithBacktick: v.optional(v.pipe(v.string(), v.regex(/aaa`bbb/))) }); @@ -1093,10 +1093,10 @@ export const vModelWithPropertiesWritable = v.object({ export const vModelWithPatternWritable = v.object({ key: v.pipe(v.string(), v.maxLength(64), v.regex(/^[a-zA-Z0-9_]*$/)), name: v.pipe(v.string(), v.maxLength(255)), - id: v.optional(v.pipe(v.string(), v.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: v.optional(v.pipe(v.string(), v.regex(/^\w+$/))), - patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\nbbb/))), + id: v.optional(v.pipe(v.string(), v.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: v.optional(v.pipe(v.string(), v.regex(/^\\w+$/))), + patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\\nbbb/))), patternWithBacktick: v.optional(v.pipe(v.string(), v.regex(/aaa`bbb/))) }); diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/validators/valibot.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/validators/valibot.gen.ts index 9769db8fae..c79887e0e0 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/validators/valibot.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.0.x/validators/valibot.gen.ts @@ -10,7 +10,7 @@ export const vBar: v.GenericSchema = v.object({ export const vFoo: v.GenericSchema = v.optional(v.union([ v.object({ - foo: v.optional(v.pipe(v.string(), v.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: v.optional(v.pipe(v.string(), v.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: v.optional(vBar), baz: v.optional(v.array(v.lazy(() => { return vFoo; @@ -20,4 +20,4 @@ export const vFoo: v.GenericSchema = v.optional(v.union([ v.null() ]), null); -export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\nbar/)), v.readonly()), 'baz'); +export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\\nbar/)), v.readonly()), 'baz'); diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/valibot/default/valibot.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/valibot/default/valibot.gen.ts index 973798655b..1480584551 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/valibot/default/valibot.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/plugins/valibot/default/valibot.gen.ts @@ -704,10 +704,10 @@ export const vModelWithPattern = v.object({ name: v.pipe(v.string(), v.maxLength(255)), enabled: v.optional(v.pipe(v.boolean(), v.readonly())), modified: v.optional(v.pipe(v.pipe(v.string(), v.isoTimestamp()), v.readonly())), - id: v.optional(v.pipe(v.string(), v.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: v.optional(v.pipe(v.string(), v.regex(/^\w+$/))), - patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\nbbb/))), + id: v.optional(v.pipe(v.string(), v.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: v.optional(v.pipe(v.string(), v.regex(/^\\w+$/))), + patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\\nbbb/))), patternWithBacktick: v.optional(v.pipe(v.string(), v.regex(/aaa`bbb/))) }); @@ -1097,10 +1097,10 @@ export const vModelWithPropertiesWritable = v.object({ export const vModelWithPatternWritable = v.object({ key: v.pipe(v.string(), v.maxLength(64), v.regex(/^[a-zA-Z0-9_]*$/)), name: v.pipe(v.string(), v.maxLength(255)), - id: v.optional(v.pipe(v.string(), v.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: v.optional(v.pipe(v.string(), v.regex(/^\w+$/))), - patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\nbbb/))), + id: v.optional(v.pipe(v.string(), v.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: v.optional(v.pipe(v.string(), v.regex(/^\\w+$/))), + patternWithSingleQuotes: v.optional(v.pipe(v.string(), v.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: v.optional(v.pipe(v.string(), v.regex(/aaa\\nbbb/))), patternWithBacktick: v.optional(v.pipe(v.string(), v.regex(/aaa`bbb/))) }); diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-metadata/valibot.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-metadata/valibot.gen.ts index c54dd93e8a..7301f9fb01 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-metadata/valibot.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-metadata/valibot.gen.ts @@ -18,7 +18,7 @@ export const vBar: v.GenericSchema = v.pipe(v.object({ */ export const vFoo: v.GenericSchema = v.optional(v.union([ v.object({ - foo: v.optional(v.pipe(v.pipe(v.string(), v.regex(/^\d{3}-\d{2}-\d{4}$/)), v.metadata({ + foo: v.optional(v.pipe(v.pipe(v.string(), v.regex(/^\\d{3}-\\d{2}-\\d{4}$/)), v.metadata({ description: 'This is foo property.' }))), bar: v.optional(vBar), @@ -34,7 +34,7 @@ export const vFoo: v.GenericSchema = v.optional(v.union([ v.null() ]), null); -export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\nbar/)), v.readonly()), 'baz'); +export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\\nbar/)), v.readonly()), 'baz'); export const vQux = v.record(v.string(), v.object({ qux: v.optional(v.string()) diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-types/valibot.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-types/valibot.gen.ts index 3c12cbfaa8..af1d594fbb 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-types/valibot.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators-types/valibot.gen.ts @@ -16,7 +16,7 @@ export const vBar: v.GenericSchema = v.object({ */ export const vFoo: v.GenericSchema = v.optional(v.union([ v.object({ - foo: v.optional(v.pipe(v.string(), v.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: v.optional(v.pipe(v.string(), v.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: v.optional(vBar), baz: v.optional(v.array(v.lazy(() => { return vFoo; @@ -26,7 +26,7 @@ export const vFoo: v.GenericSchema = v.optional(v.union([ v.null() ]), null); -export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\nbar/)), v.readonly()), 'baz'); +export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\\nbar/)), v.readonly()), 'baz'); export const vQux = v.record(v.string(), v.object({ qux: v.optional(v.string()) diff --git a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators/valibot.gen.ts b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators/valibot.gen.ts index 3c12cbfaa8..af1d594fbb 100644 --- a/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators/valibot.gen.ts +++ b/packages/openapi-ts-tests/main/test/__snapshots__/3.1.x/validators/valibot.gen.ts @@ -16,7 +16,7 @@ export const vBar: v.GenericSchema = v.object({ */ export const vFoo: v.GenericSchema = v.optional(v.union([ v.object({ - foo: v.optional(v.pipe(v.string(), v.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: v.optional(v.pipe(v.string(), v.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: v.optional(vBar), baz: v.optional(v.array(v.lazy(() => { return vFoo; @@ -26,7 +26,7 @@ export const vFoo: v.GenericSchema = v.optional(v.union([ v.null() ]), null); -export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\nbar/)), v.readonly()), 'baz'); +export const vBaz = v.optional(v.pipe(v.pipe(v.string(), v.regex(/foo\\nbar/)), v.readonly()), 'baz'); export const vQux = v.record(v.string(), v.object({ qux: v.optional(v.string()) diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/default/zod.gen.ts index cbdcfbb539..b77dff897c 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/default/zod.gen.ts @@ -733,10 +733,10 @@ export const zModelWithPattern = z.object({ name: z.string().check(z.maxLength(255)), enabled: z.optional(z.readonly(z.boolean())), modified: z.optional(z.readonly(z.iso.datetime())), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); @@ -1126,10 +1126,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().check(z.maxLength(64), z.regex(/^[a-zA-Z0-9_]*$/)), name: z.string().check(z.maxLength(255)), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/validators/zod.gen.ts index a8be5f51cd..7ec16b42b2 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/mini/validators/zod.gen.ts @@ -10,7 +10,7 @@ export const zBar = z.object({ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -22,4 +22,4 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/default/zod.gen.ts index 2d2a772a6b..2f525bdc38 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/default/zod.gen.ts @@ -731,10 +731,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.boolean().readonly().optional(), modified: z.string().datetime().readonly().optional(), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); @@ -1124,10 +1124,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/validators/zod.gen.ts index a6537a8471..6bd95fc8c9 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v3/validators/zod.gen.ts @@ -10,7 +10,7 @@ export const zBar: z.AnyZodObject = z.object({ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -20,4 +20,4 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/default/zod.gen.ts index aeb69d39e0..47c37abf1a 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/default/zod.gen.ts @@ -733,10 +733,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.optional(z.boolean().readonly()), modified: z.optional(z.iso.datetime().readonly()), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); @@ -1126,10 +1126,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/validators/zod.gen.ts index d0fb4e7a81..6459164a28 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.0.x/v4/validators/zod.gen.ts @@ -10,7 +10,7 @@ export const zBar = z.object({ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -22,4 +22,4 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/default/zod.gen.ts index f45f4f9524..54b62b13e5 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/default/zod.gen.ts @@ -740,10 +740,10 @@ export const zModelWithPattern = z.object({ name: z.string().check(z.maxLength(255)), enabled: z.optional(z.readonly(z.boolean())), modified: z.optional(z.readonly(z.iso.datetime())), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); @@ -1132,10 +1132,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().check(z.maxLength(64), z.regex(/^[a-zA-Z0-9_]*$/)), name: z.string().check(z.maxLength(255)), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts index 3fd3ebc43e..3c98dc5311 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts index 1a5edf41c9..a85cf11bc5 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts @@ -18,7 +18,7 @@ export const zBar = z.object({ */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/)).register(z.globalRegistry, { + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/)).register(z.globalRegistry, { description: 'This is foo property.' })), bar: z.optional(zBar), @@ -36,7 +36,7 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts index a3170d6a4a..248cb4fc76 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts @@ -18,7 +18,7 @@ export type BarZodType = z.infer; */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -32,7 +32,7 @@ export const zFoo = z._default(z.union([ export type FooZodType = z.infer; -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export type BazZodType = z.infer; diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators/zod.gen.ts index 5bcc24c6f0..4daa0ecaf0 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/mini/validators/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/default/zod.gen.ts index 2005c36929..529df7ec8c 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/default/zod.gen.ts @@ -738,10 +738,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.boolean().readonly().optional(), modified: z.string().datetime().readonly().optional(), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); @@ -1130,10 +1130,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts index 6eb670417d..d8e8bcf225 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar: z.AnyZodObject = z.object({ */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -26,7 +26,7 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.object({ qux: z.string().optional() diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts index 585fddbb26..fae29bd68f 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar: z.AnyZodObject = z.object({ */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).describe('This is foo property.').optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).describe('This is foo property.').optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -26,7 +26,7 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.object({ qux: z.string().optional() diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts index ace814995d..6e4ce1bac9 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts @@ -18,7 +18,7 @@ export type BarZodType = z.infer; */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -30,7 +30,7 @@ export const zFoo: z.ZodTypeAny = z.union([ export type FooZodType = z.infer; -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export type BazZodType = z.infer; diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators/zod.gen.ts index 83f84b2d0f..10da0dc518 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v3/validators/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar: z.AnyZodObject = z.object({ */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -26,7 +26,7 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.object({ qux: z.string().optional() diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/default/zod.gen.ts index 2d383b3ed7..e17eb792ba 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/default/zod.gen.ts @@ -740,10 +740,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.optional(z.boolean().readonly()), modified: z.optional(z.iso.datetime().readonly()), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); @@ -1132,10 +1132,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts index fa1234e0a8..0d831e9ca2 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts index 5e997ec271..0fed69910b 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts @@ -18,7 +18,7 @@ export const zBar = z.object({ */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/).register(z.globalRegistry, { + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).register(z.globalRegistry, { description: 'This is foo property.' })), bar: z.optional(zBar), @@ -36,7 +36,7 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts index 2794c6a1e9..2077751d4d 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts @@ -18,7 +18,7 @@ export type BarZodType = z.infer; */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -32,7 +32,7 @@ export const zFoo = z.union([ export type FooZodType = z.infer; -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export type BazZodType = z.infer; diff --git a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators/zod.gen.ts index f9c56845ab..60ad8519cf 100644 --- a/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v3/__snapshots__/3.1.x/v4/validators/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/default/zod.gen.ts index 459ac09e6a..48ad3c3e52 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/default/zod.gen.ts @@ -733,10 +733,10 @@ export const zModelWithPattern = z.object({ name: z.string().check(z.maxLength(255)), enabled: z.optional(z.readonly(z.boolean())), modified: z.optional(z.readonly(z.iso.datetime())), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); @@ -1126,10 +1126,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().check(z.maxLength(64), z.regex(/^[a-zA-Z0-9_]*$/)), name: z.string().check(z.maxLength(255)), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/validators/zod.gen.ts index 77ab57f608..9988a8f22e 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/mini/validators/zod.gen.ts @@ -10,7 +10,7 @@ export const zBar = z.object({ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -22,4 +22,4 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/default/zod.gen.ts index 83a62aa1ca..0224010e88 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/default/zod.gen.ts @@ -731,10 +731,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.boolean().readonly().optional(), modified: z.string().datetime().readonly().optional(), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); @@ -1124,10 +1124,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/validators/zod.gen.ts index 1b13ab9cbe..1d7d2fee42 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v3/validators/zod.gen.ts @@ -10,7 +10,7 @@ export const zBar: z.AnyZodObject = z.object({ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -20,4 +20,4 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/default/zod.gen.ts index 9fbb92dbed..147a563586 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/default/zod.gen.ts @@ -733,10 +733,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.optional(z.boolean().readonly()), modified: z.optional(z.iso.datetime().readonly()), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); @@ -1126,10 +1126,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/validators/zod.gen.ts index 7f3ce000b5..2e6181f2f4 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.0.x/v4/validators/zod.gen.ts @@ -10,7 +10,7 @@ export const zBar = z.object({ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -22,4 +22,4 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/default/zod.gen.ts index 14bef957df..8ffc81e4a1 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/default/zod.gen.ts @@ -740,10 +740,10 @@ export const zModelWithPattern = z.object({ name: z.string().check(z.maxLength(255)), enabled: z.optional(z.readonly(z.boolean())), modified: z.optional(z.readonly(z.iso.datetime())), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); @@ -1132,10 +1132,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().check(z.maxLength(64), z.regex(/^[a-zA-Z0-9_]*$/)), name: z.string().check(z.maxLength(255)), - id: z.optional(z.string().check(z.regex(/^\d{2}-\d{3}-\d{4}$/))), - text: z.optional(z.string().check(z.regex(/^\w+$/))), - patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9']*$/))), - patternWithNewline: z.optional(z.string().check(z.regex(/aaa\nbbb/))), + id: z.optional(z.string().check(z.regex(/^\\d{2}-\\d{3}-\\d{4}$/))), + text: z.optional(z.string().check(z.regex(/^\\w+$/))), + patternWithSingleQuotes: z.optional(z.string().check(z.regex(/^[a-zA-Z0-9\']*$/))), + patternWithNewline: z.optional(z.string().check(z.regex(/aaa\\nbbb/))), patternWithBacktick: z.optional(z.string().check(z.regex(/aaa`bbb/))) }); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts index f5db2ce5cb..635b40f8bd 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-dates/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts index 4b4759e2df..42c8b794ac 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-metadata/zod.gen.ts @@ -18,7 +18,7 @@ export const zBar = z.object({ */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/)).register(z.globalRegistry, { + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/)).register(z.globalRegistry, { description: 'This is foo property.' })), bar: z.optional(zBar), @@ -36,7 +36,7 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts index 1eb0cfb954..2458ff3b08 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators-types/zod.gen.ts @@ -18,7 +18,7 @@ export type BarZodType = z.infer; */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -32,7 +32,7 @@ export const zFoo = z._default(z.union([ export type FooZodType = z.infer; -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export type BazZodType = z.infer; diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators/zod.gen.ts index 0ee090a1ae..d9f8e3f874 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/mini/validators/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z._default(z.union([ z.object({ - foo: z.optional(z.string().check(z.regex(/^\d{3}-\d{2}-\d{4}$/))), + foo: z.optional(z.string().check(z.regex(/^\\d{3}-\\d{2}-\\d{4}$/))), bar: z.optional(zBar), get baz(): z.ZodMiniOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z._default(z.union([ z.null() ]), null); -export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\nbar/))), 'baz'); +export const zBaz = z._default(z.readonly(z.string().check(z.regex(/foo\\nbar/))), 'baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/default/zod.gen.ts index 8a9c588198..8eb1323e03 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/default/zod.gen.ts @@ -738,10 +738,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.boolean().readonly().optional(), modified: z.string().datetime().readonly().optional(), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); @@ -1130,10 +1130,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.string().regex(/^\d{2}-\d{3}-\d{4}$/).optional(), - text: z.string().regex(/^\w+$/).optional(), - patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9']*$/).optional(), - patternWithNewline: z.string().regex(/aaa\nbbb/).optional(), + id: z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/).optional(), + text: z.string().regex(/^\\w+$/).optional(), + patternWithSingleQuotes: z.string().regex(/^[a-zA-Z0-9\']*$/).optional(), + patternWithNewline: z.string().regex(/aaa\\nbbb/).optional(), patternWithBacktick: z.string().regex(/aaa`bbb/).optional() }); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts index 140dc5e8cd..84c0ef913a 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-dates/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar: z.AnyZodObject = z.object({ */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -26,7 +26,7 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.object({ qux: z.string().optional() diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts index efc9209a2f..cb0253656a 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-metadata/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar: z.AnyZodObject = z.object({ */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).describe('This is foo property.').optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).describe('This is foo property.').optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -26,7 +26,7 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.object({ qux: z.string().optional() diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts index 399d2c4138..b82a47a38c 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators-types/zod.gen.ts @@ -18,7 +18,7 @@ export type BarZodType = z.infer; */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -30,7 +30,7 @@ export const zFoo: z.ZodTypeAny = z.union([ export type FooZodType = z.infer; -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export type BazZodType = z.infer; diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators/zod.gen.ts index fcc9c8c555..7eb4cfe7bb 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v3/validators/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar: z.AnyZodObject = z.object({ */ export const zFoo: z.ZodTypeAny = z.union([ z.object({ - foo: z.string().regex(/^\d{3}-\d{2}-\d{4}$/).optional(), + foo: z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).optional(), bar: zBar.optional(), baz: z.array(z.lazy(() => { return zFoo; @@ -26,7 +26,7 @@ export const zFoo: z.ZodTypeAny = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.object({ qux: z.string().optional() diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/default/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/default/zod.gen.ts index 7ec52bfb3b..71ffcb2699 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/default/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/default/zod.gen.ts @@ -740,10 +740,10 @@ export const zModelWithPattern = z.object({ name: z.string().max(255), enabled: z.optional(z.boolean().readonly()), modified: z.optional(z.iso.datetime().readonly()), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); @@ -1132,10 +1132,10 @@ export const zModelWithPropertiesWritable = z.object({ export const zModelWithPatternWritable = z.object({ key: z.string().max(64).regex(/^[a-zA-Z0-9_]*$/), name: z.string().max(255), - id: z.optional(z.string().regex(/^\d{2}-\d{3}-\d{4}$/)), - text: z.optional(z.string().regex(/^\w+$/)), - patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9']*$/)), - patternWithNewline: z.optional(z.string().regex(/aaa\nbbb/)), + id: z.optional(z.string().regex(/^\\d{2}-\\d{3}-\\d{4}$/)), + text: z.optional(z.string().regex(/^\\w+$/)), + patternWithSingleQuotes: z.optional(z.string().regex(/^[a-zA-Z0-9\']*$/)), + patternWithNewline: z.optional(z.string().regex(/aaa\\nbbb/)), patternWithBacktick: z.optional(z.string().regex(/aaa`bbb/)) }); diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts index 9b0132631a..eafccda579 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-dates/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts index 34e6fe0968..68df7a4eed 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-metadata/zod.gen.ts @@ -18,7 +18,7 @@ export const zBar = z.object({ */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/).register(z.globalRegistry, { + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/).register(z.globalRegistry, { description: 'This is foo property.' })), bar: z.optional(zBar), @@ -36,7 +36,7 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts index 649cd05341..5caf5fdcad 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators-types/zod.gen.ts @@ -18,7 +18,7 @@ export type BarZodType = z.infer; */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -32,7 +32,7 @@ export const zFoo = z.union([ export type FooZodType = z.infer; -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export type BazZodType = z.infer; diff --git a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators/zod.gen.ts b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators/zod.gen.ts index 921e41c467..ca9cd28347 100644 --- a/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators/zod.gen.ts +++ b/packages/openapi-ts-tests/zod/v4/__snapshots__/3.1.x/v4/validators/zod.gen.ts @@ -16,7 +16,7 @@ export const zBar = z.object({ */ export const zFoo = z.union([ z.object({ - foo: z.optional(z.string().regex(/^\d{3}-\d{2}-\d{4}$/)), + foo: z.optional(z.string().regex(/^\\d{3}-\\d{2}-\\d{4}$/)), bar: z.optional(zBar), get baz(): z.ZodOptional { return z.optional(z.array(z.lazy((): any => { @@ -28,7 +28,7 @@ export const zFoo = z.union([ z.null() ]).default(null); -export const zBaz = z.string().regex(/foo\nbar/).readonly().default('baz'); +export const zBaz = z.string().regex(/foo\\nbar/).readonly().default('baz'); export const zQux = z.record(z.string(), z.object({ qux: z.optional(z.string()) diff --git a/packages/openapi-ts/src/openApi/3.0.x/parser/schema.ts b/packages/openapi-ts/src/openApi/3.0.x/parser/schema.ts index b80ca1949d..1ca3f8c5d1 100644 --- a/packages/openapi-ts/src/openApi/3.0.x/parser/schema.ts +++ b/packages/openapi-ts/src/openApi/3.0.x/parser/schema.ts @@ -1,6 +1,7 @@ import type { IR } from '../../../ir/types'; import { addItemsToSchema } from '../../../ir/utils'; import { refToName } from '../../../utils/ref'; +import { getPattern } from '../../common/parser/getPattern'; import type { SchemaState, SchemaType, @@ -98,7 +99,7 @@ const parseSchemaMeta = ({ } if (schema.pattern) { - irSchema.pattern = schema.pattern; + irSchema.pattern = getPattern(schema.pattern); } if (schema.readOnly) { diff --git a/packages/openapi-ts/src/openApi/3.1.x/parser/schema.ts b/packages/openapi-ts/src/openApi/3.1.x/parser/schema.ts index b2ac1c3f7a..40e42e5754 100644 --- a/packages/openapi-ts/src/openApi/3.1.x/parser/schema.ts +++ b/packages/openapi-ts/src/openApi/3.1.x/parser/schema.ts @@ -1,6 +1,7 @@ import type { IR } from '../../../ir/types'; import { addItemsToSchema } from '../../../ir/utils'; import { refToName } from '../../../utils/ref'; +import { getPattern } from '../../common/parser/getPattern'; import type { SchemaState, SchemaType, @@ -126,7 +127,7 @@ const parseSchemaMeta = ({ } if (schema.pattern) { - irSchema.pattern = schema.pattern; + irSchema.pattern = getPattern(schema.pattern); } if (schema.readOnly) { diff --git a/packages/openapi-ts/src/tsc/__tests__/types.test.ts b/packages/openapi-ts/src/tsc/__tests__/types.test.ts index bd1c94a633..14c96123d2 100644 --- a/packages/openapi-ts/src/tsc/__tests__/types.test.ts +++ b/packages/openapi-ts/src/tsc/__tests__/types.test.ts @@ -73,4 +73,27 @@ describe('createRegularExpressionLiteral', () => { '/^data:image\\/svg\\+xml;base64,[A-Za-z0-9+\\/]+=*$/', ); }); + + it('should handle patterns with backslash followed by forward slash', () => { + // Pattern from getPattern() which has doubled backslashes: ^[^.][^\\/:*?"<>| ]*$ + // This represents a character class that excludes: backslash, forward slash, colon, etc. + // The \\ in the input string represents a single backslash in the regex + const result = createRegularExpressionLiteral({ + text: '^[^.][^\\\\/:*?"<>| ]*$', + }); + + // The output should have the backslashes preserved and the forward slash not escaped + // (because it's already preceded by a backslash) + expect(result.text).toBe('/^[^.][^\\\\/:*?"<>| ]*$/'); + }); + + it('should handle patterns with multiple consecutive backslashes', () => { + // Input: ^\d{3}-\d{2}-\d{4}$ (with doubled backslashes from getPattern) + const result = createRegularExpressionLiteral({ + text: '^\\\\d{3}-\\\\d{2}-\\\\d{4}$', + }); + + // Backslashes should be preserved as-is + expect(result.text).toBe('/^\\\\d{3}-\\\\d{2}-\\\\d{4}$/'); + }); }); diff --git a/packages/openapi-ts/src/tsc/types.ts b/packages/openapi-ts/src/tsc/types.ts index af869048b1..a214a488fa 100644 --- a/packages/openapi-ts/src/tsc/types.ts +++ b/packages/openapi-ts/src/tsc/types.ts @@ -1084,8 +1084,27 @@ export const createRegularExpressionLiteral = ({ const patternContent = text.startsWith('/') && text.endsWith('/') ? text.slice(1, -1) : text; - // Escape forward slashes in the pattern content, but only if they're not already escaped - const escapedPattern = patternContent.replace(/(? 0 && patternContent[i - 1] === '\\') { + // Forward slash is preceded by a backslash, no need to escape + escapedPattern += '/'; + } else { + // Forward slash needs escaping + escapedPattern += '\\/'; + } + } else { + escapedPattern += char; + } + } // Wrap with forward slashes const textWithSlashes = `/${escapedPattern}/`;