runcheck 0.54.1 → 0.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,10 +2,6 @@
2
2
 
3
3
  A lib for js/typescript runtime type checks with autofix support. Runcheck has the goal of being very lightweight and fast ⚡. Because of that, it has only around [2.9kb Gzipped](https://bundlephobia.com/package/runcheck) (at v0.30), has no dependencies and is tree-shakeable!
4
4
 
5
- Benchmarks:
6
-
7
- ![Benchmarks](imgs/image.png)
8
-
9
5
  Obs: Runcheck is in Beta and it's api can still change
10
6
 
11
7
  # Installation
@@ -1 +1 @@
1
- "use strict";var f=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var m=(e,r)=>{for(var n in r)f(e,n,{get:r[n],enumerable:!0})},w=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of b(r))!g.call(e,t)&&t!==n&&f(e,t,{get:()=>r[t],enumerable:!(o=h(r,t))||o.enumerable});return e};var P=e=>w(f({},"__esModule",{value:!0}),e);var A={};m(A,{rc_boolean_autofix:()=>I,rc_number_autofix:()=>S,rc_string_autofix:()=>v});module.exports=P(A);function k(e){return{...this,g:e}}function u(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function c(e,r){e.T.push(r.startsWith("$")?r:u(e,r))}function s(e,r,n,o){if(e.d&&r===void 0)return[!0,r];if(e.p&&r==null)return[!0,r];if(e.R&&r===null)return[!0,r];let t=o();if(t&&(t===!0||!t.errors)){let i=t===!0?r:t.data;return e.c&&!e.c(i)?[!1,[u(n,`Predicate failed for type '${e.e}'`)]]:[!0,i]}if(!n.i){let i=e.g;if(i!==void 0)return c(n,`Fallback used, errors -> ${y(t,n,e,r)}`),[!0,E(i)?i():i];if(e.j&&e.h){let l=e.h(r);if(l)return e.c&&!e.c(l.fixed)?[!1,[u(n,`Predicate failed for autofix in type '${e.e}'`)]]:(c(n,`Autofixed from error "${y(t,n,e,r)}"`),[!0,l.fixed])}}return[!1,t?t.errors:[u(n,T(e,r))]]}function y(e,r,n,o){return e?e.errors.map(t=>t.replace(r.n,"")).join("; "):T(n,o)}function x(e){return{...this,j:!0,h:e}}function $(e){return{...this,c:e}}function d(){return{...this,d:!0,e:`${this.e}_optional`}}function T(e,r){return`Type '${O(r,!!e.O)}' is not assignable to '${e.e}'`}function N(){return{...this,R:!0,e:`${this.e}_or_null`}}function j(){return{...this,p:!0,e:`${this.e}_or_nullish`}}var a={__rc_type:void 0,withFallback:k,where:$,optional:d,optionalKey:d,orNullish:j,withAutofix:x,orNull:N,_:void 0,g:void 0,c:void 0,d:!1,R:!1,p:!1,j:!1,O:!1,y:void 0,h:void 0,t:void 0,f:!1,b:!1,u:[]},C={...a,r(e,r){return s(this,e,r,()=>e===void 0)},e:"undefined"},K={...a,r(e,r){return s(this,e,r,()=>e===null)},e:"null"},V={...a,r(e,r){return s(this,e,r,()=>!0)},e:"any"},q={...a,r(e,r){return s(this,e,r,()=>!0)},e:"unknown"},p={...a,r(e,r){return s(this,e,r,()=>typeof e=="boolean")},e:"boolean"},_={...a,r(e,r){return s(this,e,r,()=>typeof e=="string")},e:"string"},R={...a,r(e,r){return s(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},F={...a,r(e,r){return s(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function O(e,r){let n=typeof e,o=(()=>{if(n==="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return n})();return r&&(o==="string"||o==="number"||o==="boolean")?`${o}(${e})`:o}function E(e){return typeof e=="function"}var I=p.withAutofix(e=>e==null||e===0||e===1?{fixed:!!e}:e==="true"||e==="false"?{fixed:e==="true"}:!1),v=_.withAutofix(e=>typeof e=="number"&&!Number.isNaN(e)?{fixed:e.toString()}:!1),S=R.withAutofix(e=>{if(typeof e=="string"){let r=Number(e);if(!Number.isNaN(r))return{fixed:r}}return!1});0&&(module.exports={rc_boolean_autofix,rc_number_autofix,rc_string_autofix});
1
+ "use strict";var f=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var k=(e,r)=>{for(var n in r)f(e,n,{get:r[n],enumerable:!0})},m=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of b(r))!g.call(e,t)&&t!==n&&f(e,t,{get:()=>r[t],enumerable:!(o=h(r,t))||o.enumerable});return e};var w=e=>m(f({},"__esModule",{value:!0}),e);var S={};k(S,{rc_boolean_autofix:()=>E,rc_number_autofix:()=>v,rc_string_autofix:()=>A});module.exports=w(S);function P(e){return{...this,b:e}}function u(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function d(e,r){e.d.push(r.startsWith("$")?r:u(e,r))}function i(e,r,n,o){if(e.T&&r===void 0)return{ok:!0,data:r,errors:void 0};if(e.p&&r==null)return{ok:!0,data:r,errors:void 0};if(e.R&&r===null)return{ok:!0,data:r,errors:void 0};let t=o();if(t&&(t===!0||!t.errors)){let s=t===!0?r:t.data;return e.u&&!e.u(s)?{ok:!1,data:void 0,errors:[u(n,`Predicate failed for type '${e.e}'`)]}:{ok:!0,data:s,errors:void 0}}if(!n.i){let s=e.b;if(s!==void 0)return d(n,`Fallback used, errors -> ${c(t,n,e,r)}`),{ok:!0,data:I(s)?s():s,errors:void 0};if(e.k&&e._){let l=e._(r);if(l)return e.u&&!e.u(l.fixed)?{ok:!1,data:void 0,errors:[u(n,`Predicate failed for autofix in type '${e.e}'`)]}:(d(n,`Autofixed from error "${c(t,n,e,r)}"`),{ok:!0,data:l.fixed,errors:void 0})}}return{ok:!1,data:void 0,errors:t?t.errors:[u(n,T(e,r))]}}function c(e,r,n,o){return e?e.errors.map(t=>t.replace(r.n,"")).join("; "):T(n,o)}function $(e){return{...this,k:!0,_:e}}function x(e){return{...this,u:e}}function y(){return{...this,T:!0,e:`${this.e}_optional`}}function T(e,r){return`Type '${O(r,!!e.g)}' is not assignable to '${e.e}'`}function N(){return{...this,R:!0,e:`${this.e}_or_null`}}function j(){return{...this,p:!0,e:`${this.e}_or_nullish`}}var a={__rc_type:void 0,withFallback:P,where:x,r:void 0,e:void 0,optional:y,optionalKey:y,orNullish:j,withAutofix:$,orNull:N,c:void 0,b:void 0,u:void 0,T:!1,R:!1,p:!1,k:!1,g:!1,l:void 0,_:void 0,t:void 0,y:!1,h:!1},C={...a,r(e,r){return i(this,e,r,()=>e===void 0)},e:"undefined"},K={...a,r(e,r){return i(this,e,r,()=>e===null)},e:"null"},q={...a,r(e){return{ok:!0,data:e,errors:void 0}},e:"any"},F={...a,r(e){return{ok:!0,data:e,errors:void 0}},e:"unknown"},p={...a,r(e,r){return i(this,e,r,()=>typeof e=="boolean")},e:"boolean"},R={...a,r(e,r){return i(this,e,r,()=>typeof e=="string")},e:"string"},_={...a,r(e,r){return i(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},U={...a,r(e,r){return i(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function O(e,r){let n=typeof e,o=(()=>{if(n==="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return n})();return r&&(o==="string"||o==="number"||o==="boolean")?`${o}(${e})`:o}function I(e){return typeof e=="function"}var E=p.withAutofix(e=>e==null||e===0||e===1?{fixed:!!e}:e==="true"||e==="false"?{fixed:e==="true"}:!1),A=R.withAutofix(e=>typeof e=="number"&&!Number.isNaN(e)?{fixed:e.toString()}:!1),v=_.withAutofix(e=>{if(typeof e=="string"){let r=Number(e);if(!Number.isNaN(r))return{fixed:r}}return!1});0&&(module.exports={rc_boolean_autofix,rc_number_autofix,rc_string_autofix});
@@ -1 +1 @@
1
- import{r as f,s as t,t as o}from"./chunk-65CFL2UP.js";var s=f.withAutofix(r=>r==null||r===0||r===1?{fixed:!!r}:r==="true"||r==="false"?{fixed:r==="true"}:!1),n=t.withAutofix(r=>typeof r=="number"&&!Number.isNaN(r)?{fixed:r.toString()}:!1),u=o.withAutofix(r=>{if(typeof r=="string"){let e=Number(r);if(!Number.isNaN(e))return{fixed:e}}return!1});export{s as rc_boolean_autofix,u as rc_number_autofix,n as rc_string_autofix};
1
+ import{r as f,s as t,t as o}from"./chunk-AWFWSVON.js";var s=f.withAutofix(r=>r==null||r===0||r===1?{fixed:!!r}:r==="true"||r==="false"?{fixed:r==="true"}:!1),n=t.withAutofix(r=>typeof r=="number"&&!Number.isNaN(r)?{fixed:r.toString()}:!1),u=o.withAutofix(r=>{if(typeof r=="string"){let e=Number(r);if(!Number.isNaN(e))return{fixed:e}}return!1});export{s as rc_boolean_autofix,u as rc_number_autofix,n as rc_string_autofix};
@@ -0,0 +1,2 @@
1
+ function U(e,r){return{...r,l:e}}function V(e){return j(e)&&"__rc_type"in e}function x(e){if(V(e))return e;if(j(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=x(t);return b(r)}else if(Array.isArray(e)){let[r,n]=e;switch(r){case"optional":return x(n).optional();case"nullish_or":return x(n).orNullish();case"null_or":return x(n).orNull()}}throw new Error(`invalid schema: ${e}`)}function b(e,{normalizeKeysFrom:r}={}){let n={};for(let[o,s]of Object.entries(e))n[o]=x(s);let t=Object.entries(n).map(([o,s])=>({key:o,type:s}));return{...c,t:n,e:"object",y:!0,r(o,s){return f(this,o,s,()=>{if(!j(o))return s.s=-1,!1;let a=this.e==="strict_obj"||s.a?new Set(Object.keys(o)):void 0;if(a&&a.size>t.length){s.s=-1;let y=[];if(s.o)return{data:void 0,errors:[p(s,`Expected strict object with ${t.length} keys but got ${a.size}`)]};for(let{key:d}of t)a.has(d)?a.delete(d):y.push(p(s,`Key '${d}' is missing`));for(let d of a)y.push(p(s,`Key '${d}' is not defined in the object shape`));return{data:void 0,errors:y}}let u={},T=[],k=s.n,h=-1;for(let y of t){let d=y.key,_=y.type,O=d;h+=1;let m=`.${d}`,R=`${k}${m}`;s.n=R;let l=o[d],g=d;if(l===void 0&&_.l&&(l=o[_.l],g=_.l),l===void 0&&r==="snake_case"){let E=I(d);l=o[E],g=E}a?.delete(g);let S=_.r(l,s);if(S.ok)u[O]=S.data;else{for(let E of S.errors)s.n=R,T.push(E);if(s.o){s.s=h;break}}}if(a&&a.size>0)for(let y of a)s.n=k,T.push(p(s,`Key '${y}' is not defined in the object shape`));return T.length>0?{errors:T,data:void 0}:this.h?{errors:!1,data:{...o,...u}}:{errors:!1,data:u}})}}}function D(e,r){return{...b(e,r),e:"extends_object",h:!0}}function M(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function z(e,r){return{...b(e,r),e:"strict_obj"}}function L(e,{nonRecursive:r}={}){if(r){if(!e.t)throw new Error("rc_enable_obj_strict: nonRecursive option can only be used on object types");return{...e,e:"strict_obj"}}return{...e,r(n,t){let o=t.a;t.a=!0;let s=e.r(n,t);return t.a=o,s}}}function Q(...e){let r={};for(let n of e)Object.assign(r,n.t);return b(r)}function J(e,r){let n={};if(!e.t)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let o=e.t[t];o&&(n[t]=o)}return b(n)}function Z(e,r){let n={};if(!e.t)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.t))r.includes(t)||(n[t]=e.t[t]);return b(n)}function G(){return(e,r)=>b(e,r)}function H(e){return{...this,b:e}}function p(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function $(e,r){e.d.push(r.startsWith("$")?r:p(e,r))}function C(e,r){r.forEach(n=>$(e,n))}function f(e,r,n,t){if(e.T&&r===void 0)return{ok:!0,data:r,errors:void 0};if(e.p&&r==null)return{ok:!0,data:r,errors:void 0};if(e.R&&r===null)return{ok:!0,data:r,errors:void 0};let o=t();if(o&&(o===!0||!o.errors)){let s=o===!0?r:o.data;return e.u&&!e.u(s)?{ok:!1,data:void 0,errors:[p(n,`Predicate failed for type '${e.e}'`)]}:{ok:!0,data:s,errors:void 0}}if(!n.i){let s=e.b;if(s!==void 0)return $(n,`Fallback used, errors -> ${N(o,n,e,r)}`),{ok:!0,data:v(s)?s():s,errors:void 0};if(e.k&&e._){let i=e._(r);if(i)return e.u&&!e.u(i.fixed)?{ok:!1,data:void 0,errors:[p(n,`Predicate failed for autofix in type '${e.e}'`)]}:($(n,`Autofixed from error "${N(o,n,e,r)}"`),{ok:!0,data:i.fixed,errors:void 0})}}return{ok:!1,data:void 0,errors:o?o.errors:[p(n,B(e,r))]}}function N(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):B(n,t)}function X(e){return{...this,k:!0,_:e}}function Y(e){return{...this,u:e}}function W(){return{...this,T:!0,e:`${this.e}_optional`}}function B(e,r){return`Type '${w(r,!!e.g)}' is not assignable to '${e.e}'`}function ee(){return{...this,R:!0,e:`${this.e}_or_null`}}function re(){return{...this,p:!0,e:`${this.e}_or_nullish`}}var c={__rc_type:void 0,withFallback:H,where:Y,r:void 0,e:void 0,optional:W,optionalKey:W,orNullish:re,withAutofix:X,orNull:ee,c:void 0,b:void 0,u:void 0,T:!1,R:!1,p:!1,k:!1,g:!1,l:void 0,_:void 0,t:void 0,y:!1,h:!1},Re={...c,r(e,r){return f(this,e,r,()=>e===void 0)},e:"undefined"},_e={...c,r(e,r){return f(this,e,r,()=>e===null)},e:"null"},he={...c,r(e){return{ok:!0,data:e,errors:void 0}},e:"any"},be={...c,r(e){return{ok:!0,data:e,errors:void 0}},e:"unknown"},ke={...c,r(e,r){return f(this,e,r,()=>typeof e=="boolean")},e:"boolean"},ge={...c,r(e,r){return f(this,e,r,()=>typeof e=="string")},e:"string"},je={...c,r(e,r){return f(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},Oe={...c,r(e,r){return f(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function me(e){return{...c,r(r,n){return f(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function xe(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...c,r(r,n){return f(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},g:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var q=1;function we(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...c,r(r,n){return f(this,r,n,()=>{let t=n.n,o=[],s=0,i=!1,a=[],u=0;for(let T of e){u+=1,T.y&&(n.n=`${t}|union ${u}|`);let k=n.o;n.o=!0,n.s=0;let h=T.r(r,n),y=n.s;if(n.o=k,n.s=0,h.ok)return!0;T.y&&y!==-1?y>0?a.push(...h.errors):(s<q&&o.push(...h.errors),s+=1):i=!0}return n.n=t,a.length>0||o.length>0?((s>q||i)&&o.push(p(n,"not matches any other union member")),{errors:[...a,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function Pe(e,r){return{...e,T:!1,p:!1,R:!1,r(t,o){return f(this,t,o,()=>{if(t===void 0)return n();let s=e.r(t,o);return s.ok?s.data===void 0?n():{data:s.data,errors:!1}:{data:void 0,errors:s.errors}})},e:`${e.e}_default`};function n(){return{data:v(r)?r():r,errors:!1}}}function Ee(e,r){return{...e,T:!1,p:!1,R:!1,r(t,o){return f(this,t,o,()=>{if(t==null)return n();let s=e.r(t,o);return s.ok?s.data===null||s.data===void 0?n():{data:s.data,errors:!1}:{data:void 0,errors:s.errors}})},e:`${e.e}_nullish_default`};function n(){return{data:v(r)?r():r,errors:!1}}}function ne(e,{checkKey:r,looseCheck:n}={}){return{...c,e:`record<string, ${e.e}>`,r(t,o){return f(this,t,o,()=>{if(!j(t))return!1;let s={},i=[],a=o.n;for(let[u,T]of Object.entries(t)){let k=`.${u}`,h=`${a}${k}`;if(o.n=h,r&&!r(u)){i.push(p(o,`Key '${u}' is not allowed`));continue}let y=t[u],d=e.r(T,o);if(d.ok)s[u]=y;else{let _=d.errors;for(let O of _)i.push(O);if(o.o)break}}if(i.length>0)if(n)C(o,i);else return{errors:i,data:void 0};return{errors:!1,data:s}})}}}function Se(e,r){let n={};for(let[t,o]of Object.entries(r))n[t]=b(o);return{...c,e:"discriminated_union",y:!0,r(t,o){return f(this,t,o,()=>{if(!j(t))return o.s=-1,!1;let s=t[e];o.n=`${o.n}.${e}`;let i=n[s];if(!i){let u=w(s,!0);return{errors:[p(o,`Type '${u}' is not a valid discriminator`)],data:void 0}}o.n=`${o.n}|${s}|`;let a=i.r(t,o);return a.ok?(a.data[e]=s,{errors:!1,data:a.data}):{errors:a.errors,data:void 0}})}}}function $e(e,{checkKey:r}={}){return ne(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,o){let s=t&&!n.i&&!n.f,i=o?.unique,a=[],u=[],T=i?new Set:void 0,k=n.n,h=Array.isArray(r),y=-1;for(let d of e){y++;let _=h?r[y]:r,O=`[${y}]`,m=`${k}${O}`;if(n.n=m,o?.filter){let l=o.filter(d);if(typeof l=="boolean"){if(!l)continue}else if("errors"in l)if(s){a.push(l.errors);continue}else return{errors:l.errors,data:void 0};n.n=m}let R=_.r(d,n);if(n.n=m,R.ok&&T){let l=R.data,g=typeof i=="string";g?l=R.data[i]:typeof i=="function"&&(l=i(R.data)),T.has(l)?(g&&(n.n=`${k}${O}.${i}`),R={ok:!1,data:void 0,errors:[p(n,g?`Type '${_.t?.[i]?.e}' with value "${l}" is not unique`:typeof i=="function"?`Type '${_.e}' unique fn return with value "${l}" is not unique`:`${_.e} value is not unique`)]}):T.add(l)}if(R.ok)u.push(R.data);else if(s){a.push(R.errors);continue}else return{errors:R.errors,data:void 0}}if(a.length>0){if(u.length===0)return{errors:a.slice(0,5).flat(),data:void 0};C(n,a.flat())}return{errors:!1,data:u}}function Ae(e,r){return{...c,e:`${e.e}[]`,c:e,r(n,t){return f(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1,r):!1)}}}function Ke(e){if(!e.c)throw new Error("Type does not have an item type");return e.c}function ve(e,{nonRecursive:r=!1}={}){if(r){if(!e.e.endsWith("[]"))throw new Error("rc_disable_loose_array: nonRecursive option can only be used with array types");return{...e,r(n,t){return f(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1):!1)}}}return{...e,r(n,t){let o=t.f;t.f=!0;let s=e.r(n,t);return t.f=o,s}}}function Ie(e,r){return{...c,c:e,e:`${e.e}[]`,r(n,t){return f(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!0,r):!1)}}}function Ne(e,r,n,t){return{...c,c:n,e:`${n.e}[]`,r(o,s){return f(this,o,s,()=>Array.isArray(o)?o.length===0?!0:P.call(this,o,n,s,t?.loose,{...t,filter(i){let a=e.r(i,s);return a.ok?r(a.data):{errors:a.errors}}}):!1)}}}function We(e){return{...c,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return f(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:P.call(this,r,e,n))}}}function K(e,r,{noWarnings:n=!1}={}){let t={d:[],n:"",o:!1,s:0,i:n,a:!1,f:!1},o=r.r(e,t);return o.ok?{error:!1,ok:!0,data:o.data,value:o.data,warnings:t.d.length>0?t.d:!1}:{ok:!1,error:!0,errors:o.errors}}function qe(e){return r=>K(r,e)}function Ce(e,r,n){let t=K(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.value,errors:!1,warnings:t.warnings}}function Be(e){return te(e,null)}function te(e,r){return e.error?{value:r,errors:e.errors,warnings:!1}:{value:e.value,errors:!1,warnings:e.warnings}}var A=class extends Error{constructor(n){super(n.join(`
2
+ `));this.errors=n}};function Fe(e){if(e.error)throw new A(e.errors);return e}function oe(e,r){let n={d:[],n:"",o:!1,s:0,i:!1,a:!1,f:!1};return r.r(e,n).ok}function Ue(e){return r=>oe(r,e)}function Ve(e){return{...c,e:"recursive",r(r,n){return e().r(r,n)}}}function F(e,r,n,t){let o=e.n,s=e.o,i=e.a,a=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.a=!0,e.i=!0);let u=r.r(n,e);return e.a=i,e.i=a,e.n=o,e.o=s,u}function se(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...c,e:`transform_from_${e.e}`,r(o,s){let i=null;if(n){let u=F(s,n,o,t);if(u.ok)return u;i=u.errors}let a=e.r(o,s);return a.ok?{ok:!0,data:r(a.data,e),errors:void 0}:{ok:!1,errors:[...i||[],...a.errors],data:void 0}}}}function De(e,r){return se(e,r)}function Me(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...c,e:`transform_from_${e.e}`,r(o,s){let i=null;if(n){let u=F(s,n,o,t);if(u.ok)return u;i=u.errors}let a=e.r(o,s);if(a.ok){let u=r(a.data,e);return u.ok?{ok:!0,data:u.data,errors:void 0}:{ok:!1,errors:typeof u.errors=="string"?[p(s,u.errors)]:u.errors.map(T=>p(s,T)),data:void 0}}return{ok:!1,errors:[...i||[],...a.errors],data:void 0}}}}function w(e,r){let n=typeof e,t=(()=>{if(n==="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return n})();return r&&(t==="string"||t==="number"||t==="boolean")?`${t}(${e})`:t}function ze(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function j(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function I(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Le(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${w(e,!0)}`]};let t=JSON.parse(e);return K(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${j(t)?t.message:""}`]}}}function v(e){return typeof e=="function"}export{U as a,b,D as c,M as d,z as e,L as f,Q as g,J as h,Z as i,G as j,p as k,f as l,c as m,Re as n,_e as o,he as p,be as q,ke as r,ge as s,je as t,Oe as u,me as v,xe as w,we as x,Pe as y,Ee as z,ne as A,Se as B,$e as C,Ae as D,Ke as E,ve as F,Ie as G,Ne as H,We as I,K as J,qe as K,Ce as L,Be as M,te as N,A as O,Fe as P,oe as Q,Ue as R,Ve as S,se as T,De as U,Me as V,ze as W,j as X,I as Y,Le as Z};
package/dist/runcheck.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var I=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.prototype.hasOwnProperty;var ue=(e,r)=>{for(var n in r)I(e,n,{get:r[n],enumerable:!0})},ce=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of ae(r))!ie.call(e,o)&&o!==n&&I(e,o,{get:()=>r[o],enumerable:!(t=se(r,o))||t.enumerable});return e};var ye=e=>ce(I({},"__esModule",{value:!0}),e);var ze={};ue(ze,{RcValidationError:()=>E,defaultProps:()=>l,getWarningOrErrorWithPath:()=>d,isObject:()=>g,parse:()=>y,rc_any:()=>be,rc_array:()=>N,rc_assert_is_valid:()=>De,rc_boolean:()=>je,rc_date:()=>me,rc_default:()=>Ee,rc_disable_loose_array:()=>ve,rc_discriminated_union:()=>$e,rc_enable_obj_strict:()=>M,rc_get_array_item_type:()=>Ke,rc_get_from_key_as_fallback:()=>F,rc_get_obj_schema:()=>U,rc_instanceof:()=>xe,rc_is_valid:()=>ne,rc_literals:()=>we,rc_loose_array:()=>W,rc_loose_parse:()=>We,rc_loose_record:()=>Ae,rc_narrow:()=>Ve,rc_null:()=>he,rc_nullish_default:()=>Se,rc_number:()=>ke,rc_obj_builder:()=>J,rc_obj_extends:()=>V,rc_obj_merge:()=>z,rc_obj_omit:()=>Q,rc_obj_pick:()=>L,rc_obj_strict:()=>D,rc_object:()=>R,rc_parse:()=>$,rc_parse_json:()=>Me,rc_parser:()=>Ne,rc_record:()=>ee,rc_recursive:()=>Fe,rc_string:()=>Oe,rc_transform:()=>oe,rc_tuple:()=>Ie,rc_undefined:()=>_e,rc_union:()=>Pe,rc_unknown:()=>ge,rc_unsafe_transform:()=>Ue,rc_unwrap:()=>Ce,rc_unwrap_or:()=>re,rc_unwrap_or_null:()=>qe,rc_validator:()=>Be,snakeCase:()=>q});module.exports=ye(ze);function F(e,r){return{...r,l:e}}function le(e){return g(e)&&"__rc_type"in e}function k(e){if(le(e))return e;if(g(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=k(t);return R(r)}else if(Array.isArray(e)){let[r,n]=e;switch(r){case"optional":return k(n).optional();case"nullish_or":return k(n).orNullish();case"null_or":return k(n).orNull();case"array":return N(k(n));case"loose_array":return W(k(n))}}throw new Error(`invalid schema: ${e}`)}function R(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,o]of Object.entries(e))n[t]=k(o);return{...l,t:n,e:"object",f:!0,u:Object.entries(n),r(t,o){return y(this,t,o,()=>{if(!g(t))return o.s=-1,!1;let s=this.e==="strict_obj"||o.a?new Set(Object.keys(t)):void 0;if(s&&s.size>this.u.length){o.s=-1;let p=[];if(o.o)return{data:void 0,errors:[d(o,`Expected strict object with ${this.u.length} keys but got ${s.size}`)]};for(let[f]of this.u)s.has(f)?s.delete(f):p.push(d(o,`Key '${f}' is missing`));for(let f of s)p.push(d(o,`Key '${f}' is not defined in the object shape`));return{data:void 0,errors:p}}let c={},i=[],u=o.n,T=-1;for(let[p,f]of this.u){let h=p;T+=1;let b=`.${p}`,j=`${u}${b}`;o.n=j;let _=t[p],O=p;if(_===void 0&&f.l&&(_=t[f.l],O=f.l),_===void 0&&r==="snake_case"){let x=q(p);_=t[x],O=x}s?.delete(O);let[A,m]=f.r(_,o);if(A)c[h]=m;else{for(let x of m)o.n=j,i.push(x);if(o.o){o.s=T;break}}}if(s&&s.size>0)for(let p of s)o.n=u,i.push(d(o,`Key '${p}' is not defined in the object shape`));return i.length>0?{errors:i,data:void 0}:this.b?{errors:!1,data:{...t,...c}}:{errors:!1,data:c}})}}}function V(e,r){return{...R(e,r),e:"extends_object",b:!0}}function U(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function D(e,r){return{...R(e,r),e:"strict_obj"}}function M(e,{nonRecursive:r}={}){if(r){if(!e.t)throw new Error("rc_enable_obj_strict: nonRecursive option can only be used on object types");return{...e,e:"strict_obj"}}return{...e,r(n,t){let o=t.a;t.a=!0;let a=e.r(n,t);return t.a=o,a}}}function z(...e){let r={};for(let n of e)Object.assign(r,n.t);return R(r)}function L(e,r){let n={};if(!e.t)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let o=e.t[t];o&&(n[t]=o)}return R(n)}function Q(e,r){let n={};if(!e.t)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.t))r.includes(t)||(n[t]=e.t[t]);return R(n)}function J(){return(e,r)=>R(e,r)}function fe(e){return{...this,g:e}}function d(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function C(e,r){e.T.push(r.startsWith("$")?r:d(e,r))}function X(e,r){r.forEach(n=>C(e,n))}function y(e,r,n,t){if(e.p&&r===void 0)return[!0,r];if(e.d&&r==null)return[!0,r];if(e.R&&r===null)return[!0,r];let o=t();if(o&&(o===!0||!o.errors)){let a=o===!0?r:o.data;return e.c&&!e.c(a)?[!1,[d(n,`Predicate failed for type '${e.e}'`)]]:[!0,a]}if(!n.i){let a=e.g;if(a!==void 0)return C(n,`Fallback used, errors -> ${Z(o,n,e,r)}`),[!0,B(a)?a():a];if(e.j&&e.h){let s=e.h(r);if(s)return e.c&&!e.c(s.fixed)?[!1,[d(n,`Predicate failed for autofix in type '${e.e}'`)]]:(C(n,`Autofixed from error "${Z(o,n,e,r)}"`),[!0,s.fixed])}}return[!1,o?o.errors:[d(n,Y(e,r))]]}function Z(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):Y(n,t)}function Te(e){return{...this,j:!0,h:e}}function pe(e){return{...this,c:e}}function G(){return{...this,p:!0,e:`${this.e}_optional`}}function Y(e,r){return`Type '${P(r,!!e.O)}' is not assignable to '${e.e}'`}function de(){return{...this,R:!0,e:`${this.e}_or_null`}}function Re(){return{...this,d:!0,e:`${this.e}_or_nullish`}}var l={__rc_type:void 0,withFallback:fe,where:pe,optional:G,optionalKey:G,orNullish:Re,withAutofix:Te,orNull:de,_:void 0,g:void 0,c:void 0,p:!1,R:!1,d:!1,j:!1,O:!1,l:void 0,h:void 0,t:void 0,f:!1,b:!1,u:[]},_e={...l,r(e,r){return y(this,e,r,()=>e===void 0)},e:"undefined"},he={...l,r(e,r){return y(this,e,r,()=>e===null)},e:"null"},be={...l,r(e,r){return y(this,e,r,()=>!0)},e:"any"},ge={...l,r(e,r){return y(this,e,r,()=>!0)},e:"unknown"},je={...l,r(e,r){return y(this,e,r,()=>typeof e=="boolean")},e:"boolean"},Oe={...l,r(e,r){return y(this,e,r,()=>typeof e=="string")},e:"string"},ke={...l,r(e,r){return y(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},me={...l,r(e,r){return y(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function xe(e){return{...l,r(r,n){return y(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function we(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...l,r(r,n){return y(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},O:!0,e:e.length==1?P(e[0],!0):e.map(r=>P(r,!0)).join(" | ")}}var H=1;function Pe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...l,r(r,n){return y(this,r,n,()=>{let t=n.n,o=[],a=0,s=!1,c=[],i=0;for(let u of e){i+=1,u.f&&(n.n=`${t}|union ${i}|`);let T=n.o;n.o=!0,n.s=0;let[p,f]=u.r(r,n),h=n.s;if(n.o=T,n.s=0,p)return!0;u.f&&h!==-1?h>0?c.push(...f):(a<H&&o.push(...f),a+=1):s=!0}return n.n=t,c.length>0||o.length>0?((a>H||s)&&o.push(d(n,"not matches any other union member")),{errors:[...c,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function Ee(e,r){return{...e,p:!1,d:!1,R:!1,r(t,o){return y(this,t,o,()=>{if(t===void 0)return n();let[a,s]=e.r(t,o);return a?s===void 0?n():{data:s,errors:!1}:{data:void 0,errors:s}})},e:`${e.e}_default`};function n(){return{data:B(r)?r():r,errors:!1}}}function Se(e,r){return{...e,p:!1,d:!1,R:!1,r(t,o){return y(this,t,o,()=>{if(t==null)return n();let[a,s]=e.r(t,o);return a?s==null?n():{data:s,errors:!1}:{data:void 0,errors:s}})},e:`${e.e}_nullish_default`};function n(){return{data:B(r)?r():r,errors:!1}}}function ee(e,{checkKey:r,looseCheck:n}={}){return{...l,e:`record<string, ${e.e}>`,r(t,o){return y(this,t,o,()=>{if(!g(t))return!1;let a={},s=[],c=o.n;for(let[i,u]of Object.entries(t)){let T=`.${i}`,p=`${c}${T}`;if(o.n=p,r&&!r(i)){s.push(d(o,`Key '${i}' is not allowed`));continue}let f=t[i],[h,b]=e.r(u,o);if(h)a[i]=f;else{let j=b;for(let _ of j)s.push(_);if(o.o)break}}if(s.length>0)if(n)X(o,s);else return{errors:s,data:void 0};return{errors:!1,data:a}})}}}function $e(e,r){let n={};for(let[t,o]of Object.entries(r))n[t]=R(o);return{...l,e:"discriminated_union",f:!0,r(t,o){return y(this,t,o,()=>{if(!g(t))return o.s=-1,!1;let a=t[e];o.n=`${o.n}.${e}`;let s=n[a];if(!s){let u=P(a,!0);return{errors:[d(o,`Type '${u}' is not a valid discriminator`)],data:void 0}}o.n=`${o.n}|${a}|`;let[c,i]=s.r(t,o);return c?(i[e]=a,{errors:!1,data:i}):{errors:i,data:void 0}})}}}function Ae(e,{checkKey:r}={}){return ee(e,{checkKey:r,looseCheck:!0})}function S(e,r,n,t=!1,o){let a=t&&!n.i&&!n.y,s=o?.unique,c=[],i=[],u=s?new Set:void 0,T=n.n,p=Array.isArray(r),f=-1;for(let h of e){f++;let b=p?r[f]:r,j=`[${f}]`,_=`${T}${j}`;n.n=_;let O=b.r(h,n),[A,m]=O;if(n.n=_,A&&u){let w=m,v=typeof s=="string";v?w=m[s]:typeof s=="function"&&(w=s(m)),u.has(w)?(v&&(n.n=`${T}${j}.${s}`),O=[!1,[d(n,v?`Type '${b.t?.[s]?.e}' with value "${w}" is not unique`:typeof s=="function"?`Type '${b.e}' unique fn return with value "${w}" is not unique`:`${b.e} value is not unique`)]]):u.add(w)}let[x,K]=O;if(x)i.push(K);else if(a){c.push(K);continue}else return{errors:K,data:void 0}}if(c.length>0){if(i.length===0)return{errors:c.slice(0,5).flat(),data:void 0};X(n,c.flat())}return{errors:!1,data:i}}function N(e,r){return{...l,e:`${e.e}[]`,_:e,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:S.call(this,n,e,t,!1,r):!1)}}}function Ke(e){if(!e._)throw new Error("Type does not have an item type");return e._}function ve(e,{nonRecursive:r=!1}={}){if(r){if(!e.e.endsWith("[]"))throw new Error("rc_disable_loose_array: nonRecursive option can only be used with array types");return{...e,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:S.call(this,n,e,t,!1):!1)}}}return{...e,r(n,t){let o=t.y;t.y=!0;let a=e.r(n,t);return t.y=o,a}}}function W(e,r){return{...l,_:e,e:`${e.e}[]`,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:S.call(this,n,e,t,!0,r):!1)}}}function Ie(e){return{...l,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return y(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:S.call(this,r,e,n))}}}function $(e,r,{noWarnings:n=!1}={}){let t={T:[],n:"",o:!1,s:0,i:n,a:!1,y:!1},[o,a]=r.r(e,t);return o?{error:!1,ok:!0,data:a,value:a,warnings:t.T.length>0?t.T:!1}:{ok:!1,error:!0,errors:a}}function Ne(e){return r=>$(r,e)}function We(e,r,n){let t=$(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.value,errors:!1,warnings:t.warnings}}function qe(e){return re(e,null)}function re(e,r){return e.error?{value:r,errors:e.errors,warnings:!1}:{value:e.value,errors:!1,warnings:e.warnings}}var E=class extends Error{constructor(n){super(n.join(`
2
- `));this.errors=n}};function Ce(e){if(e.error)throw new E(e.errors);return e}function ne(e,r){let n={T:[],n:"",o:!1,s:0,i:!1,a:!1,y:!1};return!!r.r(e,n)[0]}function Be(e){return r=>ne(r,e)}function Fe(e){return{...l,e:"recursive",r(r,n){return e().r(r,n)}}}function te(e,r,n,t){let o=e.n,a=e.o,s=e.a,c=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.a=!0,e.i=!0);let i=r.r(n,e);return e.a=s,e.i=c,e.n=o,e.o=a,i}function oe(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...l,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=te(a,n,o,t);if(u)return[!0,T];s=T}let[c,i]=e.r(o,a);return c?[!0,r(i,e)]:[!1,[...s||[],...i]]}}}function Ve(e,r){return oe(e,r)}function Ue(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...l,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=te(a,n,o,t);if(u)return[!0,T];s=T}let[c,i]=e.r(o,a);if(c){let u=r(i,e);return u.ok?[!0,u.data]:[!1,typeof u.errors=="string"?[d(a,u.errors)]:u.errors.map(T=>d(a,T))]}return[!1,[...s||[],...i]]}}}function P(e,r){let n=typeof e,t=(()=>{if(n==="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return n})();return r&&(t==="string"||t==="number"||t==="boolean")?`${t}(${e})`:t}function De(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function g(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function q(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Me(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${P(e,!0)}`]};let t=JSON.parse(e);return $(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${g(t)?t.message:""}`]}}}function B(e){return typeof e=="function"}0&&(module.exports={RcValidationError,defaultProps,getWarningOrErrorWithPath,isObject,parse,rc_any,rc_array,rc_assert_is_valid,rc_boolean,rc_date,rc_default,rc_disable_loose_array,rc_discriminated_union,rc_enable_obj_strict,rc_get_array_item_type,rc_get_from_key_as_fallback,rc_get_obj_schema,rc_instanceof,rc_is_valid,rc_literals,rc_loose_array,rc_loose_parse,rc_loose_record,rc_narrow,rc_null,rc_nullish_default,rc_number,rc_obj_builder,rc_obj_extends,rc_obj_merge,rc_obj_omit,rc_obj_pick,rc_obj_strict,rc_object,rc_parse,rc_parse_json,rc_parser,rc_record,rc_recursive,rc_string,rc_transform,rc_tuple,rc_undefined,rc_union,rc_unknown,rc_unsafe_transform,rc_unwrap,rc_unwrap_or,rc_unwrap_or_null,rc_validator,snakeCase});
1
+ "use strict";var K=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var ne=Object.getOwnPropertyNames;var te=Object.prototype.hasOwnProperty;var oe=(e,r)=>{for(var n in r)K(e,n,{get:r[n],enumerable:!0})},se=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of ne(r))!te.call(e,o)&&o!==n&&K(e,o,{get:()=>r[o],enumerable:!(t=re(r,o))||t.enumerable});return e};var ae=e=>se(K({},"__esModule",{value:!0}),e);var Me={};oe(Me,{RcValidationError:()=>S,defaultProps:()=>c,getWarningOrErrorWithPath:()=>p,isObject:()=>g,parse:()=>f,rc_any:()=>pe,rc_array:()=>Ee,rc_array_filter_from_schema:()=>Ke,rc_assert_is_valid:()=>Ve,rc_boolean:()=>_e,rc_date:()=>ke,rc_default:()=>me,rc_disable_loose_array:()=>$e,rc_discriminated_union:()=>we,rc_enable_obj_strict:()=>F,rc_get_array_item_type:()=>Se,rc_get_from_key_as_fallback:()=>W,rc_get_obj_schema:()=>C,rc_instanceof:()=>ge,rc_is_valid:()=>X,rc_literals:()=>je,rc_loose_array:()=>Ae,rc_loose_parse:()=>Ne,rc_loose_record:()=>Pe,rc_narrow:()=>Fe,rc_null:()=>Te,rc_nullish_default:()=>xe,rc_number:()=>be,rc_obj_builder:()=>M,rc_obj_extends:()=>q,rc_obj_merge:()=>U,rc_obj_omit:()=>D,rc_obj_pick:()=>V,rc_obj_strict:()=>B,rc_object:()=>h,rc_parse:()=>$,rc_parse_json:()=>De,rc_parser:()=>Ie,rc_record:()=>G,rc_recursive:()=>Be,rc_string:()=>he,rc_transform:()=>ee,rc_tuple:()=>ve,rc_undefined:()=>de,rc_union:()=>Oe,rc_unknown:()=>Re,rc_unsafe_transform:()=>Ue,rc_unwrap:()=>qe,rc_unwrap_or:()=>H,rc_unwrap_or_null:()=>We,rc_validator:()=>Ce,snakeCase:()=>v});module.exports=ae(Me);function W(e,r){return{...r,l:e}}function ie(e){return g(e)&&"__rc_type"in e}function x(e){if(ie(e))return e;if(g(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=x(t);return h(r)}else if(Array.isArray(e)){let[r,n]=e;switch(r){case"optional":return x(n).optional();case"nullish_or":return x(n).orNullish();case"null_or":return x(n).orNull()}}throw new Error(`invalid schema: ${e}`)}function h(e,{normalizeKeysFrom:r}={}){let n={};for(let[o,s]of Object.entries(e))n[o]=x(s);let t=Object.entries(n).map(([o,s])=>({key:o,type:s}));return{...c,t:n,e:"object",y:!0,r(o,s){return f(this,o,s,()=>{if(!g(o))return s.s=-1,!1;let a=this.e==="strict_obj"||s.a?new Set(Object.keys(o)):void 0;if(a&&a.size>t.length){s.s=-1;let y=[];if(s.o)return{data:void 0,errors:[p(s,`Expected strict object with ${t.length} keys but got ${a.size}`)]};for(let{key:d}of t)a.has(d)?a.delete(d):y.push(p(s,`Key '${d}' is missing`));for(let d of a)y.push(p(s,`Key '${d}' is not defined in the object shape`));return{data:void 0,errors:y}}let u={},T=[],k=s.n,b=-1;for(let y of t){let d=y.key,_=y.type,O=d;b+=1;let m=`.${d}`,R=`${k}${m}`;s.n=R;let l=o[d],j=d;if(l===void 0&&_.l&&(l=o[_.l],j=_.l),l===void 0&&r==="snake_case"){let E=v(d);l=o[E],j=E}a?.delete(j);let A=_.r(l,s);if(A.ok)u[O]=A.data;else{for(let E of A.errors)s.n=R,T.push(E);if(s.o){s.s=b;break}}}if(a&&a.size>0)for(let y of a)s.n=k,T.push(p(s,`Key '${y}' is not defined in the object shape`));return T.length>0?{errors:T,data:void 0}:this.h?{errors:!1,data:{...o,...u}}:{errors:!1,data:u}})}}}function q(e,r){return{...h(e,r),e:"extends_object",h:!0}}function C(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function B(e,r){return{...h(e,r),e:"strict_obj"}}function F(e,{nonRecursive:r}={}){if(r){if(!e.t)throw new Error("rc_enable_obj_strict: nonRecursive option can only be used on object types");return{...e,e:"strict_obj"}}return{...e,r(n,t){let o=t.a;t.a=!0;let s=e.r(n,t);return t.a=o,s}}}function U(...e){let r={};for(let n of e)Object.assign(r,n.t);return h(r)}function V(e,r){let n={};if(!e.t)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let o=e.t[t];o&&(n[t]=o)}return h(n)}function D(e,r){let n={};if(!e.t)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.t))r.includes(t)||(n[t]=e.t[t]);return h(n)}function M(){return(e,r)=>h(e,r)}function ue(e){return{...this,b:e}}function p(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function I(e,r){e.d.push(r.startsWith("$")?r:p(e,r))}function J(e,r){r.forEach(n=>I(e,n))}function f(e,r,n,t){if(e.T&&r===void 0)return{ok:!0,data:r,errors:void 0};if(e.p&&r==null)return{ok:!0,data:r,errors:void 0};if(e.R&&r===null)return{ok:!0,data:r,errors:void 0};let o=t();if(o&&(o===!0||!o.errors)){let s=o===!0?r:o.data;return e.u&&!e.u(s)?{ok:!1,data:void 0,errors:[p(n,`Predicate failed for type '${e.e}'`)]}:{ok:!0,data:s,errors:void 0}}if(!n.i){let s=e.b;if(s!==void 0)return I(n,`Fallback used, errors -> ${z(o,n,e,r)}`),{ok:!0,data:N(s)?s():s,errors:void 0};if(e.k&&e._){let i=e._(r);if(i)return e.u&&!e.u(i.fixed)?{ok:!1,data:void 0,errors:[p(n,`Predicate failed for autofix in type '${e.e}'`)]}:(I(n,`Autofixed from error "${z(o,n,e,r)}"`),{ok:!0,data:i.fixed,errors:void 0})}}return{ok:!1,data:void 0,errors:o?o.errors:[p(n,Z(e,r))]}}function z(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):Z(n,t)}function ce(e){return{...this,k:!0,_:e}}function fe(e){return{...this,u:e}}function L(){return{...this,T:!0,e:`${this.e}_optional`}}function Z(e,r){return`Type '${w(r,!!e.g)}' is not assignable to '${e.e}'`}function le(){return{...this,R:!0,e:`${this.e}_or_null`}}function ye(){return{...this,p:!0,e:`${this.e}_or_nullish`}}var c={__rc_type:void 0,withFallback:ue,where:fe,r:void 0,e:void 0,optional:L,optionalKey:L,orNullish:ye,withAutofix:ce,orNull:le,c:void 0,b:void 0,u:void 0,T:!1,R:!1,p:!1,k:!1,g:!1,l:void 0,_:void 0,t:void 0,y:!1,h:!1},de={...c,r(e,r){return f(this,e,r,()=>e===void 0)},e:"undefined"},Te={...c,r(e,r){return f(this,e,r,()=>e===null)},e:"null"},pe={...c,r(e){return{ok:!0,data:e,errors:void 0}},e:"any"},Re={...c,r(e){return{ok:!0,data:e,errors:void 0}},e:"unknown"},_e={...c,r(e,r){return f(this,e,r,()=>typeof e=="boolean")},e:"boolean"},he={...c,r(e,r){return f(this,e,r,()=>typeof e=="string")},e:"string"},be={...c,r(e,r){return f(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},ke={...c,r(e,r){return f(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ge(e){return{...c,r(r,n){return f(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function je(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...c,r(r,n){return f(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},g:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var Q=1;function Oe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...c,r(r,n){return f(this,r,n,()=>{let t=n.n,o=[],s=0,i=!1,a=[],u=0;for(let T of e){u+=1,T.y&&(n.n=`${t}|union ${u}|`);let k=n.o;n.o=!0,n.s=0;let b=T.r(r,n),y=n.s;if(n.o=k,n.s=0,b.ok)return!0;T.y&&y!==-1?y>0?a.push(...b.errors):(s<Q&&o.push(...b.errors),s+=1):i=!0}return n.n=t,a.length>0||o.length>0?((s>Q||i)&&o.push(p(n,"not matches any other union member")),{errors:[...a,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function me(e,r){return{...e,T:!1,p:!1,R:!1,r(t,o){return f(this,t,o,()=>{if(t===void 0)return n();let s=e.r(t,o);return s.ok?s.data===void 0?n():{data:s.data,errors:!1}:{data:void 0,errors:s.errors}})},e:`${e.e}_default`};function n(){return{data:N(r)?r():r,errors:!1}}}function xe(e,r){return{...e,T:!1,p:!1,R:!1,r(t,o){return f(this,t,o,()=>{if(t==null)return n();let s=e.r(t,o);return s.ok?s.data===null||s.data===void 0?n():{data:s.data,errors:!1}:{data:void 0,errors:s.errors}})},e:`${e.e}_nullish_default`};function n(){return{data:N(r)?r():r,errors:!1}}}function G(e,{checkKey:r,looseCheck:n}={}){return{...c,e:`record<string, ${e.e}>`,r(t,o){return f(this,t,o,()=>{if(!g(t))return!1;let s={},i=[],a=o.n;for(let[u,T]of Object.entries(t)){let k=`.${u}`,b=`${a}${k}`;if(o.n=b,r&&!r(u)){i.push(p(o,`Key '${u}' is not allowed`));continue}let y=t[u],d=e.r(T,o);if(d.ok)s[u]=y;else{let _=d.errors;for(let O of _)i.push(O);if(o.o)break}}if(i.length>0)if(n)J(o,i);else return{errors:i,data:void 0};return{errors:!1,data:s}})}}}function we(e,r){let n={};for(let[t,o]of Object.entries(r))n[t]=h(o);return{...c,e:"discriminated_union",y:!0,r(t,o){return f(this,t,o,()=>{if(!g(t))return o.s=-1,!1;let s=t[e];o.n=`${o.n}.${e}`;let i=n[s];if(!i){let u=w(s,!0);return{errors:[p(o,`Type '${u}' is not a valid discriminator`)],data:void 0}}o.n=`${o.n}|${s}|`;let a=i.r(t,o);return a.ok?(a.data[e]=s,{errors:!1,data:a.data}):{errors:a.errors,data:void 0}})}}}function Pe(e,{checkKey:r}={}){return G(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,o){let s=t&&!n.i&&!n.f,i=o?.unique,a=[],u=[],T=i?new Set:void 0,k=n.n,b=Array.isArray(r),y=-1;for(let d of e){y++;let _=b?r[y]:r,O=`[${y}]`,m=`${k}${O}`;if(n.n=m,o?.filter){let l=o.filter(d);if(typeof l=="boolean"){if(!l)continue}else if("errors"in l)if(s){a.push(l.errors);continue}else return{errors:l.errors,data:void 0};n.n=m}let R=_.r(d,n);if(n.n=m,R.ok&&T){let l=R.data,j=typeof i=="string";j?l=R.data[i]:typeof i=="function"&&(l=i(R.data)),T.has(l)?(j&&(n.n=`${k}${O}.${i}`),R={ok:!1,data:void 0,errors:[p(n,j?`Type '${_.t?.[i]?.e}' with value "${l}" is not unique`:typeof i=="function"?`Type '${_.e}' unique fn return with value "${l}" is not unique`:`${_.e} value is not unique`)]}):T.add(l)}if(R.ok)u.push(R.data);else if(s){a.push(R.errors);continue}else return{errors:R.errors,data:void 0}}if(a.length>0){if(u.length===0)return{errors:a.slice(0,5).flat(),data:void 0};J(n,a.flat())}return{errors:!1,data:u}}function Ee(e,r){return{...c,e:`${e.e}[]`,c:e,r(n,t){return f(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1,r):!1)}}}function Se(e){if(!e.c)throw new Error("Type does not have an item type");return e.c}function $e(e,{nonRecursive:r=!1}={}){if(r){if(!e.e.endsWith("[]"))throw new Error("rc_disable_loose_array: nonRecursive option can only be used with array types");return{...e,r(n,t){return f(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1):!1)}}}return{...e,r(n,t){let o=t.f;t.f=!0;let s=e.r(n,t);return t.f=o,s}}}function Ae(e,r){return{...c,c:e,e:`${e.e}[]`,r(n,t){return f(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!0,r):!1)}}}function Ke(e,r,n,t){return{...c,c:n,e:`${n.e}[]`,r(o,s){return f(this,o,s,()=>Array.isArray(o)?o.length===0?!0:P.call(this,o,n,s,t?.loose,{...t,filter(i){let a=e.r(i,s);return a.ok?r(a.data):{errors:a.errors}}}):!1)}}}function ve(e){return{...c,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return f(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:P.call(this,r,e,n))}}}function $(e,r,{noWarnings:n=!1}={}){let t={d:[],n:"",o:!1,s:0,i:n,a:!1,f:!1},o=r.r(e,t);return o.ok?{error:!1,ok:!0,data:o.data,value:o.data,warnings:t.d.length>0?t.d:!1}:{ok:!1,error:!0,errors:o.errors}}function Ie(e){return r=>$(r,e)}function Ne(e,r,n){let t=$(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.value,errors:!1,warnings:t.warnings}}function We(e){return H(e,null)}function H(e,r){return e.error?{value:r,errors:e.errors,warnings:!1}:{value:e.value,errors:!1,warnings:e.warnings}}var S=class extends Error{constructor(n){super(n.join(`
2
+ `));this.errors=n}};function qe(e){if(e.error)throw new S(e.errors);return e}function X(e,r){let n={d:[],n:"",o:!1,s:0,i:!1,a:!1,f:!1};return r.r(e,n).ok}function Ce(e){return r=>X(r,e)}function Be(e){return{...c,e:"recursive",r(r,n){return e().r(r,n)}}}function Y(e,r,n,t){let o=e.n,s=e.o,i=e.a,a=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.a=!0,e.i=!0);let u=r.r(n,e);return e.a=i,e.i=a,e.n=o,e.o=s,u}function ee(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...c,e:`transform_from_${e.e}`,r(o,s){let i=null;if(n){let u=Y(s,n,o,t);if(u.ok)return u;i=u.errors}let a=e.r(o,s);return a.ok?{ok:!0,data:r(a.data,e),errors:void 0}:{ok:!1,errors:[...i||[],...a.errors],data:void 0}}}}function Fe(e,r){return ee(e,r)}function Ue(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...c,e:`transform_from_${e.e}`,r(o,s){let i=null;if(n){let u=Y(s,n,o,t);if(u.ok)return u;i=u.errors}let a=e.r(o,s);if(a.ok){let u=r(a.data,e);return u.ok?{ok:!0,data:u.data,errors:void 0}:{ok:!1,errors:typeof u.errors=="string"?[p(s,u.errors)]:u.errors.map(T=>p(s,T)),data:void 0}}return{ok:!1,errors:[...i||[],...a.errors],data:void 0}}}}function w(e,r){let n=typeof e,t=(()=>{if(n==="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return n})();return r&&(t==="string"||t==="number"||t==="boolean")?`${t}(${e})`:t}function Ve(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function g(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function v(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function De(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${w(e,!0)}`]};let t=JSON.parse(e);return $(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${g(t)?t.message:""}`]}}}function N(e){return typeof e=="function"}0&&(module.exports={RcValidationError,defaultProps,getWarningOrErrorWithPath,isObject,parse,rc_any,rc_array,rc_array_filter_from_schema,rc_assert_is_valid,rc_boolean,rc_date,rc_default,rc_disable_loose_array,rc_discriminated_union,rc_enable_obj_strict,rc_get_array_item_type,rc_get_from_key_as_fallback,rc_get_obj_schema,rc_instanceof,rc_is_valid,rc_literals,rc_loose_array,rc_loose_parse,rc_loose_record,rc_narrow,rc_null,rc_nullish_default,rc_number,rc_obj_builder,rc_obj_extends,rc_obj_merge,rc_obj_omit,rc_obj_pick,rc_obj_strict,rc_object,rc_parse,rc_parse_json,rc_parser,rc_record,rc_recursive,rc_string,rc_transform,rc_tuple,rc_undefined,rc_union,rc_unknown,rc_unsafe_transform,rc_unwrap,rc_unwrap_or,rc_unwrap_or_null,rc_validator,snakeCase});
@@ -4,10 +4,7 @@
4
4
  */
5
5
  declare function rc_get_from_key_as_fallback<T extends RcType<any>>(fallbackKey: string, type: T): RcType<RcInferType<T>>;
6
6
  type RcObject = {
7
- [key: string]: RcBase<any, any> | RcObject | [
8
- 'optional' | 'nullish_or' | 'null_or' | 'array' | 'loose_array',
9
- RcObject
10
- ];
7
+ [key: string]: RcBase<any, any> | RcObject;
11
8
  };
12
9
  type TypeOfObjectType<T extends RcObject> = Flatten<AddQuestionMarks<{
13
10
  [K in keyof T]: T[K] extends RcType<infer U> ? RequiredKey<U> : T[K] extends RcOptionalKeyType<infer W> ? W : T[K] extends RcObject ? RequiredKey<TypeOfObjectType<T[K]>> : never;
@@ -51,7 +48,7 @@ type StrictObjTypeToRcType<T> = {
51
48
  };
52
49
  type StricTypeToRcType<T> = [
53
50
  T
54
- ] extends [Record<string, any>[]] ? RcTypeWithSquemaEqualTo<T> | ['array' | 'loose_array', StrictObjTypeToRcType<T[number]>] : [T] extends [any[]] ? RcTypeWithSquemaEqualTo<T> : [T] extends [Record<string, any>] ? StrictObjTypeToRcType<T> | RcTypeWithSquemaEqualTo<T> : [T] extends [Record<string, any> | null] ? [
51
+ ] extends [any[]] ? RcTypeWithSquemaEqualTo<T> : [T] extends [Record<string, any>] ? StrictObjTypeToRcType<T> | RcTypeWithSquemaEqualTo<T> : [T] extends [Record<string, any> | null] ? [
55
52
  'null_or',
56
53
  StrictObjTypeToRcType<T>
57
54
  ] | RcTypeWithSquemaEqualTo<T> : [T] extends [Record<string, any> | undefined] ? [
@@ -88,7 +85,15 @@ type ParseResultCtx = {
88
85
  noWarnings_: boolean;
89
86
  noLooseArray_: boolean;
90
87
  };
91
- type InternalParseResult<T> = [success: true, data: T] | [success: false, errors: ErrorWithPath[]];
88
+ type InternalParseResult<T> = {
89
+ ok: true;
90
+ data: T;
91
+ errors: undefined;
92
+ } | {
93
+ ok: false;
94
+ errors: ErrorWithPath[];
95
+ data: undefined;
96
+ };
92
97
  type WithFallback<T> = (fallback: T | (() => T)) => RcType<T>;
93
98
  type RcOptionalKeyType<T> = RcBase<T, true>;
94
99
  type RcType<T> = RcBase<T, false>;
@@ -154,6 +159,9 @@ declare function rc_loose_record<V>(valueType: RcType<V>, { checkKey }?: {
154
159
  }): RcType<Record<string, V>>;
155
160
  type ArrayOptions<T extends RcType<any>> = {
156
161
  unique?: RcInferType<T> extends Record<string, any> ? keyof RcInferType<T> | ((parsedItem: RcInferType<T>) => any) : boolean | ((parsedItem: RcInferType<T>) => any);
162
+ filter?: (item: RcInferType<T>) => boolean | {
163
+ errors: ErrorWithPath[];
164
+ };
157
165
  };
158
166
  declare function rc_array<T extends RcType<any>>(type: T, options?: ArrayOptions<T>): RcType<RcInferType<T>[]>;
159
167
  declare function rc_get_array_item_type<T>(type: RcType<T[]>): RcType<T>;
@@ -162,6 +170,9 @@ declare function rc_disable_loose_array<T extends RcType<any>>(type: T, { nonRec
162
170
  }): T;
163
171
  /** instead of returning a general error, rejects invalid array items and returns warnings for these items */
164
172
  declare function rc_loose_array<T extends RcType<any>>(type: T, options?: ArrayOptions<T>): RcType<RcInferType<T>[]>;
173
+ declare function rc_array_filter_from_schema<B, T>(filterSchema: RcType<B>, filterFn: (item: B) => boolean, type: RcType<T>, options?: Omit<ArrayOptions<RcType<any>>, 'filter'> & {
174
+ loose?: boolean;
175
+ }): RcType<T[]>;
165
176
  type MapTupleToTypes<T extends readonly [...any[]]> = {
166
177
  -readonly [K in keyof T]: RcInferType<T[K]>;
167
178
  };
@@ -219,6 +230,7 @@ type TransformOptions<T> = {
219
230
  declare function rc_transform<Input, Transformed>(type: RcType<Input>, transform: (input: Input, inputSchema: RcType<Input>) => Transformed, { outputSchema, disableStrictOutputSchema, }?: TransformOptions<Transformed>): RcType<Transformed>;
220
231
  /** Create transforms which result can be validated with the same schema */
221
232
  declare function rc_narrow<Input, Narrowed extends Input>(type: RcType<Input>, narrow: (input: Input, inputSchema: RcType<Input>) => Narrowed): RcType<Narrowed>;
233
+ /** Allows the transform function to return a error if transformation is invalid */
222
234
  declare function rc_unsafe_transform<Input, Transformed>(type: RcType<Input>, transform: (input: Input, inputSchema: RcType<Input>) => {
223
235
  ok: true;
224
236
  data: Transformed;
@@ -239,4 +251,4 @@ type Prettify<T> = T extends Record<string, any> ? {
239
251
  } : T;
240
252
  type RcPrettyInferType<T extends RcType<any>> = Prettify<RcInferType<T>>;
241
253
 
242
- export { RcBase, RcInferType, RcOptionalKeyType, RcParseResult, RcParser, RcPrettyInferType, RcType, RcValidationError, defaultProps, getWarningOrErrorWithPath, parse, rc_any, rc_array, rc_assert_is_valid, rc_boolean, rc_date, rc_default, rc_disable_loose_array, rc_discriminated_union, rc_enable_obj_strict, rc_get_array_item_type, rc_get_from_key_as_fallback, rc_get_obj_shape as rc_get_obj_schema, rc_instanceof, rc_is_valid, rc_literals, rc_loose_array, rc_loose_parse, rc_loose_record, rc_narrow, rc_null, rc_nullish_default, rc_number, rc_obj_builder, rc_obj_extends, rc_obj_merge, rc_obj_omit, rc_obj_pick, rc_obj_strict, rc_object, rc_parse, rc_parse_json, rc_parser, rc_record, rc_recursive, rc_string, rc_transform, rc_tuple, rc_undefined, rc_union, rc_unknown, rc_unsafe_transform, rc_unwrap, rc_unwrap_or, rc_unwrap_or_null, rc_validator };
254
+ export { RcBase, RcInferType, RcOptionalKeyType, RcParseResult, RcParser, RcPrettyInferType, RcType, RcValidationError, defaultProps, getWarningOrErrorWithPath, parse, rc_any, rc_array, rc_array_filter_from_schema, rc_assert_is_valid, rc_boolean, rc_date, rc_default, rc_disable_loose_array, rc_discriminated_union, rc_enable_obj_strict, rc_get_array_item_type, rc_get_from_key_as_fallback, rc_get_obj_shape as rc_get_obj_schema, rc_instanceof, rc_is_valid, rc_literals, rc_loose_array, rc_loose_parse, rc_loose_record, rc_narrow, rc_null, rc_nullish_default, rc_number, rc_obj_builder, rc_obj_extends, rc_obj_merge, rc_obj_omit, rc_obj_pick, rc_obj_strict, rc_object, rc_parse, rc_parse_json, rc_parser, rc_record, rc_recursive, rc_string, rc_transform, rc_tuple, rc_undefined, rc_union, rc_unknown, rc_unsafe_transform, rc_unwrap, rc_unwrap_or, rc_unwrap_or_null, rc_validator };
package/dist/runcheck.js CHANGED
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-65CFL2UP.js";export{N as RcValidationError,m as defaultProps,k as getWarningOrErrorWithPath,W as isObject,l as parse,p as rc_any,D as rc_array,V as rc_assert_is_valid,r as rc_boolean,u as rc_date,y as rc_default,F as rc_disable_loose_array,B as rc_discriminated_union,f as rc_enable_obj_strict,E as rc_get_array_item_type,a as rc_get_from_key_as_fallback,d as rc_get_obj_schema,v as rc_instanceof,P as rc_is_valid,w as rc_literals,G as rc_loose_array,K as rc_loose_parse,C as rc_loose_record,T as rc_narrow,o as rc_null,z as rc_nullish_default,t as rc_number,j as rc_obj_builder,c as rc_obj_extends,g as rc_obj_merge,i as rc_obj_omit,h as rc_obj_pick,e as rc_obj_strict,b as rc_object,I as rc_parse,Y as rc_parse_json,J as rc_parser,A as rc_record,R as rc_recursive,s as rc_string,S as rc_transform,H as rc_tuple,n as rc_undefined,x as rc_union,q as rc_unknown,U as rc_unsafe_transform,O as rc_unwrap,M as rc_unwrap_or,L as rc_unwrap_or_null,Q as rc_validator,X as snakeCase};
1
+ import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"./chunk-AWFWSVON.js";export{O as RcValidationError,m as defaultProps,k as getWarningOrErrorWithPath,X as isObject,l as parse,p as rc_any,D as rc_array,H as rc_array_filter_from_schema,W as rc_assert_is_valid,r as rc_boolean,u as rc_date,y as rc_default,F as rc_disable_loose_array,B as rc_discriminated_union,f as rc_enable_obj_strict,E as rc_get_array_item_type,a as rc_get_from_key_as_fallback,d as rc_get_obj_schema,v as rc_instanceof,Q as rc_is_valid,w as rc_literals,G as rc_loose_array,L as rc_loose_parse,C as rc_loose_record,U as rc_narrow,o as rc_null,z as rc_nullish_default,t as rc_number,j as rc_obj_builder,c as rc_obj_extends,g as rc_obj_merge,i as rc_obj_omit,h as rc_obj_pick,e as rc_obj_strict,b as rc_object,J as rc_parse,Z as rc_parse_json,K as rc_parser,A as rc_record,S as rc_recursive,s as rc_string,T as rc_transform,I as rc_tuple,n as rc_undefined,x as rc_union,q as rc_unknown,V as rc_unsafe_transform,P as rc_unwrap,N as rc_unwrap_or,M as rc_unwrap_or_null,R as rc_validator,Y as snakeCase};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "runcheck",
3
3
  "description": "A tiny (less than 2 KiB Gzipped) and treeshakable! lib for typescript runtime type checks with autofix support",
4
- "version": "0.54.1",
4
+ "version": "0.55.0",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "dist"
@@ -46,7 +46,6 @@
46
46
  "tsm": "^2.3.0",
47
47
  "tsup": "^6.7.0",
48
48
  "typescript": "^5.0.3",
49
- "v8-profiler-next": "^1.9.0",
50
49
  "vite": "^4.3.9",
51
50
  "vitest": "1.0.0-beta.3",
52
51
  "zod": "^3.22.4"
@@ -56,12 +55,12 @@
56
55
  "test:run": "vitest run",
57
56
  "lint": "pnpm tsc && pnpm eslint",
58
57
  "tsc": "tsc -p tsconfig.prod.json",
59
- "benchmark": "tsm benchmarks/mitataBench.ts",
58
+ "benchmark": "tsm --no-warnings benchmarks/bench.ts",
60
59
  "benchmark:generate-profile": "tsm benchmarks/generateProfiles.ts",
61
60
  "eslint": "CI=true eslint --color --ext .jsx,.js,.ts,.tsx src/ tests/",
62
61
  "build": "pnpm test:run && pnpm lint && pnpm build:no-test",
63
62
  "build:no-test": "tsup --minify --dts",
64
63
  "build-test": "tsup --config tsup.test.config.ts",
65
- "pre-publish": "./scripts/check-if-is-sync.sh && pnpm build "
64
+ "pre-publish": "./scripts/check-if-is-sync.sh && pnpm build"
66
65
  }
67
66
  }
@@ -1,2 +0,0 @@
1
- function z(e,r){return{...r,y:e}}function L(e){return k(e)&&"__rc_type"in e}function O(e){if(L(e))return e;if(k(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=O(t);return _(r)}else if(Array.isArray(e)){let[r,n]=e;switch(r){case"optional":return O(n).optional();case"nullish_or":return O(n).orNullish();case"null_or":return O(n).orNull();case"array":return W(O(n));case"loose_array":return q(O(n))}}throw new Error(`invalid schema: ${e}`)}function _(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,o]of Object.entries(e))n[t]=O(o);return{...l,t:n,e:"object",f:!0,u:Object.entries(n),r(t,o){return y(this,t,o,()=>{if(!k(t))return o.s=-1,!1;let s=this.e==="strict_obj"||o.a?new Set(Object.keys(t)):void 0;if(s&&s.size>this.u.length){o.s=-1;let p=[];if(o.o)return{data:void 0,errors:[d(o,`Expected strict object with ${this.u.length} keys but got ${s.size}`)]};for(let[f]of this.u)s.has(f)?s.delete(f):p.push(d(o,`Key '${f}' is missing`));for(let f of s)p.push(d(o,`Key '${f}' is not defined in the object shape`));return{data:void 0,errors:p}}let c={},i=[],u=o.n,T=-1;for(let[p,f]of this.u){let h=p;T+=1;let b=`.${p}`,g=`${u}${b}`;o.n=g;let R=t[p],j=p;if(R===void 0&&f.y&&(R=t[f.y],j=f.y),R===void 0&&r==="snake_case"){let x=C(p);R=t[x],j=x}s?.delete(j);let[S,m]=f.r(R,o);if(S)c[h]=m;else{for(let x of m)o.n=g,i.push(x);if(o.o){o.s=T;break}}}if(s&&s.size>0)for(let p of s)o.n=u,i.push(d(o,`Key '${p}' is not defined in the object shape`));return i.length>0?{errors:i,data:void 0}:this.b?{errors:!1,data:{...t,...c}}:{errors:!1,data:c}})}}}function Q(e,r){return{..._(e,r),e:"extends_object",b:!0}}function J(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function Z(e,r){return{..._(e,r),e:"strict_obj"}}function G(e,{nonRecursive:r}={}){if(r){if(!e.t)throw new Error("rc_enable_obj_strict: nonRecursive option can only be used on object types");return{...e,e:"strict_obj"}}return{...e,r(n,t){let o=t.a;t.a=!0;let a=e.r(n,t);return t.a=o,a}}}function H(...e){let r={};for(let n of e)Object.assign(r,n.t);return _(r)}function X(e,r){let n={};if(!e.t)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let o=e.t[t];o&&(n[t]=o)}return _(n)}function Y(e,r){let n={};if(!e.t)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.t))r.includes(t)||(n[t]=e.t[t]);return _(n)}function ee(){return(e,r)=>_(e,r)}function re(e){return{...this,g:e}}function d(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function K(e,r){e.T.push(r.startsWith("$")?r:d(e,r))}function U(e,r){r.forEach(n=>K(e,n))}function y(e,r,n,t){if(e.d&&r===void 0)return[!0,r];if(e.p&&r==null)return[!0,r];if(e.R&&r===null)return[!0,r];let o=t();if(o&&(o===!0||!o.errors)){let a=o===!0?r:o.data;return e.c&&!e.c(a)?[!1,[d(n,`Predicate failed for type '${e.e}'`)]]:[!0,a]}if(!n.i){let a=e.g;if(a!==void 0)return K(n,`Fallback used, errors -> ${B(o,n,e,r)}`),[!0,N(a)?a():a];if(e.j&&e.h){let s=e.h(r);if(s)return e.c&&!e.c(s.fixed)?[!1,[d(n,`Predicate failed for autofix in type '${e.e}'`)]]:(K(n,`Autofixed from error "${B(o,n,e,r)}"`),[!0,s.fixed])}}return[!1,o?o.errors:[d(n,D(e,r))]]}function B(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):D(n,t)}function ne(e){return{...this,j:!0,h:e}}function te(e){return{...this,c:e}}function F(){return{...this,d:!0,e:`${this.e}_optional`}}function D(e,r){return`Type '${P(r,!!e.O)}' is not assignable to '${e.e}'`}function oe(){return{...this,R:!0,e:`${this.e}_or_null`}}function se(){return{...this,p:!0,e:`${this.e}_or_nullish`}}var l={__rc_type:void 0,withFallback:re,where:te,optional:F,optionalKey:F,orNullish:se,withAutofix:ne,orNull:oe,_:void 0,g:void 0,c:void 0,d:!1,R:!1,p:!1,j:!1,O:!1,y:void 0,h:void 0,t:void 0,f:!1,b:!1,u:[]},ge={...l,r(e,r){return y(this,e,r,()=>e===void 0)},e:"undefined"},je={...l,r(e,r){return y(this,e,r,()=>e===null)},e:"null"},Oe={...l,r(e,r){return y(this,e,r,()=>!0)},e:"any"},ke={...l,r(e,r){return y(this,e,r,()=>!0)},e:"unknown"},me={...l,r(e,r){return y(this,e,r,()=>typeof e=="boolean")},e:"boolean"},xe={...l,r(e,r){return y(this,e,r,()=>typeof e=="string")},e:"string"},we={...l,r(e,r){return y(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},Pe={...l,r(e,r){return y(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function Ee(e){return{...l,r(r,n){return y(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function Se(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...l,r(r,n){return y(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},O:!0,e:e.length==1?P(e[0],!0):e.map(r=>P(r,!0)).join(" | ")}}var V=1;function $e(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...l,r(r,n){return y(this,r,n,()=>{let t=n.n,o=[],a=0,s=!1,c=[],i=0;for(let u of e){i+=1,u.f&&(n.n=`${t}|union ${i}|`);let T=n.o;n.o=!0,n.s=0;let[p,f]=u.r(r,n),h=n.s;if(n.o=T,n.s=0,p)return!0;u.f&&h!==-1?h>0?c.push(...f):(a<V&&o.push(...f),a+=1):s=!0}return n.n=t,c.length>0||o.length>0?((a>V||s)&&o.push(d(n,"not matches any other union member")),{errors:[...c,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function Ae(e,r){return{...e,d:!1,p:!1,R:!1,r(t,o){return y(this,t,o,()=>{if(t===void 0)return n();let[a,s]=e.r(t,o);return a?s===void 0?n():{data:s,errors:!1}:{data:void 0,errors:s}})},e:`${e.e}_default`};function n(){return{data:N(r)?r():r,errors:!1}}}function Ke(e,r){return{...e,d:!1,p:!1,R:!1,r(t,o){return y(this,t,o,()=>{if(t==null)return n();let[a,s]=e.r(t,o);return a?s==null?n():{data:s,errors:!1}:{data:void 0,errors:s}})},e:`${e.e}_nullish_default`};function n(){return{data:N(r)?r():r,errors:!1}}}function ae(e,{checkKey:r,looseCheck:n}={}){return{...l,e:`record<string, ${e.e}>`,r(t,o){return y(this,t,o,()=>{if(!k(t))return!1;let a={},s=[],c=o.n;for(let[i,u]of Object.entries(t)){let T=`.${i}`,p=`${c}${T}`;if(o.n=p,r&&!r(i)){s.push(d(o,`Key '${i}' is not allowed`));continue}let f=t[i],[h,b]=e.r(u,o);if(h)a[i]=f;else{let g=b;for(let R of g)s.push(R);if(o.o)break}}if(s.length>0)if(n)U(o,s);else return{errors:s,data:void 0};return{errors:!1,data:a}})}}}function ve(e,r){let n={};for(let[t,o]of Object.entries(r))n[t]=_(o);return{...l,e:"discriminated_union",f:!0,r(t,o){return y(this,t,o,()=>{if(!k(t))return o.s=-1,!1;let a=t[e];o.n=`${o.n}.${e}`;let s=n[a];if(!s){let u=P(a,!0);return{errors:[d(o,`Type '${u}' is not a valid discriminator`)],data:void 0}}o.n=`${o.n}|${a}|`;let[c,i]=s.r(t,o);return c?(i[e]=a,{errors:!1,data:i}):{errors:i,data:void 0}})}}}function Ie(e,{checkKey:r}={}){return ae(e,{checkKey:r,looseCheck:!0})}function E(e,r,n,t=!1,o){let a=t&&!n.i&&!n.l,s=o?.unique,c=[],i=[],u=s?new Set:void 0,T=n.n,p=Array.isArray(r),f=-1;for(let h of e){f++;let b=p?r[f]:r,g=`[${f}]`,R=`${T}${g}`;n.n=R;let j=b.r(h,n),[S,m]=j;if(n.n=R,S&&u){let w=m,A=typeof s=="string";A?w=m[s]:typeof s=="function"&&(w=s(m)),u.has(w)?(A&&(n.n=`${T}${g}.${s}`),j=[!1,[d(n,A?`Type '${b.t?.[s]?.e}' with value "${w}" is not unique`:typeof s=="function"?`Type '${b.e}' unique fn return with value "${w}" is not unique`:`${b.e} value is not unique`)]]):u.add(w)}let[x,$]=j;if(x)i.push($);else if(a){c.push($);continue}else return{errors:$,data:void 0}}if(c.length>0){if(i.length===0)return{errors:c.slice(0,5).flat(),data:void 0};U(n,c.flat())}return{errors:!1,data:i}}function W(e,r){return{...l,e:`${e.e}[]`,_:e,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:E.call(this,n,e,t,!1,r):!1)}}}function Ne(e){if(!e._)throw new Error("Type does not have an item type");return e._}function We(e,{nonRecursive:r=!1}={}){if(r){if(!e.e.endsWith("[]"))throw new Error("rc_disable_loose_array: nonRecursive option can only be used with array types");return{...e,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:E.call(this,n,e,t,!1):!1)}}}return{...e,r(n,t){let o=t.l;t.l=!0;let a=e.r(n,t);return t.l=o,a}}}function q(e,r){return{...l,_:e,e:`${e.e}[]`,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:E.call(this,n,e,t,!0,r):!1)}}}function qe(e){return{...l,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return y(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:E.call(this,r,e,n))}}}function I(e,r,{noWarnings:n=!1}={}){let t={T:[],n:"",o:!1,s:0,i:n,a:!1,l:!1},[o,a]=r.r(e,t);return o?{error:!1,ok:!0,data:a,value:a,warnings:t.T.length>0?t.T:!1}:{ok:!1,error:!0,errors:a}}function Ce(e){return r=>I(r,e)}function Be(e,r,n){let t=I(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.value,errors:!1,warnings:t.warnings}}function Fe(e){return ie(e,null)}function ie(e,r){return e.error?{value:r,errors:e.errors,warnings:!1}:{value:e.value,errors:!1,warnings:e.warnings}}var v=class extends Error{constructor(n){super(n.join(`
2
- `));this.errors=n}};function Ve(e){if(e.error)throw new v(e.errors);return e}function ue(e,r){let n={T:[],n:"",o:!1,s:0,i:!1,a:!1,l:!1};return!!r.r(e,n)[0]}function Ue(e){return r=>ue(r,e)}function De(e){return{...l,e:"recursive",r(r,n){return e().r(r,n)}}}function M(e,r,n,t){let o=e.n,a=e.o,s=e.a,c=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.a=!0,e.i=!0);let i=r.r(n,e);return e.a=s,e.i=c,e.n=o,e.o=a,i}function ce(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...l,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=M(a,n,o,t);if(u)return[!0,T];s=T}let[c,i]=e.r(o,a);return c?[!0,r(i,e)]:[!1,[...s||[],...i]]}}}function Me(e,r){return ce(e,r)}function ze(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...l,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=M(a,n,o,t);if(u)return[!0,T];s=T}let[c,i]=e.r(o,a);if(c){let u=r(i,e);return u.ok?[!0,u.data]:[!1,typeof u.errors=="string"?[d(a,u.errors)]:u.errors.map(T=>d(a,T))]}return[!1,[...s||[],...i]]}}}function P(e,r){let n=typeof e,t=(()=>{if(n==="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return n})();return r&&(t==="string"||t==="number"||t==="boolean")?`${t}(${e})`:t}function Le(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function k(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function C(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Qe(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${P(e,!0)}`]};let t=JSON.parse(e);return I(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${k(t)?t.message:""}`]}}}function N(e){return typeof e=="function"}export{z as a,_ as b,Q as c,J as d,Z as e,G as f,H as g,X as h,Y as i,ee as j,d as k,y as l,l as m,ge as n,je as o,Oe as p,ke as q,me as r,xe as s,we as t,Pe as u,Ee as v,Se as w,$e as x,Ae as y,Ke as z,ae as A,ve as B,Ie as C,W as D,Ne as E,We as F,q as G,qe as H,I,Ce as J,Be as K,Fe as L,ie as M,v as N,Ve as O,ue as P,Ue as Q,De as R,ce as S,Me as T,ze as U,Le as V,k as W,C as X,Qe as Y};