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

54 lines
1.3 KiB
TypeScript

import { z } from 'zod/v4';
import { MaybeTimestamp } from '../../../util/timestamp.ts';
export type GalaxyV3 = z.infer<typeof GalaxyV3>;
export const GalaxyV3 = z.object({
deprecated: z.boolean(),
highest_version: z.object({
version: z.string(),
}),
});
export type GalaxyV3Versions = z.infer<typeof GalaxyV3Versions>;
export const GalaxyV3Versions = z
.object({
data: z.array(
z.object({
version: z.string(),
created_at: MaybeTimestamp,
}),
),
})
.transform(({ data }) => {
return data.map((value) => {
return {
version: value.version,
releaseTimestamp: value.created_at,
};
});
});
export type GalaxyV3DetailedVersion = z.infer<typeof GalaxyV3DetailedVersion>;
export const GalaxyV3DetailedVersion = z
.object({
version: z.string(),
download_url: z.string(),
artifact: z.object({
sha256: z.string(),
}),
metadata: z.object({
homepage: z.string().optional(),
repository: z.string(),
dependencies: z.record(z.string(), z.string()).optional(),
}),
})
.transform((value) => {
return {
version: value.version,
downloadUrl: value.download_url,
newDigest: value.artifact.sha256,
dependencies: value.metadata.dependencies,
sourceUrl: value.metadata.repository,
};
});