From 7283b6499eba602234d2aacde07f09da0943d023 Mon Sep 17 00:00:00 2001 From: John Wright Date: Fri, 13 Feb 2026 15:06:59 +0000 Subject: [PATCH] fix(api): safeextend when attaching variable schemas The .safeExtend() method works similarly to .extend(), but it won't let you overwrite an existing property with a non-assignable schema. In other words, the result of .safeExtend() will have an inferred type that extends the original (in the TypeScript sense). Use .safeExtend() to extend schemas that contain refinements. (Regular .extend() will throw an error when used on schemas with refinements.) --- packages/api/src/parsers/attachVariableResolver.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/api/src/parsers/attachVariableResolver.ts b/packages/api/src/parsers/attachVariableResolver.ts index 8c7a05011..239790397 100644 --- a/packages/api/src/parsers/attachVariableResolver.ts +++ b/packages/api/src/parsers/attachVariableResolver.ts @@ -1,7 +1,7 @@ import { - extend, type output, pipe, + safeExtend, transform, type ZodMiniAny, ZodMiniObject, @@ -77,15 +77,15 @@ function objectVariableResolverParser< const $objectParser = objectParser instanceof ZodMiniObject ? objectEntries(objectParser._zod.def.shape).reduce( (acc, [key, parser]) => - extend(acc, { + safeExtend(acc, { [key]: attachVariableResolver(variablesRegistry, parser), }), objectParser, ) : objectEntries(objectParser._zod.def.shape).reduce( (acc, [key, parser]) => - acc.extend({ - [key]: attachVariableResolver(variablesRegistry, parser), + acc.safeExtend({ + [key]: attachVariableResolver(variablesRegistry, parser) as any, }), objectParser, )