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.4.2 to 3.4.3

2

lib/browser.js

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

var x=Object.defineProperty;var c=(e,t)=>x(e,"name",{value:t,configurable:!0});var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);import{clone as X,isNullable as p,isPlainObject as m,valueMap as f}from"cosmokit";var $=w((N,g)=>{var v=0,S=Symbol("schemastery"),r=c(function(e){let t=c(function(n){return r.resolve(n,t)[0]},"schema");if(e.refs){let n=f(e.refs,i=>new r(i)),o=c(i=>n[i],"getRef");for(let i in n){let s=n[i];s.sKey=o(s.sKey),s.inner=o(s.inner),s.list=s.list&&s.list.map(o),s.dict=s.dict&&f(s.dict,o)}return n[e.uid]}return Object.assign(t,e),Object.defineProperty(t,"uid",{value:v++}),Object.setPrototypeOf(t,r.prototype),t.meta||={},t},"Schema");r.prototype=Object.create(Function.prototype);r.prototype[S]=!0;var a;r.prototype.toJSON=c(function(){if(a)return a[this.uid]??=JSON.parse(JSON.stringify({...this})),this.uid;a={[this.uid]:{...this}},a[this.uid]=JSON.parse(JSON.stringify({...this}));let t={uid:this.uid,refs:a};return a=null,t},"toJSON");r.prototype.set=c(function(t,n){return this.dict[t]=n,this},"set");r.prototype.push=c(function(t){return this.list.push(t),this},"push");for(let e of["required","hidden"])Object.assign(r.prototype,{[e](t=!0){let n=r(this);return n.meta={...n.meta,[e]:t},n}});for(let e of["default","role","link","comment","description","max","min","step"])Object.assign(r.prototype,{[e](t){let n=r(this);return n.meta={...n.meta,[e]:t},n}});var T={};r.extend=c(function(t,n){T[t]=n},"extend");r.resolve=c(function(t,n,o){if(!n)return[t];if(p(t)){if(n.meta.required)throw new TypeError("missing required value");let s=n.meta.default;if(p(s))return[t];t=X(s)}let i=T[n.type];if(i)return i(t,n,o);throw new TypeError(`unsupported type "${n.type}"`)},"resolve");r.from=c(function(t){if(p(t))return r.any();if(["string","number","boolean"].includes(typeof t))return r.const(t).required();if(t[S])return t;if(typeof t=="function")switch(t){case String:return r.string().required();case Number:return r.number().required();case Boolean:return r.boolean().required();case Function:return r.function().required();default:return r.is(t).required()}else throw new TypeError(`cannot infer schema from ${t}`)},"from");r.natural=c(function(){return r.number().step(1).min(0)},"natural");r.percent=c(function(){return r.number().step(.01).min(0).max(1).role("slider")},"percent");r.extend("any",e=>[e]);r.extend("never",e=>{throw new TypeError(`expected nullable but got ${e}`)});r.extend("const",(e,{value:t})=>{if(e===t)return[t];throw new TypeError(`expected ${t} but got ${e}`)});function h(e,t,n){let{max:o=1/0,min:i=-1/0}=t;if(e>o)throw new TypeError(`expected ${n} <= ${o} but got ${e}`);if(e<i)throw new TypeError(`expected ${n} >= ${i} but got ${e}`)}c(h,"checkWithinRange");r.extend("string",(e,{meta:t})=>{if(typeof e!="string")throw new TypeError(`expected string but got ${e}`);return h(e.length,t,"string length"),[e]});r.extend("number",(e,{meta:t})=>{if(typeof e!="number")throw new TypeError(`expected number but got ${e}`);h(e,t,"number");let{step:n}=t;if(n){let o=Math.abs(e-(t.min??0))%n;if(o>=Number.EPSILON&&o<n-Number.EPSILON)throw new TypeError(`expected number multiple of ${n} but got ${e}`)}return[e]});r.extend("boolean",e=>{if(typeof e=="boolean")return[e];throw new TypeError(`expected boolean but got ${e}`)});r.extend("bitset",(e,{dict:t})=>{if(typeof e=="number")return[e];if(!Array.isArray(e))throw new TypeError(`expected array but got ${e}`);let n=0;for(let o of e){if(typeof o!="string")throw new TypeError(`expected string but got ${o}`);if(!(o in t))throw new TypeError(`unknown value ${o}`);n|=t[o]}return[n,n]});r.extend("function",e=>{if(typeof e=="function")return[e];throw new TypeError(`expected function but got ${e}`)});r.extend("is",(e,{callback:t})=>{if(e instanceof t)return[e];throw new TypeError(`expected ${t.name} but got ${e}`)});function l(e,t,n){let[o,i]=r.resolve(e[t],n);return p(i)||(e[t]=i),o}c(l,"property");r.extend("array",(e,{inner:t,meta:n})=>{if(!Array.isArray(e))throw new TypeError(`expected array but got ${e}`);return h(e.length,n,"array length"),[e.map((o,i)=>l(e,i,t))]});r.extend("dict",(e,{inner:t,sKey:n},o)=>{if(!m(e))throw new TypeError(`expected object but got ${e}`);let i={};for(let s in e){let y;try{y=r.resolve(s,n)[0]}catch(d){if(o)continue;throw d}i[y]=l(e,s,t),e[y]=e[s],s!==y&&delete e[s]}return[i]});r.extend("tuple",(e,{list:t},n)=>{if(!Array.isArray(e))throw new TypeError(`expected array but got ${e}`);let o=t.map((i,s)=>l(e,s,i));return n?[o]:(o.push(...e.slice(t.length)),[o])});function b(e,t){for(let n in t)n in e||(e[n]=t[n])}c(b,"merge");r.extend("object",(e,{dict:t},n)=>{if(!m(e))throw new TypeError(`expected object but got ${e}`);let o={};for(let i in t){let s=l(e,i,t[i]);(!p(s)||i in e)&&(o[i]=s)}return n||b(o,e),[o]});r.extend("union",(e,{list:t,toString:n})=>{let o=[];for(let i of t)try{return r.resolve(e,i)}catch(s){o.push(s.message)}throw new TypeError(`expected ${n()} but got ${JSON.stringify(e)}`)});r.extend("intersect",(e,{list:t},n)=>{let o={};for(let i of t){let s=r.resolve(e,i,!0)[0];Object.assign(o,s)}return!n&&m(e)&&b(o,e),[o]});r.extend("transform",(e,{inner:t,callback:n})=>{let[o,i=e]=r.resolve(e,t,!0);if(m(e)){let s={};for(let y in o)y in e&&(s[y]=e[y],delete e[y]);return Object.assign(e,n(s)),[n(o)]}else return[n(o),n(i)]});function u(e,t,n){Object.assign(r,{[e](...o){let i=new r({type:e});return i.toString=n.bind(null,i),t.forEach((s,y)=>{switch(s){case"sKey":i.sKey=o[y]??r.string();break;case"inner":i.inner=r.from(o[y]);break;case"list":i.list=o[y].map(r.from);break;case"dict":i.dict=f(o[y],r.from);break;default:i[s]=o[y]}}),e==="object"||e==="dict"?i.meta.default={}:(e==="array"||e==="tuple"||e==="bitset")&&(i.meta.default=[]),i}})}c(u,"defineMethod");u("is",["callback"],({callback:e})=>e.name);u("any",[],()=>"any");u("never",[],()=>"never");u("const",["value"],({value:e})=>typeof e=="string"?JSON.stringify(e):e);u("string",[],()=>"string");u("number",[],()=>"number");u("boolean",[],()=>"boolean");u("bitset",["dict"],()=>"bitset");u("function",[],()=>"function");u("array",["inner"],({inner:e})=>`${e.toString(!0)}[]`);u("dict",["inner","sKey"],({inner:e,sKey:t})=>`{ [key: ${t.toString()}]: ${e.toString()} }`);u("tuple",["list"],({list:e})=>`[${e.map(t=>t.toString()).join(", ")}]`);u("object",["dict"],({dict:e})=>Object.keys(e).length===0?"{}":`{ ${Object.entries(e).map(([t,n])=>`${t}${n.meta.required?"":"?"}: ${n.toString()}`).join(", ")} }`);u("union",["list"],({list:e},t)=>{let n=e.map(({toString:o})=>o()).join(" | ");return t?`(${n})`:n});u("intersect",["list"],({list:e})=>`${e.map(t=>t.toString(!0)).join(" & ")}`);u("transform",["inner","callback"],({inner:e},t)=>e.toString(t));g.exports=r});export default $();
var x=Object.defineProperty;var u=(e,t)=>x(e,"name",{value:t,configurable:!0});var w=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);import{clone as X,isNullable as m,isPlainObject as l,valueMap as h}from"cosmokit";var $=w((N,d)=>{var v=0,T=Symbol("schemastery"),r=u(function(e){let t=u(function(n){return r.resolve(n,t)[0]},"schema");if(e.refs){let n=h(e.refs,i=>new r(i)),o=u(i=>n[i],"getRef");for(let i in n){let s=n[i];s.sKey=o(s.sKey),s.inner=o(s.inner),s.list=s.list&&s.list.map(o),s.dict=s.dict&&h(s.dict,o)}return n[e.uid]}return Object.assign(t,e),Object.defineProperty(t,"uid",{value:v++}),Object.setPrototypeOf(t,r.prototype),t.meta||={},t},"Schema");r.prototype=Object.create(Function.prototype);r.prototype[T]=!0;var a;r.prototype.toJSON=u(function(){if(a)return a[this.uid]??=JSON.parse(JSON.stringify({...this})),this.uid;a={[this.uid]:{...this}},a[this.uid]=JSON.parse(JSON.stringify({...this}));let t={uid:this.uid,refs:a};return a=null,t},"toJSON");r.prototype.set=u(function(t,n){return this.dict[t]=n,this},"set");r.prototype.push=u(function(t){return this.list.push(t),this},"push");for(let e of["required","hidden"])Object.assign(r.prototype,{[e](t=!0){let n=r(this);return n.meta={...n.meta,[e]:t},n}});for(let e of["default","role","link","comment","description","max","min","step"])Object.assign(r.prototype,{[e](t){let n=r(this);return n.meta={...n.meta,[e]:t},n}});var b={};r.extend=u(function(t,n){b[t]=n},"extend");r.resolve=u(function(t,n,o){if(!n)return[t];if(m(t)){if(n.meta.required)throw new TypeError("missing required value");let s=n.meta.default;if(m(s))return[t];t=X(s)}let i=b[n.type];if(i)return i(t,n,o);throw new TypeError(`unsupported type "${n.type}"`)},"resolve");r.from=u(function(t){if(m(t))return r.any();if(["string","number","boolean"].includes(typeof t))return r.const(t).required();if(t[T])return t;if(typeof t=="function")switch(t){case String:return r.string().required();case Number:return r.number().required();case Boolean:return r.boolean().required();case Function:return r.function().required();default:return r.is(t).required()}else throw new TypeError(`cannot infer schema from ${t}`)},"from");r.natural=u(function(){return r.number().step(1).min(0)},"natural");r.percent=u(function(){return r.number().step(.01).min(0).max(1).role("slider")},"percent");r.extend("any",e=>[e]);r.extend("never",e=>{throw new TypeError(`expected nullable but got ${e}`)});r.extend("const",(e,{value:t})=>{if(e===t)return[t];throw new TypeError(`expected ${t} but got ${e}`)});function S(e,t,n){let{max:o=1/0,min:i=-1/0}=t;if(e>o)throw new TypeError(`expected ${n} <= ${o} but got ${e}`);if(e<i)throw new TypeError(`expected ${n} >= ${i} but got ${e}`)}u(S,"checkWithinRange");r.extend("string",(e,{meta:t})=>{if(typeof e!="string")throw new TypeError(`expected string but got ${e}`);return S(e.length,t,"string length"),[e]});r.extend("number",(e,{meta:t})=>{if(typeof e!="number")throw new TypeError(`expected number but got ${e}`);S(e,t,"number");let{step:n}=t;if(n){let o=Math.abs(e-(t.min??0))%n;if(o>=Number.EPSILON&&o<n-Number.EPSILON)throw new TypeError(`expected number multiple of ${n} but got ${e}`)}return[e]});r.extend("boolean",e=>{if(typeof e=="boolean")return[e];throw new TypeError(`expected boolean but got ${e}`)});r.extend("bitset",(e,{bits:t})=>{if(typeof e=="number")return[e];if(!Array.isArray(e))throw new TypeError(`expected array but got ${e}`);let n=0;for(let o of e){if(typeof o!="string")throw new TypeError(`expected string but got ${o}`);if(!(o in t))throw new TypeError(`unknown value ${o}`);n|=t[o]}return[n,n]});r.extend("function",e=>{if(typeof e=="function")return[e];throw new TypeError(`expected function but got ${e}`)});r.extend("is",(e,{callback:t})=>{if(e instanceof t)return[e];throw new TypeError(`expected ${t.name} but got ${e}`)});function f(e,t,n){let[o,i]=r.resolve(e[t],n);return m(i)||(e[t]=i),o}u(f,"property");r.extend("array",(e,{inner:t,meta:n})=>{if(!Array.isArray(e))throw new TypeError(`expected array but got ${e}`);return S(e.length,n,"array length"),[e.map((o,i)=>f(e,i,t))]});r.extend("dict",(e,{inner:t,sKey:n},o)=>{if(!l(e))throw new TypeError(`expected object but got ${e}`);let i={};for(let s in e){let c;try{c=r.resolve(s,n)[0]}catch(p){if(o)continue;throw p}i[c]=f(e,s,t),e[c]=e[s],s!==c&&delete e[s]}return[i]});r.extend("tuple",(e,{list:t},n)=>{if(!Array.isArray(e))throw new TypeError(`expected array but got ${e}`);let o=t.map((i,s)=>f(e,s,i));return n?[o]:(o.push(...e.slice(t.length)),[o])});function g(e,t){for(let n in t)n in e||(e[n]=t[n])}u(g,"merge");r.extend("object",(e,{dict:t},n)=>{if(!l(e))throw new TypeError(`expected object but got ${e}`);let o={};for(let i in t){let s=f(e,i,t[i]);(!m(s)||i in e)&&(o[i]=s)}return n||g(o,e),[o]});r.extend("union",(e,{list:t,toString:n})=>{let o=[];for(let i of t)try{return r.resolve(e,i)}catch(s){o.push(s.message)}throw new TypeError(`expected ${n()} but got ${JSON.stringify(e)}`)});r.extend("intersect",(e,{list:t},n)=>{let o={};for(let i of t){let s=r.resolve(e,i,!0)[0];Object.assign(o,s)}return!n&&l(e)&&g(o,e),[o]});r.extend("transform",(e,{inner:t,callback:n})=>{let[o,i=e]=r.resolve(e,t,!0);if(l(e)){let s={};for(let c in o)c in e&&(s[c]=e[c],delete e[c]);return Object.assign(e,n(s)),[n(o)]}else return[n(o),n(i)]});function y(e,t,n){Object.assign(r,{[e](...o){let i=new r({type:e});return i.toString=n.bind(null,i),t.forEach((s,c)=>{switch(s){case"sKey":i.sKey=o[c]??r.string();break;case"inner":i.inner=r.from(o[c]);break;case"list":i.list=o[c].map(r.from);break;case"dict":i.dict=h(o[c],r.from);break;case"bits":{i.bits={};for(let p in o[c])typeof o[c][p]=="number"&&(i.bits[p]=o[c][p]);break}default:i[s]=o[c]}}),e==="object"||e==="dict"?i.meta.default={}:e==="array"||e==="tuple"?i.meta.default=[]:e==="bitset"&&(i.meta.default=0),i}})}u(y,"defineMethod");y("is",["callback"],({callback:e})=>e.name);y("any",[],()=>"any");y("never",[],()=>"never");y("const",["value"],({value:e})=>typeof e=="string"?JSON.stringify(e):e);y("string",[],()=>"string");y("number",[],()=>"number");y("boolean",[],()=>"boolean");y("bitset",["bits"],()=>"bitset");y("function",[],()=>"function");y("array",["inner"],({inner:e})=>`${e.toString(!0)}[]`);y("dict",["inner","sKey"],({inner:e,sKey:t})=>`{ [key: ${t.toString()}]: ${e.toString()} }`);y("tuple",["list"],({list:e})=>`[${e.map(t=>t.toString()).join(", ")}]`);y("object",["dict"],({dict:e})=>Object.keys(e).length===0?"{}":`{ ${Object.entries(e).map(([t,n])=>`${t}${n.meta.required?"":"?"}: ${n.toString()}`).join(", ")} }`);y("union",["list"],({list:e},t)=>{let n=e.map(({toString:o})=>o()).join(" | ");return t?`(${n})`:n});y("intersect",["list"],({list:e})=>`${e.map(t=>t.toString(!0)).join(" & ")}`);y("transform",["inner","callback"],({inner:e},t)=>e.toString(t));d.exports=r});export default $();

