pepka 1.0.0-beta.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bundle.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const e=Symbol("Placeholder"),r=r=>{let t=0;for(const s of r)s!==e&&t++;return t},t=(r,t)=>{const s=r.length,o=r.slice(),p=t.length;let n=p,x=0;for(;n&&x<s;x++)o[x]===e&&(o[x]=t[p-n],n--);for(x=s;n;x++,n--)o[x]=t[p-n];return o},s=(e,o,p)=>{const n=e.length-o.length-r(p);if(n<1)return e(...t(o,p));{const r=(...r)=>s(e,t(o,p),r);return r.$args_left=n,r}},o=e=>(...t)=>e.length>r(t)?s(e,[],t):e(...t),p=r=>function(t){return t===e?r:r(t)};function n(r){return function(t,s){const o=t===e,n=arguments.length;if(1===n&&o)throw new Error("Senseless placeholder usage.");return arguments.length>1?o?p((e=>r(e,s))):r(t,s):e=>r(t,e)}}function x(e){return o(e)}const c=void 0,a=1/0,l=e=>typeof e,i=e=>null===e,u=e=>"number"==l(e),f=e=>Array.isArray(e),h=e=>"function"===l(e),m=e=>!i(e)&&"object"===l(e),d={u:"U",b:"B",n:"N",s:"S",f:"F"},y=e=>{const r=l(e);return"object"===r?i(e)?"Null":e.constructor.name:d[r[0]]+r.slice(1)},g=n(((e,r)=>y(r)===e)),b=e=>(...r)=>r[e],w=n(((e,r)=>e===r)),q=n(((e,r)=>e==r)),j=n(((e,r)=>{const t=y(e);if(w(t,y(r))&&(w(t,"Object")||w(t,"Array"))){if(i(e)||i(r))return w(e,r);if(w(e,r))return!0;for(const t of[e,r])for(const s in t)if(!(w(t,r)&&s in e||w(t,e)&&s in r&&j(e[s],r[s])))return!1;return!0}return w(e,r)})),O=o(((e,r,t,s)=>e(s)?r(s):t(s))),A=x(((e,r,t)=>O(e,r,M,t))),S=(...r)=>(...t)=>{let s,o=!0;for(let p=H(r)-1;p>-1;p--)o?(o=!1,s=r[p](...t)):s=s===e?r[p]():r[p](s);return s},E=n(((e,r)=>e.bind(r))),k=n(((e,r)=>r[e])),z=n(((e,r)=>{if((e=>"string"===l(e))(r))return r.includes(e);for(const t of r)if(j(t,e))return!0;return!1})),P=x(((e,r,t)=>t.slice(e,u(r)?r:a))),v=e=>n(((r,t)=>e(t,r))),D=k(0),N=P(1,a),B=n(((e,r)=>e+r)),T=n(((e,r)=>r-e)),_=n(((e,r)=>e*r)),C=n(((e,r)=>e>r)),F=n(((e,r)=>e<r)),I=n(((e,r)=>r>=e)),U=n(((e,r)=>r<=e)),$=n(((e,r)=>r.sort(e))),K=n(((e,r)=>r.find(e))),L=n(((e,r)=>r.findIndex(e))),W=n(((e,r)=>L(j(e),r))),X=n(((e,r)=>e/r)),G=e=>i(e)||(e=>e===c)(e),H=e=>e.length,J=e=>()=>e,M=e=>e,Q=e=>!e,R=n(((e,r)=>e.test(r))),V=n(((e,r)=>(e(r),r))),Y=n(((e,r)=>[...r,e])),Z=n(((e,r)=>[...r,e])),ee=n(((e,r)=>r.flat(e))),re=n(((e,r)=>r.split(e))),te=J(!0),se=J(!1),oe=n(((e,r)=>r(...e))),pe=o(((e,r,t)=>t[r](...e))),ne=e=>(...r)=>{const t=e(...r),s=h(t);return!s||s&&t.$args_left<=0?Q(t):ne(t)},xe=n(((e,r)=>ae(B(e),r-e))),ce=n(((e,r)=>e.filter(v(z)(r)))),ae=n(((e,r)=>[...Array(r)].map(((r,t)=>e(t))))),le=n(((e,r)=>{for(const[t,s]of e)if(t(r))return s(r)})),ie=x(((e,r,t)=>({...t,[e]:r}))),ue=x(((e,r,t)=>S((s=>ie(s,H(e)<2?r:ue(P(1,a,e),r,m(t[s])?t[s]:{}),t)),D)(e))),fe=n(((e,r)=>r.every(e))),he=n(((e,r)=>r.some(e))),me=n(((e,r)=>e.every((e=>e(r))))),de=n(((e,r)=>e.some((e=>e(r))))),ye=n(((e,r)=>r[e])),ge=x(((e,r,t)=>j(t[e],r))),be=x(((e,r,t)=>j(r[e],t[e]))),we=x(((e,r,t)=>O(H,(()=>G(t)?e:S(O(G,J(e),(t=>we(e,P(1,a,r),t))),v(ye)(t),D)(r)),J(t),r))),qe=we(c),je=x(((e,r,t)=>j(qe(e,t),r))),Oe=x(((e,r,t)=>j(qe(e,r),qe(e,t)))),Ae=/^(.*?)(8|16|32|64)(Clamped)?Array$/,Se=(e,r=!1)=>{const t=y(e);switch(t){case"Null":case"String":case"Number":case"Boolean":case"Symbol":return e;case"Array":return r?[...e]:Ne(S(Se,b(0)),e);case"Object":if(r)return{...e};const s={};for(let r in e)s[r]=Se(e[r]);return s;default:return Ae.test(t)?e.constructor.from(e):e}},Ee=x(((e,r,t)=>or(e,Se(r),t))),ke=n(((e,r)=>Ce(e,r))),ze=n(((e,r)=>{const t={};for(const s of e)s in r&&(t[s]=r[s]);return t})),Pe=n(((e,r)=>Ce(((r,t)=>!z(t,e)),r))),ve=n(((e,r)=>r.concat(e))),De=n(((e,r)=>r.join(e))),Ne=n(((e,r)=>r.map(e))),Be=n(((e,r)=>r.forEach(e))),Te=x(((e,r,t)=>r(t)&&e(t))),_e=x(((e,r,t)=>t.replace(e,r))),Ce=n(((e,r)=>f(r)?r.filter(e):ur(e,{...r}))),Fe=n(((e,r)=>Object.assign({},e,r))),Ie=n(((e,r)=>nr(Se(e),Se(r)))),Ue=n(((e,r)=>xr(Se(e),Se(r)))),$e=n(((e,r)=>cr(Se(e),Se(r)))),Ke=x(((e,r,t)=>ie(e,r(t[e]),t))),Le=n(((e,r)=>lr(e,Object.assign({},r)))),We=n(((e,r)=>Ne(((e,t)=>[e,r[t]]),e))),Xe=n(((e,r)=>Ee(((e,t,s)=>ie(t,r[s],e)),{},e))),Ge=x(((e,r,t)=>Ne(((r,s)=>e(r,t[s])),r))),He=(()=>{const e=async(r,t,s)=>{s<t.length&&(await r(t[s]),await e(r,t,++s))};return n(((r,t)=>e(r,t,0)))})(),Je=n((async(e,r)=>(await e(r),r))),Me=n(((e,r)=>Promise.all(r.map(e)))),Qe=(()=>{const e=async(r,t,s)=>~s?await e(r,[await r[s](...t)],--s):D(t);return(...r)=>(...t)=>e(r,t,r.length-1)})(),Re=M,Ve=M,Ye=M,Ze=ne,er=Y,rr=he,tr=n(((e,r)=>(r.push(e),r))),sr=x(((e,r,t)=>(t[e]=r,t))),or=x(((e,r,t)=>t.reduce(e,r))),pr=x(((e,r,t)=>{for(let s in t)switch(y(t[s])){case"Array":if(e>1&&"Array"===y(r[s]))switch(e){case 2:const o=r[s],p=t[s];for(const r in p)o[r]?pr(e,o[r],p[r]):o[r]=p[r];break;case 3:r[s].push(...t[s])}else r[s]=t[s];break;case"Object":if("Object"===y(r[s])){pr(e,r[s],t[s]);break}default:r[s]=t[s]}return r})),nr=pr(1),xr=pr(2),cr=pr(3),ar=n(((e,r)=>Object.assign(e,r))),lr=n(((e,r)=>{let t,s,o,p;for(t in e)t in r&&(s=e[t],[o,p]=h(s)?s(r[t],t,r):[s,r[t]],r[G(o)?t:o]=p,t!==o&&delete r[t]);return r})),ir=n(((e,r)=>{for(let t in r)r[t]=e(r[t],+t,r);return r})),ur=n(((e,r)=>{const t=f(r);let s,o;t&&(s=0,o=[]);for(let s in r)e(r[s],s)||(t?o.push(+s):delete r[s]);if(t)for(const e of o)r.splice(e-s++,1);return r})),fr=e=>{let r;for(const t in e)r=e[t],m(r)&&fr(r);return Object.freeze(e)},hr=e=>Object.freeze(e),mr=n(((e,r)=>r.unshift(e))),dr=x(((e,r,t)=>{const s=e[0];return sr(s,e.length<2?r:dr(e.slice(1),r,m(t[s])?t[s]:{}),t)}));exports.F=se,exports.T=te,exports.__=e,exports.add=B,exports.all=fe,exports.allPass=me,exports.always=J,exports.any=he,exports.anyPass=de,exports.append=Y,exports.assoc=ie,exports.assocPath=ue,exports.bind=E,exports.both=Te,exports.callFrom=pe,exports.callWith=oe,exports.clone=Se,exports.cloneShallow=e=>Se(e,!0),exports.complement=ne,exports.compose=S,exports.composeAsync=Qe,exports.concat=ve,exports.cond=le,exports.curry=o,exports.curry2=n,exports.curry3=x,exports.divide=X,exports.echo=Ye,exports.empty=e=>{switch(y(e)){case"String":return"";case"Object":return{};case"Array":return[];default:return c}},exports.eq=w,exports.equals=j,exports.explore=(e,r="log")=>V((t=>console[r](e,t))),exports.filter=Ce,exports.find=K,exports.findIndex=L,exports.flat=e=>e.flat(a),exports.flatShallow=e=>e.flat(),exports.flatTo=ee,exports.flip=v,exports.forEach=Be,exports.forEachAsync=Me,exports.forEachSerial=He,exports.freeze=e=>fr(Se(e)),exports.freezeShallow=e=>hr(Se(e)),exports.fromPairs=e=>Object.fromEntries(e),exports.genBy=ae,exports.getTmpl=e=>{const r=[],t=[],s=e.length;let o,p,n,x=0,c=0,a=!1,l=D(e),i=!1;for(x=0;x<s;x++)switch(o=e[x],o){case"{":if(!l){a=!0,c=x;break}case"}":if(!l){a=!1,r.push(""),t.push(e.slice(c+1,x));break}default:n=e[x+1],i="\\"===o,a||i&&("{"===n||"}"===n)||(p=r.length-1,p<0&&(r.push(""),p++),r[p]+=o),l=i}return e=>{const s=[],o=r.length-1;for(const p in r)x=+p,s.push(r[x]),x!==o&&s.push(qe(t[x].split("."),e));return s.join("")}},exports.gt=C,exports.gte=I,exports.head=D,exports.identity=M,exports.ifElse=O,exports.includes=z,exports.indexOf=W,exports.intersection=ce,exports.isEmpty=e=>{switch(y(e)){case"String":case"Array":return 0==H(e);case"Object":for(const r in e)return!1;return!0;default:return null}},exports.isNil=G,exports.join=De,exports.keys=e=>Object.keys(e),exports.last=e=>e[H(e)-1],exports.length=H,exports.lt=F,exports.lte=U,exports.map=Ne,exports.mapKeys=Le,exports.memoize=e=>{let r,t=!1;return()=>t?r:(t=!0,r=e())},exports.mergeDeep=Ie,exports.mergeDeepAdd=$e,exports.mergeDeepX=Ue,exports.mergeShallow=Fe,exports.mirror=Re,exports.multiply=_,exports.noop=()=>{},exports.not=Q,exports.notf=Ze,exports.nth=k,exports.omit=Pe,exports.once=e=>{let r,t=!1;return(...s)=>t?r:(t=!0,r=e(...s))},exports.overProp=Ke,exports.path=qe,exports.pathEq=je,exports.pathOr=we,exports.pathsEq=Oe,exports.pick=ze,exports.pickBy=ke,exports.prepend=Z,exports.prop=ye,exports.propEq=ge,exports.propsEq=be,exports.push=er,exports.qappend=tr,exports.qassoc=sr,exports.qassocPath=dr,exports.qempty=e=>{if(f(e))e.splice(0);else for(const r in e)delete e[r];return e},exports.qfilter=ur,exports.qfreeze=fr,exports.qfreezeShallow=hr,exports.qmap=ir,exports.qmapKeys=lr,exports.qmergeDeep=nr,exports.qmergeDeepAdd=cr,exports.qmergeDeepX=xr,exports.qmergeShallow=ar,exports.qprepend=mr,exports.qreduce=or,exports.range=xe,exports.reduce=Ee,exports.reflect=Ve,exports.replace=_e,exports.reverse=e=>S((r=>Ee(((t,s,o)=>tr(e[r-o],t)),[],e)),B(-1),H)(e),exports.sizeof=e=>{if("Object"===y(e)){let r=0;for(let t in e)r++;return r}return H(e)},exports.slice=P,exports.some=rr,exports.sort=$,exports.split=re,exports.subtract=T,exports.tail=N,exports.take=b,exports.tap=V,exports.test=R,exports.toLower=e=>e.toLowerCase(),exports.toPairs=e=>Object.entries(e),exports.toUpper=e=>e.toUpperCase(),exports.trim=e=>e.trim(),exports.type=y,exports.typeIs=g,exports.uncurry=e=>(...r)=>or(((e,r)=>e?e(r):e),e,r),exports.uniq=e=>or(((e,r)=>z(r,e)?e:tr(r,e)),[],e),exports.values=e=>Object.values(e),exports.waitAll=e=>Promise.all(e),exports.waitTap=Je,exports.weakEq=q,exports.when=A,exports.zip=We,exports.zipObj=Xe,exports.zipWith=Ge;
1
+ "use strict";const e=Symbol("Placeholder"),r=r=>{let t=0;for(const s of r)s!==e&&t++;return t},t=(r,t)=>{const s=r.length,o=r.slice(),p=t.length;let n=p,x=0;for(;n&&x<s;x++)o[x]===e&&(o[x]=t[p-n],n--);for(x=s;n;x++,n--)o[x]=t[p-n];return o},s=(e,o,p)=>{const n=e.length-o.length-r(p);if(n<1)return e(...t(o,p));{const r=(...r)=>s(e,t(o,p),r);return r.$args_left=n,r}},o=e=>(...t)=>e.length>r(t)?s(e,[],t):e(...t);function p(r){return function(t,s){const o=t===e;if(1===arguments.length&&o)throw new Error("Senseless placeholder usage.");return arguments.length>1?o?(r=>function(t){return t===e?r:r(t)})((e=>r(e,s))):r(t,s):e=>r(t,e)}}function n(e){return o(e)}const x=void 0,c=1/0,a=e=>typeof e,l=e=>null===e,i=e=>"number"==a(e),u=e=>Array.isArray(e),f=e=>"function"===a(e),h=e=>!l(e)&&"object"===a(e),m={u:"U",b:"B",n:"N",s:"S",f:"F"},y=Symbol(),d=e=>{const r=a(e);return"object"===r?l(e)?"Null":e.constructor.name:m[r[0]]+r.slice(1)},g=p(((e,r)=>d(r)===e)),b=e=>(...r)=>r[e],w=p(((e,r)=>e===r)),q=p(((e,r)=>e==r)),j=p(((e,r)=>{const t=d(e);if(w(t,d(r))&&(w(t,"Object")||w(t,"Array"))){if(l(e)||l(r))return w(e,r);if(w(e,r))return!0;for(const t of[e,r])for(const s in t)if(!(w(t,r)&&s in e||w(t,e)&&s in r&&j(e[s],r[s])))return!1;return!0}return w(e,r)})),O=o(((e,r,t,s)=>e(s)?r(s):t(s))),A=n(((e,r,t)=>O(e,r,M,t))),S=(...r)=>(...t)=>{let s,o=!0;for(let p=H(r)-1;p>-1;p--)o?(o=!1,s=r[p](...t)):s=s===e?r[p]():r[p](s);return s},E=p(((e,r)=>e.bind(r))),k=p(((e,r)=>r[e])),z=p(((e,r)=>{if((e=>"string"===a(e))(r))return r.includes(e);for(const t of r)if(j(t,e))return!0;return!1})),v=n(((e,r,t)=>t.slice(e,i(r)?r:c))),P=e=>p(((r,t)=>e(t,r))),D=k(0),N=v(1,c),B=p(((e,r)=>e+r)),T=p(((e,r)=>r-e)),_=p(((e,r)=>e*r)),C=p(((e,r)=>e>r)),F=p(((e,r)=>e<r)),I=p(((e,r)=>r>=e)),U=p(((e,r)=>r<=e)),$=p(((e,r)=>r.sort(e))),K=p(((e,r)=>r.find(e))),L=p(((e,r)=>r.findIndex(e))),W=p(((e,r)=>L(j(e),r))),X=p(((e,r)=>e/r)),G=e=>l(e)||(e=>e===x)(e),H=e=>e.length,J=e=>()=>e,M=e=>e,Q=e=>!e,R=p(((e,r)=>e.test(r))),V=p(((e,r)=>(e(r),r))),Y=p(((e,r)=>[...r,e])),Z=p(((e,r)=>[...r,e])),ee=p(((e,r)=>r.flat(e))),re=p(((e,r)=>r.split(e))),te=J(!0),se=J(!1),oe=p(((e,r)=>r(...e))),pe=o(((e,r,t)=>t[r](...e))),ne=e=>(...r)=>{const t=e(...r),s=f(t);return!s||s&&t.$args_left<=0?Q(t):ne(t)},xe=p(((e,r)=>ae(B(e),r-e))),ce=p(((e,r)=>e.filter(P(z)(r)))),ae=p(((e,r)=>[...Array(r)].map(((r,t)=>e(t))))),le=p(((e,r)=>{for(const[t,s]of e)if(t(r))return s(r)})),ie=n(((e,r,t)=>({...t,[e]:r}))),ue=n(((e,r,t)=>S((s=>ie(s,H(e)<2?r:ue(v(1,c,e),r,h(t[s])?t[s]:{}),t)),D)(e))),fe=p(((e,r)=>r.every(e))),he=p(((e,r)=>r.some(e))),me=p(((e,r)=>e.every((e=>e(r))))),ye=p(((e,r)=>e.some((e=>e(r))))),de=p(((e,r)=>r[e])),ge=n(((e,r,t)=>j(t[e],r))),be=n(((e,r,t)=>j(r[e],t[e]))),we=n(((e,r,t)=>H(r)?G(t)?e:S((s=>s in t?we(e,v(1,c,r),t[s]):e),D)(r):t)),qe=we(x),je=n(((e,r,t)=>j(qe(e,t),r))),Oe=n(((e,r,t)=>j(qe(e,r),qe(e,t)))),Ae=S(O(j(y),se,te),we(y)),Se=/^(.*?)(8|16|32|64)(Clamped)?Array$/,Ee=(e,r=!1)=>{const t=d(e);switch(t){case"Null":case"String":case"Number":case"Boolean":case"Symbol":return e;case"Array":return r?[...e]:Be(S(Ee,b(0)),e);case"Object":if(r)return{...e};const s={};for(let r in e)s[r]=Ee(e[r]);return s;default:return Se.test(t)?e.constructor.from(e):e}},ke=n(((e,r,t)=>pr(e,Ee(r),t))),ze=p(((e,r)=>Fe(e,r))),ve=p(((e,r)=>{const t={};for(const s of e)s in r&&(t[s]=r[s]);return t})),Pe=p(((e,r)=>Fe(((r,t)=>!z(t,e)),r))),De=p(((e,r)=>r.concat(e))),Ne=p(((e,r)=>r.join(e))),Be=p(((e,r)=>r.map(e))),Te=p(((e,r)=>r.forEach(e))),_e=n(((e,r,t)=>r(t)&&e(t))),Ce=n(((e,r,t)=>t.replace(e,r))),Fe=p(((e,r)=>u(r)?r.filter(e):fr(e,{...r}))),Ie=p(((e,r)=>Object.assign({},e,r))),Ue=p(((e,r)=>xr(Ee(e),Ee(r)))),$e=p(((e,r)=>cr(Ee(e),Ee(r)))),Ke=p(((e,r)=>ar(Ee(e),Ee(r)))),Le=n(((e,r,t)=>ie(e,r(t[e]),t))),We=p(((e,r)=>ir(e,Object.assign({},r)))),Xe=p(((e,r)=>Be(((e,t)=>[e,r[t]]),e))),Ge=p(((e,r)=>ke(((e,t,s)=>ie(t,r[s],e)),{},e))),He=n(((e,r,t)=>Be(((r,s)=>e(r,t[s])),r))),Je=(()=>{const e=async(r,t,s)=>{s<t.length&&(await r(t[s]),await e(r,t,++s))};return p(((r,t)=>e(r,t,0)))})(),Me=p((async(e,r)=>(await e(r),r))),Qe=p(((e,r)=>Promise.all(r.map(e)))),Re=(()=>{const e=async(r,t,s)=>~s?await e(r,[await r[s](...t)],--s):D(t);return(...r)=>(...t)=>e(r,t,r.length-1)})(),Ve=M,Ye=M,Ze=M,er=ne,rr=Y,tr=he,sr=p(((e,r)=>(r.push(e),r))),or=n(((e,r,t)=>(t[e]=r,t))),pr=n(((e,r,t)=>t.reduce(e,r))),nr=n(((e,r,t)=>{for(let s in t)switch(d(t[s])){case"Array":if(e>1&&"Array"===d(r[s]))switch(e){case 2:const o=r[s],p=t[s];for(const r in p)o[r]?nr(e,o[r],p[r]):o[r]=p[r];break;case 3:r[s].push(...t[s])}else r[s]=t[s];break;case"Object":if("Object"===d(r[s])){nr(e,r[s],t[s]);break}default:r[s]=t[s]}return r})),xr=nr(1),cr=nr(2),ar=nr(3),lr=p(((e,r)=>Object.assign(e,r))),ir=p(((e,r)=>{let t,s,o,p;for(t in e)t in r&&(s=e[t],[o,p]=f(s)?s(r[t],t,r):[s,r[t]],r[G(o)?t:o]=p,t!==o&&delete r[t]);return r})),ur=p(((e,r)=>{for(let t in r)r[t]=e(r[t],+t,r);return r})),fr=p(((e,r)=>{const t=u(r);let s,o;t&&(s=0,o=[]);for(let s in r)e(r[s],s)||(t?o.push(+s):delete r[s]);if(t)for(const e of o)r.splice(e-s++,1);return r})),hr=e=>{let r;for(const t in e)r=e[t],h(r)&&hr(r);return Object.freeze(e)},mr=e=>Object.freeze(e),yr=p(((e,r)=>r.unshift(e))),dr=n(((e,r,t)=>{const s=e[0];return or(s,e.length<2?r:dr(e.slice(1),r,h(t[s])?t[s]:{}),t)})),gr=p(((e,r)=>fr(((r,t)=>!z(t,e)),r)));exports.F=se,exports.T=te,exports.__=e,exports.add=B,exports.all=fe,exports.allPass=me,exports.always=J,exports.any=he,exports.anyPass=ye,exports.append=Y,exports.assoc=ie,exports.assocPath=ue,exports.bind=E,exports.both=_e,exports.callFrom=pe,exports.callWith=oe,exports.clone=Ee,exports.cloneShallow=e=>Ee(e,!0),exports.complement=ne,exports.compose=S,exports.composeAsync=Re,exports.concat=De,exports.cond=le,exports.curry=o,exports.curry2=p,exports.curry3=n,exports.divide=X,exports.echo=Ze,exports.empty=e=>{switch(d(e)){case"String":return"";case"Object":return{};case"Array":return[];default:return x}},exports.eq=w,exports.equals=j,exports.explore=(e,r="log")=>V((t=>console[r](e,t))),exports.filter=Fe,exports.find=K,exports.findIndex=L,exports.flat=e=>e.flat(c),exports.flatShallow=e=>e.flat(),exports.flatTo=ee,exports.flip=P,exports.forEach=Te,exports.forEachAsync=Qe,exports.forEachSerial=Je,exports.freeze=e=>hr(Ee(e)),exports.freezeShallow=e=>mr(Ee(e)),exports.fromPairs=e=>Object.fromEntries(e),exports.genBy=ae,exports.getTmpl=e=>{const r=[],t=[],s=e.length;let o,p,n,x=0,c=0,a=!1,l=D(e),i=!1;for(x=0;x<s;x++)switch(o=e[x],o){case"{":if(!l){a=!0,c=x;break}case"}":if(!l){a=!1,r.push(""),t.push(e.slice(c+1,x));break}default:n=e[x+1],i="\\"===o,a||i&&("{"===n||"}"===n)||(p=r.length-1,p<0&&(r.push(""),p++),r[p]+=o),l=i}return e=>{const s=[],o=r.length-1;for(const p in r)x=+p,s.push(r[x]),x!==o&&s.push(qe(t[x].split("."),e));return s.join("")}},exports.gt=C,exports.gte=I,exports.head=D,exports.identity=M,exports.ifElse=O,exports.includes=z,exports.indexOf=W,exports.intersection=ce,exports.isEmpty=e=>{switch(d(e)){case"String":case"Array":return 0==H(e);case"Object":for(const r in e)return!1;return!0;default:return null}},exports.isNil=G,exports.join=Ne,exports.keys=e=>Object.keys(e),exports.last=e=>e[H(e)-1],exports.length=H,exports.lt=F,exports.lte=U,exports.map=Be,exports.mapKeys=We,exports.memoize=e=>{let r,t=!1;return()=>t?r:(t=!0,r=e())},exports.mergeDeep=Ue,exports.mergeDeepAdd=Ke,exports.mergeDeepX=$e,exports.mergeShallow=Ie,exports.mirror=Ve,exports.multiply=_,exports.noop=()=>{},exports.not=Q,exports.notf=er,exports.nth=k,exports.omit=Pe,exports.once=e=>{let r,t=!1;return(...s)=>t?r:(t=!0,r=e(...s))},exports.overProp=Le,exports.path=qe,exports.pathEq=je,exports.pathExists=Ae,exports.pathOr=we,exports.pathsEq=Oe,exports.pick=ve,exports.pickBy=ze,exports.prepend=Z,exports.prop=de,exports.propEq=ge,exports.propsEq=be,exports.push=rr,exports.qappend=sr,exports.qassoc=or,exports.qassocPath=dr,exports.qempty=e=>{if(u(e))e.splice(0);else for(const r in e)delete e[r];return e},exports.qfilter=fr,exports.qfreeze=hr,exports.qfreezeShallow=mr,exports.qmap=ur,exports.qmapKeys=ir,exports.qmergeDeep=xr,exports.qmergeDeepAdd=ar,exports.qmergeDeepX=cr,exports.qmergeShallow=lr,exports.qomit=gr,exports.qprepend=yr,exports.qreduce=pr,exports.qreverse=e=>e.reverse(),exports.range=xe,exports.reduce=ke,exports.reflect=Ye,exports.replace=Ce,exports.reverse=e=>S((r=>ke(((t,s,o)=>sr(e[r-o],t)),[],e)),B(-1),H)(e),exports.sizeof=e=>{if("Object"===d(e)){let r=0;for(let t in e)r++;return r}return H(e)},exports.slice=v,exports.some=tr,exports.sort=$,exports.split=re,exports.subtract=T,exports.symbol=y,exports.tail=N,exports.take=b,exports.tap=V,exports.test=R,exports.toLower=e=>e.toLowerCase(),exports.toPairs=e=>Object.entries(e),exports.toUpper=e=>e.toUpperCase(),exports.trim=e=>e.trim(),exports.type=d,exports.typeIs=g,exports.uncurry=e=>(...r)=>pr(((e,r)=>e?e(r):e),e,r),exports.uniq=e=>pr(((e,r)=>z(r,e)?e:sr(r,e)),[],e),exports.values=e=>Object.values(e),exports.waitAll=e=>Promise.all(e),exports.waitTap=Me,exports.weakEq=q,exports.when=A,exports.zip=Xe,exports.zipObj=Ge,exports.zipWith=He;
package/dist/bundle.d.ts CHANGED
@@ -1,27 +1,30 @@
1
1
  export { __ }
2
2
 
3
- // Generated by dts-bundle-generator v7.2.0
3
+ // Generated by dts-bundle-generator v9.3.1
4
4
 
5
5
  export type Cond = (x1?: any, x2?: any, x3?: any) => boolean;
6
6
  export interface AnyObject {
7
7
  [k: string]: any;
8
8
  }
9
9
  export type AnyArgs = any[];
10
- export type Curried<Args extends AnyArgs = AnyArgs, ReturnT = any> = (arg: Args[number]) => Curried<Args> | ReturnT;
10
+ export type Reducer<T = any> = (accum: T, cur: any, index: number) => T;
11
11
  export type AnyFunc<ReturnT = any, Args extends AnyArgs = AnyArgs> = (...args: Args) => ReturnT;
12
- export type Placeholder = symbol;
13
- declare const __: Placeholder;
12
+ export type TupleFn<ARG1 = any, ARG2 = any, Out = any> = (a: ARG1, b: ARG2) => Out;
13
+ export type Curried<Args extends AnyArgs = AnyArgs, ReturnT = any> = (arg: Args[number]) => Curried<Args> | ReturnT;
14
+ type Placeholder = symbol;
15
+ export declare const __: Placeholder;
14
16
  export declare const curry: (fn: AnyFunc) => (...args: AnyArgs) => any;
15
- export type Func2 = (a: any, b: any) => any;
17
+ type Func2 = (a: any, b: any) => any;
16
18
  export declare function curry2<Func extends Func2>(fn: Func): {
17
19
  (a: Placeholder, b: Parameters<Func>[1]): (a: Parameters<Func>[0]) => ReturnType<Func>;
18
20
  (a: Parameters<Func>[0], b: Placeholder): (b: Parameters<Func>[1]) => ReturnType<Func>;
19
21
  (a: Parameters<Func>[0]): (b: Parameters<Func>[1]) => ReturnType<Func>;
20
22
  (a: Parameters<Func>[0], b: Parameters<Func>[1]): ReturnType<Func>;
21
23
  };
22
- export type Func3 = (a: any, b: any, c: any) => any;
24
+ type Func3 = (a: any, b: any, c: any) => any;
23
25
  export declare function curry3<Func extends Func3>(fn: Func): (...args: AnyArgs) => any;
24
26
  export declare const uncurry: <Args extends any[] = any[], ReturnT = any>(fn: Curried<Args>) => AnyFunc;
27
+ export declare const symbol: unique symbol;
25
28
  export declare const toLower: (s: string) => string;
26
29
  export declare const toUpper: (s: string) => string;
27
30
  export declare const type: (s: any) => any;
@@ -52,7 +55,7 @@ export declare const equals: {
52
55
  };
53
56
  export declare const ifElse: (...args: AnyArgs) => any;
54
57
  export declare const when: (...args: AnyArgs) => any;
55
- export type Composed<TIn extends any[], TOut> = (...xs: TIn) => TOut;
58
+ type Composed<TIn extends any[], TOut> = (...xs: TIn) => TOut;
56
59
  export declare const compose: <TIn extends any[] = any[], TOut = any>(...fns: AnyFunc[]) => Composed<TIn, TOut>;
57
60
  export declare const bind: {
58
61
  (a: symbol, b: any): (a: any) => any;
@@ -79,7 +82,7 @@ export declare const flip: <T extends AnyFunc>(fn: T) => {
79
82
  (a: Parameters<T>[1]): (b: Parameters<T>[0]) => any;
80
83
  (a: Parameters<T>[1], b: Parameters<T>[0]): any;
81
84
  };
82
- export declare const head: <T = any>(xs: string | T[]) => T;
85
+ export declare const head: <T = any>(xs: T[] | string) => T;
83
86
  export declare const tail: any;
84
87
  export declare const add: {
85
88
  (a: symbol, b: number): (a: number) => number;
@@ -154,13 +157,25 @@ export declare const divide: {
154
157
  (a: number, b: number): number;
155
158
  };
156
159
  export declare const isNil: (s: any) => boolean;
157
- export declare const length: (s: any[] | string) => number;
160
+ declare const length$1: (s: any[] | string) => number;
158
161
  export declare const always: <T = any>(s: T) => () => T;
159
162
  export declare const identity: (s: any) => any;
160
163
  export declare const trim: (s: string) => string;
161
164
  export declare const last: (s: any[] | string) => any;
162
- export declare const not: (o: boolean) => boolean;
163
- export declare const keys: (o: AnyObject | any[]) => string[];
165
+ type NotOverload = {
166
+ (x: true): false;
167
+ (x: false): true;
168
+ (x: any): boolean;
169
+ };
170
+ export declare const not: NotOverload;
171
+ type IndexesOfArray<A> = Exclude<keyof A, keyof [
172
+ ]>;
173
+ type KeysOverload = {
174
+ <T extends any[]>(o: T): string[];
175
+ <T extends readonly any[]>(o: T): IndexesOfArray<T>[];
176
+ <T extends AnyObject>(o: T): (keyof T)[];
177
+ };
178
+ export declare const keys: KeysOverload;
164
179
  export declare const values: (o: AnyObject | any[]) => any[];
165
180
  export declare const toPairs: (o: AnyObject | any[]) => [
166
181
  string,
@@ -299,10 +314,11 @@ export declare const prop: {
299
314
  };
300
315
  export declare const propEq: (...args: AnyArgs) => any;
301
316
  export declare const propsEq: (...args: AnyArgs) => any;
302
- export declare const pathOr: (...args: AnyArgs) => any;
317
+ export declare const pathOr: any;
303
318
  export declare const path: any;
304
319
  export declare const pathEq: (...args: AnyArgs) => any;
305
320
  export declare const pathsEq: (...args: AnyArgs) => any;
321
+ export declare const pathExists: Composed<any[], any>;
306
322
  export declare const clone: (s: any, shallow?: boolean) => any;
307
323
  export declare const cloneShallow: (s: any) => any;
308
324
  export declare const freeze: <T extends AnyObject>(o: T) => Readonly<T>;
@@ -530,7 +546,18 @@ export declare const qprepend: {
530
546
  (a: any, b: any[]): number;
531
547
  };
532
548
  export declare const qassocPath: any;
533
- export type StrTmpl = ((data: AnyObject) => string);
549
+ export declare const qreverse: (arr: any[]) => any[];
550
+ export declare const qomit: {
551
+ (a: symbol, b: AnyObject): (a: string[]) => any[] | AnyObject;
552
+ (a: string[], b: symbol): (b: AnyObject) => any[] | AnyObject;
553
+ (a: string[]): (b: AnyObject) => any[] | AnyObject;
554
+ (a: string[], b: AnyObject): any[] | AnyObject;
555
+ };
556
+ type StrTmpl = ((data: AnyObject) => string);
534
557
  export declare const getTmpl: (tmpl: string) => StrTmpl;
535
558
 
559
+ export {
560
+ length$1 as length,
561
+ };
562
+
536
563
  export {};
package/dist/bundle.mjs CHANGED
@@ -1 +1 @@
1
- const e=Symbol("Placeholder"),r=r=>{let t=0;for(const n of r)n!==e&&t++;return t},t=(r,t)=>{const n=r.length,s=r.slice(),c=t.length;let o=c,l=0;for(;o&&l<n;l++)s[l]===e&&(s[l]=t[c-o],o--);for(l=n;o;l++,o--)s[l]=t[c-o];return s},n=(e,s,c)=>{const o=e.length-s.length-r(c);if(o<1)return e(...t(s,c));{const r=(...r)=>n(e,t(s,c),r);return r.$args_left=o,r}},s=e=>(...t)=>e.length>r(t)?n(e,[],t):e(...t),c=r=>function(t){return t===e?r:r(t)};function o(r){return function(t,n){const s=t===e,o=arguments.length;if(1===o&&s)throw new Error("Senseless placeholder usage.");return arguments.length>1?s?c((e=>r(e,n))):r(t,n):e=>r(t,e)}}function l(e){return s(e)}const i=void 0,u=1/0,a=e=>typeof e,f=e=>null===e,h=e=>"number"==a(e),b=e=>Array.isArray(e),g=e=>"function"===a(e),p=e=>!f(e)&&"object"===a(e),j={u:"U",b:"B",n:"N",s:"S",f:"F"},y=e=>e.toLowerCase(),d=e=>e.toUpperCase(),m=e=>{const r=a(e);return"object"===r?f(e)?"Null":e.constructor.name:j[r[0]]+r.slice(1)},O=o(((e,r)=>m(r)===e)),w=e=>(...r)=>r[e],A=o(((e,r)=>e===r)),S=o(((e,r)=>e==r)),k=o(((e,r)=>{const t=m(e);if(A(t,m(r))&&(A(t,"Object")||A(t,"Array"))){if(f(e)||f(r))return A(e,r);if(A(e,r))return!0;for(const t of[e,r])for(const n in t)if(!(A(t,r)&&n in e||A(t,e)&&n in r&&k(e[n],r[n])))return!1;return!0}return A(e,r)})),v=s(((e,r,t,n)=>e(n)?r(n):t(n))),N=l(((e,r,t)=>v(e,r,W,t))),C=(...r)=>(...t)=>{let n,s=!0;for(let c=T(r)-1;c>-1;c--)s?(s=!1,n=r[c](...t)):n=n===e?r[c]():r[c](n);return n},E=o(((e,r)=>e.bind(r))),P=o(((e,r)=>r[e])),$=o(((e,r)=>{if((e=>"string"===a(e))(r))return r.includes(e);for(const t of r)if(k(t,e))return!0;return!1})),x=l(((e,r,t)=>t.slice(e,h(r)?r:u))),z=e=>o(((r,t)=>e(t,r))),B=P(0),U=x(1,u),_=o(((e,r)=>e+r)),D=o(((e,r)=>r-e)),F=o(((e,r)=>e*r)),I=o(((e,r)=>e>r)),L=o(((e,r)=>e<r)),q=o(((e,r)=>r>=e)),G=o(((e,r)=>r<=e)),H=o(((e,r)=>r.sort(e))),J=o(((e,r)=>r.find(e))),K=o(((e,r)=>r.findIndex(e))),M=o(((e,r)=>K(k(e),r))),Q=o(((e,r)=>e/r)),R=e=>f(e)||(e=>e===i)(e),T=e=>e.length,V=e=>()=>e,W=e=>e,X=e=>e.trim(),Y=e=>e[T(e)-1],Z=e=>!e,ee=e=>Object.keys(e),re=e=>Object.values(e),te=e=>Object.entries(e),ne=o(((e,r)=>e.test(r))),se=o(((e,r)=>(e(r),r))),ce=o(((e,r)=>[...r,e])),oe=o(((e,r)=>[...r,e])),le=e=>e.flat(u),ie=e=>e.flat(),ue=o(((e,r)=>r.flat(e))),ae=o(((e,r)=>r.split(e))),fe=V(!0),he=V(!1),be=o(((e,r)=>r(...e))),ge=()=>{},pe=s(((e,r,t)=>t[r](...e))),je=e=>(...r)=>{const t=e(...r),n=g(t);return!n||n&&t.$args_left<=0?Z(t):je(t)},ye=e=>{if("Object"===m(e)){let r=0;for(let t in e)r++;return r}return T(e)},de=o(((e,r)=>we(_(e),r-e))),me=e=>Cr(((e,r)=>$(r,e)?e:vr(r,e)),[],e),Oe=o(((e,r)=>e.filter(z($)(r)))),we=o(((e,r)=>[...Array(r)].map(((r,t)=>e(t))))),Ae=e=>{let r,t=!1;return(...n)=>t?r:(t=!0,r=e(...n))},Se=e=>C((r=>Ke(((t,n,s)=>vr(e[r-s],t)),[],e)),_(-1),T)(e),ke=(e,r="log")=>se((t=>console[r](e,t))),ve=o(((e,r)=>{for(const[t,n]of e)if(t(r))return n(r)})),Ne=l(((e,r,t)=>({...t,[e]:r}))),Ce=l(((e,r,t)=>C((n=>Ne(n,T(e)<2?r:Ce(x(1,u,e),r,p(t[n])?t[n]:{}),t)),B)(e))),Ee=o(((e,r)=>r.every(e))),Pe=o(((e,r)=>r.some(e))),$e=o(((e,r)=>e.every((e=>e(r))))),xe=o(((e,r)=>e.some((e=>e(r))))),ze=o(((e,r)=>r[e])),Be=l(((e,r,t)=>k(t[e],r))),Ue=l(((e,r,t)=>k(r[e],t[e]))),_e=l(((e,r,t)=>v(T,(()=>R(t)?e:C(v(R,V(e),(t=>_e(e,x(1,u,r),t))),z(ze)(t),B)(r)),V(t),r))),De=_e(i),Fe=l(((e,r,t)=>k(De(e,t),r))),Ie=l(((e,r,t)=>k(De(e,r),De(e,t)))),Le=/^(.*?)(8|16|32|64)(Clamped)?Array$/,qe=(e,r=!1)=>{const t=m(e);switch(t){case"Null":case"String":case"Number":case"Boolean":case"Symbol":return e;case"Array":return r?[...e]:Xe(C(qe,w(0)),e);case"Object":if(r)return{...e};const n={};for(let r in e)n[r]=qe(e[r]);return n;default:return Le.test(t)?e.constructor.from(e):e}},Ge=e=>qe(e,!0),He=e=>Fr(qe(e)),Je=e=>Ir(qe(e)),Ke=l(((e,r,t)=>Cr(e,qe(r),t))),Me=o(((e,r)=>nr(e,r))),Qe=o(((e,r)=>{const t={};for(const n of e)n in r&&(t[n]=r[n]);return t})),Re=o(((e,r)=>nr(((r,t)=>!$(t,e)),r))),Te=e=>Object.fromEntries(e),Ve=o(((e,r)=>r.concat(e))),We=o(((e,r)=>r.join(e))),Xe=o(((e,r)=>r.map(e))),Ye=o(((e,r)=>r.forEach(e))),Ze=l(((e,r,t)=>r(t)&&e(t))),er=e=>{switch(m(e)){case"String":case"Array":return 0==T(e);case"Object":for(const r in e)return!1;return!0;default:return null}},rr=e=>{switch(m(e)){case"String":return"";case"Object":return{};case"Array":return[];default:return i}},tr=l(((e,r,t)=>t.replace(e,r))),nr=o(((e,r)=>b(r)?r.filter(e):_r(e,{...r}))),sr=e=>{let r,t=!1;return()=>t?r:(t=!0,r=e())},cr=o(((e,r)=>Object.assign({},e,r))),or=o(((e,r)=>Pr(qe(e),qe(r)))),lr=o(((e,r)=>$r(qe(e),qe(r)))),ir=o(((e,r)=>xr(qe(e),qe(r)))),ur=l(((e,r,t)=>Ne(e,r(t[e]),t))),ar=o(((e,r)=>Br(e,Object.assign({},r)))),fr=o(((e,r)=>Xe(((e,t)=>[e,r[t]]),e))),hr=o(((e,r)=>Ke(((e,t,n)=>Ne(t,r[n],e)),{},e))),br=l(((e,r,t)=>Xe(((r,n)=>e(r,t[n])),r))),gr=(()=>{const e=async(r,t,n)=>{n<t.length&&(await r(t[n]),await e(r,t,++n))};return o(((r,t)=>e(r,t,0)))})(),pr=e=>Promise.all(e),jr=o((async(e,r)=>(await e(r),r))),yr=o(((e,r)=>Promise.all(r.map(e)))),dr=(()=>{const e=async(r,t,n)=>~n?await e(r,[await r[n](...t)],--n):B(t);return(...r)=>(...t)=>e(r,t,r.length-1)})(),mr=W,Or=W,wr=W,Ar=je,Sr=ce,kr=Pe,vr=o(((e,r)=>(r.push(e),r))),Nr=l(((e,r,t)=>(t[e]=r,t))),Cr=l(((e,r,t)=>t.reduce(e,r))),Er=l(((e,r,t)=>{for(let n in t)switch(m(t[n])){case"Array":if(e>1&&"Array"===m(r[n]))switch(e){case 2:const s=r[n],c=t[n];for(const r in c)s[r]?Er(e,s[r],c[r]):s[r]=c[r];break;case 3:r[n].push(...t[n])}else r[n]=t[n];break;case"Object":if("Object"===m(r[n])){Er(e,r[n],t[n]);break}default:r[n]=t[n]}return r})),Pr=Er(1),$r=Er(2),xr=Er(3),zr=o(((e,r)=>Object.assign(e,r))),Br=o(((e,r)=>{let t,n,s,c;for(t in e)t in r&&(n=e[t],[s,c]=g(n)?n(r[t],t,r):[n,r[t]],r[R(s)?t:s]=c,t!==s&&delete r[t]);return r})),Ur=o(((e,r)=>{for(let t in r)r[t]=e(r[t],+t,r);return r})),_r=o(((e,r)=>{const t=b(r);let n,s;t&&(n=0,s=[]);for(let n in r)e(r[n],n)||(t?s.push(+n):delete r[n]);if(t)for(const e of s)r.splice(e-n++,1);return r})),Dr=e=>{if(b(e))e.splice(0);else for(const r in e)delete e[r];return e},Fr=e=>{let r;for(const t in e)r=e[t],p(r)&&Fr(r);return Object.freeze(e)},Ir=e=>Object.freeze(e),Lr=o(((e,r)=>r.unshift(e))),qr=l(((e,r,t)=>{const n=e[0];return Nr(n,e.length<2?r:qr(e.slice(1),r,p(t[n])?t[n]:{}),t)})),Gr=e=>(...r)=>Cr(((e,r)=>e?e(r):e),e,r),Hr=e=>{const r=[],t=[],n=e.length;let s,c,o,l=0,i=0,u=!1,a=B(e),f=!1;for(l=0;l<n;l++)switch(s=e[l],s){case"{":if(!a){u=!0,i=l;break}case"}":if(!a){u=!1,r.push(""),t.push(e.slice(i+1,l));break}default:o=e[l+1],f="\\"===s,u||f&&("{"===o||"}"===o)||(c=r.length-1,c<0&&(r.push(""),c++),r[c]+=s),a=f}return e=>{const n=[],s=r.length-1;for(const c in r)l=+c,n.push(r[l]),l!==s&&n.push(De(t[l].split("."),e));return n.join("")}};export{he as F,fe as T,e as __,_ as add,Ee as all,$e as allPass,V as always,Pe as any,xe as anyPass,ce as append,Ne as assoc,Ce as assocPath,E as bind,Ze as both,pe as callFrom,be as callWith,qe as clone,Ge as cloneShallow,je as complement,C as compose,dr as composeAsync,Ve as concat,ve as cond,s as curry,o as curry2,l as curry3,Q as divide,wr as echo,rr as empty,A as eq,k as equals,ke as explore,nr as filter,J as find,K as findIndex,le as flat,ie as flatShallow,ue as flatTo,z as flip,Ye as forEach,yr as forEachAsync,gr as forEachSerial,He as freeze,Je as freezeShallow,Te as fromPairs,we as genBy,Hr as getTmpl,I as gt,q as gte,B as head,W as identity,v as ifElse,$ as includes,M as indexOf,Oe as intersection,er as isEmpty,R as isNil,We as join,ee as keys,Y as last,T as length,L as lt,G as lte,Xe as map,ar as mapKeys,sr as memoize,or as mergeDeep,ir as mergeDeepAdd,lr as mergeDeepX,cr as mergeShallow,mr as mirror,F as multiply,ge as noop,Z as not,Ar as notf,P as nth,Re as omit,Ae as once,ur as overProp,De as path,Fe as pathEq,_e as pathOr,Ie as pathsEq,Qe as pick,Me as pickBy,oe as prepend,ze as prop,Be as propEq,Ue as propsEq,Sr as push,vr as qappend,Nr as qassoc,qr as qassocPath,Dr as qempty,_r as qfilter,Fr as qfreeze,Ir as qfreezeShallow,Ur as qmap,Br as qmapKeys,Pr as qmergeDeep,xr as qmergeDeepAdd,$r as qmergeDeepX,zr as qmergeShallow,Lr as qprepend,Cr as qreduce,de as range,Ke as reduce,Or as reflect,tr as replace,Se as reverse,ye as sizeof,x as slice,kr as some,H as sort,ae as split,D as subtract,U as tail,w as take,se as tap,ne as test,y as toLower,te as toPairs,d as toUpper,X as trim,m as type,O as typeIs,Gr as uncurry,me as uniq,re as values,pr as waitAll,jr as waitTap,S as weakEq,N as when,fr as zip,hr as zipObj,br as zipWith};
1
+ const e=Symbol("Placeholder"),r=r=>{let t=0;for(const n of r)n!==e&&t++;return t},t=(r,t)=>{const n=r.length,s=r.slice(),c=t.length;let o=c,l=0;for(;o&&l<n;l++)s[l]===e&&(s[l]=t[c-o],o--);for(l=n;o;l++,o--)s[l]=t[c-o];return s},n=(e,s,c)=>{const o=e.length-s.length-r(c);if(o<1)return e(...t(s,c));{const r=(...r)=>n(e,t(s,c),r);return r.$args_left=o,r}},s=e=>(...t)=>e.length>r(t)?n(e,[],t):e(...t);function c(r){return function(t,n){const s=t===e;if(1===arguments.length&&s)throw new Error("Senseless placeholder usage.");return arguments.length>1?s?(r=>function(t){return t===e?r:r(t)})((e=>r(e,n))):r(t,n):e=>r(t,e)}}function o(e){return s(e)}const l=void 0,i=1/0,u=e=>typeof e,a=e=>null===e,f=e=>"number"==u(e),h=e=>Array.isArray(e),b=e=>"function"===u(e),g=e=>!a(e)&&"object"===u(e),p={u:"U",b:"B",n:"N",s:"S",f:"F"},j=Symbol(),y=e=>e.toLowerCase(),d=e=>e.toUpperCase(),m=e=>{const r=u(e);return"object"===r?a(e)?"Null":e.constructor.name:p[r[0]]+r.slice(1)},O=c(((e,r)=>m(r)===e)),w=e=>(...r)=>r[e],A=c(((e,r)=>e===r)),S=c(((e,r)=>e==r)),k=c(((e,r)=>{const t=m(e);if(A(t,m(r))&&(A(t,"Object")||A(t,"Array"))){if(a(e)||a(r))return A(e,r);if(A(e,r))return!0;for(const t of[e,r])for(const n in t)if(!(A(t,r)&&n in e||A(t,e)&&n in r&&k(e[n],r[n])))return!1;return!0}return A(e,r)})),v=s(((e,r,t,n)=>e(n)?r(n):t(n))),N=o(((e,r,t)=>v(e,r,W,t))),C=(...r)=>(...t)=>{let n,s=!0;for(let c=T(r)-1;c>-1;c--)s?(s=!1,n=r[c](...t)):n=n===e?r[c]():r[c](n);return n},E=c(((e,r)=>e.bind(r))),P=c(((e,r)=>r[e])),$=c(((e,r)=>{if((e=>"string"===u(e))(r))return r.includes(e);for(const t of r)if(k(t,e))return!0;return!1})),x=o(((e,r,t)=>t.slice(e,f(r)?r:i))),z=e=>c(((r,t)=>e(t,r))),B=P(0),U=x(1,i),_=c(((e,r)=>e+r)),D=c(((e,r)=>r-e)),F=c(((e,r)=>e*r)),I=c(((e,r)=>e>r)),L=c(((e,r)=>e<r)),q=c(((e,r)=>r>=e)),G=c(((e,r)=>r<=e)),H=c(((e,r)=>r.sort(e))),J=c(((e,r)=>r.find(e))),K=c(((e,r)=>r.findIndex(e))),M=c(((e,r)=>K(k(e),r))),Q=c(((e,r)=>e/r)),R=e=>a(e)||(e=>e===l)(e),T=e=>e.length,V=e=>()=>e,W=e=>e,X=e=>e.trim(),Y=e=>e[T(e)-1],Z=e=>!e,ee=e=>Object.keys(e),re=e=>Object.values(e),te=e=>Object.entries(e),ne=c(((e,r)=>e.test(r))),se=c(((e,r)=>(e(r),r))),ce=c(((e,r)=>[...r,e])),oe=c(((e,r)=>[...r,e])),le=e=>e.flat(i),ie=e=>e.flat(),ue=c(((e,r)=>r.flat(e))),ae=c(((e,r)=>r.split(e))),fe=V(!0),he=V(!1),be=c(((e,r)=>r(...e))),ge=()=>{},pe=s(((e,r,t)=>t[r](...e))),je=e=>(...r)=>{const t=e(...r),n=b(t);return!n||n&&t.$args_left<=0?Z(t):je(t)},ye=e=>{if("Object"===m(e)){let r=0;for(let t in e)r++;return r}return T(e)},de=c(((e,r)=>we(_(e),r-e))),me=e=>Er(((e,r)=>$(r,e)?e:Nr(r,e)),[],e),Oe=c(((e,r)=>e.filter(z($)(r)))),we=c(((e,r)=>[...Array(r)].map(((r,t)=>e(t))))),Ae=e=>{let r,t=!1;return(...n)=>t?r:(t=!0,r=e(...n))},Se=e=>C((r=>Me(((t,n,s)=>Nr(e[r-s],t)),[],e)),_(-1),T)(e),ke=(e,r="log")=>se((t=>console[r](e,t))),ve=c(((e,r)=>{for(const[t,n]of e)if(t(r))return n(r)})),Ne=o(((e,r,t)=>({...t,[e]:r}))),Ce=o(((e,r,t)=>C((n=>Ne(n,T(e)<2?r:Ce(x(1,i,e),r,g(t[n])?t[n]:{}),t)),B)(e))),Ee=c(((e,r)=>r.every(e))),Pe=c(((e,r)=>r.some(e))),$e=c(((e,r)=>e.every((e=>e(r))))),xe=c(((e,r)=>e.some((e=>e(r))))),ze=c(((e,r)=>r[e])),Be=o(((e,r,t)=>k(t[e],r))),Ue=o(((e,r,t)=>k(r[e],t[e]))),_e=o(((e,r,t)=>T(r)?R(t)?e:C((n=>n in t?_e(e,x(1,i,r),t[n]):e),B)(r):t)),De=_e(l),Fe=o(((e,r,t)=>k(De(e,t),r))),Ie=o(((e,r,t)=>k(De(e,r),De(e,t)))),Le=C(v(k(j),he,fe),_e(j)),qe=/^(.*?)(8|16|32|64)(Clamped)?Array$/,Ge=(e,r=!1)=>{const t=m(e);switch(t){case"Null":case"String":case"Number":case"Boolean":case"Symbol":return e;case"Array":return r?[...e]:Ye(C(Ge,w(0)),e);case"Object":if(r)return{...e};const n={};for(let r in e)n[r]=Ge(e[r]);return n;default:return qe.test(t)?e.constructor.from(e):e}},He=e=>Ge(e,!0),Je=e=>Ir(Ge(e)),Ke=e=>Lr(Ge(e)),Me=o(((e,r,t)=>Er(e,Ge(r),t))),Qe=c(((e,r)=>sr(e,r))),Re=c(((e,r)=>{const t={};for(const n of e)n in r&&(t[n]=r[n]);return t})),Te=c(((e,r)=>sr(((r,t)=>!$(t,e)),r))),Ve=e=>Object.fromEntries(e),We=c(((e,r)=>r.concat(e))),Xe=c(((e,r)=>r.join(e))),Ye=c(((e,r)=>r.map(e))),Ze=c(((e,r)=>r.forEach(e))),er=o(((e,r,t)=>r(t)&&e(t))),rr=e=>{switch(m(e)){case"String":case"Array":return 0==T(e);case"Object":for(const r in e)return!1;return!0;default:return null}},tr=e=>{switch(m(e)){case"String":return"";case"Object":return{};case"Array":return[];default:return l}},nr=o(((e,r,t)=>t.replace(e,r))),sr=c(((e,r)=>h(r)?r.filter(e):Dr(e,{...r}))),cr=e=>{let r,t=!1;return()=>t?r:(t=!0,r=e())},or=c(((e,r)=>Object.assign({},e,r))),lr=c(((e,r)=>$r(Ge(e),Ge(r)))),ir=c(((e,r)=>xr(Ge(e),Ge(r)))),ur=c(((e,r)=>zr(Ge(e),Ge(r)))),ar=o(((e,r,t)=>Ne(e,r(t[e]),t))),fr=c(((e,r)=>Ur(e,Object.assign({},r)))),hr=c(((e,r)=>Ye(((e,t)=>[e,r[t]]),e))),br=c(((e,r)=>Me(((e,t,n)=>Ne(t,r[n],e)),{},e))),gr=o(((e,r,t)=>Ye(((r,n)=>e(r,t[n])),r))),pr=(()=>{const e=async(r,t,n)=>{n<t.length&&(await r(t[n]),await e(r,t,++n))};return c(((r,t)=>e(r,t,0)))})(),jr=e=>Promise.all(e),yr=c((async(e,r)=>(await e(r),r))),dr=c(((e,r)=>Promise.all(r.map(e)))),mr=(()=>{const e=async(r,t,n)=>~n?await e(r,[await r[n](...t)],--n):B(t);return(...r)=>(...t)=>e(r,t,r.length-1)})(),Or=W,wr=W,Ar=W,Sr=je,kr=ce,vr=Pe,Nr=c(((e,r)=>(r.push(e),r))),Cr=o(((e,r,t)=>(t[e]=r,t))),Er=o(((e,r,t)=>t.reduce(e,r))),Pr=o(((e,r,t)=>{for(let n in t)switch(m(t[n])){case"Array":if(e>1&&"Array"===m(r[n]))switch(e){case 2:const s=r[n],c=t[n];for(const r in c)s[r]?Pr(e,s[r],c[r]):s[r]=c[r];break;case 3:r[n].push(...t[n])}else r[n]=t[n];break;case"Object":if("Object"===m(r[n])){Pr(e,r[n],t[n]);break}default:r[n]=t[n]}return r})),$r=Pr(1),xr=Pr(2),zr=Pr(3),Br=c(((e,r)=>Object.assign(e,r))),Ur=c(((e,r)=>{let t,n,s,c;for(t in e)t in r&&(n=e[t],[s,c]=b(n)?n(r[t],t,r):[n,r[t]],r[R(s)?t:s]=c,t!==s&&delete r[t]);return r})),_r=c(((e,r)=>{for(let t in r)r[t]=e(r[t],+t,r);return r})),Dr=c(((e,r)=>{const t=h(r);let n,s;t&&(n=0,s=[]);for(let n in r)e(r[n],n)||(t?s.push(+n):delete r[n]);if(t)for(const e of s)r.splice(e-n++,1);return r})),Fr=e=>{if(h(e))e.splice(0);else for(const r in e)delete e[r];return e},Ir=e=>{let r;for(const t in e)r=e[t],g(r)&&Ir(r);return Object.freeze(e)},Lr=e=>Object.freeze(e),qr=c(((e,r)=>r.unshift(e))),Gr=o(((e,r,t)=>{const n=e[0];return Cr(n,e.length<2?r:Gr(e.slice(1),r,g(t[n])?t[n]:{}),t)})),Hr=e=>e.reverse(),Jr=c(((e,r)=>Dr(((r,t)=>!$(t,e)),r))),Kr=e=>(...r)=>Er(((e,r)=>e?e(r):e),e,r),Mr=e=>{const r=[],t=[],n=e.length;let s,c,o,l=0,i=0,u=!1,a=B(e),f=!1;for(l=0;l<n;l++)switch(s=e[l],s){case"{":if(!a){u=!0,i=l;break}case"}":if(!a){u=!1,r.push(""),t.push(e.slice(i+1,l));break}default:o=e[l+1],f="\\"===s,u||f&&("{"===o||"}"===o)||(c=r.length-1,c<0&&(r.push(""),c++),r[c]+=s),a=f}return e=>{const n=[],s=r.length-1;for(const c in r)l=+c,n.push(r[l]),l!==s&&n.push(De(t[l].split("."),e));return n.join("")}};export{he as F,fe as T,e as __,_ as add,Ee as all,$e as allPass,V as always,Pe as any,xe as anyPass,ce as append,Ne as assoc,Ce as assocPath,E as bind,er as both,pe as callFrom,be as callWith,Ge as clone,He as cloneShallow,je as complement,C as compose,mr as composeAsync,We as concat,ve as cond,s as curry,c as curry2,o as curry3,Q as divide,Ar as echo,tr as empty,A as eq,k as equals,ke as explore,sr as filter,J as find,K as findIndex,le as flat,ie as flatShallow,ue as flatTo,z as flip,Ze as forEach,dr as forEachAsync,pr as forEachSerial,Je as freeze,Ke as freezeShallow,Ve as fromPairs,we as genBy,Mr as getTmpl,I as gt,q as gte,B as head,W as identity,v as ifElse,$ as includes,M as indexOf,Oe as intersection,rr as isEmpty,R as isNil,Xe as join,ee as keys,Y as last,T as length,L as lt,G as lte,Ye as map,fr as mapKeys,cr as memoize,lr as mergeDeep,ur as mergeDeepAdd,ir as mergeDeepX,or as mergeShallow,Or as mirror,F as multiply,ge as noop,Z as not,Sr as notf,P as nth,Te as omit,Ae as once,ar as overProp,De as path,Fe as pathEq,Le as pathExists,_e as pathOr,Ie as pathsEq,Re as pick,Qe as pickBy,oe as prepend,ze as prop,Be as propEq,Ue as propsEq,kr as push,Nr as qappend,Cr as qassoc,Gr as qassocPath,Fr as qempty,Dr as qfilter,Ir as qfreeze,Lr as qfreezeShallow,_r as qmap,Ur as qmapKeys,$r as qmergeDeep,zr as qmergeDeepAdd,xr as qmergeDeepX,Br as qmergeShallow,Jr as qomit,qr as qprepend,Er as qreduce,Hr as qreverse,de as range,Me as reduce,wr as reflect,nr as replace,Se as reverse,ye as sizeof,x as slice,vr as some,H as sort,ae as split,D as subtract,j as symbol,U as tail,w as take,se as tap,ne as test,y as toLower,te as toPairs,d as toUpper,X as trim,m as type,O as typeIs,Kr as uncurry,me as uniq,re as values,jr as waitAll,yr as waitTap,S as weakEq,N as when,hr as zip,br as zipObj,gr as zipWith};
package/package.json CHANGED
@@ -36,14 +36,14 @@
36
36
  "test:report": "nyc npm test && nyc report --reporter=text-lcov > coverage.lcov && codecov",
37
37
  "test:lazy": "ava",
38
38
  "dts-fix": "node dts-fix.js",
39
- "gentypes": "dts-bundle-generator --no-check -o dist/bundle.d.ts src/index.ts && npm run dts-fix",
39
+ "gentypes": "dts-bundle-generator --no-check --export-referenced-types=false -o dist/bundle.d.ts src/index.ts && npm run dts-fix",
40
40
  "dev": "cross-env NODE_ENV=development BUILD=es rollup -c",
41
41
  "prod:cjs": "cross-env NODE_ENV=production BUILD=cjs rollup -c",
42
42
  "prod:es": "cross-env NODE_ENV=production BUILD=es rollup -c",
43
43
  "prod": "npm run gentypes && npm run prod:es && npm run prod:cjs",
44
44
  "all": "npm run dev && npm run prod"
45
45
  },
46
- "version": "1.0.0-beta.9",
46
+ "version": "1.1.0",
47
47
  "ava": {
48
48
  "files": [
49
49
  "./test/specs/*.ts"
@@ -58,22 +58,22 @@
58
58
  ]
59
59
  },
60
60
  "devDependencies": {
61
- "@rollup/plugin-commonjs": "^24.0.1",
62
- "@rollup/plugin-node-resolve": "^15.0.1",
63
- "@rollup/plugin-replace": "^5.0.2",
64
- "@rollup/plugin-terser": "^0.4.0",
65
- "@types/node": "^18.15.11",
66
- "ava": "^5.2.0",
61
+ "@rollup/plugin-commonjs": "^25.0.7",
62
+ "@rollup/plugin-node-resolve": "^15.2.3",
63
+ "@rollup/plugin-replace": "^5.0.5",
64
+ "@rollup/plugin-terser": "^0.4.4",
65
+ "@types/node": "^20.12.2",
66
+ "ava": "^6.1.2",
67
67
  "codecov": "^3.8.3",
68
68
  "cross-env": "^7.0.3",
69
- "dts-bundle-generator": "^7.2.0",
69
+ "dts-bundle-generator": "^9.3.1",
70
70
  "nyc": "^15.1.0",
71
71
  "prepend": "^1.0.2",
72
- "rollup": "^3.20.2",
73
- "rollup-plugin-typescript2": "^0.34.1",
74
- "ts-node": "^10.9.1",
72
+ "rollup": "^4.13.2",
73
+ "rollup-plugin-typescript2": "^0.36.0",
74
+ "ts-node": "^10.9.2",
75
75
  "tslint": "^6.1.3",
76
- "typescript": "^5.0.2"
76
+ "typescript": "^5.4.3"
77
77
  },
78
78
  "types": "./dist/bundle.d.ts",
79
79
  "sideEffects": false
package/src/common.ts CHANGED
@@ -6,6 +6,7 @@ const caseMap = {
6
6
  u: 'U', b: 'B', n: 'N', s: 'S', f: 'F'
7
7
  }
8
8
 
9
+ export const symbol = Symbol()
9
10
  export const toLower = (s: string) => s.toLowerCase()
10
11
  export const toUpper = (s: string) => s.toUpperCase()
11
12
  export const type = (s: any) => {
package/src/index.ts CHANGED
@@ -4,4 +4,5 @@ export * from './uncurry'
4
4
  export * from './common'
5
5
  export * from './safe'
6
6
  export * from './quick'
7
- export * from './strings'
7
+ export * from './strings'
8
+ export * from './types'
package/src/quick.ts CHANGED
@@ -2,7 +2,7 @@ import { curry2, curry3 } from "./curry"
2
2
  import { type } from "./common"
3
3
  import { AnyObject, Reducer, AnyFunc } from "./types"
4
4
  import { isFunc, isArray, isObj } from "./utils"
5
- import { isNil } from "./safe"
5
+ import { includes, isNil } from "./safe"
6
6
  // TODO: qoverProp, qover array ?
7
7
 
8
8
  export const qappend = curry2((s: any, xs: any[]) => {xs.push(s); return xs})
@@ -116,4 +116,11 @@ export const qassocPath = curry3((_path: string[], v: any, o: AnyObject) => {
116
116
  : qassocPath(_path.slice(1), v, isObj(o[first]) ? o[first] : {}),
117
117
  o
118
118
  )
119
- })
119
+ })
120
+ export const qreverse = (arr: any[]) => arr.reverse()
121
+ export const qomit = curry2(
122
+ (props: string[], o: AnyObject) => qfilter(
123
+ (_: any, k: string) => !includes(k, props),
124
+ o
125
+ )
126
+ )
package/src/safe.ts CHANGED
@@ -2,7 +2,7 @@ import { __, curry, curry2, curry3 } from './curry'
2
2
  import { isNum, isUndef, undef, isNull, isArray, isFunc, isStr, isObj, inf } from './utils'
3
3
  import { qmergeDeep, qreduce, qappend, qmapKeys, qmergeDeepX, qmergeDeepAdd, qfilter, qfreeze, qfreezeShallow } from './quick'
4
4
  import { AnyFunc, Cond, AnyObject, Reducer } from './types'
5
- import { type } from './common'
5
+ import { symbol, type } from './common'
6
6
  // over, lensProp
7
7
 
8
8
  export const take = (argN: number) => (...args: any[]) => args[argN]
@@ -94,8 +94,20 @@ export const always = <T=any>(s: T) => () => s
94
94
  export const identity = (s: any) => s
95
95
  export const trim = (s: string) => s.trim()
96
96
  export const last = (s: any[] | string) => s[length(s)-1]
97
- export const not = (o: boolean) => !o
98
- export const keys = (o: AnyObject | any[]) => Object.keys(o)
97
+ type NotOverload = {
98
+ (x: true): false
99
+ (x: false): true
100
+ (x: any): boolean
101
+ }
102
+ export const not: NotOverload = (x: any) => !x as any
103
+ type IndexesOfArray<A> = Exclude<keyof A, keyof []>
104
+ type KeysOverload = {
105
+ <T extends any[]>(o: T): string[]
106
+ <T extends readonly any[]>(o: T): IndexesOfArray<T>[]
107
+ <T extends AnyObject>(o: T): (keyof T)[]
108
+ }
109
+ export const keys: KeysOverload = (o: number[]) => Object.keys(o)
110
+
99
111
  export const values = (o: AnyObject | any[]) => Object.values(o)
100
112
  export const toPairs = (o: AnyObject | any[]) => Object.entries(o)
101
113
  export const test = curry2((re: RegExp, s: string) => re.test(s))
@@ -147,12 +159,9 @@ export const genBy = curry2(
147
159
  export const once = <Func extends AnyFunc>(fn: Func) => {
148
160
  let done = false, cache: any
149
161
  return (...args: Parameters<Func>) => {
150
- if(done) {
151
- return cache
152
- } else {
153
- done = true
154
- return cache = fn(...args)
155
- }
162
+ if(done) return cache
163
+ done = true
164
+ return cache = fn(...args)
156
165
  }
157
166
  }
158
167
  export const reverse = (xs: any[]) => compose(
@@ -214,20 +223,14 @@ export const propsEq = curry3(
214
223
  (key: string, o1: any, o2: AnyObject) => equals(o1[key], o2[key])
215
224
  )
216
225
  export const pathOr = curry3(
217
- (_default: any, path: (string | number)[], o: any) =>
218
- ifElse(length,
219
- () => isNil(o)
220
- ? _default
221
- : compose(
222
- ifElse(isNil,
223
- always(_default),
224
- (o: any) => pathOr(_default, slice(1, inf, path), o)
225
- ),
226
- flip(prop)(o),
227
- head
228
- )(path),
229
- always(o),
230
- path)
226
+ (_default: any, path: (string | number)[], o: any) => length(path)
227
+ ? isNil(o)
228
+ ? _default
229
+ : compose(
230
+ (k) => k in o ? pathOr(_default, slice(1, inf, path), o[k]) : _default,
231
+ head
232
+ )(path)
233
+ : o
231
234
  )
232
235
  export const path = pathOr(undef)
233
236
  export const pathEq = curry3(
@@ -237,6 +240,7 @@ export const pathsEq = curry3(
237
240
  (_path: string[], o1: AnyObject, o2: AnyObject) =>
238
241
  equals(path(_path, o1), path(_path, o2))
239
242
  )
243
+ export const pathExists = compose(ifElse(equals(symbol), F, T), pathOr(symbol))
240
244
  const typed_arr_re = /^(.*?)(8|16|32|64)(Clamped)?Array$/
241
245
  export const clone = (s: any, shallow = false) => {
242
246
  const t = type(s)
@@ -328,7 +332,7 @@ export const replace = curry3(
328
332
  // @ts-ignore Some bug with overload.
329
333
  ) => where.replace(a, b)
330
334
  )
331
- // TODO: it thinks cond is a symbol in usage !!!
335
+ // FIXME: it thinks cond is a symbol in usage !!!
332
336
  export const filter = curry2(
333
337
  (
334
338
  cond: (v: any, k: string | number) => boolean,
package/src/timers.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { AnyFunc } from "./types"
2
+
3
+ export const debounce = <T extends AnyFunc>(time: number, fn: T) => {
4
+ let queue: AnyFunc[] = []
5
+ let to: NodeJS.Timeout
6
+ return ((...args: Parameters<T>) => new Promise<ReturnType<T>>((ff) => {
7
+ const qel = async () => {
8
+ clearTimeout(to)
9
+ to = setTimeout(async () => {
10
+ const res = await fn!(...args)
11
+ if(queue.includes(qel)) ff(res)
12
+ }, time)
13
+ }
14
+ queue.splice(0)
15
+ queue.push(qel)
16
+ qel()
17
+ }))
18
+ }
package/src/types.ts CHANGED
@@ -1,15 +1,10 @@
1
1
  export type Cond = (x1?: any, x2?: any, x3?: any) => boolean
2
- export interface AnyObject {
3
- [k: string]: any
4
- }
2
+ export interface AnyObject { [k: string]: any }
5
3
  export type AnyArgs = any[]
4
+ export type Reducer<T=any> = (accum: T, cur: any, index: number) => T
5
+ export type AnyFunc<ReturnT = any, Args extends AnyArgs = AnyArgs> = (...args: Args) => ReturnT
6
+ export type TupleFn<ARG1=any, ARG2=any, Out=any> = (a: ARG1, b: ARG2) => Out
6
7
  export type Curried<
7
8
  Args extends AnyArgs = AnyArgs,
8
9
  ReturnT = any
9
- > = (arg: Args[number]) => Curried<Args> | ReturnT
10
- export type Reducer<T=any> = (accum: T, cur: any, index: number) => T
11
- export type AnyFunc<
12
- ReturnT = any,
13
- Args extends AnyArgs = AnyArgs
14
- > = (...args: Args) => ReturnT
15
- export type TupleFn<ARG1=any, ARG2=any, Out=any> = (a: ARG1, b: ARG2) => Out
10
+ > = (arg: Args[number]) => Curried<Args> | ReturnT