@seliseblocks/mcp-server
Version:
A Model Context Protocol (MCP) server for managing schemas in SELISE Blocks platform, built with TypeScript.
42 lines • 2.09 kB
JavaScript
import { z } from 'zod';
export const ModuleGenerationSchema = z.object({
moduleName: z.string().describe('The name of the module (e.g., "user-management", "product-catalog")'),
displayName: z.string().describe('The display name for the module (e.g., "User Management", "Product Catalog")'),
route: z.string().describe('The route path (e.g., "/users", "/products")'),
fields: z.array(z.object({
name: z.string().describe('Field name in camelCase'),
displayName: z.string().describe('Display name for the field'),
type: z.enum(['string', 'number', 'boolean', 'date', 'email', 'url']).describe('Field type'),
required: z.boolean().default(true).describe('Whether the field is required'),
validation: z.string().optional().describe('Additional validation rules')
})).describe('Array of fields for the module'),
features: z.object({
list: z.boolean().default(true).describe('Generate list page'),
add: z.boolean().default(true).describe('Generate add form'),
edit: z.boolean().default(false).describe('Generate edit form'),
delete: z.boolean().default(false).describe('Generate delete functionality'),
details: z.boolean().default(false).describe('Generate details page')
}).default({
list: true,
add: true,
edit: false,
delete: false,
details: false
}),
navigation: z.object({
addToMenu: z.boolean().default(true).describe('Add to navigation menu'),
icon: z.string().optional().describe('Icon name for the menu item'),
position: z.enum(['after-inventory', 'after-iam', 'custom']).default('after-inventory').describe('Position in navigation menu')
}).default({
addToMenu: true,
position: 'after-inventory'
})
});
export const FieldSchema = z.object({
name: z.string(),
displayName: z.string(),
type: z.enum(['string', 'number', 'boolean', 'date', 'email', 'url']),
required: z.boolean(),
validation: z.string().optional()
});
//# sourceMappingURL=templateType.js.map