aem-dev-mcp-server
Version:
AEM MCP server providing connectivity tools for Adobe Experience Manager® instances
127 lines • 5.38 kB
JavaScript
import { z } from 'zod';
import { InstanceSelectionSchema } from '../schemas/instance.schemas.js';
export const BundleStateSchema = z.enum([
'Active',
'Resolved',
'Installed',
'Starting',
'Stopping',
'Uninstalled',
'Fragment'
]);
export const ComponentStateSchema = z.enum([
'active',
'satisfied',
'unsatisfied',
'disabled'
]);
export const ConfigPropertyTypeSchema = z.enum([
'String',
'Long',
'Integer',
'Short',
'Character',
'Boolean',
'Double',
'Float'
]);
export const ConfigPropertySchema = z.object({
name: z.string().min(1, 'Property name cannot be empty'),
value: z.any(),
type: ConfigPropertyTypeSchema,
cardinality: z.number().optional(),
description: z.string().optional()
});
export const BundleListSchema = InstanceSelectionSchema.safeExtend({
stateFilter: BundleStateSchema.optional(),
nameFilter: z.string().optional(),
limit: z.number().int().min(1).max(1000).optional().default(100),
offset: z.number().int().min(0).optional().default(0)
});
export const BundleOperationSchema = InstanceSelectionSchema.safeExtend({
bundleId: z.number().int().positive('Bundle ID must be a positive integer').optional(),
symbolicName: z.string().optional(),
action: z.enum(['start', 'stop', 'uninstall', 'refresh'])
}).refine((data) => data.bundleId || data.symbolicName, {
message: "Either 'bundleId' or 'symbolicName' must be provided",
path: ['bundleId', 'symbolicName']
});
export const BundleIdentifierSchema = InstanceSelectionSchema.safeExtend({
bundleId: z.number().int().positive('Bundle ID must be a positive integer').optional(),
symbolicName: z.string().optional()
}).refine((data) => data.bundleId || data.symbolicName, {
message: "Either 'bundleId' or 'symbolicName' must be provided",
path: ['bundleId', 'symbolicName']
});
export const BundleDetailsSchema = InstanceSelectionSchema.safeExtend({
bundleId: z.number().int().positive('Bundle ID must be a positive integer').optional(),
symbolicName: z.string().optional()
}).refine((data) => data.bundleId || data.symbolicName, {
message: "Either 'bundleId' or 'symbolicName' must be provided",
path: ['bundleId', 'symbolicName']
});
export const BundleInstallSchema = InstanceSelectionSchema.safeExtend({
bundleUrl: z.string().url('Invalid bundle URL').optional(),
bundleFile: z.instanceof(Buffer).optional(),
startLevel: z.number().int().min(1).max(100).optional(),
start: z.boolean().default(true),
refresh: z.boolean().default(false)
}).refine((data) => data.bundleUrl || data.bundleFile, {
message: "Either 'bundleUrl' or 'bundleFile' must be provided",
path: ['bundleUrl', 'bundleFile']
});
export const ComponentListSchema = InstanceSelectionSchema.safeExtend({
stateFilter: ComponentStateSchema.optional(),
nameFilter: z.string().optional(),
limit: z.number().int().min(1).max(1000).optional().default(100),
offset: z.number().int().min(0).optional().default(0)
});
export const ComponentOperationSchema = InstanceSelectionSchema.safeExtend({
componentId: z.number().int().positive('Component ID must be positive').optional(),
componentName: z.string().optional(),
action: z.enum(['enable', 'disable'])
}).refine((data) => data.componentId || data.componentName, {
message: "Either 'componentId' or 'componentName' must be provided",
path: ['componentId', 'componentName']
});
export const ComponentIdentifierSchema = InstanceSelectionSchema.safeExtend({
componentId: z.number().int().positive('Component ID must be positive').optional(),
componentName: z.string().optional()
}).refine((data) => data.componentId || data.componentName, {
message: "Either 'componentId' or 'componentName' must be provided",
path: ['componentId', 'componentName']
});
export const ConfigurationListSchema = InstanceSelectionSchema.safeExtend({
pidFilter: z.string().optional(),
limit: z.number().int().min(1).max(1000).optional().default(100),
offset: z.number().int().min(0).optional().default(0)
});
export const ConfigurationGetSchema = InstanceSelectionSchema.safeExtend({
pid: z.string().min(1, 'PID cannot be empty')
});
export const ConfigurationCreateSchema = InstanceSelectionSchema.safeExtend({
pid: z.string().min(1, 'PID cannot be empty'),
properties: z.record(z.string(), ConfigPropertySchema)
.refine(props => Object.keys(props).length > 0, {
message: 'At least one property must be provided'
}),
factoryPid: z.string().optional(),
bundleLocation: z.string().optional()
});
export const ConfigurationUpdateSchema = InstanceSelectionSchema.safeExtend({
pid: z.string().min(1, 'PID cannot be empty'),
properties: z.record(z.string(), ConfigPropertySchema)
.refine(props => Object.keys(props).length > 0, {
message: 'At least one property must be provided'
}),
factoryPid: z.string().optional(),
bundleLocation: z.string().optional()
});
export const ConfigurationDeleteSchema = InstanceSelectionSchema.safeExtend({
pid: z.string().min(1, 'PID cannot be empty')
});
export const ConfigurationUnbindSchema = InstanceSelectionSchema.safeExtend({
pid: z.string().min(1, 'PID cannot be empty'),
bundleLocation: z.string().optional()
});
//# sourceMappingURL=osgi.schemas.js.map