diff --git a/apps/web/pages/documents/[id]/signed.tsx b/apps/web/pages/documents/[id]/signed.tsx
index 9d3e68c96..53f375ab2 100644
--- a/apps/web/pages/documents/[id]/signed.tsx
+++ b/apps/web/pages/documents/[id]/signed.tsx
@@ -8,7 +8,9 @@ import { ArrowDownTrayIcon, CheckBadgeIcon } from "@heroicons/react/24/outline";
const Signed: NextPageWithLayout = (props: any) => {
const router = useRouter();
- const allRecipientsSigned = props.document.Recipient?.every((r: any) => r.signingStatus === "SIGNED");
+ const allRecipientsSigned = props.document.Recipient?.every(
+ (r: any) => r.signingStatus === "SIGNED"
+ );
return (
<>
@@ -18,7 +20,9 @@ const Signed: NextPageWithLayout = (props: any) => {
It's done!
-
You signed "{props.document.title}"
+
+ You signed "{props.document.title}"
+
You will be notfied when all recipients have signed.
@@ -32,7 +36,9 @@ const Signed: NextPageWithLayout = (props: any) => {
onClick={(event: any) => {
event.preventDefault();
event.stopPropagation();
- router.push("/api/documents/" + props.document.id + "?token=" + props.recipient.token);
+ router.push(
+ "/api/documents/" + props.document.id + "?token=" + props.recipient.token
+ );
}}>
Download "{props.document.title}"
diff --git a/apps/web/styles/tailwind.css b/apps/web/styles/tailwind.css
index bd13ab1f2..2ea56f9bf 100644
--- a/apps/web/styles/tailwind.css
+++ b/apps/web/styles/tailwind.css
@@ -24,8 +24,8 @@ body,
font-weight: 400;
font-display: swap;
src: url("/fonts/montserrat.woff2") format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,
- U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
+ U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@@ -35,6 +35,6 @@ body,
font-weight: 700;
font-display: swap;
src: url("/fonts/montserrat.woff2") format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,
- U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F,
+ U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
diff --git a/packages/features/uploadDocument.ts b/packages/features/uploadDocument.ts
index 41140f0f4..ef57d795f 100644
--- a/packages/features/uploadDocument.ts
+++ b/packages/features/uploadDocument.ts
@@ -27,7 +27,9 @@ export const uploadDocument = async (event: any) => {
)
.then((response: Response) => {
response.json().then((createdDocumentIdFromBody) => {
- router.push(`${NEXT_PUBLIC_WEBAPP_URL}/documents/${createdDocumentIdFromBody}/recipients`);
+ router.push(
+ `${NEXT_PUBLIC_WEBAPP_URL}/documents/${createdDocumentIdFromBody}/recipients`
+ );
});
});
}
diff --git a/packages/lib/auth.ts b/packages/lib/auth.ts
index 77b176d2e..71efa1fbf 100644
--- a/packages/lib/auth.ts
+++ b/packages/lib/auth.ts
@@ -62,7 +62,9 @@ export function isPasswordValid(password: string, breakdown?: boolean, strict?:
return errors;
}
-type CtxOrReq = { req: NextApiRequest; ctx?: never } | { ctx: { req: NextApiRequest }; req?: never };
+type CtxOrReq =
+ | { req: NextApiRequest; ctx?: never }
+ | { ctx: { req: NextApiRequest }; req?: never };
export const ensureSession = async (ctxOrReq: CtxOrReq) => {
const session = await getSession(ctxOrReq);
diff --git a/packages/lib/getSafeRedirectUrl.ts b/packages/lib/getSafeRedirectUrl.ts
index e676d2866..59c1e9cff 100644
--- a/packages/lib/getSafeRedirectUrl.ts
+++ b/packages/lib/getSafeRedirectUrl.ts
@@ -12,7 +12,11 @@ export const getSafeRedirectUrl = (url = "") => {
const urlParsed = new URL(url);
// Avoid open redirection security vulnerability
- if (!["CONSOLE_URL", "WEBAPP_URL", "WEBSITE_URL"].some((u) => new URL(u).origin === urlParsed.origin)) {
+ if (
+ !["CONSOLE_URL", "WEBAPP_URL", "WEBSITE_URL"].some(
+ (u) => new URL(u).origin === urlParsed.origin
+ )
+ ) {
url = `${"WEBAPP_URL"}/`;
}
diff --git a/packages/lib/query/getDocument.ts b/packages/lib/query/getDocument.ts
index 965513699..db658794c 100644
--- a/packages/lib/query/getDocument.ts
+++ b/packages/lib/query/getDocument.ts
@@ -2,7 +2,11 @@ import { getUserFromToken } from "@documenso/lib/server";
import prisma from "@documenso/prisma";
import { Document as PrismaDocument } from "@prisma/client";
-export const getDocument = async (documentId: number, req: any, res: any): Promise
=> {
+export const getDocument = async (
+ documentId: number,
+ req: any,
+ res: any
+): Promise => {
const user = await getUserFromToken(req, res);
if (!user) return Promise.reject("Invalid user or token.");
if (!documentId) Promise.reject("No documentId");
diff --git a/packages/lib/server/defaultHandler.ts b/packages/lib/server/defaultHandler.ts
index 1cfa351bd..69d466648 100644
--- a/packages/lib/server/defaultHandler.ts
+++ b/packages/lib/server/defaultHandler.ts
@@ -1,24 +1,27 @@
import type { NextApiHandler, NextApiRequest, NextApiResponse } from "next";
type Handlers = {
- [method in "GET" | "POST" | "PATCH" | "PUT" | "DELETE"]?: Promise<{ default: NextApiHandler }>;
+ [method in "GET" | "POST" | "PATCH" | "PUT" | "DELETE"]?: Promise<{
+ default: NextApiHandler;
+ }>;
};
/** Allows us to split big API handlers by method */
-export const defaultHandler = (handlers: Handlers) => async (req: NextApiRequest, res: NextApiResponse) => {
- const handler = (await handlers[req.method as keyof typeof handlers])?.default;
- // auto catch unsupported methods.
- if (!handler) {
- return res
- .status(405)
- .json({ message: `Method Not Allowed (Allow: ${Object.keys(handlers).join(",")})` });
- }
+export const defaultHandler =
+ (handlers: Handlers) => async (req: NextApiRequest, res: NextApiResponse) => {
+ const handler = (await handlers[req.method as keyof typeof handlers])?.default;
+ // auto catch unsupported methods.
+ if (!handler) {
+ return res.status(405).json({
+ message: `Method Not Allowed (Allow: ${Object.keys(handlers).join(",")})`,
+ });
+ }
- try {
- await handler(req, res);
- return;
- } catch (error) {
- console.error(error);
- return res.status(500).json({ message: "Something went wrong" });
- }
-};
+ try {
+ await handler(req, res);
+ return;
+ } catch (error) {
+ console.error(error);
+ return res.status(500).json({ message: "Something went wrong" });
+ }
+ };
diff --git a/packages/lib/server/http-error.ts b/packages/lib/server/http-error.ts
index 223761480..b73b23f9d 100644
--- a/packages/lib/server/http-error.ts
+++ b/packages/lib/server/http-error.ts
@@ -5,7 +5,13 @@ export class HttpError extends Error {
public readonly url: string | undefined;
public readonly method: string | undefined;
- constructor(opts: { url?: string; method?: string; message?: string; statusCode: TCode; cause?: Error }) {
+ constructor(opts: {
+ url?: string;
+ method?: string;
+ message?: string;
+ statusCode: TCode;
+ cause?: Error;
+ }) {
super(opts.message ?? `HTTP Error ${opts.statusCode} `);
Object.setPrototypeOf(this, HttpError.prototype);
diff --git a/packages/prisma/seed.ts b/packages/prisma/seed.ts
index 0c532230f..42812331f 100644
--- a/packages/prisma/seed.ts
+++ b/packages/prisma/seed.ts
@@ -15,7 +15,9 @@ async function createUser(userData: { email: string; password: string }) {
return user;
} catch (error) {
- console.info(`WARN: Could not create user "${userData.email}". Maybe the email is already taken?`);
+ console.info(
+ `WARN: Could not create user "${userData.email}". Maybe the email is already taken?`
+ );
}
}
diff --git a/packages/signing/node-signpdf/dist/helpers/extractSignature.js b/packages/signing/node-signpdf/dist/helpers/extractSignature.js
index 94e2479b8..e966f4dc3 100644
--- a/packages/signing/node-signpdf/dist/helpers/extractSignature.js
+++ b/packages/signing/node-signpdf/dist/helpers/extractSignature.js
@@ -40,7 +40,10 @@ const extractSignature = (pdf, signatureCount = 1) => {
const byteRangePos = getSubstringIndex(pdf, "/ByteRange [", signatureCount);
if (byteRangePos === -1) {
- throw new _SignPdfError.default("Failed to locate ByteRange.", _SignPdfError.default.TYPE_PARSE);
+ throw new _SignPdfError.default(
+ "Failed to locate ByteRange.",
+ _SignPdfError.default.TYPE_PARSE
+ );
}
const byteRangeEnd = pdf.indexOf("]", byteRangePos);
@@ -56,7 +59,10 @@ const extractSignature = (pdf, signatureCount = 1) => {
const matches = /\/ByteRange \[(\d+) +(\d+) +(\d+) +(\d+) *\]/.exec(byteRange);
if (matches === null) {
- throw new _SignPdfError.default("Failed to parse the ByteRange.", _SignPdfError.default.TYPE_PARSE);
+ throw new _SignPdfError.default(
+ "Failed to parse the ByteRange.",
+ _SignPdfError.default.TYPE_PARSE
+ );
}
const ByteRange = matches.slice(1).map(Number);
diff --git a/packages/signing/node-signpdf/dist/helpers/pdfkit/pdfobject.js b/packages/signing/node-signpdf/dist/helpers/pdfkit/pdfobject.js
index 0a37f8cda..7be4d3b93 100644
--- a/packages/signing/node-signpdf/dist/helpers/pdfkit/pdfobject.js
+++ b/packages/signing/node-signpdf/dist/helpers/pdfkit/pdfobject.js
@@ -87,7 +87,10 @@ class PDFObject {
let string = `D:${pad(object.getUTCFullYear(), 4)}${pad(object.getUTCMonth() + 1, 2)}${pad(
object.getUTCDate(),
2
- )}${pad(object.getUTCHours(), 2)}${pad(object.getUTCMinutes(), 2)}${pad(object.getUTCSeconds(), 2)}Z`; // Encrypt the string when necessary
+ )}${pad(object.getUTCHours(), 2)}${pad(object.getUTCMinutes(), 2)}${pad(
+ object.getUTCSeconds(),
+ 2
+ )}Z`; // Encrypt the string when necessary
if (encryptFn) {
string = encryptFn(Buffer.from(string, "ascii")).toString("binary"); // Escape characters as required by the spec
diff --git a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/getIndexFromRef.js b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/getIndexFromRef.js
index 2ff3c0dfe..6b8b6d0f2 100644
--- a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/getIndexFromRef.js
+++ b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/getIndexFromRef.js
@@ -21,7 +21,10 @@ const getIndexFromRef = (refTable, ref) => {
index = parseInt(index);
if (!refTable.offsets.has(index)) {
- throw new _SignPdfError.default(`Failed to locate object "${ref}".`, _SignPdfError.default.TYPE_PARSE);
+ throw new _SignPdfError.default(
+ `Failed to locate object "${ref}".`,
+ _SignPdfError.default.TYPE_PARSE
+ );
}
return index;
diff --git a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/index.js b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/index.js
index 8f9905b2f..08241d99e 100644
--- a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/index.js
+++ b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/index.js
@@ -21,9 +21,13 @@ var _readPdf = _interopRequireDefault(require("./readPdf"));
var _getPageRef = _interopRequireDefault(require("./getPageRef"));
-var _createBufferRootWithAcroform = _interopRequireDefault(require("./createBufferRootWithAcroform"));
+var _createBufferRootWithAcroform = _interopRequireDefault(
+ require("./createBufferRootWithAcroform")
+);
-var _createBufferPageWithAnnotation = _interopRequireDefault(require("./createBufferPageWithAnnotation"));
+var _createBufferPageWithAnnotation = _interopRequireDefault(
+ require("./createBufferPageWithAnnotation")
+);
var _createBufferTrailer = _interopRequireDefault(require("./createBufferTrailer"));
diff --git a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/readRefTable.js b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/readRefTable.js
index 686a55c65..c5f75ca66 100644
--- a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/readRefTable.js
+++ b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/readRefTable.js
@@ -3,7 +3,11 @@
Object.defineProperty(exports, "__esModule", {
value: true,
});
-exports.getXref = exports.getLastTrailerPosition = exports.getFullXrefTable = exports.default = void 0;
+exports.getXref =
+ exports.getLastTrailerPosition =
+ exports.getFullXrefTable =
+ exports.default =
+ void 0;
var _SignPdfError = _interopRequireDefault(require("../../SignPdfError"));
@@ -16,7 +20,9 @@ function _interopRequireDefault(obj) {
const getLastTrailerPosition = (pdf) => {
const trailerStart = pdf.lastIndexOf(Buffer.from("trailer", "utf8"));
const trailer = pdf.slice(trailerStart, pdf.length - 6);
- const xRefPosition = trailer.slice(trailer.lastIndexOf(Buffer.from("startxref", "utf8")) + 10).toString();
+ const xRefPosition = trailer
+ .slice(trailer.lastIndexOf(Buffer.from("startxref", "utf8")) + 10)
+ .toString();
return parseInt(xRefPosition);
};
@@ -63,13 +69,19 @@ const getXref = (pdf, position) => {
let size = refTable.toString().split("/Size")[1];
if (!size) {
- throw new _SignPdfError.default("Size not found in xref table.", _SignPdfError.default.TYPE_PARSE);
+ throw new _SignPdfError.default(
+ "Size not found in xref table.",
+ _SignPdfError.default.TYPE_PARSE
+ );
}
size = /^\s*(\d+)/.exec(size);
if (size === null) {
- throw new _SignPdfError.default("Failed to parse size of xref table.", _SignPdfError.default.TYPE_PARSE);
+ throw new _SignPdfError.default(
+ "Failed to parse size of xref table.",
+ _SignPdfError.default.TYPE_PARSE
+ );
}
size = parseInt(size[1]);
diff --git a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/xrefToRefMap.js b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/xrefToRefMap.js
index 484237333..224f7e7bc 100644
--- a/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/xrefToRefMap.js
+++ b/packages/signing/node-signpdf/dist/helpers/plainAddPlaceholder/xrefToRefMap.js
@@ -26,7 +26,10 @@ const xrefToRefMap = (xrefString) => {
}
if (expectedLines <= 0) {
- throw new _SignPdfError.default("Too many lines in xref table.", _SignPdfError.default.TYPE_PARSE);
+ throw new _SignPdfError.default(
+ "Too many lines in xref table.",
+ _SignPdfError.default.TYPE_PARSE
+ );
}
expectedLines -= 1;
diff --git a/packages/signing/node-signpdf/dist/signpdf.js b/packages/signing/node-signpdf/dist/signpdf.js
index 5c53f8ee2..133623e4b 100644
--- a/packages/signing/node-signpdf/dist/signpdf.js
+++ b/packages/signing/node-signpdf/dist/signpdf.js
@@ -102,9 +102,16 @@ class SignPdf {
let actualByteRange = `/ByteRange [${byteRange.join(" ")}]`;
actualByteRange += " ".repeat(byteRangePlaceholder.length - actualByteRange.length); // Replace the /ByteRange placeholder with the actual ByteRange
- pdf = Buffer.concat([pdf.slice(0, byteRangePos), Buffer.from(actualByteRange), pdf.slice(byteRangeEnd)]); // Remove the placeholder signature
+ pdf = Buffer.concat([
+ pdf.slice(0, byteRangePos),
+ Buffer.from(actualByteRange),
+ pdf.slice(byteRangeEnd),
+ ]); // Remove the placeholder signature
- pdf = Buffer.concat([pdf.slice(0, byteRange[1]), pdf.slice(byteRange[2], byteRange[2] + byteRange[3])]); // Convert Buffer P12 to a forge implementation.
+ pdf = Buffer.concat([
+ pdf.slice(0, byteRange[1]),
+ pdf.slice(byteRange[2], byteRange[2] + byteRange[3]),
+ ]); // Convert Buffer P12 to a forge implementation.
const forgeCert = _nodeForge.default.util.createBuffer(p12Buffer.toString("binary"));
@@ -190,11 +197,15 @@ class SignPdf {
this.lastSignature = signature; // Pad the signature with zeroes so the it is the same length as the placeholder
- signature += Buffer.from(String.fromCharCode(0).repeat(placeholderLength / 2 - raw.length)).toString(
- "hex"
- ); // Place it in the document.
+ signature += Buffer.from(
+ String.fromCharCode(0).repeat(placeholderLength / 2 - raw.length)
+ ).toString("hex"); // Place it in the document.
- pdf = Buffer.concat([pdf.slice(0, byteRange[1]), Buffer.from(`<${signature}>`), pdf.slice(byteRange[1])]); // Magic. Done.
+ pdf = Buffer.concat([
+ pdf.slice(0, byteRange[1]),
+ Buffer.from(`<${signature}>`),
+ pdf.slice(byteRange[1]),
+ ]); // Magic. Done.
return pdf;
}
diff --git a/packages/ui/components/breadcrumb/breadcrumb.tsx b/packages/ui/components/breadcrumb/breadcrumb.tsx
index 8ff992301..d256908c3 100644
--- a/packages/ui/components/breadcrumb/breadcrumb.tsx
+++ b/packages/ui/components/breadcrumb/breadcrumb.tsx
@@ -7,9 +7,14 @@ export function Breadcrumb(props: any) {
<>
@@ -18,13 +23,18 @@ export function Breadcrumb(props: any) {
{props?.items.map((item: any, index: number) => (
{index > 0 ? (
-
+
) : (
""
)}
-
+
{item.title}
diff --git a/packages/ui/components/dialog/Dialog.tsx b/packages/ui/components/dialog/Dialog.tsx
index 73c2e317e..07c92686b 100644
--- a/packages/ui/components/dialog/Dialog.tsx
+++ b/packages/ui/components/dialog/Dialog.tsx
@@ -21,8 +21,18 @@ type DialogProps = {
icon: React.ReactNode;
};
-export function Dialog({ title, open, setOpen, document, formValues, setLoading, icon }: DialogProps) {
- const unsentEmailsLength = formValues.filter((s: any) => s.email && s.sendStatus != "SENT").length;
+export function Dialog({
+ title,
+ open,
+ setOpen,
+ document,
+ formValues,
+ setLoading,
+ icon,
+}: DialogProps) {
+ const unsentEmailsLength = formValues.filter(
+ (s: any) => s.email && s.sendStatus != "SENT"
+ ).length;
return (
@@ -54,7 +64,9 @@ export function Dialog({ title, open, setOpen, document, formValues, setLoading,
{icon}