From 9de87ca9063ff4fb341200d4ead25bdf8d11f9cb Mon Sep 17 00:00:00 2001 From: ephraimduncan Date: Tue, 10 Feb 2026 13:57:51 +0000 Subject: [PATCH] fix: move 2FA reason codes to shared constants to fix client bundle Importing SIGNING_2FA_VERIFY_REASON_CODES from a server-only module pulled prisma into the browser bundle, causing "process is not defined" and breaking all client-side JS hydration. --- .../document-signing-auth-external-2fa.tsx | 2 +- packages/lib/constants/document-auth.ts | 9 +++++++++ .../signing-2fa/verify-signing-two-factor-token.ts | 12 +++--------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/apps/remix/app/components/general/document-signing/document-signing-auth-external-2fa.tsx b/apps/remix/app/components/general/document-signing/document-signing-auth-external-2fa.tsx index 0d51c0e85..9852b9492 100644 --- a/apps/remix/app/components/general/document-signing/document-signing-auth-external-2fa.tsx +++ b/apps/remix/app/components/general/document-signing/document-signing-auth-external-2fa.tsx @@ -5,8 +5,8 @@ import { Trans } from '@lingui/react/macro'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; +import { SIGNING_2FA_VERIFY_REASON_CODES } from '@documenso/lib/constants/document-auth'; import { AppError } from '@documenso/lib/errors/app-error'; -import { SIGNING_2FA_VERIFY_REASON_CODES } from '@documenso/lib/server-only/signing-2fa/verify-signing-two-factor-token'; import { DocumentAuth, type TRecipientActionAuth } from '@documenso/lib/types/document-auth'; import { trpc } from '@documenso/trpc/react'; import { Alert, AlertDescription, AlertTitle } from '@documenso/ui/primitives/alert'; diff --git a/packages/lib/constants/document-auth.ts b/packages/lib/constants/document-auth.ts index 83e906e60..2ebd7b409 100644 --- a/packages/lib/constants/document-auth.ts +++ b/packages/lib/constants/document-auth.ts @@ -35,3 +35,12 @@ export const DOCUMENT_AUTH_TYPES: Record = { value: msg`None (Overrides global settings)`, }, } satisfies Record; + +export const SIGNING_2FA_VERIFY_REASON_CODES = { + TWO_FA_TOKEN_INVALID: 'TWO_FA_TOKEN_INVALID', + TWO_FA_TOKEN_EXPIRED: 'TWO_FA_TOKEN_EXPIRED', + TWO_FA_TOKEN_REVOKED: 'TWO_FA_TOKEN_REVOKED', + TWO_FA_TOKEN_CONSUMED: 'TWO_FA_TOKEN_CONSUMED', + TWO_FA_ATTEMPT_LIMIT_REACHED: 'TWO_FA_ATTEMPT_LIMIT_REACHED', + TWO_FA_NOT_ISSUED: 'TWO_FA_NOT_ISSUED', +} as const; diff --git a/packages/lib/server-only/signing-2fa/verify-signing-two-factor-token.ts b/packages/lib/server-only/signing-2fa/verify-signing-two-factor-token.ts index 46c9feb60..847d78b2f 100644 --- a/packages/lib/server-only/signing-2fa/verify-signing-two-factor-token.ts +++ b/packages/lib/server-only/signing-2fa/verify-signing-two-factor-token.ts @@ -1,20 +1,14 @@ import { prisma } from '@documenso/prisma'; +import { SIGNING_2FA_VERIFY_REASON_CODES } from '../../constants/document-auth'; import { AppError, AppErrorCode } from '../../errors/app-error'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import { createDocumentAuditLogData } from '../../utils/document-audit-logs'; import { verifyTokenHash } from './token-utils'; -const PROOF_TTL_MINUTES = 10; +export { SIGNING_2FA_VERIFY_REASON_CODES }; -export const SIGNING_2FA_VERIFY_REASON_CODES = { - TWO_FA_TOKEN_INVALID: 'TWO_FA_TOKEN_INVALID', - TWO_FA_TOKEN_EXPIRED: 'TWO_FA_TOKEN_EXPIRED', - TWO_FA_TOKEN_REVOKED: 'TWO_FA_TOKEN_REVOKED', - TWO_FA_TOKEN_CONSUMED: 'TWO_FA_TOKEN_CONSUMED', - TWO_FA_ATTEMPT_LIMIT_REACHED: 'TWO_FA_ATTEMPT_LIMIT_REACHED', - TWO_FA_NOT_ISSUED: 'TWO_FA_NOT_ISSUED', -} as const; +const PROOF_TTL_MINUTES = 10; export type VerifySigningTwoFactorTokenOptions = { recipientId: number;