jsonv-ts
Version:
JSON Schema builder and validator for TypeScript with static type inference, Hono middleware for OpenAPI generation and validation, and MCP server/client implementation. Lightweight, dependency-free, and built on Web Standards.
46 lines (45 loc) • 6.03 kB
TypeScript
export { Schema, type ISchemaOptions, type StrictOptions, booleanSchema, type TSchemaTemplateOptions, type Node, } from "./schema/schema";
export { any, literal, type IAnyOptions, type ILiteralOptions, } from "./schema/misc";
export type { Static, Merge, OptionalUndefined, OptionallyOptional, StaticConstEnum, StaticCoerced, Writeable, DeepWriteable, RemoveUnknownAdditionalProperties, Simplify, } from "./static";
export { object, ObjectSchema, type IObjectOptions, type TProperties, strictObject, partialObject, type ObjectStatic, type ObjectCoerced, type ObjectDefaults, } from "./object/object";
export { record, RecordSchema, type IRecordOptions } from "./object/record";
export { string, StringSchema, type IStringOptions } from "./string/string";
export { number, type INumberOptions, integer } from "./number/number";
export { array, ArraySchema, type IArrayOptions } from "./array/array";
export { boolean, type IBooleanOptions } from "./boolean/boolean";
export { type IUnionOptions, anyOf, oneOf } from "./union/union";
export { allOf } from "./union/all-of";
export { fromSchema } from "./schema/from-schema";
export { RefType, ref, refId, recursive } from "./ref/ref";
export type { ValidationResult, ValidationOptions, } from "./validation/validate";
export { error, type ErrorDetail, valid, makeOpts } from "./utils/details";
export { invariant, isSchema } from "./utils";
export { type CoercionOptions } from "./validation/coerce";
export { type ParseOptions, parse, InvalidSchemaError, } from "./validation/parse";
export type { JSONSchemaDefinition, JSONSchema } from "./types";
export { registerFormat, getFormats } from "./validation/format";
export declare const s: {
boolean: <const O extends import(".").IBooleanOptions>(config?: import("./schema").StrictOptions<import(".").IBooleanOptions, O>) => import("./schema").Schema<O, boolean> & O;
any: <const O extends import(".").IAnyOptions>(o?: O) => import("./schema").Schema<O, any, any> & O;
literal: <const L, const O extends import(".").ILiteralOptions>(value: L extends string | number | bigint | boolean | null | undefined ? L : L extends object ? L extends import("./schema").Schema<import("./schema").ISchemaOptions, unknown, unknown> ? never : L : never, o?: import("./schema").StrictOptions<import(".").ILiteralOptions, O>) => import("./schema").Schema<O, L, L> & import("./static").Merge<O & {
const: L;
}>;
object: <const P extends import("./object/object").TProperties2<P>, const O extends import(".").IObjectOptions>(properties: P, options?: import("./schema").StrictOptions<import(".").IObjectOptions, O>) => import(".").ObjectSchema<P, O> & O;
strictObject: <const P extends import("./object/object").TProperties2<P>, const O extends import(".").IObjectOptions>(properties: P, options?: import("./schema").StrictOptions<import(".").IObjectOptions, O>) => import(".").ObjectSchema<P, import("./static").Merge<O & {
additionalProperties: false;
}>>;
partialObject: <const P extends import("./object/object").TProperties2<P>, const O extends import(".").IObjectOptions>(properties: P, options?: import("./schema").StrictOptions<import(".").IObjectOptions, O>) => import(".").ObjectSchema<{ [Key in keyof P]: P[Key] extends import("./schema").Schema<infer O_1 extends import("./schema").ISchemaOptions, infer T, infer C> ? import("./schema").Schema<O_1, P[Key][typeof import("./shared").schemaSymbol]["static"] | undefined, P[Key][typeof import("./shared").schemaSymbol]["coerced"] | undefined> : never; }, O>;
record: <const AP extends import("./schema").Schema, const O extends import(".").IRecordOptions>(ap: AP, options?: import("./schema").StrictOptions<import(".").IRecordOptions, O>) => import(".").RecordSchema<AP, O>;
string: <const O extends import(".").IStringOptions>(o?: import("./schema").StrictOptions<import(".").IStringOptions, O>) => import(".").StringSchema<O> & O;
number: <const O extends import(".").INumberOptions>(config?: import("./schema").StrictOptions<import(".").INumberOptions, O>) => import("./schema").Schema<O, number> & O;
integer: <const O extends import(".").INumberOptions>(config?: import("./schema").StrictOptions<import(".").INumberOptions, O>) => import("./schema").Schema<O, number> & O;
array: <const Items extends import("./schema").Schema, const O extends import(".").IArrayOptions>(items?: Items, options?: import("./schema").StrictOptions<import(".").IArrayOptions, O>) => import(".").ArraySchema<Items, O> & O;
anyOf: <const T extends import("./schema").Schema[], const O extends import(".").IUnionOptions>(schemas: T, options?: import("./schema").StrictOptions<import(".").IUnionOptions, O>) => import("./schema").Schema<O, import("./union/union").StaticUnion<T>, import("./union/union").StaticUnionCoercedOptions<O, T>> & import("./static").Merge<O & {
anyOf: T;
}>;
oneOf: <const T extends import("./schema").Schema[], const O extends import(".").IUnionOptions>(schemas: T, options?: import("./schema").StrictOptions<import(".").IUnionOptions, O>) => import("./schema").Schema<O, import("./union/union").StaticUnion<T>, import("./union/union").StaticUnionCoercedOptions<O, T>> & O;
allOf: <const T extends import("./schema").Schema[], const O extends import(".").IUnionOptions>(schemas: T, options?: import("./schema").StrictOptions<import(".").IUnionOptions, O>) => import("./schema").Schema<O, import("./union/all-of").StaticUnionAllOf<T>, import("./union/all-of").StaticUnionAllOf<T>> & O;
ref: <const T extends import("./ref/ref").TRefType, const Ref extends string>(ref: T, $ref?: Ref) => import(".").RefType<T, Ref, T extends import("./ref/ref").TRefType ? import("./static").Static<T> : T, T extends import("./ref/ref").TRefType ? import("./static").StaticCoerced<T> : T>;
refId: <T = unknown, const Ref extends string = string>($ref: Ref) => import(".").RefType<T, Ref>;
recursive: <const T extends import("./schema").Schema>(cb: (thisSchema: import("./schema").Schema) => T) => T;
};