/** * Minimal valid settings per tool, used by the generated matrices * (format-matrix-generated, hostile-inputs) when posting to tool routes. * * Default is {} (most schemas make every field optional). Tools whose schema * rejects {} get an explicit minimal override here. The "defaults are valid" * test in format-matrix-generated.test.ts safeParses every entry against the * live schema, so a schema change that invalidates an entry fails at PR time * and names the tool. */ export const TOOL_SETTINGS_OVERRIDES: Record = { resize: { width: 64 }, crop: { left: 0, top: 0, width: 50, height: 50 }, convert: { format: "png" }, "watermark-text": { text: "Test" }, "text-overlay": { text: "Test" }, "passport-photo": { countryCode: "us" }, "trim-video": { startS: 0, endS: 5 }, "trim-audio": { startS: 0, endS: 5 }, "split-pdf": { mode: "range", range: "1" }, "extract-pages": { range: "1" }, "remove-pages": { pages: "2" }, "organize-pdf": { order: "1-z" }, "protect-pdf": { userPassword: "test123" }, "unlock-pdf": { password: "test123" }, "watermark-pdf": { text: "CONFIDENTIAL" }, "redact-pdf": { terms: ["test"] }, "crop-video": { width: 32, height: 32 }, "rotate-video": { transform: "cw90" }, "resize-video": { preset: "720p" }, "watermark-video": { text: "CONFIDENTIAL" }, "audio-channels": { mode: "mono-to-stereo" }, "convert-document": { format: "odt" }, "epub-convert": { format: "html" }, "convert-presentation": { format: "odp" }, "convert-spreadsheet": { format: "ods" }, "content-aware-resize": { width: 50 }, "ai-canvas-expand": { extendRight: 32 }, }; export function defaultSettingsFor(toolId: string): unknown { return TOOL_SETTINGS_OVERRIDES[toolId] ?? {}; }