functype 0.11.0 → 0.11.2

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.
@@ -1,2 +1,2 @@
1
- export { E as Either, c as Left, R as Right, b as TestEither, f as TypeCheckLeft, e as TypeCheckRight, d as isLeft, i as isRight, t as tryCatch, g as tryCatchAsync } from '../Either-yVOmjdz-.js';
1
+ export { E as Either, c as Left, R as Right, b as TestEither, f as TypeCheckLeft, e as TypeCheckRight, d as isLeft, i as isRight, t as tryCatch, g as tryCatchAsync } from '../Either-DgkP4DUw.js';
2
2
  import '../Serializable-CK9upOU0.js';
@@ -1,2 +1,2 @@
1
- export{q as Either,j as Left,i as Right,o as TypeCheckLeft,n as TypeCheckRight,l as isLeft,k as isRight,m as tryCatch,p as tryCatchAsync}from'../chunk-ZUGOUK5O.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{q as Either,j as Left,i as Right,o as TypeCheckLeft,n as TypeCheckRight,l as isLeft,k as isRight,m as tryCatch,p as tryCatchAsync}from'../chunk-PPFDDUSD.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,4 +1,4 @@
1
- import { E as Either } from '../Either-yVOmjdz-.js';
1
+ import { E as Either } from '../Either-DgkP4DUw.js';
2
2
  import { T as Type } from '../Serializable-CK9upOU0.js';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- export{K as FPromise,J as FPromiseCompanion}from'../chunk-ZUGOUK5O.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{K as FPromise,J as FPromiseCompanion}from'../chunk-PPFDDUSD.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Brand } from './branded/index.js';
2
2
  export { BrandedBoolean, BrandedNumber, BrandedString, ExtractBrand, Unbrand, createBrander, hasBrand, unbrand } from './branded/index.js';
3
- import { O as Option, E as Either, L as List, F as FunctypeBase, a as Extractable, T as Traversable, M as Matchable } from './Either-yVOmjdz-.js';
4
- export { A as Applicative, q as AsyncMonad, C as Collection, o as CollectionOps, p as ContainerOps, r as Functor, j as Functype, k as FunctypeCollection, c as Left, l as MatchableUtils, s as Monad, N as None, m as OptionConstructor, P as Promisable, R as Right, n as Set, S as Some, b as TestEither, f as TypeCheckLeft, e as TypeCheckRight, h as isExtractable, d as isLeft, i as isRight, t as tryCatch, g as tryCatchAsync } from './Either-yVOmjdz-.js';
3
+ import { O as Option, E as Either, L as List, F as FunctypeBase, a as Extractable, T as Traversable, M as Matchable } from './Either-DgkP4DUw.js';
4
+ export { A as Applicative, q as AsyncMonad, C as Collection, o as CollectionOps, p as ContainerOps, r as Functor, j as Functype, k as FunctypeCollection, c as Left, l as MatchableUtils, s as Monad, N as None, m as OptionConstructor, P as Promisable, R as Right, n as Set, S as Some, b as TestEither, f as TypeCheckLeft, e as TypeCheckRight, h as isExtractable, d as isLeft, i as isRight, t as tryCatch, g as tryCatchAsync } from './Either-DgkP4DUw.js';
5
5
  import { T as Type, a as Typeable, F as Foldable, P as Pipe, S as Serializable } from './Serializable-CK9upOU0.js';
6
6
  export { E as ExtractTag, b as SerializationMethods, c as TypeableParams, i as isTypeable } from './Serializable-CK9upOU0.js';
7
7
  import { FPromise } from './fpromise/index.js';
@@ -603,16 +603,24 @@ interface TaskMetadata {
603
603
  readonly name: string;
604
604
  readonly description: string;
605
605
  }
