mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-03 11:03:39 +00:00
15f4bd8eff
* 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
34 lines
1.1 KiB
TypeScript
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,
|
|
);
|