functype 0.14.4 → 0.14.6

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.
@@ -4,15 +4,6 @@ import { T as Type, P as Pipe, a as Typeable, S as Serializable, F as Foldable }
4
4
  * Protocol definitions for Do-notation
5
5
  * Separated from main Do module to avoid circular dependencies
6
6
  */
7
- /**
8
- * Protocol symbol for Do-notation unwrapping
9
- * All monads that support Do-notation should implement this protocol
10
- */
11
- declare const DO_PROTOCOL: unique symbol;
12
- /**
13
- * Type for the DO_PROTOCOL symbol
14
- */
15
- type DO_PROTOCOL_TYPE = typeof DO_PROTOCOL;
16
7
  /**
17
8
  * Result type for Do-notation unwrapping
18
9
  * Indicates whether unwrapping succeeded and provides the value or error
@@ -32,12 +23,16 @@ type DoResult<T> = {
32
23
  * Interface for types that support Do-notation
33
24
  * Implementing this interface allows a type to be yielded in Do-comprehensions
34
25
  *
35
- * Using a mapped type with 'as const' assertion to work around TypeScript's
36
- * limitation with unique symbols in declaration files (TS4023)
26
+ * The doUnwrap method should return a DoResult indicating success/failure
27
+ * and the contained value or error information
37
28
  */
