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

@decs/typeschema

Package Overview
Dependencies
Maintainers
1
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@decs/typeschema - npm Package Compare versions

Comparing version 0.4.0 to 0.5.0

4

dist/adapters/arktype.d.ts

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { Type } from 'arktype';
interface ArkTypeResolver extends TypeSchemaResolver {
interface ArkTypeResolver extends Resolver {
base: Type<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends Type ? this['schema']['inferIn'] : never;

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
type FunctionSchema<T = unknown> = (data: unknown) => Promise<T> | T;
interface FunctionResolver extends TypeSchemaResolver {
interface FunctionResolver extends Resolver {
base: FunctionSchema<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends FunctionSchema ? keyof this['schema'] extends never ? Awaited<ReturnType<this['schema']>> : never : never;

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { Any, OutputOf, Type, TypeOf } from 'io-ts';
interface IoTsResolver extends TypeSchemaResolver {
interface IoTsResolver extends Resolver {
base: Type<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends Any ? OutputOf<this['schema']> : never;

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { AnySchema } from 'joi';
interface JoiResolver extends TypeSchemaResolver {
interface JoiResolver extends Resolver {
base: AnySchema<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends AnySchema<infer T> ? T : never;

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { Runtype, Static } from 'runtypes';
interface RuntypesResolver extends TypeSchemaResolver {
interface RuntypesResolver extends Resolver {
base: Runtype<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends Runtype ? Static<this['schema']> : never;

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { Infer, Struct } from 'superstruct';
interface SuperstructResolver extends TypeSchemaResolver {
interface SuperstructResolver extends Resolver {
base: Struct<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends Struct<any, any> ? Infer<this['schema']> : never;

@@ -1,2 +0,2 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { Static, TSchema } from '@sinclair/typebox';

@@ -6,3 +6,3 @@ type TypeBoxSchema<T> = TSchema & {

};
interface TypeBoxResolver extends TypeSchemaResolver {
interface TypeBoxResolver extends Resolver {
base: TypeBoxSchema<this['type']>;

@@ -9,0 +9,0 @@ input: this['schema'] extends TSchema ? Static<this['schema']> : never;

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { InferType, Schema } from 'yup';
interface YupResolver extends TypeSchemaResolver {
interface YupResolver extends Resolver {
base: Schema<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends Schema ? InferType<this['schema']> : never;

@@ -1,4 +0,4 @@

import type { TypeSchemaResolver } from '../resolver';
import type { Resolver } from '../resolver';
import type { input, output, ZodSchema } from 'zod';
interface ZodResolver extends TypeSchemaResolver {
interface ZodResolver extends Resolver {
base: ZodSchema<this['type']>;

@@ -5,0 +5,0 @@ input: this['schema'] extends ZodSchema ? input<this['schema']> : never;

@@ -1,8 +0,6 @@

import type { Schema } from './registry';
import type { InferOutput } from './resolver';
import type { ValidationIssue } from './schema';
import type { Schema, ValidationIssue } from './schema';
import type { IfDefined } from './utils';
export type { Schema } from './registry';
export type { ValidationIssue } from './schema';
export type Infer<TSchema extends Schema> = Schema extends TSchema ? TSchema extends Schema<infer T> ? T : never : {
export type { Schema, ValidationIssue } from './schema';
export type Infer<TSchema extends Schema> = {
[K in keyof TypeSchemaRegistry]: IfDefined<InferOutput<TypeSchemaRegistry[K], TSchema>>;

@@ -16,1 +14,3 @@ }[keyof TypeSchemaRegistry];

export declare function assert<TSchema extends Schema>(schema: TSchema, data: unknown): Promise<Infer<TSchema>>;
export declare function createAssert<TSchema extends Schema>(schema: TSchema): (data: unknown) => Promise<Infer<TSchema>>;
import './adapters';
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.assert = exports.validate = void 0;
exports.createAssert = exports.assert = exports.validate = void 0;
const wrap_1 = require("./wrap");

@@ -19,1 +19,6 @@ async function validate(schema, data) {

exports.assert = assert;
function createAssert(schema) {
return async (data) => assert(schema, data);
}
exports.createAssert = createAssert;
require("./adapters");
import type { Infer } from '.';
import type { InferSchema } from './resolver';
import type { TypeSchema } from './schema';
import type { IfDefined } from './utils';
export type Schema<T = any> = {
[K in keyof TypeSchemaRegistry]: IfDefined<InferSchema<TypeSchemaRegistry[K], T>>;
}[keyof TypeSchemaRegistry];
import type { Schema, TypeSchema } from './schema';
export type Adapter = <TSchema extends Schema>(schema: TSchema) => Promise<TypeSchema<Infer<TSchema>> | null>;
export declare const adapters: Array<Adapter>;
export declare function register<TKey extends keyof TypeSchemaRegistry>(coerce: <TSchema extends Schema>(schema: TSchema) => Promise<InferSchema<TypeSchemaRegistry[TKey], Infer<TSchema>> | null>, wrap: <T>(schema: InferSchema<TypeSchemaRegistry[TKey], T>) => Promise<TypeSchema<T>>): void;
import './adapters';

@@ -12,2 +12,1 @@ "use strict";

exports.register = register;
require("./adapters");

@@ -1,2 +0,2 @@

export interface TypeSchemaResolver<TSchema = unknown> {
export interface Resolver<TSchema = unknown> {
type: unknown;

@@ -8,10 +8,10 @@ schema: TSchema;

}
export type InferInput<TResolver extends TypeSchemaResolver, TSchema> = (TResolver & {
export type InferInput<TResolver extends Resolver, TSchema> = (TResolver & {
schema: TSchema;
})['input'];
export type InferOutput<TResolver extends TypeSchemaResolver, TSchema> = (TResolver & {
export type InferOutput<TResolver extends Resolver, TSchema> = (TResolver & {
schema: TSchema;
})['output'];
export type InferSchema<TResolver extends TypeSchemaResolver, T> = (TResolver & {
export type InferSchema<TResolver extends Resolver, T> = (TResolver & {
type: T;
})['base'];

@@ -0,1 +1,6 @@

import type { InferSchema } from './resolver';
import type { IfDefined } from './utils';
export type Schema = {
[K in keyof TypeSchemaRegistry]: IfDefined<InferSchema<TypeSchemaRegistry[K], any>>;
}[keyof TypeSchemaRegistry];
export type TypeSchema<T = unknown> = {

@@ -2,0 +7,0 @@ validate(data: unknown): Promise<{

import type { Infer } from '.';
import type { Schema } from './registry';
import type { TypeSchema } from './schema';
import type { Schema, TypeSchema } from './schema';
export declare const cachedWrappedSchemas: Map<Schema, TypeSchema>;
export declare function wrapCached<TSchema extends Schema>(schema: TSchema): TypeSchema<Infer<TSchema>> | null;
export declare function wrap<TSchema extends Schema>(schema: TSchema): Promise<TypeSchema<Infer<TSchema>>>;
{
"name": "@decs/typeschema",
"version": "0.4.0",
"version": "0.5.0",
"description": "Universal adapter for schema validation",

@@ -5,0 +5,0 @@ "keywords": [

@@ -52,5 +52,5 @@ <div id="header">

// Use your favorite validation library, e.g. `zod`, `arktype`, `typia`
const schema: Schema<string> = z.string();
const schema: Schema<string> = type('string');
const schema: Schema<string> = typia.createAssert<string>();
const schema: Schema = z.string();
const schema: Schema = type('string');
const schema: Schema = typia.createAssert<string>();

@@ -67,2 +67,7 @@ // Extracts the schema type

await validate(schema, 123); // {issues: [`ValidationIssue`]}
// Returns an assertion function for a specific schema
const assertString = createAssert(schema);
await assertString('123'); // '123'
await assertString(123); // throws `ValidationIssue`
```

@@ -74,10 +79,6 @@

- `Schema<T>`
- `Schema`
Generic interface for schemas<br />An union of the schema types of all supported validation libraries
Generic interface for schemas<br />An union of the schema types of all supported libraries
- `Infer<TSchema extends Schema>`
Extracts the equivalent TypeScript type of a schema
- `ValidationIssue`

@@ -87,2 +88,6 @@

- `Infer<TSchema extends Schema>`
Extracts the output type of a schema
#### Functions

@@ -96,3 +101,3 @@

data: unknown,
): Promise<Infer<Schema>>
): Promise<Infer<TSchema>>
```

@@ -113,2 +118,12 @@

- `createAssert(schema)`
```ts
createAssert<TSchema extends Schema>(
schema: TSchema,
): (data: unknown) => Promise<Infer<TSchema>>
```
Returns an assertion function for a specific schema
## Coverage

@@ -115,0 +130,0 @@

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