UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

54 lines (51 loc) 10.4 kB
/** * Edit Image Node - Version 1 - Zod Validation Schemas * * These schemas validate node configuration at runtime. * Use .parse() for strict validation or .safeParse() for error handling. * * Schema helpers (z, expressionSchema, etc.) are passed as parameters * by the schema-validator, not imported from external files. * * @generated - CommonJS JavaScript for runtime loading */ module.exports = function getSchema({ parameters, z, expressionSchema, stringOrExpression, numberOrExpression, booleanOrExpression, resourceLocatorValueSchema, resourceMapperValueSchema, filterValueSchema, assignmentCollectionValueSchema, iDataObjectSchema, resolveSchema }) { // Parameters schema const parametersSchema = z.object({ operation: z.union([z.literal('blur'), z.literal('border'), z.literal('composite'), z.literal('create'), z.literal('crop'), z.literal('draw'), z.literal('information'), z.literal('multiStep'), z.literal('resize'), z.literal('rotate'), z.literal('shear'), z.literal('text'), z.literal('transparent')]).optional(), dataPropertyName: stringOrExpression.optional(), operations: resolveSchema({ parameters, schema: z.object({ operations: z.array(z.object({ operation: z.union([z.literal('blur'), z.literal('border'), z.literal('composite'), z.literal('create'), z.literal('crop'), z.literal('draw'), z.literal('rotate'), z.literal('resize'), z.literal('shear'), z.literal('text'), z.literal('transparent')]).optional(), backgroundColor: stringOrExpression.optional(), width: numberOrExpression.optional(), height: numberOrExpression.optional(), primitive: z.union([z.literal('circle'), z.literal('line'), z.literal('rectangle'), expressionSchema]).optional(), color: stringOrExpression.optional(), startPositionX: numberOrExpression.optional(), startPositionY: numberOrExpression.optional(), endPositionX: numberOrExpression.optional(), endPositionY: numberOrExpression.optional(), cornerRadius: numberOrExpression.optional(), text: stringOrExpression.optional(), fontSize: numberOrExpression.optional(), fontColor: stringOrExpression.optional(), positionX: numberOrExpression.optional(), positionY: numberOrExpression.optional(), lineLength: numberOrExpression.optional(), blur: numberOrExpression.optional(), sigma: numberOrExpression.optional(), borderWidth: numberOrExpression.optional(), borderHeight: numberOrExpression.optional(), borderColor: stringOrExpression.optional(), dataPropertyNameComposite: stringOrExpression.optional(), operator: z.union([z.literal('Add'), z.literal('Atop'), z.literal('Bumpmap'), z.literal('Copy'), z.literal('CopyBlack'), z.literal('CopyBlue'), z.literal('CopyCyan'), z.literal('CopyGreen'), z.literal('CopyMagenta'), z.literal('CopyOpacity'), z.literal('CopyRed'), z.literal('CopyYellow'), z.literal('Difference'), z.literal('Divide'), z.literal('In'), z.literal('Minus'), z.literal('Multiply'), z.literal('Out'), z.literal('Over'), z.literal('Plus'), z.literal('Subtract'), z.literal('Xor'), expressionSchema]).optional(), positionX: numberOrExpression.optional(), positionY: numberOrExpression.optional(), width: numberOrExpression.optional(), height: numberOrExpression.optional(), positionX: numberOrExpression.optional(), positionY: numberOrExpression.optional(), width: numberOrExpression.optional(), height: numberOrExpression.optional(), resizeOption: z.union([z.literal('ignoreAspectRatio'), z.literal('maximumArea'), z.literal('minimumArea'), z.literal('onlyIfLarger'), z.literal('onlyIfSmaller'), z.literal('percent'), expressionSchema]).optional(), rotate: numberOrExpression.optional(), backgroundColor: stringOrExpression.optional(), degreesX: numberOrExpression.optional(), degreesY: numberOrExpression.optional(), color: stringOrExpression.optional(), font: stringOrExpression.optional() })).optional() }), required: false, displayOptions: {"show":{"operation":["multiStep"]}}, defaults: {"operation":"border"} }), backgroundColor: resolveSchema({ parameters, schema: stringOrExpression, required: false, displayOptions: {"show":{"operation":["create","rotate"]}}, defaults: {"operation":"border"} }), width: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["create","crop","resize"]}}, defaults: {"operation":"border"} }), height: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["create","crop","resize"]}}, defaults: {"operation":"border"} }), primitive: resolveSchema({ parameters, schema: z.union([z.literal('circle'), z.literal('line'), z.literal('rectangle'), expressionSchema]), required: false, displayOptions: {"show":{"operation":["draw"]}}, defaults: {"operation":"border"} }), color: resolveSchema({ parameters, schema: stringOrExpression, required: false, displayOptions: {"show":{"operation":["draw","transparent"]}}, defaults: {"operation":"border"} }), startPositionX: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["draw"],"primitive":["circle","line","rectangle"]}}, defaults: {"operation":"border","primitive":"rectangle"} }), startPositionY: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["draw"],"primitive":["circle","line","rectangle"]}}, defaults: {"operation":"border","primitive":"rectangle"} }), endPositionX: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["draw"],"primitive":["circle","line","rectangle"]}}, defaults: {"operation":"border","primitive":"rectangle"} }), endPositionY: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["draw"],"primitive":["circle","line","rectangle"]}}, defaults: {"operation":"border","primitive":"rectangle"} }), cornerRadius: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["draw"],"primitive":["rectangle"]}}, defaults: {"operation":"border","primitive":"rectangle"} }), text: resolveSchema({ parameters, schema: stringOrExpression, required: false, displayOptions: {"show":{"operation":["text"]}}, defaults: {"operation":"border"} }), fontSize: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["text"]}}, defaults: {"operation":"border"} }), fontColor: resolveSchema({ parameters, schema: stringOrExpression, required: false, displayOptions: {"show":{"operation":["text"]}}, defaults: {"operation":"border"} }), positionX: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["text","composite","crop"]}}, defaults: {"operation":"border"} }), positionY: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["text","composite","crop"]}}, defaults: {"operation":"border"} }), lineLength: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["text"]}}, defaults: {"operation":"border"} }), blur: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["blur"]}}, defaults: {"operation":"border"} }), sigma: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["blur"]}}, defaults: {"operation":"border"} }), borderWidth: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["border"]}}, defaults: {"operation":"border"} }), borderHeight: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["border"]}}, defaults: {"operation":"border"} }), borderColor: resolveSchema({ parameters, schema: stringOrExpression, required: false, displayOptions: {"show":{"operation":["border"]}}, defaults: {"operation":"border"} }), dataPropertyNameComposite: resolveSchema({ parameters, schema: stringOrExpression, required: false, displayOptions: {"show":{"operation":["composite"]}}, defaults: {"operation":"border"} }), operator: resolveSchema({ parameters, schema: z.union([z.literal('Add'), z.literal('Atop'), z.literal('Bumpmap'), z.literal('Copy'), z.literal('CopyBlack'), z.literal('CopyBlue'), z.literal('CopyCyan'), z.literal('CopyGreen'), z.literal('CopyMagenta'), z.literal('CopyOpacity'), z.literal('CopyRed'), z.literal('CopyYellow'), z.literal('Difference'), z.literal('Divide'), z.literal('In'), z.literal('Minus'), z.literal('Multiply'), z.literal('Out'), z.literal('Over'), z.literal('Plus'), z.literal('Subtract'), z.literal('Xor'), expressionSchema]), required: false, displayOptions: {"show":{"operation":["composite"]}}, defaults: {"operation":"border"} }), resizeOption: resolveSchema({ parameters, schema: z.union([z.literal('ignoreAspectRatio'), z.literal('maximumArea'), z.literal('minimumArea'), z.literal('onlyIfLarger'), z.literal('onlyIfSmaller'), z.literal('percent'), expressionSchema]), required: false, displayOptions: {"show":{"operation":["resize"]}}, defaults: {"operation":"border"} }), rotate: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["rotate"]}}, defaults: {"operation":"border"} }), degreesX: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["shear"]}}, defaults: {"operation":"border"} }), degreesY: resolveSchema({ parameters, schema: numberOrExpression, required: false, displayOptions: {"show":{"operation":["shear"]}}, defaults: {"operation":"border"} }), options: resolveSchema({ parameters, schema: z.object({ destinationKey: stringOrExpression.optional(), fileName: stringOrExpression.optional(), font: stringOrExpression.optional(), format: z.union([z.literal('bmp'), z.literal('gif'), z.literal('jpeg'), z.literal('png'), z.literal('tiff'), z.literal('webp'), expressionSchema]).optional(), quality: numberOrExpression.optional() }), required: false, displayOptions: {"hide":{"operation":["information"]}}, defaults: {"operation":"border"} }), }); // Return combined config schema return z.object({ parameters: parametersSchema.optional(), }); };