fix: replace z.string().email() with RFC 5322 compliant zEmail() (#2656)

This commit is contained in:
Lucas Smith
2026-03-26 16:31:21 +11:00
committed by GitHub
parent 814f6e62de
commit 2346de83a6
36 changed files with 90 additions and 97 deletions
@@ -1,11 +1,11 @@
import { z } from 'zod';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
export const ZUpdateRecipientRequestSchema = z.object({
id: z.number().min(1),
name: z.string().optional(),
email: ZEmail.optional(),
email: zEmail().optional(),
role: z.enum(['CC', 'SIGNER', 'VIEWER', 'APPROVER', 'ASSISTANT']).optional(),
});
@@ -1,12 +1,12 @@
import { Role } from '@prisma/client';
import { z } from 'zod';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
export const ZUpdateUserRequestSchema = z.object({
id: z.number().min(1),
name: z.string().nullish(),
email: ZEmail.optional(),
email: zEmail().optional(),
roles: z.array(z.nativeEnum(Role)).optional(),
});
@@ -11,7 +11,7 @@ import {
ZDocumentMetaSubjectSchema,
ZDocumentMetaTimezoneSchema,
} from '@documenso/lib/types/document-meta';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
import type { TrpcRouteMeta } from '../trpc';
@@ -37,7 +37,7 @@ export const ZDistributeDocumentRequestSchema = z.object({
redirectUrl: ZDocumentMetaRedirectUrlSchema.optional(),
language: ZDocumentMetaLanguageSchema.optional(),
emailId: z.string().nullish(),
emailReplyTo: ZEmail.nullish(),
emailReplyTo: zEmail().nullish(),
emailSettings: ZDocumentEmailSettingsSchema.optional(),
})
.optional(),
@@ -21,7 +21,7 @@ import {
ZFieldWidthSchema,
} from '@documenso/lib/types/field';
import { ZFieldAndMetaSchema } from '@documenso/lib/types/field-meta';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
import { RecipientRole } from '@documenso/prisma/client';
import { DocumentSigningOrder } from '@documenso/prisma/generated/types';
@@ -34,7 +34,7 @@ export const ZCreateEmbeddingDocumentRequestSchema = z.object({
recipients: z.array(
z.object({
id: z.number().optional(),
email: ZEmail,
email: zEmail(),
name: z.string(),
role: z.nativeEnum(RecipientRole),
signingOrder: z.number().optional(),
@@ -21,7 +21,7 @@ import {
ZFieldWidthSchema,
} from '@documenso/lib/types/field';
import { ZFieldAndMetaSchema } from '@documenso/lib/types/field-meta';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
import { DocumentSigningOrder, RecipientRole } from '@documenso/prisma/generated/types';
import { ZDocumentExternalIdSchema, ZDocumentTitleSchema } from '../document-router/schema';
@@ -33,7 +33,7 @@ export const ZUpdateEmbeddingDocumentRequestSchema = z.object({
recipients: z.array(
z.object({
id: z.number().optional(),
email: ZEmail,
email: zEmail(),
name: z.string(),
role: z.nativeEnum(RecipientRole),
signingOrder: z.number().optional(),
@@ -9,7 +9,7 @@ import {
ZDocumentMetaTimezoneSchema,
} from '@documenso/lib/types/document-meta';
import { DocumentVisibility } from '@documenso/lib/types/document-visibility';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
export const ZUpdateOrganisationSettingsRequestSchema = z.object({
organisationId: z.string(),
@@ -37,7 +37,7 @@ export const ZUpdateOrganisationSettingsRequestSchema = z.object({
// Email related settings.
emailId: z.string().nullish(),
emailReplyTo: ZEmail.nullish(),
emailReplyTo: zEmail().nullish(),
// emailReplyToName: z.string().optional(),
emailDocumentSettings: ZDocumentEmailSettingsSchema.optional(),
@@ -1,6 +1,6 @@
import { z } from 'zod';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
export const ZGetRecipientSuggestionsRequestSchema = z.object({
query: z.string().default(''),
@@ -10,7 +10,7 @@ export const ZGetRecipientSuggestionsResponseSchema = z.object({
results: z.array(
z.object({
name: z.string().nullable(),
email: z.union([ZEmail, z.literal('')]),
email: z.union([zEmail(), z.literal('')]),
}),
),
});
@@ -9,7 +9,7 @@ import {
ZRecipientActionAuthTypesSchema,
} from '@documenso/lib/types/document-auth';
import { ZRecipientLiteSchema, ZRecipientSchema } from '@documenso/lib/types/recipient';
import { ZEmail, zEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
export const ZGetRecipientRequestSchema = z.object({
recipientId: z.number(),
@@ -143,7 +143,7 @@ export const ZSetTemplateRecipientsRequestSchema = z.object({
.toLowerCase()
.refine(
(email) => {
return isTemplateRecipientEmailPlaceholder(email) || ZEmail.safeParse(email).success;
return isTemplateRecipientEmailPlaceholder(email) || zEmail().safeParse(email).success;
},
{ message: 'Please enter a valid email address' },
),
@@ -165,7 +165,7 @@ export const ZCompleteDocumentWithTokenMutationSchema = z.object({
accessAuthOptions: ZRecipientAccessAuthSchema.optional(),
nextSigner: z
.object({
email: ZEmail.max(254),
email: zEmail().max(254),
name: z.string().min(1).max(255),
})
.optional(),
@@ -9,7 +9,7 @@ import {
ZDocumentMetaTimezoneSchema,
} from '@documenso/lib/types/document-meta';
import { DocumentVisibility } from '@documenso/lib/types/document-visibility';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
/**
* Null = Inherit from organisation.
@@ -40,7 +40,7 @@ export const ZUpdateTeamSettingsRequestSchema = z.object({
// Email related settings.
emailId: z.string().nullish(),
emailReplyTo: ZEmail.nullish(),
emailReplyTo: zEmail().nullish(),
// emailReplyToName: z.string().nullish(),
emailDocumentSettings: ZDocumentEmailSettingsSchema.nullish(),
@@ -32,7 +32,7 @@ import {
ZTemplateManySchema,
ZTemplateSchema,
} from '@documenso/lib/types/template';
import { ZEmail } from '@documenso/lib/utils/zod';
import { zEmail } from '@documenso/lib/utils/zod';
import { LegacyTemplateDirectLinkSchema } from '@documenso/prisma/types/template-legacy-schema';
import { ZDocumentExternalIdSchema } from '@documenso/trpc/server/document-router/schema';
@@ -74,7 +74,7 @@ export const ZTemplateMetaUpsertSchema = z.object({
dateFormat: ZDocumentMetaDateFormatSchema.optional(),
distributionMethod: ZDocumentMetaDistributionMethodSchema.optional(),
emailId: z.string().nullish(),
emailReplyTo: ZEmail.nullish(),
emailReplyTo: zEmail().nullish(),
emailSettings: ZDocumentEmailSettingsSchema.optional(),
redirectUrl: ZDocumentMetaRedirectUrlSchema.optional(),
language: ZDocumentMetaLanguageSchema.optional(),
@@ -87,14 +87,14 @@ export const ZTemplateMetaUpsertSchema = z.object({
export const ZCreateDocumentFromDirectTemplateRequestSchema = z.object({
directRecipientName: z.string().max(255).optional(),
directRecipientEmail: ZEmail.max(254),
directRecipientEmail: zEmail().max(254),
directTemplateToken: z.string().min(1),
directTemplateExternalId: z.string().optional(),
signedFieldValues: z.array(ZSignFieldWithTokenMutationSchema),
templateUpdatedAt: z.date(),
nextSigner: z
.object({
email: ZEmail.max(254),
email: zEmail().max(254),
name: z.string().min(1).max(255),
})
.optional(),