runcheck 0.18.0 → 0.19.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
@@ -102,6 +102,12 @@ Validates only the values of a object, equivalent to `Record<string, T>` in type
102
102
  const shape = rc_record(rc_number)
103
103
 
104
104
  // shape type is `Record<string, number>`
105
+
106
+ // `rc_record` also accepts the following options:
107
+ const shape = rc_record(rc_number, {
108
+ checkKey: (key) => key !== 'a', // Check if the key is valid
109
+ looseCheck: true, // If true, the invalid keys will be striped
110
+ })
105
111
  ```
106
112
 
107
113
  # Parsing
@@ -1 +1 @@
1
- "use strict";var c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var d=(e,r)=>{for(var t in r)c(e,t,{get:r[t],enumerable:!0})},R=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of T(r))!p.call(e,n)&&n!==t&&c(e,n,{get:()=>r[n],enumerable:!(i=y(r,n))||i.enumerable});return e};var h=e=>R(c({},"__esModule",{value:!0}),e);var P={};d(P,{rc_boolean_autofix:()=>k,rc_number_autofix:()=>A,rc_string_autofix:()=>O});module.exports=h(P);function _(e){return{...this,o:e}}function a(e,r,t,i){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let n=i();if(n&&(n===!0||"data"in n)){let s=n===!0?r:n.data;return e.s&&!e.s(s)?[!1,[e.n(s)]]:[!0,s]}if(e.o!==void 0)return t.warnings.push(`Fallback used, ${e.n(r)}`),[!0,e.o];if(e.f&&e.i){let s=e.i(r);if(s)return e.s&&!e.s(s.fixed)?[!1,[e.n(s.fixed)]]:(t.warnings.push(`${t.path?`$${t.path}: `:""}Autofixed from error "${e.n(r)}"`),[!0,s.fixed])}return[!1,n&&"errors"in n?n.errors:[e.n(r)]]}function b(e){return{...this,f:!0,i:e}}function g(e){return{...this,s:e,e:`${this.e}_with_predicate`}}function x(){return{...this,c:!0}}function w(e){return`Type '${j(e)}' is not assignable to '${this.e}'`}function m(){return{...this,l:!0,e:`${this.e}_or_nullable`}}function $(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var o={withFallback:_,where:g,optional:x,n:w,nullable:m,withAutofix:b,nullish:$},N={...o,r(e,r){return a(this,e,r,()=>e===void 0)},e:"undefined"},V={...o,r(e,r){return a(this,e,r,()=>e===null)},e:"null"},I={...o,r(e,r){return a(this,e,r,()=>!0)},e:"any"},q={...o,r(e,r){return a(this,e,r,()=>!0)},e:"unknown"},u={...o,r(e,r){return a(this,e,r,()=>typeof e=="boolean")},e:"boolean"},l={...o,r(e,r){return a(this,e,r,()=>typeof e=="string")},e:"string"},f={...o,r(e,r){return a(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},E={...o,r(e,r){return a(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function j(e){if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e}var k=u.withAutofix(e=>e==null||e===0||e===1?{fixed:!!e}:e==="true"||e==="false"?{fixed:e==="true"}:!1),O=l.withAutofix(e=>typeof e=="number"&&!Number.isNaN(e)?{fixed:e.toString()}:!1),A=f.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 c=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var d=(e,r)=>{for(var t in r)c(e,t,{get:r[t],enumerable:!0})},R=(e,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of T(r))!p.call(e,n)&&n!==t&&c(e,n,{get:()=>r[n],enumerable:!(i=y(r,n))||i.enumerable});return e};var h=e=>R(c({},"__esModule",{value:!0}),e);var P={};d(P,{rc_boolean_autofix:()=>j,rc_number_autofix:()=>A,rc_string_autofix:()=>O});module.exports=h(P);function _(e){return{...this,o:e}}function a(e,r,t,i){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let n=i();if(n&&(n===!0||"data"in n)){let s=n===!0?r:n.data;return e.s&&!e.s(s)?[!1,[e.n(s)]]:[!0,s]}if(e.o!==void 0)return t.warnings.push(`Fallback used, ${e.n(r)}`),[!0,e.o];if(e.f&&e.i){let s=e.i(r);if(s)return e.s&&!e.s(s.fixed)?[!1,[e.n(s.fixed)]]:(t.warnings.push(`${t.path?`$${t.path}: `:""}Autofixed from error "${e.n(r)}"`),[!0,s.fixed])}return[!1,n&&"errors"in n?n.errors:[e.n(r)]]}function b(e){return{...this,f:!0,i:e}}function g(e){return{...this,s:e,e:`${this.e}_with_predicate`}}function x(){return{...this,c:!0}}function w(e){return`Type '${k(e)}' is not assignable to '${this.e}'`}function m(){return{...this,l:!0,e:`${this.e}_or_nullable`}}function $(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var o={withFallback:_,where:g,optional:x,n:w,nullable:m,withAutofix:b,nullish:$},N={...o,r(e,r){return a(this,e,r,()=>e===void 0)},e:"undefined"},V={...o,r(e,r){return a(this,e,r,()=>e===null)},e:"null"},I={...o,r(e,r){return a(this,e,r,()=>!0)},e:"any"},q={...o,r(e,r){return a(this,e,r,()=>!0)},e:"unknown"},u={...o,r(e,r){return a(this,e,r,()=>typeof e=="boolean")},e:"boolean"},l={...o,r(e,r){return a(this,e,r,()=>typeof e=="string")},e:"string"},f={...o,r(e,r){return a(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},E={...o,r(e,r){return a(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function k(e){if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e}var j=u.withAutofix(e=>e==null||e===0||e===1?{fixed:!!e}:e==="true"||e==="false"?{fixed:e==="true"}:!1),O=l.withAutofix(e=>typeof e=="number"&&!Number.isNaN(e)?{fixed:e.toString()}:!1),A=f.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-65SEYLTW.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-OEIPIHQO.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 S(e){return{...this,o:e}}function i(e,r,n,t){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let s=t();if(s&&(s===!0||"data"in s)){let a=s===!0?r:s.data;return e.s&&!e.s(a)?[!1,[e.n(a)]]:[!0,a]}if(e.o!==void 0)return n.warnings.push(`Fallback used, ${e.n(r)}`),[!0,e.o];if(e.f&&e.i){let a=e.i(r);if(a)return e.s&&!e.s(a.fixed)?[!1,[e.n(a.fixed)]]:(n.warnings.push(`${n.path?`$${n.path}: `:""}Autofixed from error "${e.n(r)}"`),[!0,a.fixed])}return[!1,s&&"errors"in s?s.errors:[e.n(r)]]}function V(e){return{...this,f:!0,i:e}}function I(e){return{...this,s:e,e:`${this.e}_with_predicate`}}function q(){return{...this,c:!0}}function E(e){return`Type '${A(e)}' is not assignable to '${this.e}'`}function K(){return{...this,l:!0,e:`${this.e}_or_nullable`}}function N(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var o={withFallback:S,where:I,optional:q,n:E,nullable:K,withAutofix:V,nullish:N},F={...o,r(e,r){return i(this,e,r,()=>e===void 0)},e:"undefined"},U={...o,r(e,r){return i(this,e,r,()=>e===null)},e:"null"},z={...o,r(e,r){return i(this,e,r,()=>!0)},e:"any"},B={...o,r(e,r){return i(this,e,r,()=>!0)},e:"unknown"},D={...o,r(e,r){return i(this,e,r,()=>typeof e=="boolean")},e:"boolean"},M={...o,r(e,r){return i(this,e,r,()=>typeof e=="string")},e:"string"},W={...o,r(e,r){return i(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},L={...o,r(e,r){return i(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function Z(e){return{...o,r(r,n){return i(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function G(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...o,r(r,n){return i(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},e:e.length==1?`${A(e[0])}_literal`:"literals"}}function H(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...o,r(r,n){return i(this,r,n,()=>{for(let t of e)if(t.r(r,n)[0])return!0;return!1})},e:e.map(r=>r.e).join(" | ")}}function J(e,r){return{...r,a:e}}function h(e,r){if(!r)return e;if(e.startsWith("$[")||e.startsWith("$.")){let[n="",t]=e.split(": "),s=n.slice(1);return`$${r}${s}: ${t}`}return`$${r}: ${e}`}function j(e,{normalizeKeysFrom:r}={}){return{...o,t:e,e:"object",y:!0,r(n,t){return i(this,n,t,()=>{if(!P(n))return!1;let s=new Set(Object.keys(n)),a={},c=[],y=t.path;for(let[u,p]of Object.entries(e)){let _=u,d=`.${u}`;t.path=`${y}${d}`;let l,f=u;if(p.a&&(l=n[p.a],f=p.a),l===void 0&&(l=n[u],f=u),l===void 0&&r==="snake_case"){let T=C(u);l=n[T],f=T}s.delete(f);let[b,g]=p.r(l,t);if(b)a[_]=g;else{let T=g;for(let x of T)c.push(h(x,d))}}if(this.e==="strict_obj"&&s.size>0)for(let u of s)c.push(`Key '${u}' is not defined in the object shape`);return c.length>0?{errors:c}:{data:a}})}}}function Q(e){return e.t}function X(e){return{...j(e),e:"strict_obj"}}function Y(e,r){return j({...e.t,...r.t})}function ee(e,{checkKey:r,looseCheck:n}={}){return{...o,e:`record<string, ${e.e}>`,r(t,s){return i(this,t,s,()=>{if(!P(t))return!1;let a={},c=[];for(let[y,u]of Object.entries(t)){let p=`.${y}`;if(r&&!r(y)){c.push(h(`Key '${y}' is not allowed`,p));continue}let _=t[y],[d,l]=e.r(u,s);if(d)a[y]=_;else{let f=l;for(let b of f)c.push(h(b,p))}}if(c.length>0)if(n)s.warnings.push(...c);else return{errors:c};return{data:a}})}}}function m(e,r){if(typeof r=="string"&&!e.t?.[r])throw new Error(`${e.e} can't be used with unique key option`)}function $(e,r,n,t=!1,s){let a=-1,c=[],y=[],u=new Set,p=n.path;for(let _ of e){a++;let d=Array.isArray(r)?r[a]:r,l=`[${a}]`;n.path=`${p}${l}`;let f=d.r(_,n),[b,g]=f,T=s?.unique;if(b&&T){let R=g,k=typeof T=="string";k&&(R=g[T]),u.has(R)?f=[!1,[k?h(`Type '${d.t?.[T]?.e}' with value "${R}" is not unique`,`.${T}`):`${d.e} value is not unique`]]:u.add(R)}let[x,w]=f;if(x)y.push(w);else if(t){c.push(w.map(R=>h(R,l)));continue}else return{errors:w.map(R=>h(R,l))}}if(c.length>0){if(y.length===0)return{errors:c.slice(0,5).flat()};n.warnings.push(...c.flat())}return{data:y}}function re(e,r){return m(e,r?.unique),{...o,e:`${e.e}[]`,r(n,t){return i(this,n,t,()=>Array.isArray(n)?n.length===0?!0:$.call(this,n,e,t,!1,r):!1)}}}function ne(e,r){return m(e,r?.unique),{...o,e:`${e.e}[]`,r(n,t){return i(this,n,t,()=>Array.isArray(n)?n.length===0?!0:$.call(this,n,e,t,!0,r):!1)}}}function te(e){return{...o,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return i(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:$.call(this,r,e,n))}}}function O(e,r){let n={warnings:[],path:""},[t,s]=r.r(e,n);return t?{error:!1,data:s,warnings:n.warnings.length>0?n.warnings:!1}:{error:!0,errors:s}}function se(e){return r=>O(r,e)}function ae(e,r){let n=O(e,r);return n.error?{data:null,errors:n.errors,warnings:!1}:{data:n.data,errors:!1,warnings:n.warnings}}function v(e,r){let n={warnings:[],path:""};return!!r.r(e,n)[0]}function oe(e){return r=>v(r,e)}function ie(e){return{...o,e:"recursive",r(r,n){return e().r(r,n)}}}function ce(e,r){return{...o,e:`transform_from_${e.e}`,r(n,t){let[s,a]=e.r(n,t);return s?[!0,r(a)]:[!1,a]}}}function A(e){if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e}function P(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function C(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}export{F as a,U as b,z as c,B as d,D as e,M as f,W as g,L as h,Z as i,G as j,H as k,J as l,j as m,Q as n,X as o,Y as p,ee as q,re as r,ne as s,te as t,O as u,se as v,ae as w,v as x,oe as y,ie as z,ce as A,C as B};
package/dist/runcheck.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var $=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var N=(e,r)=>{for(var n in r)$(e,n,{get:r[n],enumerable:!0})},v=(e,r,n,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of E(r))!K.call(e,t)&&t!==n&&$(e,t,{get:()=>r[t],enumerable:!(s=q(r,t))||s.enumerable});return e};var C=e=>v($({},"__esModule",{value:!0}),e);var Re={};N(Re,{rc_any:()=>G,rc_array:()=>ce,rc_boolean:()=>J,rc_date:()=>Y,rc_get_obj_schema:()=>se,rc_instanceof:()=>ee,rc_is_valid:()=>P,rc_literals:()=>re,rc_loose_array:()=>ue,rc_loose_parse:()=>fe,rc_null:()=>Z,rc_number:()=>X,rc_obj_intersection:()=>oe,rc_object:()=>j,rc_parse:()=>m,rc_parser:()=>ye,rc_record:()=>ie,rc_recursive:()=>pe,rc_rename_key:()=>te,rc_strict_obj:()=>ae,rc_string:()=>Q,rc_transform:()=>de,rc_tuple:()=>le,rc_undefined:()=>L,rc_union:()=>ne,rc_unknown:()=>H,rc_validator:()=>Te,snakeCase:()=>I});module.exports=C(Re);function F(e){return{...this,o:e}}function i(e,r,n,s){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let t=s();if(t&&(t===!0||"data"in t)){let a=t===!0?r:t.data;return e.s&&!e.s(a)?[!1,[e.n(a)]]:[!0,a]}if(e.o!==void 0)return n.warnings.push(`Fallback used, ${e.n(r)}`),[!0,e.o];if(e.y&&e.i){let a=e.i(r);if(a)return e.s&&!e.s(a.fixed)?[!1,[e.n(a.fixed)]]:(n.warnings.push(`${n.path?`$${n.path}: `:""}Autofixed from error "${e.n(r)}"`),[!0,a.fixed])}return[!1,t&&"errors"in t?t.errors:[e.n(r)]]}function U(e){return{...this,y:!0,i:e}}function z(e){return{...this,s:e,e:`${this.e}_with_predicate`}}function B(){return{...this,c:!0}}function D(e){return`Type '${S(e)}' is not assignable to '${this.e}'`}function M(){return{...this,l:!0,e:`${this.e}_or_nullable`}}function W(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var o={withFallback:F,where:z,optional:B,n:D,nullable:M,withAutofix:U,nullish:W},L={...o,r(e,r){return i(this,e,r,()=>e===void 0)},e:"undefined"},Z={...o,r(e,r){return i(this,e,r,()=>e===null)},e:"null"},G={...o,r(e,r){return i(this,e,r,()=>!0)},e:"any"},H={...o,r(e,r){return i(this,e,r,()=>!0)},e:"unknown"},J={...o,r(e,r){return i(this,e,r,()=>typeof e=="boolean")},e:"boolean"},Q={...o,r(e,r){return i(this,e,r,()=>typeof e=="string")},e:"string"},X={...o,r(e,r){return i(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},Y={...o,r(e,r){return i(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ee(e){return{...o,r(r,n){return i(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function re(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...o,r(r,n){return i(this,r,n,()=>{for(let s of e)if(r===s)return!0;return!1})},e:e.length==1?`${S(e[0])}_literal`:"literals"}}function ne(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...o,r(r,n){return i(this,r,n,()=>{for(let s of e)if(s.r(r,n)[0])return!0;return!1})},e:e.map(r=>r.e).join(" | ")}}function te(e,r){return{...r,a:e}}function g(e,r){if(!r)return e;if(e.startsWith("$[")||e.startsWith("$.")){let[n="",s]=e.split(": "),t=n.slice(1);return`$${r}${t}: ${s}`}return`$${r}: ${e}`}function j(e,{normalizeKeysFrom:r}={}){return{...o,t:e,e:"object",f:!0,r(n,s){return i(this,n,s,()=>{if(!V(n))return!1;let t=new Set(Object.keys(n)),a={},u=[],R=s.path;for(let[c,f]of Object.entries(e)){let h=c,T=`.${c}`;s.path=`${R}${T}`;let l,p=c;if(f.a&&(l=n[f.a],p=f.a),l===void 0&&(l=n[c],p=c),l===void 0&&r==="snake_case"){let y=I(c);l=n[y],p=y}t.delete(p);let[b,_]=f.r(l,s);if(b)a[h]=_;else{let y=_;for(let x of y)u.push(g(x,T))}}if(this.e==="strict_obj"&&t.size>0)for(let c of t)u.push(`Key '${c}' is not defined in the object shape`);return u.length>0?{errors:u}:{data:a}})}}}function se(e){return e.t}function ae(e){return{...j(e),e:"strict_obj"}}function oe(e,r){return j({...e.t,...r.t})}function ie(e){return{...o,e:`record<string, ${e.e}>`,r(r,n){return i(this,r,n,()=>{if(!V(r))return!1;let s={},t=[];for(let[a,u]of Object.entries(r)){let R=r[a],[c,f]=e.r(u,n);if(c)s[a]=R;else{let h=f;for(let T of h)t.push(g(T,`.${a}`))}}return t.length>0?{errors:t}:{data:s}})}}}function A(e,r){if(typeof r=="string"&&!e.t?.[r])throw new Error(`${e.e} can't be used with unique key option`)}function k(e,r,n,s=!1,t){let a=-1,u=[],R=[],c=new Set,f=n.path;for(let h of e){a++;let T=Array.isArray(r)?r[a]:r,l=`[${a}]`;n.path=`${f}${l}`;let p=T.r(h,n),[b,_]=p,y=t?.unique;if(b&&y){let d=_,O=typeof y=="string";O&&(d=_[y]),c.has(d)?p=[!1,[O?g(`Type '${T.t?.[y]?.e}' with value "${d}" is not unique`,`.${y}`):`${T.e} value is not unique`]]:c.add(d)}let[x,w]=p;if(x)R.push(w);else if(s){u.push(w.map(d=>g(d,l)));continue}else return{errors:w.map(d=>g(d,l))}}if(u.length>0){if(R.length===0)return{errors:u.slice(0,5).flat()};n.warnings.push(...u.flat())}return{data:R}}function ce(e,r){return A(e,r?.unique),{...o,e:`${e.e}[]`,r(n,s){return i(this,n,s,()=>Array.isArray(n)?n.length===0?!0:k.call(this,n,e,s,!1,r):!1)}}}function ue(e,r){return A(e,r?.unique),{...o,e:`${e.e}[]`,r(n,s){return i(this,n,s,()=>Array.isArray(n)?n.length===0?!0:k.call(this,n,e,s,!0,r):!1)}}}function le(e){return{...o,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return i(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:k.call(this,r,e,n))}}}function m(e,r){let n={warnings:[],path:""},[s,t]=r.r(e,n);return s?{error:!1,data:t,warnings:n.warnings.length>0?n.warnings:!1}:{error:!0,errors:t}}function ye(e){return r=>m(r,e)}function fe(e,r){let n=m(e,r);return n.error?{data:null,errors:n.errors,warnings:!1}:{data:n.data,errors:!1,warnings:n.warnings}}function P(e,r){let n={warnings:[],path:""};return!!r.r(e,n)[0]}function Te(e){return r=>P(r,e)}function pe(e){return{...o,e:"recursive",r(r,n){return e().r(r,n)}}}function de(e,r){return{...o,e:`transform_from_${e.e}`,r(n,s){let[t,a]=e.r(n,s);return t?[!0,r(a)]:[!1,a]}}}function S(e){if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e}function V(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("_")}0&&(module.exports={rc_any,rc_array,rc_boolean,rc_date,rc_get_obj_schema,rc_instanceof,rc_is_valid,rc_literals,rc_loose_array,rc_loose_parse,rc_null,rc_number,rc_obj_intersection,rc_object,rc_parse,rc_parser,rc_record,rc_recursive,rc_rename_key,rc_strict_obj,rc_string,rc_transform,rc_tuple,rc_undefined,rc_union,rc_unknown,rc_validator,snakeCase});
1
+ "use strict";var $=Object.defineProperty;var q=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var N=(e,r)=>{for(var n in r)$(e,n,{get:r[n],enumerable:!0})},v=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of E(r))!K.call(e,s)&&s!==n&&$(e,s,{get:()=>r[s],enumerable:!(t=q(r,s))||t.enumerable});return e};var C=e=>v($({},"__esModule",{value:!0}),e);var Re={};N(Re,{rc_any:()=>G,rc_array:()=>ce,rc_boolean:()=>J,rc_date:()=>Y,rc_get_obj_schema:()=>se,rc_instanceof:()=>ee,rc_is_valid:()=>P,rc_literals:()=>re,rc_loose_array:()=>ue,rc_loose_parse:()=>fe,rc_null:()=>Z,rc_number:()=>X,rc_obj_intersection:()=>oe,rc_object:()=>k,rc_parse:()=>m,rc_parser:()=>ye,rc_record:()=>ie,rc_recursive:()=>pe,rc_rename_key:()=>te,rc_strict_obj:()=>ae,rc_string:()=>Q,rc_transform:()=>de,rc_tuple:()=>le,rc_undefined:()=>L,rc_union:()=>ne,rc_unknown:()=>H,rc_validator:()=>Te,snakeCase:()=>I});module.exports=C(Re);function F(e){return{...this,o:e}}function i(e,r,n,t){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let s=t();if(s&&(s===!0||"data"in s)){let a=s===!0?r:s.data;return e.s&&!e.s(a)?[!1,[e.n(a)]]:[!0,a]}if(e.o!==void 0)return n.warnings.push(`Fallback used, ${e.n(r)}`),[!0,e.o];if(e.y&&e.i){let a=e.i(r);if(a)return e.s&&!e.s(a.fixed)?[!1,[e.n(a.fixed)]]:(n.warnings.push(`${n.path?`$${n.path}: `:""}Autofixed from error "${e.n(r)}"`),[!0,a.fixed])}return[!1,s&&"errors"in s?s.errors:[e.n(r)]]}function U(e){return{...this,y:!0,i:e}}function z(e){return{...this,s:e,e:`${this.e}_with_predicate`}}function B(){return{...this,c:!0}}function D(e){return`Type '${S(e)}' is not assignable to '${this.e}'`}function M(){return{...this,l:!0,e:`${this.e}_or_nullable`}}function W(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var o={withFallback:F,where:z,optional:B,n:D,nullable:M,withAutofix:U,nullish:W},L={...o,r(e,r){return i(this,e,r,()=>e===void 0)},e:"undefined"},Z={...o,r(e,r){return i(this,e,r,()=>e===null)},e:"null"},G={...o,r(e,r){return i(this,e,r,()=>!0)},e:"any"},H={...o,r(e,r){return i(this,e,r,()=>!0)},e:"unknown"},J={...o,r(e,r){return i(this,e,r,()=>typeof e=="boolean")},e:"boolean"},Q={...o,r(e,r){return i(this,e,r,()=>typeof e=="string")},e:"string"},X={...o,r(e,r){return i(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},Y={...o,r(e,r){return i(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function ee(e){return{...o,r(r,n){return i(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function re(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...o,r(r,n){return i(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},e:e.length==1?`${S(e[0])}_literal`:"literals"}}function ne(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...o,r(r,n){return i(this,r,n,()=>{for(let t of e)if(t.r(r,n)[0])return!0;return!1})},e:e.map(r=>r.e).join(" | ")}}function te(e,r){return{...r,a:e}}function h(e,r){if(!r)return e;if(e.startsWith("$[")||e.startsWith("$.")){let[n="",t]=e.split(": "),s=n.slice(1);return`$${r}${s}: ${t}`}return`$${r}: ${e}`}function k(e,{normalizeKeysFrom:r}={}){return{...o,t:e,e:"object",f:!0,r(n,t){return i(this,n,t,()=>{if(!V(n))return!1;let s=new Set(Object.keys(n)),a={},c=[],y=t.path;for(let[u,p]of Object.entries(e)){let _=u,d=`.${u}`;t.path=`${y}${d}`;let l,f=u;if(p.a&&(l=n[p.a],f=p.a),l===void 0&&(l=n[u],f=u),l===void 0&&r==="snake_case"){let T=I(u);l=n[T],f=T}s.delete(f);let[b,g]=p.r(l,t);if(b)a[_]=g;else{let T=g;for(let x of T)c.push(h(x,d))}}if(this.e==="strict_obj"&&s.size>0)for(let u of s)c.push(`Key '${u}' is not defined in the object shape`);return c.length>0?{errors:c}:{data:a}})}}}function se(e){return e.t}function ae(e){return{...k(e),e:"strict_obj"}}function oe(e,r){return k({...e.t,...r.t})}function ie(e,{checkKey:r,looseCheck:n}={}){return{...o,e:`record<string, ${e.e}>`,r(t,s){return i(this,t,s,()=>{if(!V(t))return!1;let a={},c=[];for(let[y,u]of Object.entries(t)){let p=`.${y}`;if(r&&!r(y)){c.push(h(`Key '${y}' is not allowed`,p));continue}let _=t[y],[d,l]=e.r(u,s);if(d)a[y]=_;else{let f=l;for(let b of f)c.push(h(b,p))}}if(c.length>0)if(n)s.warnings.push(...c);else return{errors:c};return{data:a}})}}}function A(e,r){if(typeof r=="string"&&!e.t?.[r])throw new Error(`${e.e} can't be used with unique key option`)}function j(e,r,n,t=!1,s){let a=-1,c=[],y=[],u=new Set,p=n.path;for(let _ of e){a++;let d=Array.isArray(r)?r[a]:r,l=`[${a}]`;n.path=`${p}${l}`;let f=d.r(_,n),[b,g]=f,T=s?.unique;if(b&&T){let R=g,O=typeof T=="string";O&&(R=g[T]),u.has(R)?f=[!1,[O?h(`Type '${d.t?.[T]?.e}' with value "${R}" is not unique`,`.${T}`):`${d.e} value is not unique`]]:u.add(R)}let[x,w]=f;if(x)y.push(w);else if(t){c.push(w.map(R=>h(R,l)));continue}else return{errors:w.map(R=>h(R,l))}}if(c.length>0){if(y.length===0)return{errors:c.slice(0,5).flat()};n.warnings.push(...c.flat())}return{data:y}}function ce(e,r){return A(e,r?.unique),{...o,e:`${e.e}[]`,r(n,t){return i(this,n,t,()=>Array.isArray(n)?n.length===0?!0:j.call(this,n,e,t,!1,r):!1)}}}function ue(e,r){return A(e,r?.unique),{...o,e:`${e.e}[]`,r(n,t){return i(this,n,t,()=>Array.isArray(n)?n.length===0?!0:j.call(this,n,e,t,!0,r):!1)}}}function le(e){return{...o,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return i(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:j.call(this,r,e,n))}}}function m(e,r){let n={warnings:[],path:""},[t,s]=r.r(e,n);return t?{error:!1,data:s,warnings:n.warnings.length>0?n.warnings:!1}:{error:!0,errors:s}}function ye(e){return r=>m(r,e)}function fe(e,r){let n=m(e,r);return n.error?{data:null,errors:n.errors,warnings:!1}:{data:n.data,errors:!1,warnings:n.warnings}}function P(e,r){let n={warnings:[],path:""};return!!r.r(e,n)[0]}function Te(e){return r=>P(r,e)}function pe(e){return{...o,e:"recursive",r(r,n){return e().r(r,n)}}}function de(e,r){return{...o,e:`transform_from_${e.e}`,r(n,t){let[s,a]=e.r(n,t);return s?[!0,r(a)]:[!1,a]}}}function S(e){if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e}function V(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("_")}0&&(module.exports={rc_any,rc_array,rc_boolean,rc_date,rc_get_obj_schema,rc_instanceof,rc_is_valid,rc_literals,rc_loose_array,rc_loose_parse,rc_null,rc_number,rc_obj_intersection,rc_object,rc_parse,rc_parser,rc_record,rc_recursive,rc_rename_key,rc_strict_obj,rc_string,rc_transform,rc_tuple,rc_undefined,rc_union,rc_unknown,rc_validator,snakeCase});
@@ -47,7 +47,10 @@ declare function rc_strict_obj<T extends RcObject>(shape: T): RcObjType<T>;
47
47
  declare function rc_obj_intersection<A extends RcObject, B extends RcObject>(a: RcObjType<A>, b: RcObjType<B>): RcObjType<A & B>;
48
48
  type RcRecord<V extends RcType<any>> = Record<string, V>;
49
49
  type RcRecordType<V extends RcType<any>> = RcType<TypeOfObjectType<RcRecord<V>>>;
50
- declare function rc_record<V extends RcType<any>>(valueType: V): RcRecordType<V>;
50
+ declare function rc_record<V extends RcType<any>>(valueType: V, { checkKey, looseCheck, }?: {
51
+ checkKey?: (key: string) => boolean;
52
+ looseCheck?: boolean;
53
+ }): RcRecordType<V>;
51
54
  declare function rc_array<T extends RcType<any>>(type: T, options?: {
52
55
  unique: boolean | string | false;
53
56
  }): RcType<RcInferType<T>[]>;
package/dist/runcheck.js CHANGED
@@ -1 +1 @@
1
- import{A,B,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-65SEYLTW.js";export{c as rc_any,r as rc_array,e as rc_boolean,h as rc_date,n as rc_get_obj_schema,i as rc_instanceof,x as rc_is_valid,j as rc_literals,s as rc_loose_array,w as rc_loose_parse,b as rc_null,g as rc_number,p as rc_obj_intersection,m as rc_object,u as rc_parse,v as rc_parser,q as rc_record,z as rc_recursive,l as rc_rename_key,o as rc_strict_obj,f as rc_string,A as rc_transform,t as rc_tuple,a as rc_undefined,k as rc_union,d as rc_unknown,y as rc_validator,B as snakeCase};
1
+ import{A,B,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-OEIPIHQO.js";export{c as rc_any,r as rc_array,e as rc_boolean,h as rc_date,n as rc_get_obj_schema,i as rc_instanceof,x as rc_is_valid,j as rc_literals,s as rc_loose_array,w as rc_loose_parse,b as rc_null,g as rc_number,p as rc_obj_intersection,m as rc_object,u as rc_parse,v as rc_parser,q as rc_record,z as rc_recursive,l as rc_rename_key,o as rc_strict_obj,f as rc_string,A as rc_transform,t as rc_tuple,a as rc_undefined,k as rc_union,d as rc_unknown,y as rc_validator,B 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.18.0",
4
+ "version": "0.19.0",
5
5
  "license": "MIT",
6
6
  "scripts": {
7
7
  "test": "vitest --ui",
@@ -1 +0,0 @@
1
- function S(e){return{...this,o:e}}function i(e,r,n,t){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let s=t();if(s&&(s===!0||"data"in s)){let a=s===!0?r:s.data;return e.s&&!e.s(a)?[!1,[e.n(a)]]:[!0,a]}if(e.o!==void 0)return n.warnings.push(`Fallback used, ${e.n(r)}`),[!0,e.o];if(e.f&&e.i){let a=e.i(r);if(a)return e.s&&!e.s(a.fixed)?[!1,[e.n(a.fixed)]]:(n.warnings.push(`${n.path?`$${n.path}: `:""}Autofixed from error "${e.n(r)}"`),[!0,a.fixed])}return[!1,s&&"errors"in s?s.errors:[e.n(r)]]}function V(e){return{...this,f:!0,i:e}}function I(e){return{...this,s:e,e:`${this.e}_with_predicate`}}function q(){return{...this,c:!0}}function E(e){return`Type '${A(e)}' is not assignable to '${this.e}'`}function K(){return{...this,l:!0,e:`${this.e}_or_nullable`}}function N(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var o={withFallback:S,where:I,optional:q,n:E,nullable:K,withAutofix:V,nullish:N},F={...o,r(e,r){return i(this,e,r,()=>e===void 0)},e:"undefined"},U={...o,r(e,r){return i(this,e,r,()=>e===null)},e:"null"},z={...o,r(e,r){return i(this,e,r,()=>!0)},e:"any"},B={...o,r(e,r){return i(this,e,r,()=>!0)},e:"unknown"},D={...o,r(e,r){return i(this,e,r,()=>typeof e=="boolean")},e:"boolean"},M={...o,r(e,r){return i(this,e,r,()=>typeof e=="string")},e:"string"},W={...o,r(e,r){return i(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},L={...o,r(e,r){return i(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function Z(e){return{...o,r(r,n){return i(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function G(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...o,r(r,n){return i(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},e:e.length==1?`${A(e[0])}_literal`:"literals"}}function H(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...o,r(r,n){return i(this,r,n,()=>{for(let t of e)if(t.r(r,n)[0])return!0;return!1})},e:e.map(r=>r.e).join(" | ")}}function J(e,r){return{...r,a:e}}function g(e,r){if(!r)return e;if(e.startsWith("$[")||e.startsWith("$.")){let[n="",t]=e.split(": "),s=n.slice(1);return`$${r}${s}: ${t}`}return`$${r}: ${e}`}function k(e,{normalizeKeysFrom:r}={}){return{...o,t:e,e:"object",y:!0,r(n,t){return i(this,n,t,()=>{if(!P(n))return!1;let s=new Set(Object.keys(n)),a={},u=[],R=t.path;for(let[c,f]of Object.entries(e)){let h=c,T=`.${c}`;t.path=`${R}${T}`;let l,p=c;if(f.a&&(l=n[f.a],p=f.a),l===void 0&&(l=n[c],p=c),l===void 0&&r==="snake_case"){let y=C(c);l=n[y],p=y}s.delete(p);let[b,_]=f.r(l,t);if(b)a[h]=_;else{let y=_;for(let x of y)u.push(g(x,T))}}if(this.e==="strict_obj"&&s.size>0)for(let c of s)u.push(`Key '${c}' is not defined in the object shape`);return u.length>0?{errors:u}:{data:a}})}}}function Q(e){return e.t}function X(e){return{...k(e),e:"strict_obj"}}function Y(e,r){return k({...e.t,...r.t})}function ee(e){return{...o,e:`record<string, ${e.e}>`,r(r,n){return i(this,r,n,()=>{if(!P(r))return!1;let t={},s=[];for(let[a,u]of Object.entries(r)){let R=r[a],[c,f]=e.r(u,n);if(c)t[a]=R;else{let h=f;for(let T of h)s.push(g(T,`.${a}`))}}return s.length>0?{errors:s}:{data:t}})}}}function m(e,r){if(typeof r=="string"&&!e.t?.[r])throw new Error(`${e.e} can't be used with unique key option`)}function $(e,r,n,t=!1,s){let a=-1,u=[],R=[],c=new Set,f=n.path;for(let h of e){a++;let T=Array.isArray(r)?r[a]:r,l=`[${a}]`;n.path=`${f}${l}`;let p=T.r(h,n),[b,_]=p,y=s?.unique;if(b&&y){let d=_,j=typeof y=="string";j&&(d=_[y]),c.has(d)?p=[!1,[j?g(`Type '${T.t?.[y]?.e}' with value "${d}" is not unique`,`.${y}`):`${T.e} value is not unique`]]:c.add(d)}let[x,w]=p;if(x)R.push(w);else if(t){u.push(w.map(d=>g(d,l)));continue}else return{errors:w.map(d=>g(d,l))}}if(u.length>0){if(R.length===0)return{errors:u.slice(0,5).flat()};n.warnings.push(...u.flat())}return{data:R}}function re(e,r){return m(e,r?.unique),{...o,e:`${e.e}[]`,r(n,t){return i(this,n,t,()=>Array.isArray(n)?n.length===0?!0:$.call(this,n,e,t,!1,r):!1)}}}function ne(e,r){return m(e,r?.unique),{...o,e:`${e.e}[]`,r(n,t){return i(this,n,t,()=>Array.isArray(n)?n.length===0?!0:$.call(this,n,e,t,!0,r):!1)}}}function te(e){return{...o,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return i(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:$.call(this,r,e,n))}}}function O(e,r){let n={warnings:[],path:""},[t,s]=r.r(e,n);return t?{error:!1,data:s,warnings:n.warnings.length>0?n.warnings:!1}:{error:!0,errors:s}}function se(e){return r=>O(r,e)}function ae(e,r){let n=O(e,r);return n.error?{data:null,errors:n.errors,warnings:!1}:{data:n.data,errors:!1,warnings:n.warnings}}function v(e,r){let n={warnings:[],path:""};return!!r.r(e,n)[0]}function oe(e){return r=>v(r,e)}function ie(e){return{...o,e:"recursive",r(r,n){return e().r(r,n)}}}function ce(e,r){return{...o,e:`transform_from_${e.e}`,r(n,t){let[s,a]=e.r(n,t);return s?[!0,r(a)]:[!1,a]}}}function A(e){if(typeof e=="object"){if(Array.isArray(e))return"array";if(!e)return"null"}return typeof e}function P(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function C(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}export{F as a,U as b,z as c,B as d,D as e,M as f,W as g,L as h,Z as i,G as j,H as k,J as l,k as m,Q as n,X as o,Y as p,ee as q,re as r,ne as s,te as t,O as u,se as v,ae as w,v as x,oe as y,ie as z,ce as A,C as B};