chore: merge main, resolve biome formatting conflicts

Merge origin/main into feat/external-2fa-codes. Resolve formatting
conflicts caused by biome rollout; preserve both feature streams:
PR's external 2FA token + signing-session 2FA proof additions plus
main's RateLimit/RecipientExpired/signingReminders/date-auto-insert.

In complete-document-with-token.ts, drop the duplicate early
field-fetching block introduced when main moved that logic later
with date auto-insert support; keep the EXTERNAL_TWO_FACTOR_AUTH
check using derivedRecipientActionAuth.
This commit is contained in:
ephraimduncan
2026-05-12 11:46:11 +00:00
parent 9194884fbe
commit 138d663c25
1959 changed files with 93488 additions and 47038 deletions
@@ -1,3 +1,4 @@
import { zEmail } from '@documenso/lib/utils/zod';
import { z } from 'zod';
export const ZGetRecipientSuggestionsRequestSchema = z.object({
@@ -8,15 +9,11 @@ export const ZGetRecipientSuggestionsResponseSchema = z.object({
results: z.array(
z.object({
name: z.string().nullable(),
email: z.string().email(),
email: z.union([zEmail(), z.literal('')]),
}),
),
});
export type TGetRecipientSuggestionsRequestSchema = z.infer<
typeof ZGetRecipientSuggestionsRequestSchema
>;
export type TGetRecipientSuggestionsRequestSchema = z.infer<typeof ZGetRecipientSuggestionsRequestSchema>;
export type TGetRecipientSuggestionsResponseSchema = z.infer<
typeof ZGetRecipientSuggestionsResponseSchema
>;
export type TGetRecipientSuggestionsResponseSchema = z.infer<typeof ZGetRecipientSuggestionsResponseSchema>;
+18 -21
View File
@@ -1,5 +1,3 @@
import { EnvelopeType } from '@prisma/client';
import { completeDocumentWithToken } from '@documenso/lib/server-only/document/complete-document-with-token';
import { rejectDocumentWithToken } from '@documenso/lib/server-only/document/reject-document-with-token';
import { createEnvelopeRecipients } from '@documenso/lib/server-only/recipient/create-envelope-recipients';
@@ -8,6 +6,7 @@ import { getRecipientById } from '@documenso/lib/server-only/recipient/get-recip
import { setDocumentRecipients } from '@documenso/lib/server-only/recipient/set-document-recipients';
import { setTemplateRecipients } from '@documenso/lib/server-only/recipient/set-template-recipients';
import { updateEnvelopeRecipients } from '@documenso/lib/server-only/recipient/update-envelope-recipients';
import { EnvelopeType } from '@prisma/client';
import { ZGenericSuccessResponse, ZSuccessResponseSchema } from '../schema';
import { authenticatedProcedure, procedure, router } from '../trpc';
@@ -586,25 +585,23 @@ export const recipientRouter = router({
/**
* @private
*/
rejectDocumentWithToken: procedure
.input(ZRejectDocumentWithTokenMutationSchema)
.mutation(async ({ input, ctx }) => {
const { token, documentId, reason } = input;
rejectDocumentWithToken: procedure.input(ZRejectDocumentWithTokenMutationSchema).mutation(async ({ input, ctx }) => {
const { token, documentId, reason } = input;
ctx.logger.info({
input: {
documentId,
},
});
ctx.logger.info({
input: {
documentId,
},
});
return await rejectDocumentWithToken({
token,
id: {
type: 'documentId',
id: documentId,
},
reason,
requestMetadata: ctx.metadata.requestMetadata,
});
}),
return await rejectDocumentWithToken({
token,
id: {
type: 'documentId',
id: documentId,
},
reason,
requestMetadata: ctx.metadata.requestMetadata,
});
}),
});
+11 -18
View File
@@ -1,6 +1,3 @@
import { RecipientRole } from '@prisma/client';
import { z } from 'zod';
import { isTemplateRecipientEmailPlaceholder } from '@documenso/lib/constants/template';
import {
ZRecipientAccessAuthSchema,
@@ -9,6 +6,9 @@ import {
ZRecipientActionAuthTypesSchema,
} from '@documenso/lib/types/document-auth';
import { ZRecipientLiteSchema, ZRecipientSchema } from '@documenso/lib/types/recipient';
import { zEmail } from '@documenso/lib/utils/zod';
import { RecipientRole } from '@prisma/client';
import { z } from 'zod';
export const ZGetRecipientRequestSchema = z.object({
recipientId: z.number(),
@@ -24,7 +24,7 @@ export const ZGetRecipientResponseSchema = ZRecipientSchema;
* pass along required details.
*/
export const ZCreateRecipientSchema = z.object({
email: z.string().toLowerCase().email().min(1).max(254),
email: zEmail().toLowerCase().min(1).max(254),
name: z.string().max(255),
role: z.nativeEnum(RecipientRole),
signingOrder: z.number().optional(),
@@ -34,7 +34,7 @@ export const ZCreateRecipientSchema = z.object({
export const ZUpdateRecipientSchema = z.object({
id: z.number().describe('The ID of the recipient to update.'),
email: z.string().toLowerCase().email().min(1).max(254).optional(),
email: zEmail().toLowerCase().min(1).max(254).optional(),
name: z.string().max(255).optional(),
role: z.nativeEnum(RecipientRole).optional(),
signingOrder: z.number().optional(),
@@ -83,7 +83,7 @@ export const ZSetDocumentRecipientsRequestSchema = z.object({
recipients: z.array(
z.object({
id: z.number().optional(),
email: z.string().toLowerCase().email().min(1).max(254),
email: zEmail().toLowerCase().min(1).max(254),
name: z.string().max(255),
role: z.nativeEnum(RecipientRole),
signingOrder: z.number().optional(),
@@ -142,10 +142,7 @@ export const ZSetTemplateRecipientsRequestSchema = z.object({
.toLowerCase()
.refine(
(email) => {
return (
isTemplateRecipientEmailPlaceholder(email) ||
z.string().email().safeParse(email).success
);
return isTemplateRecipientEmailPlaceholder(email) || zEmail().safeParse(email).success;
},
{ message: 'Please enter a valid email address' },
),
@@ -167,21 +164,19 @@ export const ZCompleteDocumentWithTokenMutationSchema = z.object({
accessAuthOptions: ZRecipientAccessAuthSchema.optional(),
nextSigner: z
.object({
email: z.string().email().max(254),
email: zEmail().max(254),
name: z.string().min(1).max(255),
})
.optional(),
recipientOverride: z
.object({
email: z.string().trim().toLowerCase().email().max(254).optional(),
email: zEmail().trim().toLowerCase().max(254).optional(),
name: z.string().max(255).optional(),
})
.optional(),
});
export type TCompleteDocumentWithTokenMutationSchema = z.infer<
typeof ZCompleteDocumentWithTokenMutationSchema
>;
export type TCompleteDocumentWithTokenMutationSchema = z.infer<typeof ZCompleteDocumentWithTokenMutationSchema>;
export const ZRejectDocumentWithTokenMutationSchema = z.object({
token: z.string(),
@@ -190,6 +185,4 @@ export const ZRejectDocumentWithTokenMutationSchema = z.object({
authOptions: ZRecipientActionAuthSchema.optional(),
});
export type TRejectDocumentWithTokenMutationSchema = z.infer<
typeof ZRejectDocumentWithTokenMutationSchema
>;
export type TRejectDocumentWithTokenMutationSchema = z.infer<typeof ZRejectDocumentWithTokenMutationSchema>;