feat: add replace-color tool and update tool page routing

- Add replace-color tool with pixel-level color replacement and tolerance
- Register all 19 new Phase 3 tools in routes/tools/index.ts
- Map all new tool IDs to settings components in tool-page.tsx
- Add PDF, ZIP, ICO, JSON content types to download route
- Install qrcode, jsqr, potrace, pdfkit dependencies
This commit is contained in:
Siddharth Kumar Sah
2026-03-22 04:21:10 +08:00
parent b88d0d0af8
commit 9c55dd32c4
7 changed files with 1820 additions and 34 deletions
+60 -1
View File
@@ -6,12 +6,39 @@ import { registerConvert } from "./convert.js";
import { registerCompress } from "./compress.js";
import { registerStripMetadata } from "./strip-metadata.js";
import { registerColorAdjustments } from "./color-adjustments.js";
// Phase 3: Watermark & Overlay
import { registerWatermarkText } from "./watermark-text.js";
import { registerWatermarkImage } from "./watermark-image.js";
import { registerTextOverlay } from "./text-overlay.js";
import { registerCompose } from "./compose.js";
// Phase 3: Utilities
import { registerInfo } from "./info.js";
import { registerCompare } from "./compare.js";
import { registerFindDuplicates } from "./find-duplicates.js";
import { registerColorPalette } from "./color-palette.js";
import { registerQrGenerate } from "./qr-generate.js";
import { registerBarcodeRead } from "./barcode-read.js";
// Phase 3: Layout & Composition
import { registerCollage } from "./collage.js";
import { registerSplit } from "./split.js";
import { registerBorder } from "./border.js";
// Phase 3: Format & Conversion
import { registerSvgToRaster } from "./svg-to-raster.js";
import { registerVectorize } from "./vectorize.js";
import { registerGifTools } from "./gif-tools.js";
// Phase 3: Optimization extras
import { registerBulkRename } from "./bulk-rename.js";
import { registerFavicon } from "./favicon.js";
import { registerImageToPdf } from "./image-to-pdf.js";
// Phase 3: Adjustments extra
import { registerReplaceColor } from "./replace-color.js";
/**
* Registry that imports and registers all tool routes.
* Each tool uses the createToolRoute factory from tool-factory.ts.
*/
export async function registerToolRoutes(app: FastifyInstance): Promise<void> {
// Phase 2: Core tools
registerResize(app);
registerCrop(app);
registerRotate(app);
@@ -20,5 +47,37 @@ export async function registerToolRoutes(app: FastifyInstance): Promise<void> {
registerStripMetadata(app);
registerColorAdjustments(app);
app.log.info("Tool routes registered (7 tools, 10 endpoints)");
// Phase 3: Watermark & Overlay
registerWatermarkText(app);
registerWatermarkImage(app);
registerTextOverlay(app);
registerCompose(app);
// Phase 3: Utilities
registerInfo(app);
registerCompare(app);
registerFindDuplicates(app);
registerColorPalette(app);
registerQrGenerate(app);
registerBarcodeRead(app);
// Phase 3: Layout & Composition
registerCollage(app);
registerSplit(app);
registerBorder(app);
// Phase 3: Format & Conversion
registerSvgToRaster(app);
registerVectorize(app);
registerGifTools(app);
// Phase 3: Optimization extras
registerBulkRename(app);
registerFavicon(app);
registerImageToPdf(app);
// Phase 3: Adjustments extra
registerReplaceColor(app);
app.log.info("Tool routes registered (26 tools, 29 endpoints)");
}