runcheck 0.38.0 → 0.39.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
@@ -120,9 +120,9 @@ instead of:
120
120
  */
121
121
  ```
122
122
 
123
- ## `rc_strict_obj`
123
+ ## `rc_obj_strict`
124
124
 
125
- The same as `rc_object` but, any extra propertie will be throw an error in parsing.
125
+ The same as `rc_object` but, any extra properties will be throw an error in parsing.
126
126
 
127
127
  ## `rc_obj_intersection`
128
128
 
@@ -436,7 +436,7 @@ const shape = rc_object({
436
436
  const nameSchema = rc_get_obj_schema(shape).name
437
437
  ```
438
438
 
439
- ## `rc_extends_obj`
439
+ ## `rc_obj_extends`
440
440
 
441
441
  Don't strip unchecked keys from the result. Example:
442
442
 
@@ -447,7 +447,7 @@ const shape = rc_object({
447
447
 
448
448
  const result = rc_parse(
449
449
  { name: 'John', age: 20, is_cool: true },
450
- rc_extends_obj(shape),
450
+ rc_obj_extends(shape),
451
451
  )
452
452
 
453
453
  // keys `age` and `is_cool` will be present in the result
@@ -1 +1 @@
1
- "use strict";var u=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var j=(e,r)=>{for(var n in r)u(e,n,{get:r[n],enumerable:!0})},x=(e,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of _(r))!h.call(e,t)&&t!==n&&u(e,t,{get:()=>r[t],enumerable:!(i=b(r,t))||i.enumerable});return e};var O=e=>x(u({},"__esModule",{value:!0}),e);var N={};j(N,{rc_boolean_autofix:()=>A,rc_number_autofix:()=>I,rc_string_autofix:()=>E});module.exports=O(N);function g(e){return{...this,y:e}}function k(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.path?`$${e.path}: `:""}${r}`}function y(e,r){e.warnings.push(k(e,r))}function o(e,r,n,i){if(e.o&&r===void 0)return[!0,r];if(e.s&&r==null)return[!0,r];if(e.a&&r===null)return[!0,r];let t=i();if(t&&(t===!0||!t.errors)){let a=t===!0?r:t.data;return e.t&&!e.t(a)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,a]}if(!n.strict){let a=e.y;if(a!==void 0)return y(n,`Fallback used, errors -> ${f(t,n,e,r)}`),[!0,S(a)?a():a];if(e.f&&e.c){let c=e.c(r);if(c)return e.t&&!e.t(c.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(y(n,`Autofixed from error "${f(t,n,e,r)}"`),[!0,c.fixed])}}return[!1,t?t.errors:[T(e,r)]]}function f(e,r,n,i){return e?e.errors.map(t=>t.replace(r.path,"")).join("; "):T(n,i)}function m(e){return{...this,f:!0,c:e}}function w(e){return{...this,t:e}}function l(){return{...this,o:!0}}function T(e,r){return`Type '${P(r,!!e.l)}' is not assignable to '${e.e}'`}function $(){return{...this,a:!0,e:`${this.e}_or_null`}}function K(){return{...this,s:!0,e:`${this.e}_or_nullish`}}var s={__rc_type:void 0,withFallback:g,where:w,optional:l,optionalKey:l,orNullish:K,withAutofix:m,orNull:$,y:void 0,t:void 0,o:!1,a:!1,s:!1,f:!1,l:!1,i:void 0,c:void 0,p:void 0,n:void 0,u:!1,T:!1,d:[]},v={...s,r(e,r){return o(this,e,r,()=>e===void 0)},e:"undefined"},q={...s,r(e,r){return o(this,e,r,()=>e===null)},e:"null"},V={...s,r(e,r){return o(this,e,r,()=>!0)},e:"any"},B={...s,r(e,r){return o(this,e,r,()=>!0)},e:"unknown"},d={...s,r(e,r){return o(this,e,r,()=>typeof e=="boolean")},e:"boolean"},p={...s,r(e,r){return o(this,e,r,()=>typeof e=="string")},e:"string"},R={...s,r(e,r){return o(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},F={...s,r(e,r){return o(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function P(e,r){let n=(()=>{if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e})();return r&&(n==="string"||n==="number"||n==="boolean")?`${n}(${e})`:n}function S(e){return typeof e=="function"}var A=d.withAutofix(e=>e==null||e===0||e===1?{fixed:!!e}:e==="true"||e==="false"?{fixed:e==="true"}:!1),E=p.withAutofix(e=>typeof e=="number"&&!Number.isNaN(e)?{fixed:e.toString()}:!1),I=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 u=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var _=Object.getOwnPropertyNames;var h=Object.prototype.hasOwnProperty;var j=(e,r)=>{for(var n in r)u(e,n,{get:r[n],enumerable:!0})},x=(e,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of _(r))!h.call(e,t)&&t!==n&&u(e,t,{get:()=>r[t],enumerable:!(i=b(r,t))||i.enumerable});return e};var O=e=>x(u({},"__esModule",{value:!0}),e);var N={};j(N,{rc_boolean_autofix:()=>S,rc_number_autofix:()=>I,rc_string_autofix:()=>E});module.exports=O(N);function g(e){return{...this,y:e}}function k(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.path?`$${e.path}: `:""}${r}`}function y(e,r){e.warnings.push(k(e,r))}function o(e,r,n,i){if(e.o&&r===void 0)return[!0,r];if(e.s&&r==null)return[!0,r];if(e.a&&r===null)return[!0,r];let t=i();if(t&&(t===!0||!t.errors)){let a=t===!0?r:t.data;return e.t&&!e.t(a)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,a]}if(!n.strict){let a=e.y;if(a!==void 0)return y(n,`Fallback used, errors -> ${f(t,n,e,r)}`),[!0,P(a)?a():a];if(e.f&&e.c){let c=e.c(r);if(c)return e.t&&!e.t(c.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(y(n,`Autofixed from error "${f(t,n,e,r)}"`),[!0,c.fixed])}}return[!1,t?t.errors:[T(e,r)]]}function f(e,r,n,i){return e?e.errors.map(t=>t.replace(r.path,"")).join("; "):T(n,i)}function m(e){return{...this,f:!0,c:e}}function w(e){return{...this,t:e}}function l(){return{...this,o:!0}}function T(e,r){return`Type '${K(r,!!e.l)}' is not assignable to '${e.e}'`}function A(){return{...this,a:!0,e:`${this.e}_or_null`}}function $(){return{...this,s:!0,e:`${this.e}_or_nullish`}}var s={__rc_type:void 0,withFallback:g,where:w,optional:l,optionalKey:l,orNullish:$,withAutofix:m,orNull:A,y:void 0,t:void 0,o:!1,a:!1,s:!1,f:!1,l:!1,i:void 0,c:void 0,p:void 0,n:void 0,u:!1,T:!1,d:[]},C={...s,r(e,r){return o(this,e,r,()=>e===void 0)},e:"undefined"},q={...s,r(e,r){return o(this,e,r,()=>e===null)},e:"null"},V={...s,r(e,r){return o(this,e,r,()=>!0)},e:"any"},B={...s,r(e,r){return o(this,e,r,()=>!0)},e:"unknown"},d={...s,r(e,r){return o(this,e,r,()=>typeof e=="boolean")},e:"boolean"},p={...s,r(e,r){return o(this,e,r,()=>typeof e=="string")},e:"string"},R={...s,r(e,r){return o(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},F={...s,r(e,r){return o(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function K(e,r){let n=(()=>{if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e})();return r&&(n==="string"||n==="number"||n==="boolean")?`${n}(${e})`:n}function P(e){return typeof e=="function"}var S=d.withAutofix(e=>e==null||e===0||e===1?{fixed:!!e}:e==="true"||e==="false"?{fixed:e==="true"}:!1),E=p.withAutofix(e=>typeof e=="number"&&!Number.isNaN(e)?{fixed:e.toString()}:!1),I=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 +1 @@
1
- import{e as f,f as t,g as o}from"./chunk-OWE42DXC.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{e as f,f as t,g as o}from"./chunk-2DQLFKXQ.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 @@
1
+ function F(e){return{...this,y:e}}function j(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.path?`$${e.path}: `:""}${r}`}function A(e,r){e.warnings.push(j(e,r))}function C(e,r){r.forEach(n=>A(e,n))}function c(e,r,n,t){if(e.o&&r===void 0)return[!0,r];if(e.s&&r==null)return[!0,r];if(e.a&&r===null)return[!0,r];let o=t();if(o&&(o===!0||!o.errors)){let s=o===!0?r:o.data;return e.t&&!e.t(s)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,s]}if(!n.strict){let s=e.y;if(s!==void 0)return A(n,`Fallback used, errors -> ${I(o,n,e,r)}`),[!0,E(s)?s():s];if(e.f&&e.c){let a=e.c(r);if(a)return e.t&&!e.t(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(A(n,`Autofixed from error "${I(o,n,e,r)}"`),[!0,a.fixed])}}return[!1,o?o.errors:[q(e,r)]]}function I(e,r,n,t){return e?e.errors.map(o=>o.replace(r.path,"")).join("; "):q(n,t)}function U(e){return{...this,f:!0,c:e}}function W(e){return{...this,t:e}}function N(){return{...this,o:!0}}function q(e,r){return`Type '${m(r,!!e.l)}' is not assignable to '${e.e}'`}function D(){return{...this,a:!0,e:`${this.e}_or_null`}}function M(){return{...this,s:!0,e:`${this.e}_or_nullish`}}var i={__rc_type:void 0,withFallback:F,where:W,optional:N,optionalKey:N,orNullish:M,withAutofix:U,orNull:D,y:void 0,t:void 0,o:!1,a:!1,s:!1,f:!1,l:!1,i:void 0,c:void 0,p:void 0,n:void 0,u:!1,T:!1,d:[]},G={...i,r(e,r){return c(this,e,r,()=>e===void 0)},e:"undefined"},H={...i,r(e,r){return c(this,e,r,()=>e===null)},e:"null"},X={...i,r(e,r){return c(this,e,r,()=>!0)},e:"any"},Y={...i,r(e,r){return c(this,e,r,()=>!0)},e:"unknown"},ee={...i,r(e,r){return c(this,e,r,()=>typeof e=="boolean")},e:"boolean"},re={...i,r(e,r){return c(this,e,r,()=>typeof e=="string")},e:"string"},ne={...i,r(e,r){return c(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},te={...i,r(e,r){return c(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function oe(e){return{...i,r(r,n){return c(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{...i,r(r,n){return c(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},l:!0,e:e.length==1?m(e[0],!0):e.map(r=>m(r,!0)).join(" | ")}}var v=1;function ae(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...i,r(r,n){return c(this,r,n,()=>{let t=n.path,o=[],s=0,a=!1,y=[],f=0;for(let R of e){f+=1,R.u&&(n.path=`${t}|union ${f}|`),n.objErrShortCircuit=!0,n.objErrKeyIndex=0;let[u,T]=R.r(r,n);n.objErrShortCircuit=!1;let p=n.objErrKeyIndex;if(n.objErrKeyIndex=0,u)return!0;R.u&&p!==-1?p>0?y.push(...T):(s<v&&o.push(...T),s+=1):a=!0}return n.path=t,y.length>0||o.length>0?((s>v||a)&&o.push("not matches any other union member"),{errors:[...y,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function ie(e,r){return{...e,o:!1,s:!1,a:!1,r(n,t){return c(this,n,t,()=>{let o=e.r(n,t),[s,a]=o;return s?a!==void 0?!0:{data:E(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_default`}}function ce(e,r){return{...e,o:!1,s:!1,a:!1,r(n,t){return c(this,n,t,()=>{let o=e.r(n,t),[s,a]=o;return s?a!=null?!0:{data:E(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_nullish_default`}}function z(e,r){return{...r,i:e}}var ue=z;function V(e){return w(e)&&"__rc_type"in e}function B(e){if(V(e))return e;if(w(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=B(t);return x(r)}throw new Error(`invalid schema: ${e}`)}function x(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,o]of Object.entries(e))n[t]=B(o);return{...i,n,e:"object",u:!0,d:Object.entries(n),r(t,o){return c(this,t,o,()=>{if(!w(t))return o.objErrKeyIndex=-1,!1;let s=this.e==="strict_obj"?new Set(Object.keys(t)):void 0,a={},y=[],f=o.path,R=-1;for(let[u,T]of this.d){let p=u;R+=1;let O=`.${u}`,_=`${f}${O}`;o.path=_;let l,h=u;if(T.i&&(l=t[T.i],h=T.i),l===void 0&&(l=t[u],h=u),l===void 0&&r==="snake_case"){let k=Z(u);l=t[k],h=k}s?.delete(h);let[g,d]=T.r(l,o);if(g)a[p]=d;else{for(let k of d)o.path=_,y.push(j(o,k));if(o.objErrShortCircuit){o.objErrKeyIndex=R;break}}}if(s&&s.size>0)for(let u of s)y.push(`Key '${u}' is not defined in the object shape`);return y.length>0?{errors:y,data:void 0}:this.T?{errors:!1,data:{...t,...a}}:{errors:!1,data:a}})}}}function ye(e,r){return{...x(e,r),e:"extends_object",T:!0}}function fe(e){return e.n}function Q(e,r){let n=(()=>{if(V(e)){if(!e.n)throw new Error("rc_strict_obj: expected an object type");if(r?.nonRecursive)return e.n;{let t={};for(let[o,s]of Object.entries(e.n))t[o]=s.n?Q(s,r):s;return t}}return e})();return{...x(n,r),e:"strict_obj"}}function le(...e){let r={};for(let n of e)Object.assign(r,n.n);return x(r)}function Te(e,r){let n={};if(!e.n)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let o=e.n[t];o&&(n[t]=o)}return x(n)}function pe(e,r){let n={};if(!e.n)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.n))r.includes(t)||(n[t]=e.n[t]);return x(n)}function J(e,{checkKey:r,looseCheck:n}={}){return{...i,e:`record<string, ${e.e}>`,r(t,o){return c(this,t,o,()=>{if(!w(t))return!1;let s={},a=[],y=o.path;for(let[f,R]of Object.entries(t)){let u=`.${f}`,T=`${y}${u}`;if(o.path=T,r&&!r(f)){a.push(j(o,`Key '${f}' is not allowed`));continue}let p=t[f],[O,_]=e.r(R,o);if(O)s[f]=p;else{let l=_;for(let h of l)a.push(j(o,h));if(o.objErrShortCircuit)break}}if(a.length>0)if(n)C(o,a);else return{errors:a,data:void 0};return{errors:!1,data:s}})}}}function de(e,{checkKey:r}={}){return J(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,o){let s=[],a=[],y=new Set,f=n.path,R=Array.isArray(r),u=-1;for(let T of e){u++;let p=R?r[u]:r,O=`[${u}]`,_=`${f}${O}`;n.path=_;let l=p.r(T,n),[h,g]=l;n.path=_;let d=o?.unique;if(h&&d){let b=g,K=typeof d=="string";K?b=g[d]:typeof d=="function"&&(b=d(g)),y.has(b)?(K&&(n.path=`${f}${O}.${d}`),l=[!1,[j(n,K?`Type '${p.n?.[d]?.e}' with value "${b}" is not unique`:typeof d=="function"?`Type '${p.e}' unique fn return with value "${b}" is not unique`:`${p.e} value is not unique`)]]):y.add(b)}let[k,$]=l;if(k)a.push($);else if(t){s.push($.map(b=>j(n,b)));continue}else return{errors:$.map(b=>j(n,b)),data:void 0}}if(s.length>0){if(a.length===0)return{errors:s.slice(0,5).flat(),data:void 0};C(n,s.flat())}return{errors:!1,data:a}}function Re(e,r){return{...i,e:`${e.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 be(e,r){return{...i,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 he(e){return{...i,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 S(e,r,{strict:n=!1}={}){let t={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:n},[o,s]=r.r(e,t);return o?{error:!1,ok:!0,data:s,warnings:t.warnings.length>0?t.warnings:!1}:{ok:!1,error:!0,errors:s}}function _e(e){return r=>S(r,e)}function je(e,r,n){let t=S(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function L(e,r){let n={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:!1};return!!r.r(e,n)[0]}function xe(e){return r=>L(r,e)}function Oe(e){return{...i,e:"recursive",r(r,n){return e().r(r,n)}}}function ke(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[o,s]=e.r(n,t);return o?[!0,r(s)]:[!1,s]}}}function ge(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[o,s]=e.r(n,t);if(o){let a=r(s);return a.ok?[!0,a.data]:[!1,a.errors]}return[!1,s]}}}function m(e,r){let n=(()=>{if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e})();return r&&(n==="string"||n==="number"||n==="boolean")?`${n}(${e})`:n}function we(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function w(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Z(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 ${m(e,!0)}`]};let t=JSON.parse(e);return S(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parse error: ${w(t)?t.message:""}`]}}}function E(e){return typeof e=="function"}function $e(){return(e,r)=>x(e,r)}export{G as a,H as b,X as c,Y as d,ee as e,re as f,ne as g,te as h,oe as i,se as j,ae as k,ie as l,ce as m,z as n,ue as o,x as p,ye as q,fe as r,Q as s,le as t,Te as u,pe as v,J as w,de as x,Re as y,be as z,he as A,S as B,_e as C,je as D,L as E,xe as F,Oe as G,ke as H,ge as I,we as J,Z as K,me as L,$e as M};
package/dist/runcheck.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var P=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var Q=Object.prototype.hasOwnProperty;var J=(e,r)=>{for(var n in r)P(e,n,{get:r[n],enumerable:!0})},L=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of z(r))!Q.call(e,s)&&s!==n&&P(e,s,{get:()=>r[s],enumerable:!(t=M(r,s))||t.enumerable});return e};var Z=e=>L(P({},"__esModule",{value:!0}),e);var Ce={};J(Ce,{rc_any:()=>te,rc_array:()=>ke,rc_assert_is_valid:()=>Ie,rc_boolean:()=>oe,rc_date:()=>ce,rc_default:()=>le,rc_extends_obj:()=>Re,rc_get_obj_schema:()=>be,rc_instanceof:()=>ue,rc_is_valid:()=>U,rc_literals:()=>ye,rc_loose_array:()=>ge,rc_loose_parse:()=>$e,rc_loose_record:()=>Oe,rc_null:()=>ne,rc_nullish_default:()=>Te,rc_number:()=>ie,rc_obj_builder:()=>Ne,rc_obj_intersection:()=>_e,rc_obj_omit:()=>xe,rc_obj_pick:()=>je,rc_object:()=>_,rc_parse:()=>m,rc_parse_json:()=>Ae,rc_parser:()=>me,rc_record:()=>F,rc_recursive:()=>Pe,rc_rename_from_key:()=>V,rc_rename_key:()=>de,rc_strict_obj:()=>he,rc_string:()=>ae,rc_transform:()=>Se,rc_tuple:()=>we,rc_undefined:()=>re,rc_union:()=>fe,rc_unknown:()=>se,rc_unsafe_transform:()=>Ee,rc_validator:()=>Ke,snakeCase:()=>W});module.exports=Z(Ce);function G(e){return{...this,y:e}}function j(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.path?`$${e.path}: `:""}${r}`}function S(e,r){e.warnings.push(j(e,r))}function v(e,r){r.forEach(n=>S(e,n))}function c(e,r,n,t){if(e.s&&r===void 0)return[!0,r];if(e.o&&r==null)return[!0,r];if(e.a&&r===null)return[!0,r];let s=t();if(s&&(s===!0||!s.errors)){let o=s===!0?r:s.data;return e.t&&!e.t(o)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,o]}if(!n.strict){let o=e.y;if(o!==void 0)return S(n,`Fallback used, errors -> ${A(s,n,e,r)}`),[!0,I(o)?o():o];if(e.f&&e.c){let a=e.c(r);if(a)return e.t&&!e.t(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(S(n,`Autofixed from error "${A(s,n,e,r)}"`),[!0,a.fixed])}}return[!1,s?s.errors:[q(e,r)]]}function A(e,r,n,t){return e?e.errors.map(s=>s.replace(r.path,"")).join("; "):q(n,t)}function H(e){return{...this,f:!0,c:e}}function X(e){return{...this,t:e}}function N(){return{...this,s:!0}}function q(e,r){return`Type '${w(r,!!e.l)}' is not assignable to '${e.e}'`}function Y(){return{...this,a:!0,e:`${this.e}_or_null`}}function ee(){return{...this,o:!0,e:`${this.e}_or_nullish`}}var i={__rc_type:void 0,withFallback:G,where:X,optional:N,optionalKey:N,orNullish:ee,withAutofix:H,orNull:Y,y:void 0,t:void 0,s:!1,a:!1,o:!1,f:!1,l:!1,i:void 0,c:void 0,p:void 0,n:void 0,u:!1,T:!1,d:[]},re={...i,r(e,r){return c(this,e,r,()=>e===void 0)},e:"undefined"},ne={...i,r(e,r){return c(this,e,r,()=>e===null)},e:"null"},te={...i,r(e,r){return c(this,e,r,()=>!0)},e:"any"},se={...i,r(e,r){return c(this,e,r,()=>!0)},e:"unknown"},oe={...i,r(e,r){return c(this,e,r,()=>typeof e=="boolean")},e:"boolean"},ae={...i,r(e,r){return c(this,e,r,()=>typeof e=="string")},e:"string"},ie={...i,r(e,r){return c(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},ce={...i,r(e,r){return c(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ue(e){return{...i,r(r,n){return c(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function ye(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...i,r(r,n){return c(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},l:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var C=1;function fe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...i,r(r,n){return c(this,r,n,()=>{let t=n.path,s=[],o=0,a=!1,y=[],f=0;for(let R of e){f+=1,R.u&&(n.path=`${t}|union ${f}|`),n.objErrShortCircuit=!0,n.objErrKeyIndex=0;let[u,T]=R.r(r,n);n.objErrShortCircuit=!1;let d=n.objErrKeyIndex;if(n.objErrKeyIndex=0,u)return!0;R.u&&d!==-1?d>0?y.push(...T):(o<C&&s.push(...T),o+=1):a=!0}return n.path=t,y.length>0||s.length>0?((o>C||a)&&s.push("not matches any other union member"),{errors:[...y,...s],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function le(e,r){return{...e,s:!1,o:!1,a:!1,r(n,t){return c(this,n,t,()=>{let s=e.r(n,t),[o,a]=s;return o?a!==void 0?!0:{data:I(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_default`}}function Te(e,r){return{...e,s:!1,o:!1,a:!1,r(n,t){return c(this,n,t,()=>{let s=e.r(n,t),[o,a]=s;return o?a!=null?!0:{data:I(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_nullish_default`}}function V(e,r){return{...r,i:e}}var de=V;function pe(e){return g(e)&&"__rc_type"in e}function B(e){if(pe(e))return e;if(g(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=B(t);return _(r)}throw new Error(`invalid schema: ${e}`)}function _(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,s]of Object.entries(e))n[t]=B(s);return{...i,n,e:"object",u:!0,d:Object.entries(n),r(t,s){return c(this,t,s,()=>{if(!g(t))return s.objErrKeyIndex=-1,!1;let o=this.e==="strict_obj"?new Set(Object.keys(t)):void 0,a={},y=[],f=s.path,R=-1;for(let[u,T]of this.d){let d=u;R+=1;let x=`.${u}`;s.path=`${f}${x}`;let p,b=u;if(T.i&&(p=t[T.i],b=T.i),p===void 0&&(p=t[u],b=u),p===void 0&&r==="snake_case"){let l=W(u);p=t[l],b=l}o?.delete(b);let[k,O]=T.r(p,s);if(k)a[d]=O;else{for(let l of O)y.push(j(s,l));if(s.objErrShortCircuit){s.objErrKeyIndex=R;break}}}if(o&&o.size>0)for(let u of o)y.push(`Key '${u}' is not defined in the object shape`);return y.length>0?{errors:y,data:void 0}:this.T?{errors:!1,data:{...t,...a}}:{errors:!1,data:a}})}}}function Re(e,r){return{..._(e,r),e:"extends_object",T:!0}}function be(e){return e.n}function he(e,r){return{..._(e,r),e:"strict_obj"}}function _e(...e){let r={};for(let n of e)Object.assign(r,n.n);return _(r)}function je(e,r){let n={};if(!e.n)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let s=e.n[t];s&&(n[t]=s)}return _(n)}function xe(e,r){let n={};if(!e.n)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.n))r.includes(t)||(n[t]=e.n[t]);return _(n)}function F(e,{checkKey:r,looseCheck:n}={}){return{...i,e:`record<string, ${e.e}>`,r(t,s){return c(this,t,s,()=>{if(!g(t))return!1;let o={},a=[],y=s.path;for(let[f,R]of Object.entries(t)){let u=`.${f}`,T=`${y}${u}`;if(s.path=T,r&&!r(f)){a.push(j(s,`Key '${f}' is not allowed`));continue}let d=t[f],[x,p]=e.r(R,s);if(x)o[f]=d;else{let b=p;for(let k of b)a.push(j(s,k));if(s.objErrShortCircuit)break}}if(a.length>0)if(n)v(s,a);else return{errors:a,data:void 0};return{errors:!1,data:o}})}}}function Oe(e,{checkKey:r}={}){return F(e,{checkKey:r,looseCheck:!0})}function E(e,r,n,t=!1,s){let o=[],a=[],y=new Set,f=n.path,R=Array.isArray(r),u=-1;for(let T of e){u++;let d=R?r[u]:r,x=`[${u}]`,p=`${f}${x}`;n.path=p;let b=d.r(T,n),[k,O]=b;n.path=p;let l=s?.unique;if(k&&l){let h=O,K=typeof l=="string";K?h=O[l]:typeof l=="function"&&(h=l(O)),y.has(h)?(K&&(n.path=`${f}${x}.${l}`),b=[!1,[j(n,K?`Type '${d.n?.[l]?.e}' with value "${h}" is not unique`:typeof l=="function"?`Type '${d.e}' unique fn return with value "${h}" is not unique`:`${d.e} value is not unique`)]]):y.add(h)}let[D,$]=b;if(D)a.push($);else if(t){o.push($.map(h=>j(n,h)));continue}else return{errors:$.map(h=>j(n,h)),data:void 0}}if(o.length>0){if(a.length===0)return{errors:o.slice(0,5).flat(),data:void 0};v(n,o.flat())}return{errors:!1,data:a}}function ke(e,r){return{...i,e:`${e.e}[]`,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:E.call(this,n,e,t,!1,r):!1)}}}function ge(e,r){return{...i,e:`${e.e}[]`,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:E.call(this,n,e,t,!0,r):!1)}}}function we(e){return{...i,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return c(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:E.call(this,r,e,n))}}}function m(e,r,{strict:n=!1}={}){let t={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:n},[s,o]=r.r(e,t);return s?{error:!1,ok:!0,data:o,warnings:t.warnings.length>0?t.warnings:!1}:{ok:!1,error:!0,errors:o}}function me(e){return r=>m(r,e)}function $e(e,r,n){let t=m(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function U(e,r){let n={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:!1};return!!r.r(e,n)[0]}function Ke(e){return r=>U(r,e)}function Pe(e){return{...i,e:"recursive",r(r,n){return e().r(r,n)}}}function Se(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[s,o]=e.r(n,t);return s?[!0,r(o)]:[!1,o]}}}function Ee(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[s,o]=e.r(n,t);if(s){let a=r(o);return a.ok?[!0,a.data]:[!1,a.errors]}return[!1,o]}}}function w(e,r){let n=(()=>{if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e})();return r&&(n==="string"||n==="number"||n==="boolean")?`${n}(${e})`:n}function Ie(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 W(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Ae(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 m(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parse error: ${g(t)?t.message:""}`]}}}function I(e){return typeof e=="function"}function Ne(){return(e,r)=>_(e,r)}0&&(module.exports={rc_any,rc_array,rc_assert_is_valid,rc_boolean,rc_date,rc_default,rc_extends_obj,rc_get_obj_schema,rc_instanceof,rc_is_valid,rc_literals,rc_loose_array,rc_loose_parse,rc_loose_record,rc_null,rc_nullish_default,rc_number,rc_obj_builder,rc_obj_intersection,rc_obj_omit,rc_obj_pick,rc_object,rc_parse,rc_parse_json,rc_parser,rc_record,rc_recursive,rc_rename_from_key,rc_rename_key,rc_strict_obj,rc_string,rc_transform,rc_tuple,rc_undefined,rc_union,rc_unknown,rc_unsafe_transform,rc_validator,snakeCase});
1
+ "use strict";var P=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var Z=(e,r)=>{for(var n in r)P(e,n,{get:r[n],enumerable:!0})},G=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of J(r))!L.call(e,o)&&o!==n&&P(e,o,{get:()=>r[o],enumerable:!(t=Q(r,o))||t.enumerable});return e};var H=e=>G(P({},"__esModule",{value:!0}),e);var ve={};Z(ve,{rc_any:()=>se,rc_array:()=>ke,rc_assert_is_valid:()=>Ee,rc_boolean:()=>ie,rc_date:()=>ye,rc_default:()=>pe,rc_get_obj_schema:()=>he,rc_instanceof:()=>fe,rc_is_valid:()=>M,rc_literals:()=>le,rc_loose_array:()=>ge,rc_loose_parse:()=>$e,rc_loose_record:()=>Oe,rc_null:()=>oe,rc_nullish_default:()=>de,rc_number:()=>ue,rc_obj_builder:()=>Ne,rc_obj_extends:()=>be,rc_obj_intersection:()=>_e,rc_obj_omit:()=>xe,rc_obj_pick:()=>je,rc_obj_strict:()=>W,rc_object:()=>_,rc_parse:()=>$,rc_parse_json:()=>Ie,rc_parser:()=>me,rc_record:()=>D,rc_recursive:()=>Ae,rc_rename_from_key:()=>B,rc_rename_key:()=>Re,rc_string:()=>ce,rc_transform:()=>Pe,rc_tuple:()=>we,rc_undefined:()=>te,rc_union:()=>Te,rc_unknown:()=>ae,rc_unsafe_transform:()=>Se,rc_validator:()=>Ke,snakeCase:()=>z});module.exports=H(ve);function X(e){return{...this,y:e}}function x(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.path?`$${e.path}: `:""}${r}`}function S(e,r){e.warnings.push(x(e,r))}function q(e,r){r.forEach(n=>S(e,n))}function c(e,r,n,t){if(e.o&&r===void 0)return[!0,r];if(e.s&&r==null)return[!0,r];if(e.a&&r===null)return[!0,r];let o=t();if(o&&(o===!0||!o.errors)){let s=o===!0?r:o.data;return e.t&&!e.t(s)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,s]}if(!n.strict){let s=e.y;if(s!==void 0)return S(n,`Fallback used, errors -> ${N(o,n,e,r)}`),[!0,I(s)?s():s];if(e.f&&e.c){let a=e.c(r);if(a)return e.t&&!e.t(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(S(n,`Autofixed from error "${N(o,n,e,r)}"`),[!0,a.fixed])}}return[!1,o?o.errors:[V(e,r)]]}function N(e,r,n,t){return e?e.errors.map(o=>o.replace(r.path,"")).join("; "):V(n,t)}function Y(e){return{...this,f:!0,c:e}}function ee(e){return{...this,t:e}}function v(){return{...this,o:!0}}function V(e,r){return`Type '${m(r,!!e.l)}' is not assignable to '${e.e}'`}function re(){return{...this,a:!0,e:`${this.e}_or_null`}}function ne(){return{...this,s:!0,e:`${this.e}_or_nullish`}}var i={__rc_type:void 0,withFallback:X,where:ee,optional:v,optionalKey:v,orNullish:ne,withAutofix:Y,orNull:re,y:void 0,t:void 0,o:!1,a:!1,s:!1,f:!1,l:!1,i:void 0,c:void 0,d:void 0,n:void 0,u:!1,T:!1,p:[]},te={...i,r(e,r){return c(this,e,r,()=>e===void 0)},e:"undefined"},oe={...i,r(e,r){return c(this,e,r,()=>e===null)},e:"null"},se={...i,r(e,r){return c(this,e,r,()=>!0)},e:"any"},ae={...i,r(e,r){return c(this,e,r,()=>!0)},e:"unknown"},ie={...i,r(e,r){return c(this,e,r,()=>typeof e=="boolean")},e:"boolean"},ce={...i,r(e,r){return c(this,e,r,()=>typeof e=="string")},e:"string"},ue={...i,r(e,r){return c(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},ye={...i,r(e,r){return c(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function fe(e){return{...i,r(r,n){return c(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function le(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...i,r(r,n){return c(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},l:!0,e:e.length==1?m(e[0],!0):e.map(r=>m(r,!0)).join(" | ")}}var C=1;function Te(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...i,r(r,n){return c(this,r,n,()=>{let t=n.path,o=[],s=0,a=!1,y=[],f=0;for(let R of e){f+=1,R.u&&(n.path=`${t}|union ${f}|`),n.objErrShortCircuit=!0,n.objErrKeyIndex=0;let[u,T]=R.r(r,n);n.objErrShortCircuit=!1;let p=n.objErrKeyIndex;if(n.objErrKeyIndex=0,u)return!0;R.u&&p!==-1?p>0?y.push(...T):(s<C&&o.push(...T),s+=1):a=!0}return n.path=t,y.length>0||o.length>0?((s>C||a)&&o.push("not matches any other union member"),{errors:[...y,...o],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function pe(e,r){return{...e,o:!1,s:!1,a:!1,r(n,t){return c(this,n,t,()=>{let o=e.r(n,t),[s,a]=o;return s?a!==void 0?!0:{data:I(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_default`}}function de(e,r){return{...e,o:!1,s:!1,a:!1,r(n,t){return c(this,n,t,()=>{let o=e.r(n,t),[s,a]=o;return s?a!=null?!0:{data:I(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_nullish_default`}}function B(e,r){return{...r,i:e}}var Re=B;function F(e){return w(e)&&"__rc_type"in e}function U(e){if(F(e))return e;if(w(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=U(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]=U(o);return{...i,n,e:"object",u:!0,p:Object.entries(n),r(t,o){return c(this,t,o,()=>{if(!w(t))return o.objErrKeyIndex=-1,!1;let s=this.e==="strict_obj"?new Set(Object.keys(t)):void 0,a={},y=[],f=o.path,R=-1;for(let[u,T]of this.p){let p=u;R+=1;let O=`.${u}`,j=`${f}${O}`;o.path=j;let l,h=u;if(T.i&&(l=t[T.i],h=T.i),l===void 0&&(l=t[u],h=u),l===void 0&&r==="snake_case"){let k=z(u);l=t[k],h=k}s?.delete(h);let[g,d]=T.r(l,o);if(g)a[p]=d;else{for(let k of d)o.path=j,y.push(x(o,k));if(o.objErrShortCircuit){o.objErrKeyIndex=R;break}}}if(s&&s.size>0)for(let u of s)y.push(`Key '${u}' is not defined in the object shape`);return y.length>0?{errors:y,data:void 0}:this.T?{errors:!1,data:{...t,...a}}:{errors:!1,data:a}})}}}function be(e,r){return{..._(e,r),e:"extends_object",T:!0}}function he(e){return e.n}function W(e,r){let n=(()=>{if(F(e)){if(!e.n)throw new Error("rc_strict_obj: expected an object type");if(r?.nonRecursive)return e.n;{let t={};for(let[o,s]of Object.entries(e.n))t[o]=s.n?W(s,r):s;return t}}return e})();return{..._(n,r),e:"strict_obj"}}function _e(...e){let r={};for(let n of e)Object.assign(r,n.n);return _(r)}function je(e,r){let n={};if(!e.n)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let o=e.n[t];o&&(n[t]=o)}return _(n)}function xe(e,r){let n={};if(!e.n)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.n))r.includes(t)||(n[t]=e.n[t]);return _(n)}function D(e,{checkKey:r,looseCheck:n}={}){return{...i,e:`record<string, ${e.e}>`,r(t,o){return c(this,t,o,()=>{if(!w(t))return!1;let s={},a=[],y=o.path;for(let[f,R]of Object.entries(t)){let u=`.${f}`,T=`${y}${u}`;if(o.path=T,r&&!r(f)){a.push(x(o,`Key '${f}' is not allowed`));continue}let p=t[f],[O,j]=e.r(R,o);if(O)s[f]=p;else{let l=j;for(let h of l)a.push(x(o,h));if(o.objErrShortCircuit)break}}if(a.length>0)if(n)q(o,a);else return{errors:a,data:void 0};return{errors:!1,data:s}})}}}function Oe(e,{checkKey:r}={}){return D(e,{checkKey:r,looseCheck:!0})}function E(e,r,n,t=!1,o){let s=[],a=[],y=new Set,f=n.path,R=Array.isArray(r),u=-1;for(let T of e){u++;let p=R?r[u]:r,O=`[${u}]`,j=`${f}${O}`;n.path=j;let l=p.r(T,n),[h,g]=l;n.path=j;let d=o?.unique;if(h&&d){let b=g,A=typeof d=="string";A?b=g[d]:typeof d=="function"&&(b=d(g)),y.has(b)?(A&&(n.path=`${f}${O}.${d}`),l=[!1,[x(n,A?`Type '${p.n?.[d]?.e}' with value "${b}" is not unique`:typeof d=="function"?`Type '${p.e}' unique fn return with value "${b}" is not unique`:`${p.e} value is not unique`)]]):y.add(b)}let[k,K]=l;if(k)a.push(K);else if(t){s.push(K.map(b=>x(n,b)));continue}else return{errors:K.map(b=>x(n,b)),data:void 0}}if(s.length>0){if(a.length===0)return{errors:s.slice(0,5).flat(),data:void 0};q(n,s.flat())}return{errors:!1,data:a}}function ke(e,r){return{...i,e:`${e.e}[]`,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:E.call(this,n,e,t,!1,r):!1)}}}function ge(e,r){return{...i,e:`${e.e}[]`,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:E.call(this,n,e,t,!0,r):!1)}}}function we(e){return{...i,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return c(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:E.call(this,r,e,n))}}}function $(e,r,{strict:n=!1}={}){let t={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:n},[o,s]=r.r(e,t);return o?{error:!1,ok:!0,data:s,warnings:t.warnings.length>0?t.warnings:!1}:{ok:!1,error:!0,errors:s}}function me(e){return r=>$(r,e)}function $e(e,r,n){let t=$(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function M(e,r){let n={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:!1};return!!r.r(e,n)[0]}function Ke(e){return r=>M(r,e)}function Ae(e){return{...i,e:"recursive",r(r,n){return e().r(r,n)}}}function Pe(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[o,s]=e.r(n,t);return o?[!0,r(s)]:[!1,s]}}}function Se(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[o,s]=e.r(n,t);if(o){let a=r(s);return a.ok?[!0,a.data]:[!1,a.errors]}return[!1,s]}}}function m(e,r){let n=(()=>{if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e})();return r&&(n==="string"||n==="number"||n==="boolean")?`${n}(${e})`:n}function Ee(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function w(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function z(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Ie(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${m(e,!0)}`]};let t=JSON.parse(e);return $(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parse error: ${w(t)?t.message:""}`]}}}function I(e){return typeof e=="function"}function Ne(){return(e,r)=>_(e,r)}0&&(module.exports={rc_any,rc_array,rc_assert_is_valid,rc_boolean,rc_date,rc_default,rc_get_obj_schema,rc_instanceof,rc_is_valid,rc_literals,rc_loose_array,rc_loose_parse,rc_loose_record,rc_null,rc_nullish_default,rc_number,rc_obj_builder,rc_obj_extends,rc_obj_intersection,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_rename_key,rc_string,rc_transform,rc_tuple,rc_undefined,rc_union,rc_unknown,rc_unsafe_transform,rc_validator,snakeCase});
@@ -69,18 +69,17 @@ type ObjOptions = {
69
69
  normalizeKeysFrom?: 'snake_case';
70
70
  };
71
71
  declare function rc_object<T extends RcObject>(shape: T, { normalizeKeysFrom }?: ObjOptions): RcObjTypeReturn<T>;
72
- declare function rc_extends_obj<T extends RcObject>(shape: T, options?: ObjOptions): RcObjTypeReturn<T>;
72
+ declare function rc_obj_extends<T extends RcObject>(shape: T, options?: ObjOptions): RcObjTypeReturn<T>;
73
73
  declare function rc_get_obj_schema<T extends RcObject>(type: RcObjTypeReturn<T>): T;
74
74
  /** return an error if the obj has more keys than the expected type */
75
- declare function rc_strict_obj<T extends RcObject>(shape: T, options?: ObjOptions): RcObjTypeReturn<T>;
76
- declare function rc_obj_intersection<A extends RcObject, B extends RcObject>(...objs: [RcObjTypeReturn<A>, RcObjTypeReturn<B>]): RcObjTypeReturn<A & B>;
77
- declare function rc_obj_intersection<A extends RcObject, B extends RcObject, C extends RcObject>(...objs: [RcObjTypeReturn<A>, RcObjTypeReturn<B>, RcObjTypeReturn<C>]): RcObjTypeReturn<A & B & C>;
78
- declare function rc_obj_intersection<A extends RcObject, B extends RcObject, C extends RcObject, D extends RcObject>(...objs: [
79
- RcObjTypeReturn<A>,
80
- RcObjTypeReturn<B>,
81
- RcObjTypeReturn<C>,
82
- RcObjTypeReturn<D>
83
- ]): RcObjTypeReturn<A & B & C & D>;
75
+ declare function rc_obj_strict<T extends AnyObj>(shape: RcType<T>, options?: ObjOptions & {
76
+ nonRecursive?: boolean;
77
+ }): RcType<T>;
78
+ declare function rc_obj_strict<T extends RcObject>(shape: T, options?: ObjOptions): RcObjTypeReturn<T>;
79
+ type AnyObj = Record<string, unknown>;
80
+ declare function rc_obj_intersection<A extends AnyObj, B extends AnyObj>(...objs: [RcType<A>, RcType<B>]): RcType<A & B>;
81
+ declare function rc_obj_intersection<A extends AnyObj, B extends AnyObj, C extends AnyObj>(...objs: [RcType<A>, RcType<B>, RcType<C>]): RcType<A & B & C>;
82
+ declare function rc_obj_intersection<A extends AnyObj, B extends AnyObj, C extends AnyObj, D extends AnyObj>(...objs: [RcType<A>, RcType<B>, RcType<C>, RcType<D>]): RcType<A & B & C & D>;
84
83
  declare function rc_obj_pick<O extends RcObject, K extends keyof O>(obj: RcObjTypeReturn<O>, keys: K[]): RcObjTypeReturn<Pick<O, K>>;
85
84
  declare function rc_obj_omit<O extends RcObject, K extends keyof O>(obj: RcObjTypeReturn<O>, keys: K[]): RcObjTypeReturn<Pick<O, K>>;
86
85
  type RcRecord<V extends RcType<any>> = Record<string, V>;
@@ -154,4 +153,4 @@ type StricTypeToRcType<T> = [T] extends [any[]] ? RcType<T> : [T] extends [Recor
154
153
  } & Partial<Record<keyof RcType<any>, never>>) | RcType<T> : RcType<T>;
155
154
  declare function rc_obj_builder<T extends Record<string, any>>(): <S extends StricTypeToRcType<T>>(schema: { [K in keyof S]: K extends keyof T ? S[K] : never; }, options?: ObjOptions) => RcType<T>;
156
155
 
157
- export { RcInferType, RcParseResult, RcParser, RcPrettyInferType, RcType, rc_any, rc_array, rc_assert_is_valid, rc_boolean, rc_date, rc_default, rc_extends_obj, rc_get_obj_schema, rc_instanceof, rc_is_valid, rc_literals, rc_loose_array, rc_loose_parse, rc_loose_record, rc_null, rc_nullish_default, rc_number, rc_obj_builder, rc_obj_intersection, rc_obj_omit, rc_obj_pick, rc_object, rc_parse, rc_parse_json, rc_parser, rc_record, rc_recursive, rc_rename_from_key, rc_rename_key, rc_strict_obj, rc_string, rc_transform, rc_tuple, rc_undefined, rc_union, rc_unknown, rc_unsafe_transform, rc_validator };
156
+ export { RcInferType, RcParseResult, RcParser, RcPrettyInferType, RcType, rc_any, rc_array, rc_assert_is_valid, rc_boolean, rc_date, rc_default, rc_get_obj_schema, rc_instanceof, rc_is_valid, rc_literals, rc_loose_array, rc_loose_parse, rc_loose_record, rc_null, rc_nullish_default, rc_number, rc_obj_builder, rc_obj_extends, rc_obj_intersection, 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_rename_key, 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,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-OWE42DXC.js";export{c as rc_any,y as rc_array,J as rc_assert_is_valid,e as rc_boolean,h as rc_date,l as rc_default,q as rc_extends_obj,r as rc_get_obj_schema,i as rc_instanceof,E as rc_is_valid,j as rc_literals,z as rc_loose_array,D as rc_loose_parse,x as rc_loose_record,b as rc_null,m as rc_nullish_default,g as rc_number,M as rc_obj_builder,t as rc_obj_intersection,v as rc_obj_omit,u as rc_obj_pick,p as rc_object,B as rc_parse,L as rc_parse_json,C as rc_parser,w as rc_record,G as rc_recursive,n as rc_rename_from_key,o as rc_rename_key,s as rc_strict_obj,f as rc_string,H as rc_transform,A as rc_tuple,a as rc_undefined,k as rc_union,d as rc_unknown,I as rc_unsafe_transform,F as rc_validator,K as snakeCase};
1
+ import{A,B,C,D,E,F,G,H,I,J,K,L,M,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-2DQLFKXQ.js";export{c as rc_any,y as rc_array,J as rc_assert_is_valid,e as rc_boolean,h as rc_date,l as rc_default,r as rc_get_obj_schema,i as rc_instanceof,E as rc_is_valid,j as rc_literals,z as rc_loose_array,D as rc_loose_parse,x as rc_loose_record,b as rc_null,m as rc_nullish_default,g as rc_number,M as rc_obj_builder,q as rc_obj_extends,t as rc_obj_intersection,v as rc_obj_omit,u as rc_obj_pick,s as rc_obj_strict,p as rc_object,B as rc_parse,L as rc_parse_json,C as rc_parser,w as rc_record,G as rc_recursive,n as rc_rename_from_key,o as rc_rename_key,f as rc_string,H as rc_transform,A as rc_tuple,a as rc_undefined,k as rc_union,d as rc_unknown,I as rc_unsafe_transform,F as rc_validator,K 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.38.0",
4
+ "version": "0.39.0",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "dist"
@@ -1 +0,0 @@
1
- function B(e){return{...this,y:e}}function _(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.path?`$${e.path}: `:""}${r}`}function K(e,r){e.warnings.push(_(e,r))}function C(e,r){r.forEach(n=>K(e,n))}function c(e,r,n,t){if(e.o&&r===void 0)return[!0,r];if(e.s&&r==null)return[!0,r];if(e.a&&r===null)return[!0,r];let s=t();if(s&&(s===!0||!s.errors)){let o=s===!0?r:s.data;return e.t&&!e.t(o)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,o]}if(!n.strict){let o=e.y;if(o!==void 0)return K(n,`Fallback used, errors -> ${I(s,n,e,r)}`),[!0,E(o)?o():o];if(e.f&&e.c){let a=e.c(r);if(a)return e.t&&!e.t(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(K(n,`Autofixed from error "${I(s,n,e,r)}"`),[!0,a.fixed])}}return[!1,s?s.errors:[v(e,r)]]}function I(e,r,n,t){return e?e.errors.map(s=>s.replace(r.path,"")).join("; "):v(n,t)}function F(e){return{...this,f:!0,c:e}}function U(e){return{...this,t:e}}function A(){return{...this,o:!0}}function v(e,r){return`Type '${w(r,!!e.l)}' is not assignable to '${e.e}'`}function W(){return{...this,a:!0,e:`${this.e}_or_null`}}function D(){return{...this,s:!0,e:`${this.e}_or_nullish`}}var i={__rc_type:void 0,withFallback:B,where:U,optional:A,optionalKey:A,orNullish:D,withAutofix:F,orNull:W,y:void 0,t:void 0,o:!1,a:!1,s:!1,f:!1,l:!1,i:void 0,c:void 0,p:void 0,n:void 0,u:!1,T:!1,d:[]},Z={...i,r(e,r){return c(this,e,r,()=>e===void 0)},e:"undefined"},G={...i,r(e,r){return c(this,e,r,()=>e===null)},e:"null"},H={...i,r(e,r){return c(this,e,r,()=>!0)},e:"any"},X={...i,r(e,r){return c(this,e,r,()=>!0)},e:"unknown"},Y={...i,r(e,r){return c(this,e,r,()=>typeof e=="boolean")},e:"boolean"},ee={...i,r(e,r){return c(this,e,r,()=>typeof e=="string")},e:"string"},re={...i,r(e,r){return c(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},ne={...i,r(e,r){return c(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function te(e){return{...i,r(r,n){return c(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{...i,r(r,n){return c(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},l:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var N=1;function oe(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...i,r(r,n){return c(this,r,n,()=>{let t=n.path,s=[],o=0,a=!1,y=[],f=0;for(let R of e){f+=1,R.u&&(n.path=`${t}|union ${f}|`),n.objErrShortCircuit=!0,n.objErrKeyIndex=0;let[u,T]=R.r(r,n);n.objErrShortCircuit=!1;let d=n.objErrKeyIndex;if(n.objErrKeyIndex=0,u)return!0;R.u&&d!==-1?d>0?y.push(...T):(o<N&&s.push(...T),o+=1):a=!0}return n.path=t,y.length>0||s.length>0?((o>N||a)&&s.push("not matches any other union member"),{errors:[...y,...s],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function ae(e,r){return{...e,o:!1,s:!1,a:!1,r(n,t){return c(this,n,t,()=>{let s=e.r(n,t),[o,a]=s;return o?a!==void 0?!0:{data:E(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_default`}}function ie(e,r){return{...e,o:!1,s:!1,a:!1,r(n,t){return c(this,n,t,()=>{let s=e.r(n,t),[o,a]=s;return o?a!=null?!0:{data:E(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_nullish_default`}}function M(e,r){return{...r,i:e}}var ce=M;function z(e){return g(e)&&"__rc_type"in e}function q(e){if(z(e))return e;if(g(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=q(t);return j(r)}throw new Error(`invalid schema: ${e}`)}function j(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,s]of Object.entries(e))n[t]=q(s);return{...i,n,e:"object",u:!0,d:Object.entries(n),r(t,s){return c(this,t,s,()=>{if(!g(t))return s.objErrKeyIndex=-1,!1;let o=this.e==="strict_obj"?new Set(Object.keys(t)):void 0,a={},y=[],f=s.path,R=-1;for(let[u,T]of this.d){let d=u;R+=1;let x=`.${u}`;s.path=`${f}${x}`;let p,b=u;if(T.i&&(p=t[T.i],b=T.i),p===void 0&&(p=t[u],b=u),p===void 0&&r==="snake_case"){let l=L(u);p=t[l],b=l}o?.delete(b);let[k,O]=T.r(p,s);if(k)a[d]=O;else{for(let l of O)y.push(_(s,l));if(s.objErrShortCircuit){s.objErrKeyIndex=R;break}}}if(o&&o.size>0)for(let u of o)y.push(`Key '${u}' is not defined in the object shape`);return y.length>0?{errors:y,data:void 0}:this.T?{errors:!1,data:{...t,...a}}:{errors:!1,data:a}})}}}function ue(e,r){return{...j(e,r),e:"extends_object",T:!0}}function ye(e){return e.n}function fe(e,r){return{...j(e,r),e:"strict_obj"}}function le(...e){let r={};for(let n of e)Object.assign(r,n.n);return j(r)}function Te(e,r){let n={};if(!e.n)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let s=e.n[t];s&&(n[t]=s)}return j(n)}function de(e,r){let n={};if(!e.n)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.n))r.includes(t)||(n[t]=e.n[t]);return j(n)}function Q(e,{checkKey:r,looseCheck:n}={}){return{...i,e:`record<string, ${e.e}>`,r(t,s){return c(this,t,s,()=>{if(!g(t))return!1;let o={},a=[],y=s.path;for(let[f,R]of Object.entries(t)){let u=`.${f}`,T=`${y}${u}`;if(s.path=T,r&&!r(f)){a.push(_(s,`Key '${f}' is not allowed`));continue}let d=t[f],[x,p]=e.r(R,s);if(x)o[f]=d;else{let b=p;for(let k of b)a.push(_(s,k));if(s.objErrShortCircuit)break}}if(a.length>0)if(n)C(s,a);else return{errors:a,data:void 0};return{errors:!1,data:o}})}}}function pe(e,{checkKey:r}={}){return Q(e,{checkKey:r,looseCheck:!0})}function P(e,r,n,t=!1,s){let o=[],a=[],y=new Set,f=n.path,R=Array.isArray(r),u=-1;for(let T of e){u++;let d=R?r[u]:r,x=`[${u}]`,p=`${f}${x}`;n.path=p;let b=d.r(T,n),[k,O]=b;n.path=p;let l=s?.unique;if(k&&l){let h=O,$=typeof l=="string";$?h=O[l]:typeof l=="function"&&(h=l(O)),y.has(h)?($&&(n.path=`${f}${x}.${l}`),b=[!1,[_(n,$?`Type '${d.n?.[l]?.e}' with value "${h}" is not unique`:typeof l=="function"?`Type '${d.e}' unique fn return with value "${h}" is not unique`:`${d.e} value is not unique`)]]):y.add(h)}let[V,m]=b;if(V)a.push(m);else if(t){o.push(m.map(h=>_(n,h)));continue}else return{errors:m.map(h=>_(n,h)),data:void 0}}if(o.length>0){if(a.length===0)return{errors:o.slice(0,5).flat(),data:void 0};C(n,o.flat())}return{errors:!1,data:a}}function Re(e,r){return{...i,e:`${e.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 be(e,r){return{...i,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 he(e){return{...i,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 S(e,r,{strict:n=!1}={}){let t={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:n},[s,o]=r.r(e,t);return s?{error:!1,ok:!0,data:o,warnings:t.warnings.length>0?t.warnings:!1}:{ok:!1,error:!0,errors:o}}function _e(e){return r=>S(r,e)}function je(e,r,n){let t=S(e,r,n);return t.error?{data:null,errors:t.errors,warnings:!1}:{data:t.data,errors:!1,warnings:t.warnings}}function J(e,r){let n={warnings:[],path:"",objErrShortCircuit:!1,objErrKeyIndex:0,strict:!1};return!!r.r(e,n)[0]}function xe(e){return r=>J(r,e)}function Oe(e){return{...i,e:"recursive",r(r,n){return e().r(r,n)}}}function ke(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[s,o]=e.r(n,t);return s?[!0,r(o)]:[!1,o]}}}function ge(e,r){return{...i,e:`transform_from_${e.e}`,r(n,t){let[s,o]=e.r(n,t);if(s){let a=r(o);return a.ok?[!0,a.data]:[!1,a.errors]}return[!1,o]}}}function w(e,r){let n=(()=>{if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e})();return r&&(n==="string"||n==="number"||n==="boolean")?`${n}(${e})`:n}function we(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 L(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 ${w(e,!0)}`]};let t=JSON.parse(e);return S(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parse error: ${g(t)?t.message:""}`]}}}function E(e){return typeof e=="function"}function $e(){return(e,r)=>j(e,r)}export{Z as a,G as b,H as c,X as d,Y as e,ee as f,re as g,ne as h,te as i,se as j,oe as k,ae as l,ie as m,M as n,ce as o,j as p,ue as q,ye as r,fe as s,le as t,Te as u,de as v,Q as w,pe as x,Re as y,be as z,he as A,S as B,_e as C,je as D,J as E,xe as F,Oe as G,ke as H,ge as I,we as J,L as K,me as L,$e as M};