functype 0.17.1 → 0.18.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/{Either-CM1xSzLl.d.ts → Either-Ccg0S1uS.d.ts} +116 -1
- package/dist/chunk-6ZIR6EKC.mjs +38 -0
- package/dist/chunk-6ZIR6EKC.mjs.map +1 -0
- package/dist/{chunk-BQJB6CCW.mjs → chunk-7JJIUQXK.mjs} +2 -2
- package/dist/chunk-7JJIUQXK.mjs.map +1 -0
- package/dist/do/index.d.ts +2 -2
- package/dist/do/index.mjs +1 -1
- package/dist/either/index.d.ts +1 -1
- package/dist/either/index.mjs +1 -1
- package/dist/fpromise/index.d.ts +1 -1
- package/dist/fpromise/index.mjs +1 -1
- package/dist/index.d.ts +121 -8
- package/dist/index.mjs +1 -1
- package/dist/list/index.d.ts +1 -1
- package/dist/list/index.mjs +1 -1
- package/dist/map/index.d.ts +1 -1
- package/dist/map/index.mjs +1 -1
- package/dist/option/index.d.ts +1 -1
- package/dist/option/index.mjs +1 -1
- package/dist/set/index.d.ts +1 -1
- package/dist/set/index.mjs +1 -1
- package/dist/try/index.d.ts +1 -1
- package/dist/try/index.mjs +1 -1
- package/dist/tuple/index.mjs +1 -1
- package/package.json +20 -8
- package/dist/chunk-BQJB6CCW.mjs.map +0 -1
- package/dist/chunk-LW2YTB56.mjs +0 -45
- package/dist/chunk-LW2YTB56.mjs.map +0 -1
|
@@ -279,6 +279,24 @@ interface Try<T> extends FunctypeBase<T, TypeNames>, Extractable<T>, Pipe<T>, Pr
|
|
|
279
279
|
};
|
|
280
280
|
}
|
|
281
281
|
declare const Try: (<T>(f: () => T) => Try<T>) & {
|
|
282
|
+
/**
|
|
283
|
+
* Type guard to check if a Try is Success
|
|
284
|
+
* @param tryValue - The Try to check
|
|
285
|
+
* @returns True if Try is Success
|
|
286
|
+
*/
|
|
287
|
+
isSuccess: <T>(tryValue: Try<T>) => tryValue is Try<T> & {
|
|
288
|
+
readonly _tag: "Success";
|
|
289
|
+
error: undefined;
|
|
290
|
+
};
|
|
291
|
+
/**
|
|
292
|
+
* Type guard to check if a Try is Failure
|
|
293
|
+
* @param tryValue - The Try to check
|
|
294
|
+
* @returns True if Try is Failure
|
|
295
|
+
*/
|
|
296
|
+
isFailure: <T>(tryValue: Try<T>) => tryValue is Try<T> & {
|
|
297
|
+
readonly _tag: "Failure";
|
|
298
|
+
error: Error;
|
|
299
|
+
};
|
|
282
300
|
/**
|
|
283
301
|
* Creates a Try from JSON string
|
|
284
302
|
* @param json - The JSON string
|
|
@@ -582,6 +600,24 @@ declare const Option: (<T extends Type>(value: T | null | undefined) => Option<T
|
|
|
582
600
|
* @typeParam T - The type that would be contained if this was a Some
|
|
583
601
|
*/
|
|
584
602
|
none: <T>() => Option<T>;
|
|
603
|
+
/**
|
|
604
|
+
* Type guard to check if an Option is Some
|
|
605
|
+
* @param option - The Option to check
|
|
606
|
+
* @returns True if Option is Some
|
|
607
|
+
*/
|
|
608
|
+
isSome: <T>(option: Option<T>) => option is Option<T> & {
|
|
609
|
+
value: T;
|
|
610
|
+
isEmpty: false;
|
|
611
|
+
};
|
|
612
|
+
/**
|
|
613
|
+
* Type guard to check if an Option is None
|
|
614
|
+
* @param option - The Option to check
|
|
615
|
+
* @returns True if Option is None
|
|
616
|
+
*/
|
|
617
|
+
isNone: <T>(option: Option<T>) => option is Option<T> & {
|
|
618
|
+
value: undefined;
|
|
619
|
+
isEmpty: true;
|
|
620
|
+
};
|
|
585
621
|
/**
|
|
586
622
|
* Creates an Option from JSON string
|
|
587
623
|
* @param json - The JSON string
|
|
@@ -885,15 +921,94 @@ interface Either<L extends Type, R extends Type> extends FunctypeBase<R, "Left"
|
|
|
885
921
|
value: L | R;
|
|
886
922
|
};
|
|
887
923
|
}
|
|
888
|
-
declare const Either: {
|
|
924
|
+
declare const Either: (<L extends Type, R extends Type>(value: R | L, isRight: boolean) => Either<L, R>) & {
|
|
925
|
+
/**
|
|
926
|
+
* Creates a Left instance
|
|
927
|
+
* @param value - The left value
|
|
928
|
+
* @returns Left Either
|
|
929
|
+
*/
|
|
930
|
+
left: <L extends Type, R extends Type>(value: L) => Either<L, R>;
|
|
931
|
+
/**
|
|
932
|
+
* Creates a Right instance
|
|
933
|
+
* @param value - The right value
|
|
934
|
+
* @returns Right Either
|
|
935
|
+
*/
|
|
936
|
+
right: <L extends Type, R extends Type>(value: R) => Either<L, R>;
|
|
937
|
+
/**
|
|
938
|
+
* Type guard to check if an Either is Right
|
|
939
|
+
* @param either - The Either to check
|
|
940
|
+
* @returns True if Either is Right
|
|
941
|
+
*/
|
|
942
|
+
isRight: <L extends Type, R extends Type>(either: Either<L, R>) => either is Either<L, R> & {
|
|
943
|
+
value: R;
|
|
944
|
+
};
|
|
945
|
+
/**
|
|
946
|
+
* Type guard to check if an Either is Left
|
|
947
|
+
* @param either - The Either to check
|
|
948
|
+
* @returns True if Either is Left
|
|
949
|
+
*/
|
|
950
|
+
isLeft: <L extends Type, R extends Type>(either: Either<L, R>) => either is Either<L, R> & {
|
|
951
|
+
value: L;
|
|
952
|
+
};
|
|
953
|
+
/**
|
|
954
|
+
* Combines an array of Eithers into a single Either containing an array
|
|
955
|
+
* @param eithers - Array of Either values
|
|
956
|
+
* @returns Either with array of values or first Left encountered
|
|
957
|
+
*/
|
|
889
958
|
sequence: <L extends Type, R extends Type>(eithers: Either<L, R>[]) => Either<L, R[]>;
|
|
959
|
+
/**
|
|
960
|
+
* Maps an array through a function that returns Either, then sequences the results
|
|
961
|
+
* @param arr - Array of values
|
|
962
|
+
* @param f - Function that returns Either
|
|
963
|
+
* @returns Either with array of results or first Left encountered
|
|
964
|
+
*/
|
|
890
965
|
traverse: <L extends Type, R extends Type, U extends Type>(arr: R[], f: (value: R) => Either<L, U>) => Either<L, U[]>;
|
|
966
|
+
/**
|
|
967
|
+
* Creates an Either from a nullable value
|
|
968
|
+
* @param value - The value that might be null or undefined
|
|
969
|
+
* @param leftValue - The value to use for Left if value is null/undefined
|
|
970
|
+
* @returns Right if value is not null/undefined, Left otherwise
|
|
971
|
+
*/
|
|
891
972
|
fromNullable: <L extends Type, R extends Type>(value: R | null | undefined, leftValue: L) => Either<L, R>;
|
|
973
|
+
/**
|
|
974
|
+
* Creates an Either based on a predicate
|
|
975
|
+
* @param value - The value to test
|
|
976
|
+
* @param predicate - The predicate function
|
|
977
|
+
* @param leftValue - The value to use for Left if predicate fails
|
|
978
|
+
* @returns Right if predicate passes, Left otherwise
|
|
979
|
+
*/
|
|
892
980
|
fromPredicate: <L extends Type, R extends Type>(value: R, predicate: (value: R) => boolean, leftValue: L) => Either<L, R>;
|
|
981
|
+
/**
|
|
982
|
+
* Applicative apply - applies a wrapped function to a wrapped value
|
|
983
|
+
* @param eitherF - Either containing a function
|
|
984
|
+
* @param eitherV - Either containing a value
|
|
985
|
+
* @returns Either with function applied to value
|
|
986
|
+
*/
|
|
893
987
|
ap: <L extends Type, R extends Type, U extends Type>(eitherF: Either<L, (value: R) => U>, eitherV: Either<L, R>) => Either<L, U>;
|
|
988
|
+
/**
|
|
989
|
+
* Creates an Either from a Promise
|
|
990
|
+
* @param promise - The Promise to convert
|
|
991
|
+
* @param onRejected - Function to convert rejection reason to Left value
|
|
992
|
+
* @returns Promise that resolves to Either
|
|
993
|
+
*/
|
|
894
994
|
fromPromise: <L, R>(promise: Promise<R>, onRejected: (reason: unknown) => L) => Promise<Either<L, R>>;
|
|
995
|
+
/**
|
|
996
|
+
* Creates an Either from JSON string
|
|
997
|
+
* @param json - The JSON string
|
|
998
|
+
* @returns Either instance
|
|
999
|
+
*/
|
|
895
1000
|
fromJSON: <L extends Type, R extends Type>(json: string) => Either<L, R>;
|
|
1001
|
+
/**
|
|
1002
|
+
* Creates an Either from YAML string
|
|
1003
|
+
* @param yaml - The YAML string
|
|
1004
|
+
* @returns Either instance
|
|
1005
|
+
*/
|
|
896
1006
|
fromYAML: <L extends Type, R extends Type>(yaml: string) => Either<L, R>;
|
|
1007
|
+
/**
|
|
1008
|
+
* Creates an Either from binary string
|
|
1009
|
+
* @param binary - The binary string
|
|
1010
|
+
* @returns Either instance
|
|
1011
|
+
*/
|
|
897
1012
|
fromBinary: <L extends Type, R extends Type>(binary: string) => Either<L, R>;
|
|
898
1013
|
};
|
|
899
1014
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {a,b as b$1}from'./chunk-7JJIUQXK.mjs';import {a as a$1}from'./chunk-OR6V4TCO.mjs';import ve from'safe-stable-stringify';var M=(e,t)=>({toJSON:()=>JSON.stringify({_tag:e,value:t}),toYAML:()=>`_tag: ${e}
|
|
2
|
+
value: ${ve(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:e,value:t})).toString("base64")}),Me=e=>({toJSON:()=>JSON.stringify(e),toYAML:()=>Object.entries(e).map(([r,n])=>`${r}: ${ve(n)}`).join(`
|
|
3
|
+
`),toBinary:()=>Buffer.from(JSON.stringify(e)).toString("base64")}),Ce=(e,t)=>{let r=JSON.parse(e);return t(r)},at=(e,t)=>{let r=e.split(`
|
|
4
|
+
`),n={};for(let o of r){let a=o.indexOf(": ");if(a===-1)continue;let s=o.substring(0,a),i=o.substring(a+2);if(!i){n[s]=null;continue}try{n[s]=i==="null"?null:JSON.parse(i);}catch{n[s]=i;}}return t(n)},st=(e,t)=>{let r=Buffer.from(e,"base64").toString();return Ce(r,t)},qt=e=>({fromJSON:t=>Ce(t,e),fromYAML:t=>at(t,e),fromBinary:t=>st(t,e)});var q=Set;var C=e=>{let t=new q(e),r={_tag:"Set",[Symbol.iterator]:()=>t[Symbol.iterator](),add:n=>C([...t,n]),remove:n=>{let o=new q(t);return o.delete(n),C(o)},contains:n=>t.has(n),has:n=>t.has(n),map:n=>C(Array.from(t).map(n)),ap:n=>{let o=new q;for(let a of t)for(let s of n)o.add(s(a));return C(o)},flatMap:n=>{let o=new q;for(let a of t)for(let s of n(a))o.add(s);return C(o)},flatMapAsync:async n=>{let o=new q;for(let a of t){let s=await n(a);for(let i of s)o.add(i);}return C(o)},fold:(n,o)=>{if(t.size===0)return n();let a=Array.from(t);if(a.length===0)return n();let s=a[0];return s===void 0?n():o(s)},foldLeft:n=>o=>{let a=n;for(let s of t)a=o(a,s);return a},foldRight:n=>o=>Array.from(t).reduceRight((s,i)=>o(i,s),n),get size(){return t.size},get isEmpty(){return t.size===0},reduce:n=>{let o=Array.from(t);if(o.length===0)throw new Error("Cannot reduce empty Set");return o.reduce(n)},reduceRight:n=>{let o=Array.from(t);if(o.length===0)throw new Error("Cannot reduceRight empty Set");return o.reduceRight(n)},count:n=>{let o=0;for(let a of t)n(a)&&o++;return o},find:n=>{for(let o of t)if(n(o))return f(o);return f(null)},exists:n=>{for(let o of t)if(n(o))return true;return false},forEach:n=>{t.forEach(n);},filter:n=>{let o=new q;for(let a of t)n(a)&&o.add(a);return C(o)},filterNot:n=>{let o=new q;for(let a of t)n(a)||o.add(a);return C(o)},drop:n=>C(Array.from(t).slice(n)),dropRight:n=>C(Array.from(t).slice(0,-n)),dropWhile:n=>{let o=Array.from(t),a=o.findIndex(s=>!n(s));return C(a===-1?[]:o.slice(a))},flatten:()=>{let n=new q;for(let o of t)if(Array.isArray(o))for(let a of o)n.add(a);else if(o&&typeof o=="object"&&Symbol.iterator in o)for(let a of o)n.add(a);else n.add(o);return C(n)},get head(){return Array.from(t)[0]},get headOption(){let n=Array.from(t)[0];return f(n)},toList:()=>d(Array.from(t)),toSet:()=>r,toArray:()=>Array.from(t),toString:()=>`Set(${Array.from(t).toString()})`,toValue:()=>({_tag:"Set",value:Array.from(t)}),pipe:n=>n(Array.from(t)),serialize:()=>M("Set",Array.from(t))};return r},it=e=>C(e),Ve={fromJSON:e=>{let t=JSON.parse(e);return te(t.value)},fromYAML:e=>{let r=e.split(`
|
|
5
|
+
`)[1]?.split(": ")[1];if(!r)return te([]);let n=JSON.parse(r);return te(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ve.fromJSON(t)}},te=a(it,Ve);var Ie=e=>{let t=e;return {get(){return t},set(n){t=n;},update(n){t=n(t);},getAndSet(n){let o=t;return t=n,o},updateAndGet(n){return t=n(t),t},getAndUpdate(n){let o=t;return t=n(t),o},compareAndSet(n,o){return t===n?(t=o,true):false},modify(n){let[o,a]=n(t);return t=o,a}}},ut={of:e=>Ie(e)},U=a(Ie,ut);var ae=(e=0)=>{let t=U(e),r=e;return {get:()=>t.get(),set:n=>t.set(n),increment:()=>t.updateAndGet(n=>n+1),decrement:()=>t.updateAndGet(n=>n-1),reset:()=>t.set(r),compareAndSet:(n,o)=>t.compareAndSet(n,o)}};var ge=()=>{let e=U([]);return {add:t=>e.update(r=>[...r,t]),addAll:t=>e.update(r=>[...r,...t]),build:()=>e.get(),clear:()=>e.set([]),size:()=>e.get().length}};var S=e=>{let t={_tag:"LazyList",[Symbol.iterator]:()=>e[Symbol.iterator](),map:r=>S((function*(){for(let n of e)yield r(n);})()),flatMap:r=>S((function*(){for(let n of e)yield*r(n);})()),filter:r=>S((function*(){for(let n of e)r(n)&&(yield n);})()),take:r=>S((function*(){let n=ae(0);for(let o of e){if(n.get()>=r)break;yield o,n.increment();}})()),drop:r=>S((function*(){let n=ae(0);for(let o of e)n.get()>=r&&(yield o),n.increment();})()),takeWhile:r=>S((function*(){for(let n of e){if(!r(n))break;yield n;}})()),dropWhile:r=>S((function*(){let n=U(true);for(let o of e)n.get()&&r(o)||(n.set(false),yield o);})()),concat:r=>S((function*(){yield*e,yield*r;})()),zip:r=>S((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:()=>d(Array.from(e)),toArray:()=>Array.from(e),forEach:r=>{for(let n of e)r(n);},reduce:(r,n)=>{let o=U(n);for(let a of e)o.set(r(o.get(),a));return o.get()},find:r=>{for(let n of e)if(r(n))return f(n);return f.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=ae(0);for(let n of e)r.increment();return r.get()},first:()=>{let n=e[Symbol.iterator]().next();return n.done?f.none():f(n.value)},last:()=>{let r=U(void 0),n=U(false);for(let o of e)r.set(o),n.set(true);return n.get()?f(r.get()):f.none()},fold:(r,n)=>{let a=e[Symbol.iterator]().next();return a.done?r():n(a.value)},foldLeft:r=>n=>{let o=U(r);for(let a of e)o.set(n(o.get(),a));return o.get()},foldRight:r=>n=>Array.from(e).reduceRight((a,s)=>n(s,a),r),pipe:r=>r(t),serialize:()=>{let r=Array.from(e);return {toJSON:()=>JSON.stringify({_tag:"LazyList",value:r}),toYAML:()=>`_tag: LazyList
|
|
6
|
+
value: ${ve(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=ae(0),a=U(false);for(let i of e)if(o.get()<10)n.push(i),o.increment();else {a.set(true);break}let s=n.map(i=>String(i)).join(", ");return a.get()?`LazyList(${s}, ...)`:`LazyList(${s})`}};return t},pt=e=>S(e),Tt={empty:()=>S([]),of:e=>S([e]),from:(...e)=>S(e),iterate:(e,t)=>S((function*(){let r=U(e);for(;;)yield r.get(),r.set(t(r.get()));})()),generate:e=>S((function*(){for(;;)yield e();})()),range:(e,t,r=1)=>S((function*(){if(r===0)throw new Error("Step cannot be zero");let n=U(e);if(r>0)for(;n.get()<t;)yield n.get(),n.set(n.get()+r);else for(;n.get()>t;)yield n.get(),n.set(n.get()+r);})()),repeat:(e,t)=>S((function*(){if(t===void 0)for(;;)yield e;else {let r=ae(0);for(;r.get()<t;)yield e,r.increment();}})()),cycle:e=>S((function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t;})())},dr=a(pt,Tt);var fe=e=>({_tag:"Success",error:void 0,isSuccess(){return true},isFailure(){return false},orElse:t=>e,orThrow:t=>e,or:t=>fe(e),orNull:()=>e,orUndefined:()=>e,toEither:t=>p(e),map:t=>O(()=>t(e)),ap:t=>t.map(r=>r(e)),flatMap:t=>t(e),flatMapAsync:async 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(${ve(e)})`,toPromise:()=>Promise.resolve(e),toValue:()=>({_tag:"Success",value:e}),toOption:()=>b(e),toList:()=>d([e]),toTry:()=>fe(e),pipe:t=>t(e),serialize:()=>M("Success",e),get size(){return 1},get isEmpty(){return false},contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?f(e):f(void 0),exists:t=>t(e),forEach:t=>t(e),doUnwrap(){return {ok:true,value:e}}}),$=e=>({_tag:"Failure",error:e,isSuccess(){return false},isFailure(){return true},orElse:t=>t,orThrow:t=>{throw t??e},or:t=>t,orNull:()=>null,orUndefined:()=>{},toEither:t=>l(e),map:t=>$(e),ap:t=>$(e),flatMap:t=>$(e),flatMapAsync:t=>Promise.resolve($(e)),fold:(t,r)=>t(e),match:t=>t.Failure(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,toString:()=>`Failure(${ve(e)}))`,toPromise:()=>Promise.reject(e),toValue:()=>({_tag:"Failure",value:e}),toOption:()=>A(),toList:()=>d([]),toTry:()=>$(e),pipe:t=>{throw e},serialize:()=>Me({_tag:"Failure",error:e.message,stack:e.stack}),get size(){return 0},get isEmpty(){return true},contains:t=>false,reduce:t=>{throw new Error("Cannot reduce a Failure")},reduceRight:t=>{throw new Error("Cannot reduceRight a Failure")},count:t=>0,find:t=>f(null),exists:t=>false,forEach:t=>{},doUnwrap(){return {ok:false,empty:false,error:e}}}),ct=e=>{try{return fe(e())}catch(t){return $(t instanceof Error?t:new Error(String(t)))}},Fe={isSuccess:e=>e.isSuccess(),isFailure:e=>e.isFailure(),fromJSON:e=>{let t=JSON.parse(e);if(t._tag==="Success")return fe(t.value);{let r=new Error(t.error);return t.stack&&(r.stack=t.stack),$(r)}},fromYAML:e=>{let t=e.split(`
|
|
7
|
+
`),r=t[0]?.split(": ")[1];if(!r)return $(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=t[1]?.split(": ")[1];if(!n)return $(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return fe(o)}else {let n=t[1]?.split(": ")[1];if(!n)return $(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),$(s)}},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Fe.fromJSON(t)}},O=a(ct,Fe);function he({_tag:e,impl:t}){return {...t,_tag:e}}function ke(e,t){return !e||typeof e!="object"||!("_tag"in e)?false:t?e._tag===t:true}var B=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=>B(t.map(n)),ap:n=>B(t.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>B(t.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(t.map(async a=>await n(a)));return B(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=>B(t.filter(n)),filterNot:n=>B(t.filter(o=>!n(o))),filterType:n=>B(t.filter(o=>ke(o,n))),find:(n,o)=>{let a=t.find(s=>n(s)&&(o?ke(s,o):true));return f(a)},get head(){return t[0]},get headOption(){return t.length>0?f(t[0]):A()},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=>B(t.filter(o=>o!==n)),removeAt:n=>n<0||n>=t.length?r:B([...t.slice(0,n),...t.slice(n+1)]),add:n=>B([...t,n]),get:n=>f(t[n]),concat:n=>B([...t,...n.toArray()]),drop:n=>B(t.slice(n)),dropRight:n=>B(t.slice(0,-n)),dropWhile:n=>B(t.slice(t.findIndex(o=>!n(o)))),flatten:()=>B(t.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>te(t),toOption:()=>t.length>0?f(t[0]):A(),toEither:n=>t.length>0?p(t[0]):l(n),toTry:()=>t.length>0?O(()=>t[0]):O(()=>{throw new Error("Empty list")}),toString:()=>`List(${ve(t)})`,toValue:()=>({_tag:"List",value:t}),pipe:n=>n([...t]),serialize:()=>M("List",t),doUnwrap(){return t.length===0?{ok:false,empty:true}:{ok:true,value:t[0]}}};return r},dt=e=>B(e),De={fromJSON:e=>{let t=JSON.parse(e);return d(t.value)},fromYAML:e=>{let r=e.split(`
|
|
8
|
+
`)[1]?.split(": ")[1];if(!r)return d([]);let n=JSON.parse(r);return d(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return De.fromJSON(t)}},d=a(dt,De);var $e=e=>({_tag:"Right",value:e,isLeft(){return false},isRight(){return true},orElse:t=>e,orThrow:()=>e,or:t=>p(e),orNull:()=>e,orUndefined:()=>e,map:t=>p(t(e)),ap:t=>t._tag==="Right"?p(t.value(e)):l(t.value),mapAsync:t=>t(e).then(r=>p(r)).catch(r=>Promise.resolve(l(r))),merge:t=>t.isLeft()?l(t.value):p([e,t.value]),flatMap:t=>t(e),flatMapAsync:t=>t(e).catch(r=>l(r)),toOption:()=>b(e),toList:()=>d([e]),toEither:t=>p(e),toTry:()=>O(()=>e),toJSON(){return {_tag:"Right",value:e}},toString:()=>`Right(${ve(e)})`,*[Symbol.iterator](){yield e;},*yield(){yield e;},traverse:t=>{let r=t(e);return r.isLeft()?l(r.value):p([r.value])},*lazyMap(t){yield p(t(e));},tap:t=>(t(e),p(e)),tapLeft:t=>p(e),mapLeft:t=>p(e),bimap:(t,r)=>p(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:()=>l(e),toPromise:()=>Promise.resolve(e),toValue:()=>({_tag:"Right",value:e}),pipeEither:(t,r)=>r(e),pipe:t=>t(e),serialize:()=>M("Right",e),get size(){return 1},get isEmpty(){return false},contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?b(e):A(),exists:t=>t(e),forEach:t=>t(e),doUnwrap(){return {ok:true,value:e}}}),je=e=>({_tag:"Left",value:e,isLeft(){return true},isRight(){return false},orElse:t=>t,orThrow:t=>{throw t??e},or:t=>t,orNull:()=>null,orUndefined:()=>{},map:t=>l(e),ap:t=>l(e),mapAsync:t=>Promise.resolve(l(e)),merge:t=>l(e),flatMap:t=>l(e),flatMapAsync:t=>Promise.resolve(l(e)),toOption:()=>A(),toList:()=>d(),toEither:t=>l(t),toTry:()=>O(()=>{throw new Error(String(e))}),toJSON(){return {_tag:"Left",value:e}},toString:()=>`Left(${ve(e)})`,*[Symbol.iterator](){},*yield(){},traverse:t=>l(e),*lazyMap(t){yield l(e);},tap:t=>l(e),tapLeft:t=>(t(e),l(e)),mapLeft:t=>l(t(e)),bimap:(t,r)=>l(t(e)),fold:(t,r)=>t(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,match:t=>t.Left(e),swap:()=>p(e),toPromise:()=>Promise.reject(e),toValue:()=>({_tag:"Left",value:e}),pipeEither:(t,r)=>t(e),pipe:t=>t(e),serialize:()=>M("Left",e),get size(){return 0},get isEmpty(){return true},contains:t=>false,reduce:t=>{throw new Error("Cannot reduce a Left")},reduceRight:t=>{throw new Error("Cannot reduceRight a Left")},count:t=>0,find:t=>A(),exists:t=>false,forEach:t=>{},doUnwrap(){return {ok:false,empty:false,error:e}}}),p=e=>$e(e),l=e=>je(e),zr=e=>e.isRight(),Fr=e=>e.isLeft(),Dr=(e,t)=>{try{return p(e())}catch(r){return l(t(r))}},mt=e=>$e(e);console.assert(mt);var yt=e=>je(e);console.assert(yt);var Kr=async(e,t)=>{try{let r=await e();return p(r)}catch(r){return l(t(r))}},gt=(e,t)=>t?p(e):l(e),xe={left:e=>l(e),right:e=>p(e),isRight:e=>e.isRight(),isLeft:e=>e.isLeft(),sequence:e=>e.reduce((t,r)=>t.isLeft()?t:r.isLeft()?l(r.value):t.map(n=>[...n,r.value]),p([])),traverse:(e,t)=>xe.sequence(e.map(t)),fromNullable:(e,t)=>e==null?l(t):p(e),fromPredicate:(e,t,r)=>t(e)?p(e):l(r),ap:(e,t)=>e.flatMap(r=>t.map(r)),fromPromise:async(e,t)=>{try{let r=await e;return p(r)}catch(r){return l(t(r))}},fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Right"?p(t.value):l(t.value)},fromYAML:e=>{let t=e.split(`
|
|
9
|
+
`),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"?p(o):l(o)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return xe.fromJSON(t)}},$r=a(gt,xe);function V(e,t){return {brand:e,validate:t,of:r=>t(r)?f(a$1(e,r)):f.none(),from:r=>t(r)?p(a$1(e,r)):l(`Invalid ${e}: validation failed`),unsafeOf:r=>{if(!t(r))throw new Error(`Invalid ${e}: validation failed`);return a$1(e,r)},is:r=>{try{return t(r)}catch{return false}},unwrap:r=>r,refine:(r,n)=>V(r,o=>t(o)&&n(o))}}var Je=V("PositiveNumber",e=>e>0),ht=V("NonNegativeNumber",e=>e>=0),Et=V("IntegerNumber",e=>Number.isInteger(e)),Rt=Je.refine("PositiveInteger",e=>Number.isInteger(e)),Lt=V("NonEmptyString",e=>e.length>0),At=V("EmailAddress",e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),kt=V("UrlString",e=>{try{return new URL(e),!0}catch{return !1}}),xt=V("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)),bt=V("ISO8601Date",e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function wt(e,t,r){return V(e,n=>n>=t&&n<=r)}function Ut(e,t,r){return V(e,n=>n.length>=t&&n.length<=r)}function vt(e,t){return V(e,r=>t.test(r))}var qr=e=>typeof e=="function"&&Object.keys(e).length>0;var be=e=>{let t=n=>typeof n=="function"?n():n,r={when:(n,o)=>e.resolved?r:n?be({resolved:true,value:t(o)}):r,elseWhen:(n,o)=>e.resolved?r:n?be({resolved:true,value:t(o)}):r,else:n=>e.resolved?e.value:t(n),orThrow:()=>{if(!e.resolved)throw new Error("Conditional expression has no matching condition");return e.value}};return r},We=()=>be({resolved:false}),St={of:()=>We(),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}},Zr=a(We,St);var se=(e,t)=>t===e?true:typeof t=="function"?t(e):t&&typeof t=="object"&&"_"in t?t._(e):typeof t=="object"&&t!==null&&typeof e=="object"&&e!==null?Object.entries(t).every(([r,n])=>{let o=e[r];return se(o,n)}):false,re=e=>{let t=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of e.patterns)if(se(e.value,o))return {matched:true,result:t(a,e.value)};return {matched:false}},n={case:(o,a)=>{if(e.resolved)return n;let s={...e,patterns:[...e.patterns,{pattern:o,result:a}]};return se(e.value,o)?re({...s,resolved:true,result:t(a,e.value)}):re(s)},caseValue:(o,a)=>{if(e.resolved)return n;if(e.value===o){let s=typeof a=="function"?a():a;return re({...e,resolved:true,result:s})}return n},caseValues:(o,a)=>{if(e.resolved)return n;if(o.includes(e.value)){let s=typeof a=="function"?a():a;return re({...e,resolved:true,result:s})}return n},when:(o,a)=>n.case(o,a),caseAny:(o,a)=>{if(e.resolved)return n;for(let s of o)if(se(e.value,s))return re({...e,resolved:true,result:t(a,e.value),patterns:[...e.patterns,{pattern:s,result:a}]});return re({...e,patterns:[...e.patterns,...o.map(s=>({pattern:s,result:a}))]})},default:o=>e.resolved?e.result:t(o,e.value),exhaustive:()=>{let o=r();if(!o.matched)throw new Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(e.value)}`);return o.result},orThrow:o=>{let a=r();if(!a.matched)throw new Error(o??`No matching pattern for value: ${JSON.stringify(e.value)}`);return a.result},toOption:()=>{let o=r();return o.matched?f(o.result):f.none()}};return n},Ot=e=>re({value:e,resolved:false,patterns:[]}),Bt={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}}),struct:()=>{let e=[],t={case:(r,n)=>(e.push({pattern:r,handler:n}),t),build:()=>r=>{for(let{pattern:n,handler:o}of e)if(se(r,n))return o(r);throw new Error(`No matching pattern for value: ${JSON.stringify(r)}`)}};return t},builder:()=>{let e=[],t,r={case:(n,o)=>(e.push({pattern:n,result:o}),r),when:(n,o)=>(e.push({pattern:n,result:o}),r),default:n=>(t=n,{build:()=>o=>{for(let{pattern:a,result:s}of e)if(se(o,a))return typeof s=="function"?s(o):s;if(t!==void 0)return typeof t=="function"?t(o):t;throw new Error(`No matching pattern for value: ${JSON.stringify(o)}`)}})};return r}},rn=a(Ot,Bt);function Ee(e,t){return {...he({_tag:e,impl:t}),toString(){return `${e}()`},doUnwrap(){if("isSome"in t&&"isNone"in t){if(typeof t.isSome=="function"&&t.isSome()&&"get"in t&&typeof t.get=="function")return {ok:true,value:t.get()};if(typeof t.isNone=="function"&&t.isNone())return {ok:false,empty:true}}if("isLeft"in t&&"isRight"in t){if(typeof t.isRight=="function"&&t.isRight()&&"value"in t)return {ok:true,value:t.value};if(typeof t.isLeft=="function"&&t.isLeft()&&"value"in t)return {ok:false,empty:false,error:t.value}}if("isSuccess"in t&&"isFailure"in t){if(typeof t.isSuccess=="function"&&t.isSuccess()&&"get"in t&&typeof t.get=="function")return {ok:true,value:t.get()};if(typeof t.isFailure=="function"&&t.isFailure()&&"getError"in t&&typeof t.getError=="function")return {ok:false,empty:false,error:t.getError()}}if("isEmpty"in t&&"head"in t){if(typeof t.isEmpty=="function"&&t.isEmpty())return {ok:false,empty:true};if(typeof t.head=="function")return {ok:true,value:t.head()};if("head"in t)return {ok:true,value:t.head}}return {ok:true,value:t}}}}var Re="Throwable",Q=class e extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=Re;this.name=n?.taskInfo?.name??Re,Object.defineProperties(this,{_tag:{value:Re,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??Re,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 u=new e(r.message,{data:n,cause:r.cause??void 0,stack:r.stack??void 0,taskInfo:o});for(let T of Object.keys(r))if(!(T in u)){let y=u,m=r;y[T]=m[T];}return u}if(r&&typeof r=="object"){let u=r,T=typeof u.message=="string"?u.message:typeof u.error=="string"?u.error:`Object error: ${JSON.stringify(u,Object.getOwnPropertyNames(u).filter(m=>u[m]!==void 0))}`,y=new e(T,{data:n??u,taskInfo:o});for(let m of Object.keys(u))if(!(m in y)){let x=y;x[m]=u[m];}return y}if(typeof r=="function"){let u=r.name??"anonymous function",T=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new e(`Function error: ${u}`,{data:n??{functionType:typeof r,functionName:u,functionString:T},taskInfo:o})}let a=typeof r,s=r===null?"null":r===void 0?"undefined":String(r);if(a==="number"){let u=r,T=Number.isNaN(u)?"Number error: NaN":Number.isFinite(u)?`Number error: ${u}`:`Number error: ${u>0?"Infinity":"-Infinity"}`;return new e(T,{data:n??{errorType:a,errorValue:u,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 u=r.description??"unnamed symbol";return new e(`Symbol error: Symbol(${u})`,{data:n??{errorType:a,symbolDescription:u,originalError:r},taskInfo:o})}let i=typeof r=="string"?r:`${a.charAt(0).toUpperCase()+a.slice(1)} error: ${s}`;return new e(i,{data:n??{errorType:a,errorValue:s,originalError:r},taskInfo:o})}};var w=e=>{let t=new Promise((r,n)=>{try{e(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>w((n,o)=>{t.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>w((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=>w((n,o)=>{t.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>w((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=>w((n,o)=>{t.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>w(n=>{t.then(n).catch(()=>n(r));}),recoverWith:r=>w(n=>{t.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>w((n,o)=>{t.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>w((o,a)=>{t.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(i){a(i);}else a(s);});}),logError:r=>w((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:async()=>{try{let r=await t;return p(r)}catch(r){return l(r)}},fold:(r,n)=>w((o,a)=>{t.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},Pt={resolve:e=>w(t=>t(e)),reject:e=>w((t,r)=>r(e)),from:e=>w((t,r)=>{e.then(t).catch(r);}),fromEither:e=>e.isRight()?w(t=>t(e.value)):w((t,r)=>r(e.value)),all:e=>w((t,r)=>{Promise.all(e.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(t).catch(r);}),allSettled:e=>w(t=>{let r=[],n=0;if(e.length===0){t([]);return}e.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=p(s),n++,n===e.length&&t(r);}).catch(s=>{r[a]=l(s),n++,n===e.length&&t(r);});});}),race:e=>w((t,r)=>{Promise.race(e).then(t,r);}),any:e=>w((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(i=>{o[s]=i,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 w((a,s)=>{let i=0,u=()=>{e().toPromise().then(a).catch(T=>{if(i++,i<=r&&o(T,i)){let y=n*Math.pow(2,i-1);setTimeout(u,y);}else s(T);});};u();})}},we=a(w,Pt);function _t(e){return e instanceof Error&&typeof e=="object"&&true&&e._tag==="Throwable"}var Ge=(e,t)=>{if(e.isRight())return P(e.orThrow(),t);if(e.isLeft())return k(e.fold(r=>r,()=>new Error("Unexpected right value")),void 0,t);throw new Error("Unrecognized task outcome")},k=(e,t,r)=>{let n={name:r?.name??"Task",description:r?.description??""},o=Q.apply(e,t,n),a={...Ee("Err",{error:o,meta:n}),_tag:"Err",_meta:n,value:void 0,error:o,isSuccess(){return false},isFailure(){return true},isOk(){return false},isErr(){return true},map:s=>k(o,t,r),flatMap:s=>k(o,t,r),ap:s=>k(o,t,r),mapAsync:s=>Promise.resolve(k(o,t,r)),flatMapAsync:s=>Promise.resolve(k(o,t,r)),mapError:s=>k(s(o),t,r),recover:s=>P(s,r),recoverWith:s=>P(s(o),r),orThrow:s=>{throw s??o},orElse:s=>s,or:s=>s,orNull:()=>null,orUndefined:()=>{},toEither:()=>l(o),toTry:()=>O(()=>{throw o}),toOption:()=>A(),toList:()=>d([]),fold:(s,i)=>s(o),match:s=>s.Err(o),foldLeft:s=>i=>s,foldRight:s=>i=>s,size:0,isEmpty:true,contains:s=>false,reduce:s=>{throw new Error("Cannot reduce empty Err")},reduceRight:s=>{throw new Error("Cannot reduceRight empty Err")},count:s=>0,find:s=>A(),exists:s=>false,forEach:s=>{},toPromise:()=>Promise.reject(o),doUnwrap(){return {ok:false,empty:false,error:o}},serialize:()=>({toJSON:()=>ve({_tag:"Err",error:o.message??o.toString()})??"{}",toYAML:()=>`_tag: Err
|
|
10
|
+
error: ${o.message??o.toString()}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Err",error:o.message??o.toString()})).toString("base64")}),pipe:s=>s(a)};return a},P=(e,t)=>{let r={name:t?.name??"Task",description:t?.description??""},n={...Ee("Ok",{value:e,meta:r}),_tag:"Ok",_meta:r,value:e,error:void 0,isSuccess(){return true},isFailure(){return false},isOk(){return true},isErr(){return false},map:o=>P(o(e),t),flatMap:o=>{let a=o(e);return a&&typeof a=="object"&&"isLeft"in a&&"isRight"in a?Ge(a,t):a},ap:o=>o.isOk()?P(o.value(e),t):k(o.error,void 0,t),mapAsync:async o=>P(await o(e),t),flatMapAsync:async o=>await o(e),mapError:o=>P(e,t),recover:o=>P(e,t),recoverWith:o=>P(e,t),orThrow:o=>e,orElse:o=>e,or:o=>P(e,t),orNull:()=>e,orUndefined:()=>e,toEither:()=>p(e),toTry:()=>O(()=>e),toOption:()=>b(e),toList:()=>d([e]),fold:(o,a)=>a(e),match:o=>o.Ok(e),foldLeft:o=>a=>a(o,e),foldRight:o=>a=>a(e,o),size:1,isEmpty:false,contains:o=>e===o,reduce:o=>e,reduceRight:o=>e,count:o=>o(e)?1:0,find:o=>o(e)?b(e):A(),exists:o=>o(e),forEach:o=>o(e),toPromise:()=>Promise.resolve(e),doUnwrap(){return {ok:true,value:e}},serialize:()=>({toJSON:()=>ve({_tag:"Ok",value:e})??"{}",toYAML:()=>`_tag: Ok
|
|
11
|
+
value: ${ve(e)??"undefined"}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Ok",value:e})).toString("base64")}),pipe:o=>o(n)};return n},Ue=()=>{let e=new AbortController,t=ge();return {token:{get isCancelled(){return e.signal.aborted},get signal(){return e.signal},onCancel(n){e.signal.aborted?n():t.add(n);}},cancel(){e.signal.aborted||(e.abort(),t.build().forEach(n=>{try{n();}catch(o){console.error("Error in cancellation callback:",o);}}));}}},Nt=e=>{let t=e?.name??"Task",r=e?.description??"",n={Async:(o,a=u=>u,s=()=>{},i)=>we((u,T)=>{(async()=>{let y=U(false),m=U(null),x=U(()=>{});if(i){if(i.isCancelled){try{await s();}catch(R){u(k(R,void 0,{name:t,description:r}));return}u(k(new Error("Task was cancelled before execution started"),void 0,{name:t,description:r}));return}let L=()=>{y.set(true),m.set(new Error("Task was cancelled during execution"));};i.onCancel(L),x.set(()=>{});}try{let L=await o();try{await s();}catch(R){u(k(R,void 0,{name:t,description:r}));return}if(y.get()){m.get()?u(k(m.get(),void 0,{name:t,description:r})):u(k(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}if(L&&typeof L=="object"&&"_tag"in L){let R=L;R._tag==="Ok"||R._tag==="Err"?u(R):u(P(L,{name:t,description:r}));}else u(P(L,{name:t,description:r}));}catch(L){try{await s();}catch(R){u(k(R,void 0,{name:t,description:r}));return}if(y.get()){m.get()?u(k(m.get(),void 0,{name:t,description:r})):u(k(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{if(L instanceof Error&&_t(L)){let R=new Error(`${t}: ${L.message}`),z=Q.apply(R,void 0,{name:t,description:r});Object.defineProperty(z,"cause",{value:L,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(L);}catch(Z){console.error("Error in error handler:",Z);}}),u(k(z,void 0,{name:t,description:r}));}else {let R=await a(L);if(R&&typeof R=="object"&&"_tag"in R){let z=R;z._tag==="Ok"||z._tag==="Err"?u(z):u(k(R,void 0,{name:t,description:r}));}else u(k(R,void 0,{name:t,description:r}));}}catch(R){u(k(R,void 0,{name:t,description:r}));}}finally{x.get()();}})().catch(y=>u(k(y,void 0,{name:t,description:r})));}),Sync:(o,a=i=>i,s=()=>{})=>{try{return P(o(),{name:t,description:r})}catch(i){return k(a(i),void 0,{name:t,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=T=>T,i=()=>{},u)=>{let T=y=>{let m=Math.max(0,Math.min(100,y));m<=100&&a(m);};return n.Async(()=>o(T),s,i,u)}};return {...Ee("Task",n),_type:"Task"}},Ye={success:(e,t)=>P(e,t),fail:(e,t,r)=>k(e,t,r),ok:(e,t)=>P(e,t),err:(e,t,r)=>k(e,t,r),fromEither:(e,t)=>Ge(e,t),fromTry:(e,t)=>e.isSuccess()?P(e.orThrow(),t):k(e.fold(r=>r,()=>new Error("Unexpected success")),void 0,t),getErrorChain:e=>{if(!e)return [];let t=ge();t.add(e);let r=U(e);for(;r.get()&&r.get().cause;){let{cause:n}=r.get();if(n)t.add(n),r.set(n);else break;if(t.size()>100)break}return t.build()},formatErrorChain:(e,t)=>{let r=Ye.getErrorChain(e),n=t?.separator??`
|
|
12
|
+
`;return r.map((o,a)=>{if(!o)return `${a>0?"\u21B3 ":""}Unknown error`;let{taskInfo:s}=o,i=t?.includeTasks&&s?.name?`[${s.name}] `:"",u=o.message??"No message",T=U(`${a>0?"\u21B3 ":""}${i}${u}`);return t?.includeStackTrace&&o.stack&&T.set(`${T.get()}
|
|
13
|
+
${o.stack.split(`
|
|
14
|
+
`).slice(1).join(`
|
|
15
|
+
`)}`),T.get()}).join(n)},fromPromise:(e,t)=>(...r)=>j(t??{name:"PromiseTask",description:"Task from Promise"}).Async(()=>e(...r),o=>o),toPromise:e=>new Promise((t,r)=>{e.isSuccess()?t(e.orThrow()):r(e.error);}),race:(e,t,r)=>{let n=r?.name??"TaskRace",o=r?.description??"Race between multiple tasks";return j({name:n,description:o}).Async(async()=>{let s=ge();e.forEach(u=>s.add(u));let i=U(void 0);if(typeof t=="number"&&t>0){let u=we((T,y)=>{i.set(setTimeout(()=>{y(new Error(`Task race timed out after ${t}ms`));},t));});s.add(u);}try{return await new Promise((u,T)=>{s.build().forEach(y=>{y.then(m=>{if(m&&typeof m=="object"&&"_tag"in m){let x=m;x._tag==="Ok"?u(x.orThrow()):x._tag==="Err"?T(x.error):u(m);}else u(m);},m=>T(m));});})}finally{i.get()&&clearTimeout(i.get());}},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)=>j(o).Async(()=>new Promise((s,i)=>{try{e(...a,(u,T)=>{u?i(u):s(T);});}catch(u){i(u);}}),s=>s)},createCancellationTokenSource:Ue,cancellable:(e,t)=>{let r=Ue();return {task:j(t).Async(()=>e(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(e,t=()=>{},r)=>{let n=Ue(),o=U(0),a=i=>{o.set(Math.max(0,Math.min(100,i))),t(o.get());};return {task:j(r).Async(()=>e(a,n.token),i=>i,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o.get()}}},j=a(Nt,Ye);function qe(e){if(!e||typeof e!="object"||!("_tag"in e))return "unknown";switch(e._tag){case "Some":case "None":return "Option";case "Left":case "Right":return "Either";case "List":return "List";case "Success":case "Failure":return "Try";default:return "unknown"}}var Le={Option:{of:e=>f(e),empty:()=>f.none()},Either:{of:e=>p(e),empty:e=>l(e)},List:{of:e=>d([e]),empty:()=>d([])},Try:{of:e=>O(()=>e),empty:e=>O(()=>{throw e??new Error("Try failed")})}};function Un(e){let t=e(),r=null,n;function o(a){let s=t.next(a);if(s.done)return n?n.of(s.value):d([s.value]);let i=s.value;if(i==null||typeof i!="object")throw new Error("Do-notation error: All yielded values must be monadic. Use yield* $(Option(value)), yield* $(Right(value)), etc. Raw values should be assigned directly without yielding.");if(!r&&"_tag"in i&&(r=qe(i),r!=="unknown"&&r in Le&&(n=Le[r]),r==="List"))return Mt(e);if("doUnwrap"in i){let u=i.doUnwrap();if(!u.ok){if(!n)return d([]);if(!u.empty&&"error"in u){if(r==="Either")return n.empty(u.error);if(r==="Try")return n.empty(u.error instanceof Error?u.error:new Error(String(u.error)))}return n.empty()}return o(u.value)}throw new Error("Do-notation error: All yielded values must be monadic. Use yield* $(Option(value)), yield* $(Right(value)), etc. Raw values should be assigned directly without yielding.")}return o()}function Mt(e){function t(o){if(o==null||typeof o!="object")return [o];if(!("doUnwrap"in o))return [o];let a=o;if("toArray"in a){let i=a.toArray();return i.length===0?[]:i}let s=a.doUnwrap();return s.ok?[s.value]:[]}function r(o){let a=e(),s=[],i=[],u=0;function T(y){let m=a.next(y);if(m.done){s.push(m.value);return}if(u<o.length){let L=o[u];i.push(L),u++,T(L);return}let x=t(m.value);if(x.length!==0)if(x.length>1){let L=x.flatMap(R=>{let z=[...i,R];return r(z)});s.push(...L);}else i.push(x[0]),u++,T(x[0]);}return T(void 0),s}let n=r([]);return d(n)}async function vn(e){let t=e(),r=null,n;async function o(a){let s=await t.next(a);if(s.done)return n?n.of(s.value):d([s.value]);let i=await Promise.resolve(s.value);if(i==null||typeof i!="object")return o(i);if(!r&&"_tag"in i&&(r=qe(i),r!=="unknown"&&r in Le&&(n=Le[r])),"doUnwrap"in i){let u=i.doUnwrap();if(!u.ok){if(!n)return d([]);if(!u.empty&&"error"in u){if(r==="Either")return n.empty(u.error);if(r==="Try")return n.empty(u.error instanceof Error?u.error:new Error(String(u.error)))}return n.empty()}return o(u.value)}return o(i)}return o()}function Sn(e){return e!==null&&typeof e=="object"&&"doUnwrap"in e&&typeof e.doUnwrap=="function"}function On(e){let t=e.doUnwrap();if(t.ok)return t.value;throw "error"in t?t.error:new Error("Cannot unwrap empty monad")}function*Bn(e){return yield e}var Pn=(e="Cannot unwrap None in Do-notation")=>{let t=new Error(e),r=Object.create(Error.prototype);return r.message=t.message,r.stack=t.stack,r.name="NoneError",r},_n=(e,t="Cannot unwrap Left in Do-notation")=>{let r=new Error(t),n=Object.create(Error.prototype);return n.message=r.message,n.stack=r.stack,n.name="LeftError",n.value=e,n},Nn=(e="Cannot unwrap empty List in Do-notation")=>{let t=new Error(e),r=Object.create(Error.prototype);return r.message=t.message,r.stack=t.stack,r.name="EmptyListError",r},Mn=(e,t="Cannot unwrap Failure in Do-notation")=>{let r=new Error(t),n=Object.create(Error.prototype);return n.message=r.message,n.stack=r.stack,n.name="FailureError",n.cause=e,n};var Qe={includeTasks:true,includeStackTrace:false,separator:`
|
|
16
|
+
`,includeData:false,maxStackFrames:3,title:"Error",colors:false};function He(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"?Ae(n):n},2)}function Ae(e){if(e===void 0||e==="")return "";let t=e.split(`
|
|
17
|
+
`),r=t[0],n=t.slice(1).map(o=>o.trim());return [r,...n].join(`
|
|
18
|
+
`)}function zn(e,t){let r={...Qe,...t},n=e instanceof Error?e:Q.apply(e),o=j?.getErrorChain?j.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((u,T)=>{let y=" ".repeat(T),m=T>0?"\u21B3 ":"",{taskInfo:x}=u,L=r.includeTasks&&x?.name?r.colors?`\x1B[36m[${x.name}]\x1B[0m `:`[${x.name}] `:"",R=`${y}${m}${L}${u.message}`;if(r.includeStackTrace&&u.stack){let Z=Ae(u.stack).split(`
|
|
19
|
+
`).slice(1),ne=r.maxStackFrames??Qe.maxStackFrames??3,me=Z.slice(0,ne).map(ye=>`${y} ${r.colors?"\x1B[90m":""}${ye}${r.colors?"\x1B[0m":""}`).join(`
|
|
20
|
+
`);R+=`
|
|
21
|
+
${me}`,Z.length>ne&&(R+=`
|
|
22
|
+
${y} ${r.colors?"\x1B[90m":""}...${Z.length-ne} more stack frames${r.colors?"\x1B[0m":""}`);}return R}).join(r.separator),i=`${a}
|
|
23
|
+
|
|
24
|
+
${s}`;if(r.includeData){let{data:u}=n;if(u){let T=r.colors?`
|
|
25
|
+
|
|
26
|
+
\x1B[33mContext:\x1B[0m
|
|
27
|
+
${He(u)}`:`
|
|
28
|
+
|
|
29
|
+
Context:
|
|
30
|
+
${He(u)}`;i+=T;}}return i}function Fn(){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?Ae(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof j?.getErrorChain=="function")try{let o=j.getErrorChain(r);o.length>1&&(n.errorChain=j.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?Ae(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var Kn=e=>{let t=new Error(e);return t.name="ParseError",t};var J=(e,t,r,n)=>{let o=Q.apply(t,r,{name:e,description:t});return Object.assign(o,{code:e,message:t,status:Ct(e),context:r,timestamp:new Date().toISOString(),traceId:n?.traceId})},Ct=e=>({VALIDATION_FAILED:400,BAD_REQUEST:400,AUTH_REQUIRED:401,PERMISSION_DENIED:403,NOT_FOUND:404,TIMEOUT:408,CONFLICT:409,RATE_LIMITED:429,INTERNAL_ERROR:500,NETWORK_ERROR:503})[e],Vt={validation:(e,t,r)=>J("VALIDATION_FAILED",`Validation failed: ${e} ${r}`,{field:e,value:t,rule:r}),network:(e,t,r)=>J("NETWORK_ERROR",`Network error: ${t} ${e}${r?` (${r})`:""}`,{url:e,method:t,statusCode:r}),auth:(e,t)=>J("AUTH_REQUIRED",`Authentication required: ${e}${t?` (role: ${t})`:""}`,{resource:e,requiredRole:t}),notFound:(e,t)=>J("NOT_FOUND",`Not found: ${e} with id ${t}`,{resource:e,id:t}),permission:(e,t,r)=>J("PERMISSION_DENIED",`Permission denied: cannot ${e} ${t}`,{action:e,resource:t,userId:r}),rateLimit:(e,t,r)=>J("RATE_LIMITED",`Rate limit exceeded: ${e} requests per ${t}`,{limit:e,window:t,retryAfter:r}),internal:e=>J("INTERNAL_ERROR",`Internal server error: ${e}`,{errorId:e,timestamp:new Date().toISOString()}),badRequest:(e,t)=>J("BAD_REQUEST",`Bad request: ${e}`,{reason:e,expected:t}),conflict:(e,t)=>J("CONFLICT",`Conflict: ${e} already exists with value ${t}`,{resource:e,conflictingValue:t}),timeout:(e,t)=>J("TIMEOUT",`Request timeout: ${t} exceeded ${e}ms`,{duration:e,operation:t}),isTypedError:e=>typeof e=="object"&&e!==null&&"code"in e&&"message"in e&&"status"in e&&"context"in e&&"_tag"in e&&e._tag==="Throwable",hasCode:(e,t)=>e.code===t},v=Object.assign(J,Vt);var I={rule:e=>t=>{if(e==="email")return typeof t!="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?l(v.validation("value",t,"must be a valid email")):p(t);if(e==="url")try{return new URL(String(t)),p(t)}catch{return l(v.validation("value",t,"must be a valid URL"))}if(e==="uuid")return typeof t!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)?l(v.validation("value",t,"must be a valid UUID")):p(t);if(e==="required")return t==null||t===""?l(v.validation("value",t,"is required")):p(t);if(e==="numeric")return typeof t!="number"&&!/^\d+$/.test(String(t))?l(v.validation("value",t,"must be numeric")):p(t);if(e==="alpha")return typeof t!="string"||!/^[a-zA-Z]+$/.test(t)?l(v.validation("value",t,"must contain only letters")):p(t);if(e==="alphanumeric")return typeof t!="string"||!/^[a-zA-Z0-9]+$/.test(t)?l(v.validation("value",t,"must be alphanumeric")):p(t);if(e.startsWith("min:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n<r?l(v.validation("value",t,`must be at least ${r}`)):p(t)}if(e.startsWith("max:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n>r?l(v.validation("value",t,`must be at most ${r}`)):p(t)}if(e.startsWith("minLength:")){let r=Number(e.split(":")[1]);return String(t).length<r?l(v.validation("value",t,`must be at least ${r} characters`)):p(t)}if(e.startsWith("maxLength:")){let r=Number(e.split(":")[1]);return String(t).length>r?l(v.validation("value",t,`must be at most ${r} characters`)):p(t)}if(e.startsWith("pattern:")){let r=e.substring(8);return new RegExp(r).test(String(t))?p(t):l(v.validation("value",t,`must match pattern ${r}`))}if(e.startsWith("in:")){let r=e.substring(3).split(",");return r.includes(String(t))?p(t):l(v.validation("value",t,`must be one of: ${r.join(", ")}`))}if(e.startsWith("notIn:")){let r=e.substring(6).split(",");return r.includes(String(t))?l(v.validation("value",t,`must not be one of: ${r.join(", ")}`)):p(t)}if(e==="date"){let r=new Date(String(t));return isNaN(r.getTime())?l(v.validation("value",t,"must be a valid date")):p(t)}if(e==="future"){let r=new Date(String(t));return isNaN(r.getTime())||r<=new Date?l(v.validation("value",t,"must be a future date")):p(t)}if(e==="past"){let r=new Date(String(t));return isNaN(r.getTime())||r>=new Date?l(v.validation("value",t,"must be a past date")):p(t)}return p(t)},combine:(...e)=>t=>{for(let r of e){let n=r(t);if(n.isLeft())return n}return p(t)},custom:(e,t)=>r=>e(r)?p(r):l(v.validation("value",r,t)),form:(e,t)=>{let r=[],n={};for(let[o,a]of Object.entries(e)){let s=t[o],i=a(s);if(i.isLeft()){let u=i.fold(y=>y,()=>{throw new Error("Should not be left")}),T=v.validation(o,s,u.context.rule);r.push(T);}else n[o]=i.orThrow();}return r.length>0?l(d(r)):p(n)}},It={...I,validators:{email:I.rule("email"),url:I.rule("url"),uuid:I.rule("uuid"),required:I.rule("required"),numeric:I.rule("numeric"),positiveNumber:I.combine(I.rule("numeric"),I.rule("min:0")),nonEmptyString:I.combine(I.rule("required"),I.custom(e=>typeof e=="string"&&e.trim().length>0,"must not be empty"))}},qn=Object.assign(I.rule,It);function zt(e){return e!=null&&typeof e=="object"&&"orThrow"in e&&typeof e.orThrow=="function"}function Ft(e){return zt(e)&&"orElse"in e&&typeof e.orElse=="function"&&"or"in e&&typeof e.or=="function"&&"orNull"in e&&typeof e.orNull=="function"&&"orUndefined"in e&&typeof e.orUndefined=="function"}var no={toOption:e=>e.fold(()=>A(),t=>b(t)),toList:e=>e.fold(()=>d([]),t=>d([t])),toEither:(e,t)=>e.fold(()=>l(t),r=>p(r)),isEmpty:e=>e.fold(()=>true,()=>false),size:e=>e.fold(()=>0,()=>1)};var X=e=>e!==null&&typeof e=="object"&&(e._tag==="Some"||e._tag==="None"),Y=e=>e!==null&&typeof e=="object"&&e._tag==="List",ie=e=>e!==null&&typeof e=="object"&&(e._tag==="Left"||e._tag==="Right"),ue=e=>e!==null&&typeof e=="object"&&(e._tag==="Success"||e._tag==="Failure"),W=()=>{let e=(s,i)=>{if(X(s))return s.map(u=>i(u));if(Y(s))return s.map(u=>i(u));if(ie(s))return s.map(u=>i(u));if(ue(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},t=s=>{if(X(s))return s.orThrow();if(Y(s)){let i=s.toArray();if(i.length>0&&Y(i[0])){let u=[];for(let T of i)Y(T)&&u.push(...T.toArray());return d(u)}return s.flatten()}if(ie(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(ue(s))return s.isSuccess()?s.orThrow():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(X(s))return s.flatMap(u=>i(u));if(Y(s))return s.flatMap(u=>i(u));if(ie(s))return s.flatMap(u=>i(u));if(ue(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(X(s)&&X(i))return s.flatMap(u=>i.map(T=>u(T)));if(Y(s)&&Y(i))return s.flatMap(u=>i.map(T=>u(T)));if(ie(s)&&ie(i))return s.flatMap(u=>i.map(T=>u(T)));if(ue(s)&&ue(i))return s.flatMap(u=>i.map(T=>u(T)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(X(s)){let i=s;if(i.isEmpty)return d([f.none()]);let u=i.orThrow();if(Y(u))return u.map(T=>f(T));throw new Error("Unsupported inner container type for sequence")}if(Y(s)){let u=s.toArray();if(u.length===0)return f.none();let T=u[0];if(X(T)){for(let m of u)if(m.isEmpty)return f.none();let y=u.map(m=>m.orThrow());return f(d(y))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {_tag:"HKT",map:e,flatten:t,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(e(s,u=>i(u))),_type:"HKT"}},le=W();W.map=(e,t)=>le.map(e,t);W.flatten=e=>le.flatten(e);W.flatMap=(e,t)=>le.flatMap(e,t);W.ap=(e,t)=>le.ap(e,t);W.sequence=e=>le.sequence(e);W.traverse=(e,t)=>le.traverse(e,t);W.isOption=X;W.isList=Y;W.isEither=ie;W.isTry=ue;var Se=e=>({id:e,isSame:r=>r.id===e}),Dt={of:e=>Se(e),pure:e=>Se(e)},lo=a(Se,Dt);var ee=e=>{let t=false,r,n,o=false,a=()=>{if(!t)try{r=e(),t=!0;}catch(i){throw n=i,o=true,t=true,i}if(o)throw n;return r};return {_tag:"Lazy",get isEvaluated(){return t},orElse:i=>{try{return a()}catch{return i}},orNull:()=>{try{return a()}catch{return null}},orThrow:i=>{try{return a()}catch(u){throw i??u}},or:i=>D(()=>{try{return a()}catch{return i.orThrow()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>D(()=>i(a())),ap:i=>D(()=>i.orThrow()(a())),mapAsync:async i=>{let u=a(),T=await i(u);return D(()=>T)},flatMap:i=>D(()=>i(a()).orThrow()),flatMapAsync:async i=>{let u=a(),T=await i(u);return D(()=>T.orThrow())},filter:i=>D(()=>{let u=a();return i(u)?b(u):A}),recover:i=>D(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>D(()=>{try{return a()}catch(u){return i(u).orThrow()}}),toOption:()=>{try{return b(a())}catch{return A}},toEither:()=>{try{return p(a())}catch(i){return l(i)}},toEitherWith:i=>{try{return p(a())}catch(u){return l(i(u))}},toTry:()=>O(()=>a()),tap:i=>D(()=>{let u=a();return i(u),u}),tapError:i=>D(()=>{try{return a()}catch(u){throw i(u),u}}),fold:i=>i(a()),foldWith:(i,u)=>{try{return u(a())}catch(T){return i(T)}},foldLeft:i=>u=>u(i,a()),foldRight:i=>u=>u(a(),i),match:i=>i.Lazy(a()),toString:()=>t&&!o?`Lazy(${ve(r)})`:t&&o?`Lazy(<error: ${n instanceof Error?n.message:String(n)}>)`:"Lazy(<not evaluated>)",toValue:()=>t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false},get size(){try{return a(),1}catch{return 0}},get isEmpty(){try{return a(),!1}catch{return true}},contains:i=>{try{return a()===i}catch{return false}},reduce:i=>a(),reduceRight:i=>a(),count:i=>{try{return i(a())?1:0}catch{return 0}},find:i=>{try{let u=a();return i(u)?b(u):A}catch{return A}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>t&&!o?`_tag: Lazy
|
|
31
|
+
evaluated: true
|
|
32
|
+
value: ${ve(r)}`:`_tag: Lazy
|
|
33
|
+
evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false})).toString("base64")}),typeable:"Lazy"}},Kt={of:e=>ee(e),fromValue:e=>ee(()=>e),fromOption:(e,t)=>ee(()=>e._tag==="Some"?e.value:t()),fromTry:e=>ee(()=>e.orThrow()),fromEither:e=>ee(()=>e.fold(t=>{throw t},t=>t)),fromPromise:e=>ee(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:e=>ee(()=>{throw e})},D=a(ee,Kt);var de=Map;var H=e=>{let r={values:new de(e)},n=()=>Array.from(r.values.entries()).map(([c,h])=>b$1([c,h])),o=c=>H(new de(r.values).set(c.toArray()[0],c.toArray()[1]).entries()),a=c=>{let h=new de(r.values);return h.delete(c)?H(h.entries()):H(r.values.entries())},s=c=>{let h=c.toArray();return r.values.get(h[0])===h[1]},i=()=>r.values.size,u=c=>H(Array.from(r.values.entries()).map(([h,F])=>[h,c(F)])),T=c=>{let h=H(r.values.entries()).toList();return H(h.flatMap(c).toArray())},y=c=>{let h=[];for(let[F,oe]of r.values.entries()){let Te=c.get(F);Te._tag==="Some"&&Te.value&&h.push([F,Te.value(oe)]);}return H(h)},m=async c=>{let h=new de;for(let[F,oe]of r.values.entries()){let Te=await c(oe);for(let rt of Te.toList()){let[nt,ot]=rt.toArray();h.set(nt,ot);}}return H(h.entries())},x=c=>d(n()).reduce(c),L=c=>d(n()).reduceRight(c),R=c=>h=>d(n()).foldLeft(c)(h),z=c=>h=>d(n()).foldRight(c)(h),Z=c=>f(r.values.get(c)),ne=(c,h)=>f(r.values.get(c)).orElse(h),pe=()=>r.values.size===0,me=(c,h)=>f(r.values.get(c)).or(h),ye=(c,h)=>{if(pe())return c();let F=n();if(F.length===0)return c();let oe=F[0];return oe===void 0?c():h(oe)},Pe=()=>d(n()),g=()=>te(n()),_=()=>`Map(${n().toString()})`,N=c=>pe()?c.Empty():c.NonEmpty(n());return {_tag:"Map",[Symbol.iterator]:()=>r.values.entries(),add:o,remove:a,contains:s,get size(){return i()},map:u,ap:y,flatMap:T,flatMapAsync:m,reduce:x,reduceRight:L,foldLeft:R,foldRight:z,fold:ye,match:N,get:Z,getOrElse:ne,get isEmpty(){return pe()},orElse:me,toList:Pe,toSet:g,toString:_,toValue:()=>({_tag:"Map",value:Array.from(r.values.entries())}),pipe:c=>c(Array.from(r.values.entries())),serialize:()=>M("Map",Array.from(r.values.entries()))}},$t=e=>H(e),Xe={fromJSON:e=>{let t=JSON.parse(e);return Oe(t.value)},fromYAML:e=>{let r=e.split(`
|
|
34
|
+
`)[1]?.split(": ")[1];if(!r)return Oe([]);let n=JSON.parse(r);return Oe(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Xe.fromJSON(t)}},Oe=a($t,Xe);var jt={default:e=>t=>e(t),when:(e,t)=>r=>e(r)?t(r):void 0};var K=(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=>K([...r,g]),pop:()=>{if(o())return [K([]),f(null)];let g=[...r],_=g.pop();return [K(g),f(_)]},peek:()=>o()?f(null):f(r[r.length-1]),map:g=>K(r.map(g)),flatMap:g=>o()?K([]):r.reduce((_,N)=>g(N).toArray().reduce((h,F)=>h.push(F),_),K([])),ap:g=>{let _=[];return r.forEach(N=>{g.toArray().forEach(c=>{_.push(c(N));});}),K(_)},flatMapAsync:async g=>o()?K([]):(await Promise.all(r.map(async N=>await g(N)))).reduce((N,c)=>c.toArray().reduce((h,F)=>h.push(F),N),K([])),toList:()=>d(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(g,_)=>{if(o())return g();let N=r[r.length-1];return N!==void 0?_(N):g()},foldLeft:g=>_=>r.reduce(_,g),foldRight:g=>_=>r.reduceRight((N,c)=>_(c,N),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
|
|
35
|
+
value: ${JSON.stringify(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Stack",value:r})).toString("base64")})}},Jt=(e=[])=>K(e),et={empty:()=>K([]),of:e=>K([e]),fromJSON:e=>{let t=JSON.parse(e);return Be(t.value)},fromYAML:e=>{let r=e.split(`
|
|
36
|
+
`)[1]?.split(": ")[1];if(!r)return Be([]);let n=JSON.parse(r);return Be(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return et.fromJSON(t)}},Be=a(Jt,et);function zo(e){let t=he({_tag:e._tag,impl:e.impl});return {...t,toValue:()=>({_tag:t._tag,value:e.value})}}var b=e=>({_tag:"Some",value:e,isEmpty:false,isSome(){return true},isNone(){return false},orElse:()=>e,orThrow:()=>e,or:t=>b(e),orNull:()=>e,orUndefined:()=>e,map:t=>b(t(e)),ap:t=>t._tag==="Some"&&t.value?b(t.value(e)):G,filter(t){return t(e)?b(e):G},count:t=>t(e)?1:0,find:t=>t(e)?b(e):G,exists:t=>t(e),forEach:t=>t(e),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:()=>d([e]),contains:t=>t===e,size:1,toOption:()=>b(e),toEither:t=>p(e),toTry:()=>O(()=>e),toPromise:()=>Promise.resolve(e),toString:()=>`Some(${ve(e)})`,toValue:()=>({_tag:"Some",value:e}),pipe:t=>t(e),serialize:()=>M("Some",e),doUnwrap(){return {ok:true,value:e}}}),G={_tag:"None",value:void 0,isEmpty:true,isSome(){return false},isNone(){return true},orElse:e=>e,orThrow(e){throw e??new Error("Cannot extract value from None")},or:e=>e,orNull:()=>null,orUndefined:()=>{},map:e=>G,ap:e=>G,filter(e){return G},count:e=>0,find:e=>G,exists:e=>false,forEach:e=>{},flatMap:e=>G,flatMapAsync:e=>Promise.resolve(G),reduce:()=>{},reduceRight:()=>{},fold:(e,t)=>e(),match:e=>e.None(),foldLeft:e=>()=>e,foldRight:e=>()=>e,toList:()=>d([]),contains:()=>false,size:0,toOption:()=>G,toEither:e=>l(e),toTry:()=>O(()=>{throw new Error("None")}),toPromise:()=>Promise.reject(new Error("Cannot convert None to Promise")),toString:()=>"None",toValue:()=>({_tag:"None",value:void 0}),pipe:e=>e(void 0),serialize:()=>M("None",null),doUnwrap(){return {ok:false,empty:true}}},A=()=>G,Gt=e=>e!=null?b(e):A(),tt={from:e=>f(e),none:()=>A(),isSome:e=>e.isSome(),isNone:e=>e.isNone(),fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Some"?b(t.value):A()},fromYAML:e=>{let t=e.split(`
|
|
37
|
+
`),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)return A();let o=n==="null"?null:JSON.parse(n);return r==="Some"?b(o):A()},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return tt.fromJSON(t)}},f=a(Gt,tt);export{vn as $,V as A,Je as B,ht as C,Et as D,Rt as E,Lt as F,At as G,kt as H,xt as I,bt as J,wt as K,Ut as L,vt as M,qr as N,Zr as O,rn as P,Ee as Q,Re as R,Q as S,Pt as T,we as U,_t as V,k as W,P as X,Ue as Y,j as Z,Un as _,M as a,Sn as aa,Me as b,On as ba,Ce as c,Bn as ca,at as d,Pn as da,st as e,_n as ea,qt as f,Nn as fa,b as g,Mn as ga,A as h,He as ha,Gt as i,Ae as ia,f as j,zn as ja,te as k,Fn as ka,U as l,Kn as la,dr as m,v as ma,O as n,qn as na,he as o,Ft as oa,ke as p,no as pa,d as q,W as qa,p as r,lo as ra,l as s,D as sa,zr as t,de as ta,Fr as u,Oe as ua,Dr as v,jt as va,mt as w,Be as wa,yt as x,zo as xa,Kr as y,$r as z};//# sourceMappingURL=chunk-6ZIR6EKC.mjs.map
|
|
38
|
+
//# sourceMappingURL=chunk-6ZIR6EKC.mjs.map
|