diff --git a/CLAUDE.md b/CLAUDE.md index dea46e8e4..fd087b23c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -102,10 +102,10 @@ The SDK uses `zod/v4` internally. Schema utilities live in: ### Validation -Pluggable JSON Schema validation (`packages/core/src/validation/`): +Pluggable JSON Schema validation (`packages/core/src/validators/`): -- `ajv-provider.ts` - Default Ajv-based validator -- `cfworker-provider.ts` - Cloudflare Workers-compatible alternative +- `ajvProvider.ts` - Default Ajv-based validator +- `cfWorkerProvider.ts` - Cloudflare Workers-compatible alternative ### Examples diff --git a/packages/core/src/index.examples.ts b/packages/core/src/index.examples.ts index 41952d29e..531f51211 100644 --- a/packages/core/src/index.examples.ts +++ b/packages/core/src/index.examples.ts @@ -7,8 +7,8 @@ * @module */ -import { AjvJsonSchemaValidator } from './validation/ajvProvider.js'; -import { CfWorkerJsonSchemaValidator } from './validation/cfWorkerProvider.js'; +import { AjvJsonSchemaValidator } from './validators/ajvProvider.js'; +import { CfWorkerJsonSchemaValidator } from './validators/cfWorkerProvider.js'; /** * Example: AJV validator for Node.js. diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 917e5c6b6..56769c575 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -15,8 +15,8 @@ export * from './util/schema.js'; // experimental exports export * from './experimental/index.js'; -export * from './validation/ajvProvider.js'; -export * from './validation/cfWorkerProvider.js'; +export * from './validators/ajvProvider.js'; +export * from './validators/cfWorkerProvider.js'; /** * JSON Schema validation * @@ -24,11 +24,11 @@ export * from './validation/cfWorkerProvider.js'; * Choose a validator based on your runtime environment: * * - {@linkcode AjvJsonSchemaValidator}: Best for Node.js (default, fastest) - * Import from: @modelcontextprotocol/sdk/validation/ajv + * Import from: @modelcontextprotocol/sdk/validators/ajv * Requires peer dependencies: ajv, ajv-formats * * - {@linkcode CfWorkerJsonSchemaValidator}: Best for edge runtimes - * Import from: @modelcontextprotocol/sdk/validation/cfworker + * Import from: @modelcontextprotocol/sdk/validators/cfworker * Requires peer dependency: @cfworker/json-schema * * @example For Node.js with AJV @@ -45,4 +45,4 @@ export * from './validation/cfWorkerProvider.js'; */ // Core types only - implementations are exported via separate entry points -export type { JsonSchemaType, JsonSchemaValidator, jsonSchemaValidator, JsonSchemaValidatorResult } from './validation/types.js'; +export type { JsonSchemaType, JsonSchemaValidator, jsonSchemaValidator, JsonSchemaValidatorResult } from './validators/types.js'; diff --git a/packages/core/src/validation/ajvProvider.examples.ts b/packages/core/src/validators/ajvProvider.examples.ts similarity index 100% rename from packages/core/src/validation/ajvProvider.examples.ts rename to packages/core/src/validators/ajvProvider.examples.ts diff --git a/packages/core/src/validation/ajvProvider.ts b/packages/core/src/validators/ajvProvider.ts similarity index 100% rename from packages/core/src/validation/ajvProvider.ts rename to packages/core/src/validators/ajvProvider.ts diff --git a/packages/core/src/validation/cfWorkerProvider.examples.ts b/packages/core/src/validators/cfWorkerProvider.examples.ts similarity index 100% rename from packages/core/src/validation/cfWorkerProvider.examples.ts rename to packages/core/src/validators/cfWorkerProvider.examples.ts diff --git a/packages/core/src/validation/cfWorkerProvider.ts b/packages/core/src/validators/cfWorkerProvider.ts similarity index 100% rename from packages/core/src/validation/cfWorkerProvider.ts rename to packages/core/src/validators/cfWorkerProvider.ts diff --git a/packages/core/src/validation/types.examples.ts b/packages/core/src/validators/types.examples.ts similarity index 100% rename from packages/core/src/validation/types.examples.ts rename to packages/core/src/validators/types.examples.ts diff --git a/packages/core/src/validation/types.ts b/packages/core/src/validators/types.ts similarity index 100% rename from packages/core/src/validation/types.ts rename to packages/core/src/validators/types.ts diff --git a/packages/core/test/validation/validation.test.ts b/packages/core/test/validators/validators.test.ts similarity index 98% rename from packages/core/test/validation/validation.test.ts rename to packages/core/test/validators/validators.test.ts index e88e1effc..6c543cb05 100644 --- a/packages/core/test/validation/validation.test.ts +++ b/packages/core/test/validators/validators.test.ts @@ -9,9 +9,9 @@ import path from 'node:path'; import { vi } from 'vitest'; -import { AjvJsonSchemaValidator } from '../../src/validation/ajvProvider.js'; -import { CfWorkerJsonSchemaValidator } from '../../src/validation/cfWorkerProvider.js'; -import type { JsonSchemaType } from '../../src/validation/types.js'; +import { AjvJsonSchemaValidator } from '../../src/validators/ajvProvider.js'; +import { CfWorkerJsonSchemaValidator } from '../../src/validators/cfWorkerProvider.js'; +import type { JsonSchemaType } from '../../src/validators/types.js'; // Test with both AJV and CfWorker validators // AJV validator will use default configuration with format validation enabled @@ -554,7 +554,7 @@ describe('Missing dependencies', () => { }); // Attempting to import ajv-provider should fail - await expect(import('../../src/validation/ajvProvider.js')).rejects.toThrow(); + await expect(import('../../src/validators/ajvProvider.js')).rejects.toThrow(); }); it('should be able to import cfWorkerProvider when ajv is missing', async () => { @@ -568,7 +568,7 @@ describe('Missing dependencies', () => { }); // But cfWorkerProvider should import successfully - const cfworkerModule = await import('../../src/validation/cfWorkerProvider.js'); + const cfworkerModule = await import('../../src/validators/cfWorkerProvider.js'); expect(cfworkerModule.CfWorkerJsonSchemaValidator).toBeDefined(); // And should work correctly @@ -595,7 +595,7 @@ describe('Missing dependencies', () => { }); // Attempting to import cfWorkerProvider should fail - await expect(import('../../src/validation/cfWorkerProvider.js')).rejects.toThrow(); + await expect(import('../../src/validators/cfWorkerProvider.js')).rejects.toThrow(); }); it('should be able to import ajv-provider when @cfworker/json-schema is missing', async () => { @@ -605,7 +605,7 @@ describe('Missing dependencies', () => { }); // But ajv-provider should import successfully - const ajvModule = await import('../../src/validation/ajvProvider.js'); + const ajvModule = await import('../../src/validators/ajvProvider.js'); expect(ajvModule.AjvJsonSchemaValidator).toBeDefined(); // And should work correctly @@ -616,7 +616,7 @@ describe('Missing dependencies', () => { }); it('should document that @cfworker/json-schema is required', () => { - const cfworkerProviderPath = path.join(__dirname, '../../src/validation/cfWorkerProvider.ts'); + const cfworkerProviderPath = path.join(__dirname, '../../src/validators/cfWorkerProvider.ts'); const content = readFileSync(cfworkerProviderPath, 'utf8'); expect(content).toContain('@cfworker/json-schema');