Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | /** * Schema registry type definitions. */ import type {IEnrichedSchema} from '@feasibleone/blong'; /** Schema fetcher function — resolves a schema by name */ export type SchemaFetcher = (name?: string) => Promise<ISchemaDocument>; /** OpenAPI document shape (minimal) */ export interface ISchemaDocument { openapi?: string; info?: {title: string; version: string}; components?: { schemas?: Record<string, IJsonSchemaExtended>; }; paths?: Record<string, unknown>; } /** JSON Schema object */ export interface IJsonSchemaExtended { title?: string; description?: string; type?: string; properties?: Record<string, IJsonSchemaExtended>; required?: string[]; items?: IJsonSchemaExtended; minLength?: number; maxLength?: number; minimum?: number; maximum?: number; pattern?: string; enum?: unknown[]; readOnly?: boolean; 'x-filter'?: boolean; 'x-sort'?: boolean; 'x-cards'?: string[]; 'x-widget'?: Record<string, unknown>; [key: string]: unknown; } /** Schema registry interface */ export interface ISchemaRegistry { /** Fetch and cache schema document */ load(url?: string): Promise<void>; /** Get enriched schema by name (e.g. 'model.tree') */ get(name: string): IEnrichedSchema | undefined; /** Resolve schema by name — fetches if not cached */ resolve(name: string): Promise<IEnrichedSchema>; /** Manually set a schema (for mocking) */ set(name: string, schema: IEnrichedSchema): void; /** Check if schema is loaded */ has(name: string): boolean; } |