From 0d3864548c7be8b917f0ef86336400976811f8db Mon Sep 17 00:00:00 2001 From: David Nguyen Date: Sun, 19 Jan 2025 22:07:02 +1100 Subject: [PATCH] fix: bump trpc and openapi packages (#1591) --- .github/workflows/codeql-analysis.yml | 2 +- apps/web/package.json | 5 +- .../admin/documents/[id]/admin-actions.tsx | 2 +- .../[id]/super-delete-document-dialog.tsx | 26 +- .../admin/documents/document-results.tsx | 4 +- .../admin/site-settings/banner-form.tsx | 25 +- .../admin/users/[id]/delete-user-dialog.tsx | 35 +- .../admin/users/[id]/disable-user-dialog.tsx | 2 +- .../admin/users/[id]/enable-user-dialog.tsx | 2 +- .../[id]/logs/document-logs-data-table.tsx | 23 +- .../[id]/logs/download-audit-log-button.tsx | 6 +- .../[id]/logs/download-certificate-button.tsx | 6 +- .../documents/data-table-sender-filter.tsx | 4 +- .../documents/delete-document-dialog.tsx | 6 +- .../documents/duplicate-document-dialog.tsx | 2 +- .../documents/move-document-dialog.tsx | 6 +- .../(dashboard)/documents/upload-document.tsx | 37 +- .../profile/delete-account-dialog.tsx | 2 +- .../public-profile-page-view.tsx | 4 +- .../public-templates-data-table.tsx | 8 +- .../user-security-activity-data-table.tsx | 21 +- .../passkeys/create-passkey-dialog.tsx | 4 +- .../user-passkeys-data-table-actions.tsx | 4 +- .../passkeys/user-passkeys-data-table.tsx | 6 +- .../teams/accept-team-invitation-button.tsx | 6 +- .../teams/decline-team-invitation-button.tsx | 6 +- .../settings/teams/team-email-usage.tsx | 2 +- .../settings/teams/team-invitations.tsx | 4 +- .../template-page-view-documents-table.tsx | 29 +- .../templates/delete-template-dialog.tsx | 8 +- .../templates/duplicate-template-dialog.tsx | 8 +- .../templates/move-template-dialog.tsx | 6 +- .../templates/template-direct-link-dialog.tsx | 6 +- .../(signing)/sign/[token]/checkbox-field.tsx | 4 +- .../app/(signing)/sign/[token]/date-field.tsx | 4 +- .../sign/[token]/document-auth-provider.tsx | 2 +- .../(signing)/sign/[token]/dropdown-field.tsx | 4 +- .../(signing)/sign/[token]/email-field.tsx | 4 +- .../(signing)/sign/[token]/initials-field.tsx | 4 +- .../app/(signing)/sign/[token]/name-field.tsx | 4 +- .../(signing)/sign/[token]/number-field.tsx | 4 +- .../(signing)/sign/[token]/radio-field.tsx | 4 +- .../sign/[token]/signature-field.tsx | 4 +- .../app/(signing)/sign/[token]/text-field.tsx | 4 +- .../t/[teamUrl]/layout-billing-banner.tsx | 8 +- .../settings/team-email-dropdown.tsx | 2 +- .../settings/team-transfer-status.tsx | 4 +- .../app/embed/direct/[[...url]]/client.tsx | 2 +- .../src/app/embed/sign/[[...url]]/client.tsx | 2 +- .../(dashboard)/common/command-menu.tsx | 2 +- .../layout/verify-email-banner.tsx | 6 +- .../(teams)/dialogs/add-team-email-dialog.tsx | 4 +- .../dialogs/create-team-checkout-dialog.tsx | 2 +- .../dialogs/delete-team-member-dialog.tsx | 2 +- .../(teams)/dialogs/leave-team-dialog.tsx | 2 +- .../dialogs/remove-team-email-dialog.tsx | 4 +- .../tables/current-user-teams-data-table.tsx | 6 +- .../pending-user-teams-data-table-actions.tsx | 2 +- .../tables/pending-user-teams-data-table.tsx | 6 +- .../team-billing-invoices-data-table.tsx | 6 +- .../tables/team-member-invites-data-table.tsx | 25 +- .../tables/team-members-data-table.tsx | 6 +- .../user-settings-teams-page-data-table.tsx | 2 +- .../(teams)/team-billing-portal-button.tsx | 4 +- .../document/document-history-sheet.tsx | 2 +- .../2fa/enable-authenticator-app-dialog.tsx | 2 +- .../forms/2fa/view-recovery-codes-dialog.tsx | 6 +- apps/web/src/components/forms/profile.tsx | 23 +- apps/web/src/components/forms/token.tsx | 36 +- .../manage-public-template-dialog.tsx | 2 +- apps/web/src/pages/api/v2-beta/[...trpc].ts | 15 +- package-lock.json | 1596 +++++++++-------- package.json | 4 +- .../client-only/hooks/use-copy-share-link.ts | 2 +- packages/lib/errors/app-error.ts | 46 +- .../document/reject-document-with-token.ts | 5 +- .../server-only/document/send-delete-email.ts | 5 +- .../document/super-delete-document.ts | 5 +- .../public-api/create-api-token.ts | 9 +- packages/lib/server-only/user/delete-user.ts | 5 +- packages/lib/translations/de/web.po | 225 +-- packages/lib/translations/en/web.po | 225 +-- packages/lib/translations/es/web.po | 225 +-- packages/lib/translations/fr/web.po | 225 +-- packages/lib/types/field-meta.ts | 5 +- packages/trpc/client/guards.ts | 7 - packages/trpc/client/index.ts | 10 +- packages/trpc/package.json | 11 +- packages/trpc/react/index.tsx | 3 +- packages/trpc/server/admin-router/router.ts | 8 - packages/trpc/server/context.ts | 6 +- .../trpc/server/document-router/router.ts | 10 +- packages/trpc/server/field-router/router.ts | 16 - packages/trpc/server/open-api.ts | 2 +- .../trpc/server/recipient-router/router.ts | 20 - packages/trpc/server/team-router/router.ts | 15 - .../trpc/server/template-router/router.ts | 2 +- packages/trpc/server/trpc.ts | 22 +- .../document/document-share-button.tsx | 2 +- 99 files changed, 1651 insertions(+), 1607 deletions(-) delete mode 100644 packages/trpc/client/guards.ts diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index b948e560d..88692396f 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -10,7 +10,7 @@ on: jobs: analyze: name: Analyze - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 permissions: actions: read contents: read diff --git a/apps/web/package.json b/apps/web/package.json index 9659be4bc..5b7f412fb 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -26,7 +26,6 @@ "@lingui/react": "^4.11.3", "@simplewebauthn/browser": "^9.0.1", "@simplewebauthn/server": "^9.0.3", - "@tanstack/react-query": "^4.29.5", "colord": "^2.9.3", "cookie-es": "^1.0.0", "formidable": "^2.1.1", @@ -55,7 +54,7 @@ "recharts": "^2.7.2", "remeda": "^2.17.3", "sharp": "0.32.6", - "trpc-openapi": "^1.2.0", + "trpc-to-openapi": "2.0.4", "ts-pattern": "^5.0.5", "ua-parser-js": "^1.0.37", "uqr": "^0.1.2", @@ -75,4 +74,4 @@ "@types/ua-parser-js": "^0.7.39", "typescript": "5.6.2" } -} \ No newline at end of file +} diff --git a/apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx b/apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx index 330f31eb1..214cacd38 100644 --- a/apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx +++ b/apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx @@ -28,7 +28,7 @@ export const AdminActions = ({ className, document, recipients }: AdminActionsPr const { _ } = useLingui(); const { toast } = useToast(); - const { mutate: resealDocument, isLoading: isResealDocumentLoading } = + const { mutate: resealDocument, isPending: isResealDocumentLoading } = trpc.admin.resealDocument.useMutation({ onSuccess: () => { toast({ diff --git a/apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx b/apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx index 337796959..bf142133f 100644 --- a/apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx +++ b/apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx @@ -8,7 +8,6 @@ import { Trans, msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; import type { Document } from '@documenso/prisma/client'; -import { TRPCClientError } from '@documenso/trpc/client'; import { trpc } from '@documenso/trpc/react'; import { Alert, AlertDescription, AlertTitle } from '@documenso/ui/primitives/alert'; import { Button } from '@documenso/ui/primitives/button'; @@ -36,7 +35,7 @@ export const SuperDeleteDocumentDialog = ({ document }: SuperDeleteDocumentDialo const [reason, setReason] = useState(''); - const { mutateAsync: deleteDocument, isLoading: isDeletingDocument } = + const { mutateAsync: deleteDocument, isPending: isDeletingDocument } = trpc.admin.deleteDocument.useMutation(); const handleDeleteDocument = async () => { @@ -55,21 +54,12 @@ export const SuperDeleteDocumentDialog = ({ document }: SuperDeleteDocumentDialo router.push('/admin/documents'); } catch (err) { - if (err instanceof TRPCClientError && err.data?.code === 'BAD_REQUEST') { - toast({ - title: _(msg`An error occurred`), - description: err.message, - variant: 'destructive', - }); - } else { - toast({ - title: _(msg`An unknown error occurred`), - variant: 'destructive', - description: - err.message ?? - 'We encountered an unknown error while attempting to delete your document. Please try again later.', - }); - } + toast({ + title: _(msg`An unknown error occurred`), + variant: 'destructive', + description: + 'We encountered an unknown error while attempting to delete your document. Please try again later.', + }); } }; @@ -77,7 +67,7 @@ export const SuperDeleteDocumentDialog = ({ document }: SuperDeleteDocumentDialo
diff --git a/apps/web/src/app/(dashboard)/admin/documents/document-results.tsx b/apps/web/src/app/(dashboard)/admin/documents/document-results.tsx index e57161ea0..98854f296 100644 --- a/apps/web/src/app/(dashboard)/admin/documents/document-results.tsx +++ b/apps/web/src/app/(dashboard)/admin/documents/document-results.tsx @@ -37,7 +37,7 @@ export const AdminDocumentResults = () => { const page = searchParams?.get?.('page') ? Number(searchParams.get('page')) : undefined; const perPage = searchParams?.get?.('perPage') ? Number(searchParams.get('perPage')) : undefined; - const { data: findDocumentsData, isLoading: isFindDocumentsLoading } = + const { data: findDocumentsData, isPending: isFindDocumentsLoading } = trpc.admin.findDocuments.useQuery( { query: debouncedTerm, @@ -45,7 +45,7 @@ export const AdminDocumentResults = () => { perPage: perPage || 20, }, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); diff --git a/apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx b/apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx index d68eed63b..6903f5e17 100644 --- a/apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx +++ b/apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx @@ -13,7 +13,6 @@ import { SITE_SETTINGS_BANNER_ID, ZSiteSettingsBannerSchema, } from '@documenso/lib/server-only/site-settings/schemas/banner'; -import { TRPCClientError } from '@documenso/trpc/client'; import { trpc as trpcReact } from '@documenso/trpc/react'; import { Button } from '@documenso/ui/primitives/button'; import { ColorPicker } from '@documenso/ui/primitives/color-picker'; @@ -59,7 +58,7 @@ export function BannerForm({ banner }: BannerFormProps) { const enabled = form.watch('enabled'); - const { mutateAsync: updateSiteSetting, isLoading: isUpdateSiteSettingLoading } = + const { mutateAsync: updateSiteSetting, isPending: isUpdateSiteSettingLoading } = trpcReact.admin.updateSiteSetting.useMutation(); const onBannerUpdate = async ({ id, enabled, data }: TBannerFormSchema) => { @@ -78,21 +77,13 @@ export function BannerForm({ banner }: BannerFormProps) { router.refresh(); } catch (err) { - if (err instanceof TRPCClientError && err.data?.code === 'BAD_REQUEST') { - toast({ - title: _(msg`An error occurred`), - description: err.message, - variant: 'destructive', - }); - } else { - toast({ - title: _(msg`An unknown error occurred`), - variant: 'destructive', - description: _( - msg`We encountered an unknown error while attempting to update the banner. Please try again later.`, - ), - }); - } + toast({ + title: _(msg`An unknown error occurred`), + variant: 'destructive', + description: _( + msg`We encountered an unknown error while attempting to update the banner. Please try again later.`, + ), + }); } }; diff --git a/apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx b/apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx index 560172c77..1f45002f2 100644 --- a/apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx +++ b/apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx @@ -6,9 +6,10 @@ import { useRouter } from 'next/navigation'; import { Trans, msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; +import { match } from 'ts-pattern'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import type { User } from '@documenso/prisma/client'; -import { TRPCClientError } from '@documenso/trpc/client'; import { trpc } from '@documenso/trpc/react'; import { Alert, AlertDescription, AlertTitle } from '@documenso/ui/primitives/alert'; import { Button } from '@documenso/ui/primitives/button'; @@ -37,7 +38,7 @@ export const DeleteUserDialog = ({ className, user }: DeleteUserDialogProps) => const [email, setEmail] = useState(''); - const { mutateAsync: deleteUser, isLoading: isDeletingUser } = + const { mutateAsync: deleteUser, isPending: isDeletingUser } = trpc.admin.deleteUser.useMutation(); const onDeleteAccount = async () => { @@ -54,23 +55,19 @@ export const DeleteUserDialog = ({ className, user }: DeleteUserDialogProps) => router.push('/admin/users'); } catch (err) { - if (err instanceof TRPCClientError && err.data?.code === 'BAD_REQUEST') { - toast({ - title: _(msg`An error occurred`), - description: err.message, - variant: 'destructive', - }); - } else { - toast({ - title: _(msg`An unknown error occurred`), - variant: 'destructive', - description: - err.message ?? - _( - msg`We encountered an unknown error while attempting to delete your account. Please try again later.`, - ), - }); - } + const error = AppError.parseError(err); + + const errorMessage = match(error.code) + .with(AppErrorCode.NOT_FOUND, () => msg`User not found.`) + .with(AppErrorCode.UNAUTHORIZED, () => msg`You are not authorized to delete this user.`) + .otherwise(() => msg`An error occurred while deleting the user.`); + + toast({ + title: _(msg`Error`), + description: _(errorMessage), + variant: 'destructive', + duration: 7500, + }); } }; diff --git a/apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx b/apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx index aac003c82..1b09d8432 100644 --- a/apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx +++ b/apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx @@ -34,7 +34,7 @@ export const DisableUserDialog = ({ className, userToDisable }: DisableUserDialo const [email, setEmail] = useState(''); - const { mutateAsync: disableUser, isLoading: isDisablingUser } = + const { mutateAsync: disableUser, isPending: isDisablingUser } = trpc.admin.disableUser.useMutation(); const onDisableAccount = async () => { diff --git a/apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx b/apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx index cdb5ed2de..c9df59591 100644 --- a/apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx +++ b/apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx @@ -34,7 +34,7 @@ export const EnableUserDialog = ({ className, userToEnable }: EnableUserDialogPr const [email, setEmail] = useState(''); - const { mutateAsync: enableUser, isLoading: isEnablingUser } = + const { mutateAsync: enableUser, isPending: isEnablingUser } = trpc.admin.enableUser.useMutation(); const onEnableAccount = async () => { diff --git a/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx b/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx index eae15526f..45097b594 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx @@ -37,17 +37,16 @@ export const DocumentLogsDataTable = ({ documentId }: DocumentLogsDataTableProps const parsedSearchParams = ZUrlSearchParamsSchema.parse(Object.fromEntries(searchParams ?? [])); - const { data, isLoading, isInitialLoading, isLoadingError } = - trpc.document.findDocumentAuditLogs.useQuery( - { - documentId, - page: parsedSearchParams.page, - perPage: parsedSearchParams.perPage, - }, - { - keepPreviousData: true, - }, - ); + const { data, isLoading, isLoadingError } = trpc.document.findDocumentAuditLogs.useQuery( + { + documentId, + page: parsedSearchParams.page, + perPage: parsedSearchParams.perPage, + }, + { + placeholderData: (previousData) => previousData, + }, + ); const onPaginationChange = (page: number, perPage: number) => { updateSearchParams({ @@ -132,7 +131,7 @@ export const DocumentLogsDataTable = ({ documentId }: DocumentLogsDataTableProps enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx b/apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx index da408d6f9..d6be5318c 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/logs/download-audit-log-button.tsx @@ -19,7 +19,7 @@ export const DownloadAuditLogButton = ({ className, documentId }: DownloadAuditL const { toast } = useToast(); const { _ } = useLingui(); - const { mutateAsync: downloadAuditLogs, isLoading } = + const { mutateAsync: downloadAuditLogs, isPending } = trpc.document.downloadAuditLogs.useMutation(); const onDownloadAuditLogsClick = async () => { @@ -70,10 +70,10 @@ export const DownloadAuditLogButton = ({ className, documentId }: DownloadAuditL return ( ); diff --git a/apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx b/apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx index bfb894e24..18eff7258 100644 --- a/apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx +++ b/apps/web/src/app/(dashboard)/documents/[id]/logs/download-certificate-button.tsx @@ -26,7 +26,7 @@ export const DownloadCertificateButton = ({ const { toast } = useToast(); const { _ } = useLingui(); - const { mutateAsync: downloadCertificate, isLoading } = + const { mutateAsync: downloadCertificate, isPending } = trpc.document.downloadCertificate.useMutation(); const onDownloadCertificatesClick = async () => { @@ -77,12 +77,12 @@ export const DownloadCertificateButton = ({ return ( ); diff --git a/apps/web/src/app/(dashboard)/documents/data-table-sender-filter.tsx b/apps/web/src/app/(dashboard)/documents/data-table-sender-filter.tsx index b580a7ede..8003c20b8 100644 --- a/apps/web/src/app/(dashboard)/documents/data-table-sender-filter.tsx +++ b/apps/web/src/app/(dashboard)/documents/data-table-sender-filter.tsx @@ -25,7 +25,7 @@ export const DataTableSenderFilter = ({ teamId }: DataTableSenderFilterProps) => const senderIds = parseToIntegerArray(searchParams?.get('senderIds') ?? ''); - const { data, isInitialLoading } = trpc.team.getTeamMembers.useQuery({ + const { data, isLoading } = trpc.team.getTeamMembers.useQuery({ teamId, }); @@ -61,7 +61,7 @@ export const DataTableSenderFilter = ({ teamId }: DataTableSenderFilterProps) => } enableClearAllButton={true} inputPlaceholder={msg`Search`} - loading={!isMounted || isInitialLoading} + loading={!isMounted || isLoading} options={comboBoxOptions} selectedValues={senderIds} onChange={onChange} diff --git a/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx b/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx index 176e5d7fd..50c0b83eb 100644 --- a/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx +++ b/apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx @@ -51,7 +51,7 @@ export const DeleteDocumentDialog = ({ const [inputValue, setInputValue] = useState(''); const [isDeleteEnabled, setIsDeleteEnabled] = useState(status === DocumentStatus.DRAFT); - const { mutateAsync: deleteDocument, isLoading } = trpcReact.document.deleteDocument.useMutation({ + const { mutateAsync: deleteDocument, isPending } = trpcReact.document.deleteDocument.useMutation({ onSuccess: () => { router.refresh(); void refreshLimits(); @@ -92,7 +92,7 @@ export const DeleteDocumentDialog = ({ }; return ( - !isLoading && onOpenChange(value)}> + !isPending && onOpenChange(value)}> @@ -193,7 +193,7 @@ export const DeleteDocumentDialog = ({ - diff --git a/apps/web/src/app/(dashboard)/documents/upload-document.tsx b/apps/web/src/app/(dashboard)/documents/upload-document.tsx index 2e54f845d..c8fc800a0 100644 --- a/apps/web/src/app/(dashboard)/documents/upload-document.tsx +++ b/apps/web/src/app/(dashboard)/documents/upload-document.tsx @@ -8,16 +8,16 @@ import { Trans, msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; import { Loader } from 'lucide-react'; import { useSession } from 'next-auth/react'; +import { match } from 'ts-pattern'; import { useLimits } from '@documenso/ee/server-only/limits/provider/client'; import { useAnalytics } from '@documenso/lib/client-only/hooks/use-analytics'; import { APP_DOCUMENT_UPLOAD_SIZE_LIMIT } from '@documenso/lib/constants/app'; import { DEFAULT_DOCUMENT_TIME_ZONE, TIME_ZONES } from '@documenso/lib/constants/time-zones'; -import { AppError } from '@documenso/lib/errors/app-error'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import { createDocumentData } from '@documenso/lib/server-only/document-data/create-document-data'; import { putPdfFile } from '@documenso/lib/universal/upload/put-file'; import { formatDocumentsPath } from '@documenso/lib/utils/teams'; -import { TRPCClientError } from '@documenso/trpc/client'; import { trpc } from '@documenso/trpc/react'; import { cn } from '@documenso/ui/lib/utils'; import { DocumentDropzone } from '@documenso/ui/primitives/document-dropzone'; @@ -99,25 +99,20 @@ export const UploadDocument = ({ className, team }: UploadDocumentProps) => { console.error(err); - if (error.code === 'INVALID_DOCUMENT_FILE') { - toast({ - title: _(msg`Invalid file`), - description: _(msg`You cannot upload encrypted PDFs`), - variant: 'destructive', - }); - } else if (err instanceof TRPCClientError) { - toast({ - title: _(msg`Error`), - description: err.message, - variant: 'destructive', - }); - } else { - toast({ - title: _(msg`Error`), - description: _(msg`An error occurred while uploading your document.`), - variant: 'destructive', - }); - } + const errorMessage = match(error.code) + .with('INVALID_DOCUMENT_FILE', () => msg`You cannot upload encrypted PDFs`) + .with( + AppErrorCode.LIMIT_EXCEEDED, + () => msg`You have reached your document limit for this month. Please upgrade your plan.`, + ) + .otherwise(() => msg`An error occurred while uploading your document.`); + + toast({ + title: _(msg`Error`), + description: _(errorMessage), + variant: 'destructive', + duration: 7500, + }); } finally { setIsLoading(false); } diff --git a/apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx b/apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx index d0a13830c..2bb37e57b 100644 --- a/apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx +++ b/apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx @@ -36,7 +36,7 @@ export const DeleteAccountDialog = ({ className, user }: DeleteAccountDialogProp const [enteredEmail, setEnteredEmail] = useState(''); - const { mutateAsync: deleteAccount, isLoading: isDeletingAccount } = + const { mutateAsync: deleteAccount, isPending: isDeletingAccount } = trpc.profile.deleteAccount.useMutation(); const onDeleteAccount = async () => { diff --git a/apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx b/apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx index db53be20b..0795c29ca 100644 --- a/apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx +++ b/apps/web/src/app/(dashboard)/settings/public-profile/public-profile-page-view.tsx @@ -63,10 +63,10 @@ export const PublicProfilePageView = ({ user, team, profile }: PublicProfilePage perPage: 100, }); - const { mutateAsync: updateUserProfile, isLoading: isUpdatingUserProfile } = + const { mutateAsync: updateUserProfile, isPending: isUpdatingUserProfile } = trpc.profile.updatePublicProfile.useMutation(); - const { mutateAsync: updateTeamProfile, isLoading: isUpdatingTeamProfile } = + const { mutateAsync: updateTeamProfile, isPending: isUpdatingTeamProfile } = trpc.team.updateTeamPublicProfile.useMutation(); const isUpdating = isUpdatingUserProfile || isUpdatingTeamProfile; diff --git a/apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx b/apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx index 2f8b26fb6..b8f3034b8 100644 --- a/apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx +++ b/apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx @@ -39,10 +39,10 @@ export const PublicTemplatesDataTable = () => { templateId: number; } | null>(null); - const { data, isInitialLoading, isLoadingError, refetch } = trpc.template.findTemplates.useQuery( + const { data, isLoading, isLoadingError, refetch } = trpc.template.findTemplates.useQuery( {}, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); @@ -80,7 +80,7 @@ export const PublicTemplatesDataTable = () => { {/* Loading and error handling states. */} {publicDirectTemplates.length === 0 && ( <> - {isInitialLoading && + {isLoading && Array(3) .fill(0) .map((_, index) => ( @@ -115,7 +115,7 @@ export const PublicTemplatesDataTable = () => {
)} - {!isInitialLoading && ( + {!isLoading && (
No public profile templates found { const parsedSearchParams = ZUrlSearchParamsSchema.parse(Object.fromEntries(searchParams ?? [])); - const { data, isLoading, isInitialLoading, isLoadingError } = - trpc.profile.findUserSecurityAuditLogs.useQuery( - { - page: parsedSearchParams.page, - perPage: parsedSearchParams.perPage, - }, - { - keepPreviousData: true, - }, - ); + const { data, isLoading, isLoadingError } = trpc.profile.findUserSecurityAuditLogs.useQuery( + { + page: parsedSearchParams.page, + perPage: parsedSearchParams.perPage, + }, + { + placeholderData: (previousData) => previousData, + }, + ); const onPaginationChange = (page: number, perPage: number) => { updateSearchParams({ @@ -134,7 +133,7 @@ export const UserSecurityActivityDataTable = () => { enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx b/apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx index 5c52532c9..44b87ae2f 100644 --- a/apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx +++ b/apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx @@ -65,7 +65,7 @@ export const CreatePasskeyDialog = ({ trigger, onSuccess, ...props }: CreatePass }, }); - const { mutateAsync: createPasskeyRegistrationOptions, isLoading } = + const { mutateAsync: createPasskeyRegistrationOptions, isPending } = trpc.auth.createPasskeyRegistrationOptions.useMutation(); const { mutateAsync: createPasskey } = trpc.auth.createPasskey.useMutation(); @@ -141,7 +141,7 @@ export const CreatePasskeyDialog = ({ trigger, onSuccess, ...props }: CreatePass > e.stopPropagation()} asChild={true}> {trigger ?? ( - diff --git a/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx b/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx index 4c720076a..72142da41 100644 --- a/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx +++ b/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table-actions.tsx @@ -60,7 +60,7 @@ export const UserPasskeysDataTableActions = ({ }, }); - const { mutateAsync: updatePasskey, isLoading: isUpdatingPasskey } = + const { mutateAsync: updatePasskey, isPending: isUpdatingPasskey } = trpc.auth.updatePasskey.useMutation({ onSuccess: () => { toast({ @@ -80,7 +80,7 @@ export const UserPasskeysDataTableActions = ({ }, }); - const { mutateAsync: deletePasskey, isLoading: isDeletingPasskey } = + const { mutateAsync: deletePasskey, isPending: isDeletingPasskey } = trpc.auth.deletePasskey.useMutation({ onSuccess: () => { toast({ diff --git a/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx b/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx index 9a19a9767..169630f20 100644 --- a/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx +++ b/apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx @@ -29,13 +29,13 @@ export const UserPasskeysDataTable = () => { const parsedSearchParams = ZUrlSearchParamsSchema.parse(Object.fromEntries(searchParams ?? [])); - const { data, isLoading, isInitialLoading, isLoadingError } = trpc.auth.findPasskeys.useQuery( + const { data, isLoading, isLoadingError } = trpc.auth.findPasskeys.useQuery( { page: parsedSearchParams.page, perPage: parsedSearchParams.perPage, }, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); @@ -100,7 +100,7 @@ export const UserPasskeysDataTable = () => { enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx b/apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx index cca5448f3..7d737026b 100644 --- a/apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx +++ b/apps/web/src/app/(dashboard)/settings/teams/accept-team-invitation-button.tsx @@ -17,7 +17,7 @@ export const AcceptTeamInvitationButton = ({ teamId }: AcceptTeamInvitationButto const { mutateAsync: acceptTeamInvitation, - isLoading, + isPending, isSuccess, } = trpc.team.acceptTeamInvitation.useMutation({ onSuccess: () => { @@ -40,8 +40,8 @@ export const AcceptTeamInvitationButton = ({ teamId }: AcceptTeamInvitationButto return ( diff --git a/apps/web/src/app/(dashboard)/settings/teams/decline-team-invitation-button.tsx b/apps/web/src/app/(dashboard)/settings/teams/decline-team-invitation-button.tsx index b1f8ecb43..02c5c38aa 100644 --- a/apps/web/src/app/(dashboard)/settings/teams/decline-team-invitation-button.tsx +++ b/apps/web/src/app/(dashboard)/settings/teams/decline-team-invitation-button.tsx @@ -17,7 +17,7 @@ export const DeclineTeamInvitationButton = ({ teamId }: DeclineTeamInvitationBut const { mutateAsync: declineTeamInvitation, - isLoading, + isPending, isSuccess, } = trpc.team.declineTeamInvitation.useMutation({ onSuccess: () => { @@ -40,8 +40,8 @@ export const DeclineTeamInvitationButton = ({ teamId }: DeclineTeamInvitationBut return ( - diff --git a/apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx b/apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx index 727e5199e..f603f20be 100644 --- a/apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx +++ b/apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx @@ -83,7 +83,7 @@ export const TemplateDirectLinkDialog = ({ const { mutateAsync: createTemplateDirectLink, - isLoading: isCreatingTemplateDirectLink, + isPending: isCreatingTemplateDirectLink, reset: resetCreateTemplateDirectLink, } = trpcReact.template.createTemplateDirectLink.useMutation({ onSuccess: (data) => { @@ -104,7 +104,7 @@ export const TemplateDirectLinkDialog = ({ }, }); - const { mutateAsync: toggleTemplateDirectLink, isLoading: isTogglingTemplateAccess } = + const { mutateAsync: toggleTemplateDirectLink, isPending: isTogglingTemplateAccess } = trpcReact.template.toggleTemplateDirectLink.useMutation({ onSuccess: (data) => { const enabledDescription = msg`Direct link signing has been enabled`; @@ -127,7 +127,7 @@ export const TemplateDirectLinkDialog = ({ }, }); - const { mutateAsync: deleteTemplateDirectLink, isLoading: isDeletingTemplateDirectLink } = + const { mutateAsync: deleteTemplateDirectLink, isPending: isDeletingTemplateDirectLink } = trpcReact.template.deleteTemplateDirectLink.useMutation({ onSuccess: () => { onOpenChange(false); diff --git a/apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx b/apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx index b5a04819a..2bf96afdd 100644 --- a/apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/checkbox-field.tsx @@ -81,12 +81,12 @@ export const CheckboxField = ({ ); }, [checkedValues, validationSign, checkboxValidationLength]); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/date-field.tsx b/apps/web/src/app/(signing)/sign/[token]/date-field.tsx index 5b573d6f6..b62eaf652 100644 --- a/apps/web/src/app/(signing)/sign/[token]/date-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/date-field.tsx @@ -51,12 +51,12 @@ export const DateField = ({ const [isPending, startTransition] = useTransition(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/document-auth-provider.tsx b/apps/web/src/app/(signing)/sign/[token]/document-auth-provider.tsx index c5c32f414..90e5adcc2 100644 --- a/apps/web/src/app/(signing)/sign/[token]/document-auth-provider.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/document-auth-provider.tsx @@ -106,7 +106,7 @@ export const DocumentAuthProvider = ({ perPage: MAXIMUM_PASSKEYS, }, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, enabled: derivedRecipientActionAuth === DocumentAuth.PASSKEY, }, ); diff --git a/apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx b/apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx index eef159ec6..5f4e1a444 100644 --- a/apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/dropdown-field.tsx @@ -58,12 +58,12 @@ export const DropdownField = ({ const defaultValue = parsedFieldMeta?.defaultValue; const [localChoice, setLocalChoice] = useState(parsedFieldMeta.defaultValue ?? ''); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/email-field.tsx b/apps/web/src/app/(signing)/sign/[token]/email-field.tsx index 0cb11a739..9300aef63 100644 --- a/apps/web/src/app/(signing)/sign/[token]/email-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/email-field.tsx @@ -40,12 +40,12 @@ export const EmailField = ({ field, recipient, onSignField, onUnsignField }: Ema const [isPending, startTransition] = useTransition(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx b/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx index 595393ef2..b63418076 100644 --- a/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/initials-field.tsx @@ -46,12 +46,12 @@ export const InitialsField = ({ const [isPending, startTransition] = useTransition(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/name-field.tsx b/apps/web/src/app/(signing)/sign/[token]/name-field.tsx index ce39af972..bc83e5a49 100644 --- a/apps/web/src/app/(signing)/sign/[token]/name-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/name-field.tsx @@ -48,12 +48,12 @@ export const NameField = ({ field, recipient, onSignField, onUnsignField }: Name const [isPending, startTransition] = useTransition(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/number-field.tsx b/apps/web/src/app/(signing)/sign/[token]/number-field.tsx index 9461900c9..ffd90df64 100644 --- a/apps/web/src/app/(signing)/sign/[token]/number-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/number-field.tsx @@ -71,12 +71,12 @@ export const NumberField = ({ field, recipient, onSignField, onUnsignField }: Nu const { executeActionAuthProcedure } = useRequiredDocumentAuthContext(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/radio-field.tsx b/apps/web/src/app/(signing)/sign/[token]/radio-field.tsx index 8adacbda8..398181ec1 100644 --- a/apps/web/src/app/(signing)/sign/[token]/radio-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/radio-field.tsx @@ -52,12 +52,12 @@ export const RadioField = ({ field, recipient, onSignField, onUnsignField }: Rad const { executeActionAuthProcedure } = useRequiredDocumentAuthContext(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const isLoading = isSignFieldWithTokenLoading || isRemoveSignedFieldWithTokenLoading || isPending; diff --git a/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx b/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx index 717ebfc61..bba784975 100644 --- a/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/signature-field.tsx @@ -66,12 +66,12 @@ export const SignatureField = ({ const [isPending, startTransition] = useTransition(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { signature } = field; diff --git a/apps/web/src/app/(signing)/sign/[token]/text-field.tsx b/apps/web/src/app/(signing)/sign/[token]/text-field.tsx index fc722f8d0..0c4088d75 100644 --- a/apps/web/src/app/(signing)/sign/[token]/text-field.tsx +++ b/apps/web/src/app/(signing)/sign/[token]/text-field.tsx @@ -54,12 +54,12 @@ export const TextField = ({ field, recipient, onSignField, onUnsignField }: Text const [isPending, startTransition] = useTransition(); - const { mutateAsync: signFieldWithToken, isLoading: isSignFieldWithTokenLoading } = + const { mutateAsync: signFieldWithToken, isPending: isSignFieldWithTokenLoading } = trpc.field.signFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const { mutateAsync: removeSignedFieldWithToken, - isLoading: isRemoveSignedFieldWithTokenLoading, + isPending: isRemoveSignedFieldWithTokenLoading, } = trpc.field.removeSignedFieldWithToken.useMutation(DO_NOT_INVALIDATE_QUERY_ON_MUTATION); const parsedFieldMeta = field.fieldMeta ? ZTextFieldMeta.parse(field.fieldMeta) : null; diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx index 48c989b7c..d29b8abfb 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/layout-billing-banner.tsx @@ -38,7 +38,7 @@ export const LayoutBillingBanner = ({ const [isOpen, setIsOpen] = useState(false); - const { mutateAsync: createBillingPortal, isLoading } = + const { mutateAsync: createBillingPortal, isPending } = trpc.team.createBillingPortal.useMutation(); const handleCreatePortal = async () => { @@ -92,7 +92,7 @@ export const LayoutBillingBanner = ({ 'text-destructive-foreground hover:bg-destructive-foreground hover:text-white': subscription.status === SubscriptionStatus.INACTIVE, })} - disabled={isLoading} + disabled={isPending} onClick={() => setIsOpen(true)} size="sm" > @@ -101,7 +101,7 @@ export const LayoutBillingBanner = ({
- !isLoading && setIsOpen(value)}> + !isPending && setIsOpen(value)}> Payment overdue @@ -128,7 +128,7 @@ export const LayoutBillingBanner = ({ {canExecuteTeamAction('MANAGE_BILLING', userRole) && ( - diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx index d97539cfe..c1ae53a12 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx @@ -25,7 +25,7 @@ export const TeamEmailDropdown = ({ team }: TeamsSettingsPageProps) => { const { _ } = useLingui(); const { toast } = useToast(); - const { mutateAsync: resendEmailVerification, isLoading: isResendingEmailVerification } = + const { mutateAsync: resendEmailVerification, isPending: isResendingEmailVerification } = trpc.team.resendTeamEmailVerification.useMutation({ onSuccess: () => { toast({ diff --git a/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx b/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx index 8f02b00e2..ccfea8983 100644 --- a/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx +++ b/apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx @@ -36,7 +36,7 @@ export const TeamTransferStatus = ({ const isExpired = transferVerification && isTokenExpired(transferVerification.expiresAt); - const { mutateAsync: deleteTeamTransferRequest, isLoading } = + const { mutateAsync: deleteTeamTransferRequest, isPending } = trpc.team.deleteTeamTransferRequest.useMutation({ onSuccess: () => { if (!isExpired) { @@ -112,7 +112,7 @@ export const TeamTransferStatus = ({ {canExecuteTeamAction('DELETE_TEAM_TRANSFER_REQUEST', currentUserTeamRole) && (
diff --git a/apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx b/apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx index 450464a99..23c23f751 100644 --- a/apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx +++ b/apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx @@ -64,7 +64,7 @@ export const AddTeamEmailDialog = ({ teamId, trigger, ...props }: AddTeamEmailDi }, }); - const { mutateAsync: createTeamEmailVerification, isLoading } = + const { mutateAsync: createTeamEmailVerification, isPending } = trpc.team.createTeamEmailVerification.useMutation(); const onFormSubmit = async ({ name, email }: TCreateTeamEmailFormSchema) => { @@ -120,7 +120,7 @@ export const AddTeamEmailDialog = ({ teamId, trigger, ...props }: AddTeamEmailDi > e.stopPropagation()} asChild={true}> {trigger ?? ( - diff --git a/apps/web/src/components/(teams)/dialogs/create-team-checkout-dialog.tsx b/apps/web/src/components/(teams)/dialogs/create-team-checkout-dialog.tsx index c27f3f85d..9a66c7073 100644 --- a/apps/web/src/components/(teams)/dialogs/create-team-checkout-dialog.tsx +++ b/apps/web/src/components/(teams)/dialogs/create-team-checkout-dialog.tsx @@ -39,7 +39,7 @@ export const CreateTeamCheckoutDialog = ({ const { data, isLoading } = trpc.team.getTeamPrices.useQuery(); - const { mutateAsync: createCheckout, isLoading: isCreatingCheckout } = + const { mutateAsync: createCheckout, isPending: isCreatingCheckout } = trpc.team.createTeamPendingCheckout.useMutation({ onSuccess: (checkoutUrl) => { window.open(checkoutUrl, '_blank'); diff --git a/apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx b/apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx index be1e1f0e0..0036f7386 100644 --- a/apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx +++ b/apps/web/src/components/(teams)/dialogs/delete-team-member-dialog.tsx @@ -42,7 +42,7 @@ export const DeleteTeamMemberDialog = ({ const { _ } = useLingui(); const { toast } = useToast(); - const { mutateAsync: deleteTeamMembers, isLoading: isDeletingTeamMember } = + const { mutateAsync: deleteTeamMembers, isPending: isDeletingTeamMember } = trpc.team.deleteTeamMembers.useMutation({ onSuccess: () => { toast({ diff --git a/apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx b/apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx index d44f607ee..3689d5e92 100644 --- a/apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx +++ b/apps/web/src/components/(teams)/dialogs/leave-team-dialog.tsx @@ -43,7 +43,7 @@ export const LeaveTeamDialog = ({ const { _ } = useLingui(); const { toast } = useToast(); - const { mutateAsync: leaveTeam, isLoading: isLeavingTeam } = trpc.team.leaveTeam.useMutation({ + const { mutateAsync: leaveTeam, isPending: isLeavingTeam } = trpc.team.leaveTeam.useMutation({ onSuccess: () => { toast({ title: _(msg`Success`), diff --git a/apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx b/apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx index 7e11b408b..0496f923a 100644 --- a/apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx +++ b/apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx @@ -50,7 +50,7 @@ export const RemoveTeamEmailDialog = ({ trigger, teamName, team }: RemoveTeamEma const router = useRouter(); - const { mutateAsync: deleteTeamEmail, isLoading: isDeletingTeamEmail } = + const { mutateAsync: deleteTeamEmail, isPending: isDeletingTeamEmail } = trpc.team.deleteTeamEmail.useMutation({ onSuccess: () => { toast({ @@ -69,7 +69,7 @@ export const RemoveTeamEmailDialog = ({ trigger, teamName, team }: RemoveTeamEma }, }); - const { mutateAsync: deleteTeamEmailVerification, isLoading: isDeletingTeamEmailVerification } = + const { mutateAsync: deleteTeamEmailVerification, isPending: isDeletingTeamEmailVerification } = trpc.team.deleteTeamEmailVerification.useMutation({ onSuccess: () => { toast({ diff --git a/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx b/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx index 206977afe..d9984aace 100644 --- a/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx @@ -32,14 +32,14 @@ export const CurrentUserTeamsDataTable = () => { const parsedSearchParams = ZUrlSearchParamsSchema.parse(Object.fromEntries(searchParams ?? [])); - const { data, isLoading, isInitialLoading, isLoadingError } = trpc.team.findTeams.useQuery( + const { data, isLoading, isLoadingError } = trpc.team.findTeams.useQuery( { query: parsedSearchParams.query, page: parsedSearchParams.page, perPage: parsedSearchParams.perPage, }, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); @@ -134,7 +134,7 @@ export const CurrentUserTeamsDataTable = () => { enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx b/apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx index 010899bc2..57c77dbe0 100644 --- a/apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx +++ b/apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx @@ -20,7 +20,7 @@ export const PendingUserTeamsDataTableActions = ({ const { _ } = useLingui(); const { toast } = useToast(); - const { mutateAsync: deleteTeamPending, isLoading: deletingTeam } = + const { mutateAsync: deleteTeamPending, isPending: deletingTeam } = trpc.team.deleteTeamPending.useMutation({ onSuccess: () => { toast({ diff --git a/apps/web/src/components/(teams)/tables/pending-user-teams-data-table.tsx b/apps/web/src/components/(teams)/tables/pending-user-teams-data-table.tsx index a889c1838..b656308f7 100644 --- a/apps/web/src/components/(teams)/tables/pending-user-teams-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/pending-user-teams-data-table.tsx @@ -31,14 +31,14 @@ export const PendingUserTeamsDataTable = () => { const [checkoutPendingTeamId, setCheckoutPendingTeamId] = useState(null); - const { data, isLoading, isInitialLoading, isLoadingError } = trpc.team.findTeamsPending.useQuery( + const { data, isLoading, isLoadingError } = trpc.team.findTeamsPending.useQuery( { query: parsedSearchParams.query, page: parsedSearchParams.page, perPage: parsedSearchParams.perPage, }, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); @@ -112,7 +112,7 @@ export const PendingUserTeamsDataTable = () => { enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx b/apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx index 000f2f219..81f5c1c49 100644 --- a/apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx @@ -24,12 +24,12 @@ export type TeamBillingInvoicesDataTableProps = { export const TeamBillingInvoicesDataTable = ({ teamId }: TeamBillingInvoicesDataTableProps) => { const { _ } = useLingui(); - const { data, isLoading, isInitialLoading, isLoadingError } = trpc.team.findTeamInvoices.useQuery( + const { data, isLoading, isLoadingError } = trpc.team.findTeamInvoices.useQuery( { teamId, }, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); @@ -127,7 +127,7 @@ export const TeamBillingInvoicesDataTable = ({ teamId }: TeamBillingInvoicesData enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx b/apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx index fe0843865..8a57be81c 100644 --- a/apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx @@ -40,18 +40,17 @@ export const TeamMemberInvitesDataTable = ({ teamId }: TeamMemberInvitesDataTabl const parsedSearchParams = ZUrlSearchParamsSchema.parse(Object.fromEntries(searchParams ?? [])); - const { data, isLoading, isInitialLoading, isLoadingError } = - trpc.team.findTeamMemberInvites.useQuery( - { - teamId, - query: parsedSearchParams.query, - page: parsedSearchParams.page, - perPage: parsedSearchParams.perPage, - }, - { - keepPreviousData: true, - }, - ); + const { data, isLoading, isLoadingError } = trpc.team.findTeamMemberInvites.useQuery( + { + teamId, + query: parsedSearchParams.query, + page: parsedSearchParams.page, + perPage: parsedSearchParams.perPage, + }, + { + placeholderData: (previousData) => previousData, + }, + ); const { mutateAsync: resendTeamMemberInvitation } = trpc.team.resendTeamMemberInvitation.useMutation({ @@ -182,7 +181,7 @@ export const TeamMemberInvitesDataTable = ({ teamId }: TeamMemberInvitesDataTabl enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/components/(teams)/tables/team-members-data-table.tsx b/apps/web/src/components/(teams)/tables/team-members-data-table.tsx index 91997d7fa..e92efb727 100644 --- a/apps/web/src/components/(teams)/tables/team-members-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/team-members-data-table.tsx @@ -52,7 +52,7 @@ export const TeamMembersDataTable = ({ const parsedSearchParams = ZUrlSearchParamsSchema.parse(Object.fromEntries(searchParams ?? [])); - const { data, isLoading, isInitialLoading, isLoadingError } = trpc.team.findTeamMembers.useQuery( + const { data, isLoading, isLoadingError } = trpc.team.findTeamMembers.useQuery( { teamId, query: parsedSearchParams.query, @@ -60,7 +60,7 @@ export const TeamMembersDataTable = ({ perPage: parsedSearchParams.perPage, }, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); @@ -185,7 +185,7 @@ export const TeamMembersDataTable = ({ enable: isLoadingError, }} skeleton={{ - enable: isLoading && isInitialLoading, + enable: isLoading, rows: 3, component: ( <> diff --git a/apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx b/apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx index 904c8bb3f..bac1dbf44 100644 --- a/apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx +++ b/apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx @@ -32,7 +32,7 @@ export const UserSettingsTeamsPageDataTable = () => { const { data } = trpc.team.findTeamsPending.useQuery( {}, { - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); diff --git a/apps/web/src/components/(teams)/team-billing-portal-button.tsx b/apps/web/src/components/(teams)/team-billing-portal-button.tsx index f5984fb2c..7ef4aad29 100644 --- a/apps/web/src/components/(teams)/team-billing-portal-button.tsx +++ b/apps/web/src/components/(teams)/team-billing-portal-button.tsx @@ -16,7 +16,7 @@ export const TeamBillingPortalButton = ({ buttonProps, teamId }: TeamBillingPort const { _ } = useLingui(); const { toast } = useToast(); - const { mutateAsync: createBillingPortal, isLoading } = + const { mutateAsync: createBillingPortal, isPending } = trpc.team.createBillingPortal.useMutation(); const handleCreatePortal = async () => { @@ -37,7 +37,7 @@ export const TeamBillingPortalButton = ({ buttonProps, teamId }: TeamBillingPort }; return ( - ); diff --git a/apps/web/src/components/document/document-history-sheet.tsx b/apps/web/src/components/document/document-history-sheet.tsx index 8ee2098b6..8bda3a424 100644 --- a/apps/web/src/components/document/document-history-sheet.tsx +++ b/apps/web/src/components/document/document-history-sheet.tsx @@ -55,7 +55,7 @@ export const DocumentHistorySheet = ({ }, { getNextPageParam: (lastPage) => lastPage.nextCursor, - keepPreviousData: true, + placeholderData: (previousData) => previousData, }, ); diff --git a/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx b/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx index 6be2c814e..5965db3d8 100644 --- a/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx +++ b/apps/web/src/components/forms/2fa/enable-authenticator-app-dialog.tsx @@ -61,7 +61,7 @@ export const EnableAuthenticatorAppDialog = ({ onSuccess }: EnableAuthenticatorA const { mutateAsync: setup2FA, data: setup2FAData, - isLoading: isSettingUp2FA, + isPending: isSettingUp2FA, } = trpc.twoFactorAuthentication.setup.useMutation({ onError: () => { toast({ diff --git a/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx b/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx index f1f1f3a4e..588468c75 100644 --- a/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx +++ b/apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx @@ -47,7 +47,7 @@ export const ViewRecoveryCodesDialog = () => { const { data: recoveryCodes, mutate, - isLoading, + isPending, error, } = trpc.twoFactorAuthentication.viewRecoveryCodes.useMutation(); @@ -121,7 +121,7 @@ export const ViewRecoveryCodesDialog = () => { -
+
{ - diff --git a/apps/web/src/components/forms/profile.tsx b/apps/web/src/components/forms/profile.tsx index dee901e9f..3d70cf672 100644 --- a/apps/web/src/components/forms/profile.tsx +++ b/apps/web/src/components/forms/profile.tsx @@ -9,7 +9,6 @@ import { useForm } from 'react-hook-form'; import { z } from 'zod'; import type { User } from '@documenso/prisma/client'; -import { TRPCClientError } from '@documenso/trpc/client'; import { trpc } from '@documenso/trpc/react'; import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; @@ -76,21 +75,13 @@ export const ProfileForm = ({ className, user }: ProfileFormProps) => { router.refresh(); } catch (err) { - if (err instanceof TRPCClientError && err.data?.code === 'BAD_REQUEST') { - toast({ - title: _(msg`An error occurred`), - description: err.message, - variant: 'destructive', - }); - } else { - toast({ - title: _(msg`An unknown error occurred`), - description: _( - msg`We encountered an unknown error while attempting to sign you In. Please try again later.`, - ), - variant: 'destructive', - }); - } + toast({ + title: _(msg`An unknown error occurred`), + description: _( + msg`We encountered an unknown error while attempting update your profile. Please try again later.`, + ), + variant: 'destructive', + }); } }; diff --git a/apps/web/src/components/forms/token.tsx b/apps/web/src/components/forms/token.tsx index a28aa21e0..fe2985c52 100644 --- a/apps/web/src/components/forms/token.tsx +++ b/apps/web/src/components/forms/token.tsx @@ -9,11 +9,12 @@ import { Trans, msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; import { AnimatePresence, motion } from 'framer-motion'; import { useForm } from 'react-hook-form'; +import { match } from 'ts-pattern'; import { z } from 'zod'; import { useCopyToClipboard } from '@documenso/lib/client-only/hooks/use-copy-to-clipboard'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import type { ApiToken } from '@documenso/prisma/client'; -import { TRPCClientError } from '@documenso/trpc/client'; import { trpc } from '@documenso/trpc/react'; import type { TCreateTokenMutationSchema } from '@documenso/trpc/server/api-token-router/schema'; import { ZCreateTokenMutationSchema } from '@documenso/trpc/server/api-token-router/schema'; @@ -131,23 +132,22 @@ export const ApiTokenForm = ({ className, teamId, tokens }: ApiTokenFormProps) = form.reset(); startTransition(() => router.refresh()); - } catch (error) { - if (error instanceof TRPCClientError && error.data?.code === 'BAD_REQUEST') { - toast({ - title: _(msg`An error occurred`), - description: error.message, - variant: 'destructive', - }); - } else { - toast({ - title: _(msg`An unknown error occurred`), - description: _( - msg`We encountered an unknown error while attempting create the new token. Please try again later.`, - ), - variant: 'destructive', - duration: 5000, - }); - } + } catch (err) { + const error = AppError.parseError(err); + + const errorMessage = match(error.code) + .with( + AppErrorCode.UNAUTHORIZED, + () => msg`You do not have permission to create a token for this team`, + ) + .otherwise(() => msg`Something went wrong. Please try again later.`); + + toast({ + title: _(msg`An error occurred`), + description: _(errorMessage), + variant: 'destructive', + duration: 5000, + }); } }; diff --git a/apps/web/src/components/templates/manage-public-template-dialog.tsx b/apps/web/src/components/templates/manage-public-template-dialog.tsx index 405ee48f7..67ac27782 100644 --- a/apps/web/src/components/templates/manage-public-template-dialog.tsx +++ b/apps/web/src/components/templates/manage-public-template-dialog.tsx @@ -116,7 +116,7 @@ export const ManagePublicTemplateDialog = ({ }, }); - const { mutateAsync: updateTemplateSettings, isLoading: isUpdatingTemplateSettings } = + const { mutateAsync: updateTemplateSettings, isPending: isUpdatingTemplateSettings } = trpc.template.updateTemplate.useMutation(); const setTemplateToPrivate = async (templateId: number) => { diff --git a/apps/web/src/pages/api/v2-beta/[...trpc].ts b/apps/web/src/pages/api/v2-beta/[...trpc].ts index db99e4739..41d866a8f 100644 --- a/apps/web/src/pages/api/v2-beta/[...trpc].ts +++ b/apps/web/src/pages/api/v2-beta/[...trpc].ts @@ -1,7 +1,4 @@ -import type { NextApiRequest, NextApiResponse } from 'next'; - -import { createOpenApiNextHandler } from 'trpc-openapi'; -import type { CreateOpenApiNextHandlerOptions } from 'trpc-openapi/dist/adapters/next'; +import { createOpenApiNextHandler } from 'trpc-to-openapi'; import { AppError, @@ -9,7 +6,6 @@ import { genericErrorCodeToTrpcErrorCodeMap, } from '@documenso/lib/errors/app-error'; import { buildLogger } from '@documenso/lib/utils/logger'; -import type { TRPCError } from '@documenso/trpc/server'; import { createTrpcContext } from '@documenso/trpc/server/context'; import { appRouter } from '@documenso/trpc/server/router'; @@ -17,9 +13,8 @@ const logger = buildLogger(); export default createOpenApiNextHandler({ router: appRouter, - createContext: async ({ req, res }: { req: NextApiRequest; res: NextApiResponse }) => - createTrpcContext({ req, res, requestSource: 'apiV2' }), - onError: ({ error, path }: { error: TRPCError; path?: string }) => { + createContext: async ({ req, res }) => createTrpcContext({ req, res, requestSource: 'apiV2' }), + onError: ({ error, path }) => { // Always log the error for now. console.error(error.message); @@ -47,7 +42,7 @@ export default createOpenApiNextHandler({ } }, // Not sure why we need to do this since we handle it in errorFormatter which runs after this. - responseMeta: (opts: CreateOpenApiNextHandlerOptions['responseMeta']) => { + responseMeta: (opts) => { if (opts.errors[0]?.cause instanceof AppError) { const appError = AppError.parseError(opts.errors[0].cause); @@ -57,6 +52,8 @@ export default createOpenApiNextHandler({ status: httpStatus, }; } + + return {}; }, }); diff --git a/package-lock.json b/package-lock.json index 0b91a723d..bf866ef97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -121,7 +121,6 @@ "@lingui/react": "^4.11.3", "@simplewebauthn/browser": "^9.0.1", "@simplewebauthn/server": "^9.0.3", - "@tanstack/react-query": "^4.29.5", "colord": "^2.9.3", "cookie-es": "^1.0.0", "formidable": "^2.1.1", @@ -150,7 +149,7 @@ "recharts": "^2.7.2", "remeda": "^2.17.3", "sharp": "0.32.6", - "trpc-openapi": "^1.2.0", + "trpc-to-openapi": "2.0.4", "ts-pattern": "^5.0.5", "ua-parser-js": "^1.0.37", "uqr": "^0.1.2", @@ -2356,6 +2355,17 @@ "tslib": "^2.4.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emotion/is-prop-valid": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", @@ -3039,6 +3049,386 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "peer": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@inquirer/figures": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.3.tgz", @@ -3145,17 +3535,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -8949,6 +9328,16 @@ "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", "license": "Apache-2.0" }, + "node_modules/@swc/helpers": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz", + "integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -8985,38 +9374,27 @@ } }, "node_modules/@tanstack/query-core": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", - "integrity": "sha512-DJSilV5+ytBP1FbFcEJovv4rnnm/CokuVvrBEtW/Va9DvuJ3HksbXUJEpI0aV1KtuL4ZoO9AVE6PyNLzF7tLeA==", + "version": "5.59.13", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.59.13.tgz", + "integrity": "sha512-Oou0bBu/P8+oYjXsJQ11j+gcpLAMpqW42UlokQYEz4dE7+hOtVO9rVuolJKgEccqzvyFzqX4/zZWY+R/v1wVsQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tanstack/react-query": { - "version": "4.36.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.36.1.tgz", - "integrity": "sha512-y7ySVHFyyQblPl3J3eQBWpXZkliroki3ARnBKsdJchlgt7yJLRDUcf4B8soufgiYt3pEQIkBWBx1N9/ZPIeUWw==", + "version": "5.59.15", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.59.15.tgz", + "integrity": "sha512-QbVlAkTI78wB4Mqgf2RDmgC0AOiJqer2c5k9STOOSXGv1S6ZkY37r/6UpE8DbQ2Du0ohsdoXgFNEyv+4eDoPEw==", "dependencies": { - "@tanstack/query-core": "4.36.1", - "use-sync-external-store": "^1.2.0" + "@tanstack/query-core": "5.59.13" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "react": "^18 || ^19" } }, "node_modules/@tanstack/react-table": { @@ -9673,60 +10051,45 @@ } }, "node_modules/@trpc/client": { - "version": "10.44.1", - "resolved": "https://registry.npmjs.org/@trpc/client/-/client-10.44.1.tgz", - "integrity": "sha512-vTWsykNcgz1LnwePVl2fKZnhvzP9N3GaaLYPkfGINo314ZOS0OBqe9x0ytB2LLUnRVTAAZ2WoONzARd8nHiqrA==", + "version": "11.0.0-rc.648", + "resolved": "https://registry.npmjs.org/@trpc/client/-/client-11.0.0-rc.648.tgz", + "integrity": "sha512-k4FfLKvJwbosUH8KYyZkC50RJHYtIyJECi5WhRXsvaf9a6lgrTlcA+osq815zYcAHo7wEgR9E9UdSTrpLdAQFQ==", "funding": [ "https://trpc.io/sponsor" ], + "license": "MIT", "peerDependencies": { - "@trpc/server": "10.44.1" - } - }, - "node_modules/@trpc/next": { - "version": "10.44.1", - "resolved": "https://registry.npmjs.org/@trpc/next/-/next-10.44.1.tgz", - "integrity": "sha512-ez2oYUzmaQ+pGch627sRBfeEk3h+UIwNicR8WjTAM54TPcdP5W9ZyWCyO5HZTEfjHgGixYM4tCIxewdKOWY9yA==", - "funding": [ - "https://trpc.io/sponsor" - ], - "dependencies": { - "react-ssr-prepass": "^1.5.0" - }, - "peerDependencies": { - "@tanstack/react-query": "^4.18.0", - "@trpc/client": "10.44.1", - "@trpc/react-query": "10.44.1", - "@trpc/server": "10.44.1", - "next": "*", - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "@trpc/server": "11.0.0-rc.648+77b4d8920", + "typescript": ">=5.6.2" } }, "node_modules/@trpc/react-query": { - "version": "10.44.1", - "resolved": "https://registry.npmjs.org/@trpc/react-query/-/react-query-10.44.1.tgz", - "integrity": "sha512-Sgi/v0YtdunOXjBRi7om9gILGkOCFYXPzn5KqLuEHiZw5dr5w4qGHFwCeMAvndZxmwfblJrl1tk2AznmsVu8MA==", + "version": "11.0.0-rc.648", + "resolved": "https://registry.npmjs.org/@trpc/react-query/-/react-query-11.0.0-rc.648.tgz", + "integrity": "sha512-U3H6o/aN3umEA2QNDGRsaJb6M7zrffor2NQl2UaHOiLBHuXZ3ISI2fJXay7e32s1l6z5F5PGMGwTQtUedzWI2w==", "funding": [ "https://trpc.io/sponsor" ], + "license": "MIT", "peerDependencies": { - "@tanstack/react-query": "^4.18.0", - "@trpc/client": "10.44.1", - "@trpc/server": "10.44.1", - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "@tanstack/react-query": "^5.59.15", + "@trpc/client": "11.0.0-rc.648+77b4d8920", + "@trpc/server": "11.0.0-rc.648+77b4d8920", + "react": ">=18.2.0", + "react-dom": ">=18.2.0", + "typescript": ">=5.6.2" } }, "node_modules/@trpc/server": { - "version": "10.44.1", - "resolved": "https://registry.npmjs.org/@trpc/server/-/server-10.44.1.tgz", - "integrity": "sha512-mF7B+K6LjuboX8I1RZgKE5GA/fJhsJ8tKGK2UBt3Bwik7hepEPb4NJgNr7vO6BK5IYwPdBLRLTctRw6XZx0sRg==", + "version": "11.0.0-rc.648", + "resolved": "https://registry.npmjs.org/@trpc/server/-/server-11.0.0-rc.648.tgz", + "integrity": "sha512-nKW7FNM+QZrY/CVGlX3hFNIdUvbw6pwSJ+HzEF8GIeSJDKLHK7Ke1QJGI2mRW6oF9dCKMBXfuLaYY2dXfjfn7Q==", "funding": [ "https://trpc.io/sponsor" ], - "engines": { - "node": ">=18.0.0" + "license": "MIT", + "peerDependencies": { + "typescript": ">=5.6.2" } }, "node_modules/@ts-rest/core": { @@ -9962,28 +10325,6 @@ "integrity": "sha512-y0M7sqzsnHB6cvAeTCBPrCQNQiZe8U4qdzf8uBVmOWYap5MMTN/gB2iEqrIqFiYcsyvP74GnGD5tgsHttielFw==", "dev": true }, - "node_modules/@types/eslint": { - "version": "8.56.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", - "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", - "dev": true, - "peer": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -10599,181 +10940,6 @@ "resolved": "https://registry.npmjs.org/@vvo/tzdb/-/tzdb-6.117.0.tgz", "integrity": "sha512-vZkfoag1kHqItK/zebxT0Fkt3R/zscjgD+Ib7kaAdum0Sz9psXDfVHPW1Benv91d02zPWlLIvZtjBmzX4a+6fw==" }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "peer": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true, - "peer": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dev": true, - "peer": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, - "peer": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, - "peer": true - }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", @@ -10797,18 +10963,6 @@ "node": ">=6.5" } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -10820,16 +10974,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -12409,16 +12553,6 @@ "node": ">=10" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", @@ -13417,17 +13551,6 @@ "simple-wcswidth": "^1.0.1" } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -14192,22 +14315,6 @@ "node": ">= 12" } }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "peer": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, "node_modules/dayjs": { "version": "1.11.10", "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", @@ -15061,13 +15168,6 @@ "safe-array-concat": "^1.0.1" } }, - "node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "dev": true, - "peer": true - }, "node_modules/es-set-tostringtag": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", @@ -16330,16 +16430,6 @@ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "dev": true }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/evt": { "version": "2.5.7", "resolved": "https://registry.npmjs.org/evt/-/evt-2.5.7.tgz", @@ -16902,14 +16992,6 @@ } } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", @@ -17378,13 +17460,6 @@ "node": ">= 6" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "peer": true - }, "node_modules/global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", @@ -19636,37 +19711,6 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jiti": { "version": "1.21.6", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", @@ -20510,16 +20554,6 @@ "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=6.11.5" - } - }, "node_modules/local-pkg": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", @@ -21521,14 +21555,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/merge-refs": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/merge-refs/-/merge-refs-1.2.2.tgz", @@ -21602,14 +21628,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micro": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/micro/-/micro-10.0.1.tgz", @@ -22338,17 +22356,6 @@ "node": ">=8.6" } }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -22818,17 +22825,11 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, "engines": { "node": ">= 0.6" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "peer": true - }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", @@ -23596,52 +23597,11 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/node-mocks-http": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/node-mocks-http/-/node-mocks-http-1.16.2.tgz", - "integrity": "sha512-2Sh6YItRp1oqewZNlck3LaFp5vbyW2u51HX2p1VLxQ9U/bG90XV8JY9O7Nk+HDd6OOn/oV3nA5Tx5k4Rki0qlg==", - "dependencies": { - "accepts": "^1.3.7", - "content-disposition": "^0.5.3", - "depd": "^1.1.0", - "fresh": "^0.5.2", - "merge-descriptors": "^1.0.1", - "methods": "^1.1.2", - "mime": "^1.3.4", - "parseurl": "^1.3.3", - "range-parser": "^1.2.0", - "type-is": "^1.6.18" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@types/express": "^4.17.21 || ^5.0.0", - "@types/node": "*" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - }, - "@types/node": { - "optional": true - } - } - }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, - "node_modules/nodemailer": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.7.tgz", - "integrity": "sha512-rUtR77ksqex/eZRLmQ21LKVH5nAAsVicAtAYudK7JgwenEDZ0UIQ1adUGqErz7sMkWYxWTTU1aeP2Jga6WQyJw==", - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/non-layered-tidy-tree-layout": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz", @@ -24313,11 +24273,6 @@ } } }, - "node_modules/openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==" - }, "node_modules/openapi3-ts": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-2.0.2.tgz", @@ -25072,14 +25027,6 @@ "url": "https://ko-fi.com/killymxi" } }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/partysocket": { "version": "0.0.17", "resolved": "https://registry.npmjs.org/partysocket/-/partysocket-0.0.17.tgz", @@ -26558,14 +26505,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/raw-body": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", @@ -27463,14 +27402,6 @@ "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-ssr-prepass": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/react-ssr-prepass/-/react-ssr-prepass-1.5.0.tgz", - "integrity": "sha512-yFNHrlVEReVYKsLI5lF05tZoHveA5pGzjFbFJY/3pOqqjGOmMmqx83N4hIjN2n6E1AOa+eQEUxs3CgRnPmT0RQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-style-singleton": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", @@ -29245,59 +29176,6 @@ "loose-envify": "^1.1.0" } }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, "node_modules/scroll-into-view-if-needed": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz", @@ -29397,16 +29275,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "peer": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -30674,18 +30542,6 @@ "react-dom": ">=16.8.0 <19" } }, - "node_modules/swagger-ui-react/node_modules/@types/react": { - "version": "18.2.48", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.48.tgz", - "integrity": "sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==", - "optional": true, - "peer": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, "node_modules/swagger-ui-react/node_modules/randexp": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz", @@ -30935,67 +30791,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/terser": { - "version": "5.31.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", - "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "peer": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "peer": true - }, "node_modules/text-decoder": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.0.tgz", @@ -31334,12 +31129,14 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/trpc-openapi": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/trpc-openapi/-/trpc-openapi-1.2.0.tgz", - "integrity": "sha512-pfYoCd/3KYXWXvUPZBKJw455OOwngKN/6SIcj7Yit19OMLJ+8yVZkEvGEeg5wUSwfsiTdRsKuvqkRPXVSwV7ew==", + "node_modules/trpc-to-openapi": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/trpc-to-openapi/-/trpc-to-openapi-2.0.4.tgz", + "integrity": "sha512-jhsTv2oOuZwyKXCSGTXPXRNE6ArT/ArdWTHgxROZRVyikUm/ImLszFzh4jV19J7OVu/6qRfmIihwE3ZY/ZdeVg==", + "license": "MIT", "workspaces": [ ".", + "examples/with-nextjs-appdir", "examples/with-nextjs", "examples/with-express", "examples/with-interop", @@ -31351,13 +31148,49 @@ "co-body": "^6.1.0", "h3": "^1.6.4", "lodash.clonedeep": "^4.5.0", - "node-mocks-http": "^1.12.2", - "openapi-types": "^12.1.1", - "zod-to-json-schema": "^3.21.1" + "openapi3-ts": "4.3.3", + "zod-openapi": "^2.19.0" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "4.6.1" }, "peerDependencies": { - "@trpc/server": "^10.0.0", - "zod": "^3.14.4" + "@trpc/server": "^11.0.0-rc.648", + "zod": "^3.23.8" + } + }, + "node_modules/trpc-to-openapi/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz", + "integrity": "sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/trpc-to-openapi/node_modules/openapi3-ts": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-4.3.3.tgz", + "integrity": "sha512-LKkzBGJcZ6wdvkKGMoSvpK+0cbN5Xc3XuYkJskO+vjEQWJgs1kgtyUk0pjf8KwPuysv323Er62F5P17XQl96Qg==", + "license": "MIT", + "dependencies": { + "yaml": "^2.4.5" + } + }, + "node_modules/trpc-to-openapi/node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" } }, "node_modules/ts-api-utils": { @@ -33395,102 +33228,6 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "node_modules/webpack": { - "version": "5.92.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz", - "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==", - "dev": true, - "peer": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", - "dev": true, - "peer": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/whatwg-fetch": { "version": "3.6.20", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", @@ -34026,12 +33763,16 @@ "zod": "^3.20.2" } }, - "node_modules/zod-to-json-schema": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz", - "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==", + "node_modules/zod-openapi": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/zod-openapi/-/zod-openapi-2.19.0.tgz", + "integrity": "sha512-OUAAyBDPPwZ9u61i4k/LieXUzP2re8kFjqdNh2AvHjsyi/aRNz9leDAtMGcSoSzUT5xUeQoACJufBI6FzzZyxA==", + "license": "MIT", + "engines": { + "node": ">=16.11" + }, "peerDependencies": { - "zod": "^3.24.1" + "zod": "^3.21.4" } }, "node_modules/zwitch": { @@ -35502,19 +35243,190 @@ "dependencies": { "@documenso/lib": "*", "@documenso/prisma": "*", - "@tanstack/react-query": "^4.32.0", - "@trpc/client": "^10.36.0", - "@trpc/next": "^10.36.0", - "@trpc/react-query": "^10.36.0", - "@trpc/server": "^10.36.0", + "@tanstack/react-query": "5.59.15", + "@trpc/client": "11.0.0-rc.648", + "@trpc/next": "11.0.0-rc.648", + "@trpc/react-query": "11.0.0-rc.648", + "@trpc/server": "11.0.0-rc.648", "@ts-rest/core": "^3.30.5", "@ts-rest/next": "^3.30.5", "luxon": "^3.4.0", "superjson": "^1.13.1", + "trpc-to-openapi": "2.0.4", "ts-pattern": "^5.0.5", "zod": "3.24.1" } }, + "packages/trpc/node_modules/@next/env": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.3.tgz", + "integrity": "sha512-t9Xy32pjNOvVn2AS+Utt6VmyrshbpfUMhIjFO60gI58deSo/KgLOp31XZ4O+kY/Is8WAGYwA5gR7kOb1eORDBA==", + "license": "MIT", + "peer": true + }, + "packages/trpc/node_modules/@next/swc-darwin-arm64": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.3.tgz", + "integrity": "sha512-s3Q/NOorCsLYdCKvQlWU+a+GeAd3C8Rb3L1YnetsgwXzhc3UTWrtQpB/3eCjFOdGUj5QmXfRak12uocd1ZiiQw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@next/swc-darwin-x64": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.3.tgz", + "integrity": "sha512-Zxl/TwyXVZPCFSf0u2BNj5sE0F2uR6iSKxWpq4Wlk/Sv9Ob6YCKByQTkV2y6BCic+fkabp9190hyrDdPA/dNrw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.3.tgz", + "integrity": "sha512-T5+gg2EwpsY3OoaLxUIofmMb7ohAUlcNZW0fPQ6YAutaWJaxt1Z1h+8zdl4FRIOr5ABAAhXtBcpkZNwUcKI2fw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@next/swc-linux-arm64-musl": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.3.tgz", + "integrity": "sha512-WkAk6R60mwDjH4lG/JBpb2xHl2/0Vj0ZRu1TIzWuOYfQ9tt9NFsIinI1Epma77JVgy81F32X/AeD+B2cBu/YQA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@next/swc-linux-x64-gnu": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.3.tgz", + "integrity": "sha512-gWL/Cta1aPVqIGgDb6nxkqy06DkwJ9gAnKORdHWX1QBbSZZB+biFYPFti8aKIQL7otCE1pjyPaXpFzGeG2OS2w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@next/swc-linux-x64-musl": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.3.tgz", + "integrity": "sha512-QQEMwFd8r7C0GxQS62Zcdy6GKx999I/rTO2ubdXEe+MlZk9ZiinsrjwoiBL5/57tfyjikgh6GOU2WRQVUej3UA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.3.tgz", + "integrity": "sha512-9TEp47AAd/ms9fPNgtgnT7F3M1Hf7koIYYWCMQ9neOwjbVWJsHZxrFbI3iEDJ8rf1TDGpmHbKxXf2IFpAvheIQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@next/swc-win32-x64-msvc": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.3.tgz", + "integrity": "sha512-VNAz+HN4OGgvZs6MOoVfnn41kBzT+M+tB+OK4cww6DNyWS6wKaDpaAm/qLeOUbnMh0oVx1+mg0uoYARF69dJyA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">= 10" + } + }, + "packages/trpc/node_modules/@trpc/next": { + "version": "11.0.0-rc.648", + "resolved": "https://registry.npmjs.org/@trpc/next/-/next-11.0.0-rc.648.tgz", + "integrity": "sha512-RgsiznMCc1xpMAVhp8WtgkFO7KyvRWqlqqb2qADCgLuAIjENjGoSEL9BZWiqCKLVrmQYsC42plUUj5QbwMPFuQ==", + "funding": [ + "https://trpc.io/sponsor" + ], + "license": "MIT", + "peerDependencies": { + "@tanstack/react-query": "^5.59.15", + "@trpc/client": "11.0.0-rc.648+77b4d8920", + "@trpc/react-query": "11.0.0-rc.648+77b4d8920", + "@trpc/server": "11.0.0-rc.648+77b4d8920", + "next": "15.0.3", + "react": ">=16.8.0", + "react-dom": ">=16.8.0", + "typescript": ">=5.6.2" + }, + "peerDependenciesMeta": { + "@tanstack/react-query": { + "optional": true + }, + "@trpc/react-query": { + "optional": true + } + } + }, "packages/trpc/node_modules/@ts-rest/next": { "version": "3.30.5", "resolved": "https://registry.npmjs.org/@ts-rest/next/-/next-3.30.5.tgz", @@ -35530,6 +35442,169 @@ } } }, + "packages/trpc/node_modules/next": { + "version": "15.0.3", + "resolved": "https://registry.npmjs.org/next/-/next-15.0.3.tgz", + "integrity": "sha512-ontCbCRKJUIoivAdGB34yCaOcPgYXr9AAkV/IwqFfWWTXEPUgLYkSkqBhIk9KK7gGmgjc64B+RdoeIDM13Irnw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@next/env": "15.0.3", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.13", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.0.3", + "@next/swc-darwin-x64": "15.0.3", + "@next/swc-linux-arm64-gnu": "15.0.3", + "@next/swc-linux-arm64-musl": "15.0.3", + "@next/swc-linux-x64-gnu": "15.0.3", + "@next/swc-linux-x64-musl": "15.0.3", + "@next/swc-win32-arm64-msvc": "15.0.3", + "@next/swc-win32-x64-msvc": "15.0.3", + "sharp": "^0.33.5" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-66855b96-20241106", + "react-dom": "^18.2.0 || 19.0.0-rc-66855b96-20241106", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "packages/trpc/node_modules/next/node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "peer": true, + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "packages/trpc/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "packages/trpc/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "optional": true, + "peer": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "packages/trpc/node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "peer": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, "packages/tsconfig": { "name": "@documenso/tsconfig", "version": "0.0.0", @@ -35640,6 +35715,21 @@ "engines": { "node": ">=6" } + }, + "packages/trpc/node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.6", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.6.tgz", + "integrity": "sha512-hNukAxq7hu4o5/UjPp5jqoBEtrpCbOmnUqZSKNJG8GrUVzfq0ucdhQFVrHcLRMvQcwqqDh1a5AJN9ORnNDpgBQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } } } } diff --git a/package.json b/package.json index 015d079e4..b9be39ea7 100644 --- a/package.json +++ b/package.json @@ -65,13 +65,13 @@ "dependencies": { "@documenso/pdf-sign": "^0.1.0", "@documenso/prisma": "^0.0.0", - "typescript": "5.6.2", "@lingui/core": "^4.11.3", "inngest-cli": "^0.29.1", "luxon": "^3.5.0", "mupdf": "^1.0.0", "next-runtime-env": "^3.2.0", "react": "^18", + "typescript": "5.6.2", "zod": "3.24.1" }, "overrides": { @@ -81,4 +81,4 @@ "trigger.dev": { "endpointId": "documenso-app" } -} \ No newline at end of file +} diff --git a/packages/lib/client-only/hooks/use-copy-share-link.ts b/packages/lib/client-only/hooks/use-copy-share-link.ts index cff552e8f..4638e4e49 100644 --- a/packages/lib/client-only/hooks/use-copy-share-link.ts +++ b/packages/lib/client-only/hooks/use-copy-share-link.ts @@ -11,7 +11,7 @@ export type UseCopyShareLinkOptions = { export function useCopyShareLink({ onSuccess, onError }: UseCopyShareLinkOptions) { const [, copyToClipboard] = useCopyToClipboard(); - const { mutateAsync: createOrGetShareLink, isLoading: isCreatingShareLink } = + const { mutateAsync: createOrGetShareLink, isPending: isCreatingShareLink } = trpc.shareLink.createOrGetShareLink.useMutation(); /** diff --git a/packages/lib/errors/app-error.ts b/packages/lib/errors/app-error.ts index 548ba8388..06184a6a5 100644 --- a/packages/lib/errors/app-error.ts +++ b/packages/lib/errors/app-error.ts @@ -1,9 +1,6 @@ -import type { TRPCError } from '@trpc/server'; import { match } from 'ts-pattern'; import { z } from 'zod'; -import { TRPCClientError } from '@documenso/trpc/client'; - /** * Generic application error codes. */ @@ -24,24 +21,22 @@ export enum AppErrorCode { 'PREMIUM_PROFILE_URL' = 'PREMIUM_PROFILE_URL', } -export const genericErrorCodeToTrpcErrorCodeMap: Record< - string, - { code: TRPCError['code']; status: number } -> = { - [AppErrorCode.ALREADY_EXISTS]: { code: 'BAD_REQUEST', status: 400 }, - [AppErrorCode.EXPIRED_CODE]: { code: 'BAD_REQUEST', status: 400 }, - [AppErrorCode.INVALID_BODY]: { code: 'BAD_REQUEST', status: 400 }, - [AppErrorCode.INVALID_REQUEST]: { code: 'BAD_REQUEST', status: 400 }, - [AppErrorCode.NOT_FOUND]: { code: 'NOT_FOUND', status: 404 }, - [AppErrorCode.NOT_SETUP]: { code: 'BAD_REQUEST', status: 400 }, - [AppErrorCode.UNAUTHORIZED]: { code: 'UNAUTHORIZED', status: 401 }, - [AppErrorCode.UNKNOWN_ERROR]: { code: 'INTERNAL_SERVER_ERROR', status: 500 }, - [AppErrorCode.RETRY_EXCEPTION]: { code: 'INTERNAL_SERVER_ERROR', status: 500 }, - [AppErrorCode.SCHEMA_FAILED]: { code: 'INTERNAL_SERVER_ERROR', status: 500 }, - [AppErrorCode.TOO_MANY_REQUESTS]: { code: 'TOO_MANY_REQUESTS', status: 429 }, - [AppErrorCode.PROFILE_URL_TAKEN]: { code: 'BAD_REQUEST', status: 400 }, - [AppErrorCode.PREMIUM_PROFILE_URL]: { code: 'BAD_REQUEST', status: 400 }, -}; +export const genericErrorCodeToTrpcErrorCodeMap: Record = + { + [AppErrorCode.ALREADY_EXISTS]: { code: 'BAD_REQUEST', status: 400 }, + [AppErrorCode.EXPIRED_CODE]: { code: 'BAD_REQUEST', status: 400 }, + [AppErrorCode.INVALID_BODY]: { code: 'BAD_REQUEST', status: 400 }, + [AppErrorCode.INVALID_REQUEST]: { code: 'BAD_REQUEST', status: 400 }, + [AppErrorCode.NOT_FOUND]: { code: 'NOT_FOUND', status: 404 }, + [AppErrorCode.NOT_SETUP]: { code: 'BAD_REQUEST', status: 400 }, + [AppErrorCode.UNAUTHORIZED]: { code: 'UNAUTHORIZED', status: 401 }, + [AppErrorCode.UNKNOWN_ERROR]: { code: 'INTERNAL_SERVER_ERROR', status: 500 }, + [AppErrorCode.RETRY_EXCEPTION]: { code: 'INTERNAL_SERVER_ERROR', status: 500 }, + [AppErrorCode.SCHEMA_FAILED]: { code: 'INTERNAL_SERVER_ERROR', status: 500 }, + [AppErrorCode.TOO_MANY_REQUESTS]: { code: 'TOO_MANY_REQUESTS', status: 429 }, + [AppErrorCode.PROFILE_URL_TAKEN]: { code: 'BAD_REQUEST', status: 400 }, + [AppErrorCode.PREMIUM_PROFILE_URL]: { code: 'BAD_REQUEST', status: 400 }, + }; export const ZAppErrorJsonSchema = z.object({ code: z.string(), @@ -87,6 +82,8 @@ export class AppError extends Error { */ statusCode?: number; + name = 'AppError'; + /** * Create a new AppError. * @@ -107,17 +104,18 @@ export class AppError extends Error { * * @param error An unknown type. */ - static parseError(error: unknown): AppError { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + static parseError(error: any): AppError { if (error instanceof AppError) { return error; } // Handle TRPC errors. - if (error instanceof TRPCClientError) { + if (error?.name === 'TRPCClientError') { const parsedJsonError = AppError.parseFromJSON(error.data?.appError); const fallbackError = new AppError(AppErrorCode.UNKNOWN_ERROR, { - message: error.message, + message: error?.message, }); return parsedJsonError || fallbackError; diff --git a/packages/lib/server-only/document/reject-document-with-token.ts b/packages/lib/server-only/document/reject-document-with-token.ts index 3f6ab856c..004211d4f 100644 --- a/packages/lib/server-only/document/reject-document-with-token.ts +++ b/packages/lib/server-only/document/reject-document-with-token.ts @@ -1,10 +1,10 @@ import { SigningStatus } from '@prisma/client'; -import { TRPCError } from '@trpc/server'; import { jobs } from '@documenso/lib/jobs/client'; import { prisma } from '@documenso/prisma'; import { WebhookTriggerEvents } from '@documenso/prisma/client'; +import { AppError, AppErrorCode } from '../../errors/app-error'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import { ZWebhookDocumentSchema, @@ -47,8 +47,7 @@ export async function rejectDocumentWithToken({ const document = recipient?.document; if (!recipient || !document) { - throw new TRPCError({ - code: 'NOT_FOUND', + throw new AppError(AppErrorCode.NOT_FOUND, { message: 'Document or recipient not found', }); } diff --git a/packages/lib/server-only/document/send-delete-email.ts b/packages/lib/server-only/document/send-delete-email.ts index 1a8514993..d92d9d263 100644 --- a/packages/lib/server-only/document/send-delete-email.ts +++ b/packages/lib/server-only/document/send-delete-email.ts @@ -8,6 +8,7 @@ import { prisma } from '@documenso/prisma'; import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; +import { AppError, AppErrorCode } from '../../errors/app-error'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; import { renderEmailWithI18N } from '../../utils/render-email-with-i18n'; import { teamGlobalSettingsToBranding } from '../../utils/team-global-settings-to-branding'; @@ -34,7 +35,9 @@ export const sendDeleteEmail = async ({ documentId, reason }: SendDeleteEmailOpt }); if (!document) { - throw new Error('Document not found'); + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Document not found', + }); } const isDocumentDeletedEmailEnabled = extractDerivedDocumentEmailSettings( diff --git a/packages/lib/server-only/document/super-delete-document.ts b/packages/lib/server-only/document/super-delete-document.ts index 5752a2bdb..c427ab724 100644 --- a/packages/lib/server-only/document/super-delete-document.ts +++ b/packages/lib/server-only/document/super-delete-document.ts @@ -12,6 +12,7 @@ import { DocumentStatus, SendStatus } from '@documenso/prisma/client'; import { getI18nInstance } from '../../client-only/providers/i18n.server'; import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app'; import { FROM_ADDRESS, FROM_NAME } from '../../constants/email'; +import { AppError, AppErrorCode } from '../../errors/app-error'; import { DOCUMENT_AUDIT_LOG_TYPE } from '../../types/document-audit-logs'; import { extractDerivedDocumentEmailSettings } from '../../types/document-email'; import type { RequestMetadata } from '../../universal/extract-request-metadata'; @@ -42,7 +43,9 @@ export const superDeleteDocument = async ({ id, requestMetadata }: SuperDeleteDo }); if (!document) { - throw new Error('Document not found'); + throw new AppError(AppErrorCode.NOT_FOUND, { + message: 'Document not found', + }); } const { status, user } = document; diff --git a/packages/lib/server-only/public-api/create-api-token.ts b/packages/lib/server-only/public-api/create-api-token.ts index 3d54eb26d..e40dccb0c 100644 --- a/packages/lib/server-only/public-api/create-api-token.ts +++ b/packages/lib/server-only/public-api/create-api-token.ts @@ -6,6 +6,7 @@ import { TeamMemberRole } from '@documenso/prisma/client'; // temporary choice for testing only import * as timeConstants from '../../constants/time'; +import { AppError, AppErrorCode } from '../../errors/app-error'; import { alphaid } from '../../universal/id'; import { hashString } from '../auth/hash'; @@ -42,7 +43,9 @@ export const createApiToken = async ({ }); if (!member) { - throw new Error('You do not have permission to create a token for this team'); + throw new AppError(AppErrorCode.UNAUTHORIZED, { + message: 'You do not have permission to create a token for this team', + }); } } @@ -56,10 +59,6 @@ export const createApiToken = async ({ }, }); - if (!storedToken) { - throw new Error('Failed to create the API token'); - } - return { id: storedToken.id, token: apiToken, diff --git a/packages/lib/server-only/user/delete-user.ts b/packages/lib/server-only/user/delete-user.ts index 71f579c26..7748f9a6d 100644 --- a/packages/lib/server-only/user/delete-user.ts +++ b/packages/lib/server-only/user/delete-user.ts @@ -1,6 +1,7 @@ import { prisma } from '@documenso/prisma'; import { DocumentStatus } from '@documenso/prisma/client'; +import { AppError, AppErrorCode } from '../../errors/app-error'; import { deletedAccountServiceAccount } from './service-accounts/deleted-account'; export type DeleteUserOptions = { @@ -15,7 +16,9 @@ export const deleteUser = async ({ id }: DeleteUserOptions) => { }); if (!user) { - throw new Error(`User with ID ${id} not found`); + throw new AppError(AppErrorCode.NOT_FOUND, { + message: `User with ID ${id} not found`, + }); } const serviceAccount = await deletedAccountServiceAccount(); diff --git a/packages/lib/translations/de/web.po b/packages/lib/translations/de/web.po index 40416c29c..03a5f1893 100644 --- a/packages/lib/translations/de/web.po +++ b/packages/lib/translations/de/web.po @@ -108,7 +108,7 @@ msgstr "{0} ist dem Team {teamName} bei Documenso beigetreten" msgid "{0} left the team {teamName} on Documenso" msgstr "{0} hat das Team {teamName} bei Documenso verlassen" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:150 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:145 msgid "{0} of {1} documents remaining this month." msgstr "{0} von {1} Dokumenten verbleibend in diesem Monat." @@ -492,7 +492,7 @@ msgstr "Ein Mittel, um Dokumente für Ihre Unterlagen zu drucken oder herunterzu msgid "A new member has joined your team" msgstr "Ein neues Mitglied ist deinem Team beigetreten" -#: apps/web/src/components/forms/token.tsx:127 +#: apps/web/src/components/forms/token.tsx:128 msgid "A new token was created successfully." msgstr "Ein neuer Token wurde erfolgreich erstellt." @@ -595,7 +595,7 @@ msgstr "Team-Einladung akzeptiert" msgid "Account Authentication" msgstr "Kontowauthentifizierung" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:50 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:47 msgid "Account deleted" msgstr "Konto gelöscht" @@ -617,19 +617,19 @@ msgid "Acknowledgment" msgstr "Bestätigung" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:107 -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:97 #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:117 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:159 -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:116 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:115 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:46 msgid "Action" msgstr "Aktion" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:175 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:131 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:140 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:130 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:139 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:116 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:125 msgid "Actions" @@ -868,16 +868,12 @@ msgstr "Eine E-Mail mit einer Einladung wird an jedes Mitglied gesendet." msgid "An email requesting the transfer of this team has been sent." msgstr "Eine E-Mail, in der die Übertragung dieses Teams angefordert wird, wurde gesendet." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:60 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:83 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:59 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:100 #: apps/web/src/components/forms/avatar-image.tsx:122 #: apps/web/src/components/forms/password.tsx:92 -#: apps/web/src/components/forms/profile.tsx:81 #: apps/web/src/components/forms/reset-password.tsx:95 #: apps/web/src/components/forms/signup.tsx:112 -#: apps/web/src/components/forms/token.tsx:137 +#: apps/web/src/components/forms/token.tsx:146 #: apps/web/src/components/forms/v2/signup.tsx:166 msgid "An error occurred" msgstr "Ein Fehler ist aufgetreten" @@ -907,6 +903,10 @@ msgstr "Ein Fehler ist aufgetreten, während das Dokument aus der Vorlage erstel msgid "An error occurred while creating the webhook. Please try again." msgstr "Ein Fehler ist aufgetreten, während der Webhook erstellt wurde. Bitte versuchen Sie es erneut." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:63 +msgid "An error occurred while deleting the user." +msgstr "" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:120 msgid "An error occurred while disabling direct link signing." msgstr "Ein Fehler ist aufgetreten, während das direkte Links-Signieren deaktiviert wurde." @@ -1007,13 +1007,12 @@ msgstr "Ein Fehler ist aufgetreten, während die Unterschrift aktualisiert wurde msgid "An error occurred while updating your profile." msgstr "Ein Fehler ist aufgetreten, während dein Profil aktualisiert wurde." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:117 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:108 msgid "An error occurred while uploading your document." msgstr "Ein Fehler ist aufgetreten, während dein Dokument hochgeladen wurde." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:66 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:89 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:65 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:58 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:81 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:55 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:54 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:301 @@ -1030,7 +1029,7 @@ msgstr "Ein Fehler ist aufgetreten, während dein Dokument hochgeladen wurde." #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:100 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:93 #: apps/web/src/components/forms/avatar-image.tsx:94 -#: apps/web/src/components/forms/profile.tsx:87 +#: apps/web/src/components/forms/profile.tsx:79 #: apps/web/src/components/forms/public-profile-claim-dialog.tsx:113 #: apps/web/src/components/forms/public-profile-form.tsx:104 #: apps/web/src/components/forms/signin.tsx:249 @@ -1040,7 +1039,6 @@ msgstr "Ein Fehler ist aufgetreten, während dein Dokument hochgeladen wurde." #: apps/web/src/components/forms/signin.tsx:302 #: apps/web/src/components/forms/signup.tsx:124 #: apps/web/src/components/forms/signup.tsx:138 -#: apps/web/src/components/forms/token.tsx:143 #: apps/web/src/components/forms/v2/signup.tsx:187 #: apps/web/src/components/forms/v2/signup.tsx:201 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:140 @@ -1052,11 +1050,11 @@ msgstr "Es ist ein unbekannter Fehler aufgetreten" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Alle Zahlungsmethoden, die mit diesem Team verbunden sind, bleiben diesem Team zugeordnet. Bitte kontaktiere uns, wenn du diese Informationen aktualisieren möchtest." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:220 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:219 msgid "Any Source" msgstr "Jede Quelle" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:199 msgid "Any Status" msgstr "Jeder Status" @@ -1169,7 +1167,7 @@ msgstr "Zurück" msgid "Back to Documents" msgstr "Zurück zu Dokumenten" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:146 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:137 msgid "Background Color" msgstr "Hintergrundfarbe" @@ -1182,7 +1180,7 @@ msgstr "Backup-Code" msgid "Backup codes" msgstr "Backup-Codes" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:73 msgid "Banner Updated" msgstr "Banner aktualisiert" @@ -1219,7 +1217,7 @@ msgstr "Markenpräferenzen" msgid "Branding preferences updated" msgstr "Markenpräferenzen aktualisiert" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:97 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:96 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:48 msgid "Browser" msgstr "Browser" @@ -1461,7 +1459,7 @@ msgstr "Unterzeichnung abschließen" msgid "Complete Viewing" msgstr "Betrachten abschließen" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:203 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:202 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:77 #: apps/web/src/components/formatter/document-status.tsx:28 #: packages/email/template-components/template-document-completed.tsx:35 @@ -1544,7 +1542,7 @@ msgstr "Zustimmung zu elektronischen Transaktionen" msgid "Contact Information" msgstr "Kontaktinformationen" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:180 msgid "Content" msgstr "Inhalt" @@ -1742,7 +1740,7 @@ msgstr "Erstellen Sie Ihr Konto und beginnen Sie mit dem modernen Dokumentensign #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:36 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:48 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:104 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:103 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:272 @@ -1786,7 +1784,7 @@ msgstr "Täglich" msgid "Dark Mode" msgstr "Dunkelmodus" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:68 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:67 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:148 #: packages/ui/primitives/document-flow/add-fields.tsx:945 #: packages/ui/primitives/document-flow/types.ts:53 @@ -1851,25 +1849,25 @@ msgstr "löschen {0}" msgid "delete {teamName}" msgstr "löschen {teamName}" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:136 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:133 msgid "Delete account" msgstr "Konto löschen" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:97 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:104 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:94 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:101 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:86 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:93 msgid "Delete Account" msgstr "Konto löschen" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:125 msgid "Delete document" msgstr "Dokument löschen" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:85 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:98 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:105 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:75 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:95 msgid "Delete Document" msgstr "Dokument löschen" @@ -1886,11 +1884,11 @@ msgstr "Team löschen" msgid "Delete team member" msgstr "Teammitglied löschen" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:78 msgid "Delete the document. This action is irreversible so proceed with caution." msgstr "Löschen Sie das Dokument. Diese Aktion ist irreversibel, daher seien Sie vorsichtig." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:86 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:83 msgid "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." msgstr "Löschen Sie das Benutzerkonto und seinen gesamten Inhalt. Diese Aktion ist irreversibel und wird das Abonnement kündigen, seien Sie also vorsichtig." @@ -1915,7 +1913,7 @@ msgstr "Konto wird gelöscht..." msgid "Details" msgstr "Einzelheiten" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:73 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:72 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:244 msgid "Device" msgstr "Gerät" @@ -1934,8 +1932,8 @@ msgstr "Direkter Link" msgid "Direct link" msgstr "Direkter Link" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:155 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:226 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:154 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 msgid "Direct Link" msgstr "Direkter Link" @@ -2060,7 +2058,7 @@ msgstr "Dokument genehmigt" #: apps/web/src/app/(signing)/sign/[token]/no-longer-available.tsx:40 #: packages/lib/server-only/document/delete-document.ts:251 -#: packages/lib/server-only/document/super-delete-document.ts:98 +#: packages/lib/server-only/document/super-delete-document.ts:101 msgid "Document Cancelled" msgstr "Dokument storniert" @@ -2101,7 +2099,7 @@ msgstr "Dokument erstellt mit einem <0>direkten Link" msgid "Document Creation" msgstr "Dokumenterstellung" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:50 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:182 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:60 #: packages/lib/utils/document-audit-logs.ts:306 @@ -2112,7 +2110,7 @@ msgstr "Dokument gelöscht" msgid "Document deleted email" msgstr "E-Mail zum Löschen des Dokuments" -#: packages/lib/server-only/document/send-delete-email.ts:82 +#: packages/lib/server-only/document/send-delete-email.ts:85 msgid "Document Deleted!" msgstr "Dokument gelöscht!" @@ -2302,7 +2300,7 @@ msgstr "Auditprotokolle herunterladen" msgid "Download Certificate" msgstr "Zertifikat herunterladen" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:209 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/formatter/document-status.tsx:34 #: packages/lib/constants/document.ts:13 msgid "Draft" @@ -2385,7 +2383,7 @@ msgstr "Offenlegung der elektronischen Unterschrift" #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 -#: apps/web/src/components/forms/profile.tsx:122 +#: apps/web/src/components/forms/profile.tsx:113 #: apps/web/src/components/forms/signin.tsx:339 #: apps/web/src/components/forms/signup.tsx:176 #: packages/lib/constants/document.ts:28 @@ -2490,7 +2488,7 @@ msgstr "Getippte Unterschrift aktivieren" msgid "Enable Typed Signatures" msgstr "Aktivieren Sie getippte Unterschriften" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:123 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:114 #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:138 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:74 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:142 @@ -2536,6 +2534,7 @@ msgid "Enter your text here" msgstr "Geben Sie hier Ihren Text ein" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:66 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:80 @@ -2544,8 +2543,7 @@ msgstr "Geben Sie hier Ihren Text ein" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:280 #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:325 #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:110 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:116 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:111 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:155 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:186 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:226 @@ -2666,7 +2664,7 @@ msgstr "Feld nicht unterschrieben" msgid "Fields" msgstr "Felder" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:129 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:124 msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "Die Datei darf nicht größer als {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} MB sein" @@ -2706,7 +2704,7 @@ msgstr "Freie Unterschrift" #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:272 -#: apps/web/src/components/forms/profile.tsx:110 +#: apps/web/src/components/forms/profile.tsx:101 #: apps/web/src/components/forms/v2/signup.tsx:316 msgid "Full Name" msgstr "Vollständiger Name" @@ -2894,10 +2892,6 @@ msgstr "Ungültiger Code. Bitte versuchen Sie es erneut." msgid "Invalid email" msgstr "Ungültige E-Mail" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:104 -msgid "Invalid file" -msgstr "Ungültige Datei" - #: apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx:33 #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:36 msgid "Invalid link" @@ -2920,11 +2914,11 @@ msgstr "Einladung akzeptiert!" msgid "Invitation declined" msgstr "Einladung abgelehnt" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:78 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 msgid "Invitation has been deleted" msgstr "Einladung wurde gelöscht" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:61 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 msgid "Invitation has been resent" msgstr "Einladung wurde erneut gesendet" @@ -2944,7 +2938,7 @@ msgstr "Mitglieder einladen" msgid "Invite team members" msgstr "Teammitglieder einladen" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:126 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:125 msgid "Invited At" msgstr "Eingeladen am" @@ -3641,7 +3635,7 @@ msgid "Payment overdue" msgstr "Zahlung überfällig" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:131 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:206 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 #: apps/web/src/components/document/document-read-only-fields.tsx:89 @@ -3865,7 +3859,7 @@ msgid "Profile is currently <0>visible." msgstr "Profil ist derzeit <0>sichtbar." #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:74 -#: apps/web/src/components/forms/profile.tsx:72 +#: apps/web/src/components/forms/profile.tsx:71 msgid "Profile updated" msgstr "Profil aktualisiert" @@ -3956,7 +3950,7 @@ msgid "Recent documents" msgstr "Neueste Dokumente" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:114 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:275 #: packages/lib/utils/document-audit-logs.ts:354 #: packages/lib/utils/document-audit-logs.ts:369 @@ -4071,7 +4065,7 @@ msgstr "Erinnerung: Bitte {recipientActionVerb} dein Dokument" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:89 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:159 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:54 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:164 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:163 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:165 #: apps/web/src/components/forms/avatar-image.tsx:166 #: packages/ui/primitives/document-flow/add-fields.tsx:1128 @@ -4112,7 +4106,7 @@ msgid "Reseal document" msgstr "Dokument wieder versiegeln" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:118 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:152 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:151 #: packages/ui/primitives/document-flow/add-subject.tsx:84 msgid "Resend" msgstr "Erneut senden" @@ -4197,7 +4191,7 @@ msgstr "Zugriff widerrufen" #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:318 #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:163 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:80 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:121 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:120 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:103 msgid "Role" msgstr "Rolle" @@ -4529,7 +4523,7 @@ msgstr "Registrieren mit OIDC" #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:286 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:422 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:301 -#: apps/web/src/components/forms/profile.tsx:132 +#: apps/web/src/components/forms/profile.tsx:123 #: packages/ui/primitives/document-flow/add-fields.tsx:841 #: packages/ui/primitives/document-flow/field-icon.tsx:52 #: packages/ui/primitives/document-flow/types.ts:49 @@ -4627,7 +4621,7 @@ msgstr "Registrierungen sind deaktiviert." msgid "Since {0}" msgstr "Seit {0}" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:102 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:93 msgid "Site Banner" msgstr "Website Banner" @@ -4677,8 +4671,8 @@ msgstr "Einige Unterzeichner haben noch kein Unterschriftsfeld zugewiesen bekomm #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:64 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:83 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:33 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:65 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:82 #: apps/web/src/components/(teams)/team-billing-portal-button.tsx:29 #: packages/ui/components/document/document-share-button.tsx:51 msgid "Something went wrong" @@ -4717,6 +4711,10 @@ msgstr "Etwas ist schiefgelaufen!" msgid "Something went wrong." msgstr "Etwas ist schief gelaufen." +#: apps/web/src/components/forms/token.tsx:143 +msgid "Something went wrong. Please try again later." +msgstr "" + #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:240 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:154 msgid "Something went wrong. Please try again or contact support." @@ -4730,7 +4728,7 @@ msgstr "Entschuldigung, wir konnten die Prüfprotokolle nicht herunterladen. Bit msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Entschuldigung, wir konnten das Zertifikat nicht herunterladen. Bitte versuchen Sie es später erneut." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:133 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:132 msgid "Source" msgstr "Quelle" @@ -4741,7 +4739,7 @@ msgstr "Statistiken" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:73 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:125 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:124 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:94 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" @@ -4796,8 +4794,8 @@ msgstr "Abonnements" #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:92 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:67 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:27 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:59 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:76 #: apps/web/src/components/forms/public-profile-form.tsx:80 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:132 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:168 @@ -4879,7 +4877,7 @@ msgstr "Teameinladung" msgid "Team invitations have been sent." msgstr "Teameinladungen wurden gesendet." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:107 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:106 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:84 msgid "Team Member" msgstr "Teammitglied" @@ -4956,8 +4954,8 @@ msgstr "Teams beschränkt" #: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:64 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:143 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:142 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:222 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:148 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:269 @@ -5020,7 +5018,7 @@ msgstr "Vorlagen erlauben dir das schnelle Erstlelen von Dokumenten mit vorausge msgid "Text" msgstr "Text" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:166 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:157 msgid "Text Color" msgstr "Textfarbe" @@ -5032,7 +5030,7 @@ msgstr "Vielen Dank, dass Sie Documenso zur elektronischen Unterzeichnung Ihrer msgid "That's okay, it happens! Click the button below to reset your password." msgstr "Das ist in Ordnung, das passiert! Klicke auf den Button unten, um dein Passwort zurückzusetzen." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "Das Konto wurde erfolgreich gelöscht." @@ -5056,7 +5054,7 @@ msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger das Signat msgid "The authentication required for recipients to view the document." msgstr "Die Authentifizierung, die erforderlich ist, damit Empfänger das Dokument anzeigen können." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:197 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:188 msgid "The content to show in the banner, HTML is allowed" msgstr "Der Inhalt, der im Banne rgezeig wird, HTML ist erlaubt" @@ -5191,7 +5189,7 @@ msgstr "Der Name des Unterzeichners" msgid "The signing link has been copied to your clipboard." msgstr "Der Signierlink wurde in die Zwischenablage kopiert." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:105 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:96 msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." msgstr "Das Seitenbanner ist eine Nachricht, die oben auf der Seite angezeigt wird. Es kann verwendet werden, um Ihren Nutzern wichtige Informationen anzuzeigen." @@ -5223,7 +5221,7 @@ msgstr "Die Vorlage wird von Ihrem Profil entfernt" msgid "The template you are looking for may have been disabled, deleted or may have never existed." msgstr "Die Vorlage, die Sie suchen, wurde möglicherweise deaktiviert, gelöscht oder hat möglicherweise nie existiert." -#: apps/web/src/components/forms/token.tsx:106 +#: apps/web/src/components/forms/token.tsx:107 msgid "The token was copied to your clipboard." msgstr "Der Token wurde in die Zwischenablage kopiert." @@ -5266,8 +5264,8 @@ msgstr "Es gibt noch keine abgeschlossenen Dokumente. Dokumente, die Sie erstell msgid "They have permission on your behalf to:" msgstr "Sie haben in Ihrem Namen die Erlaubnis, zu:" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:110 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:109 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:100 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:106 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:98 msgid "This action is not reversible. Please be certain." msgstr "Diese Aktion ist nicht umkehrbar. Bitte seien Sie sicher." @@ -5320,11 +5318,11 @@ msgstr "Dieses Dokument ist momentan ein Entwurf und wurde nicht gesendet" msgid "This document is password protected. Please enter the password to view the document." msgstr "Dieses Dokument ist durch ein Passwort geschützt. Bitte geben Sie das Passwort ein, um das Dokument anzusehen." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:147 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:146 msgid "This document was created by you or a team member using the template above." msgstr "Dieses Dokument wurde von Ihnen oder einem Teammitglied unter Verwendung der oben genannten Vorlage erstellt." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:159 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:158 msgid "This document was created using a direct link." msgstr "Dieses Dokument wurde mit einem direkten Link erstellt." @@ -5441,7 +5439,7 @@ msgstr "Dies wird an den Dokumenteneigentümer gesendet, sobald das Dokument vol msgid "This will override any global settings." msgstr "Dies überschreibt alle globalen Einstellungen." -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:71 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:70 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Zeit" @@ -5458,7 +5456,7 @@ msgstr "Zeitzone" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:110 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 #: packages/ui/primitives/document-flow/add-settings.tsx:166 msgid "Title" @@ -5472,13 +5470,13 @@ msgstr "Um diese Einladung anzunehmen, müssen Sie ein Konto erstellen." msgid "To change the email you must remove and add a new email address." msgstr "Um die E-Mail zu ändern, müssen Sie die aktuelle entfernen und eine neue hinzufügen." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:116 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:113 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:111 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:101 msgid "To confirm, please enter the accounts email address <0/>({0})." msgstr "Um zu bestätigen, geben Sie bitte die E-Mail-Adresse des Kontos <0/>({0}) ein." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:117 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:107 msgid "To confirm, please enter the reason" msgstr "Um zu bestätigen, geben Sie bitte den Grund ein" @@ -5523,11 +5521,11 @@ msgstr "Schalten Sie den Schalter um, um Ihr Profil der Öffentlichkeit anzuzeig msgid "Token" msgstr "Token" -#: apps/web/src/components/forms/token.tsx:105 +#: apps/web/src/components/forms/token.tsx:106 msgid "Token copied to clipboard" msgstr "Token wurde in die Zwischenablage kopiert" -#: apps/web/src/components/forms/token.tsx:126 +#: apps/web/src/components/forms/token.tsx:127 msgid "Token created" msgstr "Token erstellt" @@ -5645,7 +5643,7 @@ msgstr "Zurzeit kann die Sprache nicht geändert werden. Bitte versuchen Sie es msgid "Unable to copy recovery code" msgstr "Kann Code zur Wiederherstellung nicht kopieren" -#: apps/web/src/components/forms/token.tsx:110 +#: apps/web/src/components/forms/token.tsx:111 msgid "Unable to copy token" msgstr "Token kann nicht kopiert werden" @@ -5657,7 +5655,7 @@ msgstr "Direkter Zugriff auf die Vorlage kann nicht erstellt werden. Bitte versu msgid "Unable to decline this team invitation at this time." msgstr "Zurzeit kann diese Teameinladung nicht abgelehnt werden." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:84 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 msgid "Unable to delete invitation. Please try again." msgstr "Einladung kann nicht gelöscht werden. Bitte versuchen Sie es erneut." @@ -5694,7 +5692,7 @@ msgstr "Derzeit ist es nicht möglich, die E-Mail-Verifizierung zu entfernen. Bi msgid "Unable to remove team email at this time. Please try again." msgstr "Das Team-E-Mail kann zurzeit nicht entfernt werden. Bitte versuchen Sie es erneut." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:67 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 msgid "Unable to resend invitation. Please try again." msgstr "Einladung kann nicht erneut gesendet werden. Bitte versuchen Sie es erneut." @@ -5751,7 +5749,7 @@ msgstr "Unbezahlt" msgid "Update" msgstr "Aktualisieren" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:211 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:202 msgid "Update Banner" msgstr "Banner aktualisieren" @@ -5763,7 +5761,7 @@ msgstr "Passkey aktualisieren" msgid "Update password" msgstr "Passwort aktualisieren" -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Update profile" msgstr "Profil aktualisieren" @@ -5806,7 +5804,7 @@ msgstr "Webhook aktualisieren" msgid "Updating password..." msgstr "Passwort wird aktualisiert..." -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Updating profile..." msgstr "Profil wird aktualisiert..." @@ -5877,7 +5875,7 @@ msgstr "Backup-Code verwenden" msgid "Use Template" msgstr "Vorlage verwenden" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:76 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:75 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "Benutzer" @@ -5890,6 +5888,7 @@ msgstr "Benutzer hat kein Passwort." msgid "User ID" msgstr "Benutzer-ID" +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:61 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:55 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:55 msgid "User not found." @@ -6106,10 +6105,6 @@ msgstr "Wir sind auf einen Fehler gestoßen, während wir den direkten Vorlagenl msgid "We encountered an error while updating the webhook. Please try again later." msgstr "Wir sind auf einen Fehler gestoßen, während wir den Webhook aktualisieren wollten. Bitte versuchen Sie es später erneut." -#: apps/web/src/components/forms/token.tsx:145 -msgid "We encountered an unknown error while attempting create the new token. Please try again later." -msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, das neue Token zu erstellen. Bitte versuchen Sie es später erneut." - #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:102 msgid "We encountered an unknown error while attempting to add this email. Please try again later." msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, diese E-Mail hinzuzufügen. Bitte versuchen Sie es später erneut." @@ -6134,7 +6129,6 @@ msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht h msgid "We encountered an unknown error while attempting to delete this token. Please try again later." msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, dieses Token zu löschen. Bitte versuchen Sie es später erneut." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:70 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:58 msgid "We encountered an unknown error while attempting to delete your account. Please try again later." msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, Ihr Konto zu löschen. Bitte versuchen Sie es später erneut." @@ -6175,7 +6169,6 @@ msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht h msgid "We encountered an unknown error while attempting to save your details. Please try again later." msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, Ihre Daten zu speichern. Bitte versuchen Sie es später erneut." -#: apps/web/src/components/forms/profile.tsx:89 #: apps/web/src/components/forms/signin.tsx:273 #: apps/web/src/components/forms/signin.tsx:288 #: apps/web/src/components/forms/signin.tsx:304 @@ -6189,7 +6182,7 @@ msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht h msgid "We encountered an unknown error while attempting to sign you Up. Please try again later." msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, Sie anzumelden. Bitte versuchen Sie es später erneut." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:92 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:84 msgid "We encountered an unknown error while attempting to update the banner. Please try again later." msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, das Banner zu aktualisieren. Bitte versuchen Sie es später erneut." @@ -6218,6 +6211,10 @@ msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht h msgid "We encountered an unknown error while attempting update the team email. Please try again later." msgstr "Wir sind auf einen unbekannten Fehler gestoßen, während wir versucht haben, die Team-E-Mail zu aktualisieren. Bitte versuchen Sie es später erneut." +#: apps/web/src/components/forms/profile.tsx:81 +msgid "We encountered an unknown error while attempting update your profile. Please try again later." +msgstr "" + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:80 msgid "We have sent a confirmation email for verification." msgstr "Wir haben eine Bestätigungs-E-Mail zur Überprüfung gesendet." @@ -6230,7 +6227,7 @@ msgstr "Wir benötigen einen Benutzernamen, um Ihr Profil zu erstellen" msgid "We need your signature to sign documents" msgstr "Wir benötigen Ihre Unterschrift, um Dokumente zu unterschreiben" -#: apps/web/src/components/forms/token.tsx:111 +#: apps/web/src/components/forms/token.tsx:112 msgid "We were unable to copy the token to your clipboard. Please try again." msgstr "Wir konnten das Token nicht in Ihre Zwischenablage kopieren. Bitte versuchen Sie es erneut." @@ -6450,6 +6447,10 @@ msgstr "Sie aktualisieren derzeit den <0>{passkeyName} Passkey." msgid "You are not a member of this team." msgstr "Sie sind kein Mitglied dieses Teams." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:62 +msgid "You are not authorized to delete this user." +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:56 msgid "You are not authorized to disable this user." msgstr "Sie sind nicht berechtigt, diesen Benutzer zu deaktivieren." @@ -6514,7 +6515,7 @@ msgstr "Sie können ein Teammitglied, das eine höhere Rolle als Sie hat, nicht msgid "You cannot upload documents at this time." msgstr "Sie können derzeit keine Dokumente hochladen." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:105 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:103 msgid "You cannot upload encrypted PDFs" msgstr "Sie können keine verschlüsselten PDFs hochladen" @@ -6522,6 +6523,10 @@ msgstr "Sie können keine verschlüsselten PDFs hochladen" msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "Sie haben derzeit keinen Kundenrecord, das sollte nicht passieren. Bitte kontaktieren Sie den Support um Hilfe." +#: apps/web/src/components/forms/token.tsx:141 +msgid "You do not have permission to create a token for this team" +msgstr "" + #: packages/email/template-components/template-document-cancel.tsx:35 msgid "You don't need to sign it anymore." msgstr "Du musst es nicht mehr unterschreiben." @@ -6586,6 +6591,10 @@ msgstr "Sie haben noch keine Dokumente erstellt oder erhalten. Bitte laden Sie e msgid "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" msgstr "Sie haben das maximale Limit von {0} direkten Vorlagen erreicht. <0>Upgrade your account to continue!" +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 +msgid "You have reached your document limit for this month. Please upgrade your plan." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:56 #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." @@ -6687,7 +6696,7 @@ msgstr "Ihr Konto wurde erfolgreich gelöscht." msgid "Your avatar has been updated successfully." msgstr "Ihr Avatar wurde erfolgreich aktualisiert." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:75 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 msgid "Your banner has been updated successfully." msgstr "Ihr Banner wurde erfolgreich aktualisiert." @@ -6707,7 +6716,7 @@ msgstr "Ihr aktueller Plan ist überfällig. Bitte aktualisieren Sie Ihre Zahlun msgid "Your direct signing templates" msgstr "Ihre direkten Unterzeichnungsvorlagen" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:128 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:123 msgid "Your document failed to upload." msgstr "Ihr Dokument konnte nicht hochgeladen werden." @@ -6778,7 +6787,7 @@ msgstr "Dein Passwort wurde aktualisiert." msgid "Your payment for teams is overdue. Please settle the payment to avoid any service disruptions." msgstr "Ihre Zahlung für Teams ist überfällig. Bitte begleichen Sie die Zahlung, um Unterbrechungen des Dienstes zu vermeiden." -#: apps/web/src/components/forms/profile.tsx:73 +#: apps/web/src/components/forms/profile.tsx:72 msgid "Your profile has been updated successfully." msgstr "Ihr Profil wurde erfolgreich aktualisiert." diff --git a/packages/lib/translations/en/web.po b/packages/lib/translations/en/web.po index fa62fbc18..9cc859dcb 100644 --- a/packages/lib/translations/en/web.po +++ b/packages/lib/translations/en/web.po @@ -103,7 +103,7 @@ msgstr "{0} joined the team {teamName} on Documenso" msgid "{0} left the team {teamName} on Documenso" msgstr "{0} left the team {teamName} on Documenso" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:150 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:145 msgid "{0} of {1} documents remaining this month." msgstr "{0} of {1} documents remaining this month." @@ -487,7 +487,7 @@ msgstr "A means to print or download documents for your records" msgid "A new member has joined your team" msgstr "A new member has joined your team" -#: apps/web/src/components/forms/token.tsx:127 +#: apps/web/src/components/forms/token.tsx:128 msgid "A new token was created successfully." msgstr "A new token was created successfully." @@ -590,7 +590,7 @@ msgstr "Accepted team invitation" msgid "Account Authentication" msgstr "Account Authentication" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:50 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:47 msgid "Account deleted" msgstr "Account deleted" @@ -612,19 +612,19 @@ msgid "Acknowledgment" msgstr "Acknowledgment" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:107 -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:97 #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:117 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:159 -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:116 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:115 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:46 msgid "Action" msgstr "Action" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:175 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:131 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:140 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:130 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:139 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:116 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:125 msgid "Actions" @@ -863,16 +863,12 @@ msgstr "An email containing an invitation will be sent to each member." msgid "An email requesting the transfer of this team has been sent." msgstr "An email requesting the transfer of this team has been sent." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:60 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:83 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:59 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:100 #: apps/web/src/components/forms/avatar-image.tsx:122 #: apps/web/src/components/forms/password.tsx:92 -#: apps/web/src/components/forms/profile.tsx:81 #: apps/web/src/components/forms/reset-password.tsx:95 #: apps/web/src/components/forms/signup.tsx:112 -#: apps/web/src/components/forms/token.tsx:137 +#: apps/web/src/components/forms/token.tsx:146 #: apps/web/src/components/forms/v2/signup.tsx:166 msgid "An error occurred" msgstr "An error occurred" @@ -902,6 +898,10 @@ msgstr "An error occurred while creating document from template." msgid "An error occurred while creating the webhook. Please try again." msgstr "An error occurred while creating the webhook. Please try again." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:63 +msgid "An error occurred while deleting the user." +msgstr "An error occurred while deleting the user." + #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:120 msgid "An error occurred while disabling direct link signing." msgstr "An error occurred while disabling direct link signing." @@ -1002,13 +1002,12 @@ msgstr "An error occurred while updating the signature." msgid "An error occurred while updating your profile." msgstr "An error occurred while updating your profile." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:117 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:108 msgid "An error occurred while uploading your document." msgstr "An error occurred while uploading your document." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:66 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:89 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:65 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:58 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:81 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:55 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:54 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:301 @@ -1025,7 +1024,7 @@ msgstr "An error occurred while uploading your document." #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:100 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:93 #: apps/web/src/components/forms/avatar-image.tsx:94 -#: apps/web/src/components/forms/profile.tsx:87 +#: apps/web/src/components/forms/profile.tsx:79 #: apps/web/src/components/forms/public-profile-claim-dialog.tsx:113 #: apps/web/src/components/forms/public-profile-form.tsx:104 #: apps/web/src/components/forms/signin.tsx:249 @@ -1035,7 +1034,6 @@ msgstr "An error occurred while uploading your document." #: apps/web/src/components/forms/signin.tsx:302 #: apps/web/src/components/forms/signup.tsx:124 #: apps/web/src/components/forms/signup.tsx:138 -#: apps/web/src/components/forms/token.tsx:143 #: apps/web/src/components/forms/v2/signup.tsx:187 #: apps/web/src/components/forms/v2/signup.tsx:201 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:140 @@ -1047,11 +1045,11 @@ msgstr "An unknown error occurred" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:220 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:219 msgid "Any Source" msgstr "Any Source" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:199 msgid "Any Status" msgstr "Any Status" @@ -1164,7 +1162,7 @@ msgstr "Back" msgid "Back to Documents" msgstr "Back to Documents" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:146 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:137 msgid "Background Color" msgstr "Background Color" @@ -1177,7 +1175,7 @@ msgstr "Backup Code" msgid "Backup codes" msgstr "Backup codes" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:73 msgid "Banner Updated" msgstr "Banner Updated" @@ -1214,7 +1212,7 @@ msgstr "Branding Preferences" msgid "Branding preferences updated" msgstr "Branding preferences updated" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:97 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:96 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:48 msgid "Browser" msgstr "Browser" @@ -1456,7 +1454,7 @@ msgstr "Complete Signing" msgid "Complete Viewing" msgstr "Complete Viewing" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:203 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:202 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:77 #: apps/web/src/components/formatter/document-status.tsx:28 #: packages/email/template-components/template-document-completed.tsx:35 @@ -1539,7 +1537,7 @@ msgstr "Consent to Electronic Transactions" msgid "Contact Information" msgstr "Contact Information" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:180 msgid "Content" msgstr "Content" @@ -1737,7 +1735,7 @@ msgstr "Create your account and start using state-of-the-art document signing. O #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:36 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:48 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:104 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:103 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:272 @@ -1781,7 +1779,7 @@ msgstr "Daily" msgid "Dark Mode" msgstr "Dark Mode" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:68 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:67 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:148 #: packages/ui/primitives/document-flow/add-fields.tsx:945 #: packages/ui/primitives/document-flow/types.ts:53 @@ -1846,25 +1844,25 @@ msgstr "delete {0}" msgid "delete {teamName}" msgstr "delete {teamName}" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:136 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:133 msgid "Delete account" msgstr "Delete account" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:97 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:104 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:94 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:101 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:86 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:93 msgid "Delete Account" msgstr "Delete Account" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:125 msgid "Delete document" msgstr "Delete document" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:85 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:98 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:105 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:75 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:95 msgid "Delete Document" msgstr "Delete Document" @@ -1881,11 +1879,11 @@ msgstr "Delete team" msgid "Delete team member" msgstr "Delete team member" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:78 msgid "Delete the document. This action is irreversible so proceed with caution." msgstr "Delete the document. This action is irreversible so proceed with caution." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:86 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:83 msgid "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." msgstr "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." @@ -1910,7 +1908,7 @@ msgstr "Deleting account..." msgid "Details" msgstr "Details" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:73 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:72 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:244 msgid "Device" msgstr "Device" @@ -1929,8 +1927,8 @@ msgstr "direct link" msgid "Direct link" msgstr "Direct link" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:155 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:226 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:154 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 msgid "Direct Link" msgstr "Direct Link" @@ -2055,7 +2053,7 @@ msgstr "Document Approved" #: apps/web/src/app/(signing)/sign/[token]/no-longer-available.tsx:40 #: packages/lib/server-only/document/delete-document.ts:251 -#: packages/lib/server-only/document/super-delete-document.ts:98 +#: packages/lib/server-only/document/super-delete-document.ts:101 msgid "Document Cancelled" msgstr "Document Cancelled" @@ -2096,7 +2094,7 @@ msgstr "Document created using a <0>direct link" msgid "Document Creation" msgstr "Document Creation" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:50 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:182 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:60 #: packages/lib/utils/document-audit-logs.ts:306 @@ -2107,7 +2105,7 @@ msgstr "Document deleted" msgid "Document deleted email" msgstr "Document deleted email" -#: packages/lib/server-only/document/send-delete-email.ts:82 +#: packages/lib/server-only/document/send-delete-email.ts:85 msgid "Document Deleted!" msgstr "Document Deleted!" @@ -2297,7 +2295,7 @@ msgstr "Download Audit Logs" msgid "Download Certificate" msgstr "Download Certificate" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:209 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/formatter/document-status.tsx:34 #: packages/lib/constants/document.ts:13 msgid "Draft" @@ -2380,7 +2378,7 @@ msgstr "Electronic Signature Disclosure" #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 -#: apps/web/src/components/forms/profile.tsx:122 +#: apps/web/src/components/forms/profile.tsx:113 #: apps/web/src/components/forms/signin.tsx:339 #: apps/web/src/components/forms/signup.tsx:176 #: packages/lib/constants/document.ts:28 @@ -2485,7 +2483,7 @@ msgstr "Enable Typed Signature" msgid "Enable Typed Signatures" msgstr "Enable Typed Signatures" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:123 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:114 #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:138 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:74 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:142 @@ -2531,6 +2529,7 @@ msgid "Enter your text here" msgstr "Enter your text here" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:66 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:80 @@ -2539,8 +2538,7 @@ msgstr "Enter your text here" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:280 #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:325 #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:110 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:116 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:111 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:155 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:186 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:226 @@ -2661,7 +2659,7 @@ msgstr "Field unsigned" msgid "Fields" msgstr "Fields" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:129 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:124 msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" @@ -2701,7 +2699,7 @@ msgstr "Free Signature" #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:272 -#: apps/web/src/components/forms/profile.tsx:110 +#: apps/web/src/components/forms/profile.tsx:101 #: apps/web/src/components/forms/v2/signup.tsx:316 msgid "Full Name" msgstr "Full Name" @@ -2889,10 +2887,6 @@ msgstr "Invalid code. Please try again." msgid "Invalid email" msgstr "Invalid email" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:104 -msgid "Invalid file" -msgstr "Invalid file" - #: apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx:33 #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:36 msgid "Invalid link" @@ -2915,11 +2909,11 @@ msgstr "Invitation accepted!" msgid "Invitation declined" msgstr "Invitation declined" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:78 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 msgid "Invitation has been deleted" msgstr "Invitation has been deleted" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:61 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 msgid "Invitation has been resent" msgstr "Invitation has been resent" @@ -2939,7 +2933,7 @@ msgstr "Invite Members" msgid "Invite team members" msgstr "Invite team members" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:126 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:125 msgid "Invited At" msgstr "Invited At" @@ -3636,7 +3630,7 @@ msgid "Payment overdue" msgstr "Payment overdue" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:131 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:206 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 #: apps/web/src/components/document/document-read-only-fields.tsx:89 @@ -3860,7 +3854,7 @@ msgid "Profile is currently <0>visible." msgstr "Profile is currently <0>visible." #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:74 -#: apps/web/src/components/forms/profile.tsx:72 +#: apps/web/src/components/forms/profile.tsx:71 msgid "Profile updated" msgstr "Profile updated" @@ -3951,7 +3945,7 @@ msgid "Recent documents" msgstr "Recent documents" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:114 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:275 #: packages/lib/utils/document-audit-logs.ts:354 #: packages/lib/utils/document-audit-logs.ts:369 @@ -4066,7 +4060,7 @@ msgstr "Reminder: Please {recipientActionVerb} your document" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:89 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:159 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:54 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:164 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:163 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:165 #: apps/web/src/components/forms/avatar-image.tsx:166 #: packages/ui/primitives/document-flow/add-fields.tsx:1128 @@ -4107,7 +4101,7 @@ msgid "Reseal document" msgstr "Reseal document" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:118 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:152 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:151 #: packages/ui/primitives/document-flow/add-subject.tsx:84 msgid "Resend" msgstr "Resend" @@ -4192,7 +4186,7 @@ msgstr "Revoke access" #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:318 #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:163 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:80 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:121 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:120 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:103 msgid "Role" msgstr "Role" @@ -4524,7 +4518,7 @@ msgstr "Sign Up with OIDC" #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:286 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:422 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:301 -#: apps/web/src/components/forms/profile.tsx:132 +#: apps/web/src/components/forms/profile.tsx:123 #: packages/ui/primitives/document-flow/add-fields.tsx:841 #: packages/ui/primitives/document-flow/field-icon.tsx:52 #: packages/ui/primitives/document-flow/types.ts:49 @@ -4622,7 +4616,7 @@ msgstr "Signups are disabled." msgid "Since {0}" msgstr "Since {0}" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:102 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:93 msgid "Site Banner" msgstr "Site Banner" @@ -4672,8 +4666,8 @@ msgstr "Some signers have not been assigned a signature field. Please assign at #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:64 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:83 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:33 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:65 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:82 #: apps/web/src/components/(teams)/team-billing-portal-button.tsx:29 #: packages/ui/components/document/document-share-button.tsx:51 msgid "Something went wrong" @@ -4712,6 +4706,10 @@ msgstr "Something went wrong!" msgid "Something went wrong." msgstr "Something went wrong." +#: apps/web/src/components/forms/token.tsx:143 +msgid "Something went wrong. Please try again later." +msgstr "Something went wrong. Please try again later." + #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:240 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:154 msgid "Something went wrong. Please try again or contact support." @@ -4725,7 +4723,7 @@ msgstr "Sorry, we were unable to download the audit logs. Please try again later msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Sorry, we were unable to download the certificate. Please try again later." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:133 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:132 msgid "Source" msgstr "Source" @@ -4736,7 +4734,7 @@ msgstr "Stats" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:73 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:125 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:124 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:94 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" @@ -4791,8 +4789,8 @@ msgstr "Subscriptions" #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:92 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:67 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:27 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:59 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:76 #: apps/web/src/components/forms/public-profile-form.tsx:80 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:132 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:168 @@ -4874,7 +4872,7 @@ msgstr "Team invitation" msgid "Team invitations have been sent." msgstr "Team invitations have been sent." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:107 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:106 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:84 msgid "Team Member" msgstr "Team Member" @@ -4951,8 +4949,8 @@ msgstr "Teams restricted" #: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:64 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:143 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:142 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:222 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:148 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:269 @@ -5015,7 +5013,7 @@ msgstr "Templates allow you to quickly generate documents with pre-filled recipi msgid "Text" msgstr "Text" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:166 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:157 msgid "Text Color" msgstr "Text Color" @@ -5027,7 +5025,7 @@ msgstr "Thank you for using Documenso to perform your electronic document signin msgid "That's okay, it happens! Click the button below to reset your password." msgstr "That's okay, it happens! Click the button below to reset your password." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "The account has been deleted successfully." @@ -5051,7 +5049,7 @@ msgstr "The authentication required for recipients to sign the signature field." msgid "The authentication required for recipients to view the document." msgstr "The authentication required for recipients to view the document." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:197 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:188 msgid "The content to show in the banner, HTML is allowed" msgstr "The content to show in the banner, HTML is allowed" @@ -5186,7 +5184,7 @@ msgstr "The signer's name" msgid "The signing link has been copied to your clipboard." msgstr "The signing link has been copied to your clipboard." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:105 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:96 msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." msgstr "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." @@ -5218,7 +5216,7 @@ msgstr "The template will be removed from your profile" msgid "The template you are looking for may have been disabled, deleted or may have never existed." msgstr "The template you are looking for may have been disabled, deleted or may have never existed." -#: apps/web/src/components/forms/token.tsx:106 +#: apps/web/src/components/forms/token.tsx:107 msgid "The token was copied to your clipboard." msgstr "The token was copied to your clipboard." @@ -5261,8 +5259,8 @@ msgstr "There are no completed documents yet. Documents that you have created or msgid "They have permission on your behalf to:" msgstr "They have permission on your behalf to:" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:110 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:109 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:100 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:106 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:98 msgid "This action is not reversible. Please be certain." msgstr "This action is not reversible. Please be certain." @@ -5315,11 +5313,11 @@ msgstr "This document is currently a draft and has not been sent" msgid "This document is password protected. Please enter the password to view the document." msgstr "This document is password protected. Please enter the password to view the document." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:147 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:146 msgid "This document was created by you or a team member using the template above." msgstr "This document was created by you or a team member using the template above." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:159 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:158 msgid "This document was created using a direct link." msgstr "This document was created using a direct link." @@ -5436,7 +5434,7 @@ msgstr "This will be sent to the document owner once the document has been fully msgid "This will override any global settings." msgstr "This will override any global settings." -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:71 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:70 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Time" @@ -5453,7 +5451,7 @@ msgstr "Time Zone" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:110 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 #: packages/ui/primitives/document-flow/add-settings.tsx:166 msgid "Title" @@ -5467,13 +5465,13 @@ msgstr "To accept this invitation you must create an account." msgid "To change the email you must remove and add a new email address." msgstr "To change the email you must remove and add a new email address." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:116 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:113 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:111 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:101 msgid "To confirm, please enter the accounts email address <0/>({0})." msgstr "To confirm, please enter the accounts email address <0/>({0})." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:117 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:107 msgid "To confirm, please enter the reason" msgstr "To confirm, please enter the reason" @@ -5518,11 +5516,11 @@ msgstr "Toggle the switch to show your profile to the public." msgid "Token" msgstr "Token" -#: apps/web/src/components/forms/token.tsx:105 +#: apps/web/src/components/forms/token.tsx:106 msgid "Token copied to clipboard" msgstr "Token copied to clipboard" -#: apps/web/src/components/forms/token.tsx:126 +#: apps/web/src/components/forms/token.tsx:127 msgid "Token created" msgstr "Token created" @@ -5640,7 +5638,7 @@ msgstr "Unable to change the language at this time. Please try again later." msgid "Unable to copy recovery code" msgstr "Unable to copy recovery code" -#: apps/web/src/components/forms/token.tsx:110 +#: apps/web/src/components/forms/token.tsx:111 msgid "Unable to copy token" msgstr "Unable to copy token" @@ -5652,7 +5650,7 @@ msgstr "Unable to create direct template access. Please try again later." msgid "Unable to decline this team invitation at this time." msgstr "Unable to decline this team invitation at this time." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:84 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 msgid "Unable to delete invitation. Please try again." msgstr "Unable to delete invitation. Please try again." @@ -5689,7 +5687,7 @@ msgstr "Unable to remove email verification at this time. Please try again." msgid "Unable to remove team email at this time. Please try again." msgstr "Unable to remove team email at this time. Please try again." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:67 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 msgid "Unable to resend invitation. Please try again." msgstr "Unable to resend invitation. Please try again." @@ -5746,7 +5744,7 @@ msgstr "Unpaid" msgid "Update" msgstr "Update" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:211 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:202 msgid "Update Banner" msgstr "Update Banner" @@ -5758,7 +5756,7 @@ msgstr "Update passkey" msgid "Update password" msgstr "Update password" -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Update profile" msgstr "Update profile" @@ -5801,7 +5799,7 @@ msgstr "Update webhook" msgid "Updating password..." msgstr "Updating password..." -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Updating profile..." msgstr "Updating profile..." @@ -5872,7 +5870,7 @@ msgstr "Use Backup Code" msgid "Use Template" msgstr "Use Template" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:76 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:75 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "User" @@ -5885,6 +5883,7 @@ msgstr "User has no password." msgid "User ID" msgstr "User ID" +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:61 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:55 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:55 msgid "User not found." @@ -6101,10 +6100,6 @@ msgstr "We encountered an error while removing the direct template link. Please msgid "We encountered an error while updating the webhook. Please try again later." msgstr "We encountered an error while updating the webhook. Please try again later." -#: apps/web/src/components/forms/token.tsx:145 -msgid "We encountered an unknown error while attempting create the new token. Please try again later." -msgstr "We encountered an unknown error while attempting create the new token. Please try again later." - #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:102 msgid "We encountered an unknown error while attempting to add this email. Please try again later." msgstr "We encountered an unknown error while attempting to add this email. Please try again later." @@ -6129,7 +6124,6 @@ msgstr "We encountered an unknown error while attempting to delete this team. Pl msgid "We encountered an unknown error while attempting to delete this token. Please try again later." msgstr "We encountered an unknown error while attempting to delete this token. Please try again later." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:70 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:58 msgid "We encountered an unknown error while attempting to delete your account. Please try again later." msgstr "We encountered an unknown error while attempting to delete your account. Please try again later." @@ -6170,7 +6164,6 @@ msgstr "We encountered an unknown error while attempting to revoke access. Pleas msgid "We encountered an unknown error while attempting to save your details. Please try again later." msgstr "We encountered an unknown error while attempting to save your details. Please try again later." -#: apps/web/src/components/forms/profile.tsx:89 #: apps/web/src/components/forms/signin.tsx:273 #: apps/web/src/components/forms/signin.tsx:288 #: apps/web/src/components/forms/signin.tsx:304 @@ -6184,7 +6177,7 @@ msgstr "We encountered an unknown error while attempting to sign you In. Please msgid "We encountered an unknown error while attempting to sign you Up. Please try again later." msgstr "We encountered an unknown error while attempting to sign you Up. Please try again later." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:92 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:84 msgid "We encountered an unknown error while attempting to update the banner. Please try again later." msgstr "We encountered an unknown error while attempting to update the banner. Please try again later." @@ -6213,6 +6206,10 @@ msgstr "We encountered an unknown error while attempting to update your team. Pl msgid "We encountered an unknown error while attempting update the team email. Please try again later." msgstr "We encountered an unknown error while attempting update the team email. Please try again later." +#: apps/web/src/components/forms/profile.tsx:81 +msgid "We encountered an unknown error while attempting update your profile. Please try again later." +msgstr "We encountered an unknown error while attempting update your profile. Please try again later." + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:80 msgid "We have sent a confirmation email for verification." msgstr "We have sent a confirmation email for verification." @@ -6225,7 +6222,7 @@ msgstr "We need a username to create your profile" msgid "We need your signature to sign documents" msgstr "We need your signature to sign documents" -#: apps/web/src/components/forms/token.tsx:111 +#: apps/web/src/components/forms/token.tsx:112 msgid "We were unable to copy the token to your clipboard. Please try again." msgstr "We were unable to copy the token to your clipboard. Please try again." @@ -6445,6 +6442,10 @@ msgstr "You are currently updating the <0>{passkeyName} passkey." msgid "You are not a member of this team." msgstr "You are not a member of this team." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:62 +msgid "You are not authorized to delete this user." +msgstr "You are not authorized to delete this user." + #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:56 msgid "You are not authorized to disable this user." msgstr "You are not authorized to disable this user." @@ -6509,7 +6510,7 @@ msgstr "You cannot modify a team member who has a higher role than you." msgid "You cannot upload documents at this time." msgstr "You cannot upload documents at this time." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:105 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:103 msgid "You cannot upload encrypted PDFs" msgstr "You cannot upload encrypted PDFs" @@ -6517,6 +6518,10 @@ msgstr "You cannot upload encrypted PDFs" msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "You do not currently have a customer record, this should not happen. Please contact support for assistance." +#: apps/web/src/components/forms/token.tsx:141 +msgid "You do not have permission to create a token for this team" +msgstr "You do not have permission to create a token for this team" + #: packages/email/template-components/template-document-cancel.tsx:35 msgid "You don't need to sign it anymore." msgstr "You don't need to sign it anymore." @@ -6581,6 +6586,10 @@ msgstr "You have not yet created or received any documents. To create a document msgid "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" msgstr "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 +msgid "You have reached your document limit for this month. Please upgrade your plan." +msgstr "You have reached your document limit for this month. Please upgrade your plan." + #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:56 #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." @@ -6682,7 +6691,7 @@ msgstr "Your account has been deleted successfully." msgid "Your avatar has been updated successfully." msgstr "Your avatar has been updated successfully." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:75 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 msgid "Your banner has been updated successfully." msgstr "Your banner has been updated successfully." @@ -6702,7 +6711,7 @@ msgstr "Your current plan is past due. Please update your payment information." msgid "Your direct signing templates" msgstr "Your direct signing templates" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:128 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:123 msgid "Your document failed to upload." msgstr "Your document failed to upload." @@ -6773,7 +6782,7 @@ msgstr "Your password has been updated." msgid "Your payment for teams is overdue. Please settle the payment to avoid any service disruptions." msgstr "Your payment for teams is overdue. Please settle the payment to avoid any service disruptions." -#: apps/web/src/components/forms/profile.tsx:73 +#: apps/web/src/components/forms/profile.tsx:72 msgid "Your profile has been updated successfully." msgstr "Your profile has been updated successfully." diff --git a/packages/lib/translations/es/web.po b/packages/lib/translations/es/web.po index b1f0128b2..cb24daecd 100644 --- a/packages/lib/translations/es/web.po +++ b/packages/lib/translations/es/web.po @@ -108,7 +108,7 @@ msgstr "{0} se unió al equipo {teamName} en Documenso" msgid "{0} left the team {teamName} on Documenso" msgstr "{0} dejó el equipo {teamName} en Documenso" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:150 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:145 msgid "{0} of {1} documents remaining this month." msgstr "{0} de {1} documentos restantes este mes." @@ -492,7 +492,7 @@ msgstr "Un medio para imprimir o descargar documentos para sus registros" msgid "A new member has joined your team" msgstr "Un nuevo miembro se ha unido a tu equipo" -#: apps/web/src/components/forms/token.tsx:127 +#: apps/web/src/components/forms/token.tsx:128 msgid "A new token was created successfully." msgstr "Un nuevo token se ha creado con éxito." @@ -595,7 +595,7 @@ msgstr "Invitación de equipo aceptada" msgid "Account Authentication" msgstr "Autenticación de Cuenta" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:50 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:47 msgid "Account deleted" msgstr "Cuenta eliminada" @@ -617,19 +617,19 @@ msgid "Acknowledgment" msgstr "Reconocimiento" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:107 -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:97 #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:117 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:159 -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:116 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:115 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:46 msgid "Action" msgstr "Acción" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:175 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:131 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:140 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:130 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:139 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:116 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:125 msgid "Actions" @@ -868,16 +868,12 @@ msgstr "Un correo electrónico que contiene una invitación se enviará a cada m msgid "An email requesting the transfer of this team has been sent." msgstr "Se ha enviado un correo electrónico solicitando la transferencia de este equipo." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:60 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:83 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:59 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:100 #: apps/web/src/components/forms/avatar-image.tsx:122 #: apps/web/src/components/forms/password.tsx:92 -#: apps/web/src/components/forms/profile.tsx:81 #: apps/web/src/components/forms/reset-password.tsx:95 #: apps/web/src/components/forms/signup.tsx:112 -#: apps/web/src/components/forms/token.tsx:137 +#: apps/web/src/components/forms/token.tsx:146 #: apps/web/src/components/forms/v2/signup.tsx:166 msgid "An error occurred" msgstr "Ocurrió un error" @@ -907,6 +903,10 @@ msgstr "Ocurrió un error al crear el documento a partir de la plantilla." msgid "An error occurred while creating the webhook. Please try again." msgstr "Ocurrió un error al crear el webhook. Por favor, intenta de nuevo." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:63 +msgid "An error occurred while deleting the user." +msgstr "" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:120 msgid "An error occurred while disabling direct link signing." msgstr "Ocurrió un error al desactivar la firma de enlace directo." @@ -1007,13 +1007,12 @@ msgstr "Ocurrió un error al actualizar la firma." msgid "An error occurred while updating your profile." msgstr "Ocurrió un error al actualizar tu perfil." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:117 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:108 msgid "An error occurred while uploading your document." msgstr "Ocurrió un error al subir tu documento." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:66 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:89 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:65 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:58 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:81 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:55 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:54 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:301 @@ -1030,7 +1029,7 @@ msgstr "Ocurrió un error al subir tu documento." #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:100 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:93 #: apps/web/src/components/forms/avatar-image.tsx:94 -#: apps/web/src/components/forms/profile.tsx:87 +#: apps/web/src/components/forms/profile.tsx:79 #: apps/web/src/components/forms/public-profile-claim-dialog.tsx:113 #: apps/web/src/components/forms/public-profile-form.tsx:104 #: apps/web/src/components/forms/signin.tsx:249 @@ -1040,7 +1039,6 @@ msgstr "Ocurrió un error al subir tu documento." #: apps/web/src/components/forms/signin.tsx:302 #: apps/web/src/components/forms/signup.tsx:124 #: apps/web/src/components/forms/signup.tsx:138 -#: apps/web/src/components/forms/token.tsx:143 #: apps/web/src/components/forms/v2/signup.tsx:187 #: apps/web/src/components/forms/v2/signup.tsx:201 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:140 @@ -1052,11 +1050,11 @@ msgstr "Ocurrió un error desconocido" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Cualquier método de pago adjunto a este equipo permanecerá adjunto a este equipo. Por favor, contáctanos si necesitas actualizar esta información." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:220 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:219 msgid "Any Source" msgstr "Cualquier fuente" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:199 msgid "Any Status" msgstr "Cualquier estado" @@ -1169,7 +1167,7 @@ msgstr "Atrás" msgid "Back to Documents" msgstr "Volver a Documentos" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:146 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:137 msgid "Background Color" msgstr "Color de Fondo" @@ -1182,7 +1180,7 @@ msgstr "Código de respaldo" msgid "Backup codes" msgstr "Códigos de respaldo" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:73 msgid "Banner Updated" msgstr "Banner actualizado" @@ -1219,7 +1217,7 @@ msgstr "Preferencias de marca" msgid "Branding preferences updated" msgstr "Preferencias de marca actualizadas" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:97 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:96 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:48 msgid "Browser" msgstr "Navegador" @@ -1461,7 +1459,7 @@ msgstr "Completar Firmado" msgid "Complete Viewing" msgstr "Completar Visualización" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:203 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:202 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:77 #: apps/web/src/components/formatter/document-status.tsx:28 #: packages/email/template-components/template-document-completed.tsx:35 @@ -1544,7 +1542,7 @@ msgstr "Consentimiento para Transacciones Electrónicas" msgid "Contact Information" msgstr "Información de Contacto" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:180 msgid "Content" msgstr "Contenido" @@ -1742,7 +1740,7 @@ msgstr "Crea tu cuenta y comienza a utilizar la firma de documentos de última g #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:36 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:48 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:104 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:103 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:272 @@ -1786,7 +1784,7 @@ msgstr "Diario" msgid "Dark Mode" msgstr "Modo Oscuro" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:68 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:67 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:148 #: packages/ui/primitives/document-flow/add-fields.tsx:945 #: packages/ui/primitives/document-flow/types.ts:53 @@ -1851,25 +1849,25 @@ msgstr "eliminar {0}" msgid "delete {teamName}" msgstr "eliminar {teamName}" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:136 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:133 msgid "Delete account" msgstr "Eliminar cuenta" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:97 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:104 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:94 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:101 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:86 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:93 msgid "Delete Account" msgstr "Eliminar Cuenta" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:125 msgid "Delete document" msgstr "Eliminar documento" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:85 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:98 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:105 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:75 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:95 msgid "Delete Document" msgstr "Eliminar Documento" @@ -1886,11 +1884,11 @@ msgstr "Eliminar equipo" msgid "Delete team member" msgstr "Eliminar miembro del equipo" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:78 msgid "Delete the document. This action is irreversible so proceed with caution." msgstr "Eliminar el documento. Esta acción es irreversible, así que proceda con precaución." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:86 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:83 msgid "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." msgstr "Eliminar la cuenta de usuario y todo su contenido. Esta acción es irreversible y cancelará su suscripción, así que proceda con cautela." @@ -1915,7 +1913,7 @@ msgstr "Eliminando cuenta..." msgid "Details" msgstr "Detalles" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:73 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:72 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:244 msgid "Device" msgstr "Dispositivo" @@ -1934,8 +1932,8 @@ msgstr "enlace directo" msgid "Direct link" msgstr "Enlace directo" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:155 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:226 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:154 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 msgid "Direct Link" msgstr "Enlace directo" @@ -2060,7 +2058,7 @@ msgstr "Documento Aprobado" #: apps/web/src/app/(signing)/sign/[token]/no-longer-available.tsx:40 #: packages/lib/server-only/document/delete-document.ts:251 -#: packages/lib/server-only/document/super-delete-document.ts:98 +#: packages/lib/server-only/document/super-delete-document.ts:101 msgid "Document Cancelled" msgstr "Documento cancelado" @@ -2101,7 +2099,7 @@ msgstr "Documento creado usando un <0>enlace directo" msgid "Document Creation" msgstr "Creación de documento" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:50 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:182 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:60 #: packages/lib/utils/document-audit-logs.ts:306 @@ -2112,7 +2110,7 @@ msgstr "Documento eliminado" msgid "Document deleted email" msgstr "Correo electrónico de documento eliminado" -#: packages/lib/server-only/document/send-delete-email.ts:82 +#: packages/lib/server-only/document/send-delete-email.ts:85 msgid "Document Deleted!" msgstr "¡Documento eliminado!" @@ -2302,7 +2300,7 @@ msgstr "Descargar registros de auditoría" msgid "Download Certificate" msgstr "Descargar certificado" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:209 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/formatter/document-status.tsx:34 #: packages/lib/constants/document.ts:13 msgid "Draft" @@ -2385,7 +2383,7 @@ msgstr "Divulgación de Firma Electrónica" #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 -#: apps/web/src/components/forms/profile.tsx:122 +#: apps/web/src/components/forms/profile.tsx:113 #: apps/web/src/components/forms/signin.tsx:339 #: apps/web/src/components/forms/signup.tsx:176 #: packages/lib/constants/document.ts:28 @@ -2490,7 +2488,7 @@ msgstr "Habilitar firma mecanografiada" msgid "Enable Typed Signatures" msgstr "Habilitar firmas escritas" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:123 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:114 #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:138 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:74 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:142 @@ -2536,6 +2534,7 @@ msgid "Enter your text here" msgstr "Ingresa tu texto aquí" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:66 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:80 @@ -2544,8 +2543,7 @@ msgstr "Ingresa tu texto aquí" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:280 #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:325 #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:110 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:116 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:111 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:155 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:186 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:226 @@ -2666,7 +2664,7 @@ msgstr "Campo no firmado" msgid "Fields" msgstr "Campos" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:129 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:124 msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "El archivo no puede ser mayor a {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" @@ -2706,7 +2704,7 @@ msgstr "Firma gratuita" #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:272 -#: apps/web/src/components/forms/profile.tsx:110 +#: apps/web/src/components/forms/profile.tsx:101 #: apps/web/src/components/forms/v2/signup.tsx:316 msgid "Full Name" msgstr "Nombre completo" @@ -2894,10 +2892,6 @@ msgstr "Código inválido. Por favor, intenta nuevamente." msgid "Invalid email" msgstr "Email inválido" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:104 -msgid "Invalid file" -msgstr "Archivo inválido" - #: apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx:33 #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:36 msgid "Invalid link" @@ -2920,11 +2914,11 @@ msgstr "¡Invitación aceptada!" msgid "Invitation declined" msgstr "Invitación rechazada" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:78 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 msgid "Invitation has been deleted" msgstr "La invitación ha sido eliminada" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:61 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 msgid "Invitation has been resent" msgstr "La invitación ha sido reenviada" @@ -2944,7 +2938,7 @@ msgstr "Invitar a miembros" msgid "Invite team members" msgstr "Invitar a miembros del equipo" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:126 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:125 msgid "Invited At" msgstr "Invitado el" @@ -3641,7 +3635,7 @@ msgid "Payment overdue" msgstr "Pago atrasado" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:131 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:206 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 #: apps/web/src/components/document/document-read-only-fields.tsx:89 @@ -3865,7 +3859,7 @@ msgid "Profile is currently <0>visible." msgstr "El perfil está actualmente <0>visible." #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:74 -#: apps/web/src/components/forms/profile.tsx:72 +#: apps/web/src/components/forms/profile.tsx:71 msgid "Profile updated" msgstr "Perfil actualizado" @@ -3956,7 +3950,7 @@ msgid "Recent documents" msgstr "Documentos recientes" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:114 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:275 #: packages/lib/utils/document-audit-logs.ts:354 #: packages/lib/utils/document-audit-logs.ts:369 @@ -4071,7 +4065,7 @@ msgstr "Recordatorio: Por favor {recipientActionVerb} tu documento" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:89 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:159 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:54 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:164 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:163 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:165 #: apps/web/src/components/forms/avatar-image.tsx:166 #: packages/ui/primitives/document-flow/add-fields.tsx:1128 @@ -4112,7 +4106,7 @@ msgid "Reseal document" msgstr "Re-sellar documento" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:118 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:152 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:151 #: packages/ui/primitives/document-flow/add-subject.tsx:84 msgid "Resend" msgstr "Reenviar" @@ -4197,7 +4191,7 @@ msgstr "Revocar acceso" #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:318 #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:163 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:80 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:121 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:120 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:103 msgid "Role" msgstr "Rol" @@ -4529,7 +4523,7 @@ msgstr "Regístrate con OIDC" #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:286 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:422 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:301 -#: apps/web/src/components/forms/profile.tsx:132 +#: apps/web/src/components/forms/profile.tsx:123 #: packages/ui/primitives/document-flow/add-fields.tsx:841 #: packages/ui/primitives/document-flow/field-icon.tsx:52 #: packages/ui/primitives/document-flow/types.ts:49 @@ -4627,7 +4621,7 @@ msgstr "Las inscripciones están deshabilitadas." msgid "Since {0}" msgstr "Desde {0}" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:102 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:93 msgid "Site Banner" msgstr "Banner del sitio" @@ -4677,8 +4671,8 @@ msgstr "Algunos firmantes no han sido asignados a un campo de firma. Asigne al m #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:64 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:83 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:33 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:65 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:82 #: apps/web/src/components/(teams)/team-billing-portal-button.tsx:29 #: packages/ui/components/document/document-share-button.tsx:51 msgid "Something went wrong" @@ -4717,6 +4711,10 @@ msgstr "¡Algo salió mal!" msgid "Something went wrong." msgstr "Algo salió mal." +#: apps/web/src/components/forms/token.tsx:143 +msgid "Something went wrong. Please try again later." +msgstr "" + #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:240 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:154 msgid "Something went wrong. Please try again or contact support." @@ -4730,7 +4728,7 @@ msgstr "Lo sentimos, no pudimos descargar los registros de auditoría. Por favor msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Lo sentimos, no pudimos descargar el certificado. Por favor, intenta de nuevo más tarde." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:133 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:132 msgid "Source" msgstr "Fuente" @@ -4741,7 +4739,7 @@ msgstr "Estadísticas" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:73 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:125 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:124 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:94 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" @@ -4796,8 +4794,8 @@ msgstr "Suscripciones" #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:92 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:67 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:27 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:59 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:76 #: apps/web/src/components/forms/public-profile-form.tsx:80 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:132 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:168 @@ -4879,7 +4877,7 @@ msgstr "Invitación del equipo" msgid "Team invitations have been sent." msgstr "Las invitaciones al equipo han sido enviadas." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:107 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:106 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:84 msgid "Team Member" msgstr "Miembro del equipo" @@ -4956,8 +4954,8 @@ msgstr "Equipos restringidos" #: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:64 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:143 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:142 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:222 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:148 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:269 @@ -5020,7 +5018,7 @@ msgstr "Las plantillas te permiten generar documentos rápidamente con destinata msgid "Text" msgstr "Texto" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:166 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:157 msgid "Text Color" msgstr "Color de texto" @@ -5032,7 +5030,7 @@ msgstr "Gracias por usar Documenso para realizar su firma electrónica de docume msgid "That's okay, it happens! Click the button below to reset your password." msgstr "Está bien, ¡sucede! Haz clic en el botón de abajo para restablecer tu contraseña." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "La cuenta ha sido eliminada con éxito." @@ -5056,7 +5054,7 @@ msgstr "La autenticación requerida para que los destinatarios firmen el campo d msgid "The authentication required for recipients to view the document." msgstr "La autenticación requerida para que los destinatarios vean el documento." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:197 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:188 msgid "The content to show in the banner, HTML is allowed" msgstr "El contenido que se mostrará en el banner, se permite HTML" @@ -5191,7 +5189,7 @@ msgstr "El nombre del firmante" msgid "The signing link has been copied to your clipboard." msgstr "El enlace de firma ha sido copiado a tu portapapeles." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:105 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:96 msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." msgstr "El banner del sitio es un mensaje que se muestra en la parte superior del sitio. Se puede usar para mostrar información importante a tus usuarios." @@ -5223,7 +5221,7 @@ msgstr "La plantilla será eliminada de tu perfil" msgid "The template you are looking for may have been disabled, deleted or may have never existed." msgstr "La plantilla que buscas puede haber sido desactivada, eliminada o puede que nunca haya existido." -#: apps/web/src/components/forms/token.tsx:106 +#: apps/web/src/components/forms/token.tsx:107 msgid "The token was copied to your clipboard." msgstr "El token fue copiado a tu portapapeles." @@ -5266,8 +5264,8 @@ msgstr "Aún no hay documentos completados. Los documentos que hayas creado o re msgid "They have permission on your behalf to:" msgstr "Tienen permiso en tu nombre para:" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:110 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:109 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:100 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:106 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:98 msgid "This action is not reversible. Please be certain." msgstr "Esta acción no es reversible. Por favor, asegúrate." @@ -5320,11 +5318,11 @@ msgstr "Este documento es actualmente un borrador y no ha sido enviado" msgid "This document is password protected. Please enter the password to view the document." msgstr "Este documento está protegido por contraseña. Por favor ingrese la contraseña para ver el documento." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:147 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:146 msgid "This document was created by you or a team member using the template above." msgstr "Este documento fue creado por ti o un miembro del equipo usando la plantilla anterior." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:159 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:158 msgid "This document was created using a direct link." msgstr "Este documento fue creado usando un enlace directo." @@ -5441,7 +5439,7 @@ msgstr "Esto se enviará al propietario del documento una vez que el documento s msgid "This will override any global settings." msgstr "Esto anulará cualquier configuración global." -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:71 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:70 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Hora" @@ -5458,7 +5456,7 @@ msgstr "Zona horaria" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:110 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 #: packages/ui/primitives/document-flow/add-settings.tsx:166 msgid "Title" @@ -5472,13 +5470,13 @@ msgstr "Para aceptar esta invitación debes crear una cuenta." msgid "To change the email you must remove and add a new email address." msgstr "Para cambiar el correo electrónico debes eliminar y añadir una nueva dirección de correo electrónico." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:116 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:113 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:111 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:101 msgid "To confirm, please enter the accounts email address <0/>({0})." msgstr "Para confirmar, por favor ingresa la dirección de correo electrónico de la cuenta <0/>({0})." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:117 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:107 msgid "To confirm, please enter the reason" msgstr "Para confirmar, por favor ingresa la razón" @@ -5523,11 +5521,11 @@ msgstr "Activa el interruptor para mostrar tu perfil al público." msgid "Token" msgstr "Token" -#: apps/web/src/components/forms/token.tsx:105 +#: apps/web/src/components/forms/token.tsx:106 msgid "Token copied to clipboard" msgstr "Token copiado al portapapeles" -#: apps/web/src/components/forms/token.tsx:126 +#: apps/web/src/components/forms/token.tsx:127 msgid "Token created" msgstr "Token creado" @@ -5645,7 +5643,7 @@ msgstr "No se puede cambiar el idioma en este momento. Por favor intenta nuevame msgid "Unable to copy recovery code" msgstr "No se pudo copiar el código de recuperación" -#: apps/web/src/components/forms/token.tsx:110 +#: apps/web/src/components/forms/token.tsx:111 msgid "Unable to copy token" msgstr "No se pudo copiar el token" @@ -5657,7 +5655,7 @@ msgstr "No se pudo crear acceso directo a la plantilla. Por favor, inténtalo de msgid "Unable to decline this team invitation at this time." msgstr "No se pudo rechazar esta invitación al equipo en este momento." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:84 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 msgid "Unable to delete invitation. Please try again." msgstr "No se pudo eliminar la invitación. Por favor, inténtalo de nuevo." @@ -5694,7 +5692,7 @@ msgstr "No se pudo eliminar la verificación de correo electrónico en este mome msgid "Unable to remove team email at this time. Please try again." msgstr "No se pudo eliminar el correo electrónico del equipo en este momento. Por favor, inténtalo de nuevo." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:67 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 msgid "Unable to resend invitation. Please try again." msgstr "No se pudo reenviar la invitación. Por favor, inténtalo de nuevo." @@ -5751,7 +5749,7 @@ msgstr "No pagado" msgid "Update" msgstr "Actualizar" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:211 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:202 msgid "Update Banner" msgstr "Actualizar banner" @@ -5763,7 +5761,7 @@ msgstr "Actualizar clave de acceso" msgid "Update password" msgstr "Actualizar contraseña" -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Update profile" msgstr "Actualizar perfil" @@ -5806,7 +5804,7 @@ msgstr "Actualizar webhook" msgid "Updating password..." msgstr "Actualizando contraseña..." -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Updating profile..." msgstr "Actualizando perfil..." @@ -5877,7 +5875,7 @@ msgstr "Usar Código de Respaldo" msgid "Use Template" msgstr "Usar Plantilla" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:76 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:75 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "Usuario" @@ -5890,6 +5888,7 @@ msgstr "El usuario no tiene contraseña." msgid "User ID" msgstr "ID de Usuario" +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:61 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:55 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:55 msgid "User not found." @@ -6106,10 +6105,6 @@ msgstr "Encontramos un error al eliminar el enlace directo de la plantilla. Por msgid "We encountered an error while updating the webhook. Please try again later." msgstr "Encontramos un error al actualizar el webhook. Por favor, inténtalo de nuevo más tarde." -#: apps/web/src/components/forms/token.tsx:145 -msgid "We encountered an unknown error while attempting create the new token. Please try again later." -msgstr "Encontramos un error desconocido al intentar crear el nuevo token. Por favor, inténtalo de nuevo más tarde." - #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:102 msgid "We encountered an unknown error while attempting to add this email. Please try again later." msgstr "Encontramos un error desconocido al intentar añadir este correo electrónico. Por favor, inténtalo de nuevo más tarde." @@ -6134,7 +6129,6 @@ msgstr "Encontramos un error desconocido al intentar eliminar este equipo. Por f msgid "We encountered an unknown error while attempting to delete this token. Please try again later." msgstr "Encontramos un error desconocido al intentar eliminar este token. Por favor, inténtalo de nuevo más tarde." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:70 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:58 msgid "We encountered an unknown error while attempting to delete your account. Please try again later." msgstr "Encontramos un error desconocido al intentar eliminar tu cuenta. Por favor, inténtalo de nuevo más tarde." @@ -6175,7 +6169,6 @@ msgstr "Encontramos un error desconocido al intentar revocar el acceso. Por favo msgid "We encountered an unknown error while attempting to save your details. Please try again later." msgstr "Encontramos un error desconocido al intentar guardar tus datos. Por favor, inténtalo de nuevo más tarde." -#: apps/web/src/components/forms/profile.tsx:89 #: apps/web/src/components/forms/signin.tsx:273 #: apps/web/src/components/forms/signin.tsx:288 #: apps/web/src/components/forms/signin.tsx:304 @@ -6189,7 +6182,7 @@ msgstr "Encontramos un error desconocido al intentar iniciar sesión. Por favor, msgid "We encountered an unknown error while attempting to sign you Up. Please try again later." msgstr "Encontramos un error desconocido al intentar registrarte. Por favor, inténtalo de nuevo más tarde." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:92 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:84 msgid "We encountered an unknown error while attempting to update the banner. Please try again later." msgstr "Encontramos un error desconocido al intentar actualizar el banner. Por favor, inténtalo de nuevo más tarde." @@ -6218,6 +6211,10 @@ msgstr "Encontramos un error desconocido al intentar actualizar tu equipo. Por f msgid "We encountered an unknown error while attempting update the team email. Please try again later." msgstr "Encontramos un error desconocido al intentar actualizar el correo electrónico del equipo. Por favor, inténtalo de nuevo más tarde." +#: apps/web/src/components/forms/profile.tsx:81 +msgid "We encountered an unknown error while attempting update your profile. Please try again later." +msgstr "" + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:80 msgid "We have sent a confirmation email for verification." msgstr "Hemos enviado un correo electrónico de confirmación para la verificación." @@ -6230,7 +6227,7 @@ msgstr "Necesitamos un nombre de usuario para crear tu perfil" msgid "We need your signature to sign documents" msgstr "Necesitamos su firma para firmar documentos" -#: apps/web/src/components/forms/token.tsx:111 +#: apps/web/src/components/forms/token.tsx:112 msgid "We were unable to copy the token to your clipboard. Please try again." msgstr "No pudimos copiar el token en tu portapapeles. Por favor, inténtalo de nuevo." @@ -6450,6 +6447,10 @@ msgstr "Actualmente estás actualizando la clave <0>{passkeyName}." msgid "You are not a member of this team." msgstr "No eres miembro de este equipo." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:62 +msgid "You are not authorized to delete this user." +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:56 msgid "You are not authorized to disable this user." msgstr "No estás autorizado para deshabilitar a este usuario." @@ -6514,7 +6515,7 @@ msgstr "No puedes modificar a un miembro del equipo que tenga un rol más alto q msgid "You cannot upload documents at this time." msgstr "No puede cargar documentos en este momento." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:105 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:103 msgid "You cannot upload encrypted PDFs" msgstr "No puedes subir PDFs encriptados" @@ -6522,6 +6523,10 @@ msgstr "No puedes subir PDFs encriptados" msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "Actualmente no tienes un registro de cliente, esto no debería suceder. Por favor contacta a soporte para obtener asistencia." +#: apps/web/src/components/forms/token.tsx:141 +msgid "You do not have permission to create a token for this team" +msgstr "" + #: packages/email/template-components/template-document-cancel.tsx:35 msgid "You don't need to sign it anymore." msgstr "Ya no necesitas firmarlo." @@ -6586,6 +6591,10 @@ msgstr "Aún no has creado ni recibido documentos. Para crear un documento, por msgid "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" msgstr "Has alcanzado el límite máximo de {0} plantillas directas. <0>¡Actualiza tu cuenta para continuar!" +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 +msgid "You have reached your document limit for this month. Please upgrade your plan." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:56 #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." @@ -6687,7 +6696,7 @@ msgstr "Tu cuenta ha sido eliminada con éxito." msgid "Your avatar has been updated successfully." msgstr "Tu avatar ha sido actualizado con éxito." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:75 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 msgid "Your banner has been updated successfully." msgstr "Tu banner ha sido actualizado con éxito." @@ -6707,7 +6716,7 @@ msgstr "Tu plan actual está vencido. Por favor actualiza tu información de pag msgid "Your direct signing templates" msgstr "Tus {0} plantillas de firma directa" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:128 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:123 msgid "Your document failed to upload." msgstr "Tu documento no se pudo cargar." @@ -6778,7 +6787,7 @@ msgstr "Tu contraseña ha sido actualizada." msgid "Your payment for teams is overdue. Please settle the payment to avoid any service disruptions." msgstr "Tu pago por equipos está vencido. Por favor, salda el pago para evitar interrupciones en el servicio." -#: apps/web/src/components/forms/profile.tsx:73 +#: apps/web/src/components/forms/profile.tsx:72 msgid "Your profile has been updated successfully." msgstr "Tu perfil ha sido actualizado con éxito." diff --git a/packages/lib/translations/fr/web.po b/packages/lib/translations/fr/web.po index 1ca77b57d..e6cd7de98 100644 --- a/packages/lib/translations/fr/web.po +++ b/packages/lib/translations/fr/web.po @@ -108,7 +108,7 @@ msgstr "{0} a rejoint l'équipe {teamName} sur Documenso" msgid "{0} left the team {teamName} on Documenso" msgstr "{0} a quitté l'équipe {teamName} sur Documenso" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:150 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:145 msgid "{0} of {1} documents remaining this month." msgstr "{0} des {1} documents restants ce mois-ci." @@ -492,7 +492,7 @@ msgstr "Un moyen d'imprimer ou de télécharger des documents pour vos dossiers" msgid "A new member has joined your team" msgstr "Un nouveau membre a rejoint votre équipe" -#: apps/web/src/components/forms/token.tsx:127 +#: apps/web/src/components/forms/token.tsx:128 msgid "A new token was created successfully." msgstr "Un nouveau token a été créé avec succès." @@ -595,7 +595,7 @@ msgstr "Invitation d'équipe acceptée" msgid "Account Authentication" msgstr "Authentification de compte" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:50 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:47 msgid "Account deleted" msgstr "Compte supprimé" @@ -617,19 +617,19 @@ msgid "Acknowledgment" msgstr "Reconnaissance" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-dropdown.tsx:107 -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:98 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:97 #: apps/web/src/app/(dashboard)/documents/data-table-action-dropdown.tsx:117 #: apps/web/src/app/(dashboard)/settings/public-profile/public-templates-data-table.tsx:159 -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:116 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:115 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:46 msgid "Action" msgstr "Action" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:79 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:176 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:175 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:140 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:131 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:140 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:130 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:139 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:116 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:125 msgid "Actions" @@ -868,16 +868,12 @@ msgstr "Un e-mail contenant une invitation sera envoyé à chaque membre." msgid "An email requesting the transfer of this team has been sent." msgstr "Un e-mail demandant le transfert de cette équipe a été envoyé." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:60 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:83 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:59 #: apps/web/src/app/(signing)/sign/[token]/complete/claim-account.tsx:100 #: apps/web/src/components/forms/avatar-image.tsx:122 #: apps/web/src/components/forms/password.tsx:92 -#: apps/web/src/components/forms/profile.tsx:81 #: apps/web/src/components/forms/reset-password.tsx:95 #: apps/web/src/components/forms/signup.tsx:112 -#: apps/web/src/components/forms/token.tsx:137 +#: apps/web/src/components/forms/token.tsx:146 #: apps/web/src/components/forms/v2/signup.tsx:166 msgid "An error occurred" msgstr "Une erreur est survenue" @@ -907,6 +903,10 @@ msgstr "Une erreur est survenue lors de la création du document à partir d'un msgid "An error occurred while creating the webhook. Please try again." msgstr "Une erreur est survenue lors de la création du webhook. Veuillez réessayer." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:63 +msgid "An error occurred while deleting the user." +msgstr "" + #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:120 msgid "An error occurred while disabling direct link signing." msgstr "Une erreur est survenue lors de la désactivation de la signature par lien direct." @@ -1007,13 +1007,12 @@ msgstr "Une erreur est survenue lors de la mise à jour de la signature." msgid "An error occurred while updating your profile." msgstr "Une erreur est survenue lors de la mise à jour de votre profil." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:117 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:108 msgid "An error occurred while uploading your document." msgstr "Une erreur est survenue lors du téléchargement de votre document." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:66 -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:89 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:65 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:58 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:81 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:55 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-transfer-status.tsx:54 #: apps/web/src/components/(dashboard)/common/command-menu.tsx:301 @@ -1030,7 +1029,7 @@ msgstr "Une erreur est survenue lors du téléchargement de votre document." #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:100 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:93 #: apps/web/src/components/forms/avatar-image.tsx:94 -#: apps/web/src/components/forms/profile.tsx:87 +#: apps/web/src/components/forms/profile.tsx:79 #: apps/web/src/components/forms/public-profile-claim-dialog.tsx:113 #: apps/web/src/components/forms/public-profile-form.tsx:104 #: apps/web/src/components/forms/signin.tsx:249 @@ -1040,7 +1039,6 @@ msgstr "Une erreur est survenue lors du téléchargement de votre document." #: apps/web/src/components/forms/signin.tsx:302 #: apps/web/src/components/forms/signup.tsx:124 #: apps/web/src/components/forms/signup.tsx:138 -#: apps/web/src/components/forms/token.tsx:143 #: apps/web/src/components/forms/v2/signup.tsx:187 #: apps/web/src/components/forms/v2/signup.tsx:201 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:140 @@ -1052,11 +1050,11 @@ msgstr "Une erreur inconnue est survenue" msgid "Any payment methods attached to this team will remain attached to this team. Please contact us if you need to update this information." msgstr "Tous les moyens de paiement associés à cette équipe resteront associés à cette équipe. Veuillez nous contacter si vous avez besoin de mettre à jour ces informations." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:220 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:219 msgid "Any Source" msgstr "Toute source" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:200 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:199 msgid "Any Status" msgstr "Tout statut" @@ -1169,7 +1167,7 @@ msgstr "Retour" msgid "Back to Documents" msgstr "Retour aux documents" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:146 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:137 msgid "Background Color" msgstr "Couleur d'arrière-plan" @@ -1182,7 +1180,7 @@ msgstr "Code de sauvegarde" msgid "Backup codes" msgstr "Codes de sauvegarde" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:73 msgid "Banner Updated" msgstr "Bannière mise à jour" @@ -1219,7 +1217,7 @@ msgstr "Préférences de branding" msgid "Branding preferences updated" msgstr "Préférences de branding mises à jour" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:97 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:96 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:48 msgid "Browser" msgstr "Navigateur" @@ -1461,7 +1459,7 @@ msgstr "Compléter la signature" msgid "Complete Viewing" msgstr "Compléter la visualisation" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:203 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:202 #: apps/web/src/components/(dashboard)/avatar/stack-avatars-with-tooltip.tsx:77 #: apps/web/src/components/formatter/document-status.tsx:28 #: packages/email/template-components/template-document-completed.tsx:35 @@ -1544,7 +1542,7 @@ msgstr "Consentement aux transactions électroniques" msgid "Contact Information" msgstr "Coordonnées" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:189 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:180 msgid "Content" msgstr "Contenu" @@ -1742,7 +1740,7 @@ msgstr "Créez votre compte et commencez à utiliser la signature de documents #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-information.tsx:36 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:48 #: apps/web/src/app/(dashboard)/settings/security/passkeys/user-passkeys-data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:104 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:103 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-information.tsx:35 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:56 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:272 @@ -1786,7 +1784,7 @@ msgstr "Quotidien" msgid "Dark Mode" msgstr "Mode sombre" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:68 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:67 #: apps/web/src/app/(signing)/sign/[token]/date-field.tsx:148 #: packages/ui/primitives/document-flow/add-fields.tsx:945 #: packages/ui/primitives/document-flow/types.ts:53 @@ -1851,25 +1849,25 @@ msgstr "supprimer {0}" msgid "delete {teamName}" msgstr "supprimer {teamName}" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:136 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:133 msgid "Delete account" msgstr "Supprimer le compte" -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:97 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:104 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:94 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:101 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:72 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:86 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:93 msgid "Delete Account" msgstr "Supprimer le compte" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:135 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:125 msgid "Delete document" msgstr "Supprimer le document" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:85 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:98 -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:105 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:75 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:95 msgid "Delete Document" msgstr "Supprimer le document" @@ -1886,11 +1884,11 @@ msgstr "Supprimer l'équipe" msgid "Delete team member" msgstr "Supprimer le membre de l'équipe" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:88 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:78 msgid "Delete the document. This action is irreversible so proceed with caution." msgstr "Supprimez le document. Cette action est irréversible, soyez prudent." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:86 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:83 msgid "Delete the users account and all its contents. This action is irreversible and will cancel their subscription, so proceed with caution." msgstr "Supprimez le compte de l'utilisateur et tout son contenu. Cette action est irréversible et annulera son abonnement, soyez prudent." @@ -1915,7 +1913,7 @@ msgstr "Suppression du compte..." msgid "Details" msgstr "Détails" -#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:73 +#: apps/web/src/app/(dashboard)/settings/security/activity/user-security-activity-data-table.tsx:72 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/certificate/page.tsx:244 msgid "Device" msgstr "Appareil" @@ -1934,8 +1932,8 @@ msgstr "lien direct" msgid "Direct link" msgstr "Lien direct" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:155 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:226 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:154 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:225 msgid "Direct Link" msgstr "Lien direct" @@ -2060,7 +2058,7 @@ msgstr "Document Approuvé" #: apps/web/src/app/(signing)/sign/[token]/no-longer-available.tsx:40 #: packages/lib/server-only/document/delete-document.ts:251 -#: packages/lib/server-only/document/super-delete-document.ts:98 +#: packages/lib/server-only/document/super-delete-document.ts:101 msgid "Document Cancelled" msgstr "Document Annulé" @@ -2101,7 +2099,7 @@ msgstr "Document créé en utilisant un <0>lien direct" msgid "Document Creation" msgstr "Création de document" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:50 #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view.tsx:182 #: apps/web/src/app/(dashboard)/documents/delete-document-dialog.tsx:60 #: packages/lib/utils/document-audit-logs.ts:306 @@ -2112,7 +2110,7 @@ msgstr "Document supprimé" msgid "Document deleted email" msgstr "E-mail de document supprimé" -#: packages/lib/server-only/document/send-delete-email.ts:82 +#: packages/lib/server-only/document/send-delete-email.ts:85 msgid "Document Deleted!" msgstr "Document Supprimé !" @@ -2302,7 +2300,7 @@ msgstr "Télécharger les journaux d'audit" msgid "Download Certificate" msgstr "Télécharger le certificat" -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:209 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:208 #: apps/web/src/components/formatter/document-status.tsx:34 #: packages/lib/constants/document.ts:13 msgid "Draft" @@ -2385,7 +2383,7 @@ msgstr "Divulgation de signature électronique" #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:169 #: apps/web/src/components/(teams)/dialogs/update-team-email-dialog.tsx:153 #: apps/web/src/components/forms/forgot-password.tsx:81 -#: apps/web/src/components/forms/profile.tsx:122 +#: apps/web/src/components/forms/profile.tsx:113 #: apps/web/src/components/forms/signin.tsx:339 #: apps/web/src/components/forms/signup.tsx:176 #: packages/lib/constants/document.ts:28 @@ -2490,7 +2488,7 @@ msgstr "Activer la signature dactylographiée" msgid "Enable Typed Signatures" msgstr "Activer les signatures tapées" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:123 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:114 #: apps/web/src/app/(dashboard)/settings/webhooks/[id]/page.tsx:138 #: apps/web/src/app/(dashboard)/settings/webhooks/page.tsx:74 #: apps/web/src/app/(teams)/t/[teamUrl]/settings/webhooks/[id]/page.tsx:142 @@ -2536,6 +2534,7 @@ msgid "Enter your text here" msgstr "Entrez votre texte ici" #: apps/web/src/app/(dashboard)/admin/documents/[id]/admin-actions.tsx:41 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:66 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:60 #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:80 @@ -2544,8 +2543,7 @@ msgstr "Entrez votre texte ici" #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:280 #: apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx:325 #: apps/web/src/app/(dashboard)/documents/move-document-dialog.tsx:57 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:110 -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:116 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:111 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:155 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:186 #: apps/web/src/app/(dashboard)/templates/[id]/edit/edit-template.tsx:226 @@ -2666,7 +2664,7 @@ msgstr "Champ non signé" msgid "Fields" msgstr "Champs" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:129 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:124 msgid "File cannot be larger than {APP_DOCUMENT_UPLOAD_SIZE_LIMIT}MB" msgstr "Le fichier ne peut pas dépasser {APP_DOCUMENT_UPLOAD_SIZE_LIMIT} Mo" @@ -2706,7 +2704,7 @@ msgstr "Signature gratuite" #: apps/web/src/app/(signing)/sign/[token]/name-field.tsx:193 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:392 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:272 -#: apps/web/src/components/forms/profile.tsx:110 +#: apps/web/src/components/forms/profile.tsx:101 #: apps/web/src/components/forms/v2/signup.tsx:316 msgid "Full Name" msgstr "Nom complet" @@ -2894,10 +2892,6 @@ msgstr "Code invalide. Veuillez réessayer." msgid "Invalid email" msgstr "Email invalide" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:104 -msgid "Invalid file" -msgstr "Fichier invalide" - #: apps/web/src/app/(unauthenticated)/team/verify/email/[token]/page.tsx:33 #: apps/web/src/app/(unauthenticated)/team/verify/transfer/[token]/page.tsx:36 msgid "Invalid link" @@ -2920,11 +2914,11 @@ msgstr "Invitation acceptée !" msgid "Invitation declined" msgstr "Invitation refusée" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:78 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 msgid "Invitation has been deleted" msgstr "L'invitation a été supprimée" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:61 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 msgid "Invitation has been resent" msgstr "L'invitation a été renvoyée" @@ -2944,7 +2938,7 @@ msgstr "Inviter des membres" msgid "Invite team members" msgstr "Inviter des membres d'équipe" -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:126 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:125 msgid "Invited At" msgstr "Invité à" @@ -3641,7 +3635,7 @@ msgid "Payment overdue" msgstr "Paiement en retard" #: apps/web/src/app/(dashboard)/documents/[id]/document-page-view-recipients.tsx:131 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:206 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:205 #: apps/web/src/components/(teams)/tables/teams-member-page-data-table.tsx:82 #: apps/web/src/components/(teams)/tables/user-settings-teams-page-data-table.tsx:77 #: apps/web/src/components/document/document-read-only-fields.tsx:89 @@ -3865,7 +3859,7 @@ msgid "Profile is currently <0>visible." msgstr "Le profil est actuellement <0>visible." #: apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx:74 -#: apps/web/src/components/forms/profile.tsx:72 +#: apps/web/src/components/forms/profile.tsx:71 msgid "Profile updated" msgstr "Profil mis à jour" @@ -3956,7 +3950,7 @@ msgid "Recent documents" msgstr "Documents récents" #: apps/web/src/app/(dashboard)/documents/data-table.tsx:63 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:115 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:114 #: apps/web/src/app/(dashboard)/templates/template-direct-link-dialog.tsx:275 #: packages/lib/utils/document-audit-logs.ts:354 #: packages/lib/utils/document-audit-logs.ts:369 @@ -4071,7 +4065,7 @@ msgstr "Rappel : Veuillez {recipientActionVerb} votre document" #: apps/web/src/app/(teams)/t/[teamUrl]/settings/team-email-dropdown.tsx:89 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:159 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:54 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:164 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:163 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:165 #: apps/web/src/components/forms/avatar-image.tsx:166 #: packages/ui/primitives/document-flow/add-fields.tsx:1128 @@ -4112,7 +4106,7 @@ msgid "Reseal document" msgstr "Rescellage du document" #: apps/web/src/app/(dashboard)/documents/_action-items/resend-document.tsx:118 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:152 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:151 #: packages/ui/primitives/document-flow/add-subject.tsx:84 msgid "Resend" msgstr "Renvoyer" @@ -4197,7 +4191,7 @@ msgstr "Révoquer l'accès" #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:318 #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:163 #: apps/web/src/components/(teams)/tables/current-user-teams-data-table.tsx:80 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:121 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:120 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:103 msgid "Role" msgstr "Rôle" @@ -4529,7 +4523,7 @@ msgstr "S'inscrire avec OIDC" #: apps/web/src/app/(signing)/sign/[token]/signature-field.tsx:286 #: apps/web/src/app/embed/direct/[[...url]]/client.tsx:422 #: apps/web/src/app/embed/sign/[[...url]]/client.tsx:301 -#: apps/web/src/components/forms/profile.tsx:132 +#: apps/web/src/components/forms/profile.tsx:123 #: packages/ui/primitives/document-flow/add-fields.tsx:841 #: packages/ui/primitives/document-flow/field-icon.tsx:52 #: packages/ui/primitives/document-flow/types.ts:49 @@ -4627,7 +4621,7 @@ msgstr "Les inscriptions sont désactivées." msgid "Since {0}" msgstr "Depuis {0}" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:102 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:93 msgid "Site Banner" msgstr "Bannière du site" @@ -4677,8 +4671,8 @@ msgstr "Certains signataires n'ont pas été assignés à un champ de signature. #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:64 #: apps/web/src/components/(teams)/dialogs/remove-team-email-dialog.tsx:83 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:33 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:65 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:82 #: apps/web/src/components/(teams)/team-billing-portal-button.tsx:29 #: packages/ui/components/document/document-share-button.tsx:51 msgid "Something went wrong" @@ -4717,6 +4711,10 @@ msgstr "Quelque chose a mal tourné !" msgid "Something went wrong." msgstr "Quelque chose a mal tourné." +#: apps/web/src/components/forms/token.tsx:143 +msgid "Something went wrong. Please try again later." +msgstr "" + #: apps/web/src/app/(dashboard)/settings/security/passkeys/create-passkey-dialog.tsx:240 #: apps/web/src/components/forms/2fa/view-recovery-codes-dialog.tsx:154 msgid "Something went wrong. Please try again or contact support." @@ -4730,7 +4728,7 @@ msgstr "Désolé, nous n'avons pas pu télécharger les journaux d'audit. Veuill msgid "Sorry, we were unable to download the certificate. Please try again later." msgstr "Désolé, nous n'avons pas pu télécharger le certificat. Veuillez réessayer plus tard." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:133 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:132 msgid "Source" msgstr "Source" @@ -4741,7 +4739,7 @@ msgstr "Statistiques" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:81 #: apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx:32 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:73 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:125 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:124 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/page.tsx:94 #: apps/web/src/components/(teams)/tables/team-billing-invoices-data-table.tsx:73 msgid "Status" @@ -4796,8 +4794,8 @@ msgstr "Abonnements" #: apps/web/src/components/(teams)/dialogs/update-team-member-dialog.tsx:92 #: apps/web/src/components/(teams)/forms/update-team-form.tsx:67 #: apps/web/src/components/(teams)/tables/pending-user-teams-data-table-actions.tsx:27 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:60 -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:77 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:59 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:76 #: apps/web/src/components/forms/public-profile-form.tsx:80 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:132 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:168 @@ -4879,7 +4877,7 @@ msgstr "Invitation d'équipe" msgid "Team invitations have been sent." msgstr "Les invitations d'équipe ont été envoyées." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:107 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:106 #: apps/web/src/components/(teams)/tables/team-members-data-table.tsx:84 msgid "Team Member" msgstr "Membre de l'équipe" @@ -4956,8 +4954,8 @@ msgstr "Équipes restreintes" #: apps/web/src/app/(dashboard)/templates/[id]/edit/template-edit-page-view.tsx:64 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:39 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:143 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:223 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:142 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:222 #: apps/web/src/app/(dashboard)/templates/[id]/template-page-view.tsx:148 #: apps/web/src/components/(teams)/dialogs/invite-team-member-dialog.tsx:408 #: apps/web/src/components/templates/manage-public-template-dialog.tsx:269 @@ -5020,7 +5018,7 @@ msgstr "Les modèles vous permettent de générer rapidement des documents avec msgid "Text" msgstr "Texte" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:166 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:157 msgid "Text Color" msgstr "Couleur du texte" @@ -5032,7 +5030,7 @@ msgstr "Merci d'utiliser Documenso pour signer vos documents électroniquement. msgid "That's okay, it happens! Click the button below to reset your password." msgstr "C'est d'accord, cela arrive ! Cliquez sur le bouton ci-dessous pour réinitialiser votre mot de passe." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:51 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:52 msgid "The account has been deleted successfully." msgstr "Le compte a été supprimé avec succès." @@ -5056,7 +5054,7 @@ msgstr "L'authentification requise pour que les destinataires signent le champ d msgid "The authentication required for recipients to view the document." msgstr "L'authentification requise pour que les destinataires visualisent le document." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:197 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:188 msgid "The content to show in the banner, HTML is allowed" msgstr "Le contenu à afficher dans la bannière, le HTML est autorisé" @@ -5191,7 +5189,7 @@ msgstr "Le nom du signataire" msgid "The signing link has been copied to your clipboard." msgstr "Le lien de signature a été copié dans votre presse-papiers." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:105 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:96 msgid "The site banner is a message that is shown at the top of the site. It can be used to display important information to your users." msgstr "La bannière du site est un message affiché en haut du site. Elle peut être utilisée pour afficher des informations importantes à vos utilisateurs." @@ -5223,7 +5221,7 @@ msgstr "Le modèle sera retiré de votre profil" msgid "The template you are looking for may have been disabled, deleted or may have never existed." msgstr "Le modèle que vous recherchez a peut-être été désactivé, supprimé ou n'a peut-être jamais existé." -#: apps/web/src/components/forms/token.tsx:106 +#: apps/web/src/components/forms/token.tsx:107 msgid "The token was copied to your clipboard." msgstr "Le token a été copié dans votre presse-papiers." @@ -5266,8 +5264,8 @@ msgstr "Il n'y a pas encore de documents complétés. Les documents que vous ave msgid "They have permission on your behalf to:" msgstr "Ils ont la permission en votre nom de:" -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:110 -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:109 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:100 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:106 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:98 msgid "This action is not reversible. Please be certain." msgstr "Cette action n'est pas réversible. Veuillez être sûr." @@ -5320,11 +5318,11 @@ msgstr "Ce document est actuellement un brouillon et n'a pas été envoyé" msgid "This document is password protected. Please enter the password to view the document." msgstr "Ce document est protégé par mot de passe. Veuillez entrer le mot de passe pour visualiser le document." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:147 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:146 msgid "This document was created by you or a team member using the template above." msgstr "Ce document a été créé par vous ou un membre de l'équipe en utilisant le modèle ci-dessus." -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:159 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:158 msgid "This document was created using a direct link." msgstr "Ce document a été créé en utilisant un lien direct." @@ -5441,7 +5439,7 @@ msgstr "Cela sera envoyé au propriétaire du document une fois que le document msgid "This will override any global settings." msgstr "Cela remplacera tous les paramètres globaux." -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:71 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:70 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:44 msgid "Time" msgstr "Temps" @@ -5458,7 +5456,7 @@ msgstr "Fuseau horaire" #: apps/web/src/app/(dashboard)/admin/documents/document-results.tsx:67 #: apps/web/src/app/(dashboard)/documents/data-table.tsx:54 -#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:110 +#: apps/web/src/app/(dashboard)/templates/[id]/template-page-view-documents-table.tsx:109 #: apps/web/src/app/(dashboard)/templates/data-table-templates.tsx:61 #: packages/ui/primitives/document-flow/add-settings.tsx:166 msgid "Title" @@ -5472,13 +5470,13 @@ msgstr "Pour accepter cette invitation, vous devez créer un compte." msgid "To change the email you must remove and add a new email address." msgstr "Pour changer l'e-mail, vous devez supprimer et ajouter une nouvelle adresse e-mail." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:116 +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:113 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:111 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:101 msgid "To confirm, please enter the accounts email address <0/>({0})." msgstr "Pour confirmer, veuillez entrer l'adresse e-mail du compte <0/>({0})." -#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:117 +#: apps/web/src/app/(dashboard)/admin/documents/[id]/super-delete-document-dialog.tsx:107 msgid "To confirm, please enter the reason" msgstr "Pour confirmer, veuillez entrer la raison" @@ -5523,11 +5521,11 @@ msgstr "Basculer l'interrupteur pour afficher votre profil au public." msgid "Token" msgstr "Jeton" -#: apps/web/src/components/forms/token.tsx:105 +#: apps/web/src/components/forms/token.tsx:106 msgid "Token copied to clipboard" msgstr "Token copié dans le presse-papiers" -#: apps/web/src/components/forms/token.tsx:126 +#: apps/web/src/components/forms/token.tsx:127 msgid "Token created" msgstr "Token créé" @@ -5645,7 +5643,7 @@ msgstr "Impossible de changer la langue pour le moment. Veuillez réessayer plus msgid "Unable to copy recovery code" msgstr "Impossible de copier le code de récupération" -#: apps/web/src/components/forms/token.tsx:110 +#: apps/web/src/components/forms/token.tsx:111 msgid "Unable to copy token" msgstr "Impossible de copier le token" @@ -5657,7 +5655,7 @@ msgstr "Impossible de créer un accès direct au modèle. Veuillez réessayer pl msgid "Unable to decline this team invitation at this time." msgstr "Impossible de refuser cette invitation d'équipe pour le moment." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:84 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:83 msgid "Unable to delete invitation. Please try again." msgstr "Impossible de supprimer l'invitation. Veuillez réessayer." @@ -5694,7 +5692,7 @@ msgstr "Impossible de retirer la vérification par e-mail pour le moment. Veuill msgid "Unable to remove team email at this time. Please try again." msgstr "Impossible de retirer l'e-mail de l'équipe pour le moment. Veuillez réessayer." -#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:67 +#: apps/web/src/components/(teams)/tables/team-member-invites-data-table.tsx:66 msgid "Unable to resend invitation. Please try again." msgstr "Impossible de renvoyer l'invitation. Veuillez réessayer." @@ -5751,7 +5749,7 @@ msgstr "Non payé" msgid "Update" msgstr "Mettre à jour" -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:211 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:202 msgid "Update Banner" msgstr "Mettre à jour la bannière" @@ -5763,7 +5761,7 @@ msgstr "Mettre à jour la clé d'accès" msgid "Update password" msgstr "Mettre à jour le mot de passe" -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Update profile" msgstr "Mettre à jour le profil" @@ -5806,7 +5804,7 @@ msgstr "Mettre à jour le webhook" msgid "Updating password..." msgstr "Mise à jour du mot de passe..." -#: apps/web/src/components/forms/profile.tsx:151 +#: apps/web/src/components/forms/profile.tsx:142 msgid "Updating profile..." msgstr "Mise à jour du profil..." @@ -5877,7 +5875,7 @@ msgstr "Utiliser le code de secours" msgid "Use Template" msgstr "Utiliser le modèle" -#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:76 +#: apps/web/src/app/(dashboard)/documents/[id]/logs/document-logs-data-table.tsx:75 #: apps/web/src/app/(internal)/%5F%5Fhtmltopdf/audit-log/data-table.tsx:45 msgid "User" msgstr "Utilisateur" @@ -5890,6 +5888,7 @@ msgstr "L'utilisateur n'a pas de mot de passe." msgid "User ID" msgstr "ID utilisateur" +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:61 #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:55 #: apps/web/src/app/(dashboard)/admin/users/[id]/enable-user-dialog.tsx:55 msgid "User not found." @@ -6106,10 +6105,6 @@ msgstr "Une erreur s'est produite lors de la suppression du lien direct vers le msgid "We encountered an error while updating the webhook. Please try again later." msgstr "Une erreur s'est produite lors de la mise à jour du webhook. Veuillez réessayer plus tard." -#: apps/web/src/components/forms/token.tsx:145 -msgid "We encountered an unknown error while attempting create the new token. Please try again later." -msgstr "Une erreur inconnue s'est produite lors de la création de la nouvelle clé. Veuillez réessayer plus tard." - #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:102 msgid "We encountered an unknown error while attempting to add this email. Please try again later." msgstr "Une erreur inconnue s'est produite lors de l'ajout de cet e-mail. Veuillez réessayer plus tard." @@ -6134,7 +6129,6 @@ msgstr "Une erreur inconnue s'est produite lors de la suppression de cette équi msgid "We encountered an unknown error while attempting to delete this token. Please try again later." msgstr "Une erreur inconnue s'est produite lors de la suppression de ce token. Veuillez réessayer plus tard." -#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:70 #: apps/web/src/app/(dashboard)/settings/profile/delete-account-dialog.tsx:58 msgid "We encountered an unknown error while attempting to delete your account. Please try again later." msgstr "Une erreur inconnue s'est produite lors de la suppression de votre compte. Veuillez réessayer plus tard." @@ -6175,7 +6169,6 @@ msgstr "Une erreur inconnue s'est produite lors de la révocation de l'accès. V msgid "We encountered an unknown error while attempting to save your details. Please try again later." msgstr "Une erreur inconnue s'est produite lors de l'enregistrement de vos détails. Veuillez réessayer plus tard." -#: apps/web/src/components/forms/profile.tsx:89 #: apps/web/src/components/forms/signin.tsx:273 #: apps/web/src/components/forms/signin.tsx:288 #: apps/web/src/components/forms/signin.tsx:304 @@ -6189,7 +6182,7 @@ msgstr "Une erreur inconnue s'est produite lors de la connexion. Veuillez réess msgid "We encountered an unknown error while attempting to sign you Up. Please try again later." msgstr "Une erreur inconnue s'est produite lors de l'inscription. Veuillez réessayer plus tard." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:92 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:84 msgid "We encountered an unknown error while attempting to update the banner. Please try again later." msgstr "Une erreur inconnue s'est produite lors de la mise à jour de la bannière. Veuillez réessayer plus tard." @@ -6218,6 +6211,10 @@ msgstr "Une erreur inconnue s'est produite lors de la mise à jour de votre équ msgid "We encountered an unknown error while attempting update the team email. Please try again later." msgstr "Une erreur inconnue s'est produite lors de la mise à jour de l'e-mail de l'équipe. Veuillez réessayer plus tard." +#: apps/web/src/components/forms/profile.tsx:81 +msgid "We encountered an unknown error while attempting update your profile. Please try again later." +msgstr "" + #: apps/web/src/components/(teams)/dialogs/add-team-email-dialog.tsx:80 msgid "We have sent a confirmation email for verification." msgstr "Nous avons envoyé un e-mail de confirmation pour vérification." @@ -6230,7 +6227,7 @@ msgstr "Nous avons besoin d'un nom d'utilisateur pour créer votre profil" msgid "We need your signature to sign documents" msgstr "Nous avons besoin de votre signature pour signer des documents" -#: apps/web/src/components/forms/token.tsx:111 +#: apps/web/src/components/forms/token.tsx:112 msgid "We were unable to copy the token to your clipboard. Please try again." msgstr "Nous n'avons pas pu copier le token dans votre presse-papiers. Veuillez réessayer." @@ -6450,6 +6447,10 @@ msgstr "Vous mettez à jour actuellement la clé de passkey <0>{passkeyName} msgid "You are not a member of this team." msgstr "Vous n'êtes pas membre de cette équipe." +#: apps/web/src/app/(dashboard)/admin/users/[id]/delete-user-dialog.tsx:62 +msgid "You are not authorized to delete this user." +msgstr "" + #: apps/web/src/app/(dashboard)/admin/users/[id]/disable-user-dialog.tsx:56 msgid "You are not authorized to disable this user." msgstr "Vous n'êtes pas autorisé à désactiver cet utilisateur." @@ -6514,7 +6515,7 @@ msgstr "Vous ne pouvez pas modifier un membre de l'équipe qui a un rôle plus msgid "You cannot upload documents at this time." msgstr "Vous ne pouvez pas télécharger de documents pour le moment." -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:105 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:103 msgid "You cannot upload encrypted PDFs" msgstr "Vous ne pouvez pas télécharger de PDF cryptés" @@ -6522,6 +6523,10 @@ msgstr "Vous ne pouvez pas télécharger de PDF cryptés" msgid "You do not currently have a customer record, this should not happen. Please contact support for assistance." msgstr "Vous n'avez actuellement pas de dossier client, cela ne devrait pas se produire. Veuillez contacter le support pour obtenir de l'aide." +#: apps/web/src/components/forms/token.tsx:141 +msgid "You do not have permission to create a token for this team" +msgstr "" + #: packages/email/template-components/template-document-cancel.tsx:35 msgid "You don't need to sign it anymore." msgstr "Vous n'avez plus besoin de le signer." @@ -6586,6 +6591,10 @@ msgstr "Vous n'avez pas encore créé ou reçu de documents. Pour créer un docu msgid "You have reached the maximum limit of {0} direct templates. <0>Upgrade your account to continue!" msgstr "Vous avez atteint la limite maximale de {0} modèles directs. <0>Mettez à niveau votre compte pour continuer !" +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:106 +msgid "You have reached your document limit for this month. Please upgrade your plan." +msgstr "" + #: apps/web/src/app/(dashboard)/documents/upload-document.tsx:56 #: packages/ui/primitives/document-dropzone.tsx:69 msgid "You have reached your document limit." @@ -6687,7 +6696,7 @@ msgstr "Votre compte a été supprimé avec succès." msgid "Your avatar has been updated successfully." msgstr "Votre avatar a été mis à jour avec succès." -#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:75 +#: apps/web/src/app/(dashboard)/admin/site-settings/banner-form.tsx:74 msgid "Your banner has been updated successfully." msgstr "Votre bannière a été mise à jour avec succès." @@ -6707,7 +6716,7 @@ msgstr "Votre plan actuel est en retard. Veuillez mettre à jour vos information msgid "Your direct signing templates" msgstr "Vos modèles de signature directe" -#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:128 +#: apps/web/src/app/(dashboard)/documents/upload-document.tsx:123 msgid "Your document failed to upload." msgstr "Votre document a échoué à se télécharger." @@ -6778,7 +6787,7 @@ msgstr "Votre mot de passe a été mis à jour." msgid "Your payment for teams is overdue. Please settle the payment to avoid any service disruptions." msgstr "Votre paiement pour les équipes est en retard. Veuillez régler le paiement pour éviter toute interruption de service." -#: apps/web/src/components/forms/profile.tsx:73 +#: apps/web/src/components/forms/profile.tsx:72 msgid "Your profile has been updated successfully." msgstr "Votre profil a été mis à jour avec succès." diff --git a/packages/lib/types/field-meta.ts b/packages/lib/types/field-meta.ts index a6d629a20..baa8d94b5 100644 --- a/packages/lib/types/field-meta.ts +++ b/packages/lib/types/field-meta.ts @@ -120,12 +120,11 @@ export type TFieldMetaSchema = z.infer; export const ZFieldAndMetaSchema = z.discriminatedUnion('type', [ z.object({ type: z.literal(FieldType.SIGNATURE), - // Do not use z.undefined(), or void since this will create an invalid schema for Speakeasy SDK generation. - fieldMeta: z.literal(undefined), + fieldMeta: z.undefined(), }), z.object({ type: z.literal(FieldType.FREE_SIGNATURE), - fieldMeta: z.literal(undefined), // Same as above. + fieldMeta: z.undefined(), }), z.object({ type: z.literal(FieldType.INITIALS), diff --git a/packages/trpc/client/guards.ts b/packages/trpc/client/guards.ts deleted file mode 100644 index 5a37eec30..000000000 --- a/packages/trpc/client/guards.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { TRPCClientError } from '@trpc/client'; - -import { AppRouter } from '../server/router'; - -export const isTRPCBadRequestError = (err: unknown): err is TRPCClientError => { - return err instanceof TRPCClientError && err.shape?.code === 'BAD_REQUEST'; -}; diff --git a/packages/trpc/client/index.ts b/packages/trpc/client/index.ts index a91021f97..51cda4406 100644 --- a/packages/trpc/client/index.ts +++ b/packages/trpc/client/index.ts @@ -1,24 +1,22 @@ -import { createTRPCProxyClient, httpBatchLink, httpLink, splitLink } from '@trpc/client'; +import { createTRPCClient, httpBatchLink, httpLink, splitLink } from '@trpc/client'; import SuperJSON from 'superjson'; import { getBaseUrl } from '@documenso/lib/universal/get-base-url'; import type { AppRouter } from '../server/router'; -export const trpc = createTRPCProxyClient({ - transformer: SuperJSON, - +export const trpc = createTRPCClient({ links: [ splitLink({ condition: (op) => op.context.skipBatch === true, true: httpLink({ url: `${getBaseUrl()}/api/trpc`, + transformer: SuperJSON, }), false: httpBatchLink({ url: `${getBaseUrl()}/api/trpc`, + transformer: SuperJSON, }), }), ], }); - -export { TRPCClientError } from '@trpc/client'; diff --git a/packages/trpc/package.json b/packages/trpc/package.json index 8a5518c42..5a858fbe6 100644 --- a/packages/trpc/package.json +++ b/packages/trpc/package.json @@ -12,15 +12,16 @@ "dependencies": { "@documenso/lib": "*", "@documenso/prisma": "*", - "@tanstack/react-query": "^4.32.0", - "@trpc/client": "^10.36.0", - "@trpc/next": "^10.36.0", - "@trpc/react-query": "^10.36.0", - "@trpc/server": "^10.36.0", + "@tanstack/react-query": "5.59.15", + "@trpc/client": "11.0.0-rc.648", + "@trpc/next": "11.0.0-rc.648", + "@trpc/react-query": "11.0.0-rc.648", + "@trpc/server": "11.0.0-rc.648", "@ts-rest/core": "^3.30.5", "@ts-rest/next": "^3.30.5", "luxon": "^3.4.0", "superjson": "^1.13.1", + "trpc-to-openapi": "2.0.4", "ts-pattern": "^5.0.5", "zod": "3.24.1" } diff --git a/packages/trpc/react/index.tsx b/packages/trpc/react/index.tsx index 846fe9e1a..f31ff0d6f 100644 --- a/packages/trpc/react/index.tsx +++ b/packages/trpc/react/index.tsx @@ -63,17 +63,18 @@ export function TrpcProvider({ children, headers }: TrpcProviderProps) { const [trpcClient] = useState(() => trpc.createClient({ - transformer: SuperJSON, links: [ splitLink({ condition: (op) => op.context.skipBatch === true, true: httpLink({ url: `${getBaseUrl()}/api/trpc`, headers, + transformer: SuperJSON, }), false: httpBatchLink({ url: `${getBaseUrl()}/api/trpc`, headers, + transformer: SuperJSON, }), }), ], diff --git a/packages/trpc/server/admin-router/router.ts b/packages/trpc/server/admin-router/router.ts index 32e14cbc1..e8a999629 100644 --- a/packages/trpc/server/admin-router/router.ts +++ b/packages/trpc/server/admin-router/router.ts @@ -106,14 +106,6 @@ export const adminRouter = router({ deleteUser: adminProcedure.input(ZAdminDeleteUserMutationSchema).mutation(async ({ input }) => { const { id } = input; - const user = await getUserById({ id }).catch(() => null); - - if (!user) { - throw new AppError(AppErrorCode.NOT_FOUND, { - message: 'User not found', - }); - } - return await deleteUser({ id }); }), diff --git a/packages/trpc/server/context.ts b/packages/trpc/server/context.ts index b9dbd9cb0..4ed5be40f 100644 --- a/packages/trpc/server/context.ts +++ b/packages/trpc/server/context.ts @@ -10,7 +10,11 @@ type CreateTrpcContext = CreateNextContextOptions & { requestSource: 'apiV1' | 'apiV2' | 'app'; }; -export const createTrpcContext = async ({ req, res, requestSource }: CreateTrpcContext) => { +export const createTrpcContext = async ({ + req, + res, + requestSource, +}: Omit) => { const { session, user } = await getServerSession({ req, res }); const metadata: ApiRequestMetadata = { diff --git a/packages/trpc/server/document-router/router.ts b/packages/trpc/server/document-router/router.ts index a578d4edc..daa180c3a 100644 --- a/packages/trpc/server/document-router/router.ts +++ b/packages/trpc/server/document-router/router.ts @@ -5,7 +5,7 @@ import { z } from 'zod'; import { getServerLimits } from '@documenso/ee/server-only/limits/server'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; import { DOCUMENSO_ENCRYPTION_KEY } from '@documenso/lib/constants/crypto'; -import { AppError } from '@documenso/lib/errors/app-error'; +import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error'; import { encryptSecondaryData } from '@documenso/lib/server-only/crypto/encrypt'; import { createDocumentData } from '@documenso/lib/server-only/document-data/create-document-data'; import { upsertDocumentMeta } from '@documenso/lib/server-only/document-meta/upsert-document-meta'; @@ -186,9 +186,9 @@ export const documentRouter = router({ const { remaining } = await getServerLimits({ email: ctx.user.email, teamId }); if (remaining.documents <= 0) { - throw new TRPCError({ - code: 'BAD_REQUEST', + throw new AppError(AppErrorCode.LIMIT_EXCEEDED, { message: 'You have reached your document limit for this month. Please upgrade your plan.', + statusCode: 400, }); } @@ -246,9 +246,9 @@ export const documentRouter = router({ const { remaining } = await getServerLimits({ email: ctx.user.email, teamId }); if (remaining.documents <= 0) { - throw new TRPCError({ - code: 'BAD_REQUEST', + throw new AppError(AppErrorCode.LIMIT_EXCEEDED, { message: 'You have reached your document limit for this month. Please upgrade your plan.', + statusCode: 400, }); } diff --git a/packages/trpc/server/field-router/router.ts b/packages/trpc/server/field-router/router.ts index 53f9059e6..04596000d 100644 --- a/packages/trpc/server/field-router/router.ts +++ b/packages/trpc/server/field-router/router.ts @@ -219,14 +219,6 @@ export const fieldRouter = router({ * Todo: Refactor to setFieldsForDocument function. */ addFields: authenticatedProcedure - // .meta({ - // openapi: { - // method: 'POST', - // path: '/document/{documentId}/field', - // summary: 'Set document fields', - // tags: ['Document Fields'], - // }, - // }) .input(ZSetDocumentFieldsRequestSchema) .output(ZSetDocumentFieldsResponseSchema) .mutation(async ({ input, ctx }) => { @@ -395,14 +387,6 @@ export const fieldRouter = router({ * Todo: Refactor to setFieldsForTemplate. */ addTemplateFields: authenticatedProcedure - // .meta({ - // openapi: { - // method: 'POST', - // path: '/template/{templateId}/field', - // summary: 'Set template fields', - // tags: ['Template Fields'], - // }, - // }) .input(ZSetFieldsForTemplateRequestSchema) .output(ZSetFieldsForTemplateResponseSchema) .mutation(async ({ input, ctx }) => { diff --git a/packages/trpc/server/open-api.ts b/packages/trpc/server/open-api.ts index 9911d71a1..c55042f93 100644 --- a/packages/trpc/server/open-api.ts +++ b/packages/trpc/server/open-api.ts @@ -1,4 +1,4 @@ -import { generateOpenApiDocument } from 'trpc-openapi'; +import { generateOpenApiDocument } from 'trpc-to-openapi'; import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; diff --git a/packages/trpc/server/recipient-router/router.ts b/packages/trpc/server/recipient-router/router.ts index 174fac758..4259a272f 100644 --- a/packages/trpc/server/recipient-router/router.ts +++ b/packages/trpc/server/recipient-router/router.ts @@ -217,16 +217,6 @@ export const recipientRouter = router({ * @private */ setDocumentRecipients: authenticatedProcedure - // .meta({ - // openapi: { - // method: 'POST', - // path: '/document/recipient/set', - // summary: 'Set document recipients', - // description: - // 'This will replace all recipients attached to the document. If the array contains existing recipients, they will be updated and the original fields will be retained.', - // tags: ['Document Recipients'], - // }, - // }) .input(ZSetDocumentRecipientsRequestSchema) .output(ZSetDocumentRecipientsResponseSchema) .mutation(async ({ input, ctx }) => { @@ -390,16 +380,6 @@ export const recipientRouter = router({ * @private */ setTemplateRecipients: authenticatedProcedure - // .meta({ - // openapi: { - // method: 'POST', - // path: '/template/recipient/set', - // summary: 'Set template recipients', - // description: - // 'This will replace all recipients attached to the template. If the array contains existing recipients, they will be updated and the original fields will be retained.', - // tags: ['Template Recipients'], - // }, - // }) .input(ZSetTemplateRecipientsRequestSchema) .output(ZSetTemplateRecipientsResponseSchema) .mutation(async ({ input, ctx }) => { diff --git a/packages/trpc/server/team-router/router.ts b/packages/trpc/server/team-router/router.ts index 67eda92de..292dc85db 100644 --- a/packages/trpc/server/team-router/router.ts +++ b/packages/trpc/server/team-router/router.ts @@ -91,7 +91,6 @@ export const teamRouter = router({ // }, // }) .input(ZFindTeamsQuerySchema) - .output(z.unknown()) .query(async ({ input, ctx }) => { return await findTeams({ userId: ctx.user.id, @@ -110,7 +109,6 @@ export const teamRouter = router({ // }, // }) .input(ZGetTeamQuerySchema) - .output(z.unknown()) .query(async ({ input, ctx }) => { return await getTeamById({ teamId: input.teamId, userId: ctx.user.id }); }), @@ -126,7 +124,6 @@ export const teamRouter = router({ // }, // }) .input(ZCreateTeamMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await createTeam({ userId: ctx.user.id, @@ -145,7 +142,6 @@ export const teamRouter = router({ // }, // }) .input(ZUpdateTeamMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await updateTeam({ userId: ctx.user.id, @@ -164,7 +160,6 @@ export const teamRouter = router({ // }, // }) .input(ZDeleteTeamMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await deleteTeam({ userId: ctx.user.id, @@ -184,7 +179,6 @@ export const teamRouter = router({ // }, // }) .input(ZLeaveTeamMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await leaveTeam({ userId: ctx.user.id, @@ -204,7 +198,6 @@ export const teamRouter = router({ // }, // }) .input(ZFindTeamMemberInvitesQuerySchema) - .output(z.unknown()) .query(async ({ input, ctx }) => { return await findTeamMemberInvites({ userId: ctx.user.id, @@ -224,7 +217,6 @@ export const teamRouter = router({ // }, // }) .input(ZCreateTeamMemberInvitesMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await createTeamMemberInvites({ userId: ctx.user.id, @@ -245,7 +237,6 @@ export const teamRouter = router({ // }, // }) .input(ZResendTeamMemberInvitationMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { await resendTeamMemberInvitation({ userId: ctx.user.id, @@ -266,7 +257,6 @@ export const teamRouter = router({ // }, // }) .input(ZDeleteTeamMemberInvitationsMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await deleteTeamMemberInvitations({ userId: ctx.user.id, @@ -285,7 +275,6 @@ export const teamRouter = router({ // }, // }) .input(ZGetTeamMembersQuerySchema) - .output(z.unknown()) .query(async ({ input, ctx }) => { return await getTeamMembers({ teamId: input.teamId, userId: ctx.user.id }); }), @@ -302,7 +291,6 @@ export const teamRouter = router({ // }, // }) .input(ZFindTeamMembersQuerySchema) - .output(z.unknown()) .query(async ({ input, ctx }) => { return await findTeamMembers({ userId: ctx.user.id, @@ -321,7 +309,6 @@ export const teamRouter = router({ // }, // }) .input(ZUpdateTeamMemberMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await updateTeamMember({ userId: ctx.user.id, @@ -341,7 +328,6 @@ export const teamRouter = router({ // }, // }) .input(ZDeleteTeamMembersMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { return await deleteTeamMembers({ userId: ctx.user.id, @@ -400,7 +386,6 @@ export const teamRouter = router({ // }, // }) .input(ZUpdateTeamPublicProfileMutationSchema) - .output(z.unknown()) .mutation(async ({ input, ctx }) => { try { const { teamId, bio, enabled } = input; diff --git a/packages/trpc/server/template-router/router.ts b/packages/trpc/server/template-router/router.ts index 7ef7efb48..13fc637de 100644 --- a/packages/trpc/server/template-router/router.ts +++ b/packages/trpc/server/template-router/router.ts @@ -369,7 +369,7 @@ export const templateRouter = router({ .meta({ openapi: { method: 'POST', - path: '/template/{templateId}/direct/toggle', + path: '/template/direct/toggle', summary: 'Toggle direct link', description: 'Enable or disable a direct link for a template', tags: ['Template'], diff --git a/packages/trpc/server/trpc.ts b/packages/trpc/server/trpc.ts index 5de7dddeb..0556be6c2 100644 --- a/packages/trpc/server/trpc.ts +++ b/packages/trpc/server/trpc.ts @@ -1,6 +1,6 @@ import { TRPCError, initTRPC } from '@trpc/server'; import SuperJSON from 'superjson'; -import type { OpenApiMeta } from 'trpc-openapi'; +import type { AnyZodObject } from 'zod'; import { AppError, genericErrorCodeToTrpcErrorCodeMap } from '@documenso/lib/errors/app-error'; import { isAdmin } from '@documenso/lib/next-auth/guards/is-admin'; @@ -10,6 +10,26 @@ import { extractNextApiRequestMetadata } from '@documenso/lib/universal/extract- import type { TrpcContext } from './context'; +// Can't import type from trpc-to-openapi because it breaks nextjs build, not sure why. +type OpenApiMeta = { + openapi?: { + enabled?: boolean; + method: 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE'; + path: `/${string}`; + summary?: string; + description?: string; + protect?: boolean; + tags?: string[]; + // eslint-disable-next-line @typescript-eslint/ban-types + contentTypes?: ('application/json' | 'application/x-www-form-urlencoded' | (string & {}))[]; + deprecated?: boolean; + requestHeaders?: AnyZodObject; + responseHeaders?: AnyZodObject; + successDescription?: string; + errorResponses?: number[] | Record; + }; +} & Record; + const t = initTRPC .meta() .context() diff --git a/packages/ui/components/document/document-share-button.tsx b/packages/ui/components/document/document-share-button.tsx index bfaeb6afd..9d6a27b03 100644 --- a/packages/ui/components/document/document-share-button.tsx +++ b/packages/ui/components/document/document-share-button.tsx @@ -60,7 +60,7 @@ export const DocumentShareButton = ({ const { mutateAsync: createOrGetShareLink, data: shareLink, - isLoading: isCreatingOrGettingShareLink, + isPending: isCreatingOrGettingShareLink, } = trpc.shareLink.createOrGetShareLink.useMutation(); const isLoading = isCreatingOrGettingShareLink || isCopyingShareLink;