From ecb5120ece1a2f8b7317eac2a2f552f06482ec7e Mon Sep 17 00:00:00 2001 From: MaxMiksa Date: Wed, 28 Jan 2026 23:20:36 -0500 Subject: [PATCH] style: format archive extraction changes --- src/infra/archive.test.ts | 6 +++--- src/infra/archive.ts | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/infra/archive.test.ts b/src/infra/archive.test.ts index c178355da..d1979defe 100644 --- a/src/infra/archive.test.ts +++ b/src/infra/archive.test.ts @@ -60,9 +60,9 @@ describe("archive utils", () => { await fs.writeFile(archivePath, await zip.generateAsync({ type: "nodebuffer" })); await fs.mkdir(extractDir, { recursive: true }); - await expect(extractArchive({ archivePath, destDir: extractDir, timeoutMs: 5_000 })).rejects.toThrow( - /escapes destination/i, - ); + await expect( + extractArchive({ archivePath, destDir: extractDir, timeoutMs: 5_000 }), + ).rejects.toThrow(/escapes destination/i); await expect(fs.stat(path.join(siblingDir, "pwned.txt"))).rejects.toThrow(); }); diff --git a/src/infra/archive.ts b/src/infra/archive.ts index fc94aa5c9..5bf638ad5 100644 --- a/src/infra/archive.ts +++ b/src/infra/archive.ts @@ -65,7 +65,9 @@ function ensureTrailingSep(filePath: string): string { return filePath.endsWith(path.sep) ? filePath : `${filePath}${path.sep}`; } -async function normalizeDestRoot(destDir: string): Promise<{ destRoot: string; destRootLower?: string }> { +async function normalizeDestRoot( + destDir: string, +): Promise<{ destRoot: string; destRootLower?: string }> { await fs.mkdir(destDir, { recursive: true }); const destReal = await fs.realpath(destDir); const destRoot = ensureTrailingSep(destReal); @@ -77,7 +79,9 @@ async function normalizeDestRoot(destDir: string): Promise<{ destRoot: string; d async function extractZip(params: { archivePath: string; destDir: string }): Promise { const { destRoot, destRootLower } = await normalizeDestRoot(params.destDir); const startsWithDest = (targetPath: string): boolean => - destRootLower ? targetPath.toLowerCase().startsWith(destRootLower) : targetPath.startsWith(destRoot); + destRootLower + ? targetPath.toLowerCase().startsWith(destRootLower) + : targetPath.startsWith(destRoot); const buffer = await fs.readFile(params.archivePath); const zip = await JSZip.loadAsync(buffer);