runcheck 0.40.0 → 0.42.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 +40 -2
- package/dist/autofixable.cjs +1 -1
- package/dist/autofixable.js +1 -1
- package/dist/chunk-PJTM2QW6.js +1 -0
- package/dist/runcheck.cjs +1 -1
- package/dist/runcheck.d.ts +78 -53
- package/dist/runcheck.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-VOMXQGTP.js +0 -1
package/README.md
CHANGED
|
@@ -124,12 +124,12 @@ instead of:
|
|
|
124
124
|
|
|
125
125
|
The same as `rc_object` but, any extra properties will be throw an error in parsing.
|
|
126
126
|
|
|
127
|
-
## `
|
|
127
|
+
## `rc_obj_merge`
|
|
128
128
|
|
|
129
129
|
Allow to merge two `rc_object` types. Example:
|
|
130
130
|
|
|
131
131
|
```ts
|
|
132
|
-
const shape =
|
|
132
|
+
const shape = rc_obj_merge(
|
|
133
133
|
rc_object({
|
|
134
134
|
name: rc_string,
|
|
135
135
|
age: rc_number,
|
|
@@ -367,6 +367,44 @@ const result = rc_parse(
|
|
|
367
367
|
)
|
|
368
368
|
```
|
|
369
369
|
|
|
370
|
+
Use the `outputSchema` option to create a type that validates both the input and the output of the transform. So if the input matches the `outputSchema` the transform will be ignored.
|
|
371
|
+
|
|
372
|
+
```ts
|
|
373
|
+
const input = 'hello'
|
|
374
|
+
|
|
375
|
+
const schema = rc_transform(rc_string, (input) => input.length, {
|
|
376
|
+
outputSchema: rc_number,
|
|
377
|
+
})
|
|
378
|
+
|
|
379
|
+
const result = rc_parse(input, schema)
|
|
380
|
+
|
|
381
|
+
if (result.ok) {
|
|
382
|
+
// this will be valid too
|
|
383
|
+
const transformedResult = rc_parse(result.data, schema)
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
// Be carefull: `outputSchema` will be used only if the input type is invalid
|
|
387
|
+
|
|
388
|
+
const schema = rc_transform(
|
|
389
|
+
rc_union(rc_string, rc_number),
|
|
390
|
+
(input) => String(input).toUperCase(),
|
|
391
|
+
{
|
|
392
|
+
// this will be ignored because has an equivalent type to the input
|
|
393
|
+
outputSchema: rc_string,
|
|
394
|
+
},
|
|
395
|
+
)
|
|
396
|
+
|
|
397
|
+
// use a more strict input type to avoid this
|
|
398
|
+
|
|
399
|
+
const schema = rc_transform(
|
|
400
|
+
rc_union(rc_string, rc_number).where((input) => isNotUperCase(input)),
|
|
401
|
+
(input) => String(input).toUperCase(),
|
|
402
|
+
{
|
|
403
|
+
outputSchema: rc_string.where((input) => isUperCase(input)),
|
|
404
|
+
},
|
|
405
|
+
)
|
|
406
|
+
```
|
|
407
|
+
|
|
370
408
|
# Default types
|
|
371
409
|
|
|
372
410
|
You can use `rc_default` to provide a default value if the input is `undefined`.
|
package/dist/autofixable.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var l=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var m=(e,r)=>{for(var n in r)l(e,n,{get:r[n],enumerable:!0})},x=(e,r,n,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of b(r))!g.call(e,t)&&t!==n&&l(e,t,{get:()=>r[t],enumerable:!(i=h(r,t))||i.enumerable});return e};var k=e=>x(l({},"__esModule",{value:!0}),e);var v={};m(v,{rc_boolean_autofix:()=>A,rc_number_autofix:()=>E,rc_string_autofix:()=>S});module.exports=k(v);function w(e){return{...this,R:e}}function d(e,r){return r.startsWith("$")?r:`${e.n?`$${e.n}: `:""}${r}`}function f(e,r){e.u.push(d(e,r))}function o(e,r,n,i){if(e.y&&r===void 0)return[!0,r];if(e.f&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let t=i();if(t&&(t===!0||!t.errors)){let a=t===!0?r:t.data;return e.a&&!e.a(a)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,a]}if(!n._){let a=e.R;if(a!==void 0)return f(n,`Fallback used, errors -> ${c(t,n,e,r)}`),[!0,O(a)?a():a];if(e.b&&e.d){let u=e.d(r);if(u)return e.a&&!e.a(u.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(f(n,`Autofixed from error "${c(t,n,e,r)}"`),[!0,u.fixed])}}return[!1,t?t.errors:[d(n,T(e,r))]]}function c(e,r,n,i){return e?e.errors.map(t=>t.replace(r.n,"")).join("; "):T(n,i)}function $(e){return{...this,b:!0,d:e}}function P(e){return{...this,a:e}}function y(){return{...this,y:!0}}function T(e,r){return`Type '${I(r,!!e.h)}' is not assignable to '${e.e}'`}function N(){return{...this,l:!0,e:`${this.e}_or_null`}}function j(){return{...this,f:!0,e:`${this.e}_or_nullish`}}var s={__rc_type:void 0,withFallback:w,where:P,optional:y,optionalKey:y,orNullish:j,withAutofix:$,orNull:N,R:void 0,a:void 0,y:!1,l:!1,f:!1,b:!1,h:!1,i:void 0,d:void 0,j:void 0,t:void 0,T:!1,p:!1,c:[]},K={...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"},W={...s,r(e,r){return o(this,e,r,()=>!0)},e:"unknown"},p={...s,r(e,r){return o(this,e,r,()=>typeof e=="boolean")},e:"boolean"},_={...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 I(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 O(e){return typeof e=="function"}var A=p.withAutofix(e=>e==null||e===0||e===1?{fixed:!!e}:e==="true"||e==="false"?{fixed:e==="true"}:!1),S=_.withAutofix(e=>typeof e=="number"&&!Number.isNaN(e)?{fixed:e.toString()}:!1),E=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});
|
package/dist/autofixable.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{q as f,r as t,s as o}from"./chunk-PJTM2QW6.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 D(e,r){return{...r,i:e}}function I(e){return m(e)&&"__rc_type"in e}function N(e){if(I(e))return e;if(m(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=N(t);return k(r)}throw new Error(`invalid schema: ${e}`)}function k(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,s]of Object.entries(e))n[t]=N(s);return{...c,t:n,e:"object",T:!0,c:Object.entries(n),r(t,s){return u(this,t,s,()=>{if(!m(t))return s.o=-1,!1;let a=this.e==="strict_obj"?new Set(Object.keys(t)):void 0;if(a&&this.c.length!==a.size){for(let[f]of this.c)a.delete(f);s.o=-1;let l=[];for(let f of a)l.push(`Key '${f}' is not defined in the object shape`);return{data:void 0,errors:l}}let y={},i=[],T=s.n,p=-1;for(let[l,f]of this.c){let b=l;p+=1;let x=`.${l}`,j=`${T}${x}`;s.n=j;let d,g=l;if(f.i&&(d=t[f.i],g=f.i),d===void 0&&(d=t[l],g=l),d===void 0&&r==="snake_case"){let O=C(l);d=t[O],g=O}a?.delete(g);let[R,w]=f.r(d,s);if(R)y[b]=w;else{for(let O of w)s.n=j,i.push(h(s,O));if(s.s){s.o=p;break}}}if(a&&a.size>0)for(let l of a)i.push(`Key '${l}' is not defined in the object shape`);return i.length>0?{errors:i,data:void 0}:this.p?{errors:!1,data:{...t,...y}}:{errors:!1,data:y}})}}}function M(e,r){return{...k(e,r),e:"extends_object",p:!0}}function z(e){return e.t}function v(e,r){let n=(()=>{if(I(e)){if(!e.t)throw new Error("rc_strict_obj: expected an object type");if(r?.nonRecursive)return e.t;{let t={};for(let[s,o]of Object.entries(e.t))t[s]=o.t?v(o,r):o;return t}}return e})();return{...k(n,r),e:"strict_obj"}}function Q(...e){let r={};for(let n of e)Object.assign(r,n.t);return k(r)}function J(e,r){let n={};if(!e.t)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let s=e.t[t];s&&(n[t]=s)}return k(n)}function L(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 k(n)}function Z(){return(e,r)=>k(e,r)}function G(e){return{...this,R:e}}function h(e,r){return r.startsWith("$")?r:`${e.n?`$${e.n}: `:""}${r}`}function P(e,r){e.u.push(h(e,r))}function F(e,r){r.forEach(n=>P(e,n))}function u(e,r,n,t){if(e.y&&r===void 0)return[!0,r];if(e.f&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let s=t();if(s&&(s===!0||!s.errors)){let o=s===!0?r:s.data;return e.a&&!e.a(o)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,o]}if(!n._){let o=e.R;if(o!==void 0)return P(n,`Fallback used, errors -> ${q(s,n,e,r)}`),[!0,E(o)?o():o];if(e.b&&e.d){let a=e.d(r);if(a)return e.a&&!e.a(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(P(n,`Autofixed from error "${q(s,n,e,r)}"`),[!0,a.fixed])}}return[!1,s?s.errors:[h(n,U(e,r))]]}function q(e,r,n,t){return e?e.errors.map(s=>s.replace(r.n,"")).join("; "):U(n,t)}function H(e){return{...this,b:!0,d:e}}function X(e){return{...this,a:e}}function W(){return{...this,y:!0}}function U(e,r){return`Type '${A(r,!!e.h)}' is not assignable to '${e.e}'`}function Y(){return{...this,l:!0,e:`${this.e}_or_null`}}function ee(){return{...this,f:!0,e:`${this.e}_or_nullish`}}var c={__rc_type:void 0,withFallback:G,where:X,optional:W,optionalKey:W,orNullish:ee,withAutofix:H,orNull:Y,R:void 0,a:void 0,y:!1,l:!1,f:!1,b:!1,h:!1,i:void 0,d:void 0,j:void 0,t:void 0,T:!1,p:!1,c:[]},ue={...c,r(e,r){return u(this,e,r,()=>e===void 0)},e:"undefined"},ye={...c,r(e,r){return u(this,e,r,()=>e===null)},e:"null"},fe={...c,r(e,r){return u(this,e,r,()=>!0)},e:"any"},le={...c,r(e,r){return u(this,e,r,()=>!0)},e:"unknown"},Te={...c,r(e,r){return u(this,e,r,()=>typeof e=="boolean")},e:"boolean"},pe={...c,r(e,r){return u(this,e,r,()=>typeof e=="string")},e:"string"},de={...c,r(e,r){return u(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},Re={...c,r(e,r){return u(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function _e(e){return{...c,r(r,n){return u(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function be(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...c,r(r,n){return u(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},h:!0,e:e.length==1?A(e[0],!0):e.map(r=>A(r,!0)).join(" | ")}}var B=1;function he(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...c,r(r,n){return u(this,r,n,()=>{let t=n.n,s=[],o=0,a=!1,y=[],i=0;for(let T of e){i+=1,T.T&&(n.n=`${t}|union ${i}|`);let p=n.s;n.s=!0,n.o=0;let[l,f]=T.r(r,n),b=n.o;if(n.s=p,n.o=0,l)return!0;T.T&&b!==-1?b>0?y.push(...f):(o<B&&s.push(...f),o+=1):a=!0}return n.n=t,y.length>0||s.length>0?((o>B||a)&&s.push("not matches any other union member"),{errors:[...y,...s],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function je(e,r){return{...e,y:!1,f:!1,l:!1,r(n,t){return u(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 ge(e,r){return{...e,y:!1,f:!1,l:!1,r(n,t){return u(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 re(e,{checkKey:r,looseCheck:n}={}){return{...c,e:`record<string, ${e.e}>`,r(t,s){return u(this,t,s,()=>{if(!m(t))return!1;let o={},a=[],y=s.n;for(let[i,T]of Object.entries(t)){let p=`.${i}`,l=`${y}${p}`;if(s.n=l,r&&!r(i)){a.push(h(s,`Key '${i}' is not allowed`));continue}let f=t[i],[b,x]=e.r(T,s);if(b)o[i]=f;else{let j=x;for(let d of j)a.push(h(s,d));if(s.s)break}}if(a.length>0)if(n)F(s,a);else return{errors:a,data:void 0};return{errors:!1,data:o}})}}}function Oe(e,{checkKey:r}={}){return re(e,{checkKey:r,looseCheck:!0})}function K(e,r,n,t=!1,s){let o=[],a=[],y=new Set,i=n.n,T=Array.isArray(r),p=-1;for(let l of e){p++;let f=T?r[p]:r,b=`[${p}]`,x=`${i}${b}`;n.n=x;let j=f.r(l,n),[d,g]=j;n.n=x;let R=s?.unique;if(d&&R){let _=g,$=typeof R=="string";$?_=g[R]:typeof R=="function"&&(_=R(g)),y.has(_)?($&&(n.n=`${i}${b}.${R}`),j=[!1,[h(n,$?`Type '${f.t?.[R]?.e}' with value "${_}" is not unique`:typeof R=="function"?`Type '${f.e}' unique fn return with value "${_}" is not unique`:`${f.e} value is not unique`)]]):y.add(_)}let[w,O]=j;if(w)a.push(O);else if(t){o.push(O.map(_=>h(n,_)));continue}else return{errors:O.map(_=>h(n,_)),data:void 0}}if(o.length>0){if(a.length===0)return{errors:o.slice(0,5).flat(),data:void 0};F(n,o.flat())}return{errors:!1,data:a}}function ke(e,r){return{...c,e:`${e.e}[]`,r(n,t){return u(this,n,t,()=>Array.isArray(n)?n.length===0?!0:K.call(this,n,e,t,!1,r):!1)}}}function xe(e,r){return{...c,e:`${e.e}[]`,r(n,t){return u(this,n,t,()=>Array.isArray(n)?n.length===0?!0:K.call(this,n,e,t,!0,r):!1)}}}function me(e){return{...c,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return u(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:K.call(this,r,e,n))}}}function S(e,r,{noWarnings:n=!1}={}){let t={u:[],n:"",s:!1,o:0,_:n},[s,o]=r.r(e,t);return s?{error:!1,ok:!0,data:o,warnings:t.u.length>0?t.u:!1}:{ok:!1,error:!0,errors:o}}function we(e){return r=>S(r,e)}function Ae(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 ne(e,r){let n={u:[],n:"",s:!1,o:0,_:!1};return!!r.r(e,n)[0]}function $e(e){return r=>ne(r,e)}function Pe(e){return{...c,e:"recursive",r(r,n){return e().r(r,n)}}}function V(e,r,n){let t=e.n,s=e.s;e.s=!0,e.n=`${t}|output|`;let o=r.r(n,e);return e.n=t,e.s=s,o}function Ke(e,r,{outputSchema:n}={}){return{...c,e:`transform_from_${e.e}`,r(t,s){let o=null;if(n){let[i,T]=V(s,n,t);if(i)return[!0,T];o=T}let[a,y]=e.r(t,s);return a?[!0,r(y,e)]:[!1,[...o||[],...y]]}}}function Se(e,r,{outputSchema:n}={}){return{...c,e:`transform_from_${e.e}`,r(t,s){let o=null;if(n){let[i,T]=V(s,n,t);if(i)return[!0,T];o=T}let[a,y]=e.r(t,s);if(a){let i=r(y,e);return i.ok?[!0,i.data]:[!1,typeof i.errors=="string"?[i.errors]:i.errors]}return[!1,[...o||[],...y]]}}}function A(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 m(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function C(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Ie(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${A(e,!0)}`]};let t=JSON.parse(e);return S(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${m(t)?t.message:""}`]}}}function E(e){return typeof e=="function"}export{D as a,k as b,M as c,z as d,v as e,Q as f,J as g,L as h,Z as i,h as j,u as k,c as l,ue as m,ye as n,fe as o,le as p,Te as q,pe as r,de as s,Re as t,_e as u,be as v,he as w,je as x,ge as y,re as z,Oe as A,ke as B,xe as C,me as D,S as E,we as F,Ae as G,ne as H,$e as I,Pe as J,Ke as K,Se as L,Ee as M,m as N,C as O,Ie as P};
|
package/dist/runcheck.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var K=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var J=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var Z=(e,r)=>{for(var n in r)K(e,n,{get:r[n],enumerable:!0})},G=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of J(r))!L.call(e,s)&&s!==n&&K(e,s,{get:()=>r[s],enumerable:!(t=Q(r,s))||t.enumerable});return e};var H=e=>G(K({},"__esModule",{value:!0}),e);var Ee={};Z(Ee,{rc_any:()=>oe,rc_array:()=>xe,rc_assert_is_valid:()=>Ie,rc_boolean:()=>ie,rc_date:()=>ye,rc_default:()=>de,rc_get_obj_schema:()=>_e,rc_instanceof:()=>fe,rc_is_valid:()=>M,rc_literals:()=>le,rc_loose_array:()=>ge,rc_loose_parse:()=>$e,rc_loose_record:()=>ke,rc_null:()=>se,rc_nullish_default:()=>pe,rc_number:()=>ue,rc_obj_builder:()=>ve,rc_obj_extends:()=>be,rc_obj_intersection:()=>he,rc_obj_omit:()=>Oe,rc_obj_pick:()=>je,rc_obj_strict:()=>W,rc_object:()=>h,rc_parse:()=>$,rc_parse_json:()=>Ne,rc_parser:()=>we,rc_record:()=>D,rc_recursive:()=>Pe,rc_rename_from_key:()=>B,rc_rename_key:()=>Re,rc_string:()=>ce,rc_transform:()=>Ke,rc_tuple:()=>me,rc_undefined:()=>te,rc_union:()=>Te,rc_unknown:()=>ae,rc_unsafe_transform:()=>Se,rc_validator:()=>Ae,snakeCase:()=>z});module.exports=H(Ee);function X(e){return{...this,d:e}}function O(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.n?`$${e.n}: `:""}${r}`}function S(e,r){e.i.push(O(e,r))}function C(e,r){r.forEach(n=>S(e,n))}function c(e,r,n,t){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.y&&r===null)return[!0,r];let s=t();if(s&&(s===!0||!s.errors)){let o=s===!0?r:s.data;return e.o&&!e.o(o)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,o]}if(!n.p){let o=e.d;if(o!==void 0)return S(n,`Fallback used, errors -> ${v(s,n,e,r)}`),[!0,N(o)?o():o];if(e.R&&e.l){let a=e.l(r);if(a)return e.o&&!e.o(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(S(n,`Autofixed from error "${v(s,n,e,r)}"`),[!0,a.fixed])}}return[!1,s?s.errors:[V(e,r)]]}function v(e,r,n,t){return e?e.errors.map(s=>s.replace(r.n,"")).join("; "):V(n,t)}function Y(e){return{...this,R:!0,l:e}}function ee(e){return{...this,o:e}}function E(){return{...this,c:!0}}function V(e,r){return`Type '${w(r,!!e.b)}' is not assignable to '${e.e}'`}function re(){return{...this,y:!0,e:`${this.e}_or_null`}}function ne(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var i={__rc_type:void 0,withFallback:X,where:ee,optional:E,optionalKey:E,orNullish:ne,withAutofix:Y,orNull:re,d:void 0,o:void 0,c:!1,y:!1,u:!1,R:!1,b:!1,f:void 0,l:void 0,j:void 0,t:void 0,T:!1,_:!1,h:[]},te={...i,r(e,r){return c(this,e,r,()=>e===void 0)},e:"undefined"},se={...i,r(e,r){return c(this,e,r,()=>e===null)},e:"null"},oe={...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})},b:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var q=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.n,s=[],o=0,a=!1,y=[],f=0;for(let R of e){f+=1,R.T&&(n.n=`${t}|union ${f}|`),n.a=!0,n.s=0;let[u,T]=R.r(r,n);n.a=!1;let d=n.s;if(n.s=0,u)return!0;R.T&&d!==-1?d>0?y.push(...T):(o<q&&s.push(...T),o+=1):a=!0}return n.n=t,y.length>0||s.length>0?((o>q||a)&&s.push("not matches any other union member"),{errors:[...y,...s],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function de(e,r){return{...e,c:!1,u:!1,y:!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:N(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_default`}}function pe(e,r){return{...e,c:!1,u:!1,y:!1,r(n,t){return c(this,n,t,()=>{let s=e.r(n,t),[o,a]=s;return o?a!=null?!0:{data:N(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_nullish_default`}}function B(e,r){return{...r,f:e}}var Re=B;function F(e){return m(e)&&"__rc_type"in e}function U(e){if(F(e))return e;if(m(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=U(t);return h(r)}throw new Error(`invalid schema: ${e}`)}function h(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,s]of Object.entries(e))n[t]=U(s);return{...i,t:n,e:"object",T:!0,h:Object.entries(n),r(t,s){return c(this,t,s,()=>{if(!m(t))return s.s=-1,!1;let o=this.e==="strict_obj"?new Set(Object.keys(t)):void 0,a={},y=[],f=s.n,R=-1;for(let[u,T]of this.h){let d=u;R+=1;let k=`.${u}`,j=`${f}${k}`;s.n=j;let l,_=u;if(T.f&&(l=t[T.f],_=T.f),l===void 0&&(l=t[u],_=u),l===void 0&&r==="snake_case"){let x=z(u);l=t[x],_=x}o?.delete(_);let[g,p]=T.r(l,s);if(g)a[d]=p;else{for(let x of p)s.n=j,y.push(O(s,x));if(s.a){s.s=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._?{errors:!1,data:{...t,...a}}:{errors:!1,data:a}})}}}function be(e,r){return{...h(e,r),e:"extends_object",_:!0}}function _e(e){return e.t}function W(e,r){let n=(()=>{if(F(e)){if(!e.t)throw new Error("rc_strict_obj: expected an object type");if(r?.nonRecursive)return e.t;{let t={};for(let[s,o]of Object.entries(e.t))t[s]=o.t?W(o,r):o;return t}}return e})();return{...h(n,r),e:"strict_obj"}}function he(...e){let r={};for(let n of e)Object.assign(r,n.t);return h(r)}function je(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 s=e.t[t];s&&(n[t]=s)}return h(n)}function Oe(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 D(e,{checkKey:r,looseCheck:n}={}){return{...i,e:`record<string, ${e.e}>`,r(t,s){return c(this,t,s,()=>{if(!m(t))return!1;let o={},a=[],y=s.n;for(let[f,R]of Object.entries(t)){let u=`.${f}`,T=`${y}${u}`;if(s.n=T,r&&!r(f)){a.push(O(s,`Key '${f}' is not allowed`));continue}let d=t[f],[k,j]=e.r(R,s);if(k)o[f]=d;else{let l=j;for(let _ of l)a.push(O(s,_));if(s.a)break}}if(a.length>0)if(n)C(s,a);else return{errors:a,data:void 0};return{errors:!1,data:o}})}}}function ke(e,{checkKey:r}={}){return D(e,{checkKey:r,looseCheck:!0})}function I(e,r,n,t=!1,s){let o=[],a=[],y=new Set,f=n.n,R=Array.isArray(r),u=-1;for(let T of e){u++;let d=R?r[u]:r,k=`[${u}]`,j=`${f}${k}`;n.n=j;let l=d.r(T,n),[_,g]=l;n.n=j;let p=s?.unique;if(_&&p){let b=g,P=typeof p=="string";P?b=g[p]:typeof p=="function"&&(b=p(g)),y.has(b)?(P&&(n.n=`${f}${k}.${p}`),l=[!1,[O(n,P?`Type '${d.t?.[p]?.e}' with value "${b}" is not unique`:typeof p=="function"?`Type '${d.e}' unique fn return with value "${b}" is not unique`:`${d.e} value is not unique`)]]):y.add(b)}let[x,A]=l;if(x)a.push(A);else if(t){o.push(A.map(b=>O(n,b)));continue}else return{errors:A.map(b=>O(n,b)),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 xe(e,r){return{...i,e:`${e.e}[]`,r(n,t){return c(this,n,t,()=>Array.isArray(n)?n.length===0?!0:I.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:I.call(this,n,e,t,!0,r):!1)}}}function me(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:I.call(this,r,e,n))}}}function $(e,r,{noWarnings:n=!1}={}){let t={i:[],n:"",a:!1,s:0,p:n},[s,o]=r.r(e,t);return s?{error:!1,ok:!0,data:o,warnings:t.i.length>0?t.i:!1}:{ok:!1,error:!0,errors:o}}function we(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={i:[],n:"",a:!1,s:0,p:!1};return!!r.r(e,n)[0]}function Ae(e){return r=>M(r,e)}function Pe(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 Se(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 m(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 Ne(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${w(e,!0)}`]};let t=JSON.parse(e);return $(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parse error: ${m(t)?t.message:""}`]}}}function N(e){return typeof e=="function"}function ve(){return(e,r)=>h(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});
|
|
1
|
+
"use strict";var K=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var ee=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var ne=(e,r)=>{for(var n in r)K(e,n,{get:r[n],enumerable:!0})},te=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let s of ee(r))!re.call(e,s)&&s!==n&&K(e,s,{get:()=>r[s],enumerable:!(t=Y(r,s))||t.enumerable});return e};var se=e=>te(K({},"__esModule",{value:!0}),e);var ve={};ne(ve,{defaultProps:()=>c,gerWarningOrErrorWithPath:()=>b,isObject:()=>x,parse:()=>u,rc_any:()=>le,rc_array:()=>xe,rc_assert_is_valid:()=>Ie,rc_boolean:()=>pe,rc_date:()=>_e,rc_default:()=>ge,rc_get_obj_schema:()=>F,rc_instanceof:()=>be,rc_is_valid:()=>H,rc_literals:()=>he,rc_loose_array:()=>me,rc_loose_parse:()=>$e,rc_loose_record:()=>ke,rc_null:()=>fe,rc_nullish_default:()=>Oe,rc_number:()=>Re,rc_obj_builder:()=>M,rc_obj_extends:()=>B,rc_obj_merge:()=>U,rc_obj_omit:()=>D,rc_obj_pick:()=>V,rc_obj_strict:()=>S,rc_object:()=>j,rc_parse:()=>$,rc_parse_json:()=>Ne,rc_parser:()=>Ae,rc_record:()=>G,rc_recursive:()=>Ke,rc_rename_from_key:()=>C,rc_string:()=>de,rc_transform:()=>Se,rc_tuple:()=>we,rc_undefined:()=>ye,rc_union:()=>je,rc_unknown:()=>Te,rc_unsafe_transform:()=>Ee,rc_validator:()=>Pe,snakeCase:()=>E});module.exports=se(ve);function C(e,r){return{...r,i:e}}function q(e){return x(e)&&"__rc_type"in e}function W(e){if(q(e))return e;if(x(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=W(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]=W(s);return{...c,t:n,e:"object",T:!0,c:Object.entries(n),r(t,s){return u(this,t,s,()=>{if(!x(t))return s.o=-1,!1;let a=this.e==="strict_obj"?new Set(Object.keys(t)):void 0;if(a&&this.c.length!==a.size){for(let[f]of this.c)a.delete(f);s.o=-1;let l=[];for(let f of a)l.push(`Key '${f}' is not defined in the object shape`);return{data:void 0,errors:l}}let y={},i=[],T=s.n,p=-1;for(let[l,f]of this.c){let h=l;p+=1;let m=`.${l}`,g=`${T}${m}`;s.n=g;let d,O=l;if(f.i&&(d=t[f.i],O=f.i),d===void 0&&(d=t[l],O=l),d===void 0&&r==="snake_case"){let k=E(l);d=t[k],O=k}a?.delete(O);let[R,w]=f.r(d,s);if(R)y[h]=w;else{for(let k of w)s.n=g,i.push(b(s,k));if(s.s){s.o=p;break}}}if(a&&a.size>0)for(let l of a)i.push(`Key '${l}' is not defined in the object shape`);return i.length>0?{errors:i,data:void 0}:this.d?{errors:!1,data:{...t,...y}}:{errors:!1,data:y}})}}}function B(e,r){return{...j(e,r),e:"extends_object",d:!0}}function F(e){return e.t}function S(e,r){let n=(()=>{if(q(e)){if(!e.t)throw new Error("rc_strict_obj: expected an object type");if(r?.nonRecursive)return e.t;{let t={};for(let[s,o]of Object.entries(e.t))t[s]=o.t?S(o,r):o;return t}}return e})();return{...j(n,r),e:"strict_obj"}}function U(...e){let r={};for(let n of e)Object.assign(r,n.t);return j(r)}function V(e,r){let n={};if(!e.t)throw new Error("rc_obj_pick: obj must be an object type");for(let t of r){let s=e.t[t];s&&(n[t]=s)}return j(n)}function D(e,r){let n={};if(!e.t)throw new Error("rc_obj_omit: obj must be an object type");for(let t of Object.keys(e.t))r.includes(t)||(n[t]=e.t[t]);return j(n)}function M(){return(e,r)=>j(e,r)}function oe(e){return{...this,R:e}}function b(e,r){return r.startsWith("$")?r:`${e.n?`$${e.n}: `:""}${r}`}function I(e,r){e.u.push(b(e,r))}function L(e,r){r.forEach(n=>I(e,n))}function u(e,r,n,t){if(e.y&&r===void 0)return[!0,r];if(e.f&&r==null)return[!0,r];if(e.l&&r===null)return[!0,r];let s=t();if(s&&(s===!0||!s.errors)){let o=s===!0?r:s.data;return e.a&&!e.a(o)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,o]}if(!n._){let o=e.R;if(o!==void 0)return I(n,`Fallback used, errors -> ${z(s,n,e,r)}`),[!0,v(o)?o():o];if(e.b&&e.p){let a=e.p(r);if(a)return e.a&&!e.a(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(I(n,`Autofixed from error "${z(s,n,e,r)}"`),[!0,a.fixed])}}return[!1,s?s.errors:[b(n,Z(e,r))]]}function z(e,r,n,t){return e?e.errors.map(s=>s.replace(r.n,"")).join("; "):Z(n,t)}function ae(e){return{...this,b:!0,p:e}}function ie(e){return{...this,a:e}}function Q(){return{...this,y:!0}}function Z(e,r){return`Type '${A(r,!!e.h)}' is not assignable to '${e.e}'`}function ce(){return{...this,l:!0,e:`${this.e}_or_null`}}function ue(){return{...this,f:!0,e:`${this.e}_or_nullish`}}var c={__rc_type:void 0,withFallback:oe,where:ie,optional:Q,optionalKey:Q,orNullish:ue,withAutofix:ae,orNull:ce,R:void 0,a:void 0,y:!1,l:!1,f:!1,b:!1,h:!1,i:void 0,p:void 0,j:void 0,t:void 0,T:!1,d:!1,c:[]},ye={...c,r(e,r){return u(this,e,r,()=>e===void 0)},e:"undefined"},fe={...c,r(e,r){return u(this,e,r,()=>e===null)},e:"null"},le={...c,r(e,r){return u(this,e,r,()=>!0)},e:"any"},Te={...c,r(e,r){return u(this,e,r,()=>!0)},e:"unknown"},pe={...c,r(e,r){return u(this,e,r,()=>typeof e=="boolean")},e:"boolean"},de={...c,r(e,r){return u(this,e,r,()=>typeof e=="string")},e:"string"},Re={...c,r(e,r){return u(this,e,r,()=>typeof e=="number"&&!Number.isNaN(e))},e:"number"},_e={...c,r(e,r){return u(this,e,r,()=>typeof e=="object"&&e instanceof Date&&!Number.isNaN(e.getTime()))},e:"date"};function be(e){return{...c,r(r,n){return u(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function he(...e){if(e.length===0)throw new Error("rc_literal requires at least one literal");return{...c,r(r,n){return u(this,r,n,()=>{for(let t of e)if(r===t)return!0;return!1})},h:!0,e:e.length==1?A(e[0],!0):e.map(r=>A(r,!0)).join(" | ")}}var J=1;function je(...e){if(e.length===0)throw new Error("Unions should have at least one type");return{...c,r(r,n){return u(this,r,n,()=>{let t=n.n,s=[],o=0,a=!1,y=[],i=0;for(let T of e){i+=1,T.T&&(n.n=`${t}|union ${i}|`);let p=n.s;n.s=!0,n.o=0;let[l,f]=T.r(r,n),h=n.o;if(n.s=p,n.o=0,l)return!0;T.T&&h!==-1?h>0?y.push(...f):(o<J&&s.push(...f),o+=1):a=!0}return n.n=t,y.length>0||s.length>0?((o>J||a)&&s.push("not matches any other union member"),{errors:[...y,...s],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function ge(e,r){return{...e,y:!1,f:!1,l:!1,r(n,t){return u(this,n,t,()=>{let s=e.r(n,t),[o,a]=s;return o?a!==void 0?!0:{data:v(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_default`}}function Oe(e,r){return{...e,y:!1,f:!1,l:!1,r(n,t){return u(this,n,t,()=>{let s=e.r(n,t),[o,a]=s;return o?a!=null?!0:{data:v(r)?r():r,errors:!1}:{data:void 0,errors:a}})},e:`${e.e}_nullish_default`}}function G(e,{checkKey:r,looseCheck:n}={}){return{...c,e:`record<string, ${e.e}>`,r(t,s){return u(this,t,s,()=>{if(!x(t))return!1;let o={},a=[],y=s.n;for(let[i,T]of Object.entries(t)){let p=`.${i}`,l=`${y}${p}`;if(s.n=l,r&&!r(i)){a.push(b(s,`Key '${i}' is not allowed`));continue}let f=t[i],[h,m]=e.r(T,s);if(h)o[i]=f;else{let g=m;for(let d of g)a.push(b(s,d));if(s.s)break}}if(a.length>0)if(n)L(s,a);else return{errors:a,data:void 0};return{errors:!1,data:o}})}}}function ke(e,{checkKey:r}={}){return G(e,{checkKey:r,looseCheck:!0})}function N(e,r,n,t=!1,s){let o=[],a=[],y=new Set,i=n.n,T=Array.isArray(r),p=-1;for(let l of e){p++;let f=T?r[p]:r,h=`[${p}]`,m=`${i}${h}`;n.n=m;let g=f.r(l,n),[d,O]=g;n.n=m;let R=s?.unique;if(d&&R){let _=O,P=typeof R=="string";P?_=O[R]:typeof R=="function"&&(_=R(O)),y.has(_)?(P&&(n.n=`${i}${h}.${R}`),g=[!1,[b(n,P?`Type '${f.t?.[R]?.e}' with value "${_}" is not unique`:typeof R=="function"?`Type '${f.e}' unique fn return with value "${_}" is not unique`:`${f.e} value is not unique`)]]):y.add(_)}let[w,k]=g;if(w)a.push(k);else if(t){o.push(k.map(_=>b(n,_)));continue}else return{errors:k.map(_=>b(n,_)),data:void 0}}if(o.length>0){if(a.length===0)return{errors:o.slice(0,5).flat(),data:void 0};L(n,o.flat())}return{errors:!1,data:a}}function xe(e,r){return{...c,e:`${e.e}[]`,r(n,t){return u(this,n,t,()=>Array.isArray(n)?n.length===0?!0:N.call(this,n,e,t,!1,r):!1)}}}function me(e,r){return{...c,e:`${e.e}[]`,r(n,t){return u(this,n,t,()=>Array.isArray(n)?n.length===0?!0:N.call(this,n,e,t,!0,r):!1)}}}function we(e){return{...c,e:`[${e.map(r=>r.e).join(", ")}]`,r(r,n){return u(this,r,n,()=>!Array.isArray(r)||r.length!==e.length?!1:N.call(this,r,e,n))}}}function $(e,r,{noWarnings:n=!1}={}){let t={u:[],n:"",s:!1,o:0,_:n},[s,o]=r.r(e,t);return s?{error:!1,ok:!0,data:o,warnings:t.u.length>0?t.u:!1}:{ok:!1,error:!0,errors:o}}function Ae(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 H(e,r){let n={u:[],n:"",s:!1,o:0,_:!1};return!!r.r(e,n)[0]}function Pe(e){return r=>H(r,e)}function Ke(e){return{...c,e:"recursive",r(r,n){return e().r(r,n)}}}function X(e,r,n){let t=e.n,s=e.s;e.s=!0,e.n=`${t}|output|`;let o=r.r(n,e);return e.n=t,e.s=s,o}function Se(e,r,{outputSchema:n}={}){return{...c,e:`transform_from_${e.e}`,r(t,s){let o=null;if(n){let[i,T]=X(s,n,t);if(i)return[!0,T];o=T}let[a,y]=e.r(t,s);return a?[!0,r(y,e)]:[!1,[...o||[],...y]]}}}function Ee(e,r,{outputSchema:n}={}){return{...c,e:`transform_from_${e.e}`,r(t,s){let o=null;if(n){let[i,T]=X(s,n,t);if(i)return[!0,T];o=T}let[a,y]=e.r(t,s);if(a){let i=r(y,e);return i.ok?[!0,i.data]:[!1,typeof i.errors=="string"?[i.errors]:i.errors]}return[!1,[...o||[],...y]]}}}function A(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 x(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function E(e){return e.replace(/\W+/g," ").split(/ |\B(?=[A-Z])/).map(r=>r.toLowerCase()).join("_")}function Ne(e,r,n){try{if(typeof e!="string")return{ok:!1,error:!0,errors:[`expected a json string, got ${A(e,!0)}`]};let t=JSON.parse(e);return $(t,r,n)}catch(t){return{ok:!1,error:!0,errors:[`json parsing error: ${x(t)?t.message:""}`]}}}function v(e){return typeof e=="function"}0&&(module.exports={defaultProps,gerWarningOrErrorWithPath,isObject,parse,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_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});
|
package/dist/runcheck.d.ts
CHANGED
|
@@ -1,3 +1,45 @@
|
|
|
1
|
+
declare function rc_rename_from_key<T extends RcType<any>>(alternativeNames: string, type: T): RcType<RcInferType<T>>;
|
|
2
|
+
type RcObject = {
|
|
3
|
+
[key: string]: RcBase<any, any> | RcObject;
|
|
4
|
+
};
|
|
5
|
+
type TypeOfObjectType<T extends RcObject> = Flatten<AddQuestionMarks<{
|
|
6
|
+
[K in keyof T]: T[K] extends RcType<infer U> ? RequiredKey<U> : T[K] extends RcOptionalKeyType<infer W> ? W : T[K] extends RcObject ? RequiredKey<TypeOfObjectType<T[K]>> : never;
|
|
7
|
+
}>>;
|
|
8
|
+
type RcObjTypeReturn<T extends RcObject> = RcType<TypeOfObjectType<T>>;
|
|
9
|
+
type RequiredKey<T> = {
|
|
10
|
+
_required_key_: T;
|
|
11
|
+
};
|
|
12
|
+
type RequiredKeys<T extends object> = {
|
|
13
|
+
[k in keyof T]: T[k] extends RequiredKey<any> ? k : never;
|
|
14
|
+
}[keyof T];
|
|
15
|
+
type AddQuestionMarks<T extends object, R extends keyof T = RequiredKeys<T>> = Pick<Required<T>, R> & Partial<Omit<T, R>>;
|
|
16
|
+
type Identity<T> = T;
|
|
17
|
+
type Flatten<T> = Identity<{
|
|
18
|
+
[k in keyof T]: T[k] extends RequiredKey<infer U> ? U : T[k];
|
|
19
|
+
}>;
|
|
20
|
+
type ObjOptions = {
|
|
21
|
+
normalizeKeysFrom?: 'snake_case';
|
|
22
|
+
};
|
|
23
|
+
declare function rc_object<T extends RcObject>(shape: T, { normalizeKeysFrom }?: ObjOptions): RcObjTypeReturn<T>;
|
|
24
|
+
declare function rc_obj_extends<T extends RcObject>(shape: T, options?: ObjOptions): RcObjTypeReturn<T>;
|
|
25
|
+
declare function rc_get_obj_schema<T extends RcObject>(type: RcObjTypeReturn<T>): T;
|
|
26
|
+
/** return an error if the obj has more keys than the expected type */
|
|
27
|
+
declare function rc_obj_strict<T extends AnyObj>(shape: RcType<T>, options?: ObjOptions & {
|
|
28
|
+
nonRecursive?: boolean;
|
|
29
|
+
}): RcType<T>;
|
|
30
|
+
declare function rc_obj_strict<T extends RcObject>(shape: T, options?: ObjOptions): RcObjTypeReturn<T>;
|
|
31
|
+
type AnyObj = Record<string, unknown>;
|
|
32
|
+
type Extends<T extends AnyObj, W extends AnyObj> = Omit<T, keyof W> & W;
|
|
33
|
+
declare function rc_obj_merge<A extends AnyObj, B extends AnyObj>(...objs: [RcType<A>, RcType<B>]): RcType<Extends<A, B>>;
|
|
34
|
+
declare function rc_obj_merge<A extends AnyObj, B extends AnyObj, C extends AnyObj>(...objs: [RcType<A>, RcType<B>, RcType<C>]): RcType<Extends<Extends<A, B>, C>>;
|
|
35
|
+
declare function rc_obj_merge<A extends AnyObj, B extends AnyObj, C extends AnyObj, D extends AnyObj>(...objs: [RcType<A>, RcType<B>, RcType<C>, RcType<D>]): RcType<Extends<Extends<Extends<A, B>, C>, D>>;
|
|
36
|
+
declare function rc_obj_pick<O extends AnyObj, K extends keyof O>(obj: RcType<O>, keys: K[]): RcType<Pick<O, K>>;
|
|
37
|
+
declare function rc_obj_omit<O extends AnyObj, K extends keyof O>(obj: RcType<O>, keys: K[]): RcType<Pick<O, K>>;
|
|
38
|
+
type StricTypeToRcType<T> = [T] extends [any[]] ? RcType<T> : [T] extends [Record<string, any>] ? ({
|
|
39
|
+
[K in keyof T]-?: StricTypeToRcType<T[K]>;
|
|
40
|
+
} & Partial<Record<keyof RcType<any>, never>>) | RcType<T> : RcType<T>;
|
|
41
|
+
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>;
|
|
42
|
+
|
|
1
43
|
type RcParseResult<T> = {
|
|
2
44
|
error: false;
|
|
3
45
|
ok: true;
|
|
@@ -9,6 +51,14 @@ type RcParseResult<T> = {
|
|
|
9
51
|
errors: string[];
|
|
10
52
|
};
|
|
11
53
|
type RcInferType<T extends RcType<any>> = T extends RcType<infer U> ? U : never;
|
|
54
|
+
type ParseResultCtx = {
|
|
55
|
+
warnings_: string[];
|
|
56
|
+
path_: string;
|
|
57
|
+
objErrShortCircuit_: boolean;
|
|
58
|
+
objErrKeyIndex_: number;
|
|
59
|
+
noWarnings_: boolean;
|
|
60
|
+
};
|
|
61
|
+
type InternalParseResult<T> = [success: true, data: T] | [success: false, errors: string[]];
|
|
12
62
|
type WithFallback<T> = (fallback: T | (() => T)) => RcType<T>;
|
|
13
63
|
type RcOptionalKeyType<T> = RcBase<T, true>;
|
|
14
64
|
type RcType<T> = RcBase<T, false>;
|
|
@@ -29,6 +79,16 @@ type RcBase<T, RequiredKey extends boolean> = {
|
|
|
29
79
|
}) => RcType<T>;
|
|
30
80
|
readonly _optional_key_?: RequiredKey;
|
|
31
81
|
};
|
|
82
|
+
declare function gerWarningOrErrorWithPath(ctx: ParseResultCtx, message: string): string;
|
|
83
|
+
type IsValid<T> = boolean | {
|
|
84
|
+
data: T;
|
|
85
|
+
errors: false;
|
|
86
|
+
} | {
|
|
87
|
+
data: undefined;
|
|
88
|
+
errors: string[];
|
|
89
|
+
};
|
|
90
|
+
declare function parse<T>(type: RcType<T>, input: unknown, ctx: ParseResultCtx, checkIfIsValid: () => IsValid<T>): InternalParseResult<T>;
|
|
91
|
+
declare const defaultProps: Omit<RcType<any>, '_parse_' | '_kind_'>;
|
|
32
92
|
declare const rc_undefined: RcType<undefined>;
|
|
33
93
|
declare const rc_null: RcType<null>;
|
|
34
94
|
declare const rc_any: RcType<any>;
|
|
@@ -44,54 +104,14 @@ type NotUndefined<T> = T extends undefined ? never : T;
|
|
|
44
104
|
declare function rc_default<T>(schema: RcType<T>, defaultValue: NotUndefined<T> | (() => NotUndefined<T>)): RcType<NotUndefined<T>>;
|
|
45
105
|
type NotNullish<T> = T extends null | undefined ? never : T;
|
|
46
106
|
declare function rc_nullish_default<T>(schema: RcType<T>, defaultValue: NotNullish<T> | (() => NotNullish<T>)): RcType<NotNullish<T>>;
|
|
47
|
-
declare function
|
|
48
|
-
/** @deprecated use `rc_rename_from_key` instead */
|
|
49
|
-
declare const rc_rename_key: typeof rc_rename_from_key;
|
|
50
|
-
type RcObject = {
|
|
51
|
-
[key: string]: RcBase<any, any> | RcObject;
|
|
52
|
-
};
|
|
53
|
-
type TypeOfObjectType<T extends RcObject> = Flatten<AddQuestionMarks<{
|
|
54
|
-
[K in keyof T]: T[K] extends RcType<infer U> ? RequiredKey<U> : T[K] extends RcOptionalKeyType<infer W> ? W : T[K] extends RcObject ? RequiredKey<TypeOfObjectType<T[K]>> : never;
|
|
55
|
-
}>>;
|
|
56
|
-
type RcObjTypeReturn<T extends RcObject> = RcType<TypeOfObjectType<T>>;
|
|
57
|
-
type RequiredKey<T> = {
|
|
58
|
-
_required_key_: T;
|
|
59
|
-
};
|
|
60
|
-
type RequiredKeys<T extends object> = {
|
|
61
|
-
[k in keyof T]: T[k] extends RequiredKey<any> ? k : never;
|
|
62
|
-
}[keyof T];
|
|
63
|
-
type AddQuestionMarks<T extends object, R extends keyof T = RequiredKeys<T>> = Pick<Required<T>, R> & Partial<Omit<T, R>>;
|
|
64
|
-
type Identity<T> = T;
|
|
65
|
-
type Flatten<T> = Identity<{
|
|
66
|
-
[k in keyof T]: T[k] extends RequiredKey<infer U> ? U : T[k];
|
|
67
|
-
}>;
|
|
68
|
-
type ObjOptions = {
|
|
69
|
-
normalizeKeysFrom?: 'snake_case';
|
|
70
|
-
};
|
|
71
|
-
declare function rc_object<T extends RcObject>(shape: T, { normalizeKeysFrom }?: ObjOptions): RcObjTypeReturn<T>;
|
|
72
|
-
declare function rc_obj_extends<T extends RcObject>(shape: T, options?: ObjOptions): RcObjTypeReturn<T>;
|
|
73
|
-
declare function rc_get_obj_schema<T extends RcObject>(type: RcObjTypeReturn<T>): T;
|
|
74
|
-
/** return an error if the obj has more keys than the expected type */
|
|
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>;
|
|
83
|
-
declare function rc_obj_pick<O extends RcObject, K extends keyof O>(obj: RcObjTypeReturn<O>, keys: K[]): RcObjTypeReturn<Pick<O, K>>;
|
|
84
|
-
declare function rc_obj_omit<O extends RcObject, K extends keyof O>(obj: RcObjTypeReturn<O>, keys: K[]): RcObjTypeReturn<Pick<O, K>>;
|
|
85
|
-
type RcRecord<V extends RcType<any>> = Record<string, V>;
|
|
86
|
-
type RcRecordType<V extends RcType<any>> = RcType<TypeOfObjectType<RcRecord<V>>>;
|
|
87
|
-
declare function rc_record<V extends RcType<any>>(valueType: V, { checkKey, looseCheck, }?: {
|
|
107
|
+
declare function rc_record<V>(valueType: RcType<V>, { checkKey, looseCheck, }?: {
|
|
88
108
|
checkKey?: (key: string) => boolean;
|
|
89
109
|
looseCheck?: boolean;
|
|
90
|
-
}):
|
|
110
|
+
}): RcType<Record<string, V>>;
|
|
91
111
|
/** instead of returning a general error, rejects invalid keys and returns warnings for these items */
|
|
92
|
-
declare function rc_loose_record<V
|
|
112
|
+
declare function rc_loose_record<V>(valueType: RcType<V>, { checkKey }?: {
|
|
93
113
|
checkKey?: (key: string) => boolean;
|
|
94
|
-
}):
|
|
114
|
+
}): RcType<Record<string, V>>;
|
|
95
115
|
type ArrayOptions<T extends RcType<any>> = {
|
|
96
116
|
unique?: RcInferType<T> extends Record<string, any> ? keyof RcInferType<T> | ((parsedItem: RcInferType<T>) => any) : boolean | ((parsedItem: RcInferType<T>) => any);
|
|
97
117
|
};
|
|
@@ -128,29 +148,34 @@ declare function rc_loose_parse<S>(input: any, type: RcType<S>, options?: ParseO
|
|
|
128
148
|
declare function rc_is_valid<S>(input: any, type: RcType<S>): input is S;
|
|
129
149
|
declare function rc_validator<S>(type: RcType<S>): (input: any) => input is S;
|
|
130
150
|
declare function rc_recursive<T>(type: () => RcType<T>): RcType<T>;
|
|
151
|
+
type TransformOptions<T> = {
|
|
152
|
+
/** if the input type is invalid, the transform will be ignored and this schema will be used to validate the input */
|
|
153
|
+
outputSchema?: RcType<T>;
|
|
154
|
+
};
|
|
131
155
|
/** validate a input or subset of input and transform the valid result */
|
|
132
|
-
declare function rc_transform<Input, Transformed>(type: RcType<Input>, transform: (input: Input) => Transformed): RcType<Transformed>;
|
|
133
|
-
declare function rc_unsafe_transform<Input, Transformed>(type: RcType<Input>, transform: (input: Input) => {
|
|
156
|
+
declare function rc_transform<Input, Transformed>(type: RcType<Input>, transform: (input: Input, inputSchema: RcType<Input>) => Transformed, { outputSchema }?: TransformOptions<Transformed>): RcType<Transformed>;
|
|
157
|
+
declare function rc_unsafe_transform<Input, Transformed>(type: RcType<Input>, transform: (input: Input, inputSchema: RcType<Input>) => {
|
|
134
158
|
ok: true;
|
|
135
159
|
data: Transformed;
|
|
136
160
|
} | {
|
|
137
161
|
ok: false;
|
|
138
|
-
errors: string[];
|
|
139
|
-
}): RcType<Transformed>;
|
|
162
|
+
errors: string | string[];
|
|
163
|
+
}, { outputSchema }?: TransformOptions<Transformed>): RcType<Transformed>;
|
|
164
|
+
type NonArrayObject = {
|
|
165
|
+
[x: string]: any;
|
|
166
|
+
[y: number]: never;
|
|
167
|
+
};
|
|
140
168
|
declare function rc_assert_is_valid<S>(result: RcParseResult<S>): asserts result is {
|
|
141
169
|
ok: true;
|
|
142
170
|
error: false;
|
|
143
171
|
data: S;
|
|
144
172
|
warnings: string[] | false;
|
|
145
173
|
};
|
|
174
|
+
declare function isObject(value: any): value is NonArrayObject;
|
|
146
175
|
declare function rc_parse_json<T>(jsonString: unknown, schema: RcType<T>, options?: ParseOptions): RcParseResult<T>;
|
|
147
176
|
type Prettify<T> = T extends Record<string, any> ? {
|
|
148
177
|
[K in keyof T]: Prettify<T[K]>;
|
|
149
178
|
} : T;
|
|
150
179
|
type RcPrettyInferType<T extends RcType<any>> = Prettify<RcInferType<T>>;
|
|
151
|
-
type StricTypeToRcType<T> = [T] extends [any[]] ? RcType<T> : [T] extends [Record<string, any>] ? ({
|
|
152
|
-
[K in keyof T]-?: StricTypeToRcType<T[K]>;
|
|
153
|
-
} & Partial<Record<keyof RcType<any>, never>>) | RcType<T> : RcType<T>;
|
|
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>;
|
|
155
180
|
|
|
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,
|
|
181
|
+
export { RcBase, RcInferType, RcOptionalKeyType, RcParseResult, RcParser, RcPrettyInferType, RcType, defaultProps, gerWarningOrErrorWithPath, isObject, parse, 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_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 };
|
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-
|
|
1
|
+
import{A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,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-PJTM2QW6.js";export{l as defaultProps,j as gerWarningOrErrorWithPath,N as isObject,k as parse,o as rc_any,B as rc_array,M as rc_assert_is_valid,q as rc_boolean,t as rc_date,x as rc_default,d as rc_get_obj_schema,u as rc_instanceof,H as rc_is_valid,v as rc_literals,C as rc_loose_array,G as rc_loose_parse,A as rc_loose_record,n as rc_null,y as rc_nullish_default,s as rc_number,i as rc_obj_builder,c as rc_obj_extends,f as rc_obj_merge,h as rc_obj_omit,g as rc_obj_pick,e as rc_obj_strict,b as rc_object,E as rc_parse,P as rc_parse_json,F as rc_parser,z as rc_record,J as rc_recursive,a as rc_rename_from_key,r as rc_string,K as rc_transform,D as rc_tuple,m as rc_undefined,w as rc_union,p as rc_unknown,L as rc_unsafe_transform,I as rc_validator,O as snakeCase};
|
package/package.json
CHANGED
package/dist/chunk-VOMXQGTP.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function F(e){return{...this,d:e}}function j(e,r){return r.startsWith("$[")||r.startsWith("$.")?r:`${e.n?`$${e.n}: `:""}${r}`}function P(e,r){e.i.push(j(e,r))}function q(e,r){r.forEach(n=>P(e,n))}function c(e,r,n,t){if(e.c&&r===void 0)return[!0,r];if(e.u&&r==null)return[!0,r];if(e.y&&r===null)return[!0,r];let s=t();if(s&&(s===!0||!s.errors)){let o=s===!0?r:s.data;return e.s&&!e.s(o)?[!1,[`Predicate failed for type '${e.e}'`]]:[!0,o]}if(!n.p){let o=e.d;if(o!==void 0)return P(n,`Fallback used, errors -> ${N(s,n,e,r)}`),[!0,I(o)?o():o];if(e.R&&e.l){let a=e.l(r);if(a)return e.s&&!e.s(a.fixed)?[!1,[`Predicate failed for autofix in type '${e.e}'`]]:(P(n,`Autofixed from error "${N(s,n,e,r)}"`),[!0,a.fixed])}}return[!1,s?s.errors:[C(e,r)]]}function N(e,r,n,t){return e?e.errors.map(s=>s.replace(r.n,"")).join("; "):C(n,t)}function U(e){return{...this,R:!0,l:e}}function W(e){return{...this,s:e}}function v(){return{...this,c:!0}}function C(e,r){return`Type '${w(r,!!e.b)}' is not assignable to '${e.e}'`}function D(){return{...this,y:!0,e:`${this.e}_or_null`}}function M(){return{...this,u:!0,e:`${this.e}_or_nullish`}}var i={__rc_type:void 0,withFallback:F,where:W,optional:v,optionalKey:v,orNullish:M,withAutofix:U,orNull:D,d:void 0,s:void 0,c:!1,y:!1,u:!1,R:!1,b:!1,f:void 0,l:void 0,x:void 0,t:void 0,T:!1,_:!1,h:[]},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 se(e){return{...i,r(r,n){return c(this,r,n,()=>r instanceof e)},e:`instanceof_${e.name?`_${e.name}`:""}`}}function oe(...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})},b:!0,e:e.length==1?w(e[0],!0):e.map(r=>w(r,!0)).join(" | ")}}var E=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.n,s=[],o=0,a=!1,y=[],f=0;for(let R of e){f+=1,R.T&&(n.n=`${t}|union ${f}|`),n.a=!0,n.o=0;let[u,T]=R.r(r,n);n.a=!1;let d=n.o;if(n.o=0,u)return!0;R.T&&d!==-1?d>0?y.push(...T):(o<E&&s.push(...T),o+=1):a=!0}return n.n=t,y.length>0||s.length>0?((o>E||a)&&s.push("not matches any other union member"),{errors:[...y,...s],data:void 0}):!1})},e:e.map(r=>r.e).join(" | ")}}function ie(e,r){return{...e,c:!1,u:!1,y:!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 ce(e,r){return{...e,c:!1,u:!1,y:!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 z(e,r){return{...r,f:e}}var ue=z;function V(e){return m(e)&&"__rc_type"in e}function B(e){if(V(e))return e;if(m(e)){let r={};for(let[n,t]of Object.entries(e))r[n]=B(t);return O(r)}throw new Error(`invalid schema: ${e}`)}function O(e,{normalizeKeysFrom:r}={}){let n={};for(let[t,s]of Object.entries(e))n[t]=B(s);return{...i,t:n,e:"object",T:!0,h:Object.entries(n),r(t,s){return c(this,t,s,()=>{if(!m(t))return s.o=-1,!1;let o=this.e==="strict_obj"?new Set(Object.keys(t)):void 0,a={},y=[],f=s.n,R=-1;for(let[u,T]of this.h){let d=u;R+=1;let k=`.${u}`,h=`${f}${k}`;s.n=h;let l,_=u;if(T.f&&(l=t[T.f],_=T.f),l===void 0&&(l=t[u],_=u),l===void 0&&r==="snake_case"){let x=Z(u);l=t[x],_=x}o?.delete(_);let[g,p]=T.r(l,s);if(g)a[d]=p;else{for(let x of p)s.n=h,y.push(j(s,x));if(s.a){s.o=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._?{errors:!1,data:{...t,...a}}:{errors:!1,data:a}})}}}function ye(e,r){return{...O(e,r),e:"extends_object",_:!0}}function fe(e){return e.t}function Q(e,r){let n=(()=>{if(V(e)){if(!e.t)throw new Error("rc_strict_obj: expected an object type");if(r?.nonRecursive)return e.t;{let t={};for(let[s,o]of Object.entries(e.t))t[s]=o.t?Q(o,r):o;return t}}return e})();return{...O(n,r),e:"strict_obj"}}function le(...e){let r={};for(let n of e)Object.assign(r,n.t);return O(r)}function Te(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 s=e.t[t];s&&(n[t]=s)}return O(n)}function de(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 O(n)}function J(e,{checkKey:r,looseCheck:n}={}){return{...i,e:`record<string, ${e.e}>`,r(t,s){return c(this,t,s,()=>{if(!m(t))return!1;let o={},a=[],y=s.n;for(let[f,R]of Object.entries(t)){let u=`.${f}`,T=`${y}${u}`;if(s.n=T,r&&!r(f)){a.push(j(s,`Key '${f}' is not allowed`));continue}let d=t[f],[k,h]=e.r(R,s);if(k)o[f]=d;else{let l=h;for(let _ of l)a.push(j(s,_));if(s.a)break}}if(a.length>0)if(n)q(s,a);else return{errors:a,data:void 0};return{errors:!1,data:o}})}}}function pe(e,{checkKey:r}={}){return J(e,{checkKey:r,looseCheck:!0})}function K(e,r,n,t=!1,s){let o=[],a=[],y=new Set,f=n.n,R=Array.isArray(r),u=-1;for(let T of e){u++;let d=R?r[u]:r,k=`[${u}]`,h=`${f}${k}`;n.n=h;let l=d.r(T,n),[_,g]=l;n.n=h;let p=s?.unique;if(_&&p){let b=g,A=typeof p=="string";A?b=g[p]:typeof p=="function"&&(b=p(g)),y.has(b)?(A&&(n.n=`${f}${k}.${p}`),l=[!1,[j(n,A?`Type '${d.t?.[p]?.e}' with value "${b}" is not unique`:typeof p=="function"?`Type '${d.e}' unique fn return with value "${b}" is not unique`:`${d.e} value is not unique`)]]):y.add(b)}let[x,$]=l;if(x)a.push($);else if(t){o.push($.map(b=>j(n,b)));continue}else return{errors:$.map(b=>j(n,b)),data:void 0}}if(o.length>0){if(a.length===0)return{errors:o.slice(0,5).flat(),data:void 0};q(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:K.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:K.call(this,n,e,t,!0,r):!1)}}}function _e(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:K.call(this,r,e,n))}}}function S(e,r,{noWarnings:n=!1}={}){let t={i:[],n:"",a:!1,o:0,p:n},[s,o]=r.r(e,t);return s?{error:!1,ok:!0,data:o,warnings:t.i.length>0?t.i:!1}:{ok:!1,error:!0,errors:o}}function he(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={i:[],n:"",a:!1,o:0,p:!1};return!!r.r(e,n)[0]}function Oe(e){return r=>L(r,e)}function ke(e){return{...i,e:"recursive",r(r,n){return e().r(r,n)}}}function xe(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 me(e){if(e.error)throw new Error(`invalid input: ${e.errors.join(", ")}`)}function m(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 we(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: ${m(t)?t.message:""}`]}}}function I(e){return typeof e=="function"}function $e(){return(e,r)=>O(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,se as i,oe as j,ae as k,ie as l,ce as m,z as n,ue as o,O as p,ye as q,fe as r,Q as s,le as t,Te as u,de as v,J as w,pe as x,Re as y,be as z,_e as A,S as B,he as C,je as D,L as E,Oe as F,ke as G,xe as H,ge as I,me as J,Z as K,we as L,$e as M};
|