check-types-mini 8.2.1 → 8.2.2

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/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 8.2.2 (2026-09-01)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **check-types-mini:** harden validation contracts ([ee91068](https://github.com/codsen/codsen/commit/ee910686461b2fcc531a37710917ae6cd58118f2))
11
+
6
12
  ## 8.2.1 (2026-08-22)
7
13
 
8
14
  ### Performance Improvements
@@ -1,24 +1,10 @@
1
1
  /**
2
2
  * @name check-types-mini
3
3
  * @fileoverview Validate options object
4
- * @version 8.2.1
4
+ * @version 8.2.2
5
5
  * @author Roy Revelt
6
6
  * @license MIT
7
7
  * {@link https://codsen.com/os/check-types-mini/}
8
8
  */
9
9
 
10
- import{formatDiagnosticValue as $,isPlainObject as m,match as I}from"codsen-utils";import g from"type-detect";var j="8.2.1";var U=j,_={ignoreKeys:[],ignorePaths:[],acceptArrays:!1,acceptArraysIgnore:[],enforceStrictKeyset:!0,schema:{},msg:"check-types-mini",optsVarName:"opts"},C=new Set(["any","anything","every","everything","all","whatever","whatevs"]),v=Object.prototype.hasOwnProperty,M={caseSensitiveMatch:!0};function N(t,s){return s.some(n=>t===n||I(t,n))}function k(t,s){return s.length?t.filter(n=>!s.some(e=>n===e||I(n,e,M))):t}function E(t,s){if(!s.length)return t;let n=new Set(s);return t.filter(e=>!n.has(e))}function R(t){let s={};function n(e,o){if(m(e)){for(let p of Object.keys(e))n(e[p],o?`${o}.${p}`:p);return}let u=Array.isArray(e)?e:[e];s[o]=u.map(p=>`${p}`.toLowerCase().trim())}for(let e of Object.keys(t))n(t[e],e);return s}function w(t,s,n=""){if(Array.isArray(t))for(let e=0;e<t.length;e++){if(t[e]===void 0)continue;let o=n?`${n}.${e}`:`${e}`;s(t[e],void 0,{path:o,parent:t,parentType:"array"}),w(t[e],s,o)}else if(m(t))for(let e of Object.keys(t)){let o=n?`${n}.${e}`:e;s(e,t[e],{path:o,parent:t,parentType:"object"}),w(t[e],s,o)}}function W(t,s){let n=t,e=0;for(;e<=s.length;){let o=s.indexOf(".",e),u=o===-1?s.slice(e):s.slice(e,o);if(n===null||typeof n!="object"&&typeof n!="function"||!v.call(n,u))return[!1,void 0];if(n=n[u],o===-1)return[!0,n];e=o+1}return[!1,void 0]}function L(t,s,n){if(t==null)throw new Error("check-types-mini/checkTypesMini(): [THROW_ID_01] First argument is missing!");let e={..._,...n};if(typeof e.ignoreKeys=="string"&&(e.ignoreKeys=[e.ignoreKeys]),typeof e.ignorePaths=="string"&&(e.ignorePaths=[e.ignorePaths]),typeof e.acceptArraysIgnore=="string"&&(e.acceptArraysIgnore=[e.acceptArraysIgnore]),e.msg=`${e.msg}`.trim(),e.msg[e.msg.length-1]===":"&&(e.msg=e.msg.slice(0,e.msg.length-1).trim()),m(e.schema))e.schema=R(e.schema);else if(e.schema!=null)throw new Error(`check-types-mini/checkTypesMini(): [THROW_ID_02] opts.schema was customised to ${$(e.schema)} which is not object but ${typeof e.schema}`);s==null&&(s={});let o=e.ignoreKeys,u=e.ignorePaths,p=e.acceptArraysIgnore,b=Object.keys(t),y=m(s)?Object.keys(s):[],S=m(e.schema)?Object.keys(e.schema):[];if(e.enforceStrictKeyset)if(S.length){let i=k(E(b,y.concat(S)),o);if(i.length)throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_03] ${e.msg}: ${e.optsVarName}.enforceStrictKeyset is on and the following key${i.length>1?"s":""} ${i.length>1?"are":"is"} not covered by schema and/or reference objects: ${i.join(", ")}`)}else if(y.length){let i=k(E(b,y),o);if(i.length)throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_04] ${e.msg}: The input object has key${i.length>1?"s":""} which ${i.length>1?"are":"is"} not covered by the reference object: ${i.join(", ")}`);if(i=k(E(y,b),o),i.length)throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_05] ${e.msg}: The reference object has key${i.length>1?"s":""} which ${i.length>1?"are":"is"} not present in the input object: ${i.join(", ")}`)}else throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_06] ${e.msg}: Both ${e.optsVarName}.schema and reference objects are missing! We don't have anything to match the keys as you requested via resolvedOpts.enforceStrictKeyset!`);let d=[];w(t,(i,K,c)=>{let r=K,O=i;if(c.parentType==="array"&&(O=void 0,r=i),d.length&&d.some(a=>c.path.startsWith(`${a}.`))||O&&N(O,o)||N(c.path,u))return r;let P=!(!m(r)&&!Array.isArray(r)&&Array.isArray(c.parent)),D=m(e.schema)&&v.call(e.schema,c.path),[V,H]=m(s)?W(s,c.path):[!1,void 0];if(e.enforceStrictKeyset&&P&&!D&&!V)throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_07] ${e.msg}: ${e.optsVarName}.${c.path} is neither covered by reference object (second input argument), nor ${e.optsVarName}.schema! To stop this error, turn off ${e.optsVarName}.enforceStrictKeyset or provide some type reference (2nd argument or ${e.optsVarName}.schema).
11
-
12
- Debug info:
13
-
14
- obj = ${$(t,4)}
15
-
16
- ref = ${$(s,4)}
17
-
18
- innerObj = ${$(c,4)}
19
-
20
- resolvedOpts = ${$(e,4)}
21
-
22
- current = ${$(r,4)}
23
-
24
- `);if(D){let a=e.schema[c.path];if(a.filter(l=>C.has(l)).length)d.push(c.path);else{let l=g(r).toLowerCase();if(r!==!0&&r!==!1&&!a.includes(l)||(r===!0||r===!1)&&!a.includes(String(r))&&!a.includes("boolean"))if(Array.isArray(r)&&e.acceptArrays)for(let h=0,T=r.length;h<T;h++){let A=g(r[h]).toLowerCase();if(!a.includes(A))throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_08] ${e.msg}: ${e.optsVarName}.${c.path}.${h}, the ${h}th element (equal to ${$(r[h])}) is of a type ${A}, but only the following are allowed by the ${e.optsVarName}.schema: ${a.join(", ")}`)}else throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_09] ${e.msg}: ${e.optsVarName}.${c.path} was customised to ${l!=="string"?'"':""}${$(r)}${l!=="string"?'"':""} (type: ${l}) which is not among the allowed types in schema (which is equal to ${$(a)})`)}}else if(s&&m(s)&&V){let a=g(r),f=g(H);if(e.acceptArrays&&Array.isArray(r)&&!p.includes(i)){let l=f.toLowerCase();if(!r.every(T=>g(T).toLowerCase()===l))throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_10] ${e.msg}: ${e.optsVarName}.${c.path} was customised to be array, but not all of its elements are ${l}-type`)}else if(a!==f){let l=a.toLowerCase();throw new TypeError(`check-types-mini/checkTypesMini(): [THROW_ID_11] ${e.msg}: ${e.optsVarName}.${c.path} was customised to ${l==="string"?"":'"'}${$(r)}${l==="string"?"":'"'} which is not ${f.toLowerCase()} but ${l}`)}}return r})}function Y(t,s,n){L(t,s,n)}export{Y as checkTypesMini,_ as defaults,U as version};
10
+ import*as Me from"codsen-utils";import m from"type-detect";var Ce="8.2.2";var pt=Ce,{formatDiagnosticValue:_,isPlainObject:v,match:Fe}=Me,se=Object.getOwnPropertyDescriptor(Me,"createMatcher")?.value,C=Object.freeze([]),He=Object.freeze({}),ce={acceptArrays:!1,acceptArraysIgnore:C,enforceStrictKeyset:!0,ignoreKeys:C,ignorePaths:C,msg:"check-types-mini",optsVarName:"opts",reportCompletionFunc:null,reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100,schema:He},dt=Object.freeze({...ce}),ye=class extends TypeError{actualType;context;expectedTypes;name="CheckTypesMiniError";path;reason;validatorCode;constructor(t,n,r={}){let o=r.context||ce.msg;super(`check-types-mini/checkTypesMini(): [${t}] ${o}: ${n}`),this.actualType=r.actualType??null,this.context=o,this.expectedTypes=r.expectedTypes?Object.freeze(Array.from(r.expectedTypes)):null,this.path=Object.freeze(Array.from(r.path??C)),this.reason=n,this.validatorCode=t}toJSON(){return{actualType:this.actualType,context:this.context,expectedTypes:this.expectedTypes,message:this.message,name:this.name,path:this.path,reason:this.reason,validatorCode:this.validatorCode}}},Te=new Set(["all","any","anything","every","everything","whatever","whatevs"]),V=Object.prototype.hasOwnProperty,ae={caseSensitiveMatch:!0},Je=new Map,Ue=new Map,Ye=100,Ze=new Set(["acceptArrays","acceptArraysIgnore","enforceStrictKeyset","ignoreKeys","ignorePaths","msg","optsVarName","reportCompletionFunc","reportProgressFunc","reportProgressFuncFrom","reportProgressFuncTo","schema"]);function be(){return{children:new Map,descriptors:null,implicitContainer:!1}}var Se=be();function Ge(e){return"keys"in e}function Qe(e){return"keys"in e}function F(e){if(!e)return[];let t=new Array(e.depth),n=e;for(;n;)t[n.depth-1]=n.segment,n=n.parent;return t}function T(e,t){let n=e;for(let r of F(t))/^(?:[A-Za-z_$][A-Za-z0-9_$]*|\d+)$/u.test(r)?n+=`.${r}`:n+=`[${JSON.stringify(r)}]`;return n}function Y(e){let t="";for(let n of e)n==="%"?t+="%25":n==="."?t+="%2E":n==="\\"?t+="%5C":t+=n;return t}function Xe(e){return e.encoded}function $e(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(r==="\\"&&n+1<e.length){let o=e[n+1];o==="."?t+="%2E":o==="%"?t+="%25":o==="\\"?t+="%5C":t+=`\\${o}`,n++}else r==="%"?t+="%25":t+=r}return t}function me(e,t){if(!e.length)return null;if(e.length===1){let r=e[0],o=t?Ue:Je,p=o.get(r);if(p)return p;let w=t?$e(r):r,j=se?se(w,ae):Z=>Fe(Z,w,ae);return o.size<Ye&&o.set(r,j),j}let n=t?e.map($e):Array.from(e);return se?se(n,ae):r=>Fe(r,n,ae)}function et(e){let t=[],n="";for(let r=0;r<e.length;r++){let o=e[r];o==="\\"&&r+1<e.length?(n+=e[r+1],r++):o==="."?(t.push(n),n=""):n+=o}return t.push(n),t}function Ne(e,t){if(t.some(r=>Te.has(r)))return!0;if(e===!0)return t.includes("true")||t.includes("boolean");if(e===!1)return t.includes("false")||t.includes("boolean");let n=m(e).toLowerCase();return n==="object"&&t.includes("object")?v(e):t.includes(n)}function fe(e){return e.includes("object")&&!e.some(t=>Te.has(t))}function tt(e){let t=Array.isArray(e)?e:[e];if(!t.length)return null;let n=[];for(let r=0;r<t.length;r++){if(!V.call(t,r))return null;let o=t[r];if(o!=null&&typeof o!="string")return null;let p=String(o).toLowerCase().trim();if(!p)return null;n.includes(p)||n.push(p)}return n}function D(e){return Array.isArray(e)?Object.keys(e).filter(t=>{let n=Number(t);return Number.isInteger(n)&&n>=0&&n<e.length&&String(n)===t}):Object.keys(e)}function nt(e){return e!==null&&(typeof e=="object"||typeof e=="function")}function De(e,t){if(e)try{e(t)}catch{}}function h(e,t,n={}){throw new ye(e,t,n)}function b(e,t){return V.call(e,t)&&e[t]!==void 0?e[t]:ce[t]}function U(e,t){return e[t]}function Ae(e,t,n){return!!(t?.(e)||n?.(Y(e)))}function H(e,t,n,r,o){return h(e,t,{actualType:r,context:o,path:F(n)})}function ge(e,t){if(e===void 0)return Array.from(t);let n=typeof e=="string"?[e]:e;if(!Array.isArray(n))return null;let r=[];for(let o=0;o<n.length;o++){if(!V.call(n,o)||typeof n[o]!="string")return null;r.push(n[o])}return r}function ht(...e){let[t,n,r]=e;v(t)||h("THROW_ID_01",`The first argument must be a plain object; received ${_(t,4)}.`,{actualType:m(t).toLowerCase()}),(e.length<2||n!==null&&!v(n))&&h("THROW_ID_02",`The second argument must be a plain object or null; received ${_(n,4)}. Pass null explicitly when validating against only a schema.`,{actualType:m(n).toLowerCase()}),r!=null&&!v(r)&&h("THROW_ID_03",`The third argument must be a plain options object, null, or undefined; received ${_(r,4)}.`,{actualType:m(r).toLowerCase()});let o=r??He,p=Object.keys(o).find(s=>!Ze.has(s));p!==void 0&&h("THROW_ID_04",`Unknown option ${_(p)}.`,{path:[p]});let w=ge(b(o,"ignoreKeys"),C),j=ge(b(o,"ignorePaths"),C),Z=ge(b(o,"acceptArraysIgnore"),C);(!w||!j||!Z)&&h("THROW_ID_05","opts.ignoreKeys, opts.ignorePaths, and opts.acceptArraysIgnore must each be a string or a dense array of strings.");let we=b(o,"acceptArrays"),ke=b(o,"enforceStrictKeyset");(typeof we!="boolean"||typeof ke!="boolean")&&h("THROW_ID_06","opts.acceptArrays and opts.enforceStrictKeyset must be Booleans.");let A=b(o,"schema");v(A)||h("THROW_ID_07",`opts.schema was customised to ${_(A)} which is not a plain object but ${m(A).toLowerCase()}.`,{actualType:m(A).toLowerCase(),path:["schema"]});let ve=b(o,"msg"),_e=b(o,"optsVarName");(typeof ve!="string"||typeof _e!="string")&&h("THROW_ID_08","opts.msg and opts.optsVarName must be strings.");let u=ve.trim();u.endsWith(":")&&(u=u.slice(0,-1).trim()),u||(u=ce.msg);let Ve=_e,ie=b(o,"reportCompletionFunc"),le=b(o,"reportProgressFunc");(ie!==null&&typeof ie!="function"||le!==null&&typeof le!="function")&&h("THROW_ID_09","opts.reportCompletionFunc and opts.reportProgressFunc must each be a function, null, or undefined.",{context:u});let G=b(o,"reportProgressFuncFrom"),Q=b(o,"reportProgressFuncTo");(!Number.isFinite(G)||!Number.isFinite(Q))&&h("THROW_ID_10","opts.reportProgressFuncFrom and opts.reportProgressFuncTo must be finite numbers.",{context:u}),G>Q&&h("THROW_ID_11",`opts.reportProgressFuncFrom cannot exceed opts.reportProgressFuncTo; received ${G} and ${Q}.`,{context:u});let c={acceptArrays:we,acceptArraysIgnore:Z,enforceStrictKeyset:ke,ignoreKeys:w,ignorePaths:j,msg:u,optsVarName:Ve,reportCompletionFunc:ie,reportProgressFunc:le,reportProgressFuncFrom:G,reportProgressFuncTo:Q,schema:A},P=!!(c.reportCompletionFunc||c.reportProgressFunc),Ke=c.reportCompletionFunc?Date.now():0,X=0,O=0,Pe=0,Oe=0,ue=0,W=0,ee=0,je,te=null,I=null;P&&(te=(s=!1)=>{if(!c.reportProgressFunc)return;let i=c.reportProgressFuncTo-c.reportProgressFuncFrom,a=s?c.reportProgressFuncTo:c.reportProgressFuncFrom+i*Math.min(.99,ee/(ee+1e3));a!==je&&(je=a,De(c.reportProgressFunc,a))},I=()=>{ee++,ee%1e3===0&&te?.()},te());let K=t,S=n,ne=A,re=D(ne),E=re.length?be():Se,L="THROW_ID_12",Ee="THROW_ID_13",pe=re.length?new Set([ne]):null,z=re.length?[{value:ne},{index:0,keys:re,node:E,path:null,value:ne}]:[];for(;z.length;){let s=z.pop();if(!Qe(s)){pe?.delete(s.value);continue}if(s.index>=s.keys.length)continue;let i=s.keys[s.index++];z.push(s);let a=U(s.value,i),l=et(i),f=s.node,d=s.path;for(let N=0;N<l.length;N++){let g=l[N],y=f.children.get(g);y||(y=be(),f.children.set(g,y),Oe++,I?.()),d={depth:(d?.depth??0)+1,encoded:d?`${d.encoded}.${Y(g)}`:Y(g),parent:d,segment:g},N<l.length-1&&(y.descriptors&&!fe(y.descriptors)&&H(L,`${T("schema",d)} cannot have both a terminal descriptor and nested schema paths.`,d,null,u),y.implicitContainer=!0),d.depth>O&&(O=d.depth),f=y}if(v(a)){f.descriptors&&!fe(f.descriptors)&&H(L,`${T("schema",d)} cannot have both a terminal descriptor and nested schema paths.`,d,"object",u),f.implicitContainer=!0,pe?.has(a)&&H(Ee,`${T("schema",d)} contains a cycle. Cyclic schemas are not supported.`,d,"object",u),pe?.add(a),z.push({value:a}),z.push({index:0,keys:D(a),node:f,path:d,value:a});continue}let k=tt(a);k||H(L,`${T("schema",d)} must be a non-empty type name, null, undefined, or a dense array of those values; received ${_(a,4)}.`,d,m(a).toLowerCase(),u);let $=k;f.descriptors&&H(L,`${T("schema",d)} is declared more than once.`,d,m(a).toLowerCase(),u),(f.children.size||f.implicitContainer)&&!fe($)&&H(L,`${T("schema",d)} cannot have both a terminal descriptor and nested schema paths.`,d,m(a).toLowerCase(),u),f.descriptors=$}let de=me(c.ignoreKeys,!1),he=me(c.ignorePaths,!0),Ie=me(c.acceptArraysIgnore,!1),Re=D(K),Le=S?D(S):C;if(c.enforceStrictKeyset&&!S&&E.children.size===0&&h("THROW_ID_14",`Both ${c.optsVarName}.schema and reference objects are missing! We don't have anything to match the keys as requested via ${c.optsVarName}.enforceStrictKeyset.`,{context:u}),c.enforceStrictKeyset){let s=Re.filter(i=>!Ae(i,de,he)&&!(S&&V.call(S,i))&&!E.children.has(i));if(s.length){let i=s.length>1,a=E.children.size?`The ${c.optsVarName}.enforceStrictKeyset is on and the following key${i?"s are":" is"} not covered by schema and/or reference objects: ${s.join(", ")}`:`The input object has key${i?"s":""} which ${i?"are":"is"} not covered by the reference object: ${s.join(", ")}`;h("THROW_ID_15",a,{context:u})}}if(c.enforceStrictKeyset&&S){let s=Le.filter(i=>!V.call(K,i)&&!Ae(i,de,he));if(s.length){let i=s.length>1;h("THROW_ID_16",`The reference object has key${i?"s":""} which ${i?"are":"is"} not present in the input object: ${s.join(", ")}`,{context:u})}}let M=[K],R=null,q=[{value:K},{index:0,keys:Re,path:null,refValue:S,schemaNode:E,value:K}];for(;q.length;){let s=q.pop();if(!Ge(s)){M.pop(),R?.delete(s.value),R&&M.length<=32&&(R=null);continue}if(s.index>=s.keys.length)continue;let i=s.keys[s.index++];q.push(s);let a={depth:(s.path?.depth??0)+1,encoded:s.path?`${s.path.encoded}.${Y(i)}`:Y(i),parent:s.path,segment:i};P&&(Array.isArray(s.value)?X++:Pe++,a.depth>O&&(O=a.depth),I?.());let l=U(s.value,i),f=Array.isArray(s.value);if(!!(!f&&de?.(i)||he?.(Xe(a)))){P&&ue++;continue}let k=s.schemaNode.children.get(i),$=!1;if(k?.descriptors){let x=k.descriptors;if(x.some(B=>Te.has(B))){P&&ue++;continue}if(P&&(W++,I?.()),Ne(l,x))if((k.implicitContainer||k.children.size)&&v(l))$=!0;else continue;if(!$&&c.acceptArrays&&Array.isArray(l)&&!Ie?.(i)){let B=D(l);for(let J of B){let oe=U(l,J);P&&(X++,W++,a.depth+1>O&&(O=a.depth+1),I?.()),Ne(oe,x)||ot(oe,x,a,Number(J),c,u)}continue}$||We(l,x,a,c,u)}let N=!1,g;nt(s.refValue)&&V.call(s.refValue,i)&&(N=!0,g=U(s.refValue,i));let y=!1,ze=g,qe=k??Se;if(k&&(k.implicitContainer||k.children.size))$||(P&&(W++,I?.()),v(l)||We(l,["object"],a,c,u)),y=!0;else if(N){if(c.acceptArrays&&Array.isArray(l)&&!Array.isArray(g)&&!Ie?.(i)){let x=m(g).toLowerCase(),B=D(l);for(let J of B){let oe=U(l,J);P&&(X++,W++,a.depth+1>O&&(O=a.depth+1),I?.());let xe=m(oe).toLowerCase();xe!==x&&st(xe,x,a,Number(J),c,u)}continue}P&&(W++,I?.()),m(l)!==m(g)&&at(l,g,a,c,u),(Array.isArray(l)&&Array.isArray(g)||v(l))&&(y=!0)}else c.enforceStrictKeyset&&(!f||v(l)||Array.isArray(l))&&rt(a,c,u);y&&((R?R.has(l):M.includes(l))&&ct(a,c,u),M.push(l),R?R.add(l):M.length>32&&(R=new Set(M)),q.push({value:l}),q.push({index:0,keys:D(l),path:a,refValue:ze,schemaNode:qe,value:l}))}te?.(!0),De(c.reportCompletionFunc,Object.freeze({arrayElementsVisited:X,maxDepth:O,objectPropertiesVisited:Pe,schemaEntries:Oe,timeTakenInMilliseconds:c.reportCompletionFunc?Date.now()-Ke:0,valuesIgnored:ue,valuesValidated:W}))}function rt(e,t,n){return h("THROW_ID_17",`${T(t.optsVarName,e)} is neither covered by reference object (second input argument), nor ${t.optsVarName}.schema! To stop this error, turn off ${t.optsVarName}.enforceStrictKeyset or provide a type reference.`,{context:n,path:F(e)})}function We(e,t,n,r,o){let p=m(e).toLowerCase(),w=p==="string"?"":'"';return h("THROW_ID_18",`${T(r.optsVarName,n)} was customised to ${w}${_(e)}${w} (type: ${p}) which is not among the allowed types in schema (which is equal to ${_(t)})`,{actualType:p,context:o,expectedTypes:t,path:F(n)})}function ot(e,t,n,r,o,p){return h("THROW_ID_19",`${T(o.optsVarName,n)}.${r}, the ${r}th element (equal to ${_(e)}) is of a type ${m(e).toLowerCase()}, but only the following are allowed by the ${o.optsVarName}.schema: ${t.join(", ")}`,{actualType:m(e).toLowerCase(),context:p,expectedTypes:t,path:F({depth:n.depth+1,encoded:`${n.encoded}.${r}`,parent:n,segment:String(r)})})}function st(e,t,n,r,o,p){return h("THROW_ID_20",`${T(o.optsVarName,n)} was customised to be array, but not all of its elements are ${t}-type`,{actualType:e,context:p,expectedTypes:[t],path:F({depth:n.depth+1,encoded:`${n.encoded}.${r}`,parent:n,segment:String(r)})})}function at(e,t,n,r,o){let p=m(e).toLowerCase(),w=m(t).toLowerCase(),j=p==="string"?"":'"';return h("THROW_ID_21",`${T(r.optsVarName,n)} was customised to ${j}${_(e)}${j} which is not ${w} but ${p}`,{actualType:p,context:o,expectedTypes:[w],path:F(n)})}function ct(e,t,n){return h("THROW_ID_22",`${T(t.optsVarName,e)} contains a cycle. Cyclic input structures are not supported.`,{actualType:"object",context:n,path:F(e)})}export{ye as CheckTypesMiniError,ht as checkTypesMini,dt as defaults,pt as version};
@@ -1,17 +1,25 @@
1
1
  /**
2
2
  * @name check-types-mini
3
3
  * @fileoverview Validate options object
4
- * @version 8.2.1
4
+ * @version 8.2.2
5
5
  * @author Roy Revelt
6
6
  * @license MIT
7
7
  * {@link https://codsen.com/os/check-types-mini/}
8
8
  */
