























@@ -47,6 +47,7 @@ type DiffsPluginConfig = {
4747/** @deprecated Use fileMaxWidth. */
4848imageMaxWidth?: number;
4949mode?: DiffMode;
50+ttlSeconds?: number;
5051};
5152security?: {
5253allowRemoteViewer?: boolean;
@@ -89,6 +90,7 @@ export const DEFAULT_DIFFS_TOOL_DEFAULTS: DiffToolDefaults = {
8990fileScale: DEFAULT_IMAGE_QUALITY_PROFILES.standard.scale,
9091fileMaxWidth: DEFAULT_IMAGE_QUALITY_PROFILES.standard.maxWidth,
9192mode: "both",
93+ttlSeconds: 1800,
9294};
93959496type DiffsPluginSecurityConfig = {
@@ -168,6 +170,12 @@ const DiffsPluginJsonSchemaSource = z.strictObject({
168170.optional()
169171.describe("Deprecated alias for fileMaxWidth."),
170172mode: z.enum(DIFF_MODES).default(DEFAULT_DIFFS_TOOL_DEFAULTS.mode).optional(),
173+ttlSeconds: z
174+.number()
175+.min(1)
176+.max(21_600)
177+.default(DEFAULT_DIFFS_TOOL_DEFAULTS.ttlSeconds)
178+.optional(),
171179})
172180.optional(),
173181security: z
@@ -281,6 +289,7 @@ export function resolveDiffsPluginDefaults(config: unknown): DiffToolDefaults {
281289fileScale: normalizeFileScale(fileScale, profile.scale),
282290fileMaxWidth: normalizeFileMaxWidth(fileMaxWidth, profile.maxWidth),
283291mode: normalizeMode(defaults.mode),
292+ttlSeconds: normalizeTtlSeconds(defaults.ttlSeconds),
284293};
285294}
286295@@ -379,6 +388,14 @@ function normalizeMode(mode?: DiffMode): DiffMode {
379388return mode && DIFF_MODES.includes(mode) ? mode : DEFAULT_DIFFS_TOOL_DEFAULTS.mode;
380389}
381390391+function normalizeTtlSeconds(ttlSeconds?: number): number {
392+if (ttlSeconds === undefined || !Number.isFinite(ttlSeconds)) {
393+return DEFAULT_DIFFS_TOOL_DEFAULTS.ttlSeconds;
394+}
395+const rounded = Math.floor(ttlSeconds);
396+return Math.min(Math.max(rounded, 1), 21_600);
397+}
398+382399export function resolveDiffImageRenderOptions(params: {
383400defaults: DiffFileDefaults;
384401fileFormat?: DiffOutputFormat;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。