-
mateusz-winiarczyk authoredmateusz-winiarczyk authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
configurationSchema.ts 2.70 KiB
import { z } from 'zod';
export const elementTypeSchema = z.object({
className: z.string(),
name: z.string(),
parentClass: z.string(),
});
export const optionSchema = z.object({
idObject: z.number(),
type: z.string(),
valueType: z.string(),
commonName: z.string(),
isServerSide: z.boolean(),
group: z.string(),
value: z.string().optional(),
});
export const imageFormatSchema = z.object({
name: z.string(),
handler: z.string(),
extension: z.string(),
});
export const modelFormatSchema = z.object({
name: z.string(),
handler: z.string(),
extension: z.string(),
});
export const overlayTypeSchema = z.object({ name: z.string() });
export const reactionTypeSchema = z.object({
className: z.string(),
name: z.string(),
parentClass: z.string(),
});
export const miriamTypesSchema = z.record(
z.string(),
z.object({
commonName: z.string(),
homepage: z.string().nullable(),
registryIdentifier: z.string().nullable(),
uris: z.array(z.string()),
}),
);
export const bioEntityFieldSchema = z.object({ commonName: z.string(), name: z.string() });
export const annotatorSchema = z.object({
className: z.string(),
name: z.string(),
description: z.string(),
url: z.string(),
elementClassNames: z.array(z.string()),
parameters: z.array(
z.object({
field: z.string().nullable().optional(),
annotation_type: z.string().nullable().optional(),
order: z.number(),
type: z.string(),
}),
),
});
export const privilegeTypeSchema = z.record(
z.string(),
z.object({
commonName: z.string(),
objectType: z.string().nullable(),
valueType: z.string(),
}),
);
export const mapTypeSchema = z.object({ name: z.string(), id: z.string() });
export const mapCanvasTypeSchema = z.object({ name: z.string(), id: z.string() });
export const unitTypeSchema = z.object({ name: z.string(), id: z.string() });
export const modificationStateTypeSchema = z.record(
z.string(),
z.object({ commonName: z.string(), abbreviation: z.string() }),
);
export const configurationSchema = z.object({
elementTypes: z.array(elementTypeSchema),
options: z.array(optionSchema),
imageFormats: z.array(imageFormatSchema),
modelFormats: z.array(modelFormatSchema),
overlayTypes: z.array(overlayTypeSchema),
reactionTypes: z.array(reactionTypeSchema),
miriamTypes: miriamTypesSchema,
bioEntityFields: z.array(bioEntityFieldSchema),
version: z.string(),
buildDate: z.string(),
gitHash: z.string(),
annotators: z.array(annotatorSchema),
privilegeTypes: privilegeTypeSchema,
mapTypes: z.array(mapTypeSchema),
mapCanvasTypes: z.array(mapCanvasTypeSchema),
unitTypes: z.array(unitTypeSchema),
modificationStateTypes: modificationStateTypeSchema,
});