9
9
 
10
- "use strict";var checkTypesMini=(()=>{var se=Object.create;var D=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames,_=Object.getOwnPropertySymbols,ue=Object.getPrototypeOf,J=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable;var B=(e,n,r)=>n in e?D(e,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[n]=r,x=(e,n)=>{for(var r in n||(n={}))J.call(n,r)&&B(e,r,n[r]);if(_)for(var r of _(n))ce.call(n,r)&&B(e,r,n[r]);return e};var fe=(e,n)=>()=>{try{return n||e((n={exports:{}}).exports,n),n.exports}catch(r){throw n=0,r}},pe=(e,n)=>{for(var r in n)D(e,r,{get:n[r],enumerable:!0})},U=(e,n,r,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of ae(n))!J.call(e,i)&&i!==r&&D(e,i,{get:()=>n[i],enumerable:!(t=le(n,i))||t.enumerable});return e};var he=(e,n,r)=>(r=e!=null?se(ue(e)):{},U(n||!e||!e.__esModule?D(r,"default",{value:e,enumerable:!0}):r,e)),ge=e=>U(D({},"__esModule",{value:!0}),e);var te=fe((M,W)=>{(function(e,n){typeof M=="object"&&typeof W<"u"?W.exports=n():typeof define=="function"&&define.amd?define(n):(e=typeof globalThis<"u"?globalThis:e||self,e.typeDetect=n())})(M,(function(){"use strict";var e=typeof Promise=="function",n=(function(y){if(typeof globalThis=="object")return globalThis;Object.defineProperty(y,"typeDetectGlobalObject",{get:function(){return this},configurable:!0});var O=typeDetectGlobalObject;return delete y.typeDetectGlobalObject,O})(Object.prototype),r=typeof Symbol<"u",t=typeof Map<"u",i=typeof Set<"u",l=typeof WeakMap<"u",s=typeof WeakSet<"u",a=typeof DataView<"u",u=r&&typeof Symbol.iterator<"u",f=r&&typeof Symbol.toStringTag<"u",w=i&&typeof Set.prototype.entries=="function",h=t&&typeof Map.prototype.entries=="function",m=w&&Object.getPrototypeOf(new Set().entries()),g=h&&Object.getPrototypeOf(new Map().entries()),o=u&&typeof Array.prototype[Symbol.iterator]=="function",c=o&&Object.getPrototypeOf([][Symbol.iterator]()),p=u&&typeof String.prototype[Symbol.iterator]=="function",b=p&&Object.getPrototypeOf(""[Symbol.iterator]()),S=8,d=-1;function $(y){var O=typeof y;if(O!=="object")return O;if(y===null)return"null";if(y===n)return"global";if(Array.isArray(y)&&(f===!1||!(Symbol.toStringTag in y)))return"Array";if(typeof window=="object"&&window!==null){if(typeof window.location=="object"&&y===window.location)return"Location";if(typeof window.document=="object"&&y===window.document)return"Document";if(typeof window.navigator=="object"){if(typeof window.navigator.mimeTypes=="object"&&y===window.navigator.mimeTypes)return"MimeTypeArray";if(typeof window.navigator.plugins=="object"&&y===window.navigator.plugins)return"PluginArray"}if((typeof window.HTMLElement=="function"||typeof window.HTMLElement=="object")&&y instanceof window.HTMLElement){if(y.tagName==="BLOCKQUOTE")return"HTMLQuoteElement";if(y.tagName==="TD")return"HTMLTableDataCellElement";if(y.tagName==="TH")return"HTMLTableHeaderCellElement"}}var A=f&&y[Symbol.toStringTag];if(typeof A=="string")return A;var v=Object.getPrototypeOf(y);return v===RegExp.prototype?"RegExp":v===Date.prototype?"Date":e&&v===Promise.prototype?"Promise":i&&v===Set.prototype?"Set":t&&v===Map.prototype?"Map":s&&v===WeakSet.prototype?"WeakSet":l&&v===WeakMap.prototype?"WeakMap":a&&v===DataView.prototype?"DataView":t&&v===g?"Map Iterator":i&&v===m?"Set Iterator":o&&v===c?"Array Iterator":p&&v===b?"String Iterator":v===null?"Object":Object.prototype.toString.call(y).slice(S,d)}return $}))});var Me={};pe(Me,{checkTypesMini:()=>Ne,defaults:()=>ie,version:()=>je});function ye(){let e=[],n=0,r=!1;return{append(t){return r?!1:n+t.length>1999?(e.push("\u2026"),n+=1,r=!0,!1):(e.push(t),n+=t.length,!0)},result(){return e.join("")},stopped(){return r}}}function de(e){return"\\u".concat(e.toString(16).padStart(4,"0"))}function I(e,n){if(e.append('"')){for(let r=0;r<n.length&&!e.stopped();r+=1){let t=n.charCodeAt(r);t===34?e.append('\\"'):t===92?e.append("\\\\"):t===8?e.append("\\b"):t===9?e.append("\\t"):t===10?e.append("\\n"):t===12?e.append("\\f"):t===13?e.append("\\r"):t<32||t===8232||t===8233||t>=55296&&t<=57343?e.append(de(t)):e.append(n[r])}e.append('"')}}function me(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function q(e,n){e.append("Symbol(");let r=String(n);r.length>8&&I(e,r.slice(7,-1)),e.append(")")}function F(e,n){typeof n=="symbol"?q(e,n):I(e,String(n))}function k(e,n=0){let r=ye(),t=n===4?4:0,i=new WeakSet,l=0;function s(o){t&&r.append(" ".repeat(o*t))}function a(o,c){o&&r.append(","),t&&(r.append("\n"),s(c+1))}function u(o,c,p){t&&c&&(r.append("\n"),s(p)),r.append(o)}function f(o,c){Object.prototype.hasOwnProperty.call(o,"value")?g(o.value,c):r.append(me(o))}function w(o,c){let p;try{p=Reflect.getOwnPropertyDescriptor(o,"length")}catch(d){r.append("[Uninspectable]");return}let b=p==null?void 0:p.value;if(!Number.isSafeInteger(b)||b<0){r.append("[Uninspectable]");return}r.append("[");let S=!1;for(let d=0;d<b&&!r.stopped();d+=1){if(a(S,c),S=!0,l>=50){r.append("[MaxEntries]");break}l+=1;let $;try{$=Reflect.getOwnPropertyDescriptor(o,String(d))}catch(y){r.append("[Uninspectable]");continue}$!=null&&$.enumerable?f($,c+1):r.append("[Empty]")}u("]",S,c)}function h(o,c){let p;try{p=Reflect.ownKeys(o)}catch(S){r.append("[Uninspectable]");return}r.append("{");let b=!1;for(let S of p){if(r.stopped())break;if(l>=50){a(b,c),b=!0,I(r,"\u2026"),r.append(t?": ":":"),r.append("[MaxEntries]");break}l+=1;let d;try{d=Reflect.getOwnPropertyDescriptor(o,S)}catch($){a(b,c),b=!0,F(r,S),r.append(t?": ":":"),r.append("[Uninspectable]");continue}d!=null&&d.enumerable&&(a(b,c),b=!0,F(r,S),r.append(t?": ":":"),f(d,c+1))}u("}",b,c)}function m(o,c){if(i.has(o)){r.append("[Circular]");return}if(c>=5){r.append("[MaxDepth]");return}let p;try{p=Array.isArray(o)}catch(b){r.append("[Uninspectable]");return}i.add(o);try{p?w(o,c):h(o,c)}finally{i.delete(o)}}function g(o,c){o===null?r.append("null"):typeof o=="string"?I(r,o):typeof o=="number"?r.append(Object.is(o,-0)?"-0":String(o)):typeof o=="boolean"?r.append(o?"true":"false"):typeof o>"u"?r.append("undefined"):typeof o=="bigint"?r.append("".concat(o,"n")):typeof o=="symbol"?q(r,o):typeof o=="function"?r.append("[Function]"):m(o,c)}try{return g(e,0),r.result()}catch(o){return"[Uninspectable]"}}var Le=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]);function T(e){if(e==null||typeof e!="object")return!1;let n=Object.getPrototypeOf(e);return n!==null&&n!==Object.prototype&&Object.getPrototypeOf(n)!==null?!1:!(Symbol.iterator in e)&&!(Symbol.toStringTag in e)}var Q,He=(Q=Object.getOwnPropertyDescriptor(RegExp.prototype,"source"))==null?void 0:Q.get;var Ke=Date.prototype.getTime;var be=256,$e=1024,we=1,Oe=new Map,Se=new Map;function P(e){if(e>=97&&e<=122)return e-32;if(e>65535)return e;let n=String.fromCharCode(e).toUpperCase();if(n.length!==1)return e;let r=n.charCodeAt(0);return e>127&&r<128?e:r}function V(e,n,r,t,i,l){for(let s=0;s<i;s++){let a=e.charCodeAt(n+s),u=r.charCodeAt(t+s);if(l||(a>=97&&a<=122&&(a-=32),u>=97&&u<=122&&(u-=32)),a!==u)return!1}return!0}function z(e,n,r){let t=n.indexOf("\\");if(t===-1&&e===n)return!0;let i=n.indexOf("*");if(t===-1&&i===-1){if(r)return!1;for(let w=0;w<n.length;w++)if(n.charCodeAt(w)>127)return;return e.length===n.length&&V(e,0,n,0,n.length,!1)}if(t!==-1)return;let l=0,s=!1,a=-1;for(let w=0;w<n.length;w++){let h=n.charCodeAt(w);if(h>127)return;if(h===42){if(a=w,!s){if(l++,l>1)return;s=!0}}else s=!1}let u=a+1,f=n.length-u;return e.length<i+f?!1:V(e,0,n,0,i,r)&&V(e,e.length-f,n,u,f,r)}function ve(e){let n=new Uint32Array(e.length),r=0;for(let t=1;t<e.length;t++){for(;r>0&&e[t]!==e[r];)r=n[r-1];e[t]===e[r]&&r++,n[t]=r}return n}function Ae(e,n){let r=[[]],t=!0,i=!1,l=!1,s=0;for(let m=0;m<e.length;){let g=e.codePointAt(m);if(g!==92){if(g===42)i=!0,l||(r.push([]),l=!0);else{let d=n?g:P(g);r[r.length-1].push(d),t&&(t=d<=127),s++,l=!1}m+=g>65535?2:1;continue}let o=m+1;for(;e.charCodeAt(o)===92;)o++;let c=o-m,p=e.codePointAt(o),b,S=!1;p===42?(S=c%2===0,b=S?c/2:(c-1)/2):p===void 0||p===10||p===13||p===8232||p===8233?b=Math.ceil(c/2):b=Math.floor(c/2);for(let d=0;d<b;d++)r[r.length-1].push(92),s++;if(S){l=!1,m=o;continue}if(p!==void 0){let d=n?p:P(p);r[r.length-1].push(d),t&&(t=d<=127),s++,o+=p>65535?2:1}l=!1,m=o}let a=i&&r[0].length===0,u=i&&r[r.length-1].length===0,f=[];for(let m of r)m.length&&f.push({values:m});let w=a?0:1,h=f.length-(u?0:1);for(let m=w;m<h;m++)f[m].values.length>we&&(f[m].failure=ve(f[m].values));return{asciiOnly:t,endsWithWildcard:u,hasWildcard:i,minimumInputLength:s,segments:f,startsWithWildcard:a}}function Y(e,n){let r=n?Oe:Se,t=e.length<=$e;if(t){let l=r.get(e);if(l)return l}let i=Ae(e,n);if(t){if(r.size>=be){let l=r.keys().next().value;l!==void 0&&r.delete(l)}r.set(e,i)}return i}function Z(e,n){if(n){let i=[];for(let l=0;l<e.length;){let s=e.codePointAt(l);i.push(s),l+=s>65535?2:1}return i}let r=new Uint32Array(e.length),t=0;for(let i=0;i<e.length;){let l=e.codePointAt(i);r[t]=P(l),t++,i+=l>65535?2:1}return t===r.length?r:r.subarray(0,t)}function j(e,n,r,t){for(let i=0;i<r.values.length;i++){let l=e.charCodeAt(n+i);if(!t&&l>=97&&l<=122&&(l-=32),l!==r.values[i])return!1}return!0}function ke(e,n,r,t,i){let l=t-n.values.length;if(l<r)return-1;if(!n.failure){for(let a=r;a<=l;a++)if(j(e,a,n,i))return a;return-1}let s=0;for(let a=r;a<t;a++){let u=e.charCodeAt(a);for(!i&&u>=97&&u<=122&&(u-=32);s>0&&u!==n.values[s];)s=n.failure[s-1];if(u===n.values[s]&&(s++,s===n.values.length))return a-s+1}return-1}function X(e,n,r){if(e.length<n.minimumInputLength)return!1;if(!n.hasWildcard)return e.length===n.minimumInputLength&&j(e,0,n.segments[0],r);let t=0,i=n.segments.length,l=0,s=e.length;if(!n.startsWithWildcard){let a=n.segments[0];if(!j(e,0,a,r))return!1;l=a.values.length,t++}if(!n.endsWithWildcard){i--;let a=n.segments[i];if(s-=a.values.length,!j(e,s,a,r))return!1}for(let a=t;a<i;a++){let u=n.segments[a],f=ke(e,u,l,s,r);if(f===-1)return!1;l=f+u.values.length}return!0}function C(e,n,r){for(let t=0;t<r.values.length;t++)if(e[n+t]!==r.values[t])return!1;return!0}function Te(e,n,r,t){let i=t-n.values.length;if(i<r)return-1;if(!n.failure){for(let s=r;s<=i;s++)if(C(e,s,n))return s;return-1}let l=0;for(let s=r;s<t;s++){for(;l>0&&e[s]!==n.values[l];)l=n.failure[l-1];if(e[s]===n.values[l]&&(l++,l===n.values.length))return s-l+1}return-1}function ee(e,n){if(e.length<n.minimumInputLength)return!1;if(!n.hasWildcard)return e.length===n.minimumInputLength&&C(e,0,n.segments[0]);let r=0,t=n.segments.length,i=0,l=e.length;if(!n.startsWithWildcard){let s=n.segments[0];if(!C(e,0,s))return!1;i=s.values.length,r++}if(!n.endsWithWildcard){t--;let s=n.segments[t];if(l-=s.values.length,!C(e,l,s))return!1}for(let s=r;s<t;s++){let a=n.segments[s],u=Te(e,a,i,l);if(u===-1)return!1;i=u+a.values.length}return!0}function Ee(e,n,r){let t=z(e,n,r);if(t!==void 0)return t;let i=Y(n,r);return i.asciiOnly?X(e,i,r):ee(Z(e,r),i)}function G(e,n,r,t){var s;let i=z(e,n,r);if(i!==void 0)return i;let l=Y(n,r);return l.asciiOnly?X(e,l,r):((s=t.tokens)!=null||(t.tokens=Z(e,r)),ee(t.tokens,l))}function N(e,n,r){if(typeof n!="string"&&!n.length)return!1;let t=r===void 0?!1:r.caseSensitiveMatch===!0;if(typeof n=="string"){let a=n.charCodeAt(0)===33,u=a?n.slice(1):n,f=Ee(e,u,t);return a?!f:f}let i={},l=!1,s=!1;for(let a of n){let u=a.charCodeAt(0)===33,f=u?a.slice(1):a;if(u){if(G(e,f,t,i))return!1}else l=!0,!s&&G(e,f,t,i)&&(s=!0)}return l?s:!0}var E=he(te(),1);var re="8.2.1";var je=re,ie={ignoreKeys:[],ignorePaths:[],acceptArrays:!1,acceptArraysIgnore:[],enforceStrictKeyset:!0,schema:{},msg:"check-types-mini",optsVarName:"opts"},Ce=new Set(["any","anything","every","everything","all","whatever","whatevs"]),oe=Object.prototype.hasOwnProperty,Ie={caseSensitiveMatch:!0};function ne(e,n){return n.some(r=>e===r||N(e,r))}function R(e,n){return n.length?e.filter(r=>!n.some(t=>r===t||N(r,t,Ie))):e}function L(e,n){if(!n.length)return e;let r=new Set(n);return e.filter(t=>!r.has(t))}function xe(e){let n={};function r(t,i){if(T(t)){for(let s of Object.keys(t))r(t[s],i?"".concat(i,".").concat(s):s);return}let l=Array.isArray(t)?t:[t];n[i]=l.map(s=>"".concat(s).toLowerCase().trim())}for(let t of Object.keys(e))r(e[t],t);return n}function H(e,n,r=""){if(Array.isArray(e))for(let t=0;t<e.length;t++){if(e[t]===void 0)continue;let i=r?"".concat(r,".").concat(t):"".concat(t);n(e[t],void 0,{path:i,parent:e,parentType:"array"}),H(e[t],n,i)}else if(T(e))for(let t of Object.keys(e)){let i=r?"".concat(r,".").concat(t):t;n(t,e[t],{path:i,parent:e,parentType:"object"}),H(e[t],n,i)}}function Ve(e,n){let r=e,t=0;for(;t<=n.length;){let i=n.indexOf(".",t),l=i===-1?n.slice(t):n.slice(t,i);if(r===null||typeof r!="object"&&typeof r!="function"||!oe.call(r,l))return[!1,void 0];if(r=r[l],i===-1)return[!0,r];t=i+1}return[!1,void 0]}function Pe(e,n,r){if(e==null)throw new Error("check-types-mini/checkTypesMini(): [THROW_ID_01] First argument is missing!");let t=x(x({},ie),r);if(typeof t.ignoreKeys=="string"&&(t.ignoreKeys=[t.ignoreKeys]),typeof t.ignorePaths=="string"&&(t.ignorePaths=[t.ignorePaths]),typeof t.acceptArraysIgnore=="string"&&(t.acceptArraysIgnore=[t.acceptArraysIgnore]),t.msg="".concat(t.msg).trim(),t.msg[t.msg.length-1]===":"&&(t.msg=t.msg.slice(0,t.msg.length-1).trim()),T(t.schema))t.schema=xe(t.schema);else if(t.schema!=null)throw new Error("check-types-mini/checkTypesMini(): [THROW_ID_02] opts.schema was customised to ".concat(k(t.schema)," which is not object but ").concat(typeof t.schema));n==null&&(n={});let i=t.ignoreKeys,l=t.ignorePaths,s=t.acceptArraysIgnore,a=Object.keys(e),u=T(n)?Object.keys(n):[],f=T(t.schema)?Object.keys(t.schema):[];if(t.enforceStrictKeyset)if(f.length){let h=R(L(a,u.concat(f)),i);if(h.length)throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_03] ".concat(t.msg,": ").concat(t.optsVarName,".enforceStrictKeyset is on and the following key").concat(h.length>1?"s":""," ").concat(h.length>1?"are":"is"," not covered by schema and/or reference objects: ").concat(h.join(", ")))}else if(u.length){let h=R(L(a,u),i);if(h.length)throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_04] ".concat(t.msg,": The input object has key").concat(h.length>1?"s":""," which ").concat(h.length>1?"are":"is"," not covered by the reference object: ").concat(h.join(", ")));if(h=R(L(u,a),i),h.length)throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_05] ".concat(t.msg,": The reference object has key").concat(h.length>1?"s":""," which ").concat(h.length>1?"are":"is"," not present in the input object: ").concat(h.join(", ")))}else throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_06] ".concat(t.msg,": Both ").concat(t.optsVarName,".schema and reference objects are missing! We don't have anything to match the keys as you requested via resolvedOpts.enforceStrictKeyset!"));let w=[];H(e,(h,m,g)=>{let o=m,c=h;if(g.parentType==="array"&&(c=void 0,o=h),w.length&&w.some($=>g.path.startsWith("".concat($,".")))||c&&ne(c,i)||ne(g.path,l))return o;let p=!(!T(o)&&!Array.isArray(o)&&Array.isArray(g.parent)),b=T(t.schema)&&oe.call(t.schema,g.path),[S,d]=T(n)?Ve(n,g.path):[!1,void 0];if(t.enforceStrictKeyset&&p&&!b&&!S)throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_07] ".concat(t.msg,": ").concat(t.optsVarName,".").concat(g.path," is neither covered by reference object (second input argument), nor ").concat(t.optsVarName,".schema! To stop this error, turn off ").concat(t.optsVarName,".enforceStrictKeyset or provide some type reference (2nd argument or ").concat(t.optsVarName,".schema).\n\nDebug info:\n\nobj = ").concat(k(e,4),"\n\nref = ").concat(k(n,4),"\n\ninnerObj = ").concat(k(g,4),"\n\nresolvedOpts = ").concat(k(t,4),"\n\ncurrent = ").concat(k(o,4),"\n\n"));if(b){let $=t.schema[g.path];if($.filter(O=>Ce.has(O)).length)w.push(g.path);else{let O=(0,E.default)(o).toLowerCase();if(o!==!0&&o!==!1&&!$.includes(O)||(o===!0||o===!1)&&!$.includes(String(o))&&!$.includes("boolean"))if(Array.isArray(o)&&t.acceptArrays)for(let A=0,v=o.length;A<v;A++){let K=(0,E.default)(o[A]).toLowerCase();if(!$.includes(K))throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_08] ".concat(t.msg,": ").concat(t.optsVarName,".").concat(g.path,".").concat(A,", the ").concat(A,"th element (equal to ").concat(k(o[A]),") is of a type ").concat(K,", but only the following are allowed by the ").concat(t.optsVarName,".schema: ").concat($.join(", ")))}else throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_09] ".concat(t.msg,": ").concat(t.optsVarName,".").concat(g.path," was customised to ").concat(O!=="string"?'"':"").concat(k(o)).concat(O!=="string"?'"':""," (type: ").concat(O,") which is not among the allowed types in schema (which is equal to ").concat(k($),")"))}}else if(n&&T(n)&&S){let $=(0,E.default)(o),y=(0,E.default)(d);if(t.acceptArrays&&Array.isArray(o)&&!s.includes(h)){let O=y.toLowerCase();if(!o.every(v=>(0,E.default)(v).toLowerCase()===O))throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_10] ".concat(t.msg,": ").concat(t.optsVarName,".").concat(g.path," was customised to be array, but not all of its elements are ").concat(O,"-type"))}else if($!==y){let O=$.toLowerCase();throw new TypeError("check-types-mini/checkTypesMini(): [THROW_ID_11] ".concat(t.msg,": ").concat(t.optsVarName,".").concat(g.path," was customised to ").concat(O==="string"?"":'"').concat(k(o)).concat(O==="string"?"":'"'," which is not ").concat(y.toLowerCase()," but ").concat(O))}}return o})}function Ne(e,n,r){Pe(e,n,r)}return ge(Me);})();
10
+ "use strict";var checkTypesMini=(()=>{var tn=Object.create;var Oe=Object.defineProperty;var nn=Object.getOwnPropertyDescriptor;var rn=Object.getOwnPropertyNames,ut=Object.getOwnPropertySymbols,on=Object.getPrototypeOf,pt=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var Me=(e,t,n)=>t in e?Oe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ft=(e,t)=>{for(var n in t||(t={}))pt.call(t,n)&&Me(e,n,t[n]);if(ut)for(var n of ut(t))sn.call(t,n)&&Me(e,n,t[n]);return e};var _n=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},dt=(e,t)=>{for(var n in t)Oe(e,n,{get:t[n],enumerable:!0})},ht=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of rn(t))!pt.call(e,o)&&o!==n&&Oe(e,o,{get:()=>t[o],enumerable:!(r=nn(t,o))||r.enumerable});return e};var an=(e,t,n)=>(n=e!=null?tn(on(e)):{},ht(t||!e||!e.__esModule?Oe(n,"default",{value:e,enumerable:!0}):n,e)),ln=e=>ht(Oe({},"__esModule",{value:!0}),e);var H=(e,t,n)=>Me(e,typeof t!="symbol"?t+"":t,n);var Ht=_n((Xe,et)=>{(function(e,t){typeof Xe=="object"&&typeof et<"u"?et.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.typeDetect=t())})(Xe,(function(){"use strict";var e=typeof Promise=="function",t=(function(y){if(typeof globalThis=="object")return globalThis;Object.defineProperty(y,"typeDetectGlobalObject",{get:function(){return this},configurable:!0});var J=typeDetectGlobalObject;return delete y.typeDetectGlobalObject,J})(Object.prototype),n=typeof Symbol<"u",r=typeof Map<"u",o=typeof Set<"u",s=typeof WeakMap<"u",i=typeof WeakSet<"u",a=typeof DataView<"u",_=n&&typeof Symbol.iterator<"u",u=n&&typeof Symbol.toStringTag<"u",k=o&&typeof Set.prototype.entries=="function",A=r&&typeof Map.prototype.entries=="function",b=k&&Object.getPrototypeOf(new Set().entries()),P=A&&Object.getPrototypeOf(new Map().entries()),l=_&&typeof Array.prototype[Symbol.iterator]=="function",g=l&&Object.getPrototypeOf([][Symbol.iterator]()),f=_&&typeof String.prototype[Symbol.iterator]=="function",x=f&&Object.getPrototypeOf(""[Symbol.iterator]()),v=8,O=-1;function d(y){var J=typeof y;if(J!=="object")return J;if(y===null)return"null";if(y===t)return"global";if(Array.isArray(y)&&(u===!1||!(Symbol.toStringTag in y)))return"Array";if(typeof window=="object"&&window!==null){if(typeof window.location=="object"&&y===window.location)return"Location";if(typeof window.document=="object"&&y===window.document)return"Document";if(typeof window.navigator=="object"){if(typeof window.navigator.mimeTypes=="object"&&y===window.navigator.mimeTypes)return"MimeTypeArray";if(typeof window.navigator.plugins=="object"&&y===window.navigator.plugins)return"PluginArray"}if((typeof window.HTMLElement=="function"||typeof window.HTMLElement=="object")&&y instanceof window.HTMLElement){if(y.tagName==="BLOCKQUOTE")return"HTMLQuoteElement";if(y.tagName==="TD")return"HTMLTableDataCellElement";if(y.tagName==="TH")return"HTMLTableHeaderCellElement"}}var z=u&&y[Symbol.toStringTag];if(typeof z=="string")return z;var S=Object.getPrototypeOf(y);return S===RegExp.prototype?"RegExp":S===Date.prototype?"Date":e&&S===Promise.prototype?"Promise":o&&S===Set.prototype?"Set":r&&S===Map.prototype?"Map":i&&S===WeakSet.prototype?"WeakSet":s&&S===WeakMap.prototype?"WeakMap":a&&S===DataView.prototype?"DataView":r&&S===P?"Map Iterator":o&&S===b?"Set Iterator":l&&S===g?"Array Iterator":f&&S===x?"String Iterator":S===null?"Object":Object.prototype.toString.call(y).slice(v,O)}return d}))});var no={};dt(no,{CheckTypesMiniError:()=>$e,checkTypesMini:()=>Jr,defaults:()=>Wr,version:()=>Er});var De={};dt(De,{backslash:()=>xn,backtick:()=>kn,codsenCLI:()=>Or,compareFn:()=>ur,createMatcher:()=>$r,deepClone:()=>Ln,deepCloneWithMetadata:()=>Kn,detectEol:()=>Et,doublePrime:()=>jn,ellipsis:()=>wn,existy:()=>_r,findAllIdx:()=>sr,formatDiagnosticValue:()=>ke,hairspace:()=>vn,hasOwnProp:()=>cr,includes:()=>dr,inlineTags:()=>fr,intersection:()=>hr,isBool:()=>nr,isCurrencyChar:()=>Bn,isCurrencySymbol:()=>Un,isDate:()=>Mt,isInt:()=>tr,isLatinLetter:()=>Qn,isLetter:()=>qn,isLowercaseLetter:()=>Jn,isNull:()=>rr,isNum:()=>$t,isNumberChar:()=>zn,isPlainObject:()=>Ft,isQuote:()=>Gn,isRegExp:()=>Qe,isStr:()=>$,isUppercaseLetter:()=>Zn,isWhitespaceChar:()=>Yn,leftDoubleQuote:()=>kt,leftSingleQuote:()=>xt,match:()=>Nr,multiplicationSign:()=>Cn,omit:()=>Tr,pullAll:()=>ir,punctuationChars:()=>An,rawMDash:()=>mn,rawNDash:()=>yn,rawNbsp:()=>bn,rawReplacementMark:()=>Sn,removeTrailingSlash:()=>Xn,resolveEolSetting:()=>lr,rightDoubleQuote:()=>Ct,rightSingleQuote:()=>St,singlePrime:()=>Tn,stringSplice:()=>er,thinSpace:()=>On,trimChars:()=>or,uniq:()=>ar,version:()=>gn,voidTags:()=>pr});function cn(){let e=[],t=0,n=!1;return{append(r){return n?!1:t+r.length>1999?(e.push("\u2026"),t+=1,n=!0,!1):(e.push(r),t+=r.length,!0)},result(){return e.join("")},stopped(){return n}}}function un(e){return"\\u".concat(e.toString(16).padStart(4,"0"))}function Se(e,t){if(e.append('"')){for(let n=0;n<t.length&&!e.stopped();n+=1){let r=t.charCodeAt(n);r===34?e.append('\\"'):r===92?e.append("\\\\"):r===8?e.append("\\b"):r===9?e.append("\\t"):r===10?e.append("\\n"):r===12?e.append("\\f"):r===13?e.append("\\r"):r<32||r===8232||r===8233||r>=55296&&r<=57343?e.append(un(r)):e.append(t[n])}e.append('"')}}function pn(e){return e.get&&e.set?"[Getter/Setter]":e.get?"[Getter]":e.set?"[Setter]":"[Accessor]"}function yt(e,t){e.append("Symbol(");let n=String(t);n.length>8&&Se(e,n.slice(7,-1)),e.append(")")}function gt(e,t){typeof t=="symbol"?yt(e,t):Se(e,String(t))}function ke(e,t=0){let n=cn(),r=t===4?4:0,o=new WeakSet,s=0;function i(l){r&&n.append(" ".repeat(l*r))}function a(l,g){l&&n.append(","),r&&(n.append("\n"),i(g+1))}function _(l,g,f){r&&g&&(n.append("\n"),i(f)),n.append(l)}function u(l,g){Object.prototype.hasOwnProperty.call(l,"value")?P(l.value,g):n.append(pn(l))}function k(l,g){let f;try{f=Reflect.getOwnPropertyDescriptor(l,"length")}catch(O){n.append("[Uninspectable]");return}let x=f==null?void 0:f.value;if(!Number.isSafeInteger(x)||x<0){n.append("[Uninspectable]");return}n.append("[");let v=!1;for(let O=0;O<x&&!n.stopped();O+=1){if(a(v,g),v=!0,s>=50){n.append("[MaxEntries]");break}s+=1;let d;try{d=Reflect.getOwnPropertyDescriptor(l,String(O))}catch(y){n.append("[Uninspectable]");continue}d!=null&&d.enumerable?u(d,g+1):n.append("[Empty]")}_("]",v,g)}function A(l,g){let f;try{f=Reflect.ownKeys(l)}catch(v){n.append("[Uninspectable]");return}n.append("{");let x=!1;for(let v of f){if(n.stopped())break;if(s>=50){a(x,g),x=!0,Se(n,"\u2026"),n.append(r?": ":":"),n.append("[MaxEntries]");break}s+=1;let O;try{O=Reflect.getOwnPropertyDescriptor(l,v)}catch(d){a(x,g),x=!0,gt(n,v),n.append(r?": ":":"),n.append("[Uninspectable]");continue}O!=null&&O.enumerable&&(a(x,g),x=!0,gt(n,v),n.append(r?": ":":"),u(O,g+1))}_("}",x,g)}function b(l,g){if(o.has(l)){n.append("[Circular]");return}if(g>=5){n.append("[MaxDepth]");return}let f;try{f=Array.isArray(l)}catch(x){n.append("[Uninspectable]");return}o.add(l);try{f?k(l,g):A(l,g)}finally{o.delete(l)}}function P(l,g){l===null?n.append("null"):typeof l=="string"?Se(n,l):typeof l=="number"?n.append(Object.is(l,-0)?"-0":String(l)):typeof l=="boolean"?n.append(l?"true":"false"):typeof l>"u"?n.append("undefined"):typeof l=="bigint"?n.append("".concat(l,"n")):typeof l=="symbol"?yt(n,l):typeof l=="function"?n.append("[Function]"):b(l,g)}try{return P(e,0),n.result()}catch(l){return"[Uninspectable]"}}var fn="1.10.0",dn=["_16_0_a_0_4_0_5_m_1_u_1_cp_4_b_e_4_7_0_1_0_3l_4_1_1_2_3_1_0_6_0_1_2_1_0_1_j_1_2a_1_3u_8_4l_1_11_2_0_","6_14_1z_q_4_3_19_16_z_1_1_2q_1_0_f_1_7_1_a_2_2_0_g_0_1_t_t_2g_b_0_o_w_9_1_4_0_5_l_4_0_9_0_3_0_n_o_7_","a_5_n_1_6_g_15_1m_1h_3_0_i_0_7_9_f_f_4_7_2_1_2_l_1_6_1_0_3_3_3_0_g_0_d_1_1_2_e_1_a_0_8_5_4_1_2_l_1_6","_1_1_1_1_1_1_v_3_1_0_j_2_g_8_1_2_1_l_1_6_1_1_1_4_3_0_i_0_f_1_n_0_b_7_2_1_2_l_1_6_1_1_1_4_3_0_u_1_1_2","_f_0_h_0_1_5_3_2_1_3_3_1_1_0_1_1_3_1_3_2_3_b_m_0_1g_7_1_2_1_m_1_f_3_0_q_2_1_1_2_1_u_0_4_7_1_2_1_m_1_","9_1_4_3_0_u_2_1_1_f_1_h_8_1_2_1_14_2_0_g_0_5_2_8_2_o_5_5_h_3_n_1_8_1_0_2_6_1m_1b_1_1_c_6_1m_1_1_0_1_","4_1_n_1_0_1_9_1_1_9_0_2_4_1_0_l_3_w_0_1r_7_1_z_r_4_37_16_k_0_g_5_4_3_3_0_3_1_7_2_4_c_c_0_h_11_1_0_5_","0_2_16_1_98_1_3_2_6_1_0_1_3_2_14_1_3_2_w_1_3_2_6_1_0_1_3_2_e_1_1k_1_3_2_1u_11_f_g_2d_2_5_3_h7_2_g_1_","p_5_22_6_7_7_h_d_i_e_h_e_c_1_2_f_1f_z_0_4_0_1v_2g_7_4_2_x_1_0_5_1x_a_u_1d_t_2_4_b_17_4_p_1i_m_9_1g_2","a_0_2l_1a_h_7_1i_t_d_1_a_17_q_z_15_2_a_z_2_a_5_16_2_2_15_3_1_5_1_1_3_0_5_5b_1s_7p_2_5_2_11_2_5_2_7_1","_0_1_0_1_0_1_u_2_1g_1_6_1_0_3_2_1_6_3_3_2_5_4_c_5_2_1_6_38_0_d_0_g_c_2t_0_4_0_2_9_1_0_3_4_6_0_1_0_1_","0_1_3_1_a_2_3_5_4_4_0_1g_1_22j_6c_6_3_3_1_c_11_1_0_5_0_2_1j_7_0_g_m_9_6_1_6_1_6_1_6_1_6_1_6_1_6_1_6_","28_0_d1_1_16_4_5_1_4_2d_6_2_1_2h_1_3_5_16_1_2l_h_v_1c_f_e8_533_1s_h3g_1v_19_2_7g_3_f_a_1_k_1a_g_u_2_","1x_1d_8_2_2u_2_29_k_g_1_2_1_3_1_m_t_1f_e_1d_1q_5_3_0_1_1_b_r_a_m_p_s_7_1a_s_0_g_4_1_9_a_4_1_14_n_2_1","_7_k_m_3_0_3_1d_1_0_3_1_2_4_2_0_1_0_o_2_2_a_7_2_c_5_2_5_2_5_9_6_1_6_1_16_1_d_6_36_t_8mb_c_m_4_1c_6is","_a5_2_2x_12_6_c_4_5_0_1_9_1_c_1_4_1_0_1_1_1_1_1_2z_x_a2_i_1r_2_1h_14_b_38_4_1_3q_10_p_6_p_b_2g_3_5_2","_5_2_5_2_2_z_b_1_p_1_i_1_1_1_e_2_d_y_3e_at_s_3_1c_1b_v_d_j_1_7_6_11_a_t_2_z_4_7_1c_4d_i_z_4_z_4_13_8","_1f_c_a_1_e_1_6_1_1_1_a_1_e_1_6_1_1_3_1f_c_8m_9_l_a_7_o_5_1_15_1_8_1x_5_2_0_1_17_1_1_3_0_2_m_a_m_9_u","_1t_i_1_1_a_l_a_p_6_p_12_1j_6_1_1s_0_f_3_1_2_1_s_16_s_3_s_z_7_1_r_r_1h_a_l_a_i_d_h_32_20_1j_1e_d_1e_","d_z_12_r_9_m_6y_15_6_1_g_5_1k_s_a_0_8_l_16_h_1a_k_r_m_c_1g_1l_1_2_0_d_18_w_o_q_z_t_0_2_0_8_y_3_0_c_1","b_e_3_l_0_1_0_z_h_1_o_j_1_1r_6_1_0_1_3_1_e_1_9_7_1a_12_7_2_1_2_l_1_6_1_1_1_4_3_0_i_0_c_4_u_9_1_0_2_0","_1_11_1_0_p_0_1_0_18_1g_i_3_k_2_u_1b_k_1_1_0_54_1a_15_3_10_1b_k_0_1n_16_d_0_1z_q_11_6_55_17_38_1r_v_","7_2_0_2_7_1_1_1_n_f_0_1_0_2m_7_2_12_g_0_1_0_s_0_a_13_7_0_l_0_b_19_j_0_i_20_5j_w_v_8_1_10_h_0_1d_t_34","_6_1_1_1_11_l_0_p_5_1_1_1_v_e_0_n_17_78_i_f_0_1_c_1_x_3g_0_27_pl_6e_5f_218_2o_f_tr_h_5_p_32y_5_g6_5a","1_t_1cy_fs_7_u_h_26_h_t_i_1b_g_3_v_k_5_i_c0_18_5v_1r_w_o_2_o_18_22_5_0_1u_c_1s_1_1_0_e_1_c_5p1_15_v_","2p_36_6pp_3_1_6_1_1_1_82_f_0_t_2_2_0_e_3_8_az_1s4_2y_5_c_3_8_7_9_4me_2c_1_1y_1_1_2_0_2_1_2_3_1_b_1_0","_1_6_1_1s_1_3_2_7_1_6_1_r_1_3_1_4_1_0_3_6_1_9f_2_o_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_u_1_o_1_7_1f8_u_6_5","_79_1p_42_18_a_6_g_0_8x_t_i_17_dg_r_6c_t_2_0_5r_u_1_2_1_1_1_6_2_4_9_1_68_6_1_3_1_1_1_e_1_5g_1n_1v_7_","0_xg_3_1_q_1_1_1_0_2_0_1_9_1_3_1_0_1_0_6_0_4_0_1_0_1_0_1_2_1_1_1_0_2_0_1_0_1_0_1_0_1_0_1_1_1_0_2_3_1","_6_1_3_1_3_1_0_1_9_1_g_5_2_1_4_1_g_3es_wyn_w_3dp_2_4gd_2_5rk_f_h9_1wi_f1_15u_3t6_5_6jt"].join(""),Ee=dn.slice(1).split("_"),Ke=[],mt=127;for(let e=0;e<Ee.length;e+=2){let t=mt+1+Number.parseInt(Ee[e],36),n=t+Number.parseInt(Ee[e+1],36);Ke.push([t,n]),mt=n}function hn(e){if(Number.isNaN(e)||e<128||e>1114111)return!1;let t=0,n=Ke.length-1;for(;t<=n;){let r=t+n>>1,o=Ke[r];if(e<o[0])n=r-1;else if(e>o[1])t=r+1;else return!0}return!1}var gn=fn,xt="\u2018",St="\u2019",kt="\u201C",Ct="\u201D",yn="\u2013",mn="\u2014",bn="\xA0",wn="\u2026",vn="\u200A",On="\u2009",Tn="\u2032",jn="\u2033",xn="\\",Sn="\uFFFD",kn="`",Cn="\xD7",An=[".",",",";","!","?"],At=new Set([..."\u060B$\u20BC\u17DB\xA5\u20A1\u20B1\xA3\u20AC\xA2\u20B9\uFDFC\u20AA\u20A9\u20AD\u20A8\u20AE\u20A6\u20BD\u20AB\u0E3F\u20A9\u20BA\u20B4","$U","$b","B/.","BZ$","Br","Bs","C$","CHF","Ft","Gs","J$","KM","K\u010D","L","MT","NT$","P","Q","R","R$","RD$","RM","Rp","S","S/.","TT$","Z$","kn","kr","lei","z\u0142","\u0192","\u0414\u0438\u043D.","\u0434\u0435\u043D","\u043B\u0432","\u062F.\u0625","Lek"]),Ae=Object.prototype.hasOwnProperty,Pt=Function.prototype.toString,Pn=Pt.call(Object),Be=class{constructor(){H(this,"hasRepeatedReferences",!1);H(this,"clones",[]);H(this,"index");H(this,"sources",[])}get(e){if(this.index){let n=this.index.get(e);return n!==void 0&&(this.hasRepeatedReferences=!0),n}let t=this.sources.indexOf(e);if(t!==-1)return this.hasRepeatedReferences=!0,this.clones[t]}set(e,t){if(this.index){this.index.set(e,t);return}if(this.sources.push(e),this.clones.push(t),this.sources.length===32){this.index=new WeakMap;for(let n=0;n<this.sources.length;n++)this.index.set(this.sources[n],this.clones[n]);this.sources=[],this.clones=[]}}};function Rt(e,t){let n=t.get(e);if(n!==void 0)return n;let r=e.slice(0);return t.set(e,r),r}function Rn(e,t){if(typeof Buffer<"u"&&Buffer.isBuffer(e)){let s=Buffer.from(e);return t.set(e,s),s}let n=Rt(e.buffer,t);if(e instanceof DataView||Object.prototype.toString.call(e)==="[object DataView]"){let s=new DataView(n,e.byteOffset,e.byteLength);return t.set(e,s),s}let r=e.constructor,o=new r(n,e.byteOffset,e.length);return t.set(e,o),o}function Dt(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0})}function Ce(e,t,n,r){for(let o of n){let s=t[o],i=typeof s!="object"||s===null?s:X(s,r);o==="__proto__"?Dt(e,o,i):e[o]=i}}function ce(e,t,n,r){for(let o of n){let s=Object.getOwnPropertyDescriptor(t,o);if(s){if("value"in s){let i=s.value;s.value=typeof i!="object"||i===null?i:X(i,r)}Object.defineProperty(e,o,s)}}}var Dn=Map.prototype.entries,In=Set.prototype.values,Ue=Object.prototype.toString,vt,Fn=(vt=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength"))==null?void 0:vt.get,Ot,$n=(Ot=Object.getOwnPropertyDescriptor(RegExp.prototype,"flags"))==null?void 0:Ot.get,Tt,Nn=(Tt=Object.getOwnPropertyDescriptor(RegExp.prototype,"global"))==null?void 0:Tt.get,jt,It=(jt=Object.getOwnPropertyDescriptor(RegExp.prototype,"source"))==null?void 0:jt.get,Mn=RegExp.prototype.test,We;function En(e){if(e instanceof ArrayBuffer)return!0;try{return Fn.call(e),!0}catch(t){return!1}}function Wn(e){try{return Dn.call(e)}catch(t){return null}}function Hn(e){try{return In.call(e)}catch(t){return null}}function Vn(e){var t;try{return We||(We=(t=Object.getOwnPropertyDescriptor(URL.prototype,"href"))==null?void 0:t.get),We.call(e)}catch(n){return null}}function X(e,t){if(typeof e!="object"||e===null)return e;let n=t.get(e);if(n!==void 0)return n;if(Array.isArray(e)){let _=e.length,u=new Array(_);t.set(e,u);let k=e,A=Object.keys(e);if(A.length===_&&(_===0||A[_-1]==="".concat(_-1)))for(let b=0;b<_;b++){let P=k[b];u[b]=typeof P!="object"||P===null?P:X(P,t)}else Ce(u,k,A,t);return u}let r=Object.getPrototypeOf(e);if(r===Object.prototype){let _={};return t.set(e,_),Ce(_,e,Object.keys(e),t),_}if(r===null){let _=Object.create(null);return t.set(e,_),Ce(_,e,Object.keys(e),t),_}if(Mt(e)){let _=new Date(Nt.call(e));return t.set(e,_),ce(_,e,Object.keys(e),t),_}if(ArrayBuffer.isView(e))return Rn(e,t);if(En(e)||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return Rt(e,t);let o=Wn(e);if(o){let _=new Map;t.set(e,_);for(let[u,k]of o)_.set(X(u,t),X(k,t));return ce(_,e,Object.keys(e),t),_}let s=Hn(e);if(s){let _=new Set;t.set(e,_);for(let u of s)_.add(X(u,t));return ce(_,e,Object.keys(e),t),_}if(Qe(e)&&e!==RegExp.prototype){let _=new RegExp(It.call(e),$n.call(e));return _.lastIndex=e.lastIndex,t.set(e,_),ce(_,e,Object.keys(e),t),_}let i=Vn(e);if(i!==null){let _=new URL(i);return t.set(e,_),ce(_,e,Object.keys(e),t),_}if(e instanceof Error||Ue.call(e)==="[object Error]"){let _=Object.create(Object.getPrototypeOf(e));return t.set(e,_),ce(_,e,Reflect.ownKeys(e),t),_}let a=Object.create(r);return t.set(e,a),Ce(a,e,Object.keys(e),t),a}function Ln(e){return X(e,new Be)}function Kn(e){let t=new Be,n=X(e,t);return{hasRepeatedReferences:t.hasRepeatedReferences,value:n}}function zn(e){if(!$(e))return!1;let t=e.charCodeAt(0);return t>=48&&t<=57}function Bn(e){return $(e)&&e.length===1&&At.has(e)}function Un(e){return $(e)&&At.has(e)}function qe(e){if(e.length===1){let t=e.charCodeAt(0);return t<55296||t>57343?t:-1}if(e.length===2){let t=e.charCodeAt(0),n=e.charCodeAt(1);if(t>=55296&&t<=56319&&n>=56320&&n<=57343)return(t-55296)*1024+n-56320+65536}return-1}function qn(e){if(!$(e)||e.length===0||e.length>2)return!1;let t=e.charCodeAt(0);return e.length===1&&t<128?t>64&&t<91||t>96&&t<123:hn(qe(e))}function Qn(e){if(!e||!$(e))return!1;let t=e.charCodeAt(0);return t>64&&t<91||t>96&&t<123}function Gn(e){return $(e)&&(e==='"'||e==="'"||e===xt||e===St||e===kt||e===Ct)}function Jn(e){if(!$(e)||e.length===0||e.length>2)return!1;let t=e.charCodeAt(0);return e.length===1&&t<128?t>96&&t<123:qe(e)<0?!1:e===e.toLowerCase()&&e!==e.toUpperCase()}function Zn(e){if(!$(e)||e.length===0||e.length>2)return!1;let t=e.charCodeAt(0);return e.length===1&&t<128?t>64&&t<91:qe(e)<0?!1:e===e.toUpperCase()&&e!==e.toLowerCase()}function Yn(e){if(!$(e)||!e)return!1;let t=e.charCodeAt(0);return t<128?t===32||t>8&&t<14:!e[0].trim()}var Xn=e=>$(e)&&e.length&&e.endsWith("/")?e.slice(0,-1).trim():e;function Ft(e){var r;if(e==null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);if(t===null||t===Object.prototype)return!0;let n=Object.getOwnPropertyDescriptor(t,"constructor");return!n||!("value"in n)||typeof n.value!="function"?!1:((r=Object.getOwnPropertyDescriptor(n.value,"prototype"))==null?void 0:r.value)===t&&Pt.call(n.value)===Pn}function er(e="",t=0,n=0,r=""){return t<0&&(t+=e.length,t<0&&(t=0)),e.slice(0,t)+(r||"")+e.slice(t+n)}function $(e){return typeof e=="string"}function $t(e){return Number.isFinite(e)}function tr(e){return Number.isSafeInteger(e)&&e>=0}function nr(e){return typeof e=="boolean"}function rr(e){return e===null}function Qe(e){if(e===null||typeof e!="object")return!1;try{return e instanceof RegExp?(e.source,!0):Ue.call(e)!=="[object RegExp]"?!1:(It.call(e),!0)}catch(t){return!1}}var Nt=Date.prototype.getTime;function Mt(e){if(e instanceof Date)return!0;if(e===null||typeof e!="object"||Ue.call(e)!=="[object Date]")return!1;try{return Nt.call(e),!0}catch(t){return!1}}function or(e,t){if(!e||!t)return e;let n=!0;for(let a=t.length;a--;)if(t.charCodeAt(a)>127){n=!1;break}if(n){let a=0,_=e.length;if(t.length===1){let u=t.charCodeAt(0);for(;a<_&&e.charCodeAt(a)===u;)a++;for(;_>a&&e.charCodeAt(_-1)===u;)_--}else{for(;a<_&&t.includes(e[a]);)a++;for(;_>a&&t.includes(e[_-1]);)_--}return a===0&&_===e.length?e:e.slice(a,_)}let r=Array.from(e),o=new Set(t),s=0,i=r.length;for(;s<i&&o.has(r[s]);)s++;for(;i>s&&o.has(r[i-1]);)i--;return s===0&&i===r.length?e:r.slice(s,i).join("")}function sr(e,t){if(!$(e)||!$(t)||t.length===0)return[];let n=[],r=e.indexOf(t);for(;r!==-1;)n.push(r),r=e.indexOf(t,r+1);return n}function ir(e=[],t=[]){if(!e||!Array.isArray(e)||!e.length)return[];if(!t||!Array.isArray(t)||!t.length)return e.slice();if(e.length*t.length<400)return e.filter(r=>!t.includes(r));let n=new Set(t);return e.filter(r=>!n.has(r))}function _r(e){return e!=null}function ar(e){return[...new Set(e)]}function Et(e){if(!(typeof e!="string"||!e)){if(e.includes("\r\n"))return"\r\n";if(e.includes("\n"))return"\n";if(e.includes("\r"))return"\r"}}function lr(e,t,n="\n"){if(n!=="\n"&&n!=="\r\n"&&n!=="\r")throw new Error('codsen-utils/resolveEolSetting(): [THROW_ID_01] the input argument defaultEolChar should be one of EOL values: "\\n", "\\r", or "\\r\\n", but it was given as '.concat(ke(n)));return t==="crlf"?"\r\n":t==="cr"?"\r":t==="lf"?"\n":Et(e)||n}function cr(e,t){return e!=null&&Ae.call(e,t)}function ur(e,t){return e.localeCompare(t)}var pr=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],fr=new Set(["a","abbr","acronym","audio","b","bdi","bdo","big","br","button","canvas","cite","code","data","datalist","del","dfn","em","embed","i","iframe","img","input","ins","kbd","label","map","mark","meter","noscript","object","output","picture","progress","q","ruby","s","samp","script","select","slot","small","span","strong","sub","sup","svg","template","textarea","time","u","tt","var","video","wbr"]);function dr(e,t){if(!Array.isArray(e)||!e.length||!$(t))return!1;for(let n of e){if(typeof n=="string"){if(t===n)return!0;continue}if(Qe(n)){let r=Nn.call(n);r&&(n.lastIndex=0);let o=Mn.call(n,t);if(r&&(n.lastIndex=0),o)return!0}}return!1}function hr(e=[],t=[]){if(!Array.isArray(e)||!Array.isArray(t)||!e.length||!t.length)return[];let n=[];if(e.length*t.length<64){for(let s of e)t.includes(s)&&!n.includes(s)&&n.push(s);return n}let r=new Set(t),o=new Set;for(let s of e)r.has(s)&&!o.has(s)&&(o.add(s),n.push(s));return n}var He=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i;function gr(e){return e.replace(/-+([^-])/g,(t,n)=>n.toUpperCase())}function yr(e){return e.replace(/([\da-z])([A-Z])/g,"$1-$2").toLowerCase()}function mr(e){return e.replace(/^[\r\n]+/,"").replace(/[\r\n]+$/,"")}function bt(e,t){let n=Number.POSITIVE_INFINITY,r=e.split("\n");for(let s of r){let i=/^[ \t]*(?=\S)/.exec(s);i&&(n=Math.min(n,i[0].length))}let o=" ".repeat(t);return r.map(s=>s.trim()?o+s.slice(n):s).join("\n")}function br(e,t,n){let r="";return e&&(r=mr(e.replace(/\t+\n*$/,"")),r.includes("\n")&&(r=bt(r,n)),r="\n".concat(r)),t&&(r=r?"".concat(bt("\n".concat(t,"\n"),n)).concat(r):"\n".concat(t)),"".concat(r,"\n")}function wr(e){var r;let t=$(e.name)?e.name:"",{bin:n}=e;return $(n)?t.slice(t.startsWith("@")?t.indexOf("/")+1:0):n&&typeof n=="object"&&(r=Object.keys(n)[0])!=null?r:t}function vr(e,t){let n=e?e.type:void 0;return t===void 0?n==="string"?"":n==="number"?void 0:!0:n==="boolean"?t==="true":n==="number"?Number(t):t}function Or(e="",t={}){var J,z,S,fe,de,_e,Z,re,he,B;let n=typeof process>"u"?void 0:process,r=(J=t.pkg)!=null?J:{},o=(S=(z=t.argv)!=null?z:n==null?void 0:n.argv.slice(2))!=null?S:[],s=(fe=t.helpIndent)!=null?fe:2,i=(de=t.autoHelp)!=null?de:!0,a=(_e=t.autoVersion)!=null?_e:!0,_=(re=(Z=t.version)!=null?Z:r.version)!=null?re:"No version found",u=Ae.call(t,"booleanDefault")?t.booleanDefault:!1,k=br(e,(he=t.description)!=null?he:r.description,s);function A(c){console.log(k),n==null||n.exit($t(c)?c:2)}function b(){console.log(_),n==null||n.exit(0)}let P=[],l=new Map;for(let[c,h]of Object.entries((B=t.flags)!=null?B:{})){let w={key:c,type:h.type,isMultiple:!!h.isMultiple,source:h};P.push(w),l.set(c,w),l.set(yr(c),w),h.shortFlag&&l.set(h.shortFlag,w)}let g=[],f={};function x(c,h){let w=l.get(c),I=w?w.key:gr(c);if(w!=null&&w.isMultiple){let F=f[I];Array.isArray(F)?F.push(h):f[I]=[h];return}f[I]=h}function v(c,h){x(c,vr(l.get(c),h))}function O(c,h){return h===void 0?!1:(c==null?void 0:c.type)==="boolean"?h==="true"||h==="false":!(h.startsWith("-")&&h.length>1&&!He.test(h))}function d(c,h){let w=c.slice(1);for(let I=0;I<w.length;I++){let F=w[I],N=w.slice(I+1);if(N.startsWith("="))return v(F,N.slice(1)),h;if(He.test(N)||N&&/\W/.test(N[0]))return v(F,N),h;let U=l.get(F);if(N&&(U!=null&&U.type)&&U.type!=="boolean")return v(F,N),h;if(N){v(F,void 0);continue}if(O(U,o[h+1]))return v(F,o[h+1]),h+1;v(F,void 0)}return h}for(let c=0;c<o.length;c++){let h=o[c];if(h==="--"){g.push(...o.slice(c+1));break}if(h.startsWith("--")){let w=h.slice(2),I=w.indexOf("=");if(I!==-1){v(w.slice(0,I),w.slice(I+1));continue}if(w.startsWith("no-")){x(w.slice(3),!1);continue}let F=l.get(w);if(O(F,o[c+1])){v(w,o[c+1]),c++;continue}v(w,void 0);continue}if(h.startsWith("-")&&h.length>1&&!He.test(h)){c=d(h,c);continue}g.push(h)}for(let c of P)Ae.call(f,c.key)||(Ae.call(c.source,"default")?f[c.key]=c.source.default:c.isMultiple?f[c.key]=[]:c.type==="boolean"&&u!==void 0&&(f[c.key]=u));!g.length&&o.length===1&&(a&&f.version===!0?b():i&&f.help===!0&&A(0));let y=wr(r);return y&&n&&(n.title=y),{input:g,flags:f,pkg:r,help:k,showHelp:A,showVersion:b}}function Tr(e,t=[]){if(!e)return e;if(!Ft(e))throw new Error("codsen-utils/omit(): [THROW_ID_02] Input must be a plain object! It was given as ".concat(ke(e,4),' (typeof is "').concat(typeof e,'")'));let n=Object.getPrototypeOf(e)===null?Object.create(null):{},r=new Be;r.set(e,n);let o=Object.keys(e),s=o.length*t.length<400?void 0:new Set(t);for(let i of o){if(s?s.has(i):t.includes(i))continue;let a=X(e[i],r);i==="__proto__"?Dt(n,i,a):n[i]=a}return n}var jr=256,xr=1024,Sr=1,kr=new Map,Cr=new Map;function ze(e){if(e>=97&&e<=122)return e-32;if(e>65535)return e;let t=String.fromCharCode(e).toUpperCase();if(t.length!==1)return e;let n=t.charCodeAt(0);return e>127&&n<128?e:n}function Ve(e,t,n,r,o,s){for(let i=0;i<o;i++){let a=e.charCodeAt(t+i),_=n.charCodeAt(r+i);if(s||(a>=97&&a<=122&&(a-=32),_>=97&&_<=122&&(_-=32)),a!==_)return!1}return!0}function Wt(e,t,n){let r=t.indexOf("\\");if(r===-1&&e===t)return!0;let o=t.indexOf("*");if(r===-1&&o===-1){if(n)return!1;for(let k=0;k<t.length;k++)if(t.charCodeAt(k)>127)return;return e.length===t.length&&Ve(e,0,t,0,t.length,!1)}if(r!==-1)return;let s=0,i=!1,a=-1;for(let k=0;k<t.length;k++){let A=t.charCodeAt(k);if(A>127)return;if(A===42){if(a=k,!i){if(s++,s>1)return;i=!0}}else i=!1}let _=a+1,u=t.length-_;return e.length<o+u?!1:Ve(e,0,t,0,o,n)&&Ve(e,e.length-u,t,_,u,n)}function Ar(e){let t=new Uint32Array(e.length),n=0;for(let r=1;r<e.length;r++){for(;n>0&&e[r]!==e[n];)n=t[n-1];e[r]===e[n]&&n++,t[r]=n}return t}function Pr(e,t){let n=[[]],r=!0,o=!1,s=!1,i=0;for(let b=0;b<e.length;){let P=e.codePointAt(b);if(P!==92){if(P===42)o=!0,s||(n.push([]),s=!0);else{let O=t?P:ze(P);n[n.length-1].push(O),r&&(r=O<=127),i++,s=!1}b+=P>65535?2:1;continue}let l=b+1;for(;e.charCodeAt(l)===92;)l++;let g=l-b,f=e.codePointAt(l),x,v=!1;f===42?(v=g%2===0,x=v?g/2:(g-1)/2):f===void 0||f===10||f===13||f===8232||f===8233?x=Math.ceil(g/2):x=Math.floor(g/2);for(let O=0;O<x;O++)n[n.length-1].push(92),i++;if(v){s=!1,b=l;continue}if(f!==void 0){let O=t?f:ze(f);n[n.length-1].push(O),r&&(r=O<=127),i++,l+=f>65535?2:1}s=!1,b=l}let a=o&&n[0].length===0,_=o&&n[n.length-1].length===0,u=[];for(let b of n)b.length&&u.push({values:b});let k=a?0:1,A=u.length-(_?0:1);for(let b=k;b<A;b++)u[b].values.length>Sr&&(u[b].failure=Ar(u[b].values));return{asciiOnly:r,endsWithWildcard:_,hasWildcard:o,minimumInputLength:i,segments:u,startsWithWildcard:a}}function Ge(e,t){let n=t?kr:Cr,r=e.length<=xr;if(r){let s=n.get(e);if(s)return s}let o=Pr(e,t);if(r){if(n.size>=jr){let s=n.keys().next().value;s!==void 0&&n.delete(s)}n.set(e,o)}return o}function Je(e,t){if(t){let o=[];for(let s=0;s<e.length;){let i=e.codePointAt(s);o.push(i),s+=i>65535?2:1}return o}let n=new Uint32Array(e.length),r=0;for(let o=0;o<e.length;){let s=e.codePointAt(o);n[r]=ze(s),r++,o+=s>65535?2:1}return r===n.length?n:n.subarray(0,r)}function Pe(e,t,n,r){for(let o=0;o<n.values.length;o++){let s=e.charCodeAt(t+o);if(!r&&s>=97&&s<=122&&(s-=32),s!==n.values[o])return!1}return!0}function Rr(e,t,n,r,o){let s=r-t.values.length;if(s<n)return-1;if(!t.failure){for(let a=n;a<=s;a++)if(Pe(e,a,t,o))return a;return-1}let i=0;for(let a=n;a<r;a++){let _=e.charCodeAt(a);for(!o&&_>=97&&_<=122&&(_-=32);i>0&&_!==t.values[i];)i=t.failure[i-1];if(_===t.values[i]&&(i++,i===t.values.length))return a-i+1}return-1}function Ze(e,t,n){if(e.length<t.minimumInputLength)return!1;if(!t.hasWildcard)return e.length===t.minimumInputLength&&Pe(e,0,t.segments[0],n);let r=0,o=t.segments.length,s=0,i=e.length;if(!t.startsWithWildcard){let a=t.segments[0];if(!Pe(e,0,a,n))return!1;s=a.values.length,r++}if(!t.endsWithWildcard){o--;let a=t.segments[o];if(i-=a.values.length,!Pe(e,i,a,n))return!1}for(let a=r;a<o;a++){let _=t.segments[a],u=Rr(e,_,s,i,n);if(u===-1)return!1;s=u+_.values.length}return!0}function Re(e,t,n){for(let r=0;r<n.values.length;r++)if(e[t+r]!==n.values[r])return!1;return!0}function Dr(e,t,n,r){let o=r-t.values.length;if(o<n)return-1;if(!t.failure){for(let i=n;i<=o;i++)if(Re(e,i,t))return i;return-1}let s=0;for(let i=n;i<r;i++){for(;s>0&&e[i]!==t.values[s];)s=t.failure[s-1];if(e[i]===t.values[s]&&(s++,s===t.values.length))return i-s+1}return-1}function Ye(e,t){if(e.length<t.minimumInputLength)return!1;if(!t.hasWildcard)return e.length===t.minimumInputLength&&Re(e,0,t.segments[0]);let n=0,r=t.segments.length,o=0,s=e.length;if(!t.startsWithWildcard){let i=t.segments[0];if(!Re(e,0,i))return!1;o=i.values.length,n++}if(!t.endsWithWildcard){r--;let i=t.segments[r];if(s-=i.values.length,!Re(e,s,i))return!1}for(let i=n;i<r;i++){let a=t.segments[i],_=Dr(e,a,o,s);if(_===-1)return!1;o=_+a.values.length}return!0}function Ir(e,t,n){let r=Wt(e,t,n);if(r!==void 0)return r;let o=Ge(t,n);return o.asciiOnly?Ze(e,o,n):Ye(Je(e,n),o)}function wt(e,t,n,r){var i;let o=Wt(e,t,n);if(o!==void 0)return o;let s=Ge(t,n);return s.asciiOnly?Ze(e,s,n):((i=r.tokens)!=null||(r.tokens=Je(e,n)),Ye(r.tokens,s))}function Fr(e,t){let n=e.charCodeAt(0)===33,r=n?e.slice(1):e;return{compiled:r.length===0?void 0:Ge(r,t),negative:n}}function Le(e,t,n,r){var s;let o;return t.compiled?t.compiled.asciiOnly?o=Ze(e,t.compiled,n):((s=r.tokens)!=null||(r.tokens=Je(e,n)),o=Ye(r.tokens,t.compiled)):o=e.length===0,t.negative?!o:o}function $r(e,t){let n=(t==null?void 0:t.caseSensitiveMatch)===!0,r=typeof e=="string"?[e]:Array.from(new Set(e));if(r.length===0)return()=>!1;let o=r.map(s=>Fr(s,n));if(typeof e=="string"){let s=o[0];return i=>Le(i,s,n,{})}return s=>{let i={},a=!1,_=!1;for(let u of o)if(u.negative){if(!Le(s,u,n,i))return!1}else a=!0,!_&&Le(s,u,n,i)&&(_=!0);return a?_:!0}}function Nr(e,t,n){if(typeof t!="string"&&!t.length)return!1;let r=n===void 0?!1:n.caseSensitiveMatch===!0;if(typeof t=="string"){let a=t.charCodeAt(0)===33,_=a?t.slice(1):t,u=Ir(e,_,r);return a?!u:u}let o={},s=!1,i=!1;for(let a of t){let _=a.charCodeAt(0)===33,u=_?a.slice(1):a;if(_){if(wt(e,u,r,o))return!1}else s=!0,!i&&wt(e,u,r,o)&&(i=!0)}return s?i:!0}var D=an(Ht(),1);var Vt="8.2.2";var Er=Vt,{formatDiagnosticValue:G,isPlainObject:Q,match:Lt}=De,Gt,Ie=(Gt=Object.getOwnPropertyDescriptor(De,"createMatcher"))==null?void 0:Gt.value,te=Object.freeze([]),Jt=Object.freeze({}),Ne={acceptArrays:!1,acceptArraysIgnore:te,enforceStrictKeyset:!0,ignoreKeys:te,ignorePaths:te,msg:"check-types-mini",optsVarName:"opts",reportCompletionFunc:null,reportProgressFunc:null,reportProgressFuncFrom:0,reportProgressFuncTo:100,schema:Jt},Wr=Object.freeze(ft({},Ne)),$e=class extends TypeError{constructor(n,r,o={}){var i,a;let s=o.context||Ne.msg;super("check-types-mini/checkTypesMini(): [".concat(n,"] ").concat(s,": ").concat(r));H(this,"actualType");H(this,"context");H(this,"expectedTypes");H(this,"name","CheckTypesMiniError");H(this,"path");H(this,"reason");H(this,"validatorCode");this.actualType=(i=o.actualType)!=null?i:null,this.context=s,this.expectedTypes=o.expectedTypes?Object.freeze(Array.from(o.expectedTypes)):null,this.path=Object.freeze(Array.from((a=o.path)!=null?a:te)),this.reason=r,this.validatorCode=n}toJSON(){return{actualType:this.actualType,context:this.context,expectedTypes:this.expectedTypes,message:this.message,name:this.name,path:this.path,reason:this.reason,validatorCode:this.validatorCode}}},st=new Set(["all","any","anything","every","everything","whatever","whatevs"]),pe=Object.prototype.hasOwnProperty,Fe={caseSensitiveMatch:!0},Hr=new Map,Vr=new Map,Lr=100,Kr=new Set(["acceptArrays","acceptArraysIgnore","enforceStrictKeyset","ignoreKeys","ignorePaths","msg","optsVarName","reportCompletionFunc","reportProgressFunc","reportProgressFuncFrom","reportProgressFuncTo","schema"]);function ot(){return{children:new Map,descriptors:null,implicitContainer:!1}}var Kt=ot();function zr(e){return"keys"in e}function Br(e){return"keys"in e}function ne(e){if(!e)return[];let t=new Array(e.depth),n=e;for(;n;)t[n.depth-1]=n.segment,n=n.parent;return t}function K(e,t){let n=e;for(let r of ne(t))/^(?:[A-Za-z_$][A-Za-z0-9_$]*|\d+)$/u.test(r)?n+=".".concat(r):n+="[".concat(JSON.stringify(r),"]");return n}function je(e){let t="";for(let n of e)n==="%"?t+="%25":n==="."?t+="%2E":n==="\\"?t+="%5C":t+=n;return t}function Ur(e){return e.encoded}function zt(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(r==="\\"&&n+1<e.length){let o=e[n+1];o==="."?t+="%2E":o==="%"?t+="%25":o==="\\"?t+="%5C":t+="\\".concat(o),n++}else r==="%"?t+="%25":t+=r}return t}function tt(e,t){if(!e.length)return null;if(e.length===1){let r=e[0],o=t?Vr:Hr,s=o.get(r);if(s)return s;let i=t?zt(r):r,a=Ie?Ie(i,Fe):_=>Lt(_,i,Fe);return o.size<Lr&&o.set(r,a),a}let n=t?e.map(zt):Array.from(e);return Ie?Ie(n,Fe):r=>Lt(r,n,Fe)}function qr(e){let t=[],n="";for(let r=0;r<e.length;r++){let o=e[r];o==="\\"&&r+1<e.length?(n+=e[r+1],r++):o==="."?(t.push(n),n=""):n+=o}return t.push(n),t}function Bt(e,t){if(t.some(r=>st.has(r)))return!0;if(e===!0)return t.includes("true")||t.includes("boolean");if(e===!1)return t.includes("false")||t.includes("boolean");let n=(0,D.default)(e).toLowerCase();return n==="object"&&t.includes("object")?Q(e):t.includes(n)}function nt(e){return e.includes("object")&&!e.some(t=>st.has(t))}function Qr(e){let t=Array.isArray(e)?e:[e];if(!t.length)return null;let n=[];for(let r=0;r<t.length;r++){if(!pe.call(t,r))return null;let o=t[r];if(o!=null&&typeof o!="string")return null;let s=String(o).toLowerCase().trim();if(!s)return null;n.includes(s)||n.push(s)}return n}function ie(e){return Array.isArray(e)?Object.keys(e).filter(t=>{let n=Number(t);return Number.isInteger(n)&&n>=0&&n<e.length&&String(n)===t}):Object.keys(e)}function Gr(e){return e!==null&&(typeof e=="object"||typeof e=="function")}function Ut(e,t){if(e)try{e(t)}catch(n){}}function R(e,t,n={}){throw new $e(e,t,n)}function L(e,t){return pe.call(e,t)&&e[t]!==void 0?e[t]:Ne[t]}function Te(e,t){return e[t]}function qt(e,t,n){return!!(t!=null&&t(e)||n!=null&&n(je(e)))}function ue(e,t,n,r,o){return R(e,t,{actualType:r,context:o,path:ne(n)})}function rt(e,t){if(e===void 0)return Array.from(t);let n=typeof e=="string"?[e]:e;if(!Array.isArray(n))return null;let r=[];for(let o=0;o<n.length;o++){if(!pe.call(n,o)||typeof n[o]!="string")return null;r.push(n[o])}return r}function Jr(...e){var _t,at,lt;let[t,n,r]=e;Q(t)||R("THROW_ID_01","The first argument must be a plain object; received ".concat(G(t,4),"."),{actualType:(0,D.default)(t).toLowerCase()}),(e.length<2||n!==null&&!Q(n))&&R("THROW_ID_02","The second argument must be a plain object or null; received ".concat(G(n,4),". Pass null explicitly when validating against only a schema."),{actualType:(0,D.default)(n).toLowerCase()}),r!=null&&!Q(r)&&R("THROW_ID_03","The third argument must be a plain options object, null, or undefined; received ".concat(G(r,4),"."),{actualType:(0,D.default)(r).toLowerCase()});let o=r!=null?r:Jt,s=Object.keys(o).find(p=>!Kr.has(p));s!==void 0&&R("THROW_ID_04","Unknown option ".concat(G(s),"."),{path:[s]});let i=rt(L(o,"ignoreKeys"),te),a=rt(L(o,"ignorePaths"),te),_=rt(L(o,"acceptArraysIgnore"),te);(!i||!a||!_)&&R("THROW_ID_05","opts.ignoreKeys, opts.ignorePaths, and opts.acceptArraysIgnore must each be a string or a dense array of strings.");let u=L(o,"acceptArrays"),k=L(o,"enforceStrictKeyset");(typeof u!="boolean"||typeof k!="boolean")&&R("THROW_ID_06","opts.acceptArrays and opts.enforceStrictKeyset must be Booleans.");let A=L(o,"schema");Q(A)||R("THROW_ID_07","opts.schema was customised to ".concat(G(A)," which is not a plain object but ").concat((0,D.default)(A).toLowerCase(),"."),{actualType:(0,D.default)(A).toLowerCase(),path:["schema"]});let b=L(o,"msg"),P=L(o,"optsVarName");(typeof b!="string"||typeof P!="string")&&R("THROW_ID_08","opts.msg and opts.optsVarName must be strings.");let l=b.trim();l.endsWith(":")&&(l=l.slice(0,-1).trim()),l||(l=Ne.msg);let g=P,f=L(o,"reportCompletionFunc"),x=L(o,"reportProgressFunc");(f!==null&&typeof f!="function"||x!==null&&typeof x!="function")&&R("THROW_ID_09","opts.reportCompletionFunc and opts.reportProgressFunc must each be a function, null, or undefined.",{context:l});let v=L(o,"reportProgressFuncFrom"),O=L(o,"reportProgressFuncTo");(!Number.isFinite(v)||!Number.isFinite(O))&&R("THROW_ID_10","opts.reportProgressFuncFrom and opts.reportProgressFuncTo must be finite numbers.",{context:l}),v>O&&R("THROW_ID_11","opts.reportProgressFuncFrom cannot exceed opts.reportProgressFuncTo; received ".concat(v," and ").concat(O,"."),{context:l});let d={acceptArrays:u,acceptArraysIgnore:_,enforceStrictKeyset:k,ignoreKeys:i,ignorePaths:a,msg:l,optsVarName:g,reportCompletionFunc:f,reportProgressFunc:x,reportProgressFuncFrom:v,reportProgressFuncTo:O,schema:A},y=!!(d.reportCompletionFunc||d.reportProgressFunc),J=d.reportCompletionFunc?Date.now():0,z=0,S=0,fe=0,de=0,_e=0,Z=0,re=0,he,B=null,c=null;y&&(B=(p=!1)=>{if(!d.reportProgressFunc)return;let T=d.reportProgressFuncTo-d.reportProgressFuncFrom,m=p?d.reportProgressFuncTo:d.reportProgressFuncFrom+T*Math.min(.99,re/(re+1e3));m!==he&&(he=m,Ut(d.reportProgressFunc,m))},c=()=>{re++,re%1e3===0&&(B==null||B())},B());let h=t,w=n,I=A,F=ie(I),N=F.length?ot():Kt,U="THROW_ID_12",Zt="THROW_ID_13",Y=F.length?new Set([I]):null,ge=F.length?[{value:I},{index:0,keys:F,node:N,path:null,value:I}]:[];for(;ge.length;){let p=ge.pop();if(!Br(p)){Y==null||Y.delete(p.value);continue}if(p.index>=p.keys.length)continue;let T=p.keys[p.index++];ge.push(p);let m=Te(p.value,T),j=qr(T),E=p.node,C=p.path;for(let se=0;se<j.length;se++){let W=j[se],V=E.children.get(W);V||(V=ot(),E.children.set(W,V),de++,c==null||c()),C={depth:((_t=C==null?void 0:C.depth)!=null?_t:0)+1,encoded:C?"".concat(C.encoded,".").concat(je(W)):je(W),parent:C,segment:W},se<j.length-1&&(V.descriptors&&!nt(V.descriptors)&&ue(U,"".concat(K("schema",C)," cannot have both a terminal descriptor and nested schema paths."),C,null,l),V.implicitContainer=!0),C.depth>S&&(S=C.depth),E=V}if(Q(m)){E.descriptors&&!nt(E.descriptors)&&ue(U,"".concat(K("schema",C)," cannot have both a terminal descriptor and nested schema paths."),C,"object",l),E.implicitContainer=!0,Y!=null&&Y.has(m)&&ue(Zt,"".concat(K("schema",C)," contains a cycle. Cyclic schemas are not supported."),C,"object",l),Y==null||Y.add(m),ge.push({value:m}),ge.push({index:0,keys:ie(m),node:E,path:C,value:m});continue}let M=Qr(m);M||ue(U,"".concat(K("schema",C)," must be a non-empty type name, null, undefined, or a dense array of those values; received ").concat(G(m,4),"."),C,(0,D.default)(m).toLowerCase(),l);let oe=M;E.descriptors&&ue(U,"".concat(K("schema",C)," is declared more than once."),C,(0,D.default)(m).toLowerCase(),l),(E.children.size||E.implicitContainer)&&!nt(oe)&&ue(U,"".concat(K("schema",C)," cannot have both a terminal descriptor and nested schema paths."),C,(0,D.default)(m).toLowerCase(),l),E.descriptors=oe}let ye=tt(d.ignoreKeys,!1),me=tt(d.ignorePaths,!0),ae=tt(d.acceptArraysIgnore,!1),it=ie(h),Yt=w?ie(w):te;if(d.enforceStrictKeyset&&!w&&N.children.size===0&&R("THROW_ID_14","Both ".concat(d.optsVarName,".schema and reference objects are missing! We don't have anything to match the keys as requested via ").concat(d.optsVarName,".enforceStrictKeyset."),{context:l}),d.enforceStrictKeyset){let p=it.filter(T=>!qt(T,ye,me)&&!(w&&pe.call(w,T))&&!N.children.has(T));if(p.length){let T=p.length>1,m=N.children.size?"The ".concat(d.optsVarName,".enforceStrictKeyset is on and the following key").concat(T?"s are":" is"," not covered by schema and/or reference objects: ").concat(p.join(", ")):"The input object has key".concat(T?"s":""," which ").concat(T?"are":"is"," not covered by the reference object: ").concat(p.join(", "));R("THROW_ID_15",m,{context:l})}}if(d.enforceStrictKeyset&&w){let p=Yt.filter(T=>!pe.call(h,T)&&!qt(T,ye,me));if(p.length){let T=p.length>1;R("THROW_ID_16","The reference object has key".concat(T?"s":""," which ").concat(T?"are":"is"," not present in the input object: ").concat(p.join(", ")),{context:l})}}let le=[h],q=null,be=[{value:h},{index:0,keys:it,path:null,refValue:w,schemaNode:N,value:h}];for(;be.length;){let p=be.pop();if(!zr(p)){le.pop(),q==null||q.delete(p.value),q&&le.length<=32&&(q=null);continue}if(p.index>=p.keys.length)continue;let T=p.keys[p.index++];be.push(p);let m={depth:((lt=(at=p.path)==null?void 0:at.depth)!=null?lt:0)+1,encoded:p.path?"".concat(p.path.encoded,".").concat(je(T)):je(T),parent:p.path,segment:T};y&&(Array.isArray(p.value)?z++:fe++,m.depth>S&&(S=m.depth),c==null||c());let j=Te(p.value,T),E=Array.isArray(p.value);if(!!(!E&&(ye!=null&&ye(T))||me!=null&&me(Ur(m)))){y&&_e++;continue}let M=p.schemaNode.children.get(T),oe=!1;if(M!=null&&M.descriptors){let ee=M.descriptors;if(ee.some(we=>st.has(we))){y&&_e++;continue}if(y&&(Z++,c==null||c()),Bt(j,ee))if((M.implicitContainer||M.children.size)&&Q(j))oe=!0;else continue;if(!oe&&d.acceptArrays&&Array.isArray(j)&&!(ae!=null&&ae(T))){let we=ie(j);for(let ve of we){let xe=Te(j,ve);y&&(z++,Z++,m.depth+1>S&&(S=m.depth+1),c==null||c()),Bt(xe,ee)||Yr(xe,ee,m,Number(ve),d,l)}continue}oe||Qt(j,ee,m,d,l)}let se=!1,W;Gr(p.refValue)&&pe.call(p.refValue,T)&&(se=!0,W=Te(p.refValue,T));let V=!1,Xt=W,en=M!=null?M:Kt;if(M&&(M.implicitContainer||M.children.size))oe||(y&&(Z++,c==null||c()),Q(j)||Qt(j,["object"],m,d,l)),V=!0;else if(se){if(d.acceptArrays&&Array.isArray(j)&&!Array.isArray(W)&&!(ae!=null&&ae(T))){let ee=(0,D.default)(W).toLowerCase(),we=ie(j);for(let ve of we){let xe=Te(j,ve);y&&(z++,Z++,m.depth+1>S&&(S=m.depth+1),c==null||c());let ct=(0,D.default)(xe).toLowerCase();ct!==ee&&Xr(ct,ee,m,Number(ve),d,l)}continue}y&&(Z++,c==null||c()),(0,D.default)(j)!==(0,D.default)(W)&&eo(j,W,m,d,l),(Array.isArray(j)&&Array.isArray(W)||Q(j))&&(V=!0)}else d.enforceStrictKeyset&&(!E||Q(j)||Array.isArray(j))&&Zr(m,d,l);V&&((q?q.has(j):le.includes(j))&&to(m,d,l),le.push(j),q?q.add(j):le.length>32&&(q=new Set(le)),be.push({value:j}),be.push({index:0,keys:ie(j),path:m,refValue:Xt,schemaNode:en,value:j}))}B==null||B(!0),Ut(d.reportCompletionFunc,Object.freeze({arrayElementsVisited:z,maxDepth:S,objectPropertiesVisited:fe,schemaEntries:de,timeTakenInMilliseconds:d.reportCompletionFunc?Date.now()-J:0,valuesIgnored:_e,valuesValidated:Z}))}function Zr(e,t,n){return R("THROW_ID_17","".concat(K(t.optsVarName,e)," is neither covered by reference object (second input argument), nor ").concat(t.optsVarName,".schema! To stop this error, turn off ").concat(t.optsVarName,".enforceStrictKeyset or provide a type reference."),{context:n,path:ne(e)})}function Qt(e,t,n,r,o){let s=(0,D.default)(e).toLowerCase(),i=s==="string"?"":'"';return R("THROW_ID_18","".concat(K(r.optsVarName,n)," was customised to ").concat(i).concat(G(e)).concat(i," (type: ").concat(s,") which is not among the allowed types in schema (which is equal to ").concat(G(t),")"),{actualType:s,context:o,expectedTypes:t,path:ne(n)})}function Yr(e,t,n,r,o,s){return R("THROW_ID_19","".concat(K(o.optsVarName,n),".").concat(r,", the ").concat(r,"th element (equal to ").concat(G(e),") is of a type ").concat((0,D.default)(e).toLowerCase(),", but only the following are allowed by the ").concat(o.optsVarName,".schema: ").concat(t.join(", ")),{actualType:(0,D.default)(e).toLowerCase(),context:s,expectedTypes:t,path:ne({depth:n.depth+1,encoded:"".concat(n.encoded,".").concat(r),parent:n,segment:String(r)})})}function Xr(e,t,n,r,o,s){return R("THROW_ID_20","".concat(K(o.optsVarName,n)," was customised to be array, but not all of its elements are ").concat(t,"-type"),{actualType:e,context:s,expectedTypes:[t],path:ne({depth:n.depth+1,encoded:"".concat(n.encoded,".").concat(r),parent:n,segment:String(r)})})}function eo(e,t,n,r,o){let s=(0,D.default)(e).toLowerCase(),i=(0,D.default)(t).toLowerCase(),a=s==="string"?"":'"';return R("THROW_ID_21","".concat(K(r.optsVarName,n)," was customised to ").concat(a).concat(G(e)).concat(a," which is not ").concat(i," but ").concat(s),{actualType:s,context:o,expectedTypes:[i],path:ne(n)})}function to(e,t,n){return R("THROW_ID_22","".concat(K(t.optsVarName,e)," contains a cycle. Cyclic input structures are not supported."),{actualType:"object",context:n,path:ne(e)})}return ln(no);})();
11
+ /**
12
+ * @name codsen-format-diagnostic-value
13
+ * @fileoverview Safely format untrusted JavaScript values for diagnostics
14
+ * @version 1.1.0
15
+ * @author Roy Revelt
16
+ * @license MIT
17
+ * {@link https://codsen.com/os/codsen-format-diagnostic-value/}
18
+ */
11
19
  /**
12
20
  * @name codsen-utils
13
21
  * @fileoverview Various utility functions
14
- * @version 1.9.0
22
+ * @version 1.10.0
15
23
  * @author Roy Revelt
16
24
  * @license MIT
17
25
  * {@link https://codsen.com/os/codsen-utils/}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "check-types-mini",
3
- "version": "8.2.1",
3
+ "version": "8.2.2",
4
4
  "description": "Validate options object",
5
5
  "keywords": [
6
6
  "compare",
@@ -68,7 +68,7 @@
68
68
  }
69
69
  },
70
70
  "dependencies": {
71
- "codsen-utils": "^1.9.0",
71
+ "codsen-utils": "^1.10.0",
72
72
  "type-detect": "^4.1.0"
73
73
  },
74
74
  "engines": {
package/types/index.d.ts CHANGED
@@ -1,26 +1,118 @@
1
1
  declare const version: string;
2
- interface Obj {
3
- [key: string]: any;
2
+ type Obj = object;
3
+ type SchemaTypeName = string | null | undefined;
4
+ type SchemaDescriptor = SchemaTypeName | readonly SchemaTypeName[];
5
+ interface Schema {
6
+ readonly [key: string]: Schema | SchemaDescriptor;
7
+ }
8
+ interface CompletionStats {
9
+ arrayElementsVisited: number;
10
+ maxDepth: number;
11
+ objectPropertiesVisited: number;
12
+ schemaEntries: number;
13
+ timeTakenInMilliseconds: number;
14
+ valuesIgnored: number;
15
+ valuesValidated: number;
4
16
  }
5
17
  interface Opts {
6
- ignoreKeys: string | string[];
7
- ignorePaths: string | string[];
8
18
  acceptArrays: boolean;
9
- acceptArraysIgnore: string | string[];
19
+ acceptArraysIgnore: string | readonly string[];
10
20
  enforceStrictKeyset: boolean;
11
- schema: Obj;
21
+ ignoreKeys: string | readonly string[];
22
+ ignorePaths: string | readonly string[];
12
23
  msg: string;
13
24
  optsVarName: string;
25
+ reportCompletionFunc: null | ((stats: Readonly<CompletionStats>) => void);
26
+ reportProgressFunc: null | ((percentageDone: number) => void);
27
+ reportProgressFuncFrom: number;
28
+ reportProgressFuncTo: number;
29
+ schema: Schema;
30
+ }
31
+ declare const defaults: Readonly<Opts>;
32
+ type CheckTypesMiniThrowId =
33
+ | "THROW_ID_01"
34
+ | "THROW_ID_02"
35
+ | "THROW_ID_03"
36
+ | "THROW_ID_04"
37
+ | "THROW_ID_05"
38
+ | "THROW_ID_06"
39
+ | "THROW_ID_07"
40
+ | "THROW_ID_08"
41
+ | "THROW_ID_09"
42
+ | "THROW_ID_10"
43
+ | "THROW_ID_11"
44
+ | "THROW_ID_12"
45
+ | "THROW_ID_13"
46
+ | "THROW_ID_14"
47
+ | "THROW_ID_15"
48
+ | "THROW_ID_16"
49
+ | "THROW_ID_17"
50
+ | "THROW_ID_18"
51
+ | "THROW_ID_19"
52
+ | "THROW_ID_20"
53
+ | "THROW_ID_21"
54
+ | "THROW_ID_22";
55
+ interface CheckTypesMiniErrorDetails {
56
+ actualType?: string | null;
57
+ context?: string;
58
+ expectedTypes?: readonly string[] | null;
59
+ path?: readonly string[];
60
+ }
61
+ interface CheckTypesMiniErrorJson {
62
+ actualType: string | null;
63
+ context: string;
64
+ expectedTypes: readonly string[] | null;
65
+ message: string;
66
+ name: "CheckTypesMiniError";
67
+ path: readonly string[];
68
+ reason: string;
69
+ validatorCode: CheckTypesMiniThrowId;
70
+ }
71
+ declare class CheckTypesMiniError extends TypeError {
72
+ readonly actualType: string | null;
73
+ readonly context: string;
74
+ readonly expectedTypes: readonly string[] | null;
75
+ readonly name = "CheckTypesMiniError";
76
+ readonly path: readonly string[];
77
+ readonly reason: string;
78
+ readonly validatorCode: CheckTypesMiniThrowId;
79
+ constructor(
80
+ validatorCode: CheckTypesMiniThrowId,
81
+ reason: string,
82
+ details?: CheckTypesMiniErrorDetails,
83
+ );
84
+ toJSON(): CheckTypesMiniErrorJson;
14
85
  }
15
- declare const defaults: Opts;
16
- /**
17
- * Validate options object
18
- */
19
- declare function checkTypesMini(
20
- obj: Obj,
21
- ref: Obj | null,
22
- opts?: Partial<Opts>,
86
+ type PlainObjectInput<T extends object> = T extends
87
+ | readonly unknown[]
88
+ | ((...args: never[]) => unknown)
89
+ | Date
90
+ | RegExp
91
+ | Map<unknown, unknown>
92
+ | Set<unknown>
93
+ | WeakMap<object, unknown>
94
+ | WeakSet<object>
95
+ | Promise<unknown>
96
+ ? never
97
+ : T;
98
+ declare function checkTypesMini<
99
+ TObj extends object,
100
+ TRef extends object | null,
101
+ >(
102
+ obj: PlainObjectInput<TObj>,
103
+ ref: TRef extends object ? PlainObjectInput<TRef> : TRef,
104
+ opts?: Partial<Opts> | null,
23
105
  ): void;
24
106
 
25
- export { checkTypesMini, defaults, version };
26
- export type { Obj, Opts };
107
+ export { CheckTypesMiniError, checkTypesMini, defaults, version };
108
+ export type {
109
+ CheckTypesMiniErrorDetails,
110
+ CheckTypesMiniErrorJson,
111
+ CheckTypesMiniThrowId,
112
+ CompletionStats,
113
+ Obj,
114
+ Opts,
115
+ Schema,
116
+ SchemaDescriptor,
117
+ SchemaTypeName,
118
+ };