@decs/typeschema
Advanced tools
Comparing version 0.7.1 to 0.7.2
@@ -1,3 +0,2 @@ | ||
import * as ajv from 'ajv'; | ||
import { SchemaObject } from 'ajv'; | ||
import Ajv, { SchemaObject } from 'ajv'; | ||
import * as arktype from 'arktype'; | ||
@@ -8,7 +7,4 @@ import { Type } from 'arktype'; | ||
import * as fp_ts_Either from 'fp-ts/Either'; | ||
import { Type as Type$2, Any, OutputOf, TypeOf } from 'io-ts'; | ||
import * as joi from 'joi'; | ||
import { AnySchema } from 'joi'; | ||
import * as ow from 'ow'; | ||
import { Predicate, Infer as Infer$1 } from 'ow'; | ||
import * as runtypes from 'runtypes'; | ||
@@ -26,3 +22,11 @@ import { Runtype, Static } from 'runtypes'; | ||
import { ZodSchema, input, output } from 'zod'; | ||
import { Predicate, Infer as Infer$1, Ow, ArgumentError } from 'ow'; | ||
import { Type as Type$2, Any, OutputOf, TypeOf } from 'io-ts'; | ||
type IfDefined<T> = any extends T ? never : T; | ||
type UnknownIfNever<T> = [T] extends [never] ? unknown : T; | ||
type Schema = { | ||
[K in keyof TypeSchemaRegistry]: IfDefined<InferSchema<TypeSchemaRegistry[K], any>>; | ||
}[keyof TypeSchemaRegistry]; | ||
interface Resolver<TSchema = unknown> { | ||
@@ -46,13 +50,2 @@ type: unknown; | ||
type Schema = { | ||
[K in keyof TypeSchemaRegistry]: IfDefined<InferSchema<TypeSchemaRegistry[K], any>>; | ||
}[keyof TypeSchemaRegistry]; | ||
declare class ValidationIssue extends Error { | ||
path?: (string | number | symbol)[] | undefined; | ||
constructor(message: string, path?: (string | number | symbol)[] | undefined); | ||
} | ||
type IfDefined<T> = any extends T ? never : T; | ||
type UnknownIfNever<T> = [T] extends [never] ? unknown : T; | ||
type Infer<TSchema extends Schema> = UnknownIfNever<{ | ||
@@ -65,2 +58,6 @@ [K in keyof TypeSchemaRegistry]: IfDefined<InferOutput<TypeSchemaRegistry[K], TSchema>>; | ||
declare class ValidationIssue extends Error { | ||
path?: (string | number | symbol)[] | undefined; | ||
constructor(message: string, path?: (string | number | symbol)[] | undefined); | ||
} | ||
declare function validate<TSchema extends Schema>(schema: TSchema, data: unknown): Promise<{ | ||
@@ -76,3 +73,3 @@ data: Infer<TSchema>; | ||
base: SchemaObject; | ||
module: typeof ajv; | ||
module: Ajv; | ||
} | ||
@@ -112,2 +109,3 @@ declare global { | ||
output: this['schema'] extends FunctionSchema ? keyof this['schema'] extends never ? Awaited<ReturnType<this['schema']>> : never : never; | ||
module: Record<string, never>; | ||
} | ||
@@ -146,3 +144,6 @@ declare global { | ||
output: this['schema'] extends Predicate ? Infer$1<this['schema']> : never; | ||
module: typeof ow; | ||
module: { | ||
ow: Ow; | ||
ArgumentError: typeof ArgumentError; | ||
}; | ||
} | ||
@@ -149,0 +150,0 @@ declare global { |
@@ -1,1 +0,1 @@ | ||
"use strict";var l=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var b=(e,a)=>{for(var r in a)l(e,r,{get:a[r],enumerable:!0})},A=(e,a,r,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let o of w(a))!I.call(e,o)&&o!==r&&l(e,o,{get:()=>a[o],enumerable:!(t=g(a,o))||t.enumerable});return e};var k=e=>A(l({},"__esModule",{value:!0}),e);var O={};b(O,{ValidationIssue:()=>s,assert:()=>d,createAssert:()=>x,validate:()=>h});module.exports=k(O);var s=class extends Error{constructor(r,t){super(r);this.path=t}};var y=[];function i(e,a,r){y.push(async t=>{let o=null;if(r!=null)try{o=await require(r)}catch{return null}let m=e(t);return m!=null?a(m,o):null})}var f=new Map,u=null;function T(e){return f.get(e)}async function v(e){if(u!=null){let t=await u(e);if(t!=null)return f.set(e,t),t}let r=(await Promise.all(y.map(async t=>({adapter:t,wrappedSchema:await t(e)})))).filter(t=>t.wrappedSchema!=null);if(r.length===0)throw new Error("Missing adapters for schema: "+e);if(r.length>1)throw new Error("Conflicting adapters for schema: "+e);return u=r[0].adapter,f.set(e,r[0].wrappedSchema),r[0].wrappedSchema}async function h(e,a){return(T(e)??await v(e)).validate(a)}async function d(e,a){let r=await h(e,a);if("issues"in r)throw new AggregateError(r.issues,"Assertion failed");return r.data}function x(e){return async a=>d(e,a)}function p(e){return Symbol.for("TypeBox.Kind")in e}function n(e){return typeof e=="object"&&!("validate"in e)&&!("parse"in e)&&!("kind"in e)&&!p(e)}var S=null;i(e=>n(e)?e:null,async(e,{default:a})=>{S==null&&(S=new a);let r=S.compile(e);return{validate:async t=>r(t)?{data:t}:{issues:(r.errors??[]).map(({message:o,schemaPath:m})=>new s(o??"",[m]))}}},"ajv");i(e=>"infer"in e&&!p(e)&&!n(e)?e:null,async e=>({validate:async a=>{let r=e(a);return r.problems==null?{data:r.data}:{issues:Array.from(r.problems).map(({message:t,path:o})=>new s(t,o))}}}),"arktype");i(e=>"kind"in e&&!p(e)&&!n(e)?e:null,async(e,{validate:a})=>({validate:async r=>{let t=a(r,e);return t.length===0?{data:r}:{issues:t.map(({message:o,path:m})=>new s(o,[m]))}}}),"@deepkit/type");i(e=>typeof e=="function"&&!("assert"in e)?e:null,async e=>({validate:async a=>{try{return{data:await e(a)}}catch(r){if(r instanceof Error)return{issues:[new s(r.message)]};throw r}}}));i(e=>"encode"in e&&!p(e)&&!n(e)?e:null,async(e,{isRight:a})=>({validate:async r=>{let t=e.decode(r);return a(t)?{data:t.right}:{issues:t.left.map(({message:o,context:m})=>new s(o??"",m.map(({key:c})=>c)))}}}),"fp-ts/Either");i(e=>"_flags"in e&&!p(e)&&!n(e)?e:null,async e=>({validate:async a=>{let r=e.validate(a);return r.error==null?{data:r.value}:{issues:r.error.details.map(({message:t,path:o})=>new s(t,o))}}}),"joi");i(e=>"context"in e&&!p(e)&&!n(e)?e:null,async(e,{default:a,ArgumentError:r})=>{let t=a.create(e);return{validate:async o=>{try{return t(o),{data:o}}catch(m){if(m instanceof r)return{issues:Array.from(m.validationErrors.values()).flatMap(c=>Array.from(c).map(R=>new s(R)))};throw m}}}},"ow");i(e=>"reflect"in e&&!p(e)&&!n(e)?e:null,async e=>({validate:async a=>{let r=e.validate(a);return r.success?{data:r.value}:{issues:[new s(r.message)]}}}),"runtypes");i(e=>"refiner"in e&&!p(e)&&!n(e)?e:null,async e=>({validate:async a=>{let r=e.validate(a,{coerce:!0});if(r[0]==null)return{data:r[1]};let{message:t,path:o}=r[0];return{issues:[new s(t,o)]}}}),"superstruct");i(e=>p(e)?e:null,async(e,{TypeCompiler:a})=>{let r=a.Compile(e);return{validate:async t=>r.Check(t)?{data:t}:{issues:[...r.Errors(t)].map(({message:o,path:m})=>new s(o,[m]))}}},"@sinclair/typebox/compiler");i(e=>"async"in e&&!p(e)&&!n(e)?e:null,async(e,{safeParseAsync:a})=>({validate:async r=>{let t=await a(e,r);return t.success?{data:t.data}:{issues:t.error.issues.map(({message:o,path:m})=>new s(o,m?.map(({key:c})=>c)))}}}),"valibot");i(e=>"__isYupSchema__"in e&&!p(e)&&!n(e)?e:null,async(e,{ValidationError:a})=>({validate:async r=>{try{return{data:await e.validate(r,{strict:!0})}}catch(t){if(t instanceof a){let{message:o,path:m}=t;return{issues:[new s(o,m!=null&&m!==""?[m]:void 0)]}}throw t}}}),"yup");i(e=>"_def"in e&&!p(e)&&!n(e)?e:null,async e=>({validate:async a=>{let r=await e.safeParseAsync(a);return r.success?{data:r.data}:{issues:r.error.issues.map(({message:t,path:o})=>new s(t,o))}}}),"zod");0&&(module.exports={ValidationIssue,assert,createAssert,validate}); | ||
"use strict";var $=Object.create;var h=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var re=Object.getPrototypeOf,ae=Object.prototype.hasOwnProperty;var c=(e,r)=>()=>(e&&(r=e(e=0)),r);var u=(e,r)=>{for(var t in r)h(e,t,{get:r[t],enumerable:!0})},E=(e,r,t,a)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of te(r))!ae.call(e,o)&&o!==t&&h(e,o,{get:()=>r[o],enumerable:!(a=ee(r,o))||a.enumerable});return e};var y=(e,r,t)=>(t=e!=null?$(re(e)):{},E(r||!e||!e.__esModule?h(t,"default",{value:e,enumerable:!0}):t,e)),oe=e=>E(h({},"__esModule",{value:!0}),e);async function n(e){try{return await e()}catch{return null}}function p(e){return Symbol.for("TypeBox.Kind")in e}function m(e){return typeof e=="object"&&!("validate"in e)&&!("parse"in e)&&!("kind"in e)&&!p(e)}var d=c(()=>{"use strict"});var _={};u(_,{createValidate:()=>ne,guard:()=>se,init:()=>ie});var ie,se,ne,S=c(()=>{"use strict";d();l();ie=async()=>{let e=await n(()=>require("ajv"));return e==null?null:new e.default},se=e=>m(e)?e:null,ne=(e,r)=>{let t=r.compile(e);return async a=>t(a)?{data:a}:{issues:(t.errors??[]).map(({message:o,schemaPath:s})=>new i(o??"",[s]))}}});var K={};u(K,{createValidate:()=>ce,guard:()=>me,init:()=>pe});var pe,me,ce,x=c(()=>{"use strict";d();l();pe=async()=>n(()=>require("arktype")),me=e=>"infer"in e&&!p(e)&&!m(e)?e:null,ce=e=>async r=>{let t=e(r);return t.problems==null?{data:t.data}:{issues:Array.from(t.problems).map(({message:a,path:o})=>new i(a,o))}}});var z={};u(z,{createValidate:()=>de,guard:()=>ue,init:()=>le});var le,ue,de,v=c(()=>{"use strict";d();l();le=async()=>n(()=>require("@deepkit/type")),ue=e=>"kind"in e&&!p(e)&&!m(e)?e:null,de=(e,{validate:r})=>async t=>{let a=r(t,e);return a.length===0?{data:t}:{issues:a.map(({message:o,path:s})=>new i(o,[s]))}}});var F={};u(F,{createValidate:()=>he,guard:()=>fe,init:()=>ye});var ye,fe,he,A=c(()=>{"use strict";l();ye=async()=>({}),fe=e=>typeof e=="function"&&!("assert"in e)?e:null,he=e=>async r=>{try{return{data:await e(r)}}catch(t){if(t instanceof Error)return{issues:[new i(t.message)]};throw t}}});var Z={};u(Z,{createValidate:()=>ve,guard:()=>xe,init:()=>Se});var Se,xe,ve,T=c(()=>{"use strict";d();l();Se=async()=>n(()=>require("fp-ts/Either")),xe=e=>"encode"in e&&!p(e)&&!m(e)?e:null,ve=(e,{isRight:r})=>async t=>{let a=e.decode(t);return r(a)?{data:a.right}:{issues:a.left.map(({message:o,context:s})=>new i(o??"",s.map(({key:f})=>f)))}}});var C={};u(C,{createValidate:()=>ge,guard:()=>Te,init:()=>Ae});var Ae,Te,ge,g=c(()=>{"use strict";d();l();Ae=async()=>n(()=>require("joi")),Te=e=>"_flags"in e&&!p(e)&&!m(e)?e:null,ge=e=>async r=>{let t=e.validate(r);return t.error==null?{data:t.value}:{issues:t.error.details.map(({message:a,path:o})=>new i(a,o))}}});var M={};u(M,{createValidate:()=>we,guard:()=>be,init:()=>Re});var Re,be,we,R=c(()=>{"use strict";d();l();Re=async()=>{let e=await n(()=>require("ow"));if(e==null)return null;let{ArgumentError:r,default:t}=e;return{ArgumentError:r,ow:t}},be=e=>"context"in e&&!p(e)&&!m(e)?e:null,we=(e,{ow:r,ArgumentError:t})=>{let a=r.create(e);return async o=>{try{return a(o),{data:o}}catch(s){if(s instanceof t)return{issues:Array.from(s.validationErrors.values()).flatMap(f=>Array.from(f).map(X=>new i(X)))};throw s}}}});var D={};u(D,{createValidate:()=>ke,guard:()=>Ie,init:()=>Ve});var Ve,Ie,ke,b=c(()=>{"use strict";d();l();Ve=async()=>n(()=>require("runtypes")),Ie=e=>"reflect"in e&&!p(e)&&!m(e)?e:null,ke=e=>async r=>{let t=e.validate(r);return t.success?{data:t.value}:{issues:[new i(t.message)]}}});var Y={};u(Y,{createValidate:()=>Be,guard:()=>je,init:()=>Oe});var Oe,je,Be,w=c(()=>{"use strict";d();l();Oe=async()=>n(()=>require("superstruct")),je=e=>"refiner"in e&&!p(e)&&!m(e)?e:null,Be=e=>async r=>{let t=e.validate(r,{coerce:!0});if(t[0]==null)return{data:t[1]};let{message:a,path:o}=t[0];return{issues:[new i(a,o)]}}});var U={};u(U,{createValidate:()=>Ne,guard:()=>Je,init:()=>Pe});var Pe,Je,Ne,V=c(()=>{"use strict";d();l();Pe=async()=>n(()=>require("@sinclair/typebox/compiler")),Je=e=>p(e)?e:null,Ne=(e,{TypeCompiler:r})=>{let t=r.Compile(e);return async a=>t.Check(a)?{data:a}:{issues:[...t.Errors(a)].map(({message:o,path:s})=>new i(o,[s]))}}});var q={};u(q,{createValidate:()=>Ke,guard:()=>_e,init:()=>Ee});var Ee,_e,Ke,I=c(()=>{"use strict";d();l();Ee=async()=>n(()=>require("valibot")),_e=e=>"async"in e&&!p(e)&&!m(e)?e:null,Ke=(e,{safeParseAsync:r})=>async t=>{let a=await r(e,t);return a.success?{data:a.data}:{issues:a.error.issues.map(({message:o,path:s})=>new i(o,s?.map(({key:f})=>f)))}}});var G={};u(G,{createValidate:()=>Ze,guard:()=>Fe,init:()=>ze});var ze,Fe,Ze,k=c(()=>{"use strict";d();l();ze=async()=>n(()=>require("yup")),Fe=e=>"__isYupSchema__"in e&&!p(e)&&!m(e)?e:null,Ze=(e,{ValidationError:r})=>async t=>{try{return{data:await e.validate(t,{strict:!0})}}catch(a){if(a instanceof r){let{message:o,path:s}=a;return{issues:[new i(o,s!=null&&s!==""?[s]:void 0)]}}throw a}}});var H={};u(H,{createValidate:()=>De,guard:()=>Me,init:()=>Ce});var Ce,Me,De,O=c(()=>{"use strict";d();l();Ce=async()=>n(()=>require("zod")),Me=e=>"_def"in e&&!p(e)&&!m(e)?e:null,De=e=>async r=>{let t=await e.safeParseAsync(r);return t.success?{data:t.data}:{issues:t.error.issues.map(({message:a,path:o})=>new i(a,o))}}});async function L(e){if(j==null){let t=await Promise.all(Ye),a=await Promise.all(t.map(({init:o})=>o()));j=t.filter((o,s)=>a[s]!=null).map((o,s)=>({...o,module:a[s]}))}let r=j.filter(({guard:t})=>t(e)!=null);if(r.length===0)throw new Error("Missing adapters for schema: "+e);if(r.length>1)throw new Error("Conflicting adapters for schema: "+e);return B.set(e,r[0]),r[0]}var Ye,j,B,P=c(()=>{"use strict";S();x();v();A();T();g();R();b();w();V();I();k();O();Ye=[Promise.resolve().then(()=>(S(),_)),Promise.resolve().then(()=>(x(),K)),Promise.resolve().then(()=>(v(),z)),Promise.resolve().then(()=>(A(),F)),Promise.resolve().then(()=>(T(),Z)),Promise.resolve().then(()=>(g(),C)),Promise.resolve().then(()=>(R(),M)),Promise.resolve().then(()=>(b(),D)),Promise.resolve().then(()=>(w(),Y)),Promise.resolve().then(()=>(V(),U)),Promise.resolve().then(()=>(I(),q)),Promise.resolve().then(()=>(k(),G)),Promise.resolve().then(()=>(O(),H))],j=null,B=new Map});async function J(e,r){let t=Q.get(e);if(t!=null)return await t(r);let{createValidate:a,module:o}=B.get(e)??await L(e),s=a(e,o);return Q.set(e,s),s(r)}async function N(e,r){let t=await J(e,r);if("issues"in t)throw new AggregateError(t.issues,"Assertion failed");return t.data}function W(e){return async r=>N(e,r)}var i,Q,l=c(()=>{"use strict";P();i=class extends Error{constructor(t,a){super(t);this.path=a}},Q=new Map});var Ue={};u(Ue,{ValidationIssue:()=>i,assert:()=>N,createAssert:()=>W,validate:()=>J});module.exports=oe(Ue);l();P();0&&(module.exports={ValidationIssue,assert,createAssert,validate}); |
{ | ||
"name": "@decs/typeschema", | ||
"version": "0.7.1", | ||
"version": "0.7.2", | ||
"description": "Universal adapter for schema validation", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
48028
8
252
0
0