Release Privacy Tools 0.1.0

This commit is contained in:
2026-09-01 02:39:44 +02:00
commit bfd6422149
79 changed files with 13485 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
import { describe, expect, it } from "vitest";
import {
detectKind,
fileExtension,
inventoryIdentity,
} from "../../src/privacy";
import { jpegFixture, pngFixture, webpFixture } from "../fixtures/images";
describe("file identity", () => {
it("detects supported containers from bytes", () => {
expect(detectKind(jpegFixture())).toBe("jpeg");
expect(detectKind(pngFixture())).toBe("png");
expect(detectKind(webpFixture())).toBe("webp");
expect(detectKind(Uint8Array.from([0x25, 0x50, 0x44, 0x46, 0x2d]))).toBe(
"pdf",
);
});
it("normalizes leaf extensions without trusting paths", () => {
expect(fileExtension("folder\\PHOTO.JPEG")).toBe("jpeg");
expect(fileExtension(".hidden")).toBe("");
expect(fileExtension("no-extension")).toBe("");
});
it("reports claimed and extension mismatches", () => {
const identity = inventoryIdentity(
"portrait.jpg",
"image/jpeg",
pngFixture(),
);
expect(identity).toMatchObject({
detectedKind: "png",
detectedType: "image/png",
typeMatch: "mismatch",
});
});
it("does not infer an unknown payload from its extension", () => {
const identity = inventoryIdentity(
"claim.png",
"image/png",
Uint8Array.from([1, 2, 3]),
);
expect(identity.detectedKind).toBe("unknown");
expect(identity.typeMatch).toBe("unknown");
});
});