@@ -33,3 +33,4 @@ import { Dict, Intersect } from 'cosmokit';

list?: Schema[];
dict?: Dict<any>;
dict?: Dict<Schema>;
bits?: Dict<number>;
callback?: Function;

@@ -77,3 +78,3 @@ value?: T;

boolean(): Schema<boolean>;
bitset<K extends string>(dict: Dict<number, K>): Schema<number | readonly K[], number>;
bitset<K extends string>(bits: Dict<number, K>): Schema<number | readonly K[], number>;
function(): Schema<Function, (...args: any[]) => any>;

@@ -80,0 +81,0 @@ is<T>(constructor: Constructor<T>): Schema<T>;

@@ -183,3 +183,3 @@ var __defProp = Object.defineProperty;

});
Schema.extend("bitset", (data, { dict }) => {
Schema.extend("bitset", (data, { bits }) => {
if (typeof data === "number")

@@ -193,5 +193,5 @@ return [data];

throw new TypeError(`expected string but got ${value}`);
if (!(value in dict))
if (!(value in bits))
throw new TypeError(`unknown value ${value}`);
result |= dict[value];
result |= bits[value];
}

@@ -331,2 +331,11 @@ return [result, result];

break;
case "bits": {
schema.bits = {};
for (const key2 in args[index2]) {
if (typeof args[index2][key2] !== "number")
continue;
schema.bits[key2] = args[index2][key2];
}
break;
}
default:

@@ -338,4 +347,6 @@ schema[key] = args[index2];

schema.meta.default = {};
} else if (name === "array" || name === "tuple" || name === "bitset") {
} else if (name === "array" || name === "tuple") {
schema.meta.default = [];
} else if (name === "bitset") {
schema.meta.default = 0;
}

@@ -354,3 +365,3 @@ return schema;

defineMethod("boolean", [], () => "boolean");
defineMethod("bitset", ["dict"], () => "bitset");
defineMethod("bitset", ["bits"], () => "bitset");
defineMethod("function", [], () => "function");

@@ -357,0 +368,0 @@ defineMethod("array", ["inner"], ({ inner }) => `${inner.toString(true)}[]`);

{
"name": "schemastery",
"description": "Type driven schema validator",
"version": "3.4.2",
"version": "3.4.3",
"main": "lib/node.js",

@@ -33,2 +33,3 @@ "module": "lib/browser.js",

"c8": "^7.11.2",
"chai": "^4.3.6",
"esbuild": "^0.14.38",

@@ -35,0 +36,0 @@ "esbuild-register": "^3.3.2",

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