renovate
Version:
Automated dependency updates. Flexible so you don't need to be.
46 lines (45 loc) • 1.87 kB
JavaScript
import { LooseRecord } from "../../../util/schema-utils/index.js";
import { z } from "zod/v4";
//#region lib/modules/datasource/npm/schema.ts
const Repository = z.union([z.string(), z.object({
url: z.string().nullish(),
directory: z.string().nullish()
})]);
const Attestations = z.object({ url: z.string().optional() });
const Distribution = z.object({ attestations: Attestations.optional() });
const NpmResponseVersion = z.object({
repository: Repository.optional(),
homepage: z.string().optional().catch(void 0),
deprecated: z.union([z.string(), z.boolean()]).optional(),
gitHead: z.string().optional(),
dependencies: z.record(z.string(), z.string()).optional(),
devDependencies: z.record(z.string(), z.string()).optional(),
engines: z.object({ node: z.string().optional() }).optional().catch(void 0),
dist: Distribution.optional()
});
const CachedPackument = z.object({
versions: z.record(z.string(), NpmResponseVersion).optional(),
repository: Repository.optional(),
homepage: z.string().optional(),
time: LooseRecord(z.string()).optional(),
"dist-tags": z.record(z.string(), z.string()).optional()
});
/**
* Full NpmResponse schema — used when fetching from the npm registry.
* Lenient: only validates fields Renovate actually reads.
* Uses loose() on the version objects to preserve extra fields
* (e.g. 'renovate-config' used by config/presets/npm/index.ts).
*/
const NpmResponseVersionLoose = NpmResponseVersion.loose();
const NpmResponse = z.object({
_id: z.string().optional(),
name: z.string().optional(),
versions: z.record(z.string(), NpmResponseVersionLoose).optional(),
repository: Repository.optional(),
homepage: z.string().optional(),
time: LooseRecord(z.string()).optional(),
"dist-tags": z.record(z.string(), z.string()).optional()
});
//#endregion
export { CachedPackument, NpmResponse };
//# sourceMappingURL=schema.js.map