refactor: remove dead code, unused exports and redundant dependencies

- drop dotenv (Node 24 process.loadEnvFile) and dompurify (only used by dead code)
- delete unused ui components/hooks (card, progress, checkbox, use-confirm, use-prompt)
- delete dead sanitizeHtml/sanitizeCss, url-security helpers, patch-resume tool,
  schema/page, createResumePatches, patch-proposal preview builder, fonts fallback helpers
- inline single-caller wrappers (flags service, auth getSession, pdf renderer passthrough)
- deduplicate template color helpers into shared/color-helpers
- unexport 50+ internal-only symbols, remove dead export-map entries
- replace hand-rolled unique()/useIsMobile with Set spread and usehooks-ts
This commit is contained in:
Amruth Pillai
2026-07-03 20:03:50 +02:00
parent 2a80e6a1df
commit a4999c04af
107 changed files with 1222 additions and 3894 deletions
+1 -25
View File
@@ -1,6 +1,6 @@
import { describe, expect, it } from "vitest";
import { defaultResumeData } from "@reactive-resume/schema/resume/default";
import { applyResumePatches, createResumePatches, jsonPatchOperationSchema, ResumePatchError } from "./patch";
import { applyResumePatches, jsonPatchOperationSchema, ResumePatchError } from "./patch";
describe("jsonPatchOperationSchema", () => {
it("validates add op", () => {
@@ -54,30 +54,6 @@ describe("jsonPatchOperationSchema", () => {
});
});
describe("createResumePatches", () => {
it("returns empty array when documents are equal", () => {
const patches = createResumePatches(defaultResumeData, defaultResumeData);
expect(patches).toEqual([]);
});
it("emits a replace op when a scalar field changes", () => {
const next = { ...defaultResumeData, basics: { ...defaultResumeData.basics, name: "Alice" } };
const patches = createResumePatches(defaultResumeData, next);
expect(patches.some((p) => p.op === "replace" && p.path === "/basics/name")).toBe(true);
});
it("captures multiple changes in distinct operations", () => {
const next = {
...defaultResumeData,
basics: { ...defaultResumeData.basics, name: "Alice", email: "alice@example.com" },
};
const patches = createResumePatches(defaultResumeData, next);
expect(patches.length).toBeGreaterThanOrEqual(2);
});
});
describe("applyResumePatches", () => {
it("applies a single replace op", () => {
const result = applyResumePatches(defaultResumeData, [{ op: "replace", path: "/basics/name", value: "Alice" }]);
-4
View File
@@ -20,10 +20,6 @@ export const jsonPatchOperationSchema = z.discriminatedUnion("op", [
export type JsonPatchOperation = z.infer<typeof jsonPatchOperationSchema>;
export function createResumePatches(previous: ResumeData, next: ResumeData): JsonPatchOperation[] {
return z.array(jsonPatchOperationSchema).parse(jsonpatch.compare(previous, next));
}
/**
* A structured error thrown when a JSON Patch operation fails.
* Contains only the relevant details -- never the full document tree.