38
- interface DoProtocol<T> {
39
- readonly [DO_PROTOCOL]: () => DoResult<T>;
29
+ interface Doable<T> {
30
+ doUnwrap(): DoResult<T>;
40
31
  }
32
+ /**
33
+ * @deprecated Use Doable interface instead
34
+ */
35
+ type DoProtocol<T> = Doable<T>;
41
36
 
42
37
  /**
43
38
  * Extractable type class for data structures that can extract their values
@@ -236,7 +231,7 @@ interface Promisable<A extends Type> {
236
231
  * Possible types of Try instances
237
232
  */
238
233
  type TypeNames = "Success" | "Failure";
239
- interface Try<T> extends FunctypeBase<T, TypeNames>, Extractable<T>, Pipe<T>, Promisable<T>, DoProtocol<T>, Reshapeable<T> {
234
+ interface Try<T> extends FunctypeBase<T, TypeNames>, Extractable<T>, Pipe<T>, Promisable<T>, Doable<T>, Reshapeable<T> {
240
235
  readonly _tag: TypeNames;
241
236
  readonly error: Error | undefined;
242
237
  isSuccess(): this is Try<T> & {
@@ -421,7 +416,7 @@ declare const OptionConstructor: <T extends Type>(value: T | null | undefined) =
421
416
  * It's used to handle potentially null or undefined values in a type-safe way.
422
417
  * @typeParam T - The type of the value contained in the Option
423
418
  */
424
- interface Option<T extends Type> extends Functype<T, "Some" | "None">, Promisable<T>, DoProtocol<T>, Reshapeable<T> {
419
+ interface Option<T extends Type> extends Functype<T, "Some" | "None">, Promisable<T>, Doable<T>, Reshapeable<T> {
425
420
  /** The contained value (undefined for None) */
426
421
  readonly value: T | undefined;
427
422
  /** Whether this Option contains no value */
@@ -614,7 +609,7 @@ declare const Option: (<T extends Type>(value: T | null | undefined) => Option<T
614
609
  fromBinary: <T>(binary: string) => Option<T>;
615
610
  };
616
611
 
617
- interface List<A> extends FunctypeCollection<A, "List">, DoProtocol<A>, Reshapeable<A> {
612
+ interface List<A> extends FunctypeCollection<A, "List">, Doable<A>, Reshapeable<A> {
618
613
  readonly length: number;
619
614
  readonly [Symbol.iterator]: () => Iterator<A>;
620
615
  map: <B>(f: (a: A) => B) => List<B>;
@@ -825,7 +820,7 @@ declare const tryCatchAsync: <L extends Type, R extends Type>(f: () => Promise<R
825
820
  * @module Either
826
821
  * @category Core
827
822
  */
828
- interface Either<L extends Type, R extends Type> extends FunctypeBase<R, "Left" | "Right">, Promisable<R>, DoProtocol<R>, Reshapeable<R> {
823
+ interface Either<L extends Type, R extends Type> extends FunctypeBase<R, "Left" | "Right">, Promisable<R>, Doable<R>, Reshapeable<R> {
829
824
  readonly _tag: "Left" | "Right";
830
825
  value: L | R;
831
826
  isLeft(): this is Either<L, R> & {
@@ -910,4 +905,4 @@ declare const Either: {
910
905
  fromBinary: <L extends Type, R extends Type>(binary: string) => Either<L, R>;
911
906
  };
912
907
 
913
- export { type Applicative as A, type Collection as C, DO_PROTOCOL as D, Either as E, type FunctypeBase as F, List as L, type Matchable as M, None as N, Option as O, type Promisable as P, Right as R, Some as S, Try as T, type DoResult as a, type Extractable as b, type Traversable as c, type DO_PROTOCOL_TYPE as d, type DoProtocol as e, type TestEither as f, Left as g, isLeft as h, isRight as i, TypeCheckRight as j, TypeCheckLeft as k, tryCatchAsync as l, isExtractable as m, type Functype as n, type FunctypeCollection as o, MatchableUtils as p, OptionConstructor as q, Set as r, type TypeNames as s, tryCatch as t, type CollectionOps as u, type ContainerOps as v, type AsyncMonad as w, type Functor as x, type Monad as y, type Reshapeable as z };
908
+ export { type Applicative as A, type Collection as C, type DoResult as D, Either as E, type FunctypeBase as F, List as L, type Matchable as M, None as N, Option as O, type Promisable as P, Right as R, Some as S, Try as T, type Extractable as a, type Traversable as b, type Doable as c, type DoProtocol as d, type TestEither as e, Left as f, isLeft as g, TypeCheckRight as h, isRight as i, TypeCheckLeft as j, tryCatchAsync as k, isExtractable as l, type Functype as m, type FunctypeCollection as n, MatchableUtils as o, OptionConstructor as p, Set as q, type TypeNames as r, type CollectionOps as s, tryCatch as t, type ContainerOps as u, type AsyncMonad as v, type Functor as w, type Monad as x, type Reshapeable as y };
@@ -0,0 +1,43 @@
1
+ import {a,b as b$1}from'./chunk-BQJB6CCW.mjs';import {a as a$1}from'./chunk-YBBRJTHY.mjs';import de from'safe-stable-stringify';var Y=Set;var N=t=>{let e=new Y(t),r={_tag:"Set",[Symbol.iterator]:()=>e[Symbol.iterator](),add:n=>N([...e,n]),remove:n=>{let o=new Y(e);return o.delete(n),N(o)},contains:n=>e.has(n),has:n=>e.has(n),map:n=>N(Array.from(e).map(n)),ap:n=>{let o=new Y;for(let a of e)for(let s of n)o.add(s(a));return N(o)},flatMap:n=>{let o=new Y;for(let a of e)for(let s of n(a))o.add(s);return N(o)},flatMapAsync:async n=>{let o=new Y;for(let a of e){let s=await n(a);for(let i of s)o.add(i);}return N(o)},fold:(n,o)=>{if(e.size===0)return n();let a=Array.from(e);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 e)a=o(a,s);return a},foldRight:n=>o=>Array.from(e).reduceRight((s,i)=>o(i,s),n),get size(){return e.size},get isEmpty(){return e.size===0},reduce:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduce empty Set");return o.reduce(n)},reduceRight:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduceRight empty Set");return o.reduceRight(n)},count:n=>{let o=0;for(let a of e)n(a)&&o++;return o},find:n=>{for(let o of e)if(n(o))return f(o);return f(null)},exists:n=>{for(let o of e)if(n(o))return true;return false},forEach:n=>{e.forEach(n);},filter:n=>{let o=new Y;for(let a of e)n(a)&&o.add(a);return N(o)},filterNot:n=>{let o=new Y;for(let a of e)n(a)||o.add(a);return N(o)},drop:n=>N(Array.from(e).slice(n)),dropRight:n=>N(Array.from(e).slice(0,-n)),dropWhile:n=>{let o=Array.from(e),a=o.findIndex(s=>!n(s));return N(a===-1?[]:o.slice(a))},flatten:()=>{let n=new Y;for(let o of e)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 N(n)},get head(){return Array.from(e)[0]},get headOption(){let n=Array.from(e)[0];return f(n)},toList:()=>m(Array.from(e)),toSet:()=>r,toArray:()=>Array.from(e),toString:()=>`Set(${Array.from(e).toString()})`,toValue:()=>({_tag:"Set",value:Array.from(e)}),pipe:n=>n(Array.from(e)),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Set",value:Array.from(e)}),toYAML:()=>`_tag: Set
2
+ value: ${JSON.stringify(Array.from(e))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Set",value:Array.from(e)})).toString("base64")})};return r},tt=t=>N(t),Ne={fromJSON:t=>{let e=JSON.parse(t);return re(e.value)},fromYAML:t=>{let r=t.split(`
3
+ `)[1]?.split(": ")[1];if(!r)return re([]);let n=JSON.parse(r);return re(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ne.fromJSON(e)}},re=a(tt,Ne);function k(t){let e=t;return {get(){return e},set(n){e=n;},update(n){e=n(e);},getAndSet(n){let o=e;return e=n,o},updateAndGet(n){return e=n(e),e},getAndUpdate(n){let o=e;return e=n(e),o},compareAndSet(n,o){return e===n?(e=o,true):false},modify(n){let[o,a]=n(e);return e=o,a}}}k.of=k;var se=(t=0)=>{let e=k(t),r=t;return {get:()=>e.get(),set:n=>e.set(n),increment:()=>e.updateAndGet(n=>n+1),decrement:()=>e.updateAndGet(n=>n-1),reset:()=>e.set(r),compareAndSet:(n,o)=>e.compareAndSet(n,o)}};var Ae=()=>{let t=k([]);return {add:e=>t.update(r=>[...r,e]),addAll:e=>t.update(r=>[...r,...e]),build:()=>t.get(),clear:()=>t.set([]),size:()=>t.get().length}};var S=t=>{let e={_tag:"LazyList",[Symbol.iterator]:()=>t[Symbol.iterator](),map:r=>S((function*(){for(let n of t)yield r(n);})()),flatMap:r=>S((function*(){for(let n of t)yield*r(n);})()),filter:r=>S((function*(){for(let n of t)r(n)&&(yield n);})()),take:r=>S((function*(){let n=se(0);for(let o of t){if(n.get()>=r)break;yield o,n.increment();}})()),drop:r=>S((function*(){let n=se(0);for(let o of t)n.get()>=r&&(yield o),n.increment();})()),takeWhile:r=>S((function*(){for(let n of t){if(!r(n))break;yield n;}})()),dropWhile:r=>S((function*(){let n=k(true);for(let o of t)n.get()&&r(o)||(n.set(false),yield o);})()),concat:r=>S((function*(){yield*t,yield*r;})()),zip:r=>S((function*(){let n=t[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:()=>m(Array.from(t)),toArray:()=>Array.from(t),forEach:r=>{for(let n of t)r(n);},reduce:(r,n)=>{let o=k(n);for(let a of t)o.set(r(o.get(),a));return o.get()},find:r=>{for(let n of t)if(r(n))return f(n);return f.none()},some:r=>{for(let n of t)if(r(n))return true;return false},every:r=>{for(let n of t)if(!r(n))return false;return true},count:()=>{let r=se(0);for(let n of t)r.increment();return r.get()},first:()=>{let n=t[Symbol.iterator]().next();return n.done?f.none():f(n.value)},last:()=>{let r=k(void 0),n=k(false);for(let o of t)r.set(o),n.set(true);return n.get()?f(r.get()):f.none()},fold:(r,n)=>{let a=t[Symbol.iterator]().next();return a.done?r():n(a.value)},foldLeft:r=>n=>{let o=k(r);for(let a of t)o.set(n(o.get(),a));return o.get()},foldRight:r=>n=>Array.from(t).reduceRight((a,s)=>n(s,a),r),pipe:r=>r(e),serialize:()=>{let r=Array.from(t);return {toJSON:()=>JSON.stringify({_tag:"LazyList",value:r}),toYAML:()=>`_tag: LazyList
4
+ value: ${de(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=se(0),a=k(false);for(let i of t)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 e},nt=t=>S(t),ot={empty:()=>S([]),of:t=>S([t]),from:(...t)=>S(t),iterate:(t,e)=>S((function*(){let r=k(t);for(;;)yield r.get(),r.set(e(r.get()));})()),generate:t=>S((function*(){for(;;)yield t();})()),range:(t,e,r=1)=>S((function*(){if(r===0)throw new Error("Step cannot be zero");let n=k(t);if(r>0)for(;n.get()<e;)yield n.get(),n.set(n.get()+r);else for(;n.get()>e;)yield n.get(),n.set(n.get()+r);})()),repeat:(t,e)=>S((function*(){if(e===void 0)for(;;)yield t;else {let r=se(0);for(;r.get()<e;)yield t,r.increment();}})()),cycle:t=>S((function*(){let e=Array.from(t);if(e.length!==0)for(;;)yield*e;})())},Dt=a(nt,ot);var fe=t=>({_tag:"Success",error:void 0,isSuccess(){return true},isFailure(){return false},get:()=>t,getOrElse:e=>t,getOrThrow:e=>t,orElse:e=>fe(t),orNull:()=>t,orUndefined:()=>t,orThrow:e=>t,toEither:e=>c(t),map:e=>B(()=>e(t)),ap:e=>e.map(r=>r(t)),flatMap:e=>e(t),flatMapAsync:async e=>e(t),fold:(e,r)=>r(t),match:e=>e.Success(t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),toString:()=>`Success(${de(t)})`,toPromise:()=>Promise.resolve(t),toValue:()=>({_tag:"Success",value:t}),toOption:()=>w(t),toList:()=>m([t]),toTry:()=>fe(t),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:t}),toYAML:()=>`_tag: Success
5
+ value: ${de(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Success",value:t})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:e=>t===e,reduce:e=>t,reduceRight:e=>t,count:e=>e(t)?1:0,find:e=>e(t)?f(t):f(void 0),exists:e=>e(t),forEach:e=>e(t),doUnwrap(){return {ok:true,value:t}}}),K=t=>({_tag:"Failure",error:t,isSuccess(){return false},isFailure(){return true},get:()=>{throw t},getOrElse:e=>e,getOrThrow:e=>{throw e??t},orElse:e=>e,orNull:()=>null,orUndefined:()=>{},orThrow:e=>{throw e},toEither:e=>p(t),map:e=>K(t),ap:e=>K(t),flatMap:e=>K(t),flatMapAsync:e=>Promise.resolve(K(t)),fold:(e,r)=>e(t),match:e=>e.Failure(t),foldLeft:e=>r=>e,foldRight:e=>r=>e,toString:()=>`Failure(${de(t)}))`,toPromise:()=>Promise.reject(t),toValue:()=>({_tag:"Failure",value:t}),toOption:()=>b(),toList:()=>m([]),toTry:()=>K(t),pipe:e=>{throw t},serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Failure",error:t.message,stack:t.stack}),toYAML:()=>`_tag: Failure
6
+ error: ${t.message}
7
+ stack: ${t.stack}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Failure",error:t.message,stack:t.stack})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:e=>false,reduce:e=>{throw new Error("Cannot reduce a Failure")},reduceRight:e=>{throw new Error("Cannot reduceRight a Failure")},count:e=>0,find:e=>f(null),exists:e=>false,forEach:e=>{},doUnwrap(){return {ok:false,empty:false,error:t}}}),at=t=>{try{return fe(t())}catch(e){return K(e instanceof Error?e:new Error(String(e)))}},Me={fromJSON:t=>{let e=JSON.parse(t);if(e._tag==="Success")return fe(e.value);{let r=new Error(e.error);return e.stack&&(r.stack=e.stack),K(r)}},fromYAML:t=>{let e=t.split(`
8
+ `),r=e[0]?.split(": ")[1];if(!r)return K(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=e[1]?.split(": ")[1];if(!n)return K(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return fe(o)}else {let n=e[1]?.split(": ")[1];if(!n)return K(new Error("Invalid YAML format for Try Failure"));let o=e[2]?.split(": "),a=o&&o.length>1?o.slice(1).join(": "):void 0,s=new Error(n);return a&&(s.stack=a),K(s)}},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Me.fromJSON(e)}},B=a(at,Me);function Re({_tag:t,impl:e}){return {...e,_tag:t}}function be(t,e){return !t||typeof t!="object"||!("_tag"in t)?false:e?t._tag===e:true}var v=t=>{let e=Array.from(t??[]),r={_tag:"List",[Symbol.iterator]:()=>e[Symbol.iterator](),get size(){return e.length},get length(){return e.length},map:n=>v(e.map(n)),ap:n=>v(e.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>v(e.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(e.map(async a=>await n(a)));return v(o.flatMap(a=>Array.from(a)))},forEach:n=>e.forEach(n),contains:n=>e.includes(n),count:n=>e.filter(n).length,exists:n=>e.some(n),filter:n=>v(e.filter(n)),filterNot:n=>v(e.filter(o=>!n(o))),filterType:n=>v(e.filter(o=>be(o,n))),find:(n,o)=>{let a=e.find(s=>n(s)&&(o?be(s,o):true));return f(a)},get head(){return e[0]},get headOption(){return e.length>0?f(e[0]):b()},get isEmpty(){return e.length===0},toArray:()=>[...e],reduce:n=>e.reduce(n),reduceRight:n=>e.reduceRight(n),fold:(n,o)=>{if(e.length===0)return n();let a=e[0];return o(a)},foldLeft:n=>o=>e.reduce(o,n),foldRight:n=>o=>e.reduceRight((a,s)=>o(s,a),n),match:n=>e.length===0?n.Empty():n.NonEmpty([...e]),remove:n=>v(e.filter(o=>o!==n)),removeAt:n=>n<0||n>=e.length?r:v([...e.slice(0,n),...e.slice(n+1)]),add:n=>v([...e,n]),get:n=>f(e[n]),concat:n=>v([...e,...n.toArray()]),drop:n=>v(e.slice(n)),dropRight:n=>v(e.slice(0,-n)),dropWhile:n=>v(e.slice(e.findIndex(o=>!n(o)))),flatten:()=>v(e.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>re(e),toOption:()=>e.length>0?f(e[0]):b(),toEither:n=>e.length>0?c(e[0]):p(n),toTry:()=>e.length>0?B(()=>e[0]):B(()=>{throw new Error("Empty list")}),toString:()=>`List(${de(e)})`,toValue:()=>({_tag:"List",value:e}),pipe:n=>n([...e]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:e}),toYAML:()=>`_tag: List
9
+ value: ${de(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:e})).toString("base64")}),doUnwrap(){return e.length===0?{ok:false,empty:true}:{ok:true,value:e[0]}}};return r},st=t=>v(t),Ve={fromJSON:t=>{let e=JSON.parse(t);return m(e.value)},fromYAML:t=>{let r=t.split(`
10
+ `)[1]?.split(": ")[1];if(!r)return m([]);let n=JSON.parse(r);return m(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ve.fromJSON(e)}},m=a(st,Ve);var Ie=t=>({_tag:"Right",value:t,isLeft(){return false},isRight(){return true},get:()=>t,getOrElse:e=>t,getOrThrow:()=>t,orElse:e=>c(t),orNull:()=>t,orUndefined:()=>t,map:e=>c(e(t)),ap:e=>e._tag==="Right"?c(e.value(t)):p(e.value),mapAsync:e=>e(t).then(r=>c(r)).catch(r=>Promise.resolve(p(r))),merge:e=>e.isLeft()?p(e.value):c([t,e.value]),flatMap:e=>e(t),flatMapAsync:e=>e(t).catch(r=>p(r)),toOption:()=>w(t),toList:()=>m([t]),toEither:e=>c(t),toTry:()=>B(()=>t),toJSON(){return {_tag:"Right",value:t}},toString:()=>`Right(${de(t)})`,*[Symbol.iterator](){yield t;},*yield(){yield t;},traverse:e=>{let r=e(t);return r.isLeft()?p(r.value):c([r.value])},*lazyMap(e){yield c(e(t));},tap:e=>(e(t),c(t)),tapLeft:e=>c(t),mapLeft:e=>c(t),bimap:(e,r)=>c(r(t)),fold:(e,r)=>r(t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),match:e=>e.Right(t),swap:()=>p(t),toPromise:()=>Promise.resolve(t),toValue:()=>({_tag:"Right",value:t}),pipeEither:(e,r)=>r(t),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Right",value:t}),toYAML:()=>`_tag: Right
11
+ value: ${de(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Right",value:t})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:e=>t===e,reduce:e=>t,reduceRight:e=>t,count:e=>e(t)?1:0,find:e=>e(t)?w(t):b(),exists:e=>e(t),forEach:e=>e(t),doUnwrap(){return {ok:true,value:t}}}),ze=t=>({_tag:"Left",value:t,isLeft(){return true},isRight(){return false},get:()=>{throw new Error(`Cannot call get() on Left(${de(t)})`)},getOrElse:e=>e,getOrThrow:e=>{throw e??t},orElse:e=>e,orNull:()=>null,orUndefined:()=>{},map:e=>p(t),ap:e=>p(t),mapAsync:e=>Promise.resolve(p(t)),merge:e=>p(t),flatMap:e=>p(t),flatMapAsync:e=>Promise.resolve(p(t)),toOption:()=>b(),toList:()=>m(),toEither:e=>p(e),toTry:()=>B(()=>{throw new Error(String(t))}),toJSON(){return {_tag:"Left",value:t}},toString:()=>`Left(${de(t)})`,*[Symbol.iterator](){},*yield(){},traverse:e=>p(t),*lazyMap(e){yield p(t);},tap:e=>p(t),tapLeft:e=>(e(t),p(t)),mapLeft:e=>p(e(t)),bimap:(e,r)=>p(e(t)),fold:(e,r)=>e(t),foldLeft:e=>r=>e,foldRight:e=>r=>e,match:e=>e.Left(t),swap:()=>c(t),toPromise:()=>Promise.reject(t),toValue:()=>({_tag:"Left",value:t}),pipeEither:(e,r)=>e(t),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Left",value:t}),toYAML:()=>`_tag: Left
12
+ value: ${de(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Left",value:t})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:e=>false,reduce:e=>{throw new Error("Cannot reduce a Left")},reduceRight:e=>{throw new Error("Cannot reduceRight a Left")},count:e=>0,find:e=>b(),exists:e=>false,forEach:e=>{},doUnwrap(){return {ok:false,empty:false,error:t}}}),c=t=>Ie(t),p=t=>ze(t),ur=t=>t.isRight(),lr=t=>t.isLeft(),pr=(t,e)=>{try{return c(t())}catch(r){return p(e(r))}},it=t=>Ie(t);console.assert(it);var ut=t=>ze(t);console.assert(ut);var cr=async(t,e)=>{try{let r=await t();return c(r)}catch(r){return p(e(r))}},Ce={sequence:t=>t.reduce((e,r)=>e.isLeft()?e:r.isLeft()?p(r.value):e.map(n=>[...n,r.value]),c([])),traverse:(t,e)=>Ce.sequence(t.map(e)),fromNullable:(t,e)=>t==null?p(e):c(t),fromPredicate:(t,e,r)=>e(t)?c(t):p(r),ap:(t,e)=>t.flatMap(r=>e.map(r)),fromPromise:async(t,e)=>{try{let r=await t;return c(r)}catch(r){return p(e(r))}},fromJSON:t=>{let e=JSON.parse(t);return e._tag==="Right"?c(e.value):p(e.value)},fromYAML:t=>{let e=t.split(`
13
+ `),r=e[0]?.split(": ")[1],n=e[1]?.split(": ")[1];if(!r||!n)throw new Error("Invalid YAML format for Either");let o=JSON.parse(n);return r==="Right"?c(o):p(o)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ce.fromJSON(e)}};function C(t,e){return {brand:t,validate:e,of:r=>e(r)?f(a$1(t,r)):f.none(),from:r=>e(r)?c(a$1(t,r)):p(`Invalid ${t}: validation failed`),unsafeOf:r=>{if(!e(r))throw new Error(`Invalid ${t}: validation failed`);return a$1(t,r)},is:r=>{try{return e(r)}catch{return false}},unwrap:r=>r,refine:(r,n)=>C(r,o=>e(o)&&n(o))}}var lt=C("PositiveNumber",t=>t>0),yr=C("NonNegativeNumber",t=>t>=0),gr=C("IntegerNumber",t=>Number.isInteger(t)),hr=lt.refine("PositiveInteger",t=>Number.isInteger(t)),Er=C("NonEmptyString",t=>t.length>0),Ar=C("EmailAddress",t=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)),Rr=C("UrlString",t=>{try{return new URL(t),!0}catch{return !1}}),Lr=C("UUID",t=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)),kr=C("ISO8601Date",t=>!isNaN(Date.parse(t))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(t));function xr(t,e,r){return C(t,n=>n>=e&&n<=r)}function br(t,e,r){return C(t,n=>n.length>=e&&n.length<=r)}function wr(t,e){return C(t,r=>e.test(r))}var we=t=>{let e=n=>typeof n=="function"?n():n,r={when:(n,o)=>t.resolved?r:n?we({resolved:true,value:e(o)}):r,elseWhen:(n,o)=>t.resolved?r:n?we({resolved:true,value:e(o)}):r,else:n=>t.resolved?t.value:e(n),getOrThrow:()=>{if(!t.resolved)throw new Error("Conditional expression has no matching condition");return t.value}};return r},De=()=>we({resolved:false}),pt={of:()=>De(),match:t=>e=>{let r=e[t];if(r===void 0)throw new Error(`No case defined for value: ${String(t)}`);return typeof r=="function"?r():r},lazy:()=>{let t={resolved:false},e={when:(r,n)=>(t.resolved||r()&&(t.resolved=true,t.value=n()),e),elseWhen:(r,n)=>(t.resolved||r()&&(t.resolved=true,t.value=n()),e),else:r=>t.resolved?t.value:r()};return e}},vr=a(De,pt);var ie=(t,e)=>e===t?true:typeof e=="function"?e(t):e&&typeof e=="object"&&"_"in e?e._(t):typeof e=="object"&&e!==null&&typeof t=="object"&&t!==null?Object.entries(e).every(([r,n])=>{let o=t[r];return ie(o,n)}):false,ne=t=>{let e=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of t.patterns)if(ie(t.value,o))return {matched:true,result:e(a,t.value)};return {matched:false}},n={case:(o,a)=>{if(t.resolved)return n;let s={...t,patterns:[...t.patterns,{pattern:o,result:a}]};return ie(t.value,o)?ne({...s,resolved:true,result:e(a,t.value)}):ne(s)},caseValue:(o,a)=>{if(t.resolved)return n;if(t.value===o){let s=typeof a=="function"?a():a;return ne({...t,resolved:true,result:s})}return n},caseValues:(o,a)=>{if(t.resolved)return n;if(o.includes(t.value)){let s=typeof a=="function"?a():a;return ne({...t,resolved:true,result:s})}return n},when:(o,a)=>n.case(o,a),caseAny:(o,a)=>{if(t.resolved)return n;for(let s of o)if(ie(t.value,s))return ne({...t,resolved:true,result:e(a,t.value),patterns:[...t.patterns,{pattern:s,result:a}]});return ne({...t,patterns:[...t.patterns,...o.map(s=>({pattern:s,result:a}))]})},default:o=>t.resolved?t.result:e(o,t.value),exhaustive:()=>{let o=r();if(!o.matched)throw new Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(t.value)}`);return o.result},getOrThrow:o=>{let a=r();if(!a.matched)throw new Error(o??`No matching pattern for value: ${JSON.stringify(t.value)}`);return a.result},toOption:()=>{let o=r();return o.matched?f(o.result):f.none()}};return n},ct=t=>ne({value:t,resolved:false,patterns:[]}),Tt={exhaustive:t=>e=>{let r=t[e];if(r===void 0)throw new Error(`No case defined for value: ${String(e)}`);return r},partial:t=>({withDefault:e=>r=>{let n=t[r];return n!==void 0?typeof n=="function"?n(r):n:typeof e=="function"?e(r):e}}),withGuards:t=>({withDefault:e=>r=>{for(let[n,o]of t)if(n(r))return typeof o=="function"?o(r):o;return typeof e=="function"?e(r):e}}),struct:()=>{let t=[],e={case:(r,n)=>(t.push({pattern:r,handler:n}),e),build:()=>r=>{for(let{pattern:n,handler:o}of t)if(ie(r,n))return o(r);throw new Error(`No matching pattern for value: ${JSON.stringify(r)}`)}};return e},builder:()=>{let t=[],e,r={case:(n,o)=>(t.push({pattern:n,result:o}),r),when:(n,o)=>(t.push({pattern:n,result:o}),r),default:n=>(e=n,{build:()=>o=>{for(let{pattern:a,result:s}of t)if(ie(o,a))return typeof s=="function"?s(o):s;if(e!==void 0)return typeof e=="function"?e(o):e;throw new Error(`No matching pattern for value: ${JSON.stringify(o)}`)}})};return r}},_r=a(ct,Tt);function Ke(t,e){return {...Re({_tag:t,impl:e}),toString(){return `${t}()`},doUnwrap(){if("isSome"in e&&"isNone"in e){if(typeof e.isSome=="function"&&e.isSome()&&"get"in e&&typeof e.get=="function")return {ok:true,value:e.get()};if(typeof e.isNone=="function"&&e.isNone())return {ok:false,empty:true}}if("isLeft"in e&&"isRight"in e){if(typeof e.isRight=="function"&&e.isRight()&&"value"in e)return {ok:true,value:e.value};if(typeof e.isLeft=="function"&&e.isLeft()&&"value"in e)return {ok:false,empty:false,error:e.value}}if("isSuccess"in e&&"isFailure"in e){if(typeof e.isSuccess=="function"&&e.isSuccess()&&"get"in e&&typeof e.get=="function")return {ok:true,value:e.get()};if(typeof e.isFailure=="function"&&e.isFailure()&&"getError"in e&&typeof e.getError=="function")return {ok:false,empty:false,error:e.getError()}}if("isEmpty"in e&&"head"in e){if(typeof e.isEmpty=="function"&&e.isEmpty())return {ok:false,empty:true};if(typeof e.head=="function")return {ok:true,value:e.head()};if("head"in e)return {ok:true,value:e.head}}return {ok:true,value:e}}}}var Le="Throwable",q=class t extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=Le;this.name=n?.taskInfo?.name??Le,Object.defineProperties(this,{_tag:{value:Le,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??Le,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 t(r.message,{data:n,cause:r.cause??void 0,stack:r.stack??void 0,taskInfo:o});for(let l of Object.keys(r))if(!(l in u)){let d=u,y=r;d[l]=y[l];}return u}if(r&&typeof r=="object"){let u=r,l=typeof u.message=="string"?u.message:typeof u.error=="string"?u.error:`Object error: ${JSON.stringify(u,Object.getOwnPropertyNames(u).filter(y=>u[y]!==void 0))}`,d=new t(l,{data:n??u,taskInfo:o});for(let y of Object.keys(u))if(!(y in d)){let R=d;R[y]=u[y];}return d}if(typeof r=="function"){let u=r.name??"anonymous function",l=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new t(`Function error: ${u}`,{data:n??{functionType:typeof r,functionName:u,functionString:l},taskInfo:o})}let a=typeof r,s=r===null?"null":r===void 0?"undefined":String(r);if(a==="number"){let u=r,l=Number.isNaN(u)?"Number error: NaN":Number.isFinite(u)?`Number error: ${u}`:`Number error: ${u>0?"Infinity":"-Infinity"}`;return new t(l,{data:n??{errorType:a,errorValue:u,originalError:r},taskInfo:o})}if(a==="bigint")return new t(`BigInt error: ${r}n`,{data:n??{errorType:a,errorValue:String(r),originalError:r},taskInfo:o});if(a==="boolean")return new t(`Boolean error: ${r}`,{data:n??{errorType:a,errorValue:r,originalError:r},taskInfo:o});if(a==="symbol"){let u=r.description??"unnamed symbol";return new t(`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 t(i,{data:n??{errorType:a,errorValue:s,originalError:r},taskInfo:o})}};var x=t=>{let e=new Promise((r,n)=>{try{t(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>x((n,o)=>{e.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>x((n,o)=>{e.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 e,o=r(n);return o instanceof Promise?o:new Promise((a,s)=>{o.then(a,s);})},tap:r=>x((n,o)=>{e.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>x((n,o)=>{e.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=>x((n,o)=>{e.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>x(n=>{e.then(n).catch(()=>n(r));}),recoverWith:r=>x(n=>{e.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>x((n,o)=>{e.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>x((o,a)=>{e.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(i){a(i);}else a(s);});}),logError:r=>x((n,o)=>{e.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)=>e.then(r,n),toPromise:()=>e,toEither:async()=>{try{let r=await e;return c(r)}catch(r){return p(r)}},fold:(r,n)=>x((o,a)=>{e.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},ft={resolve:t=>x(e=>e(t)),reject:t=>x((e,r)=>r(t)),from:t=>x((e,r)=>{t.then(e).catch(r);}),fromEither:t=>t.isRight()?x(e=>e(t.value)):x((e,r)=>r(t.value)),all:t=>x((e,r)=>{Promise.all(t.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(e).catch(r);}),allSettled:t=>x(e=>{let r=[],n=0;if(t.length===0){e([]);return}t.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=c(s),n++,n===t.length&&e(r);}).catch(s=>{r[a]=p(s),n++,n===t.length&&e(r);});});}),race:t=>x((e,r)=>{Promise.race(t).then(e,r);}),any:t=>x((e,r)=>{if(typeof Promise.any=="function")Promise.any(t).then(e,r);else {let n=0,o=[];if(t.length===0){r(new AggregateError([],"All promises were rejected"));return}t.forEach((a,s)=>{Promise.resolve(a).then(e).catch(i=>{o[s]=i,n++,n===t.length&&r(new AggregateError(o,"All promises were rejected"));});});}}),retryWithBackoff:(t,e)=>{let{maxRetries:r,baseDelay:n=100,shouldRetry:o=()=>true}=e;return x((a,s)=>{let i=0,u=()=>{t().toPromise().then(a).catch(l=>{if(i++,i<=r&&o(l,i)){let d=n*Math.pow(2,i-1);setTimeout(u,d);}else s(l);});};u();})}},Ue=a(x,ft);function dt(t){return t instanceof Error&&typeof t=="object"&&true&&t._tag==="Throwable"}var I=(t,e)=>{if(t.isRight())return Q(t.get(),e);if(t.isLeft())return me(t,void 0,e);throw new Error("Unrecognized task outcome")},me=(t,e,r)=>{let n={name:r?.name??"Task",description:r?.description??""},o=q.apply(t,e,n),a=p(o),{isLeft:s,isRight:i,...u}=a;return {...u,_tag:"TaskFailure",_meta:n,error:o,map:l=>{let d=a.map(l);return I(d,r)},flatMap:l=>{let d=a.flatMap(l);return I(d,r)},ap:l=>{let d=a.ap(l);return I(d,r)},merge:l=>{let d=a.merge(l);return I(d,r)},mapAsync:async l=>{let d=await a.mapAsync(l);return I(d,r)},flatMapAsync:async l=>{let d=await a.flatMapAsync(l);return I(d,r)},isSuccess(){return false},isFailure(){return true},mapError:l=>me(l(o),e,r),recover:l=>Q(l,r),recoverWith:l=>Q(l(o),r)}},Q=(t,e)=>{let r={name:e?.name??"Task",description:e?.description??""},n=c(t),{isLeft:o,isRight:a,...s}=n;return {...s,_tag:"TaskSuccess",_meta:r,map:i=>{let u=n.map(i);return I(u,e)},flatMap:i=>{let u=n.flatMap(i);return I(u,e)},ap:i=>{let u=n.ap(i);return I(u,e)},merge:i=>{let u=n.merge(i);return I(u,e)},mapAsync:async i=>{let u=await n.mapAsync(i);return I(u,e)},flatMapAsync:async i=>{let u=await n.flatMapAsync(i);return I(u,e)},isSuccess(){return true},isFailure(){return false},mapError:i=>Q(t,e),recover:i=>Q(t,e),recoverWith:i=>Q(t,e)}},ve=(t,e)=>Q(t,e),_=(t,e,r)=>me(t,e,r),Se=()=>{let t=new AbortController,e=Ae();return {token:{get isCancelled(){return t.signal.aborted},get signal(){return t.signal},onCancel(n){t.signal.aborted?n():e.add(n);}},cancel(){t.signal.aborted||(t.abort(),e.build().forEach(n=>{try{n();}catch(o){console.error("Error in cancellation callback:",o);}}));}}},mt=t=>{let e=t?.name??"Task",r=t?.description??"",n={Async:(o,a=u=>u,s=()=>{},i)=>Ue((u,l)=>{(async()=>{let d=k(false),y=k(null),R=k(()=>{});if(i){if(i.isCancelled){try{await s();}catch(E){u(_(E,void 0,{name:e,description:r}));return}u(_(new Error("Task was cancelled before execution started"),void 0,{name:e,description:r}));return}let A=()=>{d.set(true),y.set(new Error("Task was cancelled during execution"));};i.onCancel(A),R.set(()=>{});}try{let A=await o();try{await s();}catch(E){u(_(E,void 0,{name:e,description:r}));return}if(d.get()){y.get()?u(_(y.get(),void 0,{name:e,description:r})):u(_(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}if(A&&typeof A=="object"&&"_tag"in A){let E=A;E._tag==="TaskSuccess"||E._tag==="TaskFailure"?u(E):u(ve(A,{name:e,description:r}));}else u(ve(A,{name:e,description:r}));}catch(A){try{await s();}catch(E){u(_(E,void 0,{name:e,description:r}));return}if(d.get()){y.get()?u(_(y.get(),void 0,{name:e,description:r})):u(_(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}try{if(A instanceof Error&&dt(A)){let E=new Error(`${e}: ${A.message}`),F=q.apply(E,void 0,{name:e,description:r});Object.defineProperty(F,"cause",{value:A,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(A);}catch(Z){console.error("Error in error handler:",Z);}}),u(_(F,void 0,{name:e,description:r}));}else {let E=await a(A);if(E&&typeof E=="object"&&"_tag"in E){let F=E;F._tag==="TaskSuccess"||F._tag==="TaskFailure"?u(F):u(_(E,void 0,{name:e,description:r}));}else u(_(E,void 0,{name:e,description:r}));}}catch(E){u(_(E,void 0,{name:e,description:r}));}}finally{R.get()();}})().catch(d=>u(_(d,void 0,{name:e,description:r})));}),Sync:(o,a=i=>i,s=()=>{})=>{try{return Q(o(),{name:e,description:r})}catch(i){return me(a(i),void 0,{name:e,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=l=>l,i=()=>{},u)=>{let l=d=>{let y=Math.max(0,Math.min(100,d));y<=100&&a(y);};return n.Async(()=>o(l),s,i,u)}};return {...Ke("Task",n),_type:"Task"}},$e={success:(t,e)=>Q(t,e),fail:(t,e,r)=>me(t,e,r),ok:(t,e)=>ve(t,e),err:(t,e,r)=>_(t,e,r),getErrorChain:t=>{if(!t)return [];let e=Ae();e.add(t);let r=k(t);for(;r.get()&&r.get().cause;){let{cause:n}=r.get();if(n)e.add(n),r.set(n);else break;if(e.size()>100)break}return e.build()},formatErrorChain:(t,e)=>{let r=$e.getErrorChain(t),n=e?.separator??`
14
+ `;return r.map((o,a)=>{if(!o)return `${a>0?"\u21B3 ":""}Unknown error`;let{taskInfo:s}=o,i=e?.includeTasks&&s?.name?`[${s.name}] `:"",u=o.message??"No message",l=k(`${a>0?"\u21B3 ":""}${i}${u}`);return e?.includeStackTrace&&o.stack&&l.set(`${l.get()}
15
+ ${o.stack.split(`
16
+ `).slice(1).join(`
17
+ `)}`),l.get()}).join(n)},fromPromise:(t,e)=>(...r)=>$(e??{name:"PromiseTask",description:"Task from Promise"}).Async(()=>t(...r),o=>o),toPromise:t=>new Promise((e,r)=>{t.isSuccess()?e(t.get()):r(t.error);}),race:(t,e,r)=>{let n=r?.name??"TaskRace",o=r?.description??"Race between multiple tasks";return $({name:n,description:o}).Async(async()=>{let s=Ae();t.forEach(u=>s.add(u));let i=k(void 0);if(typeof e=="number"&&e>0){let u=Ue((l,d)=>{i.set(setTimeout(()=>{d(new Error(`Task race timed out after ${e}ms`));},e));});s.add(u);}try{return await new Promise((u,l)=>{s.build().forEach(d=>{d.then(y=>{if(y&&typeof y=="object"&&"_tag"in y){let R=y;R._tag==="TaskSuccess"?u(R.get()):R._tag==="TaskFailure"?l(R.error):u(y);}else u(y);},y=>l(y));});})}finally{i.get()&&clearTimeout(i.get());}},s=>s)},fromNodeCallback:(t,e)=>{let r=e?.name??"NodeCallbackTask",n=e?.description??"Task from Node.js callback function",o={name:r,description:n};return (...a)=>$(o).Async(()=>new Promise((s,i)=>{try{t(...a,(u,l)=>{u?i(u):s(l);});}catch(u){i(u);}}),s=>s)},createCancellationTokenSource:Se,cancellable:(t,e)=>{let r=Se();return {task:$(e).Async(()=>t(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(t,e=()=>{},r)=>{let n=Se(),o=k(0),a=i=>{o.set(Math.max(0,Math.min(100,i))),e(o.get());};return {task:$(r).Async(()=>t(a,n.token),i=>i,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o.get()}}},$=a(mt,$e);function Je(t){if(!t||typeof t!="object"||!("_tag"in t))return "unknown";switch(t._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 X={Option:{of:t=>f(t),empty:()=>f.none()},Either:{of:t=>c(t),empty:t=>p(t)},List:{of:t=>m([t]),empty:()=>m([])},Try:{of:t=>B(()=>t),empty:t=>B(()=>{throw t??new Error("Try failed")})}};function Xr(t){let e=t(),r=null;function n(o){let a=e.next(o);if(a.done)return r&&r in X?X[r]?.of(a.value):m([a.value]);let s=a.value;if(!r&&s&&typeof s=="object"&&"_tag"in s&&(r=Je(s),r==="List"))return yt(t);if(s&&typeof s=="object"&&"doUnwrap"in s&&typeof s.doUnwrap=="function"){let i=s.doUnwrap();if(!i.ok){if(!r||!(r in X))return m([]);let u=X[r];if("empty"in i&&!i.empty&&"error"in i){if(r==="Either")return u?.empty(i.error);if(r==="Try")return u?.empty(i.error instanceof Error?i.error:new Error(String(i.error)))}return u?.empty()}return n(i.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 n()}function yt(t){function e(o){if(!o||typeof o!="object"||!("doUnwrap"in o)||typeof o.doUnwrap!="function")return [o];let a=o;if("toArray"in a&&typeof a.toArray=="function"){let i=a.toArray();return i.length===0?[]:i}let s=a.doUnwrap();return s.ok?[s.value]:[]}function r(o){let a=t(),s=[],i=[],u=0;function l(d){let y=a.next(d);if(y.done){s.push(y.value);return}if(u<o.length){let A=o[u];i.push(A),u++,l(A);return}let R=e(y.value);if(R.length!==0)if(R.length>1){let A=R.flatMap(E=>{let F=[...i,E];return r(F)});s.push(...A);}else i.push(R[0]),u++,l(R[0]);}return l(void 0),s}let n=r([]);return m(n)}async function en(t){let e=t(),r=null;async function n(o){let a=await e.next(o);if(a.done)return r&&r in X?X[r]?.of(a.value):m([a.value]);let s=await Promise.resolve(a.value);if(!r&&s&&typeof s=="object"&&"_tag"in s&&(r=Je(s)),s&&typeof s=="object"&&"doUnwrap"in s&&typeof s.doUnwrap=="function"){let i=s.doUnwrap();if(!i.ok){if(!r||!(r in X))return m([]);let u=X[r];if("empty"in i&&!i.empty&&"error"in i){if(r==="Either")return u?.empty(i.error);if(r==="Try")return u?.empty(i.error instanceof Error?i.error:new Error(String(i.error)))}return u?.empty()}return n(i.value)}return n(s)}return n()}function tn(t){return t!==null&&typeof t=="object"&&"doUnwrap"in t&&typeof t.doUnwrap=="function"}function rn(t){let e=t.doUnwrap();if(e.ok)return e.value;throw "error"in e?e.error:new Error("Cannot unwrap empty monad")}function*nn(t){return yield t}var on=(t="Cannot unwrap None in Do-notation")=>{let e=new Error(t),r=Object.create(Error.prototype);return r.message=e.message,r.stack=e.stack,r.name="NoneError",r},an=(t,e="Cannot unwrap Left in Do-notation")=>{let r=new Error(e),n=Object.create(Error.prototype);return n.message=r.message,n.stack=r.stack,n.name="LeftError",n.value=t,n},sn=(t="Cannot unwrap empty List in Do-notation")=>{let e=new Error(t),r=Object.create(Error.prototype);return r.message=e.message,r.stack=e.stack,r.name="EmptyListError",r},un=(t,e="Cannot unwrap Failure in Do-notation")=>{let r=new Error(e),n=Object.create(Error.prototype);return n.message=r.message,n.stack=r.stack,n.name="FailureError",n.cause=t,n};var je={includeTasks:true,includeStackTrace:false,separator:`
18
+ `,includeData:false,maxStackFrames:3,title:"Error",colors:false};function We(t){let e=new WeakSet;return JSON.stringify(t,(r,n)=>{if(typeof n=="bigint")return `${n.toString()}n`;if(typeof n=="object"&&n!==null){if(e.has(n))return "[Circular Reference]";e.add(n);}return r==="stack"&&typeof n=="string"?ke(n):n},2)}function ke(t){if(t===void 0||t==="")return "";let e=t.split(`
19
+ `),r=e[0],n=e.slice(1).map(o=>o.trim());return [r,...n].join(`
20
+ `)}function Tn(t,e){let r={...je,...e},n=t instanceof Error?t:q.apply(t),o=$?.getErrorChain?$.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((u,l)=>{let d=" ".repeat(l),y=l>0?"\u21B3 ":"",{taskInfo:R}=u,A=r.includeTasks&&R?.name?r.colors?`\x1B[36m[${R.name}]\x1B[0m `:`[${R.name}] `:"",E=`${d}${y}${A}${u.message}`;if(r.includeStackTrace&&u.stack){let Z=ke(u.stack).split(`
21
+ `).slice(1),oe=r.maxStackFrames??je.maxStackFrames??3,ge=Z.slice(0,oe).map(he=>`${d} ${r.colors?"\x1B[90m":""}${he}${r.colors?"\x1B[0m":""}`).join(`
22
+ `);E+=`
23
+ ${ge}`,Z.length>oe&&(E+=`
24
+ ${d} ${r.colors?"\x1B[90m":""}...${Z.length-oe} more stack frames${r.colors?"\x1B[0m":""}`);}return E}).join(r.separator),i=`${a}
25
+
26
+ ${s}`;if(r.includeData){let{data:u}=n;if(u){let l=r.colors?`
27
+
28
+ \x1B[33mContext:\x1B[0m
29
+ ${We(u)}`:`
30
+
31
+ Context:
32
+ ${We(u)}`;i+=l;}}return i}function fn(){return function(e){if(!e)return e;let r=e instanceof Error?e:new Error(String(e)),n={message:r.message,name:r.name||"Error",stack:r.stack?ke(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof $?.getErrorChain=="function")try{let o=$.getErrorChain(r);o.length>1&&(n.errorChain=$.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?ke(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var mn=t=>{let e=new Error(t);return e.name="ParseError",e};var J=(t,e,r,n)=>{let o=q.apply(e,r,{name:t,description:e});return Object.assign(o,{code:t,message:e,status:gt(t),context:r,timestamp:new Date().toISOString(),traceId:n?.traceId})},gt=t=>({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})[t],ht={validation:(t,e,r)=>J("VALIDATION_FAILED",`Validation failed: ${t} ${r}`,{field:t,value:e,rule:r}),network:(t,e,r)=>J("NETWORK_ERROR",`Network error: ${e} ${t}${r?` (${r})`:""}`,{url:t,method:e,statusCode:r}),auth:(t,e)=>J("AUTH_REQUIRED",`Authentication required: ${t}${e?` (role: ${e})`:""}`,{resource:t,requiredRole:e}),notFound:(t,e)=>J("NOT_FOUND",`Not found: ${t} with id ${e}`,{resource:t,id:e}),permission:(t,e,r)=>J("PERMISSION_DENIED",`Permission denied: cannot ${t} ${e}`,{action:t,resource:e,userId:r}),rateLimit:(t,e,r)=>J("RATE_LIMITED",`Rate limit exceeded: ${t} requests per ${e}`,{limit:t,window:e,retryAfter:r}),internal:t=>J("INTERNAL_ERROR",`Internal server error: ${t}`,{errorId:t,timestamp:new Date().toISOString()}),badRequest:(t,e)=>J("BAD_REQUEST",`Bad request: ${t}`,{reason:t,expected:e}),conflict:(t,e)=>J("CONFLICT",`Conflict: ${t} already exists with value ${e}`,{resource:t,conflictingValue:e}),timeout:(t,e)=>J("TIMEOUT",`Request timeout: ${e} exceeded ${t}ms`,{duration:t,operation:e}),isTypedError:t=>typeof t=="object"&&t!==null&&"code"in t&&"message"in t&&"status"in t&&"context"in t&&"_tag"in t&&t._tag==="Throwable",hasCode:(t,e)=>t.code===e},U=Object.assign(J,ht);var M={rule:t=>e=>{if(t==="email")return typeof e!="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?p(U.validation("value",e,"must be a valid email")):c(e);if(t==="url")try{return new URL(String(e)),c(e)}catch{return p(U.validation("value",e,"must be a valid URL"))}if(t==="uuid")return typeof e!="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(e)?p(U.validation("value",e,"must be a valid UUID")):c(e);if(t==="required")return e==null||e===""?p(U.validation("value",e,"is required")):c(e);if(t==="numeric")return typeof e!="number"&&!/^\d+$/.test(String(e))?p(U.validation("value",e,"must be numeric")):c(e);if(t==="alpha")return typeof e!="string"||!/^[a-zA-Z]+$/.test(e)?p(U.validation("value",e,"must contain only letters")):c(e);if(t==="alphanumeric")return typeof e!="string"||!/^[a-zA-Z0-9]+$/.test(e)?p(U.validation("value",e,"must be alphanumeric")):c(e);if(t.startsWith("min:")){let r=Number(t.split(":")[1]),n=Number(e);return isNaN(n)||n<r?p(U.validation("value",e,`must be at least ${r}`)):c(e)}if(t.startsWith("max:")){let r=Number(t.split(":")[1]),n=Number(e);return isNaN(n)||n>r?p(U.validation("value",e,`must be at most ${r}`)):c(e)}if(t.startsWith("minLength:")){let r=Number(t.split(":")[1]);return String(e).length<r?p(U.validation("value",e,`must be at least ${r} characters`)):c(e)}if(t.startsWith("maxLength:")){let r=Number(t.split(":")[1]);return String(e).length>r?p(U.validation("value",e,`must be at most ${r} characters`)):c(e)}if(t.startsWith("pattern:")){let r=t.substring(8);return new RegExp(r).test(String(e))?c(e):p(U.validation("value",e,`must match pattern ${r}`))}if(t.startsWith("in:")){let r=t.substring(3).split(",");return r.includes(String(e))?c(e):p(U.validation("value",e,`must be one of: ${r.join(", ")}`))}if(t.startsWith("notIn:")){let r=t.substring(6).split(",");return r.includes(String(e))?p(U.validation("value",e,`must not be one of: ${r.join(", ")}`)):c(e)}if(t==="date"){let r=new Date(String(e));return isNaN(r.getTime())?p(U.validation("value",e,"must be a valid date")):c(e)}if(t==="future"){let r=new Date(String(e));return isNaN(r.getTime())||r<=new Date?p(U.validation("value",e,"must be a future date")):c(e)}if(t==="past"){let r=new Date(String(e));return isNaN(r.getTime())||r>=new Date?p(U.validation("value",e,"must be a past date")):c(e)}return c(e)},combine:(...t)=>e=>{for(let r of t){let n=r(e);if(n.isLeft())return n}return c(e)},custom:(t,e)=>r=>t(r)?c(r):p(U.validation("value",r,e)),form:(t,e)=>{let r=[],n={};for(let[o,a]of Object.entries(t)){let s=e[o],i=a(s);if(i.isLeft()){let u=i.fold(d=>d,()=>{throw new Error("Should not be left")}),l=U.validation(o,s,u.context.rule);r.push(l);}else n[o]=i.get();}return r.length>0?p(m(r)):c(n)}},Et={...M,validators:{email:M.rule("email"),url:M.rule("url"),uuid:M.rule("uuid"),required:M.rule("required"),numeric:M.rule("numeric"),positiveNumber:M.combine(M.rule("numeric"),M.rule("min:0")),nonEmptyString:M.combine(M.rule("required"),M.custom(t=>typeof t=="string"&&t.trim().length>0,"must not be empty"))}},Ln=Object.assign(M.rule,Et);function At(t){return t!=null&&typeof t=="object"&&"getOrElse"in t&&typeof t.getOrElse=="function"&&"getOrThrow"in t&&typeof t.getOrThrow=="function"&&"get"in t&&typeof t.get=="function"&&"orElse"in t&&typeof t.orElse=="function"&&"orNull"in t&&typeof t.orNull=="function"&&"orUndefined"in t&&typeof t.orUndefined=="function"}var On={toOption:t=>t.fold(()=>b(),e=>w(e)),toList:t=>t.fold(()=>m([]),e=>m([e])),toEither:(t,e)=>t.fold(()=>p(e),r=>c(r)),isEmpty:t=>t.fold(()=>true,()=>false),size:t=>t.fold(()=>0,()=>1)};var ee=t=>t!==null&&typeof t=="object"&&(t._tag==="Some"||t._tag==="None"),G=t=>t!==null&&typeof t=="object"&&t._tag==="List",ue=t=>t!==null&&typeof t=="object"&&(t._tag==="Left"||t._tag==="Right"),le=t=>t!==null&&typeof t=="object"&&(t._tag==="Success"||t._tag==="Failure"),j=()=>{let t=(s,i)=>{if(ee(s))return s.map(u=>i(u));if(G(s))return s.map(u=>i(u));if(ue(s))return s.map(u=>i(u));if(le(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},e=s=>{if(ee(s))return s.get();if(G(s)){let i=s.toArray();if(i.length>0&&G(i[0])){let u=[];for(let l of i)G(l)&&u.push(...l.toArray());return m(u)}return s.flatten()}if(ue(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(le(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(ee(s))return s.flatMap(u=>i(u));if(G(s))return s.flatMap(u=>i(u));if(ue(s))return s.flatMap(u=>i(u));if(le(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(ee(s)&&ee(i))return s.flatMap(u=>i.map(l=>u(l)));if(G(s)&&G(i))return s.flatMap(u=>i.map(l=>u(l)));if(ue(s)&&ue(i))return s.flatMap(u=>i.map(l=>u(l)));if(le(s)&&le(i))return s.flatMap(u=>i.map(l=>u(l)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(ee(s)){let i=s;if(i.isEmpty)return m([f.none()]);let u=i.get();if(G(u))return u.map(l=>f(l));throw new Error("Unsupported inner container type for sequence")}if(G(s)){let u=s.toArray();if(u.length===0)return f.none();let l=u[0];if(ee(l)){for(let y of u)if(y.isEmpty)return f.none();let d=u.map(y=>y.get());return f(m(d))}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:t,flatten:e,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(t(s,u=>i(u))),_type:"HKT"}},pe=j();j.map=(t,e)=>pe.map(t,e);j.flatten=t=>pe.flatten(t);j.flatMap=(t,e)=>pe.flatMap(t,e);j.ap=(t,e)=>pe.ap(t,e);j.sequence=t=>pe.sequence(t);j.traverse=(t,e)=>pe.traverse(t,e);j.isOption=ee;j.isList=G;j.isEither=ue;j.isTry=le;function Mn(t){return {id:t,isSame:r=>r.id===t}}var te=t=>{let e=false,r,n,o=false,a=()=>{if(!e)try{r=t(),e=!0;}catch(i){throw n=i,o=true,e=true,i}if(o)throw n;return r};return {_tag:"Lazy",get isEvaluated(){return e},get:a,getOrElse:i=>{try{return a()}catch{return i}},getOrNull:()=>{try{return a()}catch{return null}},orNull:()=>{try{return a()}catch{return null}},getOrThrow:i=>{try{return a()}catch(u){throw i??u}},orElse:i=>z(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>z(()=>i(a())),ap:i=>z(()=>i.get()(a())),mapAsync:async i=>{let u=a(),l=await i(u);return z(()=>l)},flatMap:i=>z(()=>i(a()).get()),flatMapAsync:async i=>{let u=a(),l=await i(u);return z(()=>l.get())},filter:i=>z(()=>{let u=a();return i(u)?w(u):b}),recover:i=>z(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>z(()=>{try{return a()}catch(u){return i(u).get()}}),toOption:()=>{try{return w(a())}catch{return b}},toEither:()=>{try{return c(a())}catch(i){return p(i)}},toEitherWith:i=>{try{return c(a())}catch(u){return p(i(u))}},toTry:()=>B(()=>a()),tap:i=>z(()=>{let u=a();return i(u),u}),tapError:i=>z(()=>{try{return a()}catch(u){throw i(u),u}}),fold:i=>i(a()),foldWith:(i,u)=>{try{return u(a())}catch(l){return i(l)}},foldLeft:i=>u=>u(i,a()),foldRight:i=>u=>u(a(),i),match:i=>i.Lazy(a()),toString:()=>e&&!o?`Lazy(${de(r)})`:e&&o?`Lazy(<error: ${n instanceof Error?n.message:String(n)}>)`:"Lazy(<not evaluated>)",toValue:()=>e&&!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)?w(u):b}catch{return b}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(e&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>e&&!o?`_tag: Lazy
33
+ evaluated: true
34
+ value: ${de(r)}`:`_tag: Lazy
35
+ evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(e&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false})).toString("base64")}),typeable:"Lazy"}},Rt={of:t=>te(t),fromValue:t=>te(()=>t),fromOption:(t,e)=>te(()=>t._tag==="Some"?t.value:e()),fromTry:t=>te(()=>t.get()),fromEither:t=>te(()=>t.fold(e=>{throw e},e=>e)),fromPromise:t=>te(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:t=>te(()=>{throw t})},z=a(te,Rt);var ye=Map;var H=t=>{let r={values:new ye(t)},n=()=>Array.from(r.values.entries()).map(([T,h])=>b$1([T,h])),o=T=>H(new ye(r.values).set(T.toArray()[0],T.toArray()[1]).entries()),a=T=>{let h=new ye(r.values);return h.delete(T)?H(h.entries()):H(r.values.entries())},s=T=>{let h=T.toArray();return r.values.get(h[0])===h[1]},i=()=>r.values.size,u=T=>H(Array.from(r.values.entries()).map(([h,V])=>[h,T(V)])),l=T=>{let h=H(r.values.entries()).toList();return H(h.flatMap(T).toArray())},d=T=>{let h=[];for(let[V,ae]of r.values.entries()){let Te=T.get(V);Te._tag==="Some"&&Te.value&&h.push([V,Te.value(ae)]);}return H(h)},y=async T=>{let h=new ye;for(let[V,ae]of r.values.entries()){let Te=await T(ae);for(let Ze of Te.toList()){let[Xe,et]=Ze.toArray();h.set(Xe,et);}}return H(h.entries())},R=T=>m(n()).reduce(T),A=T=>m(n()).reduceRight(T),E=T=>h=>m(n()).foldLeft(T)(h),F=T=>h=>m(n()).foldRight(T)(h),Z=T=>f(r.values.get(T)),oe=(T,h)=>f(r.values.get(T)).getOrElse(h),ce=()=>r.values.size===0,ge=(T,h)=>f(r.values.get(T)).orElse(h),he=(T,h)=>{if(ce())return T();let V=n();if(V.length===0)return T();let ae=V[0];return ae===void 0?T():h(ae)},Pe=()=>m(n()),g=()=>re(n()),O=()=>`Map(${n().toString()})`,P=T=>ce()?T.Empty():T.NonEmpty(n());return {_tag:"Map",[Symbol.iterator]:()=>r.values.entries(),add:o,remove:a,contains:s,get size(){return i()},map:u,ap:d,flatMap:l,flatMapAsync:y,reduce:R,reduceRight:A,foldLeft:E,foldRight:F,fold:he,match:P,get:Z,getOrElse:oe,get isEmpty(){return ce()},orElse:ge,toList:Pe,toSet:g,toString:O,toValue:()=>({_tag:"Map",value:Array.from(r.values.entries())}),pipe:T=>T(Array.from(r.values.entries())),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())}),toYAML:()=>`_tag: Map
36
+ value: ${JSON.stringify(Array.from(r.values.entries()))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())})).toString("base64")})}},Lt=t=>H(t),Ye={fromJSON:t=>{let e=JSON.parse(t);return Oe(e.value)},fromYAML:t=>{let r=t.split(`
37
+ `)[1]?.split(": ")[1];if(!r)return Oe([]);let n=JSON.parse(r);return Oe(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ye.fromJSON(e)}},Oe=a(Lt,Ye);var kt={default:t=>e=>t(e),when:(t,e)=>r=>t(r)?e(r):void 0};var D=(t=[])=>{let e="Stack",r=[...t],n=()=>r.length,o=()=>r.length===0;return {_tag:e,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=>D([...r,g]),pop:()=>{if(o())return [D([]),f(null)];let g=[...r],O=g.pop();return [D(g),f(O)]},peek:()=>o()?f(null):f(r[r.length-1]),map:g=>D(r.map(g)),flatMap:g=>o()?D([]):r.reduce((O,P)=>g(P).toArray().reduce((h,V)=>h.push(V),O),D([])),ap:g=>{let O=[];return r.forEach(P=>{g.toArray().forEach(T=>{O.push(T(P));});}),D(O)},flatMapAsync:async g=>o()?D([]):(await Promise.all(r.map(async P=>await g(P)))).reduce((P,T)=>T.toArray().reduce((h,V)=>h.push(V),P),D([])),toList:()=>m(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(g,O)=>{if(o())return g();let P=r[r.length-1];return P!==void 0?O(P):g()},foldLeft:g=>O=>r.reduce(O,g),foldRight:g=>O=>r.reduceRight((P,T)=>O(T,P),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
38
+ value: ${JSON.stringify(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Stack",value:r})).toString("base64")})}},xt=(t=[])=>D(t),qe={empty:()=>D([]),of:t=>D([t]),fromJSON:t=>{let e=JSON.parse(t);return Be(e.value)},fromYAML:t=>{let r=t.split(`
39
+ `)[1]?.split(": ")[1];if(!r)return Be([]);let n=JSON.parse(r);return Be(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return qe.fromJSON(e)}},Be=a(xt,qe);function lo(t){let e=Re({_tag:t._tag,impl:t.impl});return {...e,toValue:()=>({_tag:e._tag,value:t.value})}}var w=t=>({_tag:"Some",value:t,isEmpty:false,isSome(){return true},isNone(){return false},get:()=>t,getOrElse:()=>t,getOrThrow:()=>t,orElse:e=>w(t),orNull:()=>t,orUndefined:()=>t,map:e=>w(e(t)),ap:e=>e._tag==="Some"&&e.value?w(e.value(t)):W,filter(e){return e(t)?w(t):W},count:e=>e(t)?1:0,find:e=>e(t)?w(t):W,exists:e=>e(t),forEach:e=>e(t),fold:(e,r)=>r(t),match:e=>e.Some(t),flatMap:e=>e(t),flatMapAsync:async e=>await e(t),reduce:e=>e(void 0,t),reduceRight:e=>e(void 0,t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),toList:()=>m([t]),contains:e=>e===t,size:1,toOption:()=>w(t),toEither:e=>c(t),toTry:()=>B(()=>t),toPromise:()=>Promise.resolve(t),toString:()=>`Some(${de(t)})`,toValue:()=>({_tag:"Some",value:t}),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:t}),toYAML:()=>`_tag: Some
40
+ value: ${de(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:t})).toString("base64")}),doUnwrap(){return {ok:true,value:t}}}),W={_tag:"None",value:void 0,isEmpty:true,isSome(){return false},isNone(){return true},get:()=>{throw new Error("Cannot call get() on None")},getOrElse:t=>t,getOrThrow(t){throw t},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},map:t=>W,ap:t=>W,filter(t){return W},count:t=>0,find:t=>W,exists:t=>false,forEach:t=>{},flatMap:t=>W,flatMapAsync:t=>Promise.resolve(W),reduce:()=>{},reduceRight:()=>{},fold:(t,e)=>t(),match:t=>t.None(),foldLeft:t=>()=>t,foldRight:t=>()=>t,toList:()=>m([]),contains:()=>false,size:0,toOption:()=>W,toEither:t=>p(t),toTry:()=>B(()=>{throw new Error("None")}),toPromise:()=>Promise.reject(new Error("Cannot convert None to Promise")),toString:()=>"None",toValue:()=>({_tag:"None",value:void 0}),pipe:t=>t(void 0),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"None",value:null}),toYAML:()=>`_tag: None
41
+ value: null`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"None",value:null})).toString("base64")}),doUnwrap(){return {ok:false,empty:true}}},b=()=>W,bt=t=>t!=null?w(t):b(),He={from:t=>f(t),none:()=>b(),fromJSON:t=>{let e=JSON.parse(t);return e._tag==="Some"?w(e.value):b()},fromYAML:t=>{let e=t.split(`
42
+ `),r=e[0]?.split(": ")[1],n=e[1]?.split(": ")[1];if(!r||!n)return b();let o=n==="null"?null:JSON.parse(n);return r==="Some"?w(o):b()},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return He.fromJSON(e)}},f=a(bt,He);export{an as $,Ar as A,Rr as B,Lr as C,kr as D,xr as E,br as F,wr as G,vr as H,_r as I,Ke as J,Le as K,q as L,ft as M,Ue as N,dt as O,me as P,Q,ve as R,_ as S,Se as T,$ as U,Xr as V,en as W,tn as X,rn as Y,nn as Z,on as _,w as a,sn as aa,b,un as ba,bt as c,We as ca,f as d,ke as da,re as e,Tn as ea,k as f,fn as fa,Dt as g,mn as ga,B as h,U as ha,Re as i,Ln as ia,be as j,At as ja,m as k,On as ka,c as l,j as la,p as m,Mn as ma,ur as n,z as na,lr as o,ye as oa,pr as p,Oe as pa,it as q,kt as qa,ut as r,Be as ra,cr as s,lo as sa,Ce as t,C as u,lt as v,yr as w,gr as x,hr as y,Er as z};//# sourceMappingURL=chunk-MKFG47XM.mjs.map
43
+ //# sourceMappingURL=chunk-MKFG47XM.mjs.map