New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

schemastery

Package Overview
Dependencies
Maintainers
1
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

schemastery - npm Package Compare versions

Comparing version 3.6.1 to 3.7.0

100

lib/index.d.ts
import { Dict } from 'cosmokit';
declare const kSchema: unique symbol;
declare global {
namespace Schemastery {
type From<X> = X extends string | number | boolean ? Schema<X> : X extends Schema ? X : X extends typeof String ? Schema<string> : X extends typeof Number ? Schema<number> : X extends typeof Boolean ? Schema<boolean> : X extends typeof Function ? Schema<Function, (...args: any[]) => any> : X extends Constructor<infer S> ? Schema<S> : never;
type _TypeS<X> = X extends Schema<infer S, unknown> ? S : never;
type Inverse<X> = X extends Schema<any, infer Y> ? (arg: Y) => void : never;
type TypeS<X> = _TypeS<From<X>>;
type TypeT<X> = ReturnType<From<X>>;
type Resolve = (data: any, schema: Schema, strict?: boolean) => [any, any?];
type IntersectS<X> = From<X> extends Schema<infer S, unknown> ? S : never;
type IntersectT<X> = Inverse<From<X>> extends ((arg: infer T) => void) ? T : never;
type TupleS<X extends readonly any[]> = X extends readonly [infer L, ...infer R] ? [TypeS<L>?, ...TupleS<R>] : any[];
type TupleT<X extends readonly any[]> = X extends readonly [infer L, ...infer R] ? [TypeT<L>?, ...TupleT<R>] : any[];
type ObjectS<X extends Dict> = {
[K in keyof X]?: TypeS<X[K]>;
} & Dict;
type ObjectT<X extends Dict> = {
[K in keyof X]: TypeT<X[K]>;
} & Dict;
type Constructor<T = any> = new (...args: any[]) => T;
interface Static {
<T = any>(options: Partial<Schema.Base<T>>): Schema<T>;
new <T = any>(options: Partial<Schema.Base<T>>): Schema<T>;
prototype: Schema;
resolve: Resolve;
from<X = any>(source?: X): From<X>;
extend(type: string, resolve: Resolve): void;
any(): Schema<any>;
never(): Schema<never>;
const<T>(value: T): Schema<T>;
string(): Schema<string>;
number(): Schema<number>;
natural(): Schema<number>;
percent(): Schema<number>;
boolean(): Schema<boolean>;
date(): Schema<string | Date, Date>;
bitset<K extends string>(bits: Partial<Record<K, number>>): Schema<number | readonly K[], number>;
function(): Schema<Function, (...args: any[]) => any>;
is<T>(constructor: Constructor<T>): Schema<T>;
array<X>(inner: X): Schema<TypeS<X>[], TypeT<X>[]>;
dict<X, Y extends Schema<any, string> = Schema<string>>(inner: X, sKey?: Y): Schema<Dict<TypeS<X>, TypeS<Y>>, Dict<TypeT<X>, TypeT<Y>>>;
tuple<X extends readonly any[]>(list: X): Schema<TupleS<X>, TupleT<X>>;
object<X extends Dict>(dict: X): Schema<ObjectS<X>, ObjectT<X>>;
union<X>(list: readonly X[]): Schema<TypeS<X>, TypeT<X>>;
intersect<X>(list: readonly X[]): Schema<IntersectS<X>, IntersectT<X>>;
transform<X, T>(inner: X, callback: (value: TypeS<X>) => T, preserve?: boolean): Schema<TypeS<X>, T>;
}
}
}
declare namespace Schema {
export type From<X> = X extends string | number | boolean ? Schema<X> : X extends Schema ? X : X extends typeof String ? Schema<string> : X extends typeof Number ? Schema<number> : X extends typeof Boolean ? Schema<boolean> : X extends typeof Function ? Schema<Function, (...args: any[]) => any> : X extends Constructor<infer S> ? Schema<S> : never;
type _TypeS<X> = X extends Schema<infer S, unknown> ? S : never;
type Inverse<X> = X extends Schema<any, infer Y> ? (arg: Y) => void : never;
export type TypeS<X> = _TypeS<From<X>>;
export type TypeT<X> = ReturnType<From<X>>;
export type Resolve = (data: any, schema: Schema, strict?: boolean) => [any, any?];
export type IntersectS<X> = From<X> extends Schema<infer S, unknown> ? S : never;
export type IntersectT<X> = Inverse<From<X>> extends ((arg: infer T) => void) ? T : never;
export interface Base<T = any> {
interface Base<T = any> {
uid: number;

@@ -24,5 +64,6 @@ meta: Meta<T>;

refs?: Dict<Schema>;
preserve?: boolean;
toString(inline?: boolean): string;
}
export interface Meta<T = any> {
interface Meta<T = any> {
default?: T extends {} ? Partial<T> : T;

@@ -43,41 +84,4 @@ required?: boolean;

}
type TupleS<X extends readonly any[]> = X extends readonly [infer L, ...infer R] ? [TypeS<L>?, ...TupleS<R>] : any[];
type TupleT<X extends readonly any[]> = X extends readonly [infer L, ...infer R] ? [TypeT<L>?, ...TupleT<R>] : any[];
type ObjectS<X extends Dict> = {
[K in keyof X]?: TypeS<X[K]>;
} & Dict;
type ObjectT<X extends Dict> = {
[K in keyof X]: TypeT<X[K]>;
} & Dict;
type Constructor<T = any> = new (...args: any[]) => T;
export interface Static {
<T = any>(options: Partial<Base<T>>): Schema<T>;
new <T = any>(options: Partial<Base<T>>): Schema<T>;
prototype: Schema;
resolve: Resolve;
from<X = any>(source?: X): From<X>;
extend(type: string, resolve: Resolve): void;
any(): Schema<any>;
never(): Schema<never>;
const<T>(value: T): Schema<T>;
string(): Schema<string>;
number(): Schema<number>;
natural(): Schema<number>;
percent(): Schema<number>;
boolean(): Schema<boolean>;
date(): Schema<string | Date, Date>;
bitset<K extends string>(bits: Partial<Record<K, number>>): Schema<number | readonly K[], number>;
function(): Schema<Function, (...args: any[]) => any>;
is<T>(constructor: Constructor<T>): Schema<T>;
array<X>(inner: X): Schema<TypeS<X>[], TypeT<X>[]>;
dict<X, Y extends Schema<any, string> = Schema<string>>(inner: X, sKey?: Y): Schema<Dict<TypeS<X>, TypeS<Y>>, Dict<TypeT<X>, TypeT<Y>>>;
tuple<X extends readonly any[]>(list: X): Schema<TupleS<X>, TupleT<X>>;
object<X extends Dict>(dict: X): Schema<ObjectS<X>, ObjectT<X>>;
union<X>(list: readonly X[]): Schema<TypeS<X>, TypeT<X>>;
intersect<X>(list: readonly X[]): Schema<IntersectS<X>, IntersectT<X>>;
transform<X, T>(inner: X, callback: (value: TypeS<X>) => T): Schema<TypeS<X>, T>;
}
export {};
}
declare const Schema: Schema.Static;
declare const Schema: Schemastery.Static;
interface Schema<S = any, T = S> extends Schema.Base<T> {

@@ -84,0 +88,0 @@ (data?: S | null): T;

{
"name": "schemastery",
"description": "Type driven schema validator",
"version": "3.6.1",
"version": "3.7.0",
"main": "lib/index.cjs",

@@ -23,4 +23,4 @@ "module": "lib/index.mjs",

"dependencies": {
"cosmokit": "^1.3.4"
"cosmokit": "^1.4.0"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc