const VERS_NUM="version 1.7.5 2024-01-17";let the_exports;the_exports="undefined"!==typeof window?window:"undefined"!==typeof exports?exports:{};if("undefined"===typeof TYPE_CZECH_current_test_number)var TYPE_CZECH_current_test_number="not-in-test-yet"; (function(R){R.TypeCzech=function(){function Pa(...ca){function S(a,b){a=A(a);a=a.substring(1,a.length-1);"undefined"!==typeof window?console.log(`%c ${a}`,b):console.log("\u001b[43m\u001b[31m"+a+"\u001b[0m")}function Qa(a){return a.replace(/"/g,"'")}function B(a){a=x(a);return"array"===a?!0:"object"===a}function ua(a){if(B(a)&&!Array.isArray(a)&&"number"===typeof a.length){const b=a.length;if(Object.keys(a).length===b){for(let c=0;c{const e=q(d,b);"string"===x(d)?"''"===e?c.push('""'):c.push(`"${e}"`):c.push(e)}),a=`[${c.join()}]`;else{for(const [d,e]of Object.entries(a)){a=d.match(/[^a-z\d_]/gi)?d.match(/"/g)?`'${d}'`:`"${d}"`:d.match(/^\d+[a-z_]/i)?`"${d}"`:d;const g=q(e,b);a="string"===x(e)?"''"===g?`${a}:""`:`${a}:"${g}"`:`${a}:${g}`;c.push(a)}a=`{${c.join()}}`}return a}function h(a,b){return Ca&&b?(a=`${b} - ${a}`,Da&&S(a,"background: #ee0; color: #F00"), a):a}function T(a){let b="";if(!ja(a)&&"string"===typeof a){const c=a.toLowerCase();Ya[c]&&(b=h(`Type '${a}' is not a typeof(), but looks like '${c}'`,"TE@205"))}return b}function Ea(a){if(0{const l=H(r);l?p.push(`'${l}'`):(r=A(r),p.push(r))});return p}function d(m){function p(r,l,v){l=l.replace(/\$/g,"$$$$");return v.replace(new RegExp(r.replace(/([\/,!\\\^\$\{\}\[\]\(\)\.\*\+\?\|<>\-&])/g,"\\$&"),"g"),l)}m=p("Str_ify_100057_100193:und_200087","undefined",m);m=p("Str_ify_100333_100417:null_200227","null",m);m=p("Str_ify_100523_100669:NaN_200351","NaN",m);return p("Str_ify_100799_100931:Inf_200461","Infinity",m)}function e(){U+= 1}function g(m,p,r,l,v,t,u){e();la&&S([U,u],"background: #ee0; color: #00F");var C=m;const [J,F]=D;D=["",""];if("checkParam_type()"===F||"checkParam_empty()"===F||"checkParam_typeEither()"===F||"checkParam_emptyEither()"===F)m||t===l.length||(C=`${t} Parameter element count !== check signature element ${l} count ${l.length}`);if(!(C instanceof Promise)&&C){V+=1;$a(b());m="check_assert()"===v?"":` ${u}() ${r} `;r=A(J);l.lengtht?(t=c(l),l=q(l),l=l.substring(1,l.length-1)):(t=c(l),1`${p}()`).reduce((p,r)=>`${p}, ${r}`)} }`:`${m.name}()`}function z(m,p,r){if("function"!==typeof m&&"object"!==typeof m)throw m=q(m),h(`${p}, is a not a function or an object that has a value of '${m}'`,r);}function P(m,p){const r=w(p);if(void 0===m)throw h(`Function to be checked by ${r} is 'undefined', maybe namespace issue`,"EX@102");if(m=== p)throw h(`_ParametersCheck you cannot use ${m.name}() to test`+`${p.name}(), they must be different`,"EX@103");}function K(m,p,r){const l=m.name;return new Proxy(m,{apply(v,t,u){fa(b());G&&p&&("undefined"===typeof t?k(l,"PRE-FUNC:",u,p):n(l,"PRE-FUNC:",t,u,p));v=v.apply(t,u);G&&r&&("undefined"===typeof t?k(l,"POST-FUNC:",[v],r):n(l,"POST-FUNC:",t,[v],r));return v}})}function W(m,p,r,l){const v=new Set;r&&Object.keys(r).forEach(u=>v.add(u));l&&Object.keys(l).forEach(u=>v.add(u));let t=!1;Object.isFrozen(p)&& (t=!0,p=Object.assign({},p));v.forEach(u=>{if(u!==m){let C=!1;r&&(C=r[u]||!1);let J=!1;l&&(J=l[u]||!1);p[u]&&(p[u]=K(p[u],C,J))}});t&&Object.freeze(p);return p}function ma(m,p){return"function"===typeof m?m:"undefined"===typeof m?!1:m[p]}function Ab(m,p,r){const l=m.name,v=ma(p,l),t=ma(r,l);return new Proxy(m,{apply(){},construct(u,C,J){fa(b());G&&v&&k(l,"PRE-CLASS:",C,v);u=Reflect.construct(u,C,J);u=W(l,u,p,r);G&&t&&n(l,"POST-CLASS:",u,[u],t);return u}})}function Bb(m,p,r){const l=m.name,v=ma(p, l),t=ma(r,l);return new Proxy(m,{apply(u,C,J){fa(b());G&&v&&k(l,"PRE-OBJ:",J,v);u=u.apply(C,J);u=W(l,u,p,r);G&&t&&k(l,"PRE-OBJ:",[u],r[l]);return u},construct(u,C){fa(b());G&&v&&k(l,"POST-OBJ:",C,v);u=new u(...C);u=W(l,u,p,r);G&&t&&n(l,"POST-OBJ:",u,[u],t);return u}})}function Cb(m,p,r){var l=arguments.length;if(2!==l&&3!==l)throw h(`linkUp() needs 2 or 3 params, not ${l}`,"EX@106");if(ab.has(m))throw h(`${m.name}() is already proxied with ${m.name}`,"EX@104");if("function"!==typeof m){var v=q(m); throw h(`1st param to linkUp(), target_proxy is not a function, but is instead ${v}`,"EX@105");}if(p)for(var t in p)l=p[t],P(m,l),z(l,"linkUp() 2nd param, PRE-CHECK()","EX@101");if(r)for(v in r)t=r[v],P(m,t),z(t,"linkUp() 3rd param, POST-CHECK()","EX@115");Ta(m)?v=Ab(m,p,r):(v=x(p),t=x(r),v="object"===v||"object"===t?Bb(m,p,r):K(m,p,r));ab.add(v);return v}var X=arguments.length;if(1"",$a=()=>"",U=0,V=0,G=!1;X=(m,p, r)=>m;X=Y?Cb:X;if(Y){a&&"object"!==x(a)&&S(["_ParametersCheck - arg_check_events is not an Object with onStart(), onCheck(), onError() ",a],"background: #ee0; color: #F00");bb||S(["TypeCzech-init",VERS_NUM,da?"THROW-EXCEPTIONS":"",ea?"LOG-ERRORS":"",na?"LOG-ERRORS":"",I?"UNDEF-OK":"",la?"CONSOLE-COUNT":"",a],"background: #cc0; color: #080");if(void 0!==a.onStart)a.onStart("Start");void 0!==a.onCheck&&(fa=a.onCheck);void 0!==a.onError&&($a=a.onError);G=!0}return{check_assert_:function(m,p,r,l){if(y.p_call_traps){let v= "";"undefined"!==typeof l&&(v=q(l));q(m);l=[r];D=[v,"check_assert()"];g(`\n MESSAGE ${m} `,p,l,[r],"check_assert()",0,"")}},confirmParameters:X,countFails_:function(){return V},countTally_:function(){return U},countZero_:function(){V=U=0},disableTests_:function(){Y=G=!1},enableTests_:function(){Y=G=!0;V=U=0},newCheck:e,newFail:function(){V+=1},p_call_traps:G}}function ha(a,b){b||(b={});"function"===typeof b&&(b={cmp:b});var c="boolean"===typeof b.cycles?b.cycles:!1,d=b.cmp&& function(g){return function(f){return function(k,n){return g({key:k,value:f[k]},{key:n,value:f[n]})}}}(b.cmp),e=[];return function k(f){f&&f.toJSON&&"function"===typeof f.toJSON&&(f=f.toJSON());if(Number.isNaN(f))return"NaN";if("number"===typeof f&&!Number.isFinite(f))return"Infinity";if(void 0===f)return"undefined";if("bigint"===typeof f)return JSON.stringify(f+"n");if("symbol"===typeof f)return f.toString();if("function"===typeof f||f&&f.constructor===RegExp)return String(f);if("number"==typeof f)return isFinite(f)? ""+f:"null";if("object"!==typeof f)return JSON.stringify(f);var n;if(Array.isArray(f)){var w="[";for(n=0;nb.length&&ja(b[0]))b=q(a),d=h(`${a.length} !== ${g}, array has more elements than types, ${b} !== ${e}`,"TE@239");else if(1{"arrays"===k&&(f+=1)});1{if(""===d){var w=Fa(a,n);const z=x(w);if(B(k))d=oa(w,k,c),k="TYPE-VERIFY"=== c||"EMPTY-VERIFY"===c,""===d&&e!==g&&k&&(k=q(a),w=q(b),d=h(`Collection sizes do not match ${e} !== ${g} with ${k} and ${w}`,"TE@296"));else if(k&&"string"===typeof k&&k.endsWith("s")){a:{if(k.endsWith("s")&&(w=k.substring(0,k.length-1),ya.includes(w)))break a;w=!1}w&&1===f.length?(k=Array(e).fill(w),d=pa(a,k,c)):d=w&&e===g?pa(a[n],[b[n]],c):w&&e>g?h("Not enough types to match values","TE@299"):w&&e{if(""===d){const [f,k]=g;B(k)?(d=oa(a[f],b[f],c),delete e[f]):Object.prototype.hasOwnProperty.call(e,f)?(d=gb(e,f,k),delete e[f]):"TYPE-VERIFY"===c&&(g=A(k),"string"===x(k)&&(g=`'${g}'`),d=h(`Extra key in checked object - (${f}:${g})`,"TE@209"))}});""===d&&(d=Ea(e));return d}function qa(a,b){var c="";"null"===b||"undefined"===b?c=h(`The type '${b}' is not a valid checkParam_type(), `+ "checkParam_typeEither(), or checkParam_typeExtra() 2nd parameter type","TE@203"):Aa(b)?(c=x(a),c===b?c="":"array"===c?c=h(`The value [], an 'array', is not a '${b}'`,"TE@225"):"object"===c?c=h(`The value {}, an 'object', is not a '${b}'`,"TE@208"):"undefined"===c?c=h(`The value 'undefined', is not a '${b}'`,"TE@206"):(a=q(a),c=h(`The value '${a}', which is a '${c}', is not a '${b}'`,"TE@226"))):Wa(a)!==b&&("string"===x(b)?c=cb(a,b):(b=q(b),c=h(`The type '${b}' is invalid`,"TE@230")));return c}function Z(a, b,c){return B(b)?oa(a,b,c):qa(a,b)}function hb(a,b){if(0===a.length)b=h("Array with no empty type elems, [], should have at least one, like ['EMPTY-ERROR']","EE@316");else{a=Object.entries(a);const [c,d]=a[0];b=A(b);b=h(`ELEMENT '${c}' is promised to be a '${d}', but is missing : ${b}`,"EE@310")}return b}function ib(a,b,c,d,e,g){e=A(d);return"EMPTY-ERROR"===a||"ER"===a?O(b)?h(`ELEMENT '${c}' is erroneously empty :`,"EE@311"):"":"EMPTY-OK"===a||"OK"===a||"EMPTY-IGNORE"===a||"IG"===a?M(d[c],a,g):"string"=== x(a)?h(`ELEMENT '${c}' is incorrect type, '${a}', only`+` [ER,EMPTY-ERROR,EMPTY-OK,OK,EMPTY-IGNORE,IG] allowed : ${e}`,"EE@312"):M(d[c],a,g)}function Eb(a,b,c,d){b=A(b);return h(`Param array ${a} does not have the same number of elems as ${b}. `+` Different lengths ${c} !== ${d}`,"ME@404")}function Fb(a,b,c){let d="";const e=q(b),g=a.length,f=b.length;if("undefined"===typeof a||0===g)d=h("Empty array has no types","EE@321");else if("EMPTY-VERIFY"===c&&g>f)d=h(`Array has more elements than types ${g} !== ${f}`, "EE@322");else if(1{"arrays"===n&&(k+=1)});1{g=ia(b, g,"EMPTY-VERIFY");""===g?e=!0:d=g});e||(a=d);return a}function nb(a){const [b,c]=a,d=[];let e=!1;c.forEach(g=>{g=Z(b,g,"TYPE-VERIFY");""===g?e=!0:d.push(g)});if(e)a="";else{a=d.shift();const g=d.pop();a=0===d.length?`${a}, ${g}`:1===d.length?`${a}, ${g}, plus 1 more Either error`:`${a}, ${g}, plus ${d.length} more Either errors`}return a}function ob(a){let b=a;a=a[0];Array.isArray(a)&&(b=a);b.forEach(c=>{if("object"===typeof c)Ka=c;else if("UNDEF-OK"===c)I=c;else if("HIDE-INIT-MESSAGE"===c)bb=c;else if("DEBUG-CONSOLE-TRACE"=== c)Da=c;else if("THROW-EXCEPTIONS"===c)da=c;else if("NO-ERROR-MESSAGES"===c)na=c;else if("LOG-ERRORS"===c)ea=c;else if("CONSOLE-COUNT"===c)la=c;else if("NO-CHECKING"!==c)if("DEBUG-ERROR-TAGS"===c)Ca=c;else if(""!==c)throw c=A(c),h(`Not THROW-EXCEPTIONS/LOG-ERRORS/UNDEF-OK/DEBUG-CONSOLE-TRACE/NO-CHECKING, unknown : ${c}`,"EX@107");});Y=!!(da||ea||na);return[da,ea,na,I,Da,la,Ca]}function ra(a,b,c){if(2!==a.length)var d=h(`${b}() has 2 argu-ments not ${a.length}`,"ME@401");else{const [g,f]=a,k=x(g),n= x(f);d=A(k);a="string"===typeof f?f:A(f);var e="";let w="",z="";"undefined"===typeof f?(w=`${b}() called with 1st param of ${d} and 2nd shape param of undefined`,z="TE@218"):null===f&&(w=`${b}() called with 1st param of ${d} and 2nd shape param of null`,z="TE@220");""!==w&&(e=h(w,z));d=e;""===d&&(e=q(g),"array"===k&&"array"!==n?(b=1 ${n}`,"TE@201")):"string"!==n&&(d=h(`${b}() called with 2nd param not a string such as 'number'.`+` Matching '${e}' with '${a}'.`+ ` Preferably try ${b}(12, 'number')`,"TE@224")))}return d}function La(a,b){var c="";if(2!==a.length)c=h(`${b}() needs 2 parameters, not ${a.length}`,"ME@406");else{a=a[1];const d=A(a);"array"!==x(a)?c=h(`${b}() called with a 2nd parameter`+` as a non - array shape of ${d}`,"ME@402"):2>a.length&&(c=q(a),c=h(`${b}() needs at least 2 choices for an Either, not ${a.length} of ${c}`,"UE@701"))}return c}function pb(a,b,c){let d=!1;c||Array.isArray(a)||Array.isArray(b)&&1===b.length&&(d=!0);return d}function aa(a, b){return ua(b)?`Used arguments object as first parameter to ${a}, this is unsafe, use parameters.`:""}function qb(a,b){return ua(b)?0===b.length?"There are no parameters.":"":`Used parameters as first parameter to ${a}, this is wrong, for variadics use arguments.`}function rb(a,b,c="checkParam_empty()"){if(y.p_call_traps){a=L(a);let d=aa(c,a);if(""===d){const [e,g,f]=E(a),k=q(e),n=q(b);d=ra([e,b],"checkParam_empty",g);if(pb(a,b,f))return[c,`VE@606 - Use checkArgs_emptyEach([${k}], ['${n}']') instead of checkParam_empty()`, b];""===d&&(d=ia(e,b,"EMPTY-VERIFY"))}D=[b,c];return d}}function sb(a,b,c="checkParam_type()"){if(y.p_call_traps){var d=H(a);if(void 0!==a&&null!==a&&!Ba.has(d))return"";a=L(a);d=aa(c,a);if(""===d){const [e,g,f]=E(a),k=q(e),n=q(b);d=ra([e,b],"checkParam_type",g);""===d&&(pb(a,b,f)&&(d=[c,`VE@605 - Use checkArgs_typeEach(${k}, ${n}) instead of checkParam_type()`,b]),""===d&&(d=Z(e,b,"TYPE-VERIFY")))}D=[b,c];return d}}function Ma(a,b){[a]=E(a);return ia(a,b,"EMPTY-EXTRAS")}function tb(a,b){[a]=E(a); return Z(a,b,"TYPE-EXTRAS")}function ba(a){if(160>a.length)var b=a;else b=a.substring(0,100),a=a.substring(a.length-50),b=`${b} ${"<<<~~~>>>"} ${a}`;return b}function ub(a,b){var c="";if(a!==b){c=0;for(var d=!1;a[c]===b[c];){if(c===a.length||c===b.length){d=!0;break}c+=1}const [g,f]=[c,d];var e=a.length;d=b.length;f?e>d?(c=0===d?"''":b,e=a.substring(g),b="''"):(c=0===e?"''":a,e="''",b=a.substring(g)):(c=0===g?"''":a.substring(0,g),e=0===e?"''":a.substring(g),b=0===d?"''":b.substring(g));a=e;c=ba(c); a=ba(a);b=ba(b);c=q(`${"\n\t\t"}START-SAME ~ ${c}`);a=q(`${"\n\t\t"} PRE-DIFF ~ ${a}`);b=q(`${"\n\t\t"} POST-DIFF ~ ${b}`);c=`${c}${a}${b}`}return c}function Na(a,b){if(!ka(b,"object"))return"not an object signature in _checkArray_objType = "+b;b=Array(a.length).fill(b);return sb(a,b,"checkArray_objType()")}function Oa(a,b){if(!ka(b,"object"))return"not an array in _checkArray_objEmpty";b=Array(a.length).fill(b);return rb(a,b,"checkArray_objEmpty()")}let D=["",""],y,Ka=!1,Y=!1,va=0;const Q={},ab= new WeakSet;let da=!1,na=!1,ea=!1,I=!1,la=!1,Ca=!1,Da=!1,bb=!1;const zb=/([^(]*\()([^)]*)/,Za={OK:"EMPTY-OK",ER:"EMPTY-ERROR",IG:"EMPTY-IGNORE"},Va="Array BigInt Boolean Date Function Number Object RegExp String Symbol".split(" "),Ya={array:"Array",bigint:"BigInt",boolean:"Boolean",date:"Date",function:"Function",number:"Number",object:"Object",regexp:"RegExp",string:"String",symbol:"Symbol"},ya="array bigint boolean date function number object regexp string symbol".split(" "),Ba=new Set(ya),sa={bBlink:a=> {document.body.style.background=a;setTimeout(()=>{document.body.style.background="white"},100)},onStart:()=>sa.bBlink("green"),onCheck:()=>sa.bBlink("blue"),onError:()=>sa.bBlink("red")},Ja=a=>"array"===a?!0:"object"===a?!0:"string"===a?!0:"regexp"===a?!0:"date"===a?!0:"number"===a,ta={decycle:function(a,b){var c=new WeakMap;return function f(e,g){void 0!==b&&(e=b(e));if(!("object"!==typeof e||null===e||e instanceof Boolean||e instanceof Date||e instanceof Number||e instanceof RegExp||e instanceof String)){var k=c.get(e);if(void 0!==k)return{$ref:k};c.set(e,g);if(Array.isArray(e)){var n=[];e.forEach(function(w,z){n[z]=f(w,g+"["+z+"]")})}else n={},Object.keys(e).forEach(function(w){n[w]=f(e[w],g+"["+JSON.stringify(w)+"]")});return n}return e}(a,"$")}},fb=(a,b,c,d)=>{var e="";d=q(d);"null"===a?e=h(` ELEMENT '${b}' type is 'null'`,"TE@204"):"undefined"===a?e=h(` ELEMENT '${b}' type is 'undefined'`,"TE@229"):"string"!==typeof a&&(e=q(a),e=h(` ELEMENT '${b}' type is not a valid string, like 'number', but instead ${e}`, "TE@232"));e||(e=T(a))||("null"===c||"undefined"===c?I||(e=h(` ELEMENT '${b}' is assumed to be a '${a}',`+` but is mistakenly a '${c}'`,"TE@237")):e=h(` ELEMENT '${b}' is assumed to be a '${a}',`+` but is mistakenly a '${c}' with a value of ${d}`,"TE@214"));return e},gb=(a,b,c)=>{let d="";a=a[b];if(Aa(a)){const e=x(c);a===e||I&&"null"===e||I&&"undefined"===e||("undefined"===typeof c?d=h(`Key '${b}' was given to be a '${a}' but is 'undefined'`,"TE@211"):"null"===e?d=h(`Key '${b}' was determined to be a '${a}' but is 'null'`, "TE@212"):(c=q(c),d=h(`Property '${b}' is indicated to be a '${a}',`+` but is inaccurately a '${e}' : ${c}`,"TE@213")))}else d=T(a),d||(b=A(a),d=h(`Type '${b}' is not a real type`,"TE@210"));return d},Ha=(a,b,c)=>{let d="";const e=x(a);"array"!==e?(a=q(a),d=h(`Variable ${a} must be an array but is instead a '${e}', : ${a}`,"EE@314")):a.forEach((g,f)=>{""===d&&(d=M(g,b[f],c))});return d},jb=(a,b,c)=>{var d=a.length;let e=Fb(a,b,c);if(""===e){const g=b.length,f=A(a);if("EMPTY-EXTRAS"!==c&&1{if(""===e){const P=x(w),K=Fa(k,z);B(K)?e=M(a[z],K,c):1!==n&&delete k[z];(w=ib(K,w,z,a,P,c))&&(e=w)}});1!==n&&"EMPTY-EXTRAS"!==c&&a.length!==n&&(e=hb(b,a))}}return e},vb=(a,b,c)=>{let d="";a=N(a);if("EMPTY-ERROR"===a){const e=x(b),g=Ja(e),f=A(b);g?O(b)&&(d=h(` key '${c}' is a '${e}' which is reputed `+`to be '${a}' but has a value of ${f}`, "EE@301")):d=h(`Type cannot be empty '${c}' ${a} is a ${f} :: ${e}`,"EE@302")}else"EMPTY-OK"!==a&&"EMPTY-IGNORE"!==a&&(b=`Bad empty type key, '${q(a)}', must be either 'EMPTY-OK','EMPTY-ER','EMPTY-IG','OK','ER','IG'`,d=h(b,"EE@303"));return d},kb=(a,b,c)=>{let d="";const e={...b};B(a)&&Object.entries(a).forEach(g=>{if(""===d){const [k,n]=g;g=A(n);var f=N(e[k]);B(n)?(f=N(b[k]),d=O(n)&&"EMPTY-ERROR"===f?h(`Key '${k}' was understood to be '${f}' but was rather '${g}'`,"EE@309"):d+M(a[k],f,c),delete e[k]): Object.prototype.hasOwnProperty.call(e,k)?(d=vb(f,n,k),delete e[k]):"EMPTY-VERIFY"===c&&("string"===x(n)&&(g=`'${g}'`),d=h(`Extra key in checked object - (${k}:${g})`,"EE@315"))}});""===d&&(d=Ea(e));return d};ob(ca);y=Ka?Ga(Ka):Ga(!1);return{_ParametersCheck:Ga,_anObjectsType:Wa,_arrayOfOneShape:(a,b,c)=>{let d="";const e=N(b);Array.isArray(a)||(a=[a]);a.forEach((g,f)=>{if(""===d){const k=O(g);B(e)?d=M(g,e,c):!k||"EMPTY-ERROR"!==e||I&&"null"===k||I&&"undefined"===k||(g=q(g),d=h(`ELEMENT '${f}' is asserted to be a '${e}',`+ ` but is really 'EMPTY' : ${g}`,"EE@306"))}});return d},_arrayOfOneType:(a,b,c)=>{let d="";Array.isArray(a)||(a=[a]);a.forEach((e,g)=>{if(""===d){const f=x(e);if(B(b))d=Z(e,b,c);else if(!(b===f||I&&"null"===f||I&&"undefined"===f)){let k=T(b);k||(e=q(e),k=h(`ELEMENT '${g}' is asserted to be a '${b}',`+` but is fallaciously a '${f}' : ${e}`,"TE@215"));d=k}}});return d},_aTypeOf:x,_canBeEmpty:Ja,_checkArray_objType:Na,_checkArray_objEmpty:Oa,_className:wa,_collectionToStr:Ra,_coloredConsole:S,_consoleError:h, _doEitherEmpty:mb,_doEitherShape:nb,_doubleToSingleQuotes:Qa,_eitherChecks:La,_emptyArrayInArray:Ha,_emptyArrayTypes:jb,_emptyCheck:ia,_emptyCollectionTypes:kb,_emptyContainer:M,_emptyError:ib,_emptyErrorMess:hb,_emptyKeysChecked:vb,_emptyScalar:Ia,_emptyVariable:lb,_errorClassName:cb,_functionName:Ua,_getParameters:E,_isAClass:Ta,_isArgumentsObject:ua,_isBuiltInClass:xa,_isCollection:B,_isEmpty:O,_isScalar:function(a){return!B(a)},_isaTypeOf:ja,_isPlainJsType:Aa,_jsonStr:A,_looksLikeType:T,_missingKey:Ea, _mutateStacks:function(){return ha(Q)},_refDiff:ub,_shapeArrayTypes:pa,_shapeCollectionTypes:eb,_shapeContainer:oa,_shapeErrorMess:db,_shapePropertyType:gb,_shapeScalar:qa,_shapeVariable:Z,_shortToLongEmpty:N,_shrinkDiffs:ba,_specParameters:ob,_stringifyReplacer:Sa,_toStr:q,_twoArrays:ra,_typeFromArray:Fa,_wrongType:fb,_cycle_loops:ta,_fast_json_stable_stringify:ha,TYPE_CHECK_NOP:{linkUp:a=>a,isActive:a=>!1,isPruned:a=>!1,_from:"type-czech-import-dev"},TYPE_CZECH_EVENTS:sa,check_assert:function(a, b="",c="",d=""){return y.p_call_traps&&a?y.check_assert_(a,b,c,d):""},check_buildSnapshot:function(a,b,c){if(y.p_call_traps){var d=arguments.length;if(3!==d)throw y.newFail(),h(`check_buildSnapshot() needs 3 params, not ${d}`,"EX@108");if(B(c)){if("string"!==typeof a)throw y.newFail(),d=`1st check_buildSnapshot() param must be un-empty string, not ${q(a)}`,h(d,"EX@110");if("string"!==typeof b)throw y.newFail(),d=`2nd check_buildSnapshot() param must be un-empty string, not ${q(b)}`,h(d,"EX@111"); }else throw y.newFail(),d=x(c),h(`check_buildSnapshot()'s 3rd param not array/object but a '${d}'`,"EX@109");d=`${a}-${b}`;var e=ta.decycle(c);e=ha(e);e={func_name:a,var_name:b,collection_ref:c,pre_collect_str:e};Q[d]?Q[d].push(e):Q[d]=[e];D=[b,"check_buildSnapshot()"];return""}},check_interface:function(a,b){if(y.p_call_traps){const [g]=E(a);var c=x(b),d="";if(ka(g,"Object"))if("object"!==c)d=h("Signature is not an object.","IE@504");else if(0===Object.keys(b).length)d=h("Signature is empty object.", "IE@503");else{a=q(a);c=q(b);for(const f in b)if(!d){var e=b[f];const k=g[f],n=x(k);"undefined"===typeof k?d=h(`Interface, ${c}, has extra key '${f}' that is in not in checked object of ${a}`,"IE@501"):"object"===n?d=h(`Try checkParam_type('${a}', '${c}') for nested objects`,"IE@506"):e!==n&&(d=q(k),e=q(e),d=h(`Actual type of '${f}' is '${n}', with a value `+`of '${d}', not the expected '${e}' type`,"IE@502"))}}else d=h("Function argument is not an object.","IE@505");D=[b,"check_interface()"];return d}}, check_mutatedSnapshot:function(a,b){if(y.p_call_traps){var c=q(a),d=q(b),e=`${c}-${d}`,g="",f=Q[e];const k=arguments.length;if(2!==k)throw y.newFail(),h(`check_mutatedSnapshot() needs 2 param, not ${k}`,"EX@112");if(f){e=Q[e].pop();if("undefined"===typeof e)throw y.newFail(),h(`check_mutatedSnapshot() has no matching entry for check_buildSnapshot('${c}', '${d}', a_var)`,"EX@114");const {collection_ref:n,pre_collect_str:w}=e;c=ta.decycle(n);c=ha(c);w!==c&&(e=q(w),d=q(c),g=`Variable '${b}' changed`, e=ba(e),f=ba(d),d=`${"\n\t\t"}from ${e}`,e=`${"\n\t\t"} to ${f} ${"\n\t\t"}`,c=ub(w,c),g=h(`${g}${d}${e}${c}`,"ME@405"))}else throw y.newFail(),h(`No record of check_mutatedSnapshot('${c}', '${d}', a_var)`,"EX@113");c=ta.decycle(Q);ha(c);D=[b,"check_mutatedSnapshot()"];return g}},checkArgs_emptyEach:function(a,b){if(y.p_call_traps){var c=qb("checkArgs_emptyEach()",a);"EMPTY-ERROR"!==b&&"ER"!==b&&(c=q(b),c=h(`Not allowed, ${c}, the only signature allowed with checkArgs_emptyEach() is 'EMPTY-ERROR' or 'ER'`, "VE@607"));if(""===c){let [d,,e]=E(a);e&&(d=[d]);a=Array(d.length).fill(b);c=ia(d,a,"EMPTY-VERIFY")}D=[b,"checkArgs_emptyEach()"];return c}},checkArgs_typeEach:function(a,b){if(y.p_call_traps){var c=qb("checkArgs_typeEach()",a);if(Array.isArray(b)||"string"===typeof b&&b.startsWith("array"))c=q(b),c=h(`Signature ${c} is too complicated, try manually iterating over array and check each element with checkParams()`,"VE@608");if(""===c){let [d,e,g]=E(a);const f=Array.isArray(d);let k=!1;"string"===typeof b&& (k=b.endsWith("s"));a=q(d);let n=b;g?(f?(k||(c=h(`Should be checkArgs_typeEach(arguments, '${n}s'), plural for ${a}`,"VE@601")),n=[n.substring(0,n.length-1)]):k&&(c=n.substring(0,n.length-1),c=h(`Should be checkArgs_typeEach(arguments, '${c}'), singular for ${a}`,"VE@602")),d=[d]):Array.isArray(d[0])?k||(c=h(`Should be checkArgs_typeEach(arguments, '${n}s'), multiple for ${a}`,"VE@603")):k&&(c=n.substring(0,n.length-1),c=h(`Should be checkArgs_typeEach(arguments, '${c}'), not plural for ${a}`,"VE@604")); ""===c&&(a=Array(d.length).fill(n),c=ra([d,a],"checkArgs_typeEach",e),""===c?c=Z(d,a,"TYPE-VERIFY"):c.endsWith("There are no params to match array signature.")&&(c=""))}D=[b,"checkArgs_typeEach()"];return c}},checkParam_empty:rb,checkParam_emptyEither:function(a,b){if(y.p_call_traps){var c=L(a);a=aa("checkParam_emptyEither()",c);""===a&&([c]=E(c),a=La([c,b],"checkParam_emptyEither"),""===a&&(a=mb([c,b])));D=[b,"checkParam_emptyEither()"];return a}},checkParam_emptyExtra:function(a,b){if(y.p_call_traps){var c= L(a);a=aa("checkParam_emptyExtra()",c);if(""===a){var d=B(c);const g=B(b),f=q(b);var [e]=E(c);e=q(e);d&&g?a="string"===H(b)?Ma(c[0],b):"object"===H(b)?Ma(c,b):c.lengthca,isActive:ca=>!1,isPruned:ca=>!1,_from:"type-czech-import-dev"};return R.type_czech}})(the_exports); type_czech = TypeCzech('THROW-EXCEPTIONS') var indent_start = "---------------------------------" var indent_tc = NL+indent_start function PRE_A_one_name() { log(indent_tc + 'PRE_A_one_name()') } function POST_A_one_name() { log(indent_tc + 'POST_A_one_name()') } function PRE_a_method() { log(indent_tc + 'PRE PRE_a_method()') } function POST_a_method() { log(indent_tc + 'POST_a_method()') } function LINKUP_A_one_name_before_extend(){ const A_PREs = { A_one_name: PRE_A_one_name, a_method: PRE_a_method } const A_POSTs = { A_one_name: POST_A_one_name, a_method: POST_a_method } A_one_name = type_czech.linkUp(A_one_name, A_PREs, A_POSTs) } function PRE_B_first_last() { log(indent_tc + 'PRE_B_first_last()') } function POST_B_first_last() { log(indent_tc + 'POST_B_first_last()') } function PRE_b_function() { log(indent_tc + 'PRE_b_function()') } function POST_b_function() { log(indent_tc + 'POST_b_function()') } function LINKUP_B_first_last_before_extend(){ const B_PREs = { B_first_last: PRE_B_first_last, b_function: PRE_b_function } const B_POSTs = { B_first_last: POST_B_first_last, b_function: POST_b_function } B_first_last = type_czech.linkUp(B_first_last, B_PREs, B_POSTs) } function PRE_C_complete_names() { log(indent_start + 'PRE_C_complete_names()') } function POST_C_complete_names() { log(indent_tc + 'POST_C_complete_names()') } function PRE_c_routine() { log(indent_tc + 'PRE_c_routine()') } function POST_c_routine() { log(indent_tc + 'POST_c_routine') } function LINKUP_C_complete_names_before_extend(){ const C_PREs = { C_complete_names: PRE_C_complete_names, c_routine: PRE_c_routine } const C_POSTs = { C_complete_names: POST_C_complete_names, c_routine: POST_c_routine } C_complete_names = type_czech.linkUp(C_complete_names, C_PREs, C_POSTs) }