UNPKG

rubico

Version:

[a]synchronous functional programming

9 lines (7 loc) 29.2 kB
/** * rubico v2.6.2 * https://github.com/a-synchronous/rubico * (c) 2019-2024 Richard Tong * rubico may be freely distributed under the MIT license. */ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.rubico=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Array.isArray,t=n=>null!=n&&"function"==typeof n.then,e=function(e){if(n(e)){const n=e.length;let o=-1;for(;++o<n;){const n=e[o];if(t(n))return!0}return!1}for(const n in e){const o=e[n];if(t(o))return!0}return!1},o=Promise.all.bind(Promise),r=(n,e)=>function(...o){const r=n(...o);return t(r)?r.then(e):e(r)},u=(n,t)=>n(...t),c=Symbol.for("placeholder"),f=function(n,t,e){return t==c?((n,t)=>function(e){return n(e,t)})(n,e):((n,t)=>function(e){return n(t,e)})(n,t)},i=n=>function(){return n},s=(n,t)=>function(){return n(...t)},l=(n,t,e)=>n?t():e(),h=function(n,t,e,o){return t==c?((n,t,e)=>function(o){return n(o,t,e)})(n,e,o):e==c?((n,t,e)=>function(o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(o){return n(t,e,o)})(n,t,e)},a=function(n,t,e){return t==c?((n,t)=>function(...e){return n(e,t)})(n,e):((n,t)=>function(...e){return n(t,e)})(n,t)},p=function(n,t,e,o){return t==c?((n,t,e)=>function(...o){return n(o,t,e)})(n,e,o):e==c?((n,t,e)=>function(...o){return n(t,o,e)})(n,t,o):((n,t,e)=>function(...o){return n(t,e,o)})(n,t,e)},d=function(n,e){const o=n[0],r=e(...n);return t(r)?r.then(i(o)):o},y=function(...n){const t=n.pop();return 0==n.length?a(d,c,t):e(n)?o(n).then(f(d,c,t)):d(n,t)},g=function(n,e,o){const r=n(...o);if(t(r))return r.then(h(l,c,s(y(e),o),i(o[0])));if(r){const n=e(...o);if(t(n))return n.then(i(o[0]))}return o[0]};y.if=function(...n){if(2==n.length)return p(g,n[0],n[1],c);const t=n.length,r=n[t-1],u=n[t-2],f=n.slice(0,-2);return e(f)?o(f).then(h(g,u,r,c)):g(u,r,n)};const w=function(t){if(n(t)){const n=t.length;let e=-1;for(;++e<n;)if("function"==typeof t[e])return!1;return!0}for(const n in t)if("function"==typeof t[n])return!1;return!0},v=n=>new Promise((n=>function(e){const o={};let r=0;for(const u in n){const c=n[u];t(c)?(r+=1,c.then((n=>function(t){o[n]=t,r-=1,0==r&&e(o)})(u))):o[u]=c}0==r&&e(o)})(n)),x=function(n,e){const r=n.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const o=n[c],r="function"==typeof o?o(...e):o;t(r)&&(f=!0),u[c]=r}return f?o(u):u},j=function(n,t,e,o,r){return t==c?((n,t,e,o)=>function(r){return n(r,t,e,o)})(n,e,o,r):e==c?((n,t,e,o)=>function(r){return n(t,r,e,o)})(n,t,o,r):o==c?((n,t,e,o)=>function(r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(r){return n(t,e,o,r)})(n,t,e,o)},b=function(n,t,e){return n[t]=e,n},S=async function(n,e,o,r){const u=n.length;for(;++r<u;){const u=n[r](...e);o[r]=t(u)?await u:u}return o},M=function(n,e){const o=n.length,u=[];let f=-1;for(;++f<o;){const o=n[f](...e);if(t(o))return o.then(r(h(b,u,f,c),j(S,n,e,c,f)));u[f]=o}return u},O=function(n,e){const r={},u=[];for(const o in n){const f=n[o],i="function"==typeof f?f(...e):f;t(i)?u.push(i.then(h(b,r,o,c))):r[o]=i}return 0==u.length?r:o(u).then(i(r))},m=function(t){return n(t)?e(t)?o(t):t:e(t)?v(t):t},z=function(...r){if(1==r.length){const e=r[0];return t(e)?e.then(m):w(e)?m(e):n(e)?a(x,e,c):a(O,e,c)}const u=r[r.length-1],i=r.slice(0,-1);return e(i)?n(u)?o(i).then(f(x,u,c)):o(i).then(f(O,u,c)):n(u)?x(u,i):O(u,i)};z.series=function(...n){const t=n.pop();return 0==n.length?a(M,t,c):e(n)?o(n).then(f(M,t,c)):M(t,n)};const A=Object.assign,E=function(n,e){const o=O(e,[n]);return t(o)?o.then(h(A,{},n,c)):{...n,...o}},T=function(n,t,e){return n(t,...e)},I=function(n,e,o){try{const r=n(...o);return t(r)?r.catch(h(T,e,c,o)):r}catch(n){return e(n,...o)}},D=(n,t,e,o)=>function(){return n(t,e,o)},P=function(n,e,o){const r=n.length-1;for(;(o+=2)<r;){const r=n[o],u=n[o+1],f="function"==typeof r?r(...e):r;if(t(f))return f.then(h(l,c,"function"==typeof u?s(u,e):i(u),D(P,n,e,o)));if(f)return"function"==typeof u?u(...e):u}if(o==n.length)return;const u=n[r];return"function"==typeof u?u(...e):u},B=(n,t,e)=>function(){return n(t,e)},$=function(n,e){const o=n.length,r=o-1;for(;(e+=2)<r;){const o=n[e],r=n[e+1];if(t(o))return o.then(h(l,c,i(r),B($,n,e)));if(o)return r}if(e!=o)return n[e]},k=Symbol.iterator,C=(n,t)=>({toString:()=>"[object MappingIterator]",[k](){return this},next(){const e=n.next();return e.done?e:{value:t(e.value),done:!1}}}),_=n=>({value:n,done:!1}),q=Symbol.asyncIterator,F=(n,e)=>({[q](){return this},async next(){const o=await n.next();if(o.done)return o;const r=e(o.value);return t(r)?r.then(_):{value:r,done:!1}}}),R=function(n,e){const r=n.length,u=Array(r);let c=-1,f=!1;for(;++c<r;){const o=e(n[c],c,n);t(o)&&(f=!0),u[c]=o}return f?o(u):u},V=(n,t,e)=>n[t](e),G=function(n,e){const r=new Set,u=[];for(const o of n){const f=e(o,o,n);t(f)?u.push(f.then(h(V,r,"add",c))):r.add(f)}return 0==u.length?r:o(u).then(i(r))},H=(n,t,e,o)=>n[t](e,o),J=function(n,e){const o={};let r=!1;for(const u in n){const c=e(n[u],u,n);t(c)&&(r=!0),o[u]=c}return r?v(o):o},K=async function(n,e,o,r){const u=n.length;for(;++r<u;){const u=e(n[r],r);o[r]=t(u)?await u:u}return o},L=function(n,e){const o=n.length,u=Array(o);let f=-1;for(;++f<o;){const o=e(n[f],f);if(t(o))return o.then(r(h(b,u,f,c),j(K,n,e,c,f)));u[f]=o}return u},N=(n,t,e,o,r)=>function(){return n(t,e,o,r)},Q=async function(n,e,o,r){for(const u in n){if(u in r)continue;let c=e(n[u]);t(c)&&(c=await c),o[u]=c}return o},U=function(n,t){return n.add(t),n},W=async function(n,e,o){let r=n.next();for(;!r.done;){let u=e(r.value);t(u)&&(u=await u),o.add(u),r=n.next()}return o},X=function(n,t,e){return n.set(t,e)},Y=async function(n,e,o){let r=n.next();for(;!r.done;){let u=e(r.value[1]);t(u)&&(u=await u),o.set(r.value[0],u),r=n.next()}return o},Z=n=>function(...t){return n(...t),t[0]},nn=Promise.race.bind(Promise),tn=async function(n,e,r,u,c,f){const i=n.length;for(;++c<i;){f.size>=r&&await nn(f);const o=e(n[c]);if(t(o)){const n=o.then(Z((()=>f.delete(n))));f.add(n),u[c]=n}else u[c]=o}return o(u)},en=function(n,e,o){const r=n.length,u=Array(r);let c=-1;for(;++c<r;){const r=o(n[c]);if(t(r)){const t=new Set,f=r.then(Z((()=>t.delete(f))));return t.add(f),u[c]=f,tn(n,o,e,u,c,t)}u[c]=r}return u},on=async function(n,e,r,u,c,f){let i=e.next();for(;!i.done;){f.size>=r&&await nn(f);const o=u(i.value,i.value,n);if(t(o)){const n=o.then((t=>{f.delete(n),c.add(t)}));f.add(n)}else c.add(o);i=e.next()}return f.size>0&&await o(f),c},rn=async function(n,e,r,u,c,f){let i=e.next();for(;!i.done;){f.size>=r&&await nn(f);const o=i.value[0],s=u(i.value[1],o,n);if(t(s)){c.set(o,s);const n=s.then((t=>{f.delete(n),c.set(o,t)}));f.add(n)}else c.set(o,s);i=e.next()}return f.size>0&&await o(f),c},un=async function(n,e,r,u,c,f){for(const o in n){if(o in c)continue;f.size>=e&&await nn(f);const i=r(n[o],o,n);if(t(i)){u[o]=i;const n=i.then((t=>{f.delete(n),u[o]=t}));f.add(n)}else u[o]=i}return f.size>0&&await o(f),u},cn=(n,t,e)=>function(...o){const r=e.length,u=o.length,f=[];let i=-1,s=-1,l=0;for(;++i<r;){const r=e[i];if(r==c&&(s+=1)<u){const n=o[s];n==c&&(l+=1),f.push(n)}else f.push(r);if(f.length==n)return 0==l?t(...f):fn(n,t,f)}for(;++s<u;){const e=o[s];if(e==c&&(l+=1),f.push(e),f.length==n)return 0==l?t(...f):fn(n,t,f)}return fn(n,t,f)},fn=function(n,t,e){const o=e.length;if(o<n)return cn(n,t,e);let r=-1;for(;++r<o;){if(e[r]==c)return cn(n,t,e)}return t(...e)},sn=n=>function([t,e]){return n(t,e)},ln=function(n,e){const r=new Map,u=[];return n.forEach(((n,e,o)=>function(r,u){const c=n([u,r]);t(c)?o.push(c.then(sn(fn(3,X,[e])))):e.set(c[0],c[1])})(e,r,u)),0==u.length?r:o(u).then(i(r))},hn=function(e,r){return n(e)?R(e,r):null==e?e:"function"==typeof e.then?e.then(r):"function"==typeof e.map?e.map(r):"string"==typeof e||e.constructor==String?function(n,e){const o=R(n,e);return t(o)?o.then(h(V,c,"join","")):o.join("")}(e,r):e.constructor==Set?G(e,r):e.constructor==Map?function(n,e){const r=new Map,u=[];for(const[o,f]of n){const i=e(f,o,n);t(i)?u.push(i.then(j(H,r,"set",o,c))):r.set(o,i)}return 0==u.length?r:o(u).then(i(r))}(e,r):"function"==typeof e[k]?C(e[k](),r):"function"==typeof e[q]?F(e[q](),r):e.constructor==Object?J(e,r):r(e)},an=function(n,e){return null==e?f(hn,c,n):t(n)?n.then(f(hn,c,e)):hn(n,e)},pn=(n,e)=>{if(null==n)throw new TypeError("value is not an Object or Map");if(n.constructor==Object)return function(n,e){const r={},u=[];for(const o in n){const c=e([o,n[o]]);t(c)?u.push(c.then(sn(fn(3,b,[r])))):r[c[0]]=c[1]}return 0==u.length?r:o(u).then(i(r))}(n,e);if(n.constructor==Map)return ln(n,e);throw new TypeError("value is not an Object or Map")};an.entries=function(n,e){return null==e?f(pn,c,n):t(n)?n.then(f(pn,c,e)):pn(n,e)};const dn=function(e,o){if(n(e))return L(e,o);if(null==e)throw new TypeError(`invalid collection ${e}`);if("string"==typeof e||e.constructor==String)return function(n,e){const o=L(n,e);return t(o)?o.then(h(V,c,"join","")):o.join("")}(e,o);if(e.constructor==Set)return function(n,e){const o=new Set,u=n[k]();let i=u.next();for(;!i.done;){const n=e(i.value);if(t(n))return n.then(r(f(U,o,c),D(W,u,e,o)));o.add(n),i=u.next()}return o}(e,o);if(e.constructor==Map)return function(n,e){const o=new Map,u=n[k]();let f=u.next();for(;!f.done;){const n=f.value[0],i=e(f.value[1]);if(t(i))return i.then(r(h(X,o,n,c),D(Y,u,e,o)));o.set(n,i),f=u.next()}return o}(e,o);if(e.constructor==Object)return function(n,e){const o={},u={};for(const f in n){u[f]=!0;const i=e(n[f],f,n);if(t(i))return i.then(r(h(b,o,f,c),N(Q,n,e,o,u)));o[f]=i}return o}(e,o);throw new TypeError(`invalid collection ${e}`)};an.series=function(n,e){return null==e?f(dn,c,n):t(n)?n.then(f(dn,c,e)):dn(n,e)};const yn=function(e,o,r){if(n(e))return en(e,o,r);if(null==e)throw new TypeError(`invalid collection ${e}`);if("string"==typeof e||e.constructor==String)return function(n,e,o){const r=en(n,e,o);return t(r)?r.then(h(V,c,"join","")):r.join("")}(e,o,r);if(e.constructor==Set)return function(n,e,o){const r=new Set,u=n[k]();let c=u.next();for(;!c.done;){const f=o(c.value,c.value,n);if(t(f)){const t=new Set,c=f.then((n=>{t.delete(c),r.add(n)}));return t.add(c),on(n,u,e,o,r,t)}r.add(f),c=u.next()}return r}(e,o,r);if(e.constructor==Map)return function(n,e,o){const r=new Map,u=n[k]();let c=u.next();for(;!c.done;){const f=c.value[0],i=o(c.value[1],f,n);if(t(i)){const t=new Set;r.set(f,i);const c=i.then((n=>{t.delete(c),r.set(f,n)}));return t.add(c),rn(n,u,e,o,r,t)}r.set(f,i),c=u.next()}return r}(e,o,r);if(e.constructor==Object)return function(n,e,o){const r={},u={};for(const c in n){u[c]=!0;const f=o(n[c],c,n);if(t(f)){const t=new Set;r[c]=f;const i=f.then((n=>{t.delete(i),r[c]=n}));return t.add(i),un(n,e,o,r,u,t)}r[c]=f}return r}(e,o,r);throw new TypeError(`invalid collection ${e}`)};an.pool=function(n,e,o){return null==o?h(yn,c,n,e):t(n)?n.then(h(yn,c,e,o)):yn(n,e,o)};const gn=(n,t)=>({[k](){return this},next(){let e=n.next();for(;!e.done;){const{value:o}=e;if(t(o))return{value:o,done:!1};e=n.next()}return e}}),wn=(n,e)=>({isAsyncIteratorDone:!1,[q](){return this},async next(){for(;!this.isAsyncIteratorDone;){const{value:o,done:r}=await n.next();if(r)this.isAsyncIteratorDone=!0;else{const n=e(o);if(t(n)?await n:n)return{value:o,done:!1}}}return{value:void 0,done:!0}}}),vn=function(n,t,e,o){const r=t.length;let u=n.length-1;for(;++o<r;)n[++u]=e(t[o],o,n);return n},xn=function(n,t,e,o){const r=n.length;let u=-1;for(;++e<r;)o[++u]&&t.push(n[e]);return t},jn=function(n,e){const r=n.length,u=[];let f=-1,i=-1;for(;++f<r;){const r=n[f],s=e(r,f,n);if(t(s))return o(vn([s],n,e,f)).then(j(xn,n,u,f-1,c));s&&(u[++i]=r)}return u},bn=(n,t)=>function(){return n(t)},Sn=function(){},Mn=function(n,t,e,o){o&&(n[t]=e)},On=function(e,r){return n(e)?jn(e,r):null==e?e:"string"==typeof e||e.constructor==String?function(n,e){const o=jn(n,e);return t(o)?o.then(h(V,c,"join","")):o.join("")}(e,r):e.constructor==Set?function(n,e){const r=new Set,u=r.add.bind(r),f=[];for(const o of n){const i=e(o,o,n);t(i)?f.push(i.then(h(l,c,bn(u,o),Sn))):i&&r.add(o)}return 0==f.length?r:o(f).then(i(r))}(e,r):e.constructor==Map?function(n,e){const r=new Map,u=[];for(const[o,f]of n){const i=e(f,o,n);t(i)?u.push(i.then(h(l,c,N(H,r,"set",o,f),Sn))):i&&r.set(o,f)}return 0==u.length?r:o(u).then(i(r))}(e,r):"function"==typeof e.filter?e.filter(r):"function"==typeof e[k]?gn(e[k](),r):"function"==typeof e[q]?wn(e[q](),r):e.constructor==Object?function(n,e){const r={},u=[];for(const o in n){const f=n[o],i=e(f,o,n);t(i)?u.push(i.then(j(Mn,r,o,n[o],c))):i&&(r[o]=f)}return 0==u.length?r:o(u).then(i(r))}(e,r):e},mn=Object.values,zn=(Object.prototype.toString,async function(n,e,o){let r=n.next();if(r.done)return o;for(;!r.done;)o=e(o,r.value),t(o)&&(o=await o),r=n.next();return o}),An=async function(n,e,o,r){const u=n.length;for(;++r<u;)o=e(o,n[r],r,n),t(o)&&(o=await o);return o},En=Object.keys,Tn=async function(n,e,o,r,u){const c=r.length;for(;++u<c;){const c=r[u];o=e(o,n[c],c,n),t(o)&&(o=await o)}return o},In=async function(n,e,o,r){for(const[u,c]of r)o=e(o,c,u,n),t(o)&&(o=await o);return o},Dn=function(e,o,r){return n(e)?function(n,e,o){const r=n.length;let u=-1;for(void 0===o&&(o=n[++u]);++u<r;)if(o=e(o,n[u],u,n),t(o))return o.then(j(An,n,e,c,u));return o}(e,o,r):null==e?void 0===r?f(o,e,c):o(r,e):e.constructor==Map?function(n,e,o){const r=n.entries();if(void 0===o){const n=r.next();if(n.done)return o;o=n.value[1]}for(const[u,f]of r)if(o=e(o,f,u,n),t(o))return o.then(j(In,n,e,c,r));return o}(e,o,r):"function"==typeof e[k]?function(n,e,o){let r=n.next();if(r.done)return o;for(void 0===o&&(o=r.value,r=n.next());!r.done;){if(o=e(o,r.value),t(o))return o.then(h(zn,n,e,c));r=n.next()}return o}(e[k](),o,r):"function"==typeof e[q]?async function(n,t,e){let o=await n.next();if(o.done)return e;for(void 0===e&&(e=o.value,o=await n.next());!o.done;)e=await t(e,o.value),o=await n.next();return e}(e[q](),o,r):"function"==typeof e.reduce?e.reduce(o,r):"function"==typeof e.chain?e.chain(f(o,r,c)):"function"==typeof e.flatMap?e.flatMap(f(o,r,c)):e.constructor==Object?function(n,e,o){const r=En(n),u=r.length;let f=-1;for(void 0===o&&(o=n[r[++f]]);++f<u;){const u=r[f];if(o=e(o,n[u],u,n),t(o))return o.then((i=Tn,l=e,h=c,a=r,p=f,(s=n)==c?((n,t,e,o,r)=>function(u){return n(u,t,e,o,r)})(i,l,h,a,p):l==c?((n,t,e,o,r)=>function(u){return n(t,u,e,o,r)})(i,s,h,a,p):h==c?((n,t,e,o,r)=>function(u){return n(t,e,u,o,r)})(i,s,l,a,p):a==c?((n,t,e,o,r)=>function(u){return n(t,e,o,u,r)})(i,s,l,h,p):((n,t,e,o,r)=>function(u){return n(t,e,o,r,u)})(i,s,l,h,a)))}var i,s,l,h,a,p;return o}(e,o,r):void 0===r?f(o,e,c):o(r,e)},Pn=function(n,e,o){if("function"==typeof o){const r=o(n);return t(r)?r.then(h(Dn,n,e,c)):Dn(n,e,r)}return t(o)?o.then(h(Dn,n,e,c)):Dn(n,e,o)},Bn=ArrayBuffer.isView,$n=function(t,e){return n(e)||Bn(e)?function(n,t){const e=n.length,o=t.length;let r=-1;for(;++r<o;)n[e+r]=t[r];return n}(t,e):(t.push(e),t)},kn="function"==typeof Buffer,Cn=kn?Buffer.alloc:Sn,_n=function(n,t){const e=n.length,o=kn&&n.constructor==Buffer?Cn(e+t.length):new n.constructor(e+t.length);return o.set(n),o.set(t,e),o},qn=function(t,e){return n(e)||Bn(e)?_n(t,e):_n(t,[e])},Fn=(n,t)=>new Promise(((n,t)=>function(e,o){t.on("data",(n=>function(t,e,o){return n.write(t,e,o),n})(n)),t.on("end",bn(e,n)),t.on("error",o)})(n,t)),Rn=function(n,t){return null!=(e=t)&&"function"==typeof e.pipe?Fn(n,t):(n.write(t),n);var e},Vn=function(n,t){if(null!=t&&t.constructor==Set){for(const e of t)n.add(e);return n}return n.add(t)},Gn=function(n,t){return n.concat(t)},Hn=function(n,e,o){const r=Dn(n,e(Sn),null);return t(r)?r.then(i(o)):o},Jn=function(e,o,r){if(n(r))return Dn(e,o($n),r);if(Bn(r)){const n=Dn(e,o($n),[]);return t(n)?n.then(f(qn,r,c)):qn(r,n)}if(null==r)return Hn(e,o,r);const u=r.constructor;if("string"==typeof r||u==String){const n=Dn(e,o($n),[r]);return t(n)?n.then(h(V,c,"join","")):n.join("")}return"function"==typeof r.concat?Dn(e,o(Gn),r):"function"==typeof r.write?Dn(e,o(Rn),r):u==Set?Dn(e,o(Vn),r):u==Object?Dn(e,o(A),r):Hn(e,o,r)},Kn=function(n,e,o){if("function"==typeof o){const r=o(n);return t(r)?r.then(h(Jn,n,e,c)):Jn(n,e,r)}return t(o)?o.then(h(Jn,n,e,c)):Jn(n,e,o)},Ln=function(n,t){return n.push(t),n},Nn=n=>new Promise((t=>{setTimeout(t,n)})),Qn=(n,t)=>t,Un=n=>n,Wn=(n,t)=>function(...e){return t(n(...e))},Xn=async function(n,e){const r=[];for await(const o of n){const n=e(o);t(n)&&r.push(n)}return 0==r.length?n:o(r).then(i(n))},Yn=function(e){const r=e.length,u=[],s=[];let l=-1;for(;++l<r;){const o=e[l];if(n(o)){const n=o.length;let t=-1;for(;++t<n;)s.push(o[t])}else if(null==o)s.push(o);else if("function"==typeof o.then)u.push(o.then(f(Ln,s,c)));else if("function"==typeof o[k])for(const n of o)s.push(n);else if("function"==typeof o[q])u.push(Xn(o[q](),f(Ln,s,c)));else if("function"==typeof o.chain){const n=o.chain(Un);t(n)?u.push(n.then(f(Ln,s,c))):s.push(n)}else if("function"==typeof o.flatMap){const n=o.flatMap(Un);t(n)?u.push(n.then(f(Ln,s,c))):s.push(n)}else if("function"==typeof o.reduce){const n=o.reduce(Wn(Qn,f(Ln,s,c)),null);t(n)&&u.push(n)}else if(o.constructor==Object)for(const n in o)s.push(o[n]);else s.push(o)}return 0==u.length?s:o(u).then(i(s))},Zn=function(n){const e=[],r={},u=f(A,r,c),i=Wn(Qn,u);for(const o in n){const c=n[o];if(null!=c)if("function"==typeof c[k])for(const n of c)A(r,n);else if("function"==typeof c[q])e.push(Xn(c[q](),u));else if("function"==typeof c.chain){const n=c.chain(Un);t(n)?e.push(n.then(u)):A(r,n)}else if("function"==typeof c.flatMap){const n=c.flatMap(Un);t(n)?e.push(n.then(u)):u(n)}else if("function"==typeof c.reduce){const n=c.reduce(i,null);t(n)&&e.push(n)}else A(r,c)}return 0==e.length?r:o(e).then((()=>r))},nt=function(e){e.size;const r=[],u=new Set,f=(n,t)=>u.add(t),i=h(V,u,"add",c);for(const o of e)if(n(o)){const n=o.length;let t=-1;for(;++t<n;)u.add(o[t])}else if(null==o)u.add(o);else if("function"==typeof o[k])for(const n of o)u.add(n);else if("function"==typeof o[q])r.push(Xn(o[q](),i));else if("function"==typeof o.chain){const n=o.chain(Un);t(n)?r.push(n.then(i)):u.add(n)}else if("function"==typeof o.flatMap){const n=o.flatMap(Un);t(n)?r.push(n.then(i)):u.add(n)}else if("function"==typeof o.reduce){const n=o.reduce(f,null);t(n)&&r.push(n)}else if(o.constructor==Object)for(const n in o)u.add(o[n]);else u.add(o);return 0==r.length?u:o(r).then((()=>u))},tt=r(Yn,f(((n,t)=>n.join(t)),c,"")),et=function(e,o){if(n(e))return function(n,e){const o=R(n,e);return t(o)?o.then(Yn):Yn(o)}(e,o);if(null==e)return o(e);if("function"==typeof e.then)return e.then(o);if("function"==typeof e.next)return k in e?function(n,t){let e=[],o=0;return{[k](){return this},next(){if(o<e.length){const n=e[o];return o+=1,{value:n,done:!1}}const r=n.next();if(r.done)return r;const u=Dn(t(r.value),Ln,[]);return u.length>1&&(e=u,o=1),{value:u[0],done:!1}}}}(e,o):function(n,e){const o=[],r=new Set;return{isAsyncIteratorDone:!1,[q](){return this},toString:()=>"[object FlatMappingAsyncIterator]",async next(){for(;!this.isAsyncIteratorDone||o.length>0||r.size>0;){if(!this.isAsyncIteratorDone){const{value:u,done:f}=await n.next();if(f)this.isAsyncIteratorDone=f;else{const n=e(u);if(t(n)){const t=n.then(h(Dn,c,Ln,o)).then((()=>r.delete(t)));r.add(t)}else{const e=Dn(n,Ln,o);if(t(e)){const n=e.then((()=>r.delete(n)));r.add(n)}}}}if(o.length>0)return{value:o.shift(),done:!1};r.size>0&&await nn([Nn(1e3),...r])}return{value:void 0,done:!0}}}}(e,o);if("function"==typeof e.chain)return e.chain(o);if("function"==typeof e.flatMap)return e.flatMap(o);const r=e.constructor;return r==Object?function(n,e){const o=J(n,e);return t(o)?o.then(Zn):Zn(o)}(e,o):r==Set?function(n,e){const o=G(n,e);return t(o)?o.then(nt):nt(o)}(e,o):"string"==typeof e||r==String?function(n,e){const o=R(n,e);return t(o)?o.then(tt):tt(o)}(e,o):o(e)},ot=async function(n,e,o){const r=n.length;for(;++o<r;){const r=e(n[o]);t(r)&&await r}return n},rt=async function(n,e,o){for(const r in n){if(r in o)continue;const u=e(n[r]);t(u)&&await u}return n},ut=async function(n,e){let o=n.next();for(;!o.done;){const r=e(o.value);t(r)&&await r,o=n.next()}return n},ct=function(e,r){return n(e)?function(n,e){const r=n.length,u=[];let c=-1;for(;++c<r;){const o=e(n[c]);t(o)&&u.push(o)}return 0==u.length?n:o(u).then(i(n))}(e,r):null==e?e:"function"==typeof e.forEach?(e.forEach(r),e):"function"==typeof e[k]?function(n,e){const r=[];for(const o of n){const n=e(o);t(n)&&r.push(n)}return 0==r.length?n:o(r).then(i(n))}(e[k](),r):"function"==typeof e[q]?Xn(e[q](),r):e.constructor==Object?function(n,e){const r=[];for(const o in n){const u=e(n[o]);t(u)&&r.push(u)}return 0==r.length?n:o(r).then(i(n))}(e,r):e},ft=function(n,e){return"function"==typeof n?f(ct,c,n):t(n)?n.then(f(ct,c,e)):ct(n,e)},it=function(e,o){if(n(e))return function(n,e){const o=n.length;let r=-1;for(;++r<o;){const o=e(n[r]);if(t(o))return o.then(D(ot,n,e,r))}return n}(e,o);if(null==e)throw new TypeError(`invalid collection ${e}`);if("function"==typeof e[k])return function(n,e){let o=n.next();for(;!n.done;){const r=e(o.value);if(t(r))return r.then(B(ut,n,e));o=n.next()}return n}(e[k](),o);if("function"==typeof e[q])return async function(n,e){for await(const o of n){const n=e(o);t(n)&&await n}return n}(e[q](),o);if(e.constructor==Object)return function(n,e){const o={};for(const r in n){o[r]=!0;const u=e(n[r]);if(t(u))return u.then(D(rt,n,e,o))}return n}(e,o);throw new TypeError(`invalid collection ${e}`)};ft.series=function(n,e){return"function"==typeof n?f(it,c,n):t(n)?n.then(f(it,c,e)):it(n,e)};const st=function(n){const t=n.then((n=>[n,t]));return t},lt=async function(n,e,o,r){const u=n.length;for(;++o<u;){const u=e(n[o]);if(t(u))r.add(st(u));else if(u)return!0}for(;r.size>0;){const[n,t]=await nn(r);if(r.delete(t),n)return!0}return!1},ht=function(n,e){const o=n.length;let r=-1;for(;++r<o;){const o=e(n[r]);if(t(o))return lt(n,e,r,new Set([st(o)]));if(o)return!0}return!1},at=async function(n,e,o,r=20){let u=n.next();for(t(u)&&(u=await u);!u.done;){if(o.size>=r){const[n,t]=await nn(o);if(o.delete(t),n)return!0}const c=e(u.value);if(t(c))o.add(st(c));else if(c)return!0;u=n.next(),t(u)&&(u=await u)}for(;o.size>0;){const[n,t]=await nn(o);if(o.delete(t),n)return!0}return!1},pt=function(e,o){return n(e)?ht(e,o):null==e?o(e):"function"==typeof e[k]?function(n,e){for(const o of n){const r=e(o);if(t(r))return at(n,e,new Set([st(r)]));if(r)return!0}return!1}(e[k](),o):"function"==typeof e[q]?at(e[q](),o,new Set):"function"==typeof e.reduce?e.reduce((n=>function(e,o){return!0===e?e:t(e)?e.then(f((n=>function(t,e){return!!t||n(e)})(n),c,o)):!!e||n(o)})(o),!1):e.constructor==Object?ht(mn(e),o):o(e)},dt=function(n,e){const r=n.length,u=[];let f=-1;for(;++f<r;){const o=e(n[f]);if(t(o))u.push(o);else if(!o)return!1}return 0==u.length||o(u).then(h(V,c,"every",Boolean))},yt=(n,t,e)=>!!t&&n(e),gt=function(e,r){return n(e)?dt(e,r):null==e?r(e):"function"==typeof e[k]?function(n,e){const r=[];for(const o of n){const n=e(o);if(t(n))r.push(n);else if(!n)return!1}return 0==r.length||o(r).then(h(V,c,"every",Boolean))}(e[k](),r):"function"==typeof e[q]?async function(n,e,o,r=20){let u=await n.next();for(;!u.done;){if(o.size>=r){const[n,t]=await nn(o);if(o.delete(t),!n)return!1}const c=e(u.value);if(t(c))o.add(st(c));else if(!c)return!1;u=await n.next()}for(;o.size>0;){const[n,t]=await nn(o);if(o.delete(t),!n)return!1}return!0}(e[q](),r,new Set):"function"==typeof e.reduce?e.reduce((n=>function(e,o){return!1!==e&&(t(e)?e.then(h(yt,n,c,o)):!!e&&n(o))})(r),!0):e.constructor==Object?dt(mn(e),r):r(e)},wt=function(n,e){const o=n.length;for(;++e<o;){const o=n[e];if(t(o))return o.then(h(l,c,B(wt,n,e),i(!1)));if(!o)return!1}return!0},vt=async function(n,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...n)),t(r)&&(r=await r),!r)return!1}return!0},xt=function(n,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...n)),t(o))return o.then(h(l,c,D(vt,n,e,r),i(!1)));if(!o)return!1}return!0},jt=function(n,e){const o=n.length;for(;++e<o;){const o=n[e];if(t(o))return o.then(h(l,c,i(!0),B(jt,n,e)));if(o)return!0}return!1},bt=async function(n,e,o){const r=e.length;for(;++o<r;){let r=e[o];if("function"==typeof r&&(r=r(...n)),t(r)&&(r=await r),r)return!0}return!1},St=function(n,e){const o=e.length;let r=-1;for(;++r<o;){let o=e[r];if("function"==typeof o&&(o=o(...n)),t(o))return o.then(h(l,c,i(!0),D(bt,n,e,r)));if(o)return!0}return!1},Mt=n=>!n,Ot=function(n,e){const o=e(...n);return t(o)?o.then(Mt):!o},mt=function(n,t,e,o,r){return t==c?((n,t,e,o)=>function(...r){return n(r,t,e,o)})(n,e,o,r):e==c?((n,t,e,o)=>function(...r){return n(t,r,e,o)})(n,t,o,r):o==c?((n,t,e,o)=>function(...r){return n(t,e,r,o)})(n,t,e,r):((n,t,e,o)=>function(...r){return n(t,e,o,r)})(n,t,e,o)},zt=function(n,e,r,u){const c=r(...n),f=u(...n);return t(c)||t(f)?o([c,f]).then(sn(e)):e(c,f)},At=function(n,e,r,u){const c=r(...n);return t(c)||t(u)?o([c,u]).then(sn(e)):e(c,u)},Et=function(n,e,r,u){const c=u(...n);return t(r)||t(c)?o([r,c]).then(sn(e)):e(r,c)},Tt=n=>function(...r){const u=r.pop(),f=r.pop(),i="function"==typeof f,s="function"==typeof u;return i&&s?0==r.length?mt(zt,c,n,f,u):e(r)?o(r).then(j(zt,c,n,f,u)):zt(r,n,f,u):i?0==r.length?mt(At,c,n,f,u):e(r)?o(r).then(j(At,c,n,f,u)):At(r,n,f,u):s?0==r.length?mt(Et,c,n,f,u):e(r)?o(r).then(j(Et,c,n,f,u)):Et(r,n,f,u):t(f)||t(u)?o([f,u]).then(sn(n)):n(f,u)},It=Tt((function(n,t){return n==t})),Dt=Tt(((n,t)=>n>t)),Pt=Tt(((n,t)=>n<t)),Bt=Tt(((n,t)=>n>=t)),$t=Tt(((n,t)=>n<=t)),kt=/[.|[|\]]+/,Ct=function(n,t){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const r=n(o);return e.set(o,r),e.size>t&&e.clear(),r};return o.cache=e,o}((function(n){const t=n.length-1,e="["==n[0],o="]"==n[t];return e&&o?n.slice(1,t).split(kt):e?n.slice(1).split(kt):o?n.slice(0,t).split(kt):n.split(kt)}),500),_t=t=>n(t)?t:"string"==typeof t?Ct(t):[t],qt=function(n,t){const e=_t(t),o=e.length;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;return u},Ft=function(n,t,e){const o=null==n?void 0:qt(n,t);return void 0===o?"function"==typeof e?e(n):e:o},Rt=function(t,e,o){if(!(n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(t))return t;const r=_t(o),u=r.length,c=u-1,f={...t};let i=f,s=-1;for(;++s<u;){const t=r[s];if(s==c)i[t]=e;else{const e=i[t],o=n(e)?e.slice():{...e};i[t]=o,i=o}}return f},Vt=function(n,e,o){if("function"==typeof o){const r=o(n);return t(r)?r.then(h(Rt,n,c,e)):Rt(n,r,e)}return t(o)?o.then(h(Rt,n,c,e)):Rt(n,o,e)},Gt=function(n,t){if(null==n)return n;const e=t.length;let o={},r=-1;for(;++r<e;){const e=t[r],u=qt(n,e);null!=u&&(o=Rt(o,u,e))}return o},Ht=function(n,t){if(null==n)return;const e=_t(t),o=e.length-1;let r=-1,u=n;for(;++r<o;)if(u=u[e[r]],null==u)return;const c=e[r];null!=u&&c in u&&delete u[c]},Jt=function(t){const e={};for(const o in t){const r=t[o];n(r)?e[o]=Kt(r):null!=r&&r.constructor==Object?e[o]=Jt(r):e[o]=r}return e},Kt=function(t){const e=t.length,o=[];let r=-1;for(;++r<e;){const e=t[r];n(e)?o[r]=Kt(e):null!=e&&e.constructor==Object?o[r]=Jt(e):o[r]=e}return o},Lt=function(t,e){const o=e.length,r=n(u=t)?Kt(u):null==u?u:u.constructor==Object?Jt(u):u;var u;let c=-1;for(;++c<o;)Ht(r,e[c]);return r},Nt=(n,...t)=>fn(n.length,n,t);Nt.arity=function(n,t,...e){return fn(n,t,e)};return{pipe:function(...n){const t=n.pop().reduce(r);return 0==n.length?t:e(n)?o(n).then(f(u,t,c)):t(...n)},compose:function(...n){const t=n.pop().reduceRight(r);return 0==n.length?t:e(n)?o(n).then(f(u,t,c)):t(...n)},tap:y,forEach:ft,switchCase:(...n)=>{const t=n.pop();return w(t)?$(t,-2):0==n.length?p(P,t,c,-2):e(n)?o(n).then(h(P,t,c,-2)):P(t,n,-2)},tryCatch:function(...n){if(n.length>2){const t=n.pop(),r=n.pop();return e(n)?o(n).then(h(I,r,t,c)):I(r,t,n)}const t=n[0],r=n[1];return function(...n){return I(t,r,n)}},all:z,assign:function(n,e){return null==e?f(E,c,n):t(n)?n.then(f(E,c,e)):E(n,e)},get:function(e,o,r){return"string"==typeof e||"number"==typeof e||n(e)?h(Ft,c,e,o):t(e)?e.then(h(Ft,c,o,r)):Ft(e,o,r)},set:function(n,e,o){return null==o?h(Vt,c,n,e):t(n)?n.then(h(Vt,c,e,o)):Vt(n,e,o)},pick:function(n,e){return null==e?f(Gt,c,n):t(n)?n.then(f(Gt,c,e)):Gt(n,e)},omit:function(n,e){return null==e?f(Lt,c,n):t(n)?n.then(f(Lt,c,e)):Lt(n,e)},map:an,filter:function(n,t){return"function"==typeof n?f(On,c,n):On(n,t)},flatMap:(n,e)=>"function"==typeof n?f(et,c,n):t(n)?n.then(f(et,c,e)):et(n,e),reduce:function(...n){return"function"==typeof n[0]?h(Pn,c,n[0],n[1]):t(n[0])?n[0].then(h(Pn,c,n[1],n[2])):Pn(n[0],n[1],n[2])},transform:function(...n){return"function"==typeof n[0]?h(Kn,c,n[0],n[1]):t(n[0])?n[0].then(h(Kn,c,n[1],n[2])):Kn(n[0],n[1],n[2])},and:function(...n){const t=n.pop();return w(t)?wt(t,-1):0==n.length?a(xt,c,t):e(n)?o(n).then(f(xt,c,t)):xt(n,t)},or:function(...n){const t=n.pop();return w(t)?jt(t,-1):0==n.length?a(St,c,t):e(n)?o(n).then(f(St,c,t)):St(n,t)},not:function(...n){const t=n.pop();return"function"==typeof t?0==n.length?a(Ot,c,t):e(n)?o(n).then(f(Ot,c,t)):Ot(n,t):!t},some:function(n,e){return"function"==typeof n?f(pt,c,n):t(n)?n.then(f(pt,c,e)):pt(n,e)},every:function(n,e){return"function"==typeof n?f(gt,c,n):t(n)?n.then(f(gt,c,e)):gt(n,e)},eq:It,gt:Dt,lt:Pt,gte:Bt,lte:$t,thunkify:(n,...t)=>function(){return e(t)?o(t).then(f(u,n,c)):n(...t)},always:i,curry:Nt,__:c}}());