functype 0.8.69 → 0.8.70
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/{Either-BfXNbTHo.d.ts → Either-DlOLCe3b.d.ts} +20 -20
- package/dist/{Map-vivbm5n0.d.ts → Map-R4vpSnzG.d.ts} +2 -2
- package/dist/{Valuable-CtuVEKTZ.d.ts → Valuable-D4BtNlTV.d.ts} +1 -1
- package/dist/chunk-5ABR3A24.mjs +49 -0
- package/dist/chunk-5ABR3A24.mjs.map +1 -0
- package/dist/chunk-7PQA3W7W.mjs.map +1 -1
- package/dist/chunk-TQJDL6YW.mjs.map +1 -1
- package/dist/either/index.d.ts +2 -2
- package/dist/either/index.mjs +1 -1
- package/dist/fpromise/index.d.ts +2 -2
- package/dist/fpromise/index.mjs +1 -1
- package/dist/index.d.ts +720 -7
- package/dist/index.mjs +1 -1
- package/dist/list/index.d.ts +2 -2
- package/dist/list/index.mjs +1 -1
- package/dist/map/index.d.ts +3 -3
- package/dist/map/index.mjs +1 -1
- package/dist/option/index.d.ts +2 -2
- package/dist/option/index.mjs +1 -1
- package/dist/set/index.d.ts +2 -2
- package/dist/set/index.mjs +1 -1
- package/dist/try/index.d.ts +2 -2
- package/dist/try/index.mjs +1 -1
- package/dist/tuple/index.d.ts +1 -1
- package/package.json +20 -12
- package/dist/chunk-5DWCHDSA.mjs +0 -39
- package/dist/chunk-5DWCHDSA.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { T as Type, F as Functor, a as Typeable, V as Valuable, b as AsyncFunctor, E as ExtractTag } from './Valuable-D4BtNlTV.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Foldable type class represents data structures that can be folded to a summary value.
|
|
@@ -331,6 +331,25 @@ type IterableType<A extends Type> = {
|
|
|
331
331
|
toArray<B = A>(): readonly B[];
|
|
332
332
|
} & Iterable<A> & Functor<A> & AsyncFunctor<A> & Traversable<A>;
|
|
333
333
|
|
|
334
|
+
/**
|
|
335
|
+
* Defines conversion methods for collection types
|
|
336
|
+
* @interface
|
|
337
|
+
* @module Collections
|
|
338
|
+
* @category Core
|
|
339
|
+
*/
|
|
340
|
+
type Converters<A> = {
|
|
341
|
+
toList(): List<A>;
|
|
342
|
+
toSet(): Set<A>;
|
|
343
|
+
toString(): string;
|
|
344
|
+
};
|
|
345
|
+
/**
|
|
346
|
+
* Represents a collection with conversion capabilities
|
|
347
|
+
* @interface
|
|
348
|
+
* @module Collections
|
|
349
|
+
* @category Core
|
|
350
|
+
*/
|
|
351
|
+
type Collection<A> = Converters<A>;
|
|
352
|
+
|
|
334
353
|
type Set<A> = {
|
|
335
354
|
add: (value: A) => Set<A>;
|
|
336
355
|
remove: (value: A) => Set<A>;
|
|
@@ -433,25 +452,6 @@ declare const List: (<A>(values?: Iterable<A>) => List<A>) & {
|
|
|
433
452
|
fromBinary: <A>(binary: string) => List<A>;
|
|
434
453
|
};
|
|
435
454
|
|
|
436
|
-
/**
|
|
437
|
-
* Defines conversion methods for collection types
|
|
438
|
-
* @interface
|
|
439
|
-
* @module Collections
|
|
440
|
-
* @category Core
|
|
441
|
-
*/
|
|
442
|
-
type Converters<A> = {
|
|
443
|
-
toList(): List<A>;
|
|
444
|
-
toSet(): Set<A>;
|
|
445
|
-
toString(): string;
|
|
446
|
-
};
|
|
447
|
-
/**
|
|
448
|
-
* Represents a collection with conversion capabilities
|
|
449
|
-
* @interface
|
|
450
|
-
* @module Collections
|
|
451
|
-
* @category Core
|
|
452
|
-
*/
|
|
453
|
-
type Collection<A> = Converters<A>;
|
|
454
|
-
|
|
455
455
|
type TestEither<L extends Type, R extends Type> = Either<L, R> & Functor<R> & AsyncFunctor<R>;
|
|
456
456
|
declare const Right: <L extends Type, R extends Type>(value: R) => Either<L, R>;
|
|
457
457
|
declare const Left: <L extends Type, R extends Type>(value: L) => Either<L, R>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { T as Traversable, I as IterableType, O as Option, a as Collection, S as Serializable, P as Pipe, F as Foldable, M as Matchable } from './Either-
|
|
2
|
-
import {
|
|
1
|
+
import { T as Traversable, I as IterableType, O as Option, a as Collection, S as Serializable, P as Pipe, F as Foldable, M as Matchable } from './Either-DlOLCe3b.js';
|
|
2
|
+
import { T as Type, a as Typeable, V as Valuable } from './Valuable-D4BtNlTV.js';
|
|
3
3
|
import { Tuple } from './tuple/index.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -56,4 +56,4 @@ declare function Valuable<Tag extends string, V, T = object>(params: ValuablePar
|
|
|
56
56
|
*/
|
|
57
57
|
type Valuable<Tag extends string, V, T = object> = ReturnType<typeof Valuable<Tag, V, T>>;
|
|
58
58
|
|
|
59
|
-
export { type AbstractFunctor as A, type ExtractTag as E, type Functor as F,
|
|
59
|
+
export { type AbstractFunctor as A, type ExtractTag as E, type Functor as F, type Type as T, Valuable as V, Typeable as a, type AsyncFunctor as b, type ArrayFunctor as c, type TypeableParams as d, type ValuableParams as e, isTypeable as i };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import {b,a as a$1,d}from'./chunk-7PQA3W7W.mjs';import {a}from'./chunk-TQJDL6YW.mjs';import G from'safe-stable-stringify';function E(e,t){return Object.assign(e,t)}var oe=Set;var Y=e=>{let t=new oe(e),r=h(t),n={...r,_tag:"Set",add:o=>Y([...t,o]),remove:o=>{let a=new oe(t);return a.delete(o),Y(a)},contains:o=>t.has(o),has:o=>t.has(o),map:o=>Y(r.map(o)),flatMap:o=>Y(r.flatMap(o)),fold:(o,a)=>{if(t.size===0)return o();let s=Array.from(t);if(s.length===0)return o();let l=s[0];return l===void 0?o():a(l)},foldLeft:o=>a=>r.foldLeft(o)(a),foldRight:o=>a=>r.foldRight(o)(a),toList:()=>h(t),toSet:()=>n,toString:()=>`Set(${Array.from(t).toString()})`,toValue:()=>({_tag:"Set",value:Array.from(t)}),pipe:o=>o(Array.from(t)),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Set",value:Array.from(t)}),toYAML:()=>`_tag: Set
|
|
2
|
+
value: ${JSON.stringify(Array.from(t))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Set",value:Array.from(t)})).toString("base64")})};return n},Ce=e=>Y(e),Te={fromJSON:e=>{let t=JSON.parse(e);return K(t.value)},fromYAML:e=>{let r=e.split(`
|
|
3
|
+
`)[1]?.split(": ")[1];if(!r)return K([]);let n=JSON.parse(r);return K(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Te.fromJSON(t)}},K=E(Ce,Te);var w=e=>{let t=Array.from(e||[]),r={_tag:"List",[Symbol.iterator]:()=>t[Symbol.iterator](),get size(){return t.length},get length(){return t.length},map:n=>w(t.map(n)),flatMap:n=>w(t.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(t.map(async a=>await n(a)));return w(o.flatMap(a=>Array.from(a)))},forEach:n=>t.forEach(n),contains:n=>t.includes(n),count:n=>t.filter(n).length,exists:n=>t.some(n),filter:n=>w(t.filter(n)),filterNot:n=>w(t.filter(o=>!n(o))),filterType:n=>w(t.filter(o=>b(o,n))),find:(n,o)=>{let a=t.find(s=>n(s)&&(o?b(s,o):true));return T(a)},get head(){return t[0]},get headOption(){return t.length>0?T(t[0]):B()},get isEmpty(){return t.length===0},toArray:()=>[...t],reduce:n=>t.reduce(n),reduceRight:n=>t.reduceRight(n),fold:(n,o)=>{if(t.length===0)return n();let a=t[0];return o(a)},foldLeft:n=>o=>t.reduce(o,n),foldRight:n=>o=>t.reduceRight((a,s)=>o(s,a),n),match:n=>t.length===0?n.Empty():n.NonEmpty([...t]),remove:n=>w(t.filter(o=>o!==n)),removeAt:n=>n<0||n>=t.length?r:w([...t.slice(0,n),...t.slice(n+1)]),add:n=>w([...t,n]),get:n=>T(t[n]),concat:n=>w([...t,...n.toArray()]),drop:n=>w(t.slice(n)),dropRight:n=>w(t.slice(0,-n)),dropWhile:n=>w(t.slice(t.findIndex(o=>!n(o)))),flatten:()=>w(t.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>K(t),toString:()=>`List(${G(t)})`,toValue:()=>({_tag:"List",value:t}),pipe:n=>n([...t]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:t}),toYAML:()=>`_tag: List
|
|
4
|
+
value: ${G(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:t})).toString("base64")})};return r},Fe=e=>w(e),ge={fromJSON:e=>{let t=JSON.parse(e);return h(t.value)},fromYAML:e=>{let r=e.split(`
|
|
5
|
+
`)[1]?.split(": ")[1];if(!r)return h([]);let n=JSON.parse(r);return h(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return ge.fromJSON(t)}},h=E(Fe,ge);var Ae=e=>({_tag:"Right",value:e,isLeft:()=>false,isRight:()=>true,getOrElse:t=>e,getOrThrow:()=>e,map:t=>y(t(e)),mapAsync:t=>t(e).then(r=>y(r)).catch(r=>Promise.resolve(f(r))),merge:t=>t.isLeft()?f(t.value):y([e,t.value]),flatMap:t=>t(e),flatMapAsync:t=>t(e).catch(r=>f(r)),toOption:()=>F(e),toList:()=>h([e]),toString:()=>`Right(${G(e)})`,[Symbol.iterator]:function*(){yield e;},yield:function*(){yield e;},traverse:t=>{let r=t(e);return r.isLeft()?f(r.value):y([r.value])},lazyMap:function*(t){yield y(t(e));},tap:t=>(t(e),y(e)),tapLeft:t=>y(e),mapLeft:t=>y(e),bimap:(t,r)=>y(r(e)),fold:(t,r)=>r(e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),match:t=>t.Right(e),swap:()=>f(e),then:(t,r)=>Promise.resolve(e).then(t,r),toValue:()=>({_tag:"Right",value:e}),pipeEither:(t,r)=>r(e),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Right",value:e}),toYAML:()=>`_tag: Right
|
|
6
|
+
value: ${G(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Right",value:e})).toString("base64")})}),be=e=>({_tag:"Left",value:e,isLeft:()=>true,isRight:()=>false,getOrElse:t=>t,getOrThrow:()=>{throw e},map:t=>f(e),mapAsync:t=>Promise.resolve(f(e)),merge:t=>f(e),flatMap:t=>f(e),flatMapAsync:t=>Promise.resolve(f(e)),toOption:()=>B(),toList:()=>h(),toString:()=>`Left(${G(e)})`,[Symbol.iterator]:function*(){},yield:function*(){},traverse:t=>f(e),lazyMap:function*(t){yield f(e);},tap:t=>f(e),tapLeft:t=>(t(e),f(e)),mapLeft:t=>f(t(e)),bimap:(t,r)=>f(t(e)),fold:(t,r)=>t(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,match:t=>t.Left(e),swap:()=>y(e),then:(t,r)=>Promise.reject(e).then(null,r),toValue:()=>({_tag:"Left",value:e}),pipeEither:(t,r)=>t(e),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Left",value:e}),toYAML:()=>`_tag: Left
|
|
7
|
+
value: ${G(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Left",value:e})).toString("base64")})}),y=e=>Ae(e),f=e=>be(e),At=e=>e.isRight(),bt=e=>e.isLeft(),Et=(e,t)=>{try{return y(e())}catch(r){return f(t(r))}},Oe=e=>Ae(e);console.assert(Oe);var Me=e=>be(e);console.assert(Me);var kt=async(e,t)=>{try{let r=await e();return y(r)}catch(r){return f(t(r))}},he={sequence:e=>{let t=[];for(let r of e){if(r.isLeft())return f(r.value);t.push(r.value);}return y(t)},traverse:(e,t)=>he.sequence(e.map(t)),fromNullable:(e,t)=>e==null?f(t):y(e),fromPredicate:(e,t,r)=>t(e)?y(e):f(r),ap:(e,t)=>e.flatMap(r=>t.map(r)),fromPromise:async(e,t)=>{try{let r=await e;return y(r)}catch(r){return f(t(r))}},fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Right"?y(t.value):f(t.value)},fromYAML:e=>{let t=e.split(`
|
|
8
|
+
`),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)throw new Error("Invalid YAML format for Either");let o=JSON.parse(n);return r==="Right"?y(o):f(o)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return he.fromJSON(t)}};function U(e,t){return {brand:e,validate:t,of:r=>t(r)?T(a(e,r)):T.none(),from:r=>t(r)?y(a(e,r)):f(`Invalid ${e}: validation failed`),unsafeOf:r=>{if(!t(r))throw new Error(`Invalid ${e}: validation failed`);return a(e,r)},is:r=>{try{return t(r)}catch{return false}},refine:(r,n)=>U(r,o=>t(o)&&n(o))}}var Ne=U("PositiveNumber",e=>e>0),vt=U("NonNegativeNumber",e=>e>=0),Ut=U("IntegerNumber",e=>Number.isInteger(e)),Bt=Ne.refine("PositiveInteger",e=>Number.isInteger(e)),Pt=U("NonEmptyString",e=>e.length>0),Ct=U("EmailAddress",e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),Ft=U("UrlString",e=>{try{return new URL(e),!0}catch{return !1}}),Ot=U("UUID",e=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)),Mt=U("ISO8601Date",e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function Nt(e,t,r){return U(e,n=>n>=t&&n<=r)}function Vt(e,t,r){return U(e,n=>n.length>=t&&n.length<=r)}function _t(e,t){return U(e,r=>t.test(r))}var se=e=>{let t=n=>typeof n=="function"?n():n,r={when:(n,o)=>e.resolved?r:n?se({resolved:true,value:t(o)}):r,elseWhen:(n,o)=>e.resolved?r:n?se({resolved:true,value:t(o)}):r,else:n=>e.resolved?e.value:t(n),getOrThrow:()=>{if(!e.resolved)throw new Error("Conditional expression has no matching condition");return e.value}};return r},Ee=()=>se({resolved:false}),Ve={of:()=>Ee(),match:e=>t=>{let r=t[e];if(r===void 0)throw new Error(`No case defined for value: ${String(e)}`);return typeof r=="function"?r():r},lazy:()=>{let e={resolved:false},t={when:(r,n)=>(e.resolved||r()&&(e.resolved=true,e.value=n()),t),elseWhen:(r,n)=>(e.resolved||r()&&(e.resolved=true,e.value=n()),t),else:r=>e.resolved?e.value:r()};return t}},It=E(Ee,Ve);var X=e=>{let t=(n,o)=>typeof n=="function"?n(o):n,r={case:(n,o)=>e.resolved?r:n(e.value)?X({...e,resolved:true,result:t(o,e.value)}):r,caseValue:(n,o)=>{if(e.resolved)return r;if(e.value===n){let a=typeof o=="function"?o():o;return X({...e,resolved:true,result:a})}return r},caseValues:(n,o)=>{if(e.resolved)return r;if(n.includes(e.value)){let a=typeof o=="function"?o():o;return X({...e,resolved:true,result:a})}return r},default:n=>e.resolved?e.result:t(n,e.value),getOrThrow:()=>{if(!e.resolved)throw new Error(`No matching case for value: ${String(e.value)}`);return e.result}};return r},_e=e=>X({value:e,resolved:false}),Ke={exhaustive:e=>t=>{let r=e[t];if(r===void 0)throw new Error(`No case defined for value: ${String(t)}`);return r},partial:e=>({withDefault:t=>r=>{let n=e[r];return n!==void 0?typeof n=="function"?n(r):n:typeof t=="function"?t(r):t}}),withGuards:e=>({withDefault:t=>r=>{for(let[n,o]of e)if(n(r))return typeof o=="function"?o(r):o;return typeof t=="function"?t(r):t}})},Ht=E(_e,Ke);function J(e,t){return {...a$1({_tag:e,impl:t}),toString(){return `${e}()`}}}var Q="Throwable",R=class e extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=Q;this.name=n?.taskInfo?.name||Q,Object.defineProperties(this,{_tag:{value:Q,writable:false,configurable:false},data:{value:n?.data,writable:false,configurable:false},taskInfo:{value:n?.taskInfo,writable:false,configurable:false},name:{value:n?.taskInfo?.name||Q,writable:false,configurable:false}}),n?.cause&&Object.defineProperty(this,"cause",{value:n.cause,writable:false,configurable:false}),n?.stack?this.stack=n.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}static apply(r,n,o){if(r instanceof Error){let i=new e(r.message,{data:n,cause:r.cause||void 0,stack:r.stack||void 0,taskInfo:o});for(let u of Object.keys(r))u in i||(i[u]=r[u]);return i}if(r&&typeof r=="object"){let i=r,u=typeof i.message=="string"?i.message:typeof i.error=="string"?i.error:`Object error: ${JSON.stringify(i,Object.getOwnPropertyNames(i).filter(p=>i[p]!==void 0))}`,m=new e(u,{data:n||i,taskInfo:o});for(let p of Object.keys(i))p in m||(m[p]=i[p]);return m}if(typeof r=="function"){let i=r.name||"anonymous function",u=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new e(`Function error: ${i}`,{data:n||{functionType:typeof r,functionName:i,functionString:u},taskInfo:o})}let a=typeof r,s=r===null?"null":r===void 0?"undefined":String(r);if(a==="number"){let i=r,u=Number.isNaN(i)?"Number error: NaN":Number.isFinite(i)?`Number error: ${i}`:`Number error: ${i>0?"Infinity":"-Infinity"}`;return new e(u,{data:n||{errorType:a,errorValue:i,originalError:r},taskInfo:o})}if(a==="bigint")return new e(`BigInt error: ${r}n`,{data:n||{errorType:a,errorValue:String(r),originalError:r},taskInfo:o});if(a==="boolean")return new e(`Boolean error: ${r}`,{data:n||{errorType:a,errorValue:r,originalError:r},taskInfo:o});if(a==="symbol"){let i=r.description||"unnamed symbol";return new e(`Symbol error: Symbol(${i})`,{data:n||{errorType:a,symbolDescription:i,originalError:r},taskInfo:o})}let l=typeof r=="string"?r:`${a.charAt(0).toUpperCase()+a.slice(1)} error: ${s}`;return new e(l,{data:n||{errorType:a,errorValue:s,originalError:r},taskInfo:o})}};var L=e=>{let t=new Promise((r,n)=>{try{e(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>L((n,o)=>{t.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>L((n,o)=>{t.then(a=>{try{let s=r(a);"_tag"in s&&s._tag==="FPromise"?s.then(n,o):Promise.resolve(s).then(n,o);}catch(s){o(s);}}).catch(o);}),flatMapAsync:async r=>{let n=await t,o=r(n);return o instanceof Promise?o:new Promise((a,s)=>{o.then(a,s);})},tap:r=>L((n,o)=>{t.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>L((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};o(r(a,s));}catch(s){o(s);}});}),tapError:r=>L((n,o)=>{t.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>L(n=>{t.then(n).catch(()=>n(r));}),recoverWith:r=>L(n=>{t.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>L((n,o)=>{t.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>L((o,a)=>{t.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(l){a(l);}else a(s);});}),logError:r=>L((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};r(a,s);}catch{}finally{o(a);}});}),then:(r,n)=>t.then(r,n),toPromise:()=>t,toEither:()=>t,fold:(r,n)=>L((o,a)=>{t.then(s=>{try{o(n(s));}catch(l){a(l);}}).catch(s=>{try{o(r(s));}catch(l){a(l);}});})}},ze={resolve:e=>L(t=>t(e)),reject:e=>L((t,r)=>r(e)),from:e=>L((t,r)=>{e.then(t).catch(r);}),fromEither:e=>e.isRight()?L(t=>t(e.value)):L((t,r)=>r(e.value)),all:e=>L((t,r)=>{Promise.all(e.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(t).catch(r);}),allSettled:e=>L(t=>{let r=[],n=0;if(e.length===0){t([]);return}e.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=y(s),n++,n===e.length&&t(r);}).catch(s=>{r[a]=f(s),n++,n===e.length&&t(r);});});}),race:e=>L((t,r)=>{Promise.race(e).then(t,r);}),any:e=>L((t,r)=>{if(typeof Promise.any=="function")Promise.any(e).then(t,r);else {let n=0,o=[];if(e.length===0){r(new AggregateError([],"All promises were rejected"));return}e.forEach((a,s)=>{Promise.resolve(a).then(t).catch(l=>{o[s]=l,n++,n===e.length&&r(new AggregateError(o,"All promises were rejected"));});});}}),retryWithBackoff:(e,t)=>{let{maxRetries:r,baseDelay:n=100,shouldRetry:o=()=>true}=t;return L((a,s)=>{let l=0,i=()=>{e().toPromise().then(a).catch(u=>{if(l++,l<=r&&o(u,l)){let m=n*Math.pow(2,l-1);setTimeout(i,m);}else s(u);});};i();})}},ae=E(L,ze);function Ie(e){return e instanceof Error&&typeof e=="object"&&true&&e._tag==="Throwable"}var ke=(e,t,r)=>{let n=r?.name||"TaskException",o=r?.description||"Unspecified TaskException",a={name:n,description:o},s=R.apply(e,t,a);return {...J("TaskException",f(s)),_task:a}},Le=(e,t)=>{let r=t?.name||"TaskResult",n=t?.description||"Unspecified TaskResult";return {...J("TaskResult",y(e)),_task:{name:r,description:n}}},ie=()=>{let e=new AbortController,t=[];return {token:{get isCancelled(){return e.signal.aborted},get signal(){return e.signal},onCancel(n){e.signal.aborted?n():t.push(n);}},cancel(){e.signal.aborted||(e.abort(),t.forEach(n=>{try{n();}catch(o){console.error("Error in cancellation callback:",o);}}));}}},$e=e=>{let t=e?.name||"Task",r=e?.description||"",n={Async:(o,a=i=>i,s=()=>{},l)=>ae(async(i,u)=>{let m=false,p=null,d=()=>{};if(l){if(l.isCancelled){try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}u(R.apply(new Error("Task was cancelled before execution started"),void 0,{name:t,description:r}));return}let b=()=>{m=true,p=new Error("Task was cancelled during execution");};l.onCancel(b),d=()=>{};}try{let b=await o();if(m){try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}u(p?R.apply(p,void 0,{name:t,description:r}):R.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}i(b);}catch(b){if(m){try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}u(p?R.apply(p,void 0,{name:t,description:r}):R.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}try{if(b instanceof Error&&Ie(b)){let A=new Error(`${t}: ${b.message}`),I=R.apply(A,void 0,{name:t,description:r});Object.defineProperty(I,"cause",{value:b,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(b);}catch(P){console.error("Error in error handler:",P);}}),u(I);}else {let A=await a(b);u(R.apply(A,void 0,{name:t,description:r}));}}catch(A){u(R.apply(A,void 0,{name:t,description:r}));}}finally{d();}}),Sync:(o,a=l=>l,s=()=>{})=>{try{return Le(o(),{name:t,description:r})}catch(l){return ke(a(l),void 0,{name:t,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=u=>u,l=()=>{},i)=>{let u=m=>{let p=Math.max(0,Math.min(100,m));p<=100&&a(p);};return n.Async(()=>o(u),s,l,i)}};return {...J("Task",n),_type:"Task"}},Re={success:(e,t)=>Le(e,t),fail:(e,t,r)=>ke(e,t,r),getErrorChain:e=>{if(!e)return [];let t=[e],r=e;for(;r&&r.cause;){let n=r.cause;if(n)t.push(n),r=n;else break;if(t.length>100)break}return t},formatErrorChain:(e,t)=>{let r=Re.getErrorChain(e),n=t?.separator||`
|
|
9
|
+
`;return r.map((o,a)=>{if(!o)return `${a>0?"\u21B3 ":""}Unknown error`;let s=o.taskInfo,l=t?.includeTasks&&s?.name?`[${s.name}] `:"",i=o.message||"No message",u=`${a>0?"\u21B3 ":""}${l}${i}`;return t?.includeStackTrace&&o.stack&&(u+=`
|
|
10
|
+
${o.stack.split(`
|
|
11
|
+
`).slice(1).join(`
|
|
12
|
+
`)}`),u}).join(n)},fromPromise:(e,t)=>(...r)=>v(t||{name:"PromiseTask",description:"Task from Promise"}).Async(()=>e(...r),o=>o),toPromise:e=>new Promise((t,r)=>{e.isRight()?t(e.value):r(e.value);}),race:(e,t,r)=>{let n=r?.name||"TaskRace",o=r?.description||"Race between multiple tasks";return v({name:n,description:o}).Async(async()=>{let s=[...e],l;if(typeof t=="number"&&t>0){let i=ae((u,m)=>{l=setTimeout(()=>{m(new Error(`Task race timed out after ${t}ms`));},t);});s.push(i);}try{return await new Promise((i,u)=>{s.forEach(m=>{m.then(p=>i(p),p=>u(p));});})}finally{l&&clearTimeout(l);}},s=>s)},fromNodeCallback:(e,t)=>{let r=t?.name||"NodeCallbackTask",n=t?.description||"Task from Node.js callback function",o={name:r,description:n};return (...a)=>v(o).Async(()=>new Promise((s,l)=>{try{e(...a,(i,u)=>{i?l(i):s(u);});}catch(i){l(i);}}),s=>s)},createCancellationTokenSource:ie,cancellable:(e,t)=>{let r=ie();return {task:v(t).Async(()=>e(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(e,t=()=>{},r)=>{let n=ie(),o=0,a=l=>{o=Math.max(0,Math.min(100,l)),t(o);};return {task:v(r).Async(()=>e(a,n.token),l=>l,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o}}},v=E($e,Re);var Je={correctness:async(e,t)=>{let r=50,n=[];return t!==void 0?(r+=25,n.push("Code executed successfully")):n.push("Code failed to execute"),e.expectedOutput&&t&&(JSON.stringify(t)===JSON.stringify(e.expectedOutput)?(r+=25,n.push("Output matches expected result")):n.push("Output doesn't match expected result")),{metrics:{correctness:Math.min(100,r)},feedback:n}},performance:async e=>{let t=70,r=[],n=e.source.length,o=/for\s*\(|while\s*\(|\.forEach|\.map|\.filter/.test(e.source),a=/async|await/.test(e.source);return n>1e3&&(t-=10,r.push("Function is quite long, consider breaking it down")),a&&(t+=10,r.push("Uses modern async/await syntax")),o&&e.source.includes("await")&&(t-=15,r.push("Consider using Promise.all() for concurrent async operations")),{metrics:{performance:Math.min(100,Math.max(0,t))},feedback:r}},maintainability:async e=>{let t=60,r=[];/:\s*(string|number|boolean|object|Array|Promise)/.test(e.source)&&(t+=15,r.push("Uses TypeScript type annotations")),/\/\/|\/\*/.test(e.source)&&(t+=10,r.push("Includes code comments"));let a=e.source.split(`
|
|
13
|
+
`).length;return a>50?(t-=15,r.push("Function is quite long, consider breaking it down")):a<=20&&(t+=10,r.push("Function is appropriately sized")),/try\s*{|catch\s*\(|throw\s+/.test(e.source)?(t+=15,r.push("Includes error handling")):r.push("Consider adding error handling"),{metrics:{maintainability:Math.min(100,Math.max(0,t))},feedback:r}},security:async e=>{let t=80,r=[];return /eval\s*\(/i.test(e.source)&&(t-=30,r.push("Uses eval() which can be dangerous")),/innerHTML\s*=/i.test(e.source)&&(t-=20,r.push("Uses innerHTML which can be vulnerable to XSS")),/fs\.|readFile|writeFile|unlinkSync/i.test(e.source)&&(t-=10,r.push("Accesses file system - ensure proper validation")),/exec\s*\(|spawn\s*\(/i.test(e.source)&&(t-=25,r.push("Executes system commands - high security risk")),{metrics:{security:Math.min(100,Math.max(0,t))},feedback:r}},typeSafety:async e=>{let t=50,r=[];return /:\s*(string|number|boolean|object|Array|Promise|Type)/.test(e.source)&&(t+=20,r.push("Uses type annotations")),/:\s*any\b/.test(e.source)&&(t-=20,r.push("Uses 'any' type - consider more specific types")),/typeof\s+\w+\s*===|instanceof/.test(e.source)&&(t+=15,r.push("Uses type guards for runtime safety")),/\?\./g.test(e.source)&&(t+=10,r.push("Uses optional chaining for null safety")),/\?\?/g.test(e.source)&&(t+=5,r.push("Uses nullish coalescing")),{metrics:{typeSafety:Math.min(100,Math.max(0,t))},feedback:r}}},He={async generateHealingSuggestions(e,t,r){let n=["Add null checks for input parameters","Wrap async operations in try-catch","Use type guards for runtime validation","Add error handling for edge cases"],o=`
|
|
14
|
+
Based on the error "${t}" and code context:
|
|
15
|
+
- Function: ${e.functionName||"unknown"}
|
|
16
|
+
- Intent: ${e.llmContext?.intent||"not specified"}
|
|
17
|
+
- The code appears to need better error handling and type safety
|
|
18
|
+
`,a=e.source.includes("try")?e.source:`try {
|
|
19
|
+
${e.source}
|
|
20
|
+
} catch (error) {
|
|
21
|
+
throw new Error(\`Operation failed: \${error}\`)
|
|
22
|
+
}`;return {suggestions:n,healedCode:a,reasoning:o}}},je=e=>{let t={async executeWithHealing(r,n,o){let a=[],s=r.source,l;for(let u=1;u<=n.maxAttempts;u++)try{let m=await e.Async(()=>{if(s.includes("throw"))throw new Error("Simulated execution error");return "simulated result"},d=>d,()=>{},o),p=await t.evaluateFitness({...r,source:s},m,n.customFitnessFunctions);if(p.score>=n.minFitnessScore)return {result:T(m),fitness:p,healingAttempts:a,finalCode:s};if(n.enableLLMHealing&&u<n.maxAttempts){let d=await t.generateHealingSuggestions({...r,source:s},`Fitness score ${p.score} below threshold ${n.minFitnessScore}`,n);d.healedCode&&(s=d.healedCode,a.push({attempt:u,timestamp:new Date,error:`Low fitness score: ${p.score}`,healedCode:s,fitnessScore:p.score,success:!1,reasoning:d.reasoning}));}}catch(m){if(l=m instanceof Error?m.message:String(m),n.enableLLMHealing&&u<n.maxAttempts){let p=await t.generateHealingSuggestions({...r,source:s},l,n);p.healedCode&&(s=p.healedCode,a.push({attempt:u,timestamp:new Date,error:l,healedCode:s,success:false,reasoning:p.reasoning}));}else a.push({attempt:u,timestamp:new Date,error:l,success:false});}let i=await t.evaluateFitness({...r,source:s},void 0,n.customFitnessFunctions);return {result:T.none(),fitness:i,healingAttempts:a,finalCode:s}},async evaluateFitness(r,n,o){let a=[...Object.values(Je),...o||[]],s=await Promise.all(a.map(d=>d(r,n))),l={correctness:0,performance:0,maintainability:0,security:0,typeSafety:0},i={correctness:0,performance:0,maintainability:0,security:0,typeSafety:0},u=[],m=[];return s.forEach(d=>{d.metrics&&Object.entries(d.metrics).forEach(([b,A])=>{b in l&&typeof A=="number"&&(l[b]+=A,i[b]++);}),d.feedback&&u.push(...d.feedback),d.suggestions&&m.push(...d.suggestions);}),Object.keys(l).forEach(d=>{let b=i[d];b>0?l[d]=Math.round(l[d]/b):l[d]=0;}),{score:Math.round(Object.values(l).reduce((d,b)=>d+b,0)/Object.keys(l).length),metrics:l,feedback:u,suggestions:m}},async generateHealingSuggestions(r,n,o){return He.generateHealingSuggestions(r,n,o)},async validateHealedCode(r,n,o){let a=[],s="low";return n.length>r.source.length*2&&(a.push("Healed code is significantly longer than original"),s="medium"),(n.includes("eval(")||n.includes("Function("))&&(a.push("Healed code contains potentially dangerous eval() or Function()"),s="high"),r.functionName&&!n.includes(r.functionName)&&(a.push("Healed code appears to have changed the function name"),s="medium"),{isValid:s!=="high",issues:a,riskLevel:s}}};return t},We=e=>{let t=v(e);return je(t)},De={defaultConfig:()=>({maxAttempts:3,enableLLMHealing:true,minFitnessScore:70,llmConfig:{provider:"openai",model:"gpt-4",temperature:.1}}),fitnessConfig:e=>({maxAttempts:5,enableLLMHealing:true,minFitnessScore:e,llmConfig:{provider:"openai",model:"gpt-4",temperature:0}}),createCustomFitnessFunction:(e,t)=>async(r,n)=>{let o=await t(r,n);return {metrics:{[e]:o.score},feedback:o.feedback,suggestions:o.suggestions||[]}},createCodeContext:(e,t,r)=>({source:e,filePath:r?.filePath,functionName:r?.functionName,expectedOutput:r?.expectedOutput,llmContext:{intent:t,constraints:r?.constraints,dependencies:r?.dependencies}})},ur=E(We,De);var xe={includeTasks:true,includeStackTrace:false,separator:`
|
|
23
|
+
`,includeData:false,maxStackFrames:3,title:"Error",colors:false};function Se(e){let t=new WeakSet;return JSON.stringify(e,(r,n)=>{if(typeof n=="bigint")return n.toString()+"n";if(typeof n=="object"&&n!==null){if(t.has(n))return "[Circular Reference]";t.add(n);}return r==="stack"&&typeof n=="string"?Z(n):n},2)}function Z(e){if(!e)return "";if(!e)return e;let t=e.split(`
|
|
24
|
+
`),r=t[0],n=t.slice(1).map(o=>o.trim());return [r,...n].join(`
|
|
25
|
+
`)}function mr(e,t){let r={...xe,...t},n=e instanceof Error?e:R.apply(e),o=v?.getErrorChain?v.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((i,u)=>{let m=" ".repeat(u),p=u>0?"\u21B3 ":"",d=i.taskInfo,b=r.includeTasks&&d?.name?r.colors?`\x1B[36m[${d.name}]\x1B[0m `:`[${d.name}] `:"",A=`${m}${p}${b}${i.message}`;if(r.includeStackTrace&&i.stack){let P=Z(i.stack).split(`
|
|
26
|
+
`).slice(1),D=r.maxStackFrames??xe.maxStackFrames??3,re=P.slice(0,D).map(g=>`${m} ${r.colors?"\x1B[90m":""}${g}${r.colors?"\x1B[0m":""}`).join(`
|
|
27
|
+
`);A+=`
|
|
28
|
+
${re}`,P.length>D&&(A+=`
|
|
29
|
+
${m} ${r.colors?"\x1B[90m":""}...${P.length-D} more stack frames${r.colors?"\x1B[0m":""}`);}return A}).join(r.separator),l=`${a}
|
|
30
|
+
|
|
31
|
+
${s}`;if(r.includeData){let i=n.data;if(i){let u=r.colors?`
|
|
32
|
+
|
|
33
|
+
\x1B[33mContext:\x1B[0m
|
|
34
|
+
${Se(i)}`:`
|
|
35
|
+
|
|
36
|
+
Context:
|
|
37
|
+
${Se(i)}`;l+=u;}}return l}function dr(){return function(t){if(!t)return t;let r=t instanceof Error?t:new Error(String(t)),n={message:r.message,name:r.name||"Error",stack:r.stack?Z(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof v?.getErrorChain=="function")try{let o=v.getErrorChain(r);o.length>1&&(n.errorChain=v.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?Z(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var yr=e=>{let t=new Error(e);return t.name="ParseError",t};var Lr={toOption:e=>e.fold(()=>B(),t=>F(t)),toList:e=>e.fold(()=>h([]),t=>h([t])),toEither:(e,t)=>e.fold(()=>f(t),r=>y(r)),isEmpty:e=>e.fold(()=>true,()=>false),size:e=>e.fold(()=>0,()=>1)};var ee=e=>({_tag:"Success",error:void 0,isSuccess:()=>true,isFailure:()=>false,get:()=>e,getOrElse:t=>e,orElse:t=>ee(e),orThrow:t=>e,toEither:()=>y(e),map:t=>qe(()=>t(e)),flatMap:t=>t(e),fold:(t,r)=>r(e),match:t=>t.Success(e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),toString:()=>`Success(${G(e)})`,toValue:()=>({_tag:"Success",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:e}),toYAML:()=>`_tag: Success
|
|
38
|
+
value: ${G(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Success",value:e})).toString("base64")})}),N=e=>({_tag:"Failure",error:e,isSuccess:()=>false,isFailure:()=>true,get:()=>{throw e},getOrElse:t=>t,orElse:t=>t,orThrow:t=>{throw t},toEither:()=>f(e),map:t=>N(e),flatMap:t=>N(e),fold:(t,r)=>t(e),match:t=>t.Failure(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,toString:()=>`Failure(${G(e)}))`,toValue:()=>({_tag:"Failure",value:e}),pipe:t=>{throw e},serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack}),toYAML:()=>`_tag: Failure
|
|
39
|
+
error: ${e.message}
|
|
40
|
+
stack: ${e.stack}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack})).toString("base64")})}),Ye=e=>{try{return ee(e())}catch(t){return N(t instanceof Error?t:new Error(String(t)))}},we={fromJSON:e=>{let t=JSON.parse(e);if(t._tag==="Success")return ee(t.value);{let r=new Error(t.error);return t.stack&&(r.stack=t.stack),N(r)}},fromYAML:e=>{let t=e.split(`
|
|
41
|
+
`),r=t[0]?.split(": ")[1];if(!r)return N(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=t[1]?.split(": ")[1];if(!n)return N(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return ee(o)}else {let n=t[1]?.split(": ")[1];if(!n)return N(new Error("Invalid YAML format for Try Failure"));let o=t[2]?.split(": "),a=o&&o.length>1?o.slice(1).join(": "):void 0,s=new Error(n);return a&&(s.stack=a),N(s)}},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return we.fromJSON(t)}},qe=E(Ye,we);var V=e=>e!==null&&typeof e=="object"&&(e._tag==="Some"||e._tag==="None"),O=e=>e!==null&&typeof e=="object"&&e._tag==="List",H=e=>e!==null&&typeof e=="object"&&(e._tag==="Left"||e._tag==="Right"),j=e=>e!==null&&typeof e=="object"&&(e._tag==="Success"||e._tag==="Failure"),S=()=>{let e=(s,l)=>{if(V(s))return s.map(i=>l(i));if(O(s))return s.map(i=>l(i));if(H(s))return s.map(i=>l(i));if(j(s))return s.map(i=>l(i));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},t=s=>{if(V(s))return s.get();if(O(s)){let l=s.toArray();if(l.length>0&&O(l[0])){let i=[];for(let u of l)O(u)&&i.push(...u.toArray());return h(i)}return s.flatten()}if(H(s))return s.isRight()?s.fold(()=>null,l=>l):s;if(j(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,l)=>{if(V(s))return s.flatMap(i=>l(i));if(O(s))return s.flatMap(i=>l(i));if(H(s))return s.flatMap(i=>l(i));if(j(s))return s.flatMap(i=>l(i));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,l)=>{if(V(s)&&V(l))return s.flatMap(i=>l.map(u=>i(u)));if(O(s)&&O(l))return s.flatMap(i=>l.map(u=>i(u)));if(H(s)&&H(l))return s.flatMap(i=>l.map(u=>i(u)));if(j(s)&&j(l))return s.flatMap(i=>l.map(u=>i(u)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(V(s)){let l=s;if(l.isEmpty)return h([T.none()]);let i=l.get();if(O(i))return i.map(u=>T(u));throw new Error("Unsupported inner container type for sequence")}if(O(s)){let i=s.toArray();if(i.length===0)return T.none();let u=i[0];if(V(u)){for(let p of i)if(p.isEmpty)return T.none();let m=i.map(p=>p.get());return T(h(m))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {...J("HKT",{map:e,flatten:t,flatMap:r,ap:n,sequence:o,traverse:(s,l)=>o(e(s,i=>l(i)))}),_type:"HKT"}};S.map=(e,t)=>S().map(e,t);S.flatten=e=>S().flatten(e);S.flatMap=(e,t)=>S().flatMap(e,t);S.ap=(e,t)=>S().ap(e,t);S.sequence=e=>S().sequence(e);S.traverse=(e,t)=>S().traverse(e,t);S.isOption=V;S.isList=O;S.isEither=H;S.isTry=j;function Or(e){return {id:e,isSame:r=>r.id===e}}var x=e=>({[Symbol.iterator]:()=>e[Symbol.iterator](),map:r=>x(function*(){for(let n of e)yield r(n);}()),flatMap:r=>x(function*(){for(let n of e)yield*r(n);}()),filter:r=>x(function*(){for(let n of e)r(n)&&(yield n);}()),take:r=>x(function*(){let n=0;for(let o of e){if(n>=r)break;yield o,n++;}}()),drop:r=>x(function*(){let n=0;for(let o of e)n>=r&&(yield o),n++;}()),takeWhile:r=>x(function*(){for(let n of e){if(!r(n))break;yield n;}}()),dropWhile:r=>x(function*(){let n=true;for(let o of e)n&&r(o)||(n=false,yield o);}()),concat:r=>x(function*(){yield*e,yield*r;}()),zip:r=>x(function*(){let n=e[Symbol.iterator](),o=r[Symbol.iterator]();for(;;){let a=n.next(),s=o.next();if(a.done||s.done)break;yield [a.value,s.value];}}()),toList:()=>h(Array.from(e)),toArray:()=>Array.from(e),forEach:r=>{for(let n of e)r(n);},reduce:(r,n)=>{let o=n;for(let a of e)o=r(o,a);return o},find:r=>{for(let n of e)if(r(n))return T(n);return T.none()},some:r=>{for(let n of e)if(r(n))return true;return false},every:r=>{for(let n of e)if(!r(n))return false;return true},count:()=>{let r=0;for(let n of e)r++;return r},first:()=>{let n=e[Symbol.iterator]().next();return n.done?T.none():T(n.value)},last:()=>{let r,n=false;for(let o of e)r=o,n=true;return n?T(r):T.none()}}),Ge=e=>x(e),Xe={empty:()=>x([]),of:e=>x([e]),from:(...e)=>x(e),iterate:(e,t)=>x(function*(){let r=e;for(;;)yield r,r=t(r);}()),generate:e=>x(function*(){for(;;)yield e();}()),range:(e,t,r=1)=>x(function*(){if(r===0)throw new Error("Step cannot be zero");if(r>0)for(let n=e;n<t;n+=r)yield n;else for(let n=e;n>t;n+=r)yield n;}()),repeat:(e,t)=>x(function*(){if(t===void 0)for(;;)yield e;else for(let r=0;r<t;r++)yield e;}()),cycle:e=>x(function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t;}())},Kr=E(Ge,Xe);var te=Map;var z=e=>{let t="Map",r={values:new te(e)},n=()=>Array.from(r.values.entries()).map(([c,k])=>d([c,k])),o=c=>z(new te(r.values).set(c.toArray()[0],c.toArray()[1]).entries()),a=c=>{let k=new te(r.values);return k.delete(c)?z(k.entries()):z(r.values.entries())},s=c=>{let k=c.toArray();return r.values.get(k[0])===k[1]},l=()=>r.values.size,i=c=>z(Array.from(r.values.entries()).map(([k,$])=>[k,c($)])),u=c=>{let k=z(r.values.entries()).toList();return z(k.flatMap(c).toArray())},m=c=>h(n()).reduce(c),p=c=>h(n()).reduceRight(c),d$1=c=>k=>h(n()).foldLeft(c)(k),b=c=>k=>h(n()).foldRight(c)(k),A=c=>T(r.values.get(c)),I=(c,k)=>T(r.values.get(c)).getOrElse(k),P=()=>r.values.size===0;return {_tag:t,add:o,remove:a,contains:s,get size(){return l()},map:i,flatMap:u,reduce:m,reduceRight:p,foldLeft:d$1,foldRight:b,fold:(c,k)=>{if(P())return c();let $=n();if($.length===0)return c();let fe=$[0];return fe===void 0?c():k(fe)},match:c=>P()?c.Empty():c.NonEmpty(n()),get:A,getOrElse:I,get isEmpty(){return P()},orElse:(c,k)=>T(r.values.get(c)).orElse(k),toList:()=>h(n()),toSet:()=>K(n()),toString:()=>`Map(${n().toString()})`,toValue:()=>({_tag:"Map",value:r.values}),pipe:c=>c(Array.from(r.values.entries())),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())}),toYAML:()=>`_tag: Map
|
|
42
|
+
value: ${JSON.stringify(Array.from(r.values.entries()))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())})).toString("base64")})}},Qe=e=>z(e),ve={fromJSON:e=>{let t=JSON.parse(e);return ue(t.value)},fromYAML:e=>{let r=e.split(`
|
|
43
|
+
`)[1]?.split(": ")[1];if(!r)return ue([]);let n=JSON.parse(r);return ue(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return ve.fromJSON(t)}},ue=E(Qe,ve);var Ze={default:e=>t=>e(t),when:(e,t)=>r=>e(r)?t(r):void 0};var M=(e=[])=>{let t="Stack",r=[...e],n=()=>r.length,o=()=>r.length===0;return {_tag:t,get size(){return n()},get isEmpty(){return o()},contains:g=>r.includes(g),reduce:g=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(g)},reduceRight:g=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(g)},push:g=>M([...r,g]),pop:()=>{if(o())return [M([]),T(null)];let g=[...r],C=g.pop();return [M(g),T(C)]},peek:()=>o()?T(null):T(r[r.length-1]),map:g=>M(r.map(g)),flatMap:g=>o()?M([]):r.reduce((C,_)=>g(_).toArray().reduce((k,$)=>k.push($),C),M([])),toList:()=>h(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(g,C)=>{if(o())return g();let _=r[r.length-1];return _!==void 0?C(_):g()},foldLeft:g=>C=>r.reduce(C,g),foldRight:g=>C=>r.reduceRight((_,c)=>C(c,_),g),match:g=>o()?g.Empty():g.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:g=>g([...r]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Stack",value:r}),toYAML:()=>`_tag: Stack
|
|
44
|
+
value: ${JSON.stringify(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Stack",value:r})).toString("base64")})}},et=(e=[])=>M(e),Ue={empty:()=>M([]),of:e=>M([e]),fromJSON:e=>{let t=JSON.parse(e);return pe(t.value)},fromYAML:e=>{let r=e.split(`
|
|
45
|
+
`)[1]?.split(": ")[1];if(!r)return pe([]);let n=JSON.parse(r);return pe(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ue.fromJSON(t)}},pe=E(et,Ue);var F=e=>({_tag:"Some",value:e,isEmpty:false,get:()=>e,getOrElse:()=>e,getOrThrow:()=>e,orElse:()=>F(e),orNull:()=>e,orUndefined:()=>e,map:t=>F(t(e)),filter(t){return t(e)?F(e):W},fold:(t,r)=>r(e),match:t=>t.Some(e),flatMap:t=>t(e),flatMapAsync:async t=>await t(e),reduce:t=>t(void 0,e),reduceRight:t=>t(void 0,e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),toList:()=>h([e]),contains:t=>t===e,size:1,toEither:t=>y(e),toString:()=>`Some(${G(e)})`,toValue:()=>({_tag:"Some",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:e}),toYAML:()=>`_tag: Some
|
|
46
|
+
value: ${G(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:e})).toString("base64")})}),W={_tag:"None",value:void 0,isEmpty:true,get:()=>{throw new Error("Cannot call get() on None")},getOrElse:e=>e,getOrThrow(e){throw e},orElse:e=>e,orNull:()=>null,orUndefined:()=>{},map:e=>W,filter(e){return W},flatMap:e=>W,flatMapAsync:async e=>W,reduce:()=>{},reduceRight:()=>{},fold:(e,t)=>e(),match:e=>e.None(),foldLeft:e=>()=>e,foldRight:e=>()=>e,toList:()=>h([]),contains:()=>false,size:0,toEither:e=>f(e),toString:()=>"None",toValue:()=>({_tag:"None",value:void 0}),pipe:e=>e(void 0),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"None",value:null}),toYAML:()=>`_tag: None
|
|
47
|
+
value: null`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"None",value:null})).toString("base64")})},B=()=>W,tt=e=>e!=null?F(e):B(),Pe={from:e=>T(e),none:()=>B(),fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Some"?F(t.value):B()},fromYAML:e=>{let t=e.split(`
|
|
48
|
+
`),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)return B();let o=n==="null"?null:JSON.parse(n);return r==="Some"?F(o):B()},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Pe.fromJSON(t)}},T=E(tt,Pe);export{ue as $,Nt as A,Vt as B,_t as C,It as D,Ht as E,J as F,Q as G,R as H,ze as I,ae as J,Ie as K,ke as L,Le as M,ie as N,v as O,ur as P,Se as Q,Z as R,mr as S,dr as T,yr as U,Lr as V,qe as W,S as X,Or as Y,Kr as Z,te as _,E as a,Ze as aa,F as b,pe as ba,B as c,tt as d,T as e,K as f,h as g,y as h,f as i,At as j,bt as k,Et as l,Oe as m,Me as n,kt as o,he as p,U as q,Ne as r,vt as s,Ut as t,Bt as u,Pt as v,Ct as w,Ft as x,Ot as y,Mt as z};//# sourceMappingURL=chunk-5ABR3A24.mjs.map
|
|
49
|
+
//# sourceMappingURL=chunk-5ABR3A24.mjs.map
|