Files
renovate/lib/modules/manager/argocd/schema.ts
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

45 lines
1.3 KiB
TypeScript

import { z } from 'zod/v4';
import { LooseArray, multidocYaml } from '../../../util/schema-utils/index.ts';
export const KubernetesResource = z.object({
apiVersion: z.string(),
});
export const ApplicationKustomize = z.object({
images: LooseArray(z.string()).optional(),
});
export const ApplicationSource = z.object({
chart: z.string().optional(),
repoURL: z.string(),
targetRevision: z.string(),
kustomize: ApplicationKustomize.optional(),
});
export type ApplicationSource = z.infer<typeof ApplicationSource>;
export const ApplicationSpec = z.object({
source: ApplicationSource.optional(),
sources: LooseArray(ApplicationSource).optional(),
});
export type ApplicationSpec = z.infer<typeof ApplicationSpec>;
export const Application = KubernetesResource.extend({
kind: z.literal('Application'),
spec: ApplicationSpec,
});
export const ApplicationSet = KubernetesResource.extend({
kind: z.literal('ApplicationSet'),
spec: z.object({
template: z.object({
spec: ApplicationSpec,
}),
}),
});
export const ApplicationDefinition = Application.or(ApplicationSet);
export type ApplicationDefinition = z.infer<typeof ApplicationDefinition>;
export const ApplicationDefinitions = multidocYaml({
removeTemplates: true,
}).pipe(LooseArray(ApplicationDefinition));