@boundless-oss/atlas
Version:
Atlas - MCP Server for comprehensive startup project management
119 lines • 2.89 kB
TypeScript
import { JSONSchema7 } from 'json-schema';
import { ValidationResult } from './types.js';
/**
* Schema validation utility using Ajv
*/
export declare class SchemaValidator {
private ajv;
constructor();
/**
* Validate data against a JSON schema
*/
validate(schema: JSONSchema7, data: any): ValidationResult;
/**
* Validate and return cleaned data
*/
validateAndClean<T>(schema: JSONSchema7, data: any): {
valid: boolean;
data?: T;
errors?: ValidationResult['errors'];
};
/**
* Create a validation function for a specific schema
*/
createValidator(schema: JSONSchema7): (data: any) => ValidationResult;
/**
* Add custom format validators
*/
private addCustomFormats;
}
export declare function getValidator(): SchemaValidator;
/**
* Common schema definitions for reuse
*/
export declare const CommonSchemas: {
id: {
type: "string";
minLength: number;
maxLength: number;
pattern: string;
};
projectId: {
type: "string";
minLength: number;
maxLength: number;
description: string;
};
timestamp: {
type: "integer";
format: "unix-timestamp";
description: string;
};
priority: {
type: "string";
format: "priority";
default: string;
description: string;
};
tags: {
type: "array";
items: {
type: "string";
minLength: number;
maxLength: number;
};
default: any[];
description: string;
};
storyPoints: {
type: "integer";
format: "story-points";
default: number;
description: string;
};
status: {
story: {
type: "string";
format: "story-status";
default: string;
description: string;
};
sprint: {
type: "string";
format: "sprint-status";
default: string;
description: string;
};
approval: {
type: "string";
format: "approval-status";
default: string;
description: string;
};
};
documentation: {
url: {
type: "string";
format: "uri";
description: string;
};
status: {
type: "string";
format: "doc-status";
default: string;
description: string;
};
};
};
/**
* Utility function to create error responses
*/
export declare function createValidationError(errors: ValidationResult['errors']): {
code: string;
message: string;
details: Record<string, any>;
suggestions: string[];
recoverable: boolean;
category: 'validation';
};
//# sourceMappingURL=validation.d.ts.map