runcheck 0.49.2 → 0.50.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
@@ -450,13 +450,15 @@ If you need to use default in nullish values you can use `rc_nullish_default`.
450
450
 
451
451
  # Advanced object types
452
452
 
453
- ## `rc_rename_from_key`
453
+ ## `rc_get_from_key_as_fallback`
454
454
 
455
455
  Allows to rename a key in a object. Example:
456
456
 
457
457
  ```ts
458
458
  const shape = rc_object({
459
- name: rc_rename_from_key('oldName', rc_string), // oldName will be renamed to name
459
+ // name will use the value of oldName if name is not present in input
460
+ // which will rename `oldName` to `name` in the result
461
+ name: rc_get_from_key_as_fallback('oldName', rc_string),
460
462
  age: rc_number,
461
463
  isCool: rc_boolean,
462
464
  })
@@ -1 +1 @@
1
- import{r as f,s as t,t as o}from"./chunk-MU32NTS5.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-45NWFF45.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 +1 @@
1
- function F(e,r){return{...r,y:e}}function D(e){return x(e)&&"__rc_type"in e}function N(e){if(D(e))return e;if(x(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=N(t);return b(r)}throw new Error(`invalid schema: ${e}`)}function b(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,o]of Object.entries(e))n[t]=N(o);return{...f,t:n,e:"object",_:!0,u:Object.entries(n),r(t,o){return y(this,t,o,()=>{if(!x(t))return o.a=-1,!1;let s=this.e==="strict_obj"||o.s?new Set(Object.keys(t)):void 0;if(s&&s.size>this.u.length){o.a=-1;let d=[];if(o.o)return{data:void 0,errors:[p(o,`Expected strict object with ${this.u.length} keys but got ${s.size}`)]};for(let[l]of this.u)s.has(l)?s.delete(l):d.push(p(o,`Key '${l}' is missing`));for(let l of s)d.push(p(o,`Key '${l}' is not defined in the object shape`));return{data:void 0,errors:d}}let c={},i=[],u=o.n,T=-1;for(let[d,l]of this.u){let h=d;T+=1;let _=`.${d}`,j=`${u}${_}`;o.n=j;let R=t[d],g=d;if(R===void 0&&l.y&&(R=t[l.y],g=l.y),R===void 0&&r==="snake_case"){let O=W(d);R=t[O],g=O}s?.delete(g);let[E,k]=l.r(R,o);if(E)c[h]=k;else{for(let O of k)o.n=j,i.push(O);if(o.o){o.a=T;break}}}if(s&&s.size>0)for(let d of s)o.n=u,i.push(p(o,`Key '${d}' 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 M(e,r){return{...b(e,r),e:"extends_object",b:!0}}function z(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function L(e,r){return{...b(e,r),e:"strict_obj"}}function Q(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.s;t.s=!0;let a=e.r(n,t);return t.s=o,a}}}function J(...e){let r={};for(let n of e)Object.assign(r,n.t);return b(r)}function Z(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 G(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 H(){return(e,r)=>b(e,r)}function X(e){return{...this,g:e}}function p(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function S(e,r){e.l.push(r.startsWith("$")?r:p(e,r))}function B(e,r){r.forEach(n=>S(e,n))}function y(e,r,n,t){if(e.T&&r===void 0)return[!0,r];if(e.d&&r==null)return[!0,r];if(e.p&&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,[p(n,`Predicate failed for type '${e.e}'`)]]:[!0,a]}if(!n.i){let a=e.g;if(a!==void 0)return S(n,`Fallback used, errors -> ${v(o,n,e,r)}`),[!0,I(a)?a():a];if(e.j&&e.h){let s=e.h(r);if(s)return e.c&&!e.c(s.fixed)?[!1,[p(n,`Predicate failed for autofix in type '${e.e}'`)]]:(S(n,`Autofixed from error "${v(o,n,e,r)}"`),[!0,s.fixed])}}return[!1,o?o.errors:[p(n,U(e,r))]]}function v(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):U(n,t)}function Y(e){return{...this,j:!0,h:e}}function ee(e){return{...this,c:e}}function q(){return{...this,T:!0}}function U(e,r){return`Type '${w(r,!!e.k)}' is not assignable to '${e.e}'`}function re(){return{...this,p:!0,e:`${this.e}_or_null`}}function ne(){return{...this,d:!0,e:`${this.e}_or_nullish`}}var f={__rc_type:void 0,withFallback:X,where:ee,optional:q,optionalKey:q,orNullish:ne,withAutofix:Y,orNull:re,R:void 0,g:void 0,c:void 0,T:!1,p:!1,d:!1,j:!1,k:!1,y:void 0,h:void 0,t:void 0,_:!1,b:!1,u:[]},Te={...f,r(e,r){return y(this,e,r,()=>e===void 0)},e:"undefined"},de={...f,r(e,r){return y(this,e,r,()=>e===null)},e:"null"},pe={...f,r(e,r){return y(this,e,r,()=>!0)},e:"any"},Re={...f,r(e,r){return y(this,e,r,()=>!0)},e:"unknown"},he={...f,r(e,r){return y(this,e,r,()=>typeof e=="boolean")},e:"boolean"},_e={...f,r(e,r){return y(this,e,r,()=>typeof e=="string")},e:"string"},be={...f,r(e,r){return y(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},je={...f,r(e,r){return y(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ge(e){return{...f,r(r,n){return y(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function ke(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...f,r(r,n){return y(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},k:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var C=1;function Oe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...f,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._&&(n.n=`${t}|union ${i}|`);let T=n.o;n.o=!0,n.a=0;let[d,l]=u.r(r,n),h=n.a;if(n.o=T,n.a=0,d)return!0;u._&&h!==-1?h>0?c.push(...l):(a<C&&o.push(...l),a+=1):s=!0}return n.n=t,c.length>0||o.length>0?((a>C||s)&&o.push(p(n,"not matches any other union member")),{errors:[...c,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function me(e,r){return{...e,T:!1,d:!1,p:!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:I(r)?r():r,errors:!1}}}function xe(e,r){return{...e,T:!1,d:!1,p:!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:I(r)?r():r,errors:!1}}}function te(e,{checkKey:r,looseCheck:n}={}){return{...f,e:`record<string, ${e.e}>`,r(t,o){return y(this,t,o,()=>{if(!x(t))return!1;let a={},s=[],c=o.n;for(let[i,u]of Object.entries(t)){let T=`.${i}`,d=`${c}${T}`;if(o.n=d,r&&!r(i)){s.push(p(o,`Key '${i}' is not allowed`));continue}let l=t[i],[h,_]=e.r(u,o);if(h)a[i]=l;else{let j=_;for(let R of j)s.push(R);if(o.o)break}}if(s.length>0)if(n)B(o,s);else return{errors:s,data:void 0};return{errors:!1,data:a}})}}}function we(e,{checkKey:r}={}){return te(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,o){let a=t&&!n.i&&!n.f,s=o?.unique,c=[],i=[],u=s?new Set:void 0,T=n.n,d=Array.isArray(r),l=-1;for(let h of e){l++;let _=d?r[l]:r,j=`[${l}]`,R=`${T}${j}`;n.n=R;let g=_.r(h,n),[E,k]=g;if(n.n=R,E&&u){let m=k,A=typeof s=="string";A?m=k[s]:typeof s=="function"&&(m=s(k)),u.has(m)?(A&&(n.n=`${T}${j}.${s}`),g=[!1,[p(n,A?`Type '${_.t?.[s]?.e}' with value "${m}" is not unique`:typeof s=="function"?`Type '${_.e}' unique fn return with value "${m}" is not unique`:`${_.e} value is not unique`)]]):u.add(m)}let[O,$]=g;if(O)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};B(n,c.flat())}return{errors:!1,data:i}}function Pe(e,r){return{...f,e:`${e.e}[]`,R:e,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1,r):!1)}}}function Ee(e){if(!e.R)throw new Error("Type does not have an item type");return e.R}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 y(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 a=e.r(n,t);return t.f=o,a}}}function Ae(e,r){return{...f,R:e,e:`${e.e}[]`,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!0,r):!1)}}}function Se(e){return{...f,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return y(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={l:[],n:"",o:!1,a:0,i:n,s:!1,f:!1},[o,a]=r.r(e,t);return o?{error:!1,ok:!0,data:a,warnings:t.l.length>0?t.l:!1}:{ok:!1,error:!0,errors:a}}function Ke(e){return r=>K(r,e)}function Ie(e,r,n){let t=K(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function oe(e,r){let n={l:[],n:"",o:!1,a:0,i:!1,s:!1,f:!1};return!!r.r(e,n)[0]}function Ne(e){return r=>oe(r,e)}function We(e){return{...f,e:"recursive",r(r,n){return e().r(r,n)}}}function V(e,r,n,t){let o=e.n,a=e.o,s=e.s,c=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.s=!0,e.i=!0);let i=r.r(n,e);return e.s=s,e.i=c,e.n=o,e.o=a,i}function se(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...f,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=V(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 se(e,r)}function qe(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...f,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=V(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"?[p(a,u.errors)]:u.errors.map(T=>p(a,T))]}return[!1,[...s||[],...i]]}}}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 Ce(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function x(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function W(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Be(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: ${x(t)?t.message:""}`]}}}function I(e){return typeof e=="function"}export{F as a,b,M as c,z as d,L as e,Q as f,J as g,Z as h,G as i,H as j,p as k,y as l,f as m,Te as n,de as o,pe as p,Re as q,he as r,_e as s,be as t,je as u,ge as v,ke as w,Oe as x,me as y,xe as z,te as A,we as B,Pe as C,Ee as D,$e as E,Ae as F,Se as G,K as H,Ke as I,Ie as J,oe as K,Ne as L,We as M,se as N,ve as O,qe as P,Ce as Q,x as R,W as S,Be as T};
1
+ function F(e,r){return{...r,y:e}}function D(e){return x(e)&&"__rc_type"in e}function N(e){if(D(e))return e;if(x(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=N(t);return b(r)}throw new Error(`invalid schema: ${e}`)}function b(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,o]of Object.entries(e))n[t]=N(o);return{...f,t:n,e:"object",_:!0,u:Object.entries(n),r(t,o){return y(this,t,o,()=>{if(!x(t))return o.a=-1,!1;let s=this.e==="strict_obj"||o.s?new Set(Object.keys(t)):void 0;if(s&&s.size>this.u.length){o.a=-1;let d=[];if(o.o)return{data:void 0,errors:[p(o,`Expected strict object with ${this.u.length} keys but got ${s.size}`)]};for(let[l]of this.u)s.has(l)?s.delete(l):d.push(p(o,`Key '${l}' is missing`));for(let l of s)d.push(p(o,`Key '${l}' is not defined in the object shape`));return{data:void 0,errors:d}}let c={},i=[],u=o.n,T=-1;for(let[d,l]of this.u){let _=d;T+=1;let h=`.${d}`,j=`${u}${h}`;o.n=j;let R=t[d],g=d;if(R===void 0&&l.y&&(R=t[l.y],g=l.y),R===void 0&&r==="snake_case"){let O=W(d);R=t[O],g=O}s?.delete(g);let[E,k]=l.r(R,o);if(E)c[_]=k;else{for(let O of k)o.n=j,i.push(O);if(o.o){o.a=T;break}}}if(s&&s.size>0)for(let d of s)o.n=u,i.push(p(o,`Key '${d}' 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 M(e,r){return{...b(e,r),e:"extends_object",b:!0}}function z(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function L(e,r){return{...b(e,r),e:"strict_obj"}}function Q(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.s;t.s=!0;let a=e.r(n,t);return t.s=o,a}}}function J(...e){let r={};for(let n of e)Object.assign(r,n.t);return b(r)}function Z(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 G(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 H(){return(e,r)=>b(e,r)}function X(e){return{...this,g:e}}function p(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function S(e,r){e.l.push(r.startsWith("$")?r:p(e,r))}function B(e,r){r.forEach(n=>S(e,n))}function y(e,r,n,t){if(e.T&&r===void 0)return[!0,r];if(e.d&&r==null)return[!0,r];if(e.p&&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,[p(n,`Predicate failed for type '${e.e}'`)]]:[!0,a]}if(!n.i){let a=e.g;if(a!==void 0)return S(n,`Fallback used, errors -> ${v(o,n,e,r)}`),[!0,I(a)?a():a];if(e.j&&e.h){let s=e.h(r);if(s)return e.c&&!e.c(s.fixed)?[!1,[p(n,`Predicate failed for autofix in type '${e.e}'`)]]:(S(n,`Autofixed from error "${v(o,n,e,r)}"`),[!0,s.fixed])}}return[!1,o?o.errors:[p(n,U(e,r))]]}function v(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):U(n,t)}function Y(e){return{...this,j:!0,h:e}}function ee(e){return{...this,c:e}}function q(){return{...this,T:!0}}function U(e,r){return`Type '${w(r,!!e.k)}' is not assignable to '${e.e}'`}function re(){return{...this,p:!0,e:`${this.e}_or_null`}}function ne(){return{...this,d:!0,e:`${this.e}_or_nullish`}}var f={__rc_type:void 0,withFallback:X,where:ee,optional:q,optionalKey:q,orNullish:ne,withAutofix:Y,orNull:re,R:void 0,g:void 0,c:void 0,T:!1,p:!1,d:!1,j:!1,k:!1,y:void 0,h:void 0,t:void 0,_:!1,b:!1,u:[]},Te={...f,r(e,r){return y(this,e,r,()=>e===void 0)},e:"undefined"},de={...f,r(e,r){return y(this,e,r,()=>e===null)},e:"null"},pe={...f,r(e,r){return y(this,e,r,()=>!0)},e:"any"},Re={...f,r(e,r){return y(this,e,r,()=>!0)},e:"unknown"},_e={...f,r(e,r){return y(this,e,r,()=>typeof e=="boolean")},e:"boolean"},he={...f,r(e,r){return y(this,e,r,()=>typeof e=="string")},e:"string"},be={...f,r(e,r){return y(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},je={...f,r(e,r){return y(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ge(e){return{...f,r(r,n){return y(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function ke(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...f,r(r,n){return y(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},k:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var C=1;function Oe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...f,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._&&(n.n=`${t}|union ${i}|`);let T=n.o;n.o=!0,n.a=0;let[d,l]=u.r(r,n),_=n.a;if(n.o=T,n.a=0,d)return!0;u._&&_!==-1?_>0?c.push(...l):(a<C&&o.push(...l),a+=1):s=!0}return n.n=t,c.length>0||o.length>0?((a>C||s)&&o.push(p(n,"not matches any other union member")),{errors:[...c,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function me(e,r){return{...e,T:!1,d:!1,p:!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:I(r)?r():r,errors:!1}}}function xe(e,r){return{...e,T:!1,d:!1,p:!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:I(r)?r():r,errors:!1}}}function te(e,{checkKey:r,looseCheck:n}={}){return{...f,e:`record<string, ${e.e}>`,r(t,o){return y(this,t,o,()=>{if(!x(t))return!1;let a={},s=[],c=o.n;for(let[i,u]of Object.entries(t)){let T=`.${i}`,d=`${c}${T}`;if(o.n=d,r&&!r(i)){s.push(p(o,`Key '${i}' is not allowed`));continue}let l=t[i],[_,h]=e.r(u,o);if(_)a[i]=l;else{let j=h;for(let R of j)s.push(R);if(o.o)break}}if(s.length>0)if(n)B(o,s);else return{errors:s,data:void 0};return{errors:!1,data:a}})}}}function we(e,{checkKey:r}={}){return te(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,o){let a=t&&!n.i&&!n.f,s=o?.unique,c=[],i=[],u=s?new Set:void 0,T=n.n,d=Array.isArray(r),l=-1;for(let _ of e){l++;let h=d?r[l]:r,j=`[${l}]`,R=`${T}${j}`;n.n=R;let g=h.r(_,n),[E,k]=g;if(n.n=R,E&&u){let m=k,A=typeof s=="string";A?m=k[s]:typeof s=="function"&&(m=s(k)),u.has(m)?(A&&(n.n=`${T}${j}.${s}`),g=[!1,[p(n,A?`Type '${h.t?.[s]?.e}' with value "${m}" is not unique`:typeof s=="function"?`Type '${h.e}' unique fn return with value "${m}" is not unique`:`${h.e} value is not unique`)]]):u.add(m)}let[O,$]=g;if(O)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};B(n,c.flat())}return{errors:!1,data:i}}function Pe(e,r){return{...f,e:`${e.e}[]`,R:e,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1,r):!1)}}}function Ee(e){if(!e.R)throw new Error("Type does not have an item type");return e.R}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 y(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 a=e.r(n,t);return t.f=o,a}}}function Ae(e,r){return{...f,R:e,e:`${e.e}[]`,r(n,t){return y(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!0,r):!1)}}}function Se(e){return{...f,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return y(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={l:[],n:"",o:!1,a:0,i:n,s:!1,f:!1},[o,a]=r.r(e,t);return o?{error:!1,ok:!0,data:a,warnings:t.l.length>0?t.l:!1}:{ok:!1,error:!0,errors:a}}function Ke(e){return r=>K(r,e)}function Ie(e,r,n){let t=K(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function oe(e,r){let n={l:[],n:"",o:!1,a:0,i:!1,s:!1,f:!1};return!!r.r(e,n)[0]}function Ne(e){return r=>oe(r,e)}function We(e){return{...f,e:"recursive",r(r,n){return e().r(r,n)}}}function V(e,r,n,t){let o=e.n,a=e.o,s=e.s,c=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.s=!0,e.i=!0);let i=r.r(n,e);return e.s=s,e.i=c,e.n=o,e.o=a,i}function se(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...f,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=V(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 se(e,r)}function qe(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...f,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=V(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"?[p(a,u.errors)]:u.errors.map(T=>p(a,T))]}return[!1,[...s||[],...i]]}}}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 Ce(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function x(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function W(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Be(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: ${x(t)?t.message:""}`]}}}function I(e){return typeof e=="function"}export{F as a,b,M as c,z as d,L as e,Q as f,J as g,Z as h,G as i,H as j,p as k,y as l,f as m,Te as n,de as o,pe as p,Re as q,_e as r,he as s,be as t,je as u,ge as v,ke as w,Oe as x,me as y,xe as z,te as A,we as B,Pe as C,Ee as D,$e as E,Ae as F,Se as G,K as H,Ke as I,Ie as J,oe as K,Ne as L,We as M,se as N,ve as O,qe as P,Ce as Q,x as R,W as S,Be as T};
package/dist/runcheck.cjs CHANGED
@@ -1 +1 @@
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 Ue={};oe(Ue,{defaultProps:()=>y,getWarningOrErrorWithPath:()=>p,isObject:()=>k,parse:()=>c,rc_any:()=>pe,rc_array:()=>Pe,rc_assert_is_valid:()=>Ce,rc_boolean:()=>he,rc_date:()=>je,rc_default:()=>me,rc_disable_loose_array:()=>$e,rc_enable_obj_strict:()=>V,rc_get_array_item_type:()=>Ee,rc_get_obj_schema:()=>B,rc_instanceof:()=>ge,rc_is_valid:()=>X,rc_literals:()=>ke,rc_loose_array:()=>Ae,rc_loose_parse:()=>Ie,rc_loose_record:()=>we,rc_narrow:()=>ve,rc_null:()=>de,rc_nullish_default:()=>xe,rc_number:()=>be,rc_obj_builder:()=>z,rc_obj_extends:()=>C,rc_obj_merge:()=>F,rc_obj_omit:()=>M,rc_obj_pick:()=>D,rc_obj_strict:()=>U,rc_object:()=>h,rc_parse:()=>E,rc_parse_json:()=>Be,rc_parser:()=>Ke,rc_record:()=>H,rc_recursive:()=>We,rc_rename_from_key:()=>v,rc_string:()=>_e,rc_transform:()=>ee,rc_tuple:()=>Se,rc_undefined:()=>Te,rc_union:()=>Oe,rc_unknown:()=>Re,rc_unsafe_transform:()=>qe,rc_validator:()=>Ne,snakeCase:()=>I});module.exports=ae(Ue);function v(e,r){return{...r,f:e}}function ie(e){return k(e)&&"__rc_type"in e}function q(e){if(ie(e))return e;if(k(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=q(t);return h(r)}throw new Error(`invalid schema: ${e}`)}function h(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,o]of Object.entries(e))n[t]=q(o);return{...y,t:n,e:"object",h:!0,u:Object.entries(n),r(t,o){return c(this,t,o,()=>{if(!k(t))return o.a=-1,!1;let s=this.e==="strict_obj"||o.s?new Set(Object.keys(t)):void 0;if(s&&s.size>this.u.length){o.a=-1;let d=[];if(o.o)return{data:void 0,errors:[p(o,`Expected strict object with ${this.u.length} keys but got ${s.size}`)]};for(let[l]of this.u)s.has(l)?s.delete(l):d.push(p(o,`Key '${l}' is missing`));for(let l of s)d.push(p(o,`Key '${l}' is not defined in the object shape`));return{data:void 0,errors:d}}let f={},i=[],u=o.n,T=-1;for(let[d,l]of this.u){let _=d;T+=1;let b=`.${d}`,j=`${u}${b}`;o.n=j;let R=t[d],g=d;if(R===void 0&&l.f&&(R=t[l.f],g=l.f),R===void 0&&r==="snake_case"){let m=I(d);R=t[m],g=m}s?.delete(g);let[$,O]=l.r(R,o);if($)f[_]=O;else{for(let m of O)o.n=j,i.push(m);if(o.o){o.a=T;break}}}if(s&&s.size>0)for(let d of s)o.n=u,i.push(p(o,`Key '${d}' is not defined in the object shape`));return i.length>0?{errors:i,data:void 0}:this.b?{errors:!1,data:{...t,...f}}:{errors:!1,data:f}})}}}function C(e,r){return{...h(e,r),e:"extends_object",b:!0}}function B(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function U(e,r){return{...h(e,r),e:"strict_obj"}}function V(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.s;t.s=!0;let a=e.r(n,t);return t.s=o,a}}}function F(...e){let r={};for(let n of e)Object.assign(r,n.t);return h(r)}function D(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 M(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 z(){return(e,r)=>h(e,r)}function ue(e){return{...this,j:e}}function p(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function N(e,r){e.l.push(r.startsWith("$")?r:p(e,r))}function Z(e,r){r.forEach(n=>N(e,n))}function c(e,r,n,t){if(e.T&&r===void 0)return[!0,r];if(e.d&&r==null)return[!0,r];if(e.p&&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,[p(n,`Predicate failed for type '${e.e}'`)]]:[!0,a]}if(!n.i){let a=e.j;if(a!==void 0)return N(n,`Fallback used, errors -> ${L(o,n,e,r)}`),[!0,W(a)?a():a];if(e.g&&e._){let s=e._(r);if(s)return e.c&&!e.c(s.fixed)?[!1,[p(n,`Predicate failed for autofix in type '${e.e}'`)]]:(N(n,`Autofixed from error "${L(o,n,e,r)}"`),[!0,s.fixed])}}return[!1,o?o.errors:[p(n,G(e,r))]]}function L(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):G(n,t)}function ce(e){return{...this,g:!0,_:e}}function ye(e){return{...this,c:e}}function Q(){return{...this,T:!0}}function G(e,r){return`Type '${w(r,!!e.k)}' is not assignable to '${e.e}'`}function fe(){return{...this,p:!0,e:`${this.e}_or_null`}}function le(){return{...this,d:!0,e:`${this.e}_or_nullish`}}var y={__rc_type:void 0,withFallback:ue,where:ye,optional:Q,optionalKey:Q,orNullish:le,withAutofix:ce,orNull:fe,R:void 0,j:void 0,c:void 0,T:!1,p:!1,d:!1,g:!1,k:!1,f:void 0,_:void 0,t:void 0,h:!1,b:!1,u:[]},Te={...y,r(e,r){return c(this,e,r,()=>e===void 0)},e:"undefined"},de={...y,r(e,r){return c(this,e,r,()=>e===null)},e:"null"},pe={...y,r(e,r){return c(this,e,r,()=>!0)},e:"any"},Re={...y,r(e,r){return c(this,e,r,()=>!0)},e:"unknown"},he={...y,r(e,r){return c(this,e,r,()=>typeof e=="boolean")},e:"boolean"},_e={...y,r(e,r){return c(this,e,r,()=>typeof e=="string")},e:"string"},be={...y,r(e,r){return c(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},je={...y,r(e,r){return c(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ge(e){return{...y,r(r,n){return c(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function ke(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...y,r(r,n){return c(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},k:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var J=1;function Oe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...y,r(r,n){return c(this,r,n,()=>{let t=n.n,o=[],a=0,s=!1,f=[],i=0;for(let u of e){i+=1,u.h&&(n.n=`${t}|union ${i}|`);let T=n.o;n.o=!0,n.a=0;let[d,l]=u.r(r,n),_=n.a;if(n.o=T,n.a=0,d)return!0;u.h&&_!==-1?_>0?f.push(...l):(a<J&&o.push(...l),a+=1):s=!0}return n.n=t,f.length>0||o.length>0?((a>J||s)&&o.push(p(n,"not matches any other union member")),{errors:[...f,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function me(e,r){return{...e,T:!1,d:!1,p:!1,r(t,o){return c(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:W(r)?r():r,errors:!1}}}function xe(e,r){return{...e,T:!1,d:!1,p:!1,r(t,o){return c(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:W(r)?r():r,errors:!1}}}function H(e,{checkKey:r,looseCheck:n}={}){return{...y,e:`record<string, ${e.e}>`,r(t,o){return c(this,t,o,()=>{if(!k(t))return!1;let a={},s=[],f=o.n;for(let[i,u]of Object.entries(t)){let T=`.${i}`,d=`${f}${T}`;if(o.n=d,r&&!r(i)){s.push(p(o,`Key '${i}' is not allowed`));continue}let l=t[i],[_,b]=e.r(u,o);if(_)a[i]=l;else{let j=b;for(let R of j)s.push(R);if(o.o)break}}if(s.length>0)if(n)Z(o,s);else return{errors:s,data:void 0};return{errors:!1,data:a}})}}}function we(e,{checkKey:r}={}){return H(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,o){let a=t&&!n.i&&!n.y,s=o?.unique,f=[],i=[],u=s?new Set:void 0,T=n.n,d=Array.isArray(r),l=-1;for(let _ of e){l++;let b=d?r[l]:r,j=`[${l}]`,R=`${T}${j}`;n.n=R;let g=b.r(_,n),[$,O]=g;if(n.n=R,$&&u){let x=O,S=typeof s=="string";S?x=O[s]:typeof s=="function"&&(x=s(O)),u.has(x)?(S&&(n.n=`${T}${j}.${s}`),g=[!1,[p(n,S?`Type '${b.t?.[s]?.e}' with value "${x}" is not unique`:typeof s=="function"?`Type '${b.e}' unique fn return with value "${x}" is not unique`:`${b.e} value is not unique`)]]):u.add(x)}let[m,A]=g;if(m)i.push(A);else if(a){f.push(A);continue}else return{errors:A,data:void 0}}if(f.length>0){if(i.length===0)return{errors:f.slice(0,5).flat(),data:void 0};Z(n,f.flat())}return{errors:!1,data:i}}function Pe(e,r){return{...y,e:`${e.e}[]`,R:e,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1,r):!1)}}}function Ee(e){if(!e.R)throw new Error("Type does not have an item type");return e.R}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 c(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.y;t.y=!0;let a=e.r(n,t);return t.y=o,a}}}function Ae(e,r){return{...y,R:e,e:`${e.e}[]`,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!0,r):!1)}}}function Se(e){return{...y,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return c(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:P.call(this,r,e,n))}}}function E(e,r,{noWarnings:n=!1}={}){let t={l:[],n:"",o:!1,a:0,i:n,s:!1,y:!1},[o,a]=r.r(e,t);return o?{error:!1,ok:!0,data:a,warnings:t.l.length>0?t.l:!1}:{ok:!1,error:!0,errors:a}}function Ke(e){return r=>E(r,e)}function Ie(e,r,n){let t=E(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function X(e,r){let n={l:[],n:"",o:!1,a:0,i:!1,s:!1,y:!1};return!!r.r(e,n)[0]}function Ne(e){return r=>X(r,e)}function We(e){return{...y,e:"recursive",r(r,n){return e().r(r,n)}}}function Y(e,r,n,t){let o=e.n,a=e.o,s=e.s,f=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.s=!0,e.i=!0);let i=r.r(n,e);return e.s=s,e.i=f,e.n=o,e.o=a,i}function ee(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...y,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=Y(a,n,o,t);if(u)return[!0,T];s=T}let[f,i]=e.r(o,a);return f?[!0,r(i,e)]:[!1,[...s||[],...i]]}}}function ve(e,r){return ee(e,r)}function qe(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...y,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=Y(a,n,o,t);if(u)return[!0,T];s=T}let[f,i]=e.r(o,a);if(f){let u=r(i,e);return u.ok?[!0,u.data]:[!1,typeof u.errors=="string"?[p(a,u.errors)]:u.errors.map(T=>p(a,T))]}return[!1,[...s||[],...i]]}}}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 Ce(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 I(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Be(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 E(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${k(t)?t.message:""}`]}}}function W(e){return typeof e=="function"}0&&(module.exports={defaultProps,getWarningOrErrorWithPath,isObject,parse,rc_any,rc_array,rc_assert_is_valid,rc_boolean,rc_date,rc_default,rc_disable_loose_array,rc_enable_obj_strict,rc_get_array_item_type,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_rename_from_key,rc_string,rc_transform,rc_tuple,rc_undefined,rc_union,rc_unknown,rc_unsafe_transform,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 Ue={};oe(Ue,{defaultProps:()=>y,getWarningOrErrorWithPath:()=>p,isObject:()=>k,parse:()=>c,rc_any:()=>pe,rc_array:()=>Pe,rc_assert_is_valid:()=>Ce,rc_boolean:()=>_e,rc_date:()=>je,rc_default:()=>me,rc_disable_loose_array:()=>$e,rc_enable_obj_strict:()=>V,rc_get_array_item_type:()=>Ee,rc_get_from_key_as_fallback:()=>v,rc_get_obj_schema:()=>B,rc_instanceof:()=>ge,rc_is_valid:()=>X,rc_literals:()=>ke,rc_loose_array:()=>Ae,rc_loose_parse:()=>Ie,rc_loose_record:()=>we,rc_narrow:()=>ve,rc_null:()=>de,rc_nullish_default:()=>xe,rc_number:()=>be,rc_obj_builder:()=>z,rc_obj_extends:()=>C,rc_obj_merge:()=>F,rc_obj_omit:()=>M,rc_obj_pick:()=>D,rc_obj_strict:()=>U,rc_object:()=>_,rc_parse:()=>E,rc_parse_json:()=>Be,rc_parser:()=>Ke,rc_record:()=>H,rc_recursive:()=>We,rc_string:()=>he,rc_transform:()=>ee,rc_tuple:()=>Se,rc_undefined:()=>Te,rc_union:()=>Oe,rc_unknown:()=>Re,rc_unsafe_transform:()=>qe,rc_validator:()=>Ne,snakeCase:()=>I});module.exports=ae(Ue);function v(e,r){return{...r,f:e}}function ie(e){return k(e)&&"__rc_type"in e}function q(e){if(ie(e))return e;if(k(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=q(t);return _(r)}throw new Error(`invalid schema: ${e}`)}function _(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,o]of Object.entries(e))n[t]=q(o);return{...y,t:n,e:"object",_:!0,u:Object.entries(n),r(t,o){return c(this,t,o,()=>{if(!k(t))return o.a=-1,!1;let s=this.e==="strict_obj"||o.s?new Set(Object.keys(t)):void 0;if(s&&s.size>this.u.length){o.a=-1;let d=[];if(o.o)return{data:void 0,errors:[p(o,`Expected strict object with ${this.u.length} keys but got ${s.size}`)]};for(let[l]of this.u)s.has(l)?s.delete(l):d.push(p(o,`Key '${l}' is missing`));for(let l of s)d.push(p(o,`Key '${l}' is not defined in the object shape`));return{data:void 0,errors:d}}let f={},i=[],u=o.n,T=-1;for(let[d,l]of this.u){let h=d;T+=1;let b=`.${d}`,j=`${u}${b}`;o.n=j;let R=t[d],g=d;if(R===void 0&&l.f&&(R=t[l.f],g=l.f),R===void 0&&r==="snake_case"){let m=I(d);R=t[m],g=m}s?.delete(g);let[$,O]=l.r(R,o);if($)f[h]=O;else{for(let m of O)o.n=j,i.push(m);if(o.o){o.a=T;break}}}if(s&&s.size>0)for(let d of s)o.n=u,i.push(p(o,`Key '${d}' is not defined in the object shape`));return i.length>0?{errors:i,data:void 0}:this.b?{errors:!1,data:{...t,...f}}:{errors:!1,data:f}})}}}function C(e,r){return{..._(e,r),e:"extends_object",b:!0}}function B(e){if(!e.t)throw new Error("type does not have an object shape");return e.t}function U(e,r){return{..._(e,r),e:"strict_obj"}}function V(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.s;t.s=!0;let a=e.r(n,t);return t.s=o,a}}}function F(...e){let r={};for(let n of e)Object.assign(r,n.t);return _(r)}function D(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 M(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 z(){return(e,r)=>_(e,r)}function ue(e){return{...this,j:e}}function p(e,r){return`${e.n?`$${e.n}: `:""}${r}`}function N(e,r){e.l.push(r.startsWith("$")?r:p(e,r))}function Z(e,r){r.forEach(n=>N(e,n))}function c(e,r,n,t){if(e.T&&r===void 0)return[!0,r];if(e.d&&r==null)return[!0,r];if(e.p&&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,[p(n,`Predicate failed for type '${e.e}'`)]]:[!0,a]}if(!n.i){let a=e.j;if(a!==void 0)return N(n,`Fallback used, errors -> ${L(o,n,e,r)}`),[!0,W(a)?a():a];if(e.g&&e.h){let s=e.h(r);if(s)return e.c&&!e.c(s.fixed)?[!1,[p(n,`Predicate failed for autofix in type '${e.e}'`)]]:(N(n,`Autofixed from error "${L(o,n,e,r)}"`),[!0,s.fixed])}}return[!1,o?o.errors:[p(n,G(e,r))]]}function L(e,r,n,t){return e?e.errors.map(o=>o.replace(r.n,"")).join("; "):G(n,t)}function ce(e){return{...this,g:!0,h:e}}function ye(e){return{...this,c:e}}function Q(){return{...this,T:!0}}function G(e,r){return`Type '${w(r,!!e.k)}' is not assignable to '${e.e}'`}function fe(){return{...this,p:!0,e:`${this.e}_or_null`}}function le(){return{...this,d:!0,e:`${this.e}_or_nullish`}}var y={__rc_type:void 0,withFallback:ue,where:ye,optional:Q,optionalKey:Q,orNullish:le,withAutofix:ce,orNull:fe,R:void 0,j:void 0,c:void 0,T:!1,p:!1,d:!1,g:!1,k:!1,f:void 0,h:void 0,t:void 0,_:!1,b:!1,u:[]},Te={...y,r(e,r){return c(this,e,r,()=>e===void 0)},e:"undefined"},de={...y,r(e,r){return c(this,e,r,()=>e===null)},e:"null"},pe={...y,r(e,r){return c(this,e,r,()=>!0)},e:"any"},Re={...y,r(e,r){return c(this,e,r,()=>!0)},e:"unknown"},_e={...y,r(e,r){return c(this,e,r,()=>typeof e=="boolean")},e:"boolean"},he={...y,r(e,r){return c(this,e,r,()=>typeof e=="string")},e:"string"},be={...y,r(e,r){return c(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},je={...y,r(e,r){return c(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ge(e){return{...y,r(r,n){return c(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function ke(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...y,r(r,n){return c(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},k:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var J=1;function Oe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...y,r(r,n){return c(this,r,n,()=>{let t=n.n,o=[],a=0,s=!1,f=[],i=0;for(let u of e){i+=1,u._&&(n.n=`${t}|union ${i}|`);let T=n.o;n.o=!0,n.a=0;let[d,l]=u.r(r,n),h=n.a;if(n.o=T,n.a=0,d)return!0;u._&&h!==-1?h>0?f.push(...l):(a<J&&o.push(...l),a+=1):s=!0}return n.n=t,f.length>0||o.length>0?((a>J||s)&&o.push(p(n,"not matches any other union member")),{errors:[...f,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function me(e,r){return{...e,T:!1,d:!1,p:!1,r(t,o){return c(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:W(r)?r():r,errors:!1}}}function xe(e,r){return{...e,T:!1,d:!1,p:!1,r(t,o){return c(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:W(r)?r():r,errors:!1}}}function H(e,{checkKey:r,looseCheck:n}={}){return{...y,e:`record<string, ${e.e}>`,r(t,o){return c(this,t,o,()=>{if(!k(t))return!1;let a={},s=[],f=o.n;for(let[i,u]of Object.entries(t)){let T=`.${i}`,d=`${f}${T}`;if(o.n=d,r&&!r(i)){s.push(p(o,`Key '${i}' is not allowed`));continue}let l=t[i],[h,b]=e.r(u,o);if(h)a[i]=l;else{let j=b;for(let R of j)s.push(R);if(o.o)break}}if(s.length>0)if(n)Z(o,s);else return{errors:s,data:void 0};return{errors:!1,data:a}})}}}function we(e,{checkKey:r}={}){return H(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,o){let a=t&&!n.i&&!n.y,s=o?.unique,f=[],i=[],u=s?new Set:void 0,T=n.n,d=Array.isArray(r),l=-1;for(let h of e){l++;let b=d?r[l]:r,j=`[${l}]`,R=`${T}${j}`;n.n=R;let g=b.r(h,n),[$,O]=g;if(n.n=R,$&&u){let x=O,S=typeof s=="string";S?x=O[s]:typeof s=="function"&&(x=s(O)),u.has(x)?(S&&(n.n=`${T}${j}.${s}`),g=[!1,[p(n,S?`Type '${b.t?.[s]?.e}' with value "${x}" is not unique`:typeof s=="function"?`Type '${b.e}' unique fn return with value "${x}" is not unique`:`${b.e} value is not unique`)]]):u.add(x)}let[m,A]=g;if(m)i.push(A);else if(a){f.push(A);continue}else return{errors:A,data:void 0}}if(f.length>0){if(i.length===0)return{errors:f.slice(0,5).flat(),data:void 0};Z(n,f.flat())}return{errors:!1,data:i}}function Pe(e,r){return{...y,e:`${e.e}[]`,R:e,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!1,r):!1)}}}function Ee(e){if(!e.R)throw new Error("Type does not have an item type");return e.R}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 c(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.y;t.y=!0;let a=e.r(n,t);return t.y=o,a}}}function Ae(e,r){return{...y,R:e,e:`${e.e}[]`,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:P.call(this,n,e,t,!0,r):!1)}}}function Se(e){return{...y,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return c(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:P.call(this,r,e,n))}}}function E(e,r,{noWarnings:n=!1}={}){let t={l:[],n:"",o:!1,a:0,i:n,s:!1,y:!1},[o,a]=r.r(e,t);return o?{error:!1,ok:!0,data:a,warnings:t.l.length>0?t.l:!1}:{ok:!1,error:!0,errors:a}}function Ke(e){return r=>E(r,e)}function Ie(e,r,n){let t=E(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function X(e,r){let n={l:[],n:"",o:!1,a:0,i:!1,s:!1,y:!1};return!!r.r(e,n)[0]}function Ne(e){return r=>X(r,e)}function We(e){return{...y,e:"recursive",r(r,n){return e().r(r,n)}}}function Y(e,r,n,t){let o=e.n,a=e.o,s=e.s,f=e.i;e.o=!0,e.n=`${o}|output|`,t||(e.s=!0,e.i=!0);let i=r.r(n,e);return e.s=s,e.i=f,e.n=o,e.o=a,i}function ee(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...y,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=Y(a,n,o,t);if(u)return[!0,T];s=T}let[f,i]=e.r(o,a);return f?[!0,r(i,e)]:[!1,[...s||[],...i]]}}}function ve(e,r){return ee(e,r)}function qe(e,r,{outputSchema:n,disableStrictOutputSchema:t}={}){return{...y,e:`transform_from_${e.e}`,r(o,a){let s=null;if(n){let[u,T]=Y(a,n,o,t);if(u)return[!0,T];s=T}let[f,i]=e.r(o,a);if(f){let u=r(i,e);return u.ok?[!0,u.data]:[!1,typeof u.errors=="string"?[p(a,u.errors)]:u.errors.map(T=>p(a,T))]}return[!1,[...s||[],...i]]}}}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 Ce(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 I(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Be(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 E(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${k(t)?t.message:""}`]}}}function W(e){return typeof e=="function"}0&&(module.exports={defaultProps,getWarningOrErrorWithPath,isObject,parse,rc_any,rc_array,rc_assert_is_valid,rc_boolean,rc_date,rc_default,rc_disable_loose_array,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_validator,snakeCase});
@@ -1,4 +1,8 @@
1
- declare function rc_rename_from_key<T extends RcType<any>>(alternativeNames: string, type: T): RcType<RcInferType<T>>;
1
+ /**
2
+ * If the schema key value is undefined uses a value from the fallback key as a safe value
3
+ * Can be used to rename keys from input
4
+ */
5
+ declare function rc_get_from_key_as_fallback<T extends RcType<any>>(fallbackKey: string, type: T): RcType<RcInferType<T>>;
2
6
  type RcObject = {
3
7
  [key: string]: RcBase<any, any> | RcObject;
4
8
  };
@@ -197,4 +201,4 @@ type Prettify<T> = T extends Record<string, any> ? {
197
201
  } : T;
198
202
  type RcPrettyInferType<T extends RcType<any>> = Prettify<RcInferType<T>>;
199
203
 
200
- export { RcBase, RcInferType, RcOptionalKeyType, RcParseResult, RcParser, RcPrettyInferType, RcType, defaultProps, getWarningOrErrorWithPath, isObject, parse, rc_any, rc_array, rc_assert_is_valid, rc_boolean, rc_date, rc_default, rc_disable_loose_array, rc_enable_obj_strict, rc_get_array_item_type, 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_rename_from_key, rc_string, rc_transform, rc_tuple, rc_undefined, rc_union, rc_unknown, rc_unsafe_transform, rc_validator };
204
+ export { RcBase, RcInferType, RcOptionalKeyType, RcParseResult, RcParser, RcPrettyInferType, RcType, defaultProps, getWarningOrErrorWithPath, isObject, parse, rc_any, rc_array, rc_assert_is_valid, rc_boolean, rc_date, rc_default, rc_disable_loose_array, 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_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,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-MU32NTS5.js";export{m as defaultProps,k as getWarningOrErrorWithPath,R as isObject,l as parse,p as rc_any,C as rc_array,Q as rc_assert_is_valid,r as rc_boolean,u as rc_date,y as rc_default,E as rc_disable_loose_array,f as rc_enable_obj_strict,D as rc_get_array_item_type,d as rc_get_obj_schema,v as rc_instanceof,K as rc_is_valid,w as rc_literals,F as rc_loose_array,J as rc_loose_parse,B as rc_loose_record,O 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,H as rc_parse,T as rc_parse_json,I as rc_parser,A as rc_record,M as rc_recursive,a as rc_rename_from_key,s as rc_string,N as rc_transform,G as rc_tuple,n as rc_undefined,x as rc_union,q as rc_unknown,P as rc_unsafe_transform,L as rc_validator,S as snakeCase};
1
+ import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,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-45NWFF45.js";export{m as defaultProps,k as getWarningOrErrorWithPath,R as isObject,l as parse,p as rc_any,C as rc_array,Q as rc_assert_is_valid,r as rc_boolean,u as rc_date,y as rc_default,E as rc_disable_loose_array,f as rc_enable_obj_strict,D as rc_get_array_item_type,a as rc_get_from_key_as_fallback,d as rc_get_obj_schema,v as rc_instanceof,K as rc_is_valid,w as rc_literals,F as rc_loose_array,J as rc_loose_parse,B as rc_loose_record,O 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,H as rc_parse,T as rc_parse_json,I as rc_parser,A as rc_record,M as rc_recursive,s as rc_string,N as rc_transform,G as rc_tuple,n as rc_undefined,x as rc_union,q as rc_unknown,P as rc_unsafe_transform,L as rc_validator,S 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.49.2",
4
+ "version": "0.50.0",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "dist"