606
- type TaskOutcome<T> = TaskSuccess<T> | TaskFailure<T>;
607
- interface TaskFailure<T> extends Omit<Either<Throwable, T>, "_tag"> {
608
- readonly _tag: "TaskFailure";
606
+ interface TaskOutcome<T> extends Omit<Either<Throwable, T>, "_tag" | "isLeft" | "isRight" | "map" | "flatMap" | "ap" | "merge" | "mapAsync" | "flatMapAsync"> {
607
+ readonly _tag: "TaskSuccess" | "TaskFailure";
609
608
  readonly _meta: TaskMetadata;
610
- readonly error: Throwable;
611
- readonly isSuccess: () => this is TaskSuccess<T>;
612
- readonly isFailure: () => this is TaskFailure<T>;
613
- readonly mapError: (f: (error: Throwable) => Throwable) => TaskFailure<T>;
609
+ readonly map: <U>(f: (value: T) => U) => TaskOutcome<U>;
610
+ readonly flatMap: <U>(f: (value: T) => Either<Throwable, U>) => TaskOutcome<U>;
611
+ readonly ap: <U>(ff: Either<Throwable, (value: T) => U>) => TaskOutcome<U>;
612
+ readonly merge: <T1>(other: Either<Throwable, T1>) => TaskOutcome<[T, T1]>;
613
+ readonly mapAsync: <U>(f: (value: T) => Promise<U>) => Promise<TaskOutcome<U>>;
614
+ readonly flatMapAsync: <U>(f: (value: T) => Promise<Either<Throwable, U>>) => Promise<TaskOutcome<U>>;
615
+ readonly mapError: (f: (error: Throwable) => Throwable) => TaskOutcome<T>;
614
616
  readonly recover: (value: T) => TaskSuccess<T>;
615
617
  readonly recoverWith: (f: (error: Throwable) => T) => TaskSuccess<T>;
618
+ readonly isSuccess: () => this is TaskSuccess<T>;
619
+ readonly isFailure: () => this is TaskFailure<T>;
620
+ }
621
+ interface TaskFailure<T> extends TaskOutcome<T> {
622
+ readonly _tag: "TaskFailure";
623
+ readonly error: Throwable;
616
624
  }
617
625
  /**
618
626
  * TaskFailure factory function
@@ -621,11 +629,8 @@ interface TaskFailure<T> extends Omit<Either<Throwable, T>, "_tag"> {
621
629
  * @param params - Task parameters
622
630
  */
623
631
  declare const TaskFailure: <T>(error: unknown, data?: unknown, params?: TaskParams) => TaskFailure<T>;
624
- interface TaskSuccess<T> extends Omit<Either<Throwable, T>, "_tag"> {
632
+ interface TaskSuccess<T> extends TaskOutcome<T> {
625
633
  readonly _tag: "TaskSuccess";
626
- readonly _meta: TaskMetadata;
627
- readonly isSuccess: () => this is TaskSuccess<T>;
628
- readonly isFailure: () => this is TaskFailure<T>;
629
634
  }
630
635
  /**
631
636
  * TaskSuccess factory function
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export{G as Base,B as BoundedNumber,C as BoundedString,E as Cond,da as ESMap,q as Either,x as EmailAddress,K as FPromise,J as FPromiseCompanion,_ as FoldableUtils,$ as HKT,A as ISO8601Date,aa as Identity,u as IntegerNumber,ca as Lazy,X as LazyList,j as Left,h as List,ea as Map,F as Match,fa as MatchableUtils,H as NAME,w as NonEmptyString,t as NonNegativeNumber,b as None,d as Option,c as OptionConstructor,V as ParseError,D as PatternString,v as PositiveInteger,s as PositiveNumber,L as Ref,i as Right,e as Set,a as Some,ga as Stack,Q as Task,N as TaskFailure,O as TaskSuccess,I as Throwable,ba as Try,o as TypeCheckLeft,n as TypeCheckRight,f as Typeable,W as TypedError,z as UUID,y as UrlString,r as ValidatedBrand,Y as Validation,ha as Valuable,P as createCancellationTokenSource,U as createErrorSerializer,T as formatError,S as formatStackTrace,Z as isExtractable,l as isLeft,k as isRight,M as isTaggedThrowable,g as isTypeable,R as safeStringify,m as tryCatch,p as tryCatchAsync}from'./chunk-ZUGOUK5O.mjs';export{a as Companion,b as Tuple}from'./chunk-BQJB6CCW.mjs';export{a as Brand,g as BrandedBoolean,f as BrandedNumber,e as BrandedString,d as createBrander,c as hasBrand,b as unbrand}from'./chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{G as Base,B as BoundedNumber,C as BoundedString,E as Cond,da as ESMap,q as Either,x as EmailAddress,K as FPromise,J as FPromiseCompanion,_ as FoldableUtils,$ as HKT,A as ISO8601Date,aa as Identity,u as IntegerNumber,ca as Lazy,X as LazyList,j as Left,h as List,ea as Map,F as Match,fa as MatchableUtils,H as NAME,w as NonEmptyString,t as NonNegativeNumber,b as None,d as Option,c as OptionConstructor,V as ParseError,D as PatternString,v as PositiveInteger,s as PositiveNumber,L as Ref,i as Right,e as Set,a as Some,ga as Stack,Q as Task,N as TaskFailure,O as TaskSuccess,I as Throwable,ba as Try,o as TypeCheckLeft,n as TypeCheckRight,f as Typeable,W as TypedError,z as UUID,y as UrlString,r as ValidatedBrand,Y as Validation,ha as Valuable,P as createCancellationTokenSource,U as createErrorSerializer,T as formatError,S as formatStackTrace,Z as isExtractable,l as isLeft,k as isRight,M as isTaggedThrowable,g as isTypeable,R as safeStringify,m as tryCatch,p as tryCatchAsync}from'./chunk-PPFDDUSD.mjs';export{a as Companion,b as Tuple}from'./chunk-BQJB6CCW.mjs';export{a as Brand,g as BrandedBoolean,f as BrandedNumber,e as BrandedString,d as createBrander,c as hasBrand,b as unbrand}from'./chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- export { L as List } from '../Either-yVOmjdz-.js';
1
+ export { L as List } from '../Either-DgkP4DUw.js';
2
2
  import '../Serializable-CK9upOU0.js';
@@ -1,2 +1,2 @@
1
- export{h as List}from'../chunk-ZUGOUK5O.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{h as List}from'../chunk-PPFDDUSD.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,4 +1,4 @@
1
- import { T as Traversable, C as Collection, O as Option } from '../Either-yVOmjdz-.js';
1
+ import { T as Traversable, C as Collection, O as Option } from '../Either-DgkP4DUw.js';
2
2
  import { a as Typeable, S as Serializable, P as Pipe, F as Foldable, T as Type } from '../Serializable-CK9upOU0.js';
3
3
  import { Tuple } from '../tuple/index.js';
4
4
 
@@ -1,2 +1,2 @@
1
- export{ea as Map}from'../chunk-ZUGOUK5O.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{ea as Map}from'../chunk-PPFDDUSD.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- export { N as None, O as Option, m as OptionConstructor, S as Some } from '../Either-yVOmjdz-.js';
1
+ export { N as None, O as Option, m as OptionConstructor, S as Some } from '../Either-DgkP4DUw.js';
2
2
  import '../Serializable-CK9upOU0.js';
@@ -1,2 +1,2 @@
1
- export{b as None,d as Option,c as OptionConstructor,a as Some}from'../chunk-ZUGOUK5O.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{b as None,d as Option,c as OptionConstructor,a as Some}from'../chunk-PPFDDUSD.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,2 +1,2 @@
1
- export { n as Set } from '../Either-yVOmjdz-.js';
1
+ export { n as Set } from '../Either-DgkP4DUw.js';
2
2
  import '../Serializable-CK9upOU0.js';
@@ -1,2 +1,2 @@
1
- export{e as Set}from'../chunk-ZUGOUK5O.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{e as Set}from'../chunk-PPFDDUSD.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,4 +1,4 @@
1
- import { F as FunctypeBase, a as Extractable, P as Promisable, E as Either } from '../Either-yVOmjdz-.js';
1
+ import { F as FunctypeBase, a as Extractable, P as Promisable, E as Either } from '../Either-DgkP4DUw.js';
2
2
  import { P as Pipe, T as Type } from '../Serializable-CK9upOU0.js';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- export{ba as Try}from'../chunk-ZUGOUK5O.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{ba as Try}from'../chunk-PPFDDUSD.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "functype",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "type": "module",
5
5
  "description": "A smallish functional library for TypeScript",
6
6
  "author": "jordan.burke@gmail.com",
@@ -1,43 +0,0 @@
1
- import {a,b as b$1}from'./chunk-BQJB6CCW.mjs';import {a as a$1}from'./chunk-YBBRJTHY.mjs';import ue from'safe-stable-stringify';var W=Set;var N=e=>{let t=new W(e),r={_tag:"Set",[Symbol.iterator]:()=>t[Symbol.iterator](),add:n=>N([...t,n]),remove:n=>{let o=new W(t);return o.delete(n),N(o)},contains:n=>t.has(n),has:n=>t.has(n),map:n=>N(Array.from(t).map(n)),ap:n=>{let o=new W;for(let a of t)for(let s of n)o.add(s(a));return N(o)},flatMap:n=>{let o=new W;for(let a of t)for(let s of n(a))o.add(s);return N(o)},flatMapAsync:async n=>{let o=new W;for(let a of t){let s=await n(a);for(let i of s)o.add(i);}return N(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 d(o);return d(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 W;for(let a of t)n(a)&&o.add(a);return N(o)},filterNot:n=>{let o=new W;for(let a of t)n(a)||o.add(a);return N(o)},drop:n=>N(Array.from(t).slice(n)),dropRight:n=>N(Array.from(t).slice(0,-n)),dropWhile:n=>{let o=Array.from(t),a=o.findIndex(s=>!n(s));return N(a===-1?[]:o.slice(a))},flatten:()=>{let n=new W;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 N(n)},get head(){return Array.from(t)[0]},get headOption(){let n=Array.from(t)[0];return d(n)},toList:()=>y(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:()=>({toJSON:()=>JSON.stringify({_tag:"Set",value:Array.from(t)}),toYAML:()=>`_tag: Set
2
- value: ${JSON.stringify(Array.from(t))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Set",value:Array.from(t)})).toString("base64")})};return r},Ge=e=>N(e),Oe={fromJSON:e=>{let t=JSON.parse(e);return G(t.value)},fromYAML:e=>{let r=e.split(`
3
- `)[1]?.split(": ")[1];if(!r)return G([]);let n=JSON.parse(r);return G(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Oe.fromJSON(t)}},G=a(Ge,Oe);function de({_tag:e,impl:t}){return {...t,_tag:e}}function Ae(e,t){return !e||typeof e!="object"||!("_tag"in e)?false:t?e._tag===t:true}var v=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=>v(t.map(n)),ap:n=>v(t.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>v(t.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(t.map(async a=>await n(a)));return v(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=>v(t.filter(n)),filterNot:n=>v(t.filter(o=>!n(o))),filterType:n=>v(t.filter(o=>Ae(o,n))),find:(n,o)=>{let a=t.find(s=>n(s)&&(o?Ae(s,o):true));return d(a)},get head(){return t[0]},get headOption(){return t.length>0?d(t[0]):k()},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=>v(t.filter(o=>o!==n)),removeAt:n=>n<0||n>=t.length?r:v([...t.slice(0,n),...t.slice(n+1)]),add:n=>v([...t,n]),get:n=>d(t[n]),concat:n=>v([...t,...n.toArray()]),drop:n=>v(t.slice(n)),dropRight:n=>v(t.slice(0,-n)),dropWhile:n=>v(t.slice(t.findIndex(o=>!n(o)))),flatten:()=>v(t.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>G(t),toString:()=>`List(${ue(t)})`,toValue:()=>({_tag:"List",value:t}),pipe:n=>n([...t]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:t}),toYAML:()=>`_tag: List
4
- value: ${ue(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:t})).toString("base64")})};return r},He=e=>v(e),Ne={fromJSON:e=>{let t=JSON.parse(e);return y(t.value)},fromYAML:e=>{let r=e.split(`
5
- `)[1]?.split(": ")[1];if(!r)return y([]);let n=JSON.parse(r);return y(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ne.fromJSON(t)}},y=a(He,Ne);var Me=e=>({_tag:"Right",value:e,isLeft(){return false},isRight(){return true},get:()=>e,getOrElse:t=>e,getOrThrow:()=>e,orElse:t=>c(e),orNull:()=>e,orUndefined:()=>e,map:t=>c(t(e)),ap:t=>t._tag==="Right"?c(t.value(e)):p(t.value),mapAsync:t=>t(e).then(r=>c(r)).catch(r=>Promise.resolve(p(r))),merge:t=>t.isLeft()?p(t.value):c([e,t.value]),flatMap:t=>t(e),flatMapAsync:t=>t(e).catch(r=>p(r)),toOption:()=>S(e),toList:()=>y([e]),toJSON(){return {_tag:"Right",value:e}},toString:()=>`Right(${ue(e)})`,*[Symbol.iterator](){yield e;},*yield(){yield e;},traverse:t=>{let r=t(e);return r.isLeft()?p(r.value):c([r.value])},*lazyMap(t){yield c(t(e));},tap:t=>(t(e),c(e)),tapLeft:t=>c(e),mapLeft:t=>c(e),bimap:(t,r)=>c(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:()=>p(e),toPromise:()=>Promise.resolve(e),toValue:()=>({_tag:"Right",value:e}),pipeEither:(t,r)=>r(e),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Right",value:e}),toYAML:()=>`_tag: Right
6
- value: ${ue(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Right",value:e})).toString("base64")}),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)?S(e):k(),exists:t=>t(e),forEach:t=>t(e)}),Ie=e=>({_tag:"Left",value:e,isLeft(){return true},isRight(){return false},get:()=>{throw new Error(`Cannot call get() on Left(${ue(e)})`)},getOrElse:t=>t,getOrThrow:t=>{throw t??e},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},map:t=>p(e),ap:t=>p(e),mapAsync:t=>Promise.resolve(p(e)),merge:t=>p(e),flatMap:t=>p(e),flatMapAsync:t=>Promise.resolve(p(e)),toOption:()=>k(),toList:()=>y(),toJSON(){return {_tag:"Left",value:e}},toString:()=>`Left(${ue(e)})`,*[Symbol.iterator](){},*yield(){},traverse:t=>p(e),*lazyMap(t){yield p(e);},tap:t=>p(e),tapLeft:t=>(t(e),p(e)),mapLeft:t=>p(t(e)),bimap:(t,r)=>p(t(e)),fold:(t,r)=>t(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,match:t=>t.Left(e),swap:()=>c(e),toPromise:()=>Promise.reject(e),toValue:()=>({_tag:"Left",value:e}),pipeEither:(t,r)=>t(e),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Left",value:e}),toYAML:()=>`_tag: Left
7
- value: ${ue(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Left",value:e})).toString("base64")}),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=>k(),exists:t=>false,forEach:t=>{}}),c=e=>Me(e),p=e=>Ie(e),It=e=>e.isRight(),Vt=e=>e.isLeft(),Ft=(e,t)=>{try{return c(e())}catch(r){return p(t(r))}},Ze=e=>Me(e);console.assert(Ze);var Xe=e=>Ie(e);console.assert(Xe);var Ct=async(e,t)=>{try{let r=await e();return c(r)}catch(r){return p(t(r))}},_e={sequence:e=>e.reduce((t,r)=>t.isLeft()?t:r.isLeft()?p(r.value):t.map(n=>[...n,r.value]),c([])),traverse:(e,t)=>_e.sequence(e.map(t)),fromNullable:(e,t)=>e==null?p(t):c(e),fromPredicate:(e,t,r)=>t(e)?c(e):p(r),ap:(e,t)=>e.flatMap(r=>t.map(r)),fromPromise:async(e,t)=>{try{let r=await e;return c(r)}catch(r){return p(t(r))}},fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Right"?c(t.value):p(t.value)},fromYAML:e=>{let t=e.split(`
8
- `),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)throw new Error("Invalid YAML format for Either");let o=JSON.parse(n);return r==="Right"?c(o):p(o)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return _e.fromJSON(t)}};function I(e,t){return {brand:e,validate:t,of:r=>t(r)?d(a$1(e,r)):d.none(),from:r=>t(r)?c(a$1(e,r)):p(`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)=>I(r,o=>t(o)&&n(o))}}var et=I("PositiveNumber",e=>e>0),Jt=I("NonNegativeNumber",e=>e>=0),Wt=I("IntegerNumber",e=>Number.isInteger(e)),jt=et.refine("PositiveInteger",e=>Number.isInteger(e)),qt=I("NonEmptyString",e=>e.length>0),Yt=I("EmailAddress",e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),Qt=I("UrlString",e=>{try{return new URL(e),!0}catch{return !1}}),Gt=I("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)),Ht=I("ISO8601Date",e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function Zt(e,t,r){return I(e,n=>n>=t&&n<=r)}function Xt(e,t,r){return I(e,n=>n.length>=t&&n.length<=r)}function er(e,t){return I(e,r=>t.test(r))}var Re=e=>{let t=n=>typeof n=="function"?n():n,r={when:(n,o)=>e.resolved?r:n?Re({resolved:true,value:t(o)}):r,elseWhen:(n,o)=>e.resolved?r:n?Re({resolved:true,value:t(o)}):r,else:n=>e.resolved?e.value:t(n),getOrThrow:()=>{if(!e.resolved)throw new Error("Conditional expression has no matching condition");return e.value}};return r},Ve=()=>Re({resolved:false}),tt={of:()=>Ve(),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}},nr=a(Ve,tt);var te=(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 te(o,n)}):false,H=e=>{let t=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of e.patterns)if(te(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 te(e.value,o)?H({...s,resolved:true,result:t(a,e.value)}):H(s)},caseValue:(o,a)=>{if(e.resolved)return n;if(e.value===o){let s=typeof a=="function"?a():a;return H({...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 H({...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(te(e.value,s))return H({...e,resolved:true,result:t(a,e.value),patterns:[...e.patterns,{pattern:s,result:a}]});return H({...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},getOrThrow: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?d(o.result):d.none()}};return n},rt=e=>H({value:e,resolved:false,patterns:[]}),nt={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(te(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(te(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}},ir=a(rt,nt);function fe(e,t){return {...de({_tag:e,impl:t}),toString(){return `${e}()`}}}var me="Throwable",x=class e extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=me;this.name=n?.taskInfo?.name??me,Object.defineProperties(this,{_tag:{value:me,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??me,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 l of Object.keys(r))if(!(l in u)){let h=u,g=r;h[l]=g[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(g=>u[g]!==void 0))}`,h=new e(l,{data:n??u,taskInfo:o});for(let g of Object.keys(u))if(!(g in h)){let P=h;P[g]=u[g];}return h}if(typeof r=="function"){let u=r.name??"anonymous function",l=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new e(`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 e(l,{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 L=e=>{let t=new Promise((r,n)=>{try{e(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>L((n,o)=>{t.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>L((n,o)=>{t.then(a=>{try{let s=r(a);"_tag"in s&&s._tag==="FPromise"?s.then(n,o):Promise.resolve(s).then(n,o);}catch(s){o(s);}}).catch(o);}),flatMapAsync:async r=>{let n=await t,o=r(n);return o instanceof Promise?o:new Promise((a,s)=>{o.then(a,s);})},tap:r=>L((n,o)=>{t.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>L((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};o(r(a,s));}catch(s){o(s);}});}),tapError:r=>L((n,o)=>{t.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>L(n=>{t.then(n).catch(()=>n(r));}),recoverWith:r=>L(n=>{t.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>L((n,o)=>{t.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>L((o,a)=>{t.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(i){a(i);}else a(s);});}),logError:r=>L((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};r(a,s);}catch{}finally{o(a);}});}),then:(r,n)=>t.then(r,n),toPromise:()=>t,toEither:async()=>{try{let r=await t;return c(r)}catch(r){return p(r)}},fold:(r,n)=>L((o,a)=>{t.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},ot={resolve:e=>L(t=>t(e)),reject:e=>L((t,r)=>r(e)),from:e=>L((t,r)=>{e.then(t).catch(r);}),fromEither:e=>e.isRight()?L(t=>t(e.value)):L((t,r)=>r(e.value)),all:e=>L((t,r)=>{Promise.all(e.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(t).catch(r);}),allSettled:e=>L(t=>{let r=[],n=0;if(e.length===0){t([]);return}e.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=c(s),n++,n===e.length&&t(r);}).catch(s=>{r[a]=p(s),n++,n===e.length&&t(r);});});}),race:e=>L((t,r)=>{Promise.race(e).then(t,r);}),any:e=>L((t,r)=>{if(typeof Promise.any=="function")Promise.any(e).then(t,r);else {let n=0,o=[];if(e.length===0){r(new AggregateError([],"All promises were rejected"));return}e.forEach((a,s)=>{Promise.resolve(a).then(t).catch(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 L((a,s)=>{let i=0,u=()=>{e().toPromise().then(a).catch(l=>{if(i++,i<=r&&o(l,i)){let h=n*Math.pow(2,i-1);setTimeout(u,h);}else s(l);});};u();})}},Le=a(L,ot);function A(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}}}A.of=A;var re=(e=0)=>{let t=A(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 ye=()=>{let e=A([]);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}};function at(e){return e instanceof Error&&typeof e=="object"&&true&&e._tag==="Throwable"}var be=(e,t,r)=>{let n={name:r?.name??"Task",description:r?.description??""},o=x.apply(e,t,n);return {...p(o),_tag:"TaskFailure",_meta:n,error:o,isSuccess(){return false},isFailure(){return true},mapError:s=>be(s(o),t,r),recover:s=>ge(s,r),recoverWith:s=>ge(s(o),r)}},ge=(e,t)=>{let r={name:t?.name??"Task",description:t?.description??""};return {...c(e),_tag:"TaskSuccess",_meta:r,isSuccess(){return true},isFailure(){return false}}},xe=()=>{let e=new AbortController,t=ye();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);}}));}}},st=e=>{let t=e?.name??"Task",r=e?.description??"",n={Async:(o,a=u=>u,s=()=>{},i)=>Le((u,l)=>{(async()=>{let h=A(false),g=A(null),P=A(()=>{});if(i){if(i.isCancelled){try{await s();}catch(R){l(x.apply(R,void 0,{name:t,description:r}));return}l(x.apply(new Error("Task was cancelled before execution started"),void 0,{name:t,description:r}));return}let U=()=>{h.set(true),g.set(new Error("Task was cancelled during execution"));};i.onCancel(U),P.set(()=>{});}try{let U=await o();if(h.get()){try{await s();}catch(R){l(x.apply(R,void 0,{name:t,description:r}));return}g.get()?l(x.apply(g.get(),void 0,{name:t,description:r})):l(x.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(R){l(x.apply(R,void 0,{name:t,description:r}));return}u(U);}catch(U){if(h.get()){try{await s();}catch(R){l(x.apply(R,void 0,{name:t,description:r}));return}g.get()?l(x.apply(g.get(),void 0,{name:t,description:r})):l(x.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(R){l(x.apply(R,void 0,{name:t,description:r}));return}try{if(U instanceof Error&&at(U)){let R=new Error(`${t}: ${U.message}`),Z=x.apply(R,void 0,{name:t,description:r});Object.defineProperty(Z,"cause",{value:U,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(U);}catch(q){console.error("Error in error handler:",q);}}),l(Z);}else {let R=await a(U);l(x.apply(R,void 0,{name:t,description:r}));}}catch(R){l(x.apply(R,void 0,{name:t,description:r}));}}finally{P.get()();}})().catch(l);}),Sync:(o,a=i=>i,s=()=>{})=>{try{return ge(o(),{name:t,description:r})}catch(i){return be(a(i),void 0,{name:t,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=l=>l,i=()=>{},u)=>{let l=h=>{let g=Math.max(0,Math.min(100,h));g<=100&&a(g);};return n.Async(()=>o(l),s,i,u)}};return {...fe("Task",n),_type:"Task"}},Fe={success:(e,t)=>ge(e,t),fail:(e,t,r)=>be(e,t,r),getErrorChain:e=>{if(!e)return [];let t=ye();t.add(e);let r=A(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=Fe.getErrorChain(e),n=t?.separator??`
9
- `;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",l=A(`${a>0?"\u21B3 ":""}${i}${u}`);return t?.includeStackTrace&&o.stack&&l.set(`${l.get()}
10
- ${o.stack.split(`
11
- `).slice(1).join(`
12
- `)}`),l.get()}).join(n)},fromPromise:(e,t)=>(...r)=>C(t??{name:"PromiseTask",description:"Task from Promise"}).Async(()=>e(...r),o=>o),toPromise:e=>new Promise((t,r)=>{e.isSuccess()?t(e.get()):r(e.error);}),race:(e,t,r)=>{let n=r?.name??"TaskRace",o=r?.description??"Race between multiple tasks";return C({name:n,description:o}).Async(async()=>{let s=ye();e.forEach(u=>s.add(u));let i=A(void 0);if(typeof t=="number"&&t>0){let u=Le((l,h)=>{i.set(setTimeout(()=>{h(new Error(`Task race timed out after ${t}ms`));},t));});s.add(u);}try{return await new Promise((u,l)=>{s.build().forEach(h=>{h.then(g=>u(g),g=>l(g));});})}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)=>C(o).Async(()=>new Promise((s,i)=>{try{e(...a,(u,l)=>{u?i(u):s(l);});}catch(u){i(u);}}),s=>s)},createCancellationTokenSource:xe,cancellable:(e,t)=>{let r=xe();return {task:C(t).Async(()=>e(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(e,t=()=>{},r)=>{let n=xe(),o=A(0),a=i=>{o.set(Math.max(0,Math.min(100,i))),t(o.get());};return {task:C(r).Async(()=>e(a,n.token),i=>i,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o.get()}}},C=a(st,Fe);var Ce={includeTasks:true,includeStackTrace:false,separator:`
13
- `,includeData:false,maxStackFrames:3,title:"Error",colors:false};function ze(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"?he(n):n},2)}function he(e){if(e===void 0||e==="")return "";let t=e.split(`
14
- `),r=t[0],n=t.slice(1).map(o=>o.trim());return [r,...n].join(`
15
- `)}function vr(e,t){let r={...Ce,...t},n=e instanceof Error?e:x.apply(e),o=C?.getErrorChain?C.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((u,l)=>{let h=" ".repeat(l),g=l>0?"\u21B3 ":"",{taskInfo:P}=u,U=r.includeTasks&&P?.name?r.colors?`\x1B[36m[${P.name}]\x1B[0m `:`[${P.name}] `:"",R=`${h}${g}${U}${u.message}`;if(r.includeStackTrace&&u.stack){let q=he(u.stack).split(`
16
- `).slice(1),X=r.maxStackFrames??Ce.maxStackFrames??3,pe=q.slice(0,X).map(ce=>`${h} ${r.colors?"\x1B[90m":""}${ce}${r.colors?"\x1B[0m":""}`).join(`
17
- `);R+=`
18
- ${pe}`,q.length>X&&(R+=`
19
- ${h} ${r.colors?"\x1B[90m":""}...${q.length-X} more stack frames${r.colors?"\x1B[0m":""}`);}return R}).join(r.separator),i=`${a}
20
-
21
- ${s}`;if(r.includeData){let{data:u}=n;if(u){let l=r.colors?`
22
-
23
- \x1B[33mContext:\x1B[0m
24
- ${ze(u)}`:`
25
-
26
- Context:
27
- ${ze(u)}`;i+=l;}}return i}function Ur(){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?he(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof C?.getErrorChain=="function")try{let o=C.getErrorChain(r);o.length>1&&(n.errorChain=C.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?he(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var Or=e=>{let t=new Error(e);return t.name="ParseError",t};var z=(e,t,r,n)=>{let o=x.apply(t,r,{name:e,description:t});return Object.assign(o,{code:e,message:t,status:it(e),context:r,timestamp:new Date().toISOString(),traceId:n?.traceId})},it=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],ut={validation:(e,t,r)=>z("VALIDATION_FAILED",`Validation failed: ${e} ${r}`,{field:e,value:t,rule:r}),network:(e,t,r)=>z("NETWORK_ERROR",`Network error: ${t} ${e}${r?` (${r})`:""}`,{url:e,method:t,statusCode:r}),auth:(e,t)=>z("AUTH_REQUIRED",`Authentication required: ${e}${t?` (role: ${t})`:""}`,{resource:e,requiredRole:t}),notFound:(e,t)=>z("NOT_FOUND",`Not found: ${e} with id ${t}`,{resource:e,id:t}),permission:(e,t,r)=>z("PERMISSION_DENIED",`Permission denied: cannot ${e} ${t}`,{action:e,resource:t,userId:r}),rateLimit:(e,t,r)=>z("RATE_LIMITED",`Rate limit exceeded: ${e} requests per ${t}`,{limit:e,window:t,retryAfter:r}),internal:e=>z("INTERNAL_ERROR",`Internal server error: ${e}`,{errorId:e,timestamp:new Date().toISOString()}),badRequest:(e,t)=>z("BAD_REQUEST",`Bad request: ${e}`,{reason:e,expected:t}),conflict:(e,t)=>z("CONFLICT",`Conflict: ${e} already exists with value ${t}`,{resource:e,conflictingValue:t}),timeout:(e,t)=>z("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},b=Object.assign(z,ut);var w=e=>{let t={_tag:"LazyList",[Symbol.iterator]:()=>e[Symbol.iterator](),map:r=>w((function*(){for(let n of e)yield r(n);})()),flatMap:r=>w((function*(){for(let n of e)yield*r(n);})()),filter:r=>w((function*(){for(let n of e)r(n)&&(yield n);})()),take:r=>w((function*(){let n=re(0);for(let o of e){if(n.get()>=r)break;yield o,n.increment();}})()),drop:r=>w((function*(){let n=re(0);for(let o of e)n.get()>=r&&(yield o),n.increment();})()),takeWhile:r=>w((function*(){for(let n of e){if(!r(n))break;yield n;}})()),dropWhile:r=>w((function*(){let n=A(true);for(let o of e)n.get()&&r(o)||(n.set(false),yield o);})()),concat:r=>w((function*(){yield*e,yield*r;})()),zip:r=>w((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:()=>y(Array.from(e)),toArray:()=>Array.from(e),forEach:r=>{for(let n of e)r(n);},reduce:(r,n)=>{let o=A(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 d(n);return d.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=re(0);for(let n of e)r.increment();return r.get()},first:()=>{let n=e[Symbol.iterator]().next();return n.done?d.none():d(n.value)},last:()=>{let r=A(void 0),n=A(false);for(let o of e)r.set(o),n.set(true);return n.get()?d(r.get()):d.none()},fold:(r,n)=>{let a=e[Symbol.iterator]().next();return a.done?r():n(a.value)},foldLeft:r=>n=>{let o=A(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
28
- value: ${ue(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=re(0),a=A(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=>w(e),ct={empty:()=>w([]),of:e=>w([e]),from:(...e)=>w(e),iterate:(e,t)=>w((function*(){let r=A(e);for(;;)yield r.get(),r.set(t(r.get()));})()),generate:e=>w((function*(){for(;;)yield e();})()),range:(e,t,r=1)=>w((function*(){if(r===0)throw new Error("Step cannot be zero");let n=A(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)=>w((function*(){if(t===void 0)for(;;)yield e;else {let r=re(0);for(;r.get()<t;)yield e,r.increment();}})()),cycle:e=>w((function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t;})())},Kr=a(pt,ct);var _={rule:e=>t=>{if(e==="email")return typeof t!="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?p(b.validation("value",t,"must be a valid email")):c(t);if(e==="url")try{return new URL(String(t)),c(t)}catch{return p(b.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)?p(b.validation("value",t,"must be a valid UUID")):c(t);if(e==="required")return t==null||t===""?p(b.validation("value",t,"is required")):c(t);if(e==="numeric")return typeof t!="number"&&!/^\d+$/.test(String(t))?p(b.validation("value",t,"must be numeric")):c(t);if(e==="alpha")return typeof t!="string"||!/^[a-zA-Z]+$/.test(t)?p(b.validation("value",t,"must contain only letters")):c(t);if(e==="alphanumeric")return typeof t!="string"||!/^[a-zA-Z0-9]+$/.test(t)?p(b.validation("value",t,"must be alphanumeric")):c(t);if(e.startsWith("min:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n<r?p(b.validation("value",t,`must be at least ${r}`)):c(t)}if(e.startsWith("max:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n>r?p(b.validation("value",t,`must be at most ${r}`)):c(t)}if(e.startsWith("minLength:")){let r=Number(e.split(":")[1]);return String(t).length<r?p(b.validation("value",t,`must be at least ${r} characters`)):c(t)}if(e.startsWith("maxLength:")){let r=Number(e.split(":")[1]);return String(t).length>r?p(b.validation("value",t,`must be at most ${r} characters`)):c(t)}if(e.startsWith("pattern:")){let r=e.substring(8);return new RegExp(r).test(String(t))?c(t):p(b.validation("value",t,`must match pattern ${r}`))}if(e.startsWith("in:")){let r=e.substring(3).split(",");return r.includes(String(t))?c(t):p(b.validation("value",t,`must be one of: ${r.join(", ")}`))}if(e.startsWith("notIn:")){let r=e.substring(6).split(",");return r.includes(String(t))?p(b.validation("value",t,`must not be one of: ${r.join(", ")}`)):c(t)}if(e==="date"){let r=new Date(String(t));return isNaN(r.getTime())?p(b.validation("value",t,"must be a valid date")):c(t)}if(e==="future"){let r=new Date(String(t));return isNaN(r.getTime())||r<=new Date?p(b.validation("value",t,"must be a future date")):c(t)}if(e==="past"){let r=new Date(String(t));return isNaN(r.getTime())||r>=new Date?p(b.validation("value",t,"must be a past date")):c(t)}return c(t)},combine:(...e)=>t=>{for(let r of e){let n=r(t);if(n.isLeft())return n}return c(t)},custom:(e,t)=>r=>e(r)?c(r):p(b.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(h=>h,()=>{throw new Error("Should not be left")}),l=b.validation(o,s,u.context.rule);r.push(l);}else n[o]=i.get();}return r.length>0?p(y(r)):c(n)}},Tt={..._,validators:{email:_.rule("email"),url:_.rule("url"),uuid:_.rule("uuid"),required:_.rule("required"),numeric:_.rule("numeric"),positiveNumber:_.combine(_.rule("numeric"),_.rule("min:0")),nonEmptyString:_.combine(_.rule("required"),_.custom(e=>typeof e=="string"&&e.trim().length>0,"must not be empty"))}},jr=Object.assign(_.rule,Tt);function dt(e){return e!=null&&typeof e=="object"&&"getOrElse"in e&&typeof e.getOrElse=="function"&&"getOrThrow"in e&&typeof e.getOrThrow=="function"&&"get"in e&&typeof e.get=="function"&&"orElse"in e&&typeof e.orElse=="function"&&"orNull"in e&&typeof e.orNull=="function"&&"orUndefined"in e&&typeof e.orUndefined=="function"}var en={toOption:e=>e.fold(()=>k(),t=>S(t)),toList:e=>e.fold(()=>y([]),t=>y([t])),toEither:(e,t)=>e.fold(()=>p(t),r=>c(r)),isEmpty:e=>e.fold(()=>true,()=>false),size:e=>e.fold(()=>0,()=>1)};var Y=e=>e!==null&&typeof e=="object"&&(e._tag==="Some"||e._tag==="None"),$=e=>e!==null&&typeof e=="object"&&e._tag==="List",ne=e=>e!==null&&typeof e=="object"&&(e._tag==="Left"||e._tag==="Right"),oe=e=>e!==null&&typeof e=="object"&&(e._tag==="Success"||e._tag==="Failure"),K=()=>{let e=(s,i)=>{if(Y(s))return s.map(u=>i(u));if($(s))return s.map(u=>i(u));if(ne(s))return s.map(u=>i(u));if(oe(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},t=s=>{if(Y(s))return s.get();if($(s)){let i=s.toArray();if(i.length>0&&$(i[0])){let u=[];for(let l of i)$(l)&&u.push(...l.toArray());return y(u)}return s.flatten()}if(ne(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(oe(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(Y(s))return s.flatMap(u=>i(u));if($(s))return s.flatMap(u=>i(u));if(ne(s))return s.flatMap(u=>i(u));if(oe(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(Y(s)&&Y(i))return s.flatMap(u=>i.map(l=>u(l)));if($(s)&&$(i))return s.flatMap(u=>i.map(l=>u(l)));if(ne(s)&&ne(i))return s.flatMap(u=>i.map(l=>u(l)));if(oe(s)&&oe(i))return s.flatMap(u=>i.map(l=>u(l)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(Y(s)){let i=s;if(i.isEmpty)return y([d.none()]);let u=i.get();if($(u))return u.map(l=>d(l));throw new Error("Unsupported inner container type for sequence")}if($(s)){let u=s.toArray();if(u.length===0)return d.none();let l=u[0];if(Y(l)){for(let g of u)if(g.isEmpty)return d.none();let h=u.map(g=>g.get());return d(y(h))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {...fe("HKT",{map:e,flatten:t,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(e(s,u=>i(u)))}),_type:"HKT"}},ae=K();K.map=(e,t)=>ae.map(e,t);K.flatten=e=>ae.flatten(e);K.flatMap=(e,t)=>ae.flatMap(e,t);K.ap=(e,t)=>ae.ap(e,t);K.sequence=e=>ae.sequence(e);K.traverse=(e,t)=>ae.traverse(e,t);K.isOption=Y;K.isList=$;K.isEither=ne;K.isTry=oe;function sn(e){return {id:e,isSame:r=>r.id===e}}var Ee=e=>({_tag:"Success",error:void 0,isSuccess(){return true},isFailure(){return false},get:()=>e,getOrElse:t=>e,getOrThrow:t=>e,orElse:t=>Ee(e),orNull:()=>e,orUndefined:()=>e,orThrow:t=>e,toEither:()=>c(e),map:t=>we(()=>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(${ue(e)})`,toPromise:()=>Promise.resolve(e),toValue:()=>({_tag:"Success",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:e}),toYAML:()=>`_tag: Success
29
- value: ${ue(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Success",value:e})).toString("base64")}),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)?d(e):d(void 0),exists:t=>t(e),forEach:t=>t(e)}),D=e=>({_tag:"Failure",error:e,isSuccess(){return false},isFailure(){return true},get:()=>{throw e},getOrElse:t=>t,getOrThrow:t=>{throw t??e},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},orThrow:t=>{throw t},toEither:()=>p(e),map:t=>D(e),ap:t=>D(e),flatMap:t=>D(e),flatMapAsync:t=>Promise.resolve(D(e)),fold:(t,r)=>t(e),match:t=>t.Failure(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,toString:()=>`Failure(${ue(e)}))`,toPromise:()=>Promise.reject(e),toValue:()=>({_tag:"Failure",value:e}),pipe:t=>{throw e},serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack}),toYAML:()=>`_tag: Failure
30
- error: ${e.message}
31
- stack: ${e.stack}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack})).toString("base64")}),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=>d(null),exists:t=>false,forEach:t=>{}}),ft=e=>{try{return Ee(e())}catch(t){return D(t instanceof Error?t:new Error(String(t)))}},Ke={fromJSON:e=>{let t=JSON.parse(e);if(t._tag==="Success")return Ee(t.value);{let r=new Error(t.error);return t.stack&&(r.stack=t.stack),D(r)}},fromYAML:e=>{let t=e.split(`
32
- `),r=t[0]?.split(": ")[1];if(!r)return D(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=t[1]?.split(": ")[1];if(!n)return D(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return Ee(o)}else {let n=t[1]?.split(": ")[1];if(!n)return D(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),D(s)}},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ke.fromJSON(t)}},we=a(ft,Ke);var Q=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},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=>V(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>V(()=>i(a())),ap:i=>V(()=>i.get()(a())),mapAsync:async i=>{let u=a(),l=await i(u);return V(()=>l)},flatMap:i=>V(()=>i(a()).get()),flatMapAsync:async i=>{let u=a(),l=await i(u);return V(()=>l.get())},filter:i=>V(()=>{let u=a();return i(u)?S(u):k}),recover:i=>V(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>V(()=>{try{return a()}catch(u){return i(u).get()}}),toOption:()=>{try{return S(a())}catch{return k}},toEither:()=>{try{return c(a())}catch(i){return p(i)}},toEitherWith:i=>{try{return c(a())}catch(u){return p(i(u))}},toTry:()=>we(()=>a()),tap:i=>V(()=>{let u=a();return i(u),u}),tapError:i=>V(()=>{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:()=>t&&!o?`Lazy(${ue(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)?S(u):k}catch{return k}},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
33
- evaluated: true
34
- value: ${ue(r)}`:`_tag: Lazy
35
- evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false})).toString("base64")}),typeable:"Lazy"}},mt={of:e=>Q(e),fromValue:e=>Q(()=>e),fromOption:(e,t)=>Q(()=>e._tag==="Some"?e.value:t()),fromTry:e=>Q(()=>e.get()),fromEither:e=>Q(()=>e.fold(t=>{throw t},t=>t)),fromPromise:e=>Q(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:e=>Q(()=>{throw e})},V=a(Q,mt);var le=Map;var j=e=>{let r={values:new le(e)},n=()=>Array.from(r.values.entries()).map(([T,m])=>b$1([T,m])),o=T=>j(new le(r.values).set(T.toArray()[0],T.toArray()[1]).entries()),a=T=>{let m=new le(r.values);return m.delete(T)?j(m.entries()):j(r.values.entries())},s=T=>{let m=T.toArray();return r.values.get(m[0])===m[1]},i=()=>r.values.size,u=T=>j(Array.from(r.values.entries()).map(([m,M])=>[m,T(M)])),l=T=>{let m=j(r.values.entries()).toList();return j(m.flatMap(T).toArray())},h=T=>{let m=[];for(let[M,ee]of r.values.entries()){let ie=T.get(M);ie._tag==="Some"&&ie.value&&m.push([M,ie.value(ee)]);}return j(m)},g=async T=>{let m=new le;for(let[M,ee]of r.values.entries()){let ie=await T(ee);for(let qe of ie.toList()){let[Ye,Qe]=qe.toArray();m.set(Ye,Qe);}}return j(m.entries())},P=T=>y(n()).reduce(T),U=T=>y(n()).reduceRight(T),R=T=>m=>y(n()).foldLeft(T)(m),Z=T=>m=>y(n()).foldRight(T)(m),q=T=>d(r.values.get(T)),X=(T,m)=>d(r.values.get(T)).getOrElse(m),se=()=>r.values.size===0,pe=(T,m)=>d(r.values.get(T)).orElse(m),ce=(T,m)=>{if(se())return T();let M=n();if(M.length===0)return T();let ee=M[0];return ee===void 0?T():m(ee)},Ue=()=>y(n()),f=()=>G(n()),B=()=>`Map(${n().toString()})`,O=T=>se()?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:h,flatMap:l,flatMapAsync:g,reduce:P,reduceRight:U,foldLeft:R,foldRight:Z,fold:ce,match:O,get:q,getOrElse:X,get isEmpty(){return se()},orElse:pe,toList:Ue,toSet:f,toString:B,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")})}},yt=e=>j(e),De={fromJSON:e=>{let t=JSON.parse(e);return Se(t.value)},fromYAML:e=>{let r=e.split(`
37
- `)[1]?.split(": ")[1];if(!r)return Se([]);let n=JSON.parse(r);return Se(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return De.fromJSON(t)}},Se=a(yt,De);var gt={default:e=>t=>e(t),when:(e,t)=>r=>e(r)?t(r):void 0};var F=(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:f=>r.includes(f),reduce:f=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(f)},reduceRight:f=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(f)},push:f=>F([...r,f]),pop:()=>{if(o())return [F([]),d(null)];let f=[...r],B=f.pop();return [F(f),d(B)]},peek:()=>o()?d(null):d(r[r.length-1]),map:f=>F(r.map(f)),flatMap:f=>o()?F([]):r.reduce((B,O)=>f(O).toArray().reduce((m,M)=>m.push(M),B),F([])),ap:f=>{let B=[];return r.forEach(O=>{f.toArray().forEach(T=>{B.push(T(O));});}),F(B)},flatMapAsync:async f=>o()?F([]):(await Promise.all(r.map(async O=>await f(O)))).reduce((O,T)=>T.toArray().reduce((m,M)=>m.push(M),O),F([])),toList:()=>y(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(f,B)=>{if(o())return f();let O=r[r.length-1];return O!==void 0?B(O):f()},foldLeft:f=>B=>r.reduce(B,f),foldRight:f=>B=>r.reduceRight((O,T)=>B(T,O),f),match:f=>o()?f.Empty():f.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:f=>f([...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")})}},ht=(e=[])=>F(e),Je={empty:()=>F([]),of:e=>F([e]),fromJSON:e=>{let t=JSON.parse(e);return ve(t.value)},fromYAML:e=>{let r=e.split(`
39
- `)[1]?.split(": ")[1];if(!r)return ve([]);let n=JSON.parse(r);return ve(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Je.fromJSON(t)}},ve=a(ht,Je);function zn(e){let t=de({_tag:e._tag,impl:e.impl});return {...t,toValue:()=>({_tag:t._tag,value:e.value})}}var S=e=>({_tag:"Some",value:e,isEmpty:false,isSome(){return true},isNone(){return false},get:()=>e,getOrElse:()=>e,getOrThrow:()=>e,orElse:t=>S(e),orNull:()=>e,orUndefined:()=>e,map:t=>S(t(e)),ap:t=>t._tag==="Some"&&t.value?S(t.value(e)):J,filter(t){return t(e)?S(e):J},count:t=>t(e)?1:0,find:t=>t(e)?S(e):J,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:()=>y([e]),contains:t=>t===e,size:1,toEither:t=>c(e),toPromise:()=>Promise.resolve(e),toString:()=>`Some(${ue(e)})`,toValue:()=>({_tag:"Some",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:e}),toYAML:()=>`_tag: Some
40
- value: ${ue(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:e})).toString("base64")})}),J={_tag:"None",value:void 0,isEmpty:true,isSome(){return false},isNone(){return true},get:()=>{throw new Error("Cannot call get() on None")},getOrElse:e=>e,getOrThrow(e){throw e},orElse:e=>e,orNull:()=>null,orUndefined:()=>{},map:e=>J,ap:e=>J,filter(e){return J},count:e=>0,find:e=>J,exists:e=>false,forEach:e=>{},flatMap:e=>J,flatMapAsync:e=>Promise.resolve(J),reduce:()=>{},reduceRight:()=>{},fold:(e,t)=>e(),match:e=>e.None(),foldLeft:e=>()=>e,foldRight:e=>()=>e,toList:()=>y([]),contains:()=>false,size:0,toEither:e=>p(e),toPromise:()=>Promise.reject(new Error("Cannot convert None to Promise")),toString:()=>"None",toValue:()=>({_tag:"None",value:void 0}),pipe:e=>e(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")})},k=()=>J,Et=e=>e!=null?S(e):k(),je={from:e=>d(e),none:()=>k(),fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Some"?S(t.value):k()},fromYAML:e=>{let t=e.split(`
42
- `),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)return k();let o=n==="null"?null:JSON.parse(n);return r==="Some"?S(o):k()},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return je.fromJSON(t)}},d=a(Et,je);export{K as $,Ht as A,Zt as B,Xt as C,er as D,nr as E,ir as F,fe as G,me as H,x as I,ot as J,Le as K,A as L,at as M,be as N,ge as O,xe as P,C as Q,ze as R,he as S,vr as T,Ur as U,Or as V,b as W,Kr as X,jr as Y,dt as Z,en as _,S as a,sn as aa,k as b,we as ba,Et as c,V as ca,d,le as da,G as e,Se as ea,de as f,gt as fa,Ae as g,ve as ga,y as h,zn as ha,c as i,p as j,It as k,Vt as l,Ft as m,Ze as n,Xe as o,Ct as p,_e as q,I as r,et as s,Jt as t,Wt as u,jt as v,qt as w,Yt as x,Qt as y,Gt as z};//# sourceMappingURL=chunk-ZUGOUK5O.mjs.map
43
- //# sourceMappingURL=chunk-ZUGOUK5O.mjs.map