UNPKG

@vzeta/camunda-api-zod-schemas

Version:

Zod schemas and TypeScript types for Camunda 8 unified API

93 lines (92 loc) 3.53 kB
import { z } from "zod"; import { advancedStringFilterSchema, basicStringFilterSchema, advancedDateTimeFilterSchema, getOrFilterSchema, getCollectionResponseBodySchema, getQueryRequestBodySchema, getQueryResponseBodySchema, API_VERSION } from "../common.js"; import { processInstanceStateSchema, processDefinitionStatisticSchema, processDefinitionSchema } from "../processes.js"; const getProcessDefinition = { method: "GET", getUrl: ({ processDefinitionKey }) => `/${API_VERSION}/process-definitions/${processDefinitionKey}` }; const getProcessDefinitionXml = { method: "GET", getUrl: ({ processDefinitionKey }) => `/${API_VERSION}/process-definitions/${processDefinitionKey}/xml` }; const getProcessStartForm = { method: "GET", getUrl: ({ processDefinitionKey }) => `/${API_VERSION}/process-definitions/${processDefinitionKey}/form` }; const advancedProcessInstanceStateFilterSchema = z.object({ $eq: processInstanceStateSchema, $neq: processInstanceStateSchema, $exists: z.boolean(), $in: z.array(processInstanceStateSchema), $like: z.string() }).partial(); const processDefinitionStatisticsFilterFieldsSchema = z.object({ startDate: advancedDateTimeFilterSchema, endDate: advancedDateTimeFilterSchema, state: advancedProcessInstanceStateFilterSchema, hasIncident: z.boolean(), tenantId: advancedStringFilterSchema, variables: z.array( z.object({ name: z.string(), value: z.string() }) ), processInstanceKey: basicStringFilterSchema, parentProcessInstanceKey: basicStringFilterSchema, parentElementInstanceKey: basicStringFilterSchema, batchOperationId: advancedStringFilterSchema, errorMessage: advancedStringFilterSchema, hasRetriesLeft: z.boolean(), elementInstanceState: advancedProcessInstanceStateFilterSchema, elementId: advancedStringFilterSchema, hasElementInstanceIncident: z.boolean(), incidentErrorHashCode: z.number() }); const getProcessDefinitionStatisticsRequestBodySchema = z.object({ filter: getOrFilterSchema(processDefinitionStatisticsFilterFieldsSchema.partial()) }).partial(); const getProcessDefinitionStatisticsResponseBodySchema = getCollectionResponseBodySchema( processDefinitionStatisticSchema ); const getProcessDefinitionStatistics = { method: "POST", getUrl: ({ processDefinitionKey, statisticName = "element-instances" }) => `/${API_VERSION}/process-definitions/${processDefinitionKey}/statistics/${statisticName}` }; const queryProcessDefinitionsRequestBodySchema = getQueryRequestBodySchema({ sortFields: [ "processDefinitionKey", "name", "resourceName", "version", "versionTag", "processDefinitionId", "tenantId" ], filter: processDefinitionSchema.omit({ processDefinitionId: true, name: true }).extend({ isLatestVersion: z.boolean(), processDefinitionId: advancedStringFilterSchema, name: advancedStringFilterSchema }).partial() }); const queryProcessDefinitionsResponseBodySchema = getQueryResponseBodySchema(processDefinitionSchema); const queryProcessDefinitions = { method: "POST", getUrl: () => `/${API_VERSION}/process-definitions/search` }; export { getProcessDefinition, getProcessDefinitionStatistics, getProcessDefinitionStatisticsRequestBodySchema, getProcessDefinitionStatisticsResponseBodySchema, getProcessDefinitionXml, getProcessStartForm, processDefinitionSchema, processDefinitionStatisticSchema, queryProcessDefinitions, queryProcessDefinitionsRequestBodySchema, queryProcessDefinitionsResponseBodySchema };