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

34 lines
1.1 KiB
TypeScript

import { z } from 'zod/v4';
import { logger } from '../../../logger/index.ts';
import { Json, LooseArray } from '../../../util/schema-utils/index.ts';
import { PypiDatasource } from '../../datasource/pypi/index.ts';
import { extractPackageFile as extractPipRequirements } from '../pip_requirements/extract.ts';
import type { PackageDependency } from '../types.ts';
const Requirement = z.string().transform((requirement) => {
const pipResult = extractPipRequirements(requirement);
const dep = pipResult?.deps?.[0];
if (dep) {
if (!dep.currentValue && !dep.skipReason) {
dep.skipReason = 'unspecified-version';
}
return dep;
}
logger.debug({ requirement }, 'Unable to parse requirement version');
return {
depName: requirement,
datasource: PypiDatasource.id,
skipReason: 'invalid-dependency-specification',
} as PackageDependency;
});
export const HomeAssistantManifest = Json.pipe(
z.object({
domain: z.string(),
name: z.string(),
requirements: LooseArray(Requirement).optional(),
}),
).transform(
({ requirements }): PackageDependency[] | undefined => requirements,
);