Files
renovate[bot] 9d74625d93 build(deps): update dependency prettier to v3.9.6 (main) (#45815)
* build(deps): update dependency prettier to v3.9.6

| datasource | package  | from  | to    |
| ---------- | -------- | ----- | ----- |
| npm        | prettier | 3.8.1 | 3.9.6 |

* chore: prettier fixes

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Kriese <michael.kriese@mend.io>
2026-09-09 13:50:03 +00:00

64 lines
1.5 KiB
TypeScript

import { z } from 'zod/v4';
import { LooseArray } from '../../../util/schema-utils/index.ts';
import type { ReleaseResult } from '../types.ts';
import { conanDatasourceRegex } from './common.ts';
export const ConanCenterReleases = z
.object({
versions: z.record(z.string(), z.unknown()),
})
.transform(({ versions }): ReleaseResult => ({
releases: Object.keys(versions).map((version) => ({ version })),
}))
.nullable()
.catch(null);
export const ConanJSON = z
.object({
results: z
.string()
.array()
.transform((array) =>
array.map((val) => val.match(conanDatasourceRegex)?.groups),
)
.pipe(
LooseArray(
z.object({
name: z.string(),
version: z.string(),
userChannel: z.string(),
}),
),
),
})
.transform(({ results }) => results)
.nullable()
.catch(null);
export const ConanRevisionJSON = z.object({
revision: z.string(),
time: z.string(),
});
export const ConanLatestRevision = z
.object({ revisions: z.unknown().array() })
.transform(({ revisions }) => revisions[0])
.pipe(ConanRevisionJSON)
.transform(({ revision }) => revision)
.nullable()
.catch(null);
export const ConanProperties = z
.object({
properties: z.object({
'conan.package.url': z.union([
z.string().transform((url) => [url]),
z.string().array(),
]),
}),
})
.transform(({ properties }) => {
const sourceUrl = properties['conan.package.url'][0];
return { sourceUrl };
});