Files
Sebastian Poxhofer 15f4bd8eff chore: migrate from zod/v3 to zod/v4 (#43691)
* chore: migrate from zod/v3 to zod/v4

This commit contains the logic changes

* chore: migrate imports from zod/v3 to zod/v4

This contains import updates and adds explicit record keys as zod/v4 requires these now

* ci: enforce usage of zod/v4
2026-05-30 16:01:58 +00:00

37 lines
937 B
TypeScript

import { DateTime } from 'luxon';
import { z } from 'zod/v4';
import { UtcDate } from '../../../util/schema-utils/index.ts';
import { MaybeTimestamp } from '../../../util/timestamp.ts';
import type { Release } from '../types.ts';
const ExpireableField = z.union([
UtcDate.transform((x) => {
const now = DateTime.now().toUTC();
return x <= now;
}),
z.boolean(),
]);
export const EndoflifeDateVersions = z
.object({
cycle: z.string(),
latest: z.optional(z.string()),
releaseDate: MaybeTimestamp,
eol: z.optional(ExpireableField),
discontinued: z.optional(ExpireableField),
})
.transform(
({
cycle,
latest,
releaseDate: releaseTimestamp,
eol,
discontinued,
}): Release => {
const version = latest ?? cycle;
const isDeprecated = eol === true || discontinued === true;
return { version, releaseTimestamp, isDeprecated };
},
)
.array();