diff --git a/base/schema-typescript-zod/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts
index 0a16cef..e51d521 100644
--- a/base/schema-typescript-zod/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/minmaxlength.schema/default/TopLevel.ts
@@ -2,13 +2,13 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "intersection": z.string().min(4).max(5),
-    "inUnion": z.union([z.number(), z.string().min(3).max(5)]),
-    "maxlength": z.string().max(5),
-    "minlength": z.string().min(3),
-    "minMaxIntersection": z.string().min(3).max(5),
-    "minmaxlength": z.string().min(3).max(5),
+    "intersection": z.string().refine(value => Array.from(value).length >= 4).refine(value => Array.from(value).length <= 5),
+    "inUnion": z.union([z.number(), z.string().refine(value => Array.from(value).length >= 3).refine(value => Array.from(value).length <= 5)]),
+    "maxlength": z.string().refine(value => Array.from(value).length <= 5),
+    "minlength": z.string().refine(value => Array.from(value).length >= 3),
+    "minMaxIntersection": z.string().refine(value => Array.from(value).length >= 3).refine(value => Array.from(value).length <= 5),
+    "minmaxlength": z.string().refine(value => Array.from(value).length >= 3).refine(value => Array.from(value).length <= 5),
     "minMaxUnion": z.string(),
-    "union": z.string().min(3).max(6),
+    "union": z.string().refine(value => Array.from(value).length >= 3).refine(value => Array.from(value).length <= 6),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
index 1372ddb..b5b8d6a 100644
--- a/base/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/optional-const-ref.schema/default/TopLevel.ts
@@ -10,10 +10,10 @@ export type Coordinate = z.infer<typeof CoordinateSchema>;
 export const TopLevelSchema = z.object({
     "coordinates": z.array(CoordinateSchema).optional(),
     "count": z.number().int().min(1).max(100).optional(),
-    "label": z.string().min(2).max(16).optional(),
+    "label": z.string().refine(value => Array.from(value).length >= 2).refine(value => Array.from(value).length <= 16).optional(),
     "requiredCoordinates": z.array(CoordinateSchema),
     "requiredCount": z.number().int().min(1).max(100),
-    "requiredLabel": z.string().min(2).max(16),
+    "requiredLabel": z.string().refine(value => Array.from(value).length >= 2).refine(value => Array.from(value).length <= 16),
     "weight": z.number().min(0.5).max(99.5).optional(),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
index 3c40ff0..40cd92e 100644
--- a/base/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/optional-constraints.schema/default/TopLevel.ts
@@ -5,7 +5,7 @@ export const TopLevelSchema = z.object({
     "optDouble": z.number().min(0.5).max(99.5).optional(),
     "optInt": z.number().int().min(0).max(100).optional(),
     "optPattern": z.string().regex(new RegExp("^[a-z]+$")).optional(),
-    "optString": z.string().min(3).max(10).optional(),
+    "optString": z.string().refine(value => Array.from(value).length >= 3).refine(value => Array.from(value).length <= 10).optional(),
     "reqZeroMin": z.number().int().min(0).max(100),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts
index 040a94a..d1de348 100644
--- a/base/schema-typescript-zod/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/renaming-bug.schema/default/TopLevel.ts
@@ -78,7 +78,7 @@ export type Geometry = z.infer<typeof GeometrySchema>;
 
 export const VehicleSchema = z.object({
     "brand": z.string().optional(),
-    "id": z.string().min(1).optional(),
+    "id": z.string().refine(value => Array.from(value).length >= 1).optional(),
     "speed": SpeedSchema.optional(),
     "subModule": z.boolean().optional(),
     "type": VehicleTypeSchema.optional(),
@@ -94,7 +94,7 @@ export type Shape = z.infer<typeof ShapeSchema>;
 
 export const BerrySchema = z.object({
     "color": ColorSchema.optional(),
-    "name": z.string().min(1).optional(),
+    "name": z.string().refine(value => Array.from(value).length >= 1).optional(),
     "shapes": z.array(ShapeSchema).optional(),
 });
 export type Berry = z.infer<typeof BerrySchema>;
diff --git a/base/schema-typescript-zod/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts
index d87842a..5f84104 100644
--- a/base/schema-typescript-zod/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts
+++ b/head/schema-typescript-zod/test/inputs/schema/schema-constraints.schema/default/TopLevel.ts
@@ -2,7 +2,7 @@ import * as z from "zod";
 
 
 export const TopLevelSchema = z.object({
-    "minMaxLength": z.string().min(5).max(5),
+    "minMaxLength": z.string().refine(value => Array.from(value).length >= 5).refine(value => Array.from(value).length <= 5),
     "percent": z.number().min(0).max(1),
 });
 export type TopLevel = z.infer<typeof TopLevelSchema>;
diff --git a/head/schema-typescript-zod/test/inputs/typescript-zod/unicode-codepoint-length.schema/default/TopLevel.ts b/head/schema-typescript-zod/test/inputs/typescript-zod/unicode-codepoint-length.schema/default/TopLevel.ts
new file mode 100644
index 0000000..927a5f4
--- /dev/null
+++ b/head/schema-typescript-zod/test/inputs/typescript-zod/unicode-codepoint-length.schema/default/TopLevel.ts
@@ -0,0 +1,9 @@
+import * as z from "zod";
+
+
+export const TopLevelSchema = z.object({
+    "exact": z.string().regex(new RegExp("^[^!]+$")).refine(value => Array.from(value).length >= 2).refine(value => Array.from(value).length <= 2),
+    "maximum": z.string().refine(value => Array.from(value).length <= 1),
+    "minimum": z.string().refine(value => Array.from(value).length >= 2),
+});
+export type TopLevel = z.infer<typeof TopLevelSchema>;
