-
Notifications
You must be signed in to change notification settings - Fork 0
Protocol Schemas
As of PR #42, protocol-level Zod schemas are centralized in @rdcp.dev/core
. The server package re-exports these schemas for backward compatibility, but new code should import from core.
See also: Core-Package-Boundaries β architectural responsibilities and import rules for core/server/client.
Schemas:
- protocolVersionSchema
- controlRequestSchema
- controlResponseSchema
- discoveryResponseSchema
- statusResponseSchema
- healthResponseSchema
- protocolDiscoverySchema
- errorResponseSchema
Fixtures (sample typed payloads):
- protocolVersionFixture
- controlRequestEnableFixture | controlRequestDisableFixture | controlRequestResetFixture | controlRequestStatusFixture
- controlResponseFixture
- discoveryResponseFixture
- statusResponseFixture
- healthResponseFixture
- protocolDiscoveryFixture
- errorResponseFixture
Validate incoming requests (recommended):
import { controlRequestSchema } from '@rdcp.dev/core'
const result = controlRequestSchema.safeParse(req.body)
if (!result.success) {
// handle validation errors
}
Typed validation with Zod:
import { z } from 'zod'
import { controlRequestSchema } from '@rdcp.dev/core'
type ControlRequest = z.infer<typeof controlRequestSchema>
function validate(body: unknown): ControlRequest {
return controlRequestSchema.parse(body)
}
Constants, schemas, and fixtures together:
import {
PROTOCOL_VERSION,
RDCP_HEADERS,
RDCP_PATHS,
controlRequestSchema,
controlRequestEnableFixture,
discoveryResponseFixture,
} from '@rdcp.dev/core'
// Use fixtures in tests or examples
const req = controlRequestEnableFixture
const discovery = discoveryResponseFixture
Back-compat import (still supported):
import {
controlRequestSchema,
controlRequestEnableFixture,
} from '@rdcp.dev/server'
- Core remains protocol-only (no framework/server coupling). Schemas use a minimal runtime dependency on
zod
. - Additions to schemas are semver-minor; breaking changes are semver-major.
- See also: RDCP-Protocol-Specification and Core-Package-Boundaries.
A machine-readable set of domain-specific primitives is provided at Protocol-Schemas (docs/schemas/defs.json
mirrored in wiki). Downstream schemas should reference these via $ref
instead of inlining patterns. This improves consistency between documentation, validation, and implementations.
Getting Started: Installation β’ Basic Usage β’ Authentication
Migration: From Manual Implementation β’ Framework Examples β’ Publishing Guide
Protocol: RDCP v1.0 Specification β’ Implementation Guide β’ API Reference
π Home | π¦ NPM Package | π GitHub | π Issues
RDCP SDK v1.0.0 - Runtime Debug Control Protocol implementation for JavaScript/Node.js applications
- Implementation-Status
- JavaScript-vs-TypeScript-Boundaries
- Core-Package-Boundaries
- Publishing-Setup
- Contributing
- API-Reference
- Protocol Specification
- Implementation Guide
- RDCP-Primitive-Types
- Protocol-Schemas
- Protocol-Error-Codes
- API-Reference
Version: 1.0.0
Protocol: RDCP v1.0
License: Apache-2.0