functype 0.20.2 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as ExtractBrand, c as hasBrand, i as BrandedString, l as unwrapBrand, n as BrandedBoolean, o as Unwrap, r as BrandedNumber, s as createBrander, t as Brand } from "./Brand-B-0nKo7I.js";
2
- import { $ as EitherKind, $t as isCompanion, A as OptionConstructor, At as Ok, B as fromBinary, Bt as createCancellationTokenSource, C as Functype, Cn as ContainerOps, Ct as formatError, D as List, Dn as DoResult, Dt as CancellationToken, E as Collection, En as isExtractable, Et as Async, F as Set, Ft as TaskMetadata, G as MatchableUtils, Gt as NAME, H as fromYAML, Ht as ErrorContext, I as SerializationResult, It as TaskOutcome, J as Map, Jt as Base, K as ESMap, Kt as Throwable, L as createCustomSerializer, Lt as TaskParams, M as Stack, Mt as TaggedThrowable, N as Valuable, Nt as Task, O as None, On as Doable, Ot as CancellationTokenSource, P as ValuableParams, Pt as TaskFailure, Q as Identity, Qt as InstanceType, R as createSerializationCompanion, Rt as TaskResult, S as tryCatchAsync, Sn as CollectionOps, St as createErrorSerializer, T as FunctypeCollection, Tn as Extractable, Tt as safeStringify, U as Ref, Ut as FPromise, V as fromJSON, Vt as isTaggedThrowable, W as Matchable, Wt as FPromiseCompanion, X as Traversable, Xt as Cond, Y as SafeTraversable, Yt as Match, Z as Lazy, Zt as CompanionMethods, _ as TypeCheckLeft, _n as Promisable, _t as ParseError, a as EmptyListError, an as IntegerNumber, at as UniversalContainer, b as isRight, bn as Functor, bt as ErrorWithTaskInfo, c as LeftError, cn as PatternString, ct as FormValidation, d as isDoCapable, dn as UUID, dt as Validator, en as Companion, et as HKT, f as unwrap, fn as UrlString, ft as ErrorCode, g as TestEither, gn as TypeNames, gt as TypedErrorContext, h as Right, hn as Try, ht as TypedError, i as DoGenerator, in as ISO8601Date, it as TryKind, j as Some, jt as Sync, k as Option, kt as Err, l as LeftErrorType, ln as PositiveInteger, lt as Validation, m as Left, mn as ValidatedBrandCompanion, mt as ErrorStatus, n as Do, nn as BoundedString, nt as ListKind, o as FailureError, on as NonEmptyString, ot as FoldableUtils, p as Either, pn as ValidatedBrand, pt as ErrorMessage, q as ESMapType, qt as ThrowableType, r as DoAsync, rn as EmailAddress, rt as OptionKind, s as FailureErrorType, sn as NonNegativeNumber, st as FieldValidation, t as $, tn as BoundedNumber, tt as Kind, u as NoneError, un as PositiveNumber, ut as ValidationRule, v as TypeCheckRight, vn as Applicative, vt as ErrorChainElement, w as FunctypeBase, wn as LazyList, wt as formatStackTrace, x as tryCatch, xn as Monad, xt as TaskErrorInfo, y as isLeft, yn as AsyncMonad, yt as ErrorFormatterOptions, z as createSerializer, zt as TaskSuccess } from "./index-Bnjlo4cT.js";
3
- import { a as isTypeable, c as Pipe, i as TypeableParams, l as Foldable, n as ExtractTag, o as Serializable, r as Typeable, s as SerializationMethods, t as Tuple, u as Type } from "./Tuple-CKxIyX7l.js";
4
- export { $, Applicative, Async, AsyncMonad, Base, BoundedNumber, BoundedString, Brand, BrandedBoolean, BrandedBoolean as BrandedBooleanType, BrandedNumber, BrandedNumber as BrandedNumberType, BrandedString, BrandedString as BrandedStringType, CancellationToken, CancellationTokenSource, Collection, CollectionOps, Companion, CompanionMethods, Cond, ContainerOps, Do, DoAsync, DoGenerator, DoResult, Doable, ESMap, ESMapType, Either, EitherKind, EmailAddress, EmptyListError, Err, ErrorChainElement, ErrorCode, ErrorContext, ErrorFormatterOptions, ErrorMessage, ErrorStatus, ErrorWithTaskInfo, ExtractBrand, ExtractTag, Extractable, FPromise, FPromiseCompanion, FailureError, FailureErrorType, FieldValidation, Foldable, FoldableUtils, FormValidation, Functor, Functype, FunctypeBase, FunctypeCollection, HKT, ISO8601Date, Identity, InstanceType, IntegerNumber, Kind, Lazy, Lazy as LazyType, LazyList, Left, LeftError, LeftErrorType, List, ListKind, Map, Match, Matchable, MatchableUtils, Monad, NAME, NonEmptyString, NonNegativeNumber, None, NoneError, Ok, Option, OptionConstructor, OptionKind, ParseError, PatternString, Pipe, PositiveInteger, PositiveNumber, Promisable, Ref, Ref as RefType, Right, SafeTraversable, Serializable, SerializationMethods, SerializationResult, Set, Some, Stack, Sync, TaggedThrowable, Task, TaskErrorInfo, TaskFailure, TaskMetadata, TaskOutcome, TaskParams, TaskResult, TaskSuccess, TestEither, Throwable, ThrowableType, Traversable, Try, TryKind, Tuple, Type, TypeCheckLeft, TypeCheckRight, TypeNames, Typeable, TypeableParams, TypedError, TypedErrorContext, UUID, UniversalContainer, Unwrap, UrlString, ValidatedBrand, ValidatedBrand as ValidatedBrandType, ValidatedBrandCompanion, Validation, ValidationRule, Validator, Valuable, ValuableParams, createBrander, createCancellationTokenSource, createCustomSerializer, createErrorSerializer, createSerializationCompanion, createSerializer, formatError, formatStackTrace, fromBinary, fromJSON, fromYAML, hasBrand, isCompanion, isDoCapable, isExtractable, isLeft, isRight, isTaggedThrowable, isTypeable, safeStringify, tryCatch, tryCatchAsync, unwrap, unwrapBrand };
1
+ import { a as ExtractBrand, c as hasBrand, i as BrandedString, l as unwrapBrand, n as BrandedBoolean, o as Unwrap, r as BrandedNumber, s as createBrander, t as Brand } from "./Brand-BPeggBaO.js";
2
+ import { $ as TestClockTag, $t as Task$1, A as OptionConstructor, An as PositiveNumber, At as ValidationRule, B as fromBinary, Bn as Functor, Bt as ErrorWithTaskInfo, C as Functype, Cn as EmailAddress, Ct as OptionKind, D as List, Dn as NonNegativeNumber, Dt as FieldValidation, E as Collection, En as NonEmptyString, Et as FoldableUtils, F as Set, Fn as Try, Ft as TypedError, G as MatchableUtils, Gn as Extractable, Gt as safeStringify, H as fromYAML, Hn as CollectionOps, Ht as createErrorSerializer, I as SerializationResult, In as TypeNames, It as TypedErrorContext, J as Map, Jn as Doable, Jt as CancellationTokenSource, K as ESMap, Kn as isExtractable, Kt as Async, L as createCustomSerializer, Ln as Promisable, Lt as ParseError, M as Stack, Mn as UrlString, Mt as ErrorCode, N as Valuable, Nn as ValidatedBrand, Nt as ErrorMessage, O as None, On as PatternString, Ot as FormValidation, P as ValuableParams, Pn as ValidatedBrandCompanion, Pt as ErrorStatus, Q as TestClock, Qt as TaggedThrowable, R as createSerializationCompanion, Rn as Applicative, Rt as ErrorChainElement, S as tryCatchAsync, Sn as BoundedString, St as ListKind, T as FunctypeCollection, Tn as IntegerNumber, Tt as UniversalContainer, U as Ref, Un as ContainerOps, Ut as formatError, V as fromJSON, Vn as Monad, Vt as TaskErrorInfo, W as Matchable, Wn as LazyList, Wt as formatStackTrace, X as Traversable, Xt as Ok, Y as SafeTraversable, Yt as Err, Z as Lazy, Zt as Sync, _ as TypeCheckLeft, _n as CompanionMethods, _t as TagService, a as EmptyListError, an as TaskSuccess, at as TimeoutError, b as isRight, bn as Companion, bt as HKT, c as LeftError, cn as ErrorContext, ct as LayerError, d as isDoCapable, dn as NAME, dt as Exit, en as TaskFailure, et as TestContext, f as unwrap, fn as Throwable, ft as ExitTag, g as TestEither, gn as Cond, gt as Tag, h as Right, hn as Match, ht as HasService, i as DoGenerator, in as TaskResult, it as Task, j as Some, jn as UUID, jt as Validator, k as Option, kn as PositiveInteger, kt as Validation, l as LeftErrorType, ln as FPromise, lt as LayerInput, m as Left, mn as Base, mt as ContextServices, n as Do, nn as TaskOutcome, nt as InterruptedError, o as FailureError, on as createCancellationTokenSource, ot as UIO, p as Either, pn as ThrowableType, pt as Context, q as ESMapType, qn as DoResult, qt as CancellationToken, r as DoAsync, rn as TaskParams, rt as RIO, s as FailureErrorType, sn as isTaggedThrowable, st as Layer, t as $, tn as TaskMetadata, tt as IO, u as NoneError, un as FPromiseCompanion, ut as LayerOutput, v as TypeCheckRight, vn as InstanceType, vt as Identity, w as FunctypeBase, wn as ISO8601Date, wt as TryKind, x as tryCatch, xn as BoundedNumber, xt as Kind, y as isLeft, yn as isCompanion, yt as EitherKind, z as createSerializer, zn as AsyncMonad, zt as ErrorFormatterOptions } from "./index-BiUAv9kR.js";
3
+ import { a as isTypeable, c as Pipe, i as TypeableParams, l as Foldable, n as ExtractTag, o as Serializable, r as Typeable, s as SerializationMethods, t as Tuple, u as Type } from "./Tuple-C4maYbiO.js";
4
+ export { $, Applicative, Async, AsyncMonad, Base, BoundedNumber, BoundedString, Brand, BrandedBoolean, BrandedBoolean as BrandedBooleanType, BrandedNumber, BrandedNumber as BrandedNumberType, BrandedString, BrandedString as BrandedStringType, CancellationToken, CancellationTokenSource, Collection, CollectionOps, Companion, CompanionMethods, Cond, ContainerOps, Context, Context as ContextType, ContextServices, Do, DoAsync, DoGenerator, DoResult, Doable, ESMap, ESMapType, Either, EitherKind, EmailAddress, EmptyListError, Err, ErrorChainElement, ErrorCode, ErrorContext, ErrorFormatterOptions, ErrorMessage, ErrorStatus, ErrorWithTaskInfo, Exit, Exit as ExitType, ExitTag, ExtractBrand, ExtractTag, Extractable, FPromise, FPromiseCompanion, FailureError, FailureErrorType, FieldValidation, Foldable, FoldableUtils, FormValidation, Functor, Functype, FunctypeBase, FunctypeCollection, HKT, HasService, IO, IO as IOType, Task as IOTask, ISO8601Date, Identity, InstanceType, IntegerNumber, InterruptedError, Kind, Layer, Layer as LayerType, LayerError, LayerInput, LayerOutput, Lazy, Lazy as LazyType, LazyList, Left, LeftError, LeftErrorType, List, ListKind, Map, Match, Matchable, MatchableUtils, Monad, NAME, NonEmptyString, NonNegativeNumber, None, NoneError, Ok, Option, OptionConstructor, OptionKind, ParseError, PatternString, Pipe, PositiveInteger, PositiveNumber, Promisable, RIO, Ref, Ref as RefType, Right, SafeTraversable, Serializable, SerializationMethods, SerializationResult, Set, Some, Stack, Sync, Tag, Tag as TagType, TagService, TaggedThrowable, Task$1 as Task, TaskErrorInfo, TaskFailure, TaskMetadata, TaskOutcome, TaskParams, TaskResult, TaskSuccess, TestClock, TestClock as TestClockType, TestClockTag, TestContext, TestContext as TestContextType, TestEither, Throwable, ThrowableType, TimeoutError, Traversable, Try, TryKind, Tuple, Type, TypeCheckLeft, TypeCheckRight, TypeNames, Typeable, TypeableParams, TypedError, TypedErrorContext, UIO, UUID, UniversalContainer, Unwrap, UrlString, ValidatedBrand, ValidatedBrand as ValidatedBrandType, ValidatedBrandCompanion, Validation, ValidationRule, Validator, Valuable, ValuableParams, createBrander, createCancellationTokenSource, createCustomSerializer, createErrorSerializer, createSerializationCompanion, createSerializer, formatError, formatStackTrace, fromBinary, fromJSON, fromYAML, hasBrand, isCompanion, isDoCapable, isExtractable, isLeft, isRight, isTaggedThrowable, isTypeable, safeStringify, tryCatch, tryCatchAsync, unwrap, unwrapBrand };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./Brand-Cfr5zy8F.js";import{n as s,t as c}from"./Tuple-CgX4p79w.js";import{$ as l,A as u,B as d,C as f,Ct as p,D as m,E as h,F as g,G as _,H as v,I as y,J as b,K as x,L as S,M as C,N as w,O as T,P as E,Q as D,R as O,S as k,St as A,T as j,U as M,V as N,W as P,X as F,Y as I,Z as L,_ as R,_t as z,a as B,at as V,b as H,bt as U,c as W,ct as G,d as K,dt as q,et as J,f as Y,ft as X,g as Z,gt as Q,h as $,ht as ee,i as te,it as ne,j as re,k as ie,l as ae,lt as oe,m as se,mt as ce,n as le,nt as ue,o as de,ot as fe,p as pe,pt as me,q as he,r as ge,rt as _e,s as ve,st as ye,t as be,tt as xe,u as Se,ut as Ce,v as we,vt as Te,w as Ee,wt as De,x as Oe,xt as ke,y as Ae,yt as je,z as Me}from"./src-BOxI0-73.js";export{we as $,y as Base,d as BoundedNumber,N as BoundedString,o as Brand,n as BrandedBoolean,i as BrandedNumber,t as BrandedString,s as Companion,O as Cond,Ae as Do,H as DoAsync,B as ESMap,l as Either,v as EmailAddress,Oe as EmptyListError,m as Err,C as FPromise,w as FPromiseCompanion,k as FailureError,ae as FoldableUtils,W as HKT,M as ISO8601Date,ve as Identity,P as IntegerNumber,de as Lazy,X as LazyList,J as Left,f as LeftError,G as List,te as Map,S as Match,ge as MatchableUtils,E as NAME,_ as NonEmptyString,x as NonNegativeNumber,ee as None,Ee as NoneError,T as Ok,Q as Option,z as OptionConstructor,pe as ParseError,he as PatternString,b as PositiveInteger,I as PositiveNumber,me as Ref,xe as Right,ce as Set,Te as Some,le as Stack,ie as Task,g as Throwable,q as Try,c as Tuple,ue as TypeCheckLeft,_e as TypeCheckRight,oe as Typeable,Y as TypedError,F as UUID,L as UrlString,D as ValidatedBrand,K as Validation,be as Valuable,e as createBrander,u as createCancellationTokenSource,je as createCustomSerializer,se as createErrorSerializer,U as createSerializationCompanion,ke as createSerializer,$ as formatError,Z as formatStackTrace,A as fromBinary,p as fromJSON,De as fromYAML,r as hasBrand,Me as isCompanion,j as isDoCapable,Se as isExtractable,ne as isLeft,V as isRight,re as isTaggedThrowable,Ce as isTypeable,R as safeStringify,fe as tryCatch,ye as tryCatchAsync,h as unwrap,a as unwrapBrand};
1
+ import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./Brand-Cfr5zy8F.js";import{n as s,t as c}from"./Tuple-CgX4p79w.js";import{$ as l,A as u,At as d,B as f,C as p,Ct as m,D as h,Dt as g,E as _,Et as v,F as y,G as b,H as x,I as S,J as C,K as w,L as T,M as E,Mt as D,N as O,Nt as k,O as A,Ot as j,P as M,Pt as N,Q as P,R as F,S as I,St as L,T as R,Tt as z,U as B,V,W as H,X as U,Y as W,Z as G,_ as K,_t as q,a as J,at as Y,b as X,bt as Z,c as Q,ct as $,d as ee,dt as te,et as ne,f as re,ft as ie,g as ae,gt as oe,h as se,ht as ce,i as le,it as ue,j as de,jt as fe,k as pe,kt as me,l as he,lt as ge,m as _e,mt as ve,n as ye,nt as be,o as xe,ot as Se,p as Ce,pt as we,q as Te,r as Ee,rt as De,s as Oe,st as ke,t as Ae,tt as je,u as Me,ut as Ne,v as Pe,vt as Fe,w as Ie,wt as Le,x as Re,xt as ze,y as Be,yt as Ve,z as He}from"./src-BeaSFZFq.js";export{A as $,w as Base,U as BoundedNumber,G as BoundedString,o as Brand,n as BrandedBoolean,i as BrandedNumber,t as BrandedString,s as Companion,C as Cond,ae as Context,pe as Do,u as DoAsync,J as ESMap,ge as Either,P as EmailAddress,de as EmptyListError,T as Err,se as Exit,x as FPromise,B as FPromiseCompanion,E as FailureError,Be as FoldableUtils,Pe as HKT,re as IO,l as ISO8601Date,K as Identity,ne as IntegerNumber,Ce as InterruptedError,ee as Layer,xe as Lazy,L as LazyList,Ne as Left,O as LeftError,Fe as List,le as Map,Te as Match,Ee as MatchableUtils,H as NAME,je as NonEmptyString,be as NonNegativeNumber,z as None,M as NoneError,F as Ok,v as Option,g as OptionConstructor,p as ParseError,De as PatternString,ue as PositiveInteger,Y as PositiveNumber,m as Ref,te as Right,Le as Set,j as Some,ye as Stack,Me as Tag,He as Task,Oe as TestClock,Q as TestClockTag,he as TestContext,b as Throwable,_e as TimeoutError,ze as Try,c as Tuple,ie as TypeCheckLeft,we as TypeCheckRight,Ve as Typeable,I as TypedError,Se as UUID,ke as UrlString,$ as ValidatedBrand,Re as Validation,Ae as Valuable,e as createBrander,f as createCancellationTokenSource,me as createCustomSerializer,Ie as createErrorSerializer,d as createSerializationCompanion,fe as createSerializer,R as formatError,_ as formatStackTrace,D as fromBinary,k as fromJSON,N as fromYAML,r as hasBrand,W as isCompanion,y as isDoCapable,X as isExtractable,ve as isLeft,ce as isRight,V as isTaggedThrowable,Z as isTypeable,h as safeStringify,oe as tryCatch,q as tryCatchAsync,S as unwrap,a as unwrapBrand};
@@ -1,4 +1,4 @@
1
- import "../Brand-B-0nKo7I.js";
2
- import { D as List } from "../index-Bnjlo4cT.js";
3
- import "../Tuple-CKxIyX7l.js";
1
+ import "../Brand-BPeggBaO.js";
2
+ import { D as List } from "../index-BiUAv9kR.js";
3
+ import "../Tuple-C4maYbiO.js";
4
4
  export { List };
@@ -1 +1 @@
1
- import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{ct as e}from"../src-BOxI0-73.js";export{e as List};
1
+ import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{vt as e}from"../src-BeaSFZFq.js";export{e as List};
@@ -1,4 +1,4 @@
1
- import "../Brand-B-0nKo7I.js";
2
- import { J as Map, Y as SafeTraversable } from "../index-Bnjlo4cT.js";
3
- import "../Tuple-CKxIyX7l.js";
1
+ import "../Brand-BPeggBaO.js";
2
+ import { J as Map, Y as SafeTraversable } from "../index-BiUAv9kR.js";
3
+ import "../Tuple-C4maYbiO.js";
4
4
  export { Map, SafeTraversable };
package/dist/map/index.js CHANGED
@@ -1 +1 @@
1
- import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{i as e}from"../src-BOxI0-73.js";export{e as Map};
1
+ import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{i as e}from"../src-BeaSFZFq.js";export{e as Map};
@@ -1,4 +1,4 @@
1
- import "../Brand-B-0nKo7I.js";
2
- import { A as OptionConstructor, O as None, j as Some, k as Option } from "../index-Bnjlo4cT.js";
3
- import "../Tuple-CKxIyX7l.js";
1
+ import "../Brand-BPeggBaO.js";
2
+ import { A as OptionConstructor, O as None, j as Some, k as Option } from "../index-BiUAv9kR.js";
3
+ import "../Tuple-C4maYbiO.js";
4
4
  export { None, Option, OptionConstructor, Some };
@@ -1 +1 @@
1
- import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{_t as e,gt as t,ht as n,vt as r}from"../src-BOxI0-73.js";export{n as None,t as Option,e as OptionConstructor,r as Some};
1
+ import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{Dt as e,Et as t,Ot as n,Tt as r}from"../src-BeaSFZFq.js";export{r as None,t as Option,e as OptionConstructor,n as Some};
@@ -1,4 +1,4 @@
1
- import "../Brand-B-0nKo7I.js";
2
- import { F as Set } from "../index-Bnjlo4cT.js";
3
- import "../Tuple-CKxIyX7l.js";
1
+ import "../Brand-BPeggBaO.js";
2
+ import { F as Set } from "../index-BiUAv9kR.js";
3
+ import "../Tuple-C4maYbiO.js";
4
4
  export { Set };
package/dist/set/index.js CHANGED
@@ -1 +1 @@
1
- import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{mt as e}from"../src-BOxI0-73.js";export{e as Set};
1
+ import"../Brand-Cfr5zy8F.js";import"../Tuple-CgX4p79w.js";import{wt as e}from"../src-BeaSFZFq.js";export{e as Set};
@@ -0,0 +1,20 @@
1
+ import{t as e}from"./Brand-Cfr5zy8F.js";import{n as t,t as n}from"./Tuple-CgX4p79w.js";import r from"safe-stable-stringify";const i=(e,t)=>({toJSON:()=>JSON.stringify({_tag:e,value:t}),toYAML:()=>`_tag: ${e}\nvalue: ${r(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:e,value:t})).toString(`base64`)}),a=e=>({toJSON:()=>JSON.stringify(e),toYAML:()=>Object.entries(e).map(([e,t])=>`${e}: ${r(t)}`).join(`
2
+ `),toBinary:()=>Buffer.from(JSON.stringify(e)).toString(`base64`)}),o=(e,t)=>t(JSON.parse(e)),s=(e,t)=>{let n=e.split(`
3
+ `),r={};for(let e of n){let t=e.indexOf(`: `);if(t===-1)continue;let n=e.substring(0,t),i=e.substring(t+2);if(!i){r[n]=null;continue}try{r[n]=i===`null`?null:JSON.parse(i)}catch{r[n]=i}}return t(r)},c=(e,t)=>o(Buffer.from(e,`base64`).toString(),t),l=e=>({fromJSON:t=>o(t,e),fromYAML:t=>s(t,e),fromBinary:t=>c(t,e)}),u=e=>({_tag:`Some`,value:e,isEmpty:!1,isSome(){return!0},isNone(){return!1},orElse:()=>e,orThrow:()=>e,or:t=>u(e),orNull:()=>e,orUndefined:()=>e,map:t=>u(t(e)),ap:t=>t._tag===`Some`&&t.value?u(t.value(e)):d,filter(t){return t(e)?u(e):d},count:t=>t(e)?1:0,find:t=>t(e)?u(e):d,exists:t=>t(e),forEach:t=>t(e),fold:(t,n)=>n(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=>n=>n(t,e),foldRight:t=>n=>n(e,t),toList:()=>S([e]),contains:t=>t===e,size:1,toOption:()=>u(e),toEither:t=>C(e),toTry:()=>b(()=>e),toPromise:()=>Promise.resolve(e),toString:()=>`Some(${r(e)})`,toValue:()=>({_tag:`Some`,value:e}),pipe:t=>t(e),serialize:()=>i(`Some`,e),doUnwrap(){return{ok:!0,value:e}}}),d={_tag:`None`,value:void 0,isEmpty:!0,isSome(){return!1},isNone(){return!0},orElse:e=>e,orThrow(e){throw e??Error(`Cannot extract value from None`)},or:e=>e,orNull:()=>null,orUndefined:()=>void 0,map:e=>d,ap:e=>d,filter(e){return d},count:e=>0,find:e=>d,exists:e=>!1,forEach:e=>{},flatMap:e=>d,flatMapAsync:e=>Promise.resolve(d),reduce:()=>void 0,reduceRight:()=>void 0,fold:(e,t)=>e(),match:e=>e.None(),foldLeft:e=>()=>e,foldRight:e=>()=>e,toList:()=>S([]),contains:()=>!1,size:0,toOption:()=>d,toEither:e=>w(e),toTry:()=>b(()=>{throw Error(`None`)}),toPromise:()=>Promise.reject(Error(`Cannot convert None to Promise`)),toString:()=>`None`,toValue:()=>({_tag:`None`,value:void 0}),pipe:e=>e(void 0),serialize:()=>i(`None`,null),doUnwrap(){return{ok:!1,empty:!0}}},f=()=>d,ee=e=>e==null?f():u(e),te={from:e=>p(e),none:()=>f(),isSome:e=>e.isSome(),isNone:e=>e.isNone(),fromJSON:e=>{let t=JSON.parse(e);return t._tag===`Some`?u(t.value):f()},fromYAML:e=>{let t=e.split(`
4
+ `),n=t[0]?.split(`: `)[1],r=t[1]?.split(`: `)[1];if(!n||!r)return f();let i=r===`null`?null:JSON.parse(r);return n===`Some`?u(i):f()},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return te.fromJSON(t)}},p=t(ee,te),m=Set,h=e=>{let t=new m(e),n={_tag:`Set`,[Symbol.iterator]:()=>t[Symbol.iterator](),add:e=>h([...t,e]),remove:e=>{let n=new m(t);return n.delete(e),h(n)},contains:e=>t.has(e),has:e=>t.has(e),map:e=>h(Array.from(t).map(e)),ap:e=>{let n=new m;for(let r of t)for(let t of e)n.add(t(r));return h(n)},flatMap:e=>{let n=new m;for(let r of t)for(let t of e(r))n.add(t);return h(n)},flatMapAsync:async e=>{let n=new m;for(let r of t){let t=await e(r);for(let e of t)n.add(e)}return h(n)},fold:(e,n)=>{if(t.size===0)return e();let r=Array.from(t);if(r.length===0)return e();let i=r[0];return i===void 0?e():n(i)},foldLeft:e=>n=>{let r=e;for(let e of t)r=n(r,e);return r},foldRight:e=>n=>Array.from(t).reduceRight((e,t)=>n(t,e),e),get size(){return t.size},get isEmpty(){return t.size===0},reduce:e=>{let n=Array.from(t);if(n.length===0)throw Error(`Cannot reduce empty Set`);return n.reduce(e)},reduceRight:e=>{let n=Array.from(t);if(n.length===0)throw Error(`Cannot reduceRight empty Set`);return n.reduceRight(e)},count:e=>{let n=0;for(let r of t)e(r)&&n++;return n},find:e=>{for(let n of t)if(e(n))return p(n);return p(null)},exists:e=>{for(let n of t)if(e(n))return!0;return!1},forEach:e=>{t.forEach(e)},filter:e=>{let n=new m;for(let r of t)e(r)&&n.add(r);return h(n)},filterNot:e=>{let n=new m;for(let r of t)e(r)||n.add(r);return h(n)},drop:e=>h(Array.from(t).slice(e)),dropRight:e=>h(Array.from(t).slice(0,-e)),dropWhile:e=>{let n=Array.from(t),r=n.findIndex(t=>!e(t));return h(r===-1?[]:n.slice(r))},flatten:()=>{let e=new m;for(let n of t)if(Array.isArray(n))for(let t of n)e.add(t);else if(n&&typeof n==`object`&&Symbol.iterator in n)for(let t of n)e.add(t);else e.add(n);return h(e)},get head(){return Array.from(t)[0]},get headOption(){let e=Array.from(t)[0];return p(e)},toList:()=>S(Array.from(t)),toSet:()=>n,toArray:()=>Array.from(t),toString:()=>`Set(${Array.from(t).toString()})`,toValue:()=>({_tag:`Set`,value:Array.from(t)}),pipe:e=>e(Array.from(t)),serialize:()=>i(`Set`,Array.from(t))};return n},ne=e=>h(e),re={fromJSON:e=>ie(JSON.parse(e).value),fromYAML:e=>{let t=e.split(`
5
+ `)[1]?.split(`: `)[1];return ie(t?JSON.parse(t):[])},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return re.fromJSON(t)}},ie=t(ne,re),ae=e=>{let t=e;return{get(){return t},set(e){t=e},update(e){t=e(t)},getAndSet(e){let n=t;return t=e,n},updateAndGet(e){return t=e(t),t},getAndUpdate(e){let n=t;return t=e(t),n},compareAndSet(e,n){return t===e?(t=n,!0):!1},modify(e){let[n,r]=e(t);return t=n,r}}},g=t(ae,{of:e=>ae(e)}),oe=(e=0)=>{let t=g(e),n=e;return{get:()=>t.get(),set:e=>t.set(e),increment:()=>t.updateAndGet(e=>e+1),decrement:()=>t.updateAndGet(e=>e-1),reset:()=>t.set(n),compareAndSet:(e,n)=>t.compareAndSet(e,n)}},se=()=>{let e=g([]);return{add:t=>e.update(e=>[...e,t]),addAll:t=>e.update(e=>[...e,...t]),build:()=>e.get(),clear:()=>e.set([]),size:()=>e.get().length}},_=e=>{let t={_tag:`LazyList`,[Symbol.iterator]:()=>e[Symbol.iterator](),map:t=>_((function*(){for(let n of e)yield t(n)})()),flatMap:t=>_((function*(){for(let n of e)yield*t(n)})()),filter:t=>_((function*(){for(let n of e)t(n)&&(yield n)})()),take:t=>_((function*(){let n=oe(0);for(let r of e){if(n.get()>=t)break;yield r,n.increment()}})()),drop:t=>_((function*(){let n=oe(0);for(let r of e)n.get()>=t&&(yield r),n.increment()})()),takeWhile:t=>_((function*(){for(let n of e){if(!t(n))break;yield n}})()),dropWhile:t=>_((function*(){let n=g(!0);for(let r of e)n.get()&&t(r)||(n.set(!1),yield r)})()),concat:t=>_((function*(){yield*e,yield*t})()),zip:t=>_((function*(){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let e=n.next(),t=r.next();if(e.done||t.done)break;yield[e.value,t.value]}})()),toList:()=>S(Array.from(e)),toArray:()=>Array.from(e),forEach:t=>{for(let n of e)t(n)},reduce:(t,n)=>{let r=g(n);for(let n of e)r.set(t(r.get(),n));return r.get()},find:t=>{for(let n of e)if(t(n))return p(n);return p.none()},some:t=>{for(let n of e)if(t(n))return!0;return!1},every:t=>{for(let n of e)if(!t(n))return!1;return!0},count:()=>{let t=oe(0);for(let n of e)t.increment();return t.get()},first:()=>{let t=e[Symbol.iterator]().next();return t.done?p.none():p(t.value)},last:()=>{let t=g(void 0),n=g(!1);for(let r of e)t.set(r),n.set(!0);return n.get()?p(t.get()):p.none()},fold:(t,n)=>{let r=e[Symbol.iterator]().next();return r.done?t():n(r.value)},foldLeft:t=>n=>{let r=g(t);for(let t of e)r.set(n(r.get(),t));return r.get()},foldRight:t=>n=>Array.from(e).reduceRight((e,t)=>n(t,e),t),pipe:e=>e(t),serialize:()=>{let t=Array.from(e);return{toJSON:()=>JSON.stringify({_tag:`LazyList`,value:t}),toYAML:()=>`_tag: LazyList\nvalue: ${r(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`LazyList`,value:t})).toString(`base64`)}},toString:()=>{let t=[],n=oe(0),r=g(!1);for(let i of e)if(n.get()<10)t.push(i),n.increment();else{r.set(!0);break}let i=t.map(e=>String(e)).join(`, `);return r.get()?`LazyList(${i}, ...)`:`LazyList(${i})`}};return t},ce=t(e=>_(e),{empty:()=>_([]),of:e=>_([e]),from:(...e)=>_(e),iterate:(e,t)=>_((function*(){let n=g(e);for(;;)yield n.get(),n.set(t(n.get()))})()),generate:e=>_((function*(){for(;;)yield e()})()),range:(e,t,n=1)=>_((function*(){if(n===0)throw Error(`Step cannot be zero`);let r=g(e);if(n>0)for(;r.get()<t;)yield r.get(),r.set(r.get()+n);else for(;r.get()>t;)yield r.get(),r.set(r.get()+n)})()),repeat:(e,t)=>_((function*(){if(t===void 0)for(;;)yield e;else{let n=oe(0);for(;n.get()<t;)yield e,n.increment()}})()),cycle:e=>_((function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t})())}),v=e=>({_tag:`Success`,error:void 0,isSuccess(){return!0},isFailure(){return!1},orElse:t=>e,orThrow:t=>e,or:t=>v(e),orNull:()=>e,orUndefined:()=>e,toEither:t=>C(e),map:t=>b(()=>t(e)),ap:t=>t.map(t=>t(e)),flatMap:t=>t(e),flatMapAsync:async t=>t(e),fold:(t,n)=>n(e),match:t=>t.Success(e),foldLeft:t=>n=>n(t,e),foldRight:t=>n=>n(e,t),toString:()=>`Success(${r(e)})`,toPromise:()=>Promise.resolve(e),toValue:()=>({_tag:`Success`,value:e}),toOption:()=>u(e),toList:()=>S([e]),toTry:()=>v(e),pipe:t=>t(e),serialize:()=>i(`Success`,e),get size(){return 1},get isEmpty(){return!1},contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?p(e):p(void 0),exists:t=>t(e),forEach:t=>t(e),doUnwrap(){return{ok:!0,value:e}}}),y=e=>({_tag:`Failure`,error:e,isSuccess(){return!1},isFailure(){return!0},orElse:e=>e,orThrow:t=>{throw t??e},or:e=>e,orNull:()=>null,orUndefined:()=>void 0,toEither:t=>w(e),map:t=>y(e),ap:t=>y(e),flatMap:t=>y(e),flatMapAsync:t=>Promise.resolve(y(e)),fold:(t,n)=>t(e),match:t=>t.Failure(e),foldLeft:e=>t=>e,foldRight:e=>t=>e,toString:()=>`Failure(${r(e)}))`,toPromise:()=>Promise.reject(e),toValue:()=>({_tag:`Failure`,value:e}),toOption:()=>f(),toList:()=>S([]),toTry:()=>y(e),pipe:t=>{throw e},serialize:()=>a({_tag:`Failure`,error:e.message,stack:e.stack}),get size(){return 0},get isEmpty(){return!0},contains:e=>!1,reduce:e=>{throw Error(`Cannot reduce a Failure`)},reduceRight:e=>{throw Error(`Cannot reduceRight a Failure`)},count:e=>0,find:e=>p(null),exists:e=>!1,forEach:e=>{},doUnwrap(){return{ok:!1,empty:!1,error:e}}}),le=e=>{try{return v(e())}catch(e){return y(e instanceof Error?e:Error(String(e)))}},ue={isSuccess:e=>e.isSuccess(),isFailure:e=>e.isFailure(),fromJSON:e=>{let t=JSON.parse(e);if(t._tag===`Success`)return v(t.value);{let e=Error(t.error);return t.stack&&(e.stack=t.stack),y(e)}},fromYAML:e=>{let t=e.split(`
6
+ `),n=t[0]?.split(`: `)[1];if(!n)return y(Error(`Invalid YAML format for Try`));if(n===`Success`){let e=t[1]?.split(`: `)[1];return e?v(JSON.parse(e)):y(Error(`Invalid YAML format for Try Success`))}else{let e=t[1]?.split(`: `)[1];if(!e)return y(Error(`Invalid YAML format for Try Failure`));let n=t[2]?.split(`: `),r=n&&n.length>1?n.slice(1).join(`: `):void 0,i=Error(e);return r&&(i.stack=r),y(i)}},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return ue.fromJSON(t)}},b=t(le,ue);function de({_tag:e,impl:t}){return{...t,_tag:e}}function fe(e,t){return!e||typeof e!=`object`||!(`_tag`in e)?!1:t?e._tag===t:!0}const x=e=>{let t=Array.from(e??[]),n={_tag:`List`,[Symbol.iterator]:()=>t[Symbol.iterator](),get size(){return t.length},get length(){return t.length},map:e=>x(t.map(e)),ap:e=>x(t.flatMap(t=>Array.from(e).map(e=>e(t)))),flatMap:e=>x(t.flatMap(t=>Array.from(e(t)))),flatMapAsync:async e=>x((await Promise.all(t.map(async t=>await e(t)))).flatMap(e=>Array.from(e))),forEach:e=>t.forEach(e),contains:e=>t.includes(e),count:e=>t.filter(e).length,exists:e=>t.some(e),filter:e=>x(t.filter(e)),filterNot:e=>x(t.filter(t=>!e(t))),filterType:e=>x(t.filter(t=>fe(t,e))),find:(e,n)=>p(t.find(t=>e(t)&&(n?fe(t,n):!0))),get head(){return t[0]},get headOption(){return t.length>0?p(t[0]):f()},get isEmpty(){return t.length===0},toArray:()=>[...t],reduce:e=>t.reduce(e),reduceRight:e=>t.reduceRight(e),fold:(e,n)=>{if(t.length===0)return e();let r=t[0];return n(r)},foldLeft:e=>n=>t.reduce(n,e),foldRight:e=>n=>t.reduceRight((e,t)=>n(t,e),e),match:e=>t.length===0?e.Empty():e.NonEmpty([...t]),remove:e=>x(t.filter(t=>t!==e)),removeAt:e=>e<0||e>=t.length?n:x([...t.slice(0,e),...t.slice(e+1)]),add:e=>x([...t,e]),get:e=>p(t[e]),concat:e=>x([...t,...e.toArray()]),drop:e=>x(t.slice(e)),dropRight:e=>x(t.slice(0,-e)),dropWhile:e=>x(t.slice(t.findIndex(t=>!e(t)))),flatten:()=>x(t.flatMap(e=>Array.isArray(e)?e:[e])),toList:()=>n,toSet:()=>ie(t),toOption:()=>t.length>0?p(t[0]):f(),toEither:e=>t.length>0?C(t[0]):w(e),toTry:()=>t.length>0?b(()=>t[0]):b(()=>{throw Error(`Empty list`)}),toString:()=>`List(${r(t)})`,toValue:()=>({_tag:`List`,value:t}),pipe:e=>e([...t]),serialize:()=>i(`List`,t),doUnwrap(){return t.length===0?{ok:!1,empty:!0}:{ok:!0,value:t[0]}}};return n},pe=e=>x(e),me={fromJSON:e=>S(JSON.parse(e).value),fromYAML:e=>{let t=e.split(`
7
+ `)[1]?.split(`: `)[1];return S(t?JSON.parse(t):[])},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return me.fromJSON(t)}},S=t(pe,me),he=e=>({_tag:`Right`,value:e,isLeft(){return!1},isRight(){return!0},orElse:t=>e,orThrow:()=>e,or:t=>C(e),orNull:()=>e,orUndefined:()=>e,map:t=>C(t(e)),ap:t=>t._tag===`Right`?C(t.value(e)):w(t.value),mapAsync:t=>t(e).then(e=>C(e)).catch(e=>Promise.resolve(w(e))),merge:t=>t.isLeft()?w(t.value):C([e,t.value]),flatMap:t=>t(e),flatMapAsync:t=>t(e).catch(e=>w(e)),toOption:()=>u(e),toList:()=>S([e]),toEither:t=>C(e),toTry:()=>b(()=>e),toJSON(){return{_tag:`Right`,value:e}},toString:()=>`Right(${r(e)})`,*[Symbol.iterator](){yield e},*yield(){yield e},traverse:t=>{let n=t(e);return n.isLeft()?w(n.value):C([n.value])},*lazyMap(t){yield C(t(e))},tap:t=>(t(e),C(e)),tapLeft:t=>C(e),mapLeft:t=>C(e),bimap:(t,n)=>C(n(e)),fold:(t,n)=>n(e),foldLeft:t=>n=>n(t,e),foldRight:t=>n=>n(e,t),match:t=>t.Right(e),swap:()=>w(e),toPromise:()=>Promise.resolve(e),toValue:()=>({_tag:`Right`,value:e}),pipeEither:(t,n)=>n(e),pipe:t=>t(e),serialize:()=>i(`Right`,e),get size(){return 1},get isEmpty(){return!1},contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?u(e):f(),exists:t=>t(e),forEach:t=>t(e),doUnwrap(){return{ok:!0,value:e}}}),ge=e=>({_tag:`Left`,value:e,isLeft(){return!0},isRight(){return!1},orElse:e=>e,orThrow:t=>{throw t??e},or:e=>e,orNull:()=>null,orUndefined:()=>void 0,map:t=>w(e),ap:t=>w(e),mapAsync:t=>Promise.resolve(w(e)),merge:t=>w(e),flatMap:t=>w(e),flatMapAsync:t=>Promise.resolve(w(e)),toOption:()=>f(),toList:()=>S(),toEither:e=>w(e),toTry:()=>b(()=>{throw Error(String(e))}),toJSON(){return{_tag:`Left`,value:e}},toString:()=>`Left(${r(e)})`,*[Symbol.iterator](){},*yield(){},traverse:t=>w(e),*lazyMap(t){yield w(e)},tap:t=>w(e),tapLeft:t=>(t(e),w(e)),mapLeft:t=>w(t(e)),bimap:(t,n)=>w(t(e)),fold:(t,n)=>t(e),foldLeft:e=>t=>e,foldRight:e=>t=>e,match:t=>t.Left(e),swap:()=>C(e),toPromise:()=>Promise.reject(e),toValue:()=>({_tag:`Left`,value:e}),pipeEither:(t,n)=>t(e),pipe:t=>t(e),serialize:()=>i(`Left`,e),get size(){return 0},get isEmpty(){return!0},contains:e=>!1,reduce:e=>{throw Error(`Cannot reduce a Left`)},reduceRight:e=>{throw Error(`Cannot reduceRight a Left`)},count:e=>0,find:e=>f(),exists:e=>!1,forEach:e=>{},doUnwrap(){return{ok:!1,empty:!1,error:e}}}),C=e=>he(e),w=e=>ge(e),_e=e=>e.isRight(),ve=e=>e.isLeft(),ye=(e,t)=>{try{return C(e())}catch(e){return w(t(e))}},be=e=>he(e);console.assert(be);const xe=e=>ge(e);console.assert(xe);const Se=async(e,t)=>{try{return C(await e())}catch(e){return w(t(e))}},Ce=(e,t)=>t?C(e):w(e),we={left:e=>w(e),right:e=>C(e),isRight:e=>e.isRight(),isLeft:e=>e.isLeft(),sequence:e=>e.reduce((e,t)=>e.isLeft()?e:t.isLeft()?w(t.value):e.map(e=>[...e,t.value]),C([])),traverse:(e,t)=>we.sequence(e.map(t)),fromNullable:(e,t)=>e==null?w(t):C(e),fromPredicate:(e,t,n)=>t(e)?C(e):w(n),ap:(e,t)=>e.flatMap(e=>t.map(e)),fromPromise:async(e,t)=>{try{return C(await e)}catch(e){return w(t(e))}},fromJSON:e=>{let t=JSON.parse(e);return t._tag===`Right`?C(t.value):w(t.value)},fromYAML:e=>{let t=e.split(`
8
+ `),n=t[0]?.split(`: `)[1],r=t[1]?.split(`: `)[1];if(!n||!r)throw Error(`Invalid YAML format for Either`);let i=JSON.parse(r);return n===`Right`?C(i):w(i)},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return we.fromJSON(t)}},Te=t(Ce,we);function T(t,n){return{brand:t,validate:n,of:r=>n(r)?p(e(t,r)):p.none(),from:r=>n(r)?C(e(t,r)):w(`Invalid ${t}: validation failed`),unsafeOf:r=>{if(!n(r))throw Error(`Invalid ${t}: validation failed`);return e(t,r)},is:e=>{try{return n(e)}catch{return!1}},unwrap:e=>e,refine:(e,t)=>T(e,e=>n(e)&&t(e))}}const Ee=T(`PositiveNumber`,e=>e>0),De=T(`NonNegativeNumber`,e=>e>=0),Oe=T(`IntegerNumber`,e=>Number.isInteger(e)),ke=Ee.refine(`PositiveInteger`,e=>Number.isInteger(e)),Ae=T(`NonEmptyString`,e=>e.length>0),je=T(`EmailAddress`,e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),Me=T(`UrlString`,e=>{try{return new URL(e),!0}catch{return!1}}),Ne=T(`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)),Pe=T(`ISO8601Date`,e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function Fe(e,t,n){return T(e,e=>e>=t&&e<=n)}function Ie(e,t,n){return T(e,e=>e.length>=t&&e.length<=n)}function Le(e,t){return T(e,e=>t.test(e))}const Re=e=>typeof e==`function`&&Object.keys(e).length>0,ze=e=>{let t=e=>typeof e==`function`?e():e,n={when:(r,i)=>e.resolved?n:r?ze({resolved:!0,value:t(i)}):n,elseWhen:(r,i)=>e.resolved?n:r?ze({resolved:!0,value:t(i)}):n,else:n=>e.resolved?e.value:t(n),orThrow:()=>{if(!e.resolved)throw Error(`Conditional expression has no matching condition`);return e.value}};return n},Be=()=>ze({resolved:!1}),Ve=t(Be,{of:()=>Be(),match:e=>t=>{let n=t[e];if(n===void 0)throw Error(`No case defined for value: ${String(e)}`);return typeof n==`function`?n():n},lazy:()=>{let e={resolved:!1},t={when:(n,r)=>(e.resolved||n()&&(e.resolved=!0,e.value=r()),t),elseWhen:(n,r)=>(e.resolved||n()&&(e.resolved=!0,e.value=r()),t),else:t=>e.resolved?e.value:t()};return t}}),E=(e,t)=>t===e?!0:typeof t==`function`?t(e):t&&typeof t==`object`&&`_`in t?t._(e):typeof t==`object`&&t&&typeof e==`object`&&e?Object.entries(t).every(([t,n])=>{let r=e[t];return E(r,n)}):!1,D=e=>{let t=(e,t)=>typeof e==`function`?e(t):e,n=()=>{for(let{pattern:n,result:r}of e.patterns)if(E(e.value,n))return{matched:!0,result:t(r,e.value)};return{matched:!1}},r={case:(n,i)=>{if(e.resolved)return r;let a={...e,patterns:[...e.patterns,{pattern:n,result:i}]};return E(e.value,n)?D({...a,resolved:!0,result:t(i,e.value)}):D(a)},caseValue:(t,n)=>{if(e.resolved)return r;if(e.value===t){let t=typeof n==`function`?n():n;return D({...e,resolved:!0,result:t})}return r},caseValues:(t,n)=>{if(e.resolved)return r;if(t.includes(e.value)){let t=typeof n==`function`?n():n;return D({...e,resolved:!0,result:t})}return r},when:(e,t)=>r.case(e,t),caseAny:(n,i)=>{if(e.resolved)return r;for(let r of n)if(E(e.value,r))return D({...e,resolved:!0,result:t(i,e.value),patterns:[...e.patterns,{pattern:r,result:i}]});return D({...e,patterns:[...e.patterns,...n.map(e=>({pattern:e,result:i}))]})},default:n=>e.resolved?e.result:t(n,e.value),exhaustive:()=>{let t=n();if(!t.matched)throw Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(e.value)}`);return t.result},orThrow:t=>{let r=n();if(!r.matched)throw Error(t??`No matching pattern for value: ${JSON.stringify(e.value)}`);return r.result},toOption:()=>{let e=n();return e.matched?p(e.result):p.none()}};return r},He=t(e=>D({value:e,resolved:!1,patterns:[]}),{exhaustive:e=>t=>{let n=e[t];if(n===void 0)throw Error(`No case defined for value: ${String(t)}`);return n},partial:e=>({withDefault:t=>n=>{let r=e[n];return r===void 0?typeof t==`function`?t(n):t:typeof r==`function`?r(n):r}}),withGuards:e=>({withDefault:t=>n=>{for(let[t,r]of e)if(t(n))return typeof r==`function`?r(n):r;return typeof t==`function`?t(n):t}}),struct:()=>{let e=[],t={case:(n,r)=>(e.push({pattern:n,handler:r}),t),build:()=>t=>{for(let{pattern:n,handler:r}of e)if(E(t,n))return r(t);throw Error(`No matching pattern for value: ${JSON.stringify(t)}`)}};return t},builder:()=>{let e=[],t,n={case:(t,r)=>(e.push({pattern:t,result:r}),n),when:(t,r)=>(e.push({pattern:t,result:r}),n),default:n=>(t=n,{build:()=>n=>{for(let{pattern:t,result:r}of e)if(E(n,t))return typeof r==`function`?r(n):r;if(t!==void 0)return typeof t==`function`?t(n):t;throw Error(`No matching pattern for value: ${JSON.stringify(n)}`)}})};return n}});function Ue(e,t){return{...de({_tag:e,impl:t}),toString(){return`${e}()`},doUnwrap(){if(`isSome`in t&&`isNone`in t){if(typeof t.isSome==`function`&&t.isSome()&&`get`in t&&typeof t.get==`function`)return{ok:!0,value:t.get()};if(typeof t.isNone==`function`&&t.isNone())return{ok:!1,empty:!0}}if(`isLeft`in t&&`isRight`in t){if(typeof t.isRight==`function`&&t.isRight()&&`value`in t)return{ok:!0,value:t.value};if(typeof t.isLeft==`function`&&t.isLeft()&&`value`in t)return{ok:!1,empty:!1,error:t.value}}if(`isSuccess`in t&&`isFailure`in t){if(typeof t.isSuccess==`function`&&t.isSuccess()&&`get`in t&&typeof t.get==`function`)return{ok:!0,value:t.get()};if(typeof t.isFailure==`function`&&t.isFailure()&&`getError`in t&&typeof t.getError==`function`)return{ok:!1,empty:!1,error:t.getError()}}if(`isEmpty`in t&&`head`in t){if(typeof t.isEmpty==`function`&&t.isEmpty())return{ok:!1,empty:!0};if(typeof t.head==`function`)return{ok:!0,value:t.head()};if(`head`in t)return{ok:!0,value:t.head}}return{ok:!0,value:t}}}}const We=`Throwable`;var Ge=class e extends Error{constructor(e,t){super(e,{cause:t?.cause}),this._tag=We,this.name=t?.taskInfo?.name??We,Object.defineProperties(this,{_tag:{value:We,writable:!1,configurable:!1},data:{value:t?.data,writable:!1,configurable:!1},taskInfo:{value:t?.taskInfo,writable:!1,configurable:!1},name:{value:t?.taskInfo?.name??We,writable:!1,configurable:!1}}),t?.cause&&Object.defineProperty(this,`cause`,{value:t.cause,writable:!1,configurable:!1}),t?.stack?this.stack=t.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}static apply(t,n,r){if(t instanceof Error){let i=new e(t.message,{data:n,cause:t.cause??void 0,stack:t.stack??void 0,taskInfo:r});for(let e of Object.keys(t))if(!(e in i)){let n=i;n[e]=t[e]}return i}if(t&&typeof t==`object`){let i=t,a=new e(typeof i.message==`string`?i.message:typeof i.error==`string`?i.error:`Object error: ${JSON.stringify(i,Object.getOwnPropertyNames(i).filter(e=>i[e]!==void 0))}`,{data:n??i,taskInfo:r});for(let e of Object.keys(i))if(!(e in a)){let t=a;t[e]=i[e]}return a}if(typeof t==`function`){let i=t.name??`anonymous function`,a=t.toString().substring(0,100)+(t.toString().length>100?`...`:``);return new e(`Function error: ${i}`,{data:n??{functionType:typeof t,functionName:i,functionString:a},taskInfo:r})}let i=typeof t,a=t===null?`null`:t===void 0?`undefined`:String(t);if(i===`number`){let a=t;return new e(Number.isNaN(a)?`Number error: NaN`:Number.isFinite(a)?`Number error: ${a}`:`Number error: ${a>0?`Infinity`:`-Infinity`}`,{data:n??{errorType:i,errorValue:a,originalError:t},taskInfo:r})}if(i===`bigint`)return new e(`BigInt error: ${t}n`,{data:n??{errorType:i,errorValue:String(t),originalError:t},taskInfo:r});if(i===`boolean`)return new e(`Boolean error: ${t}`,{data:n??{errorType:i,errorValue:t,originalError:t},taskInfo:r});if(i===`symbol`){let a=t.description??`unnamed symbol`;return new e(`Symbol error: Symbol(${a})`,{data:n??{errorType:i,symbolDescription:a,originalError:t},taskInfo:r})}return new e(typeof t==`string`?t:`${i.charAt(0).toUpperCase()+i.slice(1)} error: ${a}`,{data:n??{errorType:i,errorValue:a,originalError:t},taskInfo:r})}};const O=e=>{let t=new Promise((t,n)=>{try{e(t,n)}catch(e){n(e)}});return{_tag:`FPromise`,map:e=>O((n,r)=>{t.then(t=>{try{n(e(t))}catch(e){r(e)}}).catch(r)}),flatMap:e=>O((n,r)=>{t.then(t=>{try{let i=e(t);`_tag`in i&&i._tag===`FPromise`?i.then(n,r):Promise.resolve(i).then(n,r)}catch(e){r(e)}}).catch(r)}),flatMapAsync:async e=>{let n=e(await t);return n instanceof Promise?n:new Promise((e,t)=>{n.then(e,t)})},tap:e=>O((n,r)=>{t.then(t=>{try{e(t),n(t)}catch(e){r(e)}}).catch(r)}),mapError:e=>O((n,r)=>{t.then(n).catch(t=>{try{r(e(t,{originalError:t,stack:t instanceof Error?t.stack:void 0,timestamp:Date.now()}))}catch(e){r(e)}})}),tapError:e=>O((n,r)=>{t.then(n).catch(t=>{try{e(t),r(t)}catch(e){r(e)}})}),recover:e=>O(n=>{t.then(n).catch(()=>n(e))}),recoverWith:e=>O(n=>{t.then(n).catch(t=>{try{n(e(t))}catch{n(null)}})}),recoverWithF:e=>O((n,r)=>{t.then(n).catch(t=>{try{e(t).then(n,r)}catch(e){r(e)}})}),filterError:(e,n)=>O((r,i)=>{t.then(r).catch(t=>{if(e(t))try{n(t).then(r,i)}catch(e){i(e)}else i(t)})}),logError:e=>O((n,r)=>{t.then(n).catch(t=>{try{e(t,{originalError:t,stack:t instanceof Error?t.stack:void 0,timestamp:Date.now()})}catch{}finally{r(t)}})}),then:(e,n)=>t.then(e,n),toPromise:()=>t,toEither:async()=>{try{return C(await t)}catch(e){return w(e)}},fold:(e,n)=>O((r,i)=>{t.then(e=>{try{r(n(e))}catch(e){i(e)}}).catch(t=>{try{r(e(t))}catch(e){i(e)}})})}},Ke={resolve:e=>O(t=>t(e)),reject:e=>O((t,n)=>n(e)),from:e=>O((t,n)=>{e.then(t).catch(n)}),fromEither:e=>e.isRight()?O(t=>t(e.value)):O((t,n)=>n(e.value)),all:e=>O((t,n)=>{Promise.all(e.map(e=>e instanceof Promise?e:Promise.resolve(e))).then(t).catch(n)}),allSettled:e=>O(t=>{let n=[],r=0;if(e.length===0){t([]);return}e.forEach((i,a)=>{Promise.resolve(i).then(i=>{n[a]=C(i),r++,r===e.length&&t(n)}).catch(i=>{n[a]=w(i),r++,r===e.length&&t(n)})})}),race:e=>O((t,n)=>{Promise.race(e).then(t,n)}),any:e=>O((t,n)=>{if(typeof Promise.any==`function`)Promise.any(e).then(t,n);else{let r=0,i=[];if(e.length===0){n(AggregateError([],`All promises were rejected`));return}e.forEach((a,o)=>{Promise.resolve(a).then(t).catch(t=>{i[o]=t,r++,r===e.length&&n(AggregateError(i,`All promises were rejected`))})})}}),retryWithBackoff:(e,t)=>{let{maxRetries:n,baseDelay:r=100,shouldRetry:i=()=>!0}=t;return O((t,a)=>{let o=0,s=()=>{e().toPromise().then(t).catch(e=>{if(o++,o<=n&&i(e,o)){let e=r*2**(o-1);setTimeout(s,e)}else a(e)})};s()})}},qe=t(O,Ke);function Je(e){return e instanceof Error&&typeof e==`object`&&e._tag===`Throwable`}const Ye=(e,t)=>{if(e.isRight())return A(e.orThrow(),t);if(e.isLeft())return k(e.fold(e=>e,()=>Error(`Unexpected right value`)),void 0,t);throw Error(`Unrecognized task outcome`)},k=(e,t,n)=>{let i={name:n?.name??`Task`,description:n?.description??``},a=Ge.apply(e,t,i),o={...Ue(`Err`,{error:a,meta:i}),_tag:`Err`,_meta:i,value:void 0,error:a,isSuccess(){return!1},isFailure(){return!0},isOk(){return!1},isErr(){return!0},map:e=>k(a,t,n),flatMap:e=>k(a,t,n),ap:e=>k(a,t,n),mapAsync:e=>Promise.resolve(k(a,t,n)),flatMapAsync:e=>Promise.resolve(k(a,t,n)),mapError:e=>k(e(a),t,n),recover:e=>A(e,n),recoverWith:e=>A(e(a),n),orThrow:e=>{throw e??a},orElse:e=>e,or:e=>e,orNull:()=>null,orUndefined:()=>void 0,toEither:()=>w(a),toTry:()=>b(()=>{throw a}),toOption:()=>f(),toList:()=>S([]),fold:(e,t)=>e(a),match:e=>e.Err(a),foldLeft:e=>t=>e,foldRight:e=>t=>e,size:0,isEmpty:!0,contains:e=>!1,reduce:e=>{throw Error(`Cannot reduce empty Err`)},reduceRight:e=>{throw Error(`Cannot reduceRight empty Err`)},count:e=>0,find:e=>f(),exists:e=>!1,forEach:e=>{},toPromise:()=>Promise.reject(a),doUnwrap(){return{ok:!1,empty:!1,error:a}},serialize:()=>({toJSON:()=>r({_tag:`Err`,error:a.message??a.toString()})??`{}`,toYAML:()=>`_tag: Err\nerror: ${a.message??a.toString()}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`Err`,error:a.message??a.toString()})).toString(`base64`)}),pipe:e=>e(o)};return o},A=(e,t)=>{let n={name:t?.name??`Task`,description:t?.description??``},i={...Ue(`Ok`,{value:e,meta:n}),_tag:`Ok`,_meta:n,value:e,error:void 0,isSuccess(){return!0},isFailure(){return!1},isOk(){return!0},isErr(){return!1},map:n=>A(n(e),t),flatMap:n=>{let r=n(e);return r&&typeof r==`object`&&`isLeft`in r&&`isRight`in r?Ye(r,t):r},ap:n=>n.isOk()?A(n.value(e),t):k(n.error,void 0,t),mapAsync:async n=>A(await n(e),t),flatMapAsync:async t=>await t(e),mapError:n=>A(e,t),recover:n=>A(e,t),recoverWith:n=>A(e,t),orThrow:t=>e,orElse:t=>e,or:n=>A(e,t),orNull:()=>e,orUndefined:()=>e,toEither:()=>C(e),toTry:()=>b(()=>e),toOption:()=>u(e),toList:()=>S([e]),fold:(t,n)=>n(e),match:t=>t.Ok(e),foldLeft:t=>n=>n(t,e),foldRight:t=>n=>n(e,t),size:1,isEmpty:!1,contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?u(e):f(),exists:t=>t(e),forEach:t=>t(e),toPromise:()=>Promise.resolve(e),doUnwrap(){return{ok:!0,value:e}},serialize:()=>({toJSON:()=>r({_tag:`Ok`,value:e})??`{}`,toYAML:()=>`_tag: Ok\nvalue: ${r(e)??`undefined`}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`Ok`,value:e})).toString(`base64`)}),pipe:e=>e(i)};return i},Xe=()=>{let e=new AbortController,t=se();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(e=>{try{e()}catch(e){console.error(`Error in cancellation callback:`,e)}}))}}},Ze=e=>{let t=e?.name??`Task`,n=e?.description??``,r={Async:(e,r=e=>e,i=()=>{},a)=>qe((o,s)=>{(async()=>{let s=g(!1),c=g(null),l=g(()=>{});if(a){if(a.isCancelled){try{await i()}catch(e){o(k(e,void 0,{name:t,description:n}));return}o(k(Error(`Task was cancelled before execution started`),void 0,{name:t,description:n}));return}a.onCancel(()=>{s.set(!0),c.set(Error(`Task was cancelled during execution`))}),l.set(()=>{})}try{let r=await e();try{await i()}catch(e){o(k(e,void 0,{name:t,description:n}));return}if(s.get()){c.get()?o(k(c.get(),void 0,{name:t,description:n})):o(k(Error(`Task was cancelled during execution`),void 0,{name:t,description:n}));return}if(r&&typeof r==`object`&&`_tag`in r){let e=r;e._tag===`Ok`||e._tag===`Err`?o(e):o(A(r,{name:t,description:n}))}else o(A(r,{name:t,description:n}))}catch(e){try{await i()}catch(e){o(k(e,void 0,{name:t,description:n}));return}if(s.get()){c.get()?o(k(c.get(),void 0,{name:t,description:n})):o(k(Error(`Task was cancelled during execution`),void 0,{name:t,description:n}));return}try{if(e instanceof Error&&Je(e)){let i=Error(`${t}: ${e.message}`),a=Ge.apply(i,void 0,{name:t,description:n});Object.defineProperty(a,`cause`,{value:e,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{r(e)}catch(e){console.error(`Error in error handler:`,e)}}),o(k(a,void 0,{name:t,description:n}))}else{let i=await r(e);if(i&&typeof i==`object`&&`_tag`in i){let e=i;e._tag===`Ok`||e._tag===`Err`?o(e):o(k(i,void 0,{name:t,description:n}))}else o(k(i,void 0,{name:t,description:n}))}}catch(e){o(k(e,void 0,{name:t,description:n}))}}finally{l.get()()}})().catch(e=>o(k(e,void 0,{name:t,description:n})))}),Sync:(e,r=e=>e,i=()=>{})=>{try{return A(e(),{name:t,description:n})}catch(e){return k(r(e),void 0,{name:t,description:n})}finally{i()}},AsyncWithProgress:(e,t,n=e=>e,i=()=>{},a)=>{let o=e=>{let n=Math.max(0,Math.min(100,e));n<=100&&t(n)};return r.Async(()=>e(o),n,i,a)}};return{...Ue(`Task`,r),_type:`Task`}},Qe={success:(e,t)=>A(e,t),fail:(e,t,n)=>k(e,t,n),ok:(e,t)=>A(e,t),err:(e,t,n)=>k(e,t,n),fromEither:(e,t)=>Ye(e,t),fromTry:(e,t)=>e.isSuccess()?A(e.orThrow(),t):k(e.fold(e=>e,()=>Error(`Unexpected success`)),void 0,t),getErrorChain:e=>{if(!e)return[];let t=se();t.add(e);let n=g(e);for(;n.get()&&n.get().cause;){let{cause:e}=n.get();if(e)t.add(e),n.set(e);else break;if(t.size()>100)break}return t.build()},formatErrorChain:(e,t)=>{let n=Qe.getErrorChain(e),r=t?.separator??`
9
+ `;return n.map((e,n)=>{if(!e)return`${n>0?`↳ `:``}Unknown error`;let{taskInfo:r}=e,i=t?.includeTasks&&r?.name?`[${r.name}] `:``,a=e.message??`No message`,o=g(`${n>0?`↳ `:``}${i}${a}`);return t?.includeStackTrace&&e.stack&&o.set(`${o.get()}\n${e.stack.split(`
10
+ `).slice(1).join(`
11
+ `)}`),o.get()}).join(r)},fromPromise:(e,t)=>(...n)=>j(t??{name:`PromiseTask`,description:`Task from Promise`}).Async(()=>e(...n),e=>e),toPromise:e=>new Promise((t,n)=>{e.isSuccess()?t(e.orThrow()):n(e.error)}),race:(e,t,n)=>j({name:n?.name??`TaskRace`,description:n?.description??`Race between multiple tasks`}).Async(async()=>{let n=se();e.forEach(e=>n.add(e));let r=g(void 0);if(typeof t==`number`&&t>0){let e=qe((e,n)=>{r.set(setTimeout(()=>{n(Error(`Task race timed out after ${t}ms`))},t))});n.add(e)}try{return await new Promise((e,t)=>{n.build().forEach(n=>{n.then(n=>{if(n&&typeof n==`object`&&`_tag`in n){let r=n;r._tag===`Ok`?e(r.orThrow()):r._tag===`Err`?t(r.error):e(n)}else e(n)},e=>t(e))})})}finally{r.get()&&clearTimeout(r.get())}},e=>e),fromNodeCallback:(e,t)=>{let n={name:t?.name??`NodeCallbackTask`,description:t?.description??`Task from Node.js callback function`};return(...t)=>j(n).Async(()=>new Promise((n,r)=>{try{e(...t,(e,t)=>{e?r(e):n(t)})}catch(e){r(e)}}),e=>e)},createCancellationTokenSource:Xe,cancellable:(e,t)=>{let n=Xe();return{task:j(t).Async(()=>e(n.token),e=>e,()=>{},n.token),cancel:()=>n.cancel()}},withProgress:(e,t=()=>{},n)=>{let r=Xe(),i=g(0),a=e=>{i.set(Math.max(0,Math.min(100,e))),t(i.get())};return{task:j(n).Async(()=>e(a,r.token),e=>e,()=>{},r.token),cancel:()=>r.cancel(),currentProgress:()=>i.get()}}},j=t(Ze,Qe);function $e(e){if(!e||typeof e!=`object`||!(`_tag`in e))return`unknown`;switch(e._tag){case`Some`:case`None`:return`Option`;case`Left`:case`Right`:return`Either`;case`List`:return`List`;case`Success`:case`Failure`:return`Try`;default:return`unknown`}}const et={Option:{of:e=>p(e),empty:()=>p.none()},Either:{of:e=>C(e),empty:e=>w(e)},List:{of:e=>S([e]),empty:()=>S([])},Try:{of:e=>b(()=>e),empty:e=>b(()=>{throw e??Error(`Try failed`)})}};function tt(e){let t=e(),n=null,r;function i(a){let o=t.next(a);if(o.done)return r?r.of(o.value):S([o.value]);let s=o.value;if(typeof s!=`object`||!s)throw Error(`Do-notation error: All yielded values must be monadic. Use yield* $(Option(value)), yield* $(Right(value)), etc. Raw values should be assigned directly without yielding.`);if(!n&&`_tag`in s&&(n=$e(s),n!==`unknown`&&n in et&&(r=et[n]),n===`List`))return nt(e);if(`doUnwrap`in s){let e=s.doUnwrap();if(!e.ok){if(!r)return S([]);if(!e.empty&&`error`in e){if(n===`Either`)return r.empty(e.error);if(n===`Try`)return r.empty(e.error instanceof Error?e.error:Error(String(e.error)))}return r.empty()}return i(e.value)}throw 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 i()}function nt(e){function t(e){if(typeof e!=`object`||!e||!(`doUnwrap`in e))return[e];let t=e;if(`toArray`in t){let e=t.toArray();return e.length===0?[]:e}let n=t.doUnwrap();return n.ok?[n.value]:[]}function n(r){let i=e(),a=[],o=[],s=0;function c(e){let l=i.next(e);if(l.done){a.push(l.value);return}if(s<r.length){let e=r[s];o.push(e),s++,c(e);return}let u=t(l.value);if(u.length!==0)if(u.length>1){let e=u.flatMap(e=>n([...o,e]));a.push(...e)}else o.push(u[0]),s++,c(u[0])}return c(void 0),a}return S(n([]))}async function rt(e){let t=e(),n=null,r;async function i(e){let a=await t.next(e);if(a.done)return r?r.of(a.value):S([a.value]);let o=await Promise.resolve(a.value);if(typeof o!=`object`||!o)return i(o);if(!n&&`_tag`in o&&(n=$e(o),n!==`unknown`&&n in et&&(r=et[n])),`doUnwrap`in o){let e=o.doUnwrap();if(!e.ok){if(!r)return S([]);if(!e.empty&&`error`in e){if(n===`Either`)return r.empty(e.error);if(n===`Try`)return r.empty(e.error instanceof Error?e.error:Error(String(e.error)))}return r.empty()}return i(e.value)}return i(o)}return i()}function it(e){return typeof e==`object`&&!!e&&`doUnwrap`in e&&typeof e.doUnwrap==`function`}function at(e){let t=e.doUnwrap();if(t.ok)return t.value;throw`error`in t?t.error:Error(`Cannot unwrap empty monad`)}function*ot(e){return yield e}const st=(e=`Cannot unwrap None in Do-notation`)=>{let t=Error(e),n=Object.create(Error.prototype);return n.message=t.message,n.stack=t.stack,n.name=`NoneError`,n},ct=(e,t=`Cannot unwrap Left in Do-notation`)=>{let n=Error(t),r=Object.create(Error.prototype);return r.message=n.message,r.stack=n.stack,r.name=`LeftError`,r.value=e,r},lt=(e=`Cannot unwrap empty List in Do-notation`)=>{let t=Error(e),n=Object.create(Error.prototype);return n.message=t.message,n.stack=t.stack,n.name=`EmptyListError`,n},ut=(e,t=`Cannot unwrap Failure in Do-notation`)=>{let n=Error(t),r=Object.create(Error.prototype);return r.message=n.message,r.stack=n.stack,r.name=`FailureError`,r.cause=e,r},dt={includeTasks:!0,includeStackTrace:!1,separator:`
12
+ `,includeData:!1,maxStackFrames:3,title:`Error`,colors:!1};function ft(e){let t=new WeakSet;return JSON.stringify(e,(e,n)=>{if(typeof n==`bigint`)return`${n.toString()}n`;if(typeof n==`object`&&n){if(t.has(n))return`[Circular Reference]`;t.add(n)}return e===`stack`&&typeof n==`string`?pt(n):n},2)}function pt(e){if(e===void 0||e===``)return``;let t=e.split(`
13
+ `);return[t[0],...t.slice(1).map(e=>e.trim())].join(`
14
+ `)}function mt(e,t){let n={...dt,...t},r=e instanceof Error?e:Ge.apply(e),i=j?.getErrorChain?j.getErrorChain(r):[r],a=`${n.colors?`\x1b[31m${n.title}:\x1b[0m ${r.message}`:`${n.title}: ${r.message}`}\n\n${i.map((e,t)=>{let r=` `.repeat(t),i=t>0?`↳ `:``,{taskInfo:a}=e,o=`${r}${i}${n.includeTasks&&a?.name?n.colors?`\x1b[36m[${a.name}]\x1b[0m `:`[${a.name}] `:``}${e.message}`;if(n.includeStackTrace&&e.stack){let t=pt(e.stack).split(`
15
+ `).slice(1),i=n.maxStackFrames??dt.maxStackFrames??3,a=t.slice(0,i).map(e=>`${r} ${n.colors?`\x1B[90m`:``}${e}${n.colors?`\x1B[0m`:``}`).join(`
16
+ `);o+=`\n${a}`,t.length>i&&(o+=`\n${r} ${n.colors?`\x1B[90m`:``}...${t.length-i} more stack frames${n.colors?`\x1B[0m`:``}`)}return o}).join(n.separator)}`;if(n.includeData){let{data:e}=r;if(e){let t=n.colors?`\n\n\x1b[33mContext:\x1b[0m\n${ft(e)}`:`\n\nContext:\n${ft(e)}`;a+=t}}return a}function ht(){return function(e){if(!e)return e;let t=e instanceof Error?e:Error(String(e)),n={message:t.message,name:t.name||`Error`,stack:t.stack?pt(t.stack):void 0};if(t.taskInfo&&(n.taskInfo=t.taskInfo),t.data&&(n.data=t.data),typeof j?.getErrorChain==`function`)try{let e=j.getErrorChain(t);e.length>1&&(n.errorChain=j.formatErrorChain(t,{includeTasks:!0}),n.structuredErrorChain=e.map(e=>({message:e.message,name:e.name,taskInfo:e.taskInfo,stack:e.stack?pt(e.stack):void 0})))}catch{}return Object.getOwnPropertyNames(t).forEach(e=>{n[e]||(n[e]=t[e])}),n}}const gt=e=>{let t=Error(e);return t.name=`ParseError`,t},M=(e,t,n,r)=>{let i=Ge.apply(t,n,{name:e,description:t});return Object.assign(i,{code:e,message:t,status:_t(e),context:n,timestamp:new Date().toISOString(),traceId:r?.traceId})},_t=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],N=Object.assign(M,{validation:(e,t,n)=>M(`VALIDATION_FAILED`,`Validation failed: ${e} ${n}`,{field:e,value:t,rule:n}),network:(e,t,n)=>M(`NETWORK_ERROR`,`Network error: ${t} ${e}${n?` (${n})`:``}`,{url:e,method:t,statusCode:n}),auth:(e,t)=>M(`AUTH_REQUIRED`,`Authentication required: ${e}${t?` (role: ${t})`:``}`,{resource:e,requiredRole:t}),notFound:(e,t)=>M(`NOT_FOUND`,`Not found: ${e} with id ${t}`,{resource:e,id:t}),permission:(e,t,n)=>M(`PERMISSION_DENIED`,`Permission denied: cannot ${e} ${t}`,{action:e,resource:t,userId:n}),rateLimit:(e,t,n)=>M(`RATE_LIMITED`,`Rate limit exceeded: ${e} requests per ${t}`,{limit:e,window:t,retryAfter:n}),internal:e=>M(`INTERNAL_ERROR`,`Internal server error: ${e}`,{errorId:e,timestamp:new Date().toISOString()}),badRequest:(e,t)=>M(`BAD_REQUEST`,`Bad request: ${e}`,{reason:e,expected:t}),conflict:(e,t)=>M(`CONFLICT`,`Conflict: ${e} already exists with value ${t}`,{resource:e,conflictingValue:t}),timeout:(e,t)=>M(`TIMEOUT`,`Request timeout: ${t} exceeded ${e}ms`,{duration:e,operation:t}),isTypedError:e=>typeof e==`object`&&!!e&&`code`in e&&`message`in e&&`status`in e&&`context`in e&&`_tag`in e&&e._tag===`Throwable`,hasCode:(e,t)=>e.code===t}),P={rule:e=>t=>{if(e===`email`)return typeof t!=`string`||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?w(N.validation(`value`,t,`must be a valid email`)):C(t);if(e===`url`)try{return new URL(String(t)),C(t)}catch{return w(N.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)?w(N.validation(`value`,t,`must be a valid UUID`)):C(t);if(e===`required`)return t==null||t===``?w(N.validation(`value`,t,`is required`)):C(t);if(e===`numeric`)return typeof t!=`number`&&!/^\d+$/.test(String(t))?w(N.validation(`value`,t,`must be numeric`)):C(t);if(e===`alpha`)return typeof t!=`string`||!/^[a-zA-Z]+$/.test(t)?w(N.validation(`value`,t,`must contain only letters`)):C(t);if(e===`alphanumeric`)return typeof t!=`string`||!/^[a-zA-Z0-9]+$/.test(t)?w(N.validation(`value`,t,`must be alphanumeric`)):C(t);if(e.startsWith(`min:`)){let n=Number(e.split(`:`)[1]),r=Number(t);return isNaN(r)||r<n?w(N.validation(`value`,t,`must be at least ${n}`)):C(t)}if(e.startsWith(`max:`)){let n=Number(e.split(`:`)[1]),r=Number(t);return isNaN(r)||r>n?w(N.validation(`value`,t,`must be at most ${n}`)):C(t)}if(e.startsWith(`minLength:`)){let n=Number(e.split(`:`)[1]);return String(t).length<n?w(N.validation(`value`,t,`must be at least ${n} characters`)):C(t)}if(e.startsWith(`maxLength:`)){let n=Number(e.split(`:`)[1]);return String(t).length>n?w(N.validation(`value`,t,`must be at most ${n} characters`)):C(t)}if(e.startsWith(`pattern:`)){let n=e.substring(8);return new RegExp(n).test(String(t))?C(t):w(N.validation(`value`,t,`must match pattern ${n}`))}if(e.startsWith(`in:`)){let n=e.substring(3).split(`,`);return n.includes(String(t))?C(t):w(N.validation(`value`,t,`must be one of: ${n.join(`, `)}`))}if(e.startsWith(`notIn:`)){let n=e.substring(6).split(`,`);return n.includes(String(t))?w(N.validation(`value`,t,`must not be one of: ${n.join(`, `)}`)):C(t)}if(e===`date`){let e=new Date(String(t));return isNaN(e.getTime())?w(N.validation(`value`,t,`must be a valid date`)):C(t)}if(e===`future`){let e=new Date(String(t));return isNaN(e.getTime())||e<=new Date?w(N.validation(`value`,t,`must be a future date`)):C(t)}if(e===`past`){let e=new Date(String(t));return isNaN(e.getTime())||e>=new Date?w(N.validation(`value`,t,`must be a past date`)):C(t)}return C(t)},combine:(...e)=>t=>{for(let n of e){let e=n(t);if(e.isLeft())return e}return C(t)},custom:(e,t)=>n=>e(n)?C(n):w(N.validation(`value`,n,t)),form:(e,t)=>{let n=[],r={};for(let[i,a]of Object.entries(e)){let e=t[i],o=a(e);if(o.isLeft()){let t=o.fold(e=>e,()=>{throw Error(`Should not be left`)}),r=N.validation(i,e,t.context.rule);n.push(r)}else r[i]=o.orThrow()}return n.length>0?w(S(n)):C(r)}},vt={...P,validators:{email:P.rule(`email`),url:P.rule(`url`),uuid:P.rule(`uuid`),required:P.rule(`required`),numeric:P.rule(`numeric`),positiveNumber:P.combine(P.rule(`numeric`),P.rule(`min:0`)),nonEmptyString:P.combine(P.rule(`required`),P.custom(e=>typeof e==`string`&&e.trim().length>0,`must not be empty`))}},yt=Object.assign(P.rule,vt);function bt(e){return typeof e==`object`&&!!e&&`orThrow`in e&&typeof e.orThrow==`function`}function xt(e){return bt(e)&&`orElse`in e&&typeof e.orElse==`function`&&`or`in e&&typeof e.or==`function`&&`orNull`in e&&typeof e.orNull==`function`&&`orUndefined`in e&&typeof e.orUndefined==`function`}const St={toOption:e=>e.fold(()=>f(),e=>u(e)),toList:e=>e.fold(()=>S([]),e=>S([e])),toEither:(e,t)=>e.fold(()=>w(t),e=>C(e)),isEmpty:e=>e.fold(()=>!0,()=>!1),size:e=>e.fold(()=>0,()=>1)},F=e=>typeof e==`object`&&!!e&&(e._tag===`Some`||e._tag===`None`),I=e=>typeof e==`object`&&!!e&&e._tag===`List`,Ct=e=>typeof e==`object`&&!!e&&(e._tag===`Left`||e._tag===`Right`),wt=e=>typeof e==`object`&&!!e&&(e._tag===`Success`||e._tag===`Failure`),L=()=>{let e=(e,t)=>{if(F(e)||I(e)||Ct(e)||wt(e))return e.map(e=>t(e));throw Error(`Unsupported functor type: ${JSON.stringify(e)}`)},t=e=>{if(F(e))return e.orThrow();if(I(e)){let t=e.toArray();if(t.length>0&&I(t[0])){let e=[];for(let n of t)I(n)&&e.push(...n.toArray());return S(e)}return e.flatten()}if(Ct(e))return e.isRight()?e.fold(()=>null,e=>e):e;if(wt(e))return e.isSuccess()?e.orThrow():e;throw Error(`Unsupported functor type for flatten: ${JSON.stringify(e)}`)},n=(e,t)=>{if(F(e)||I(e)||Ct(e)||wt(e))return e.flatMap(e=>t(e));throw Error(`Unsupported functor type for flatMap: ${JSON.stringify(e)}`)},r=(e,t)=>{if(F(e)&&F(t)||I(e)&&I(t)||Ct(e)&&Ct(t)||wt(e)&&wt(t))return e.flatMap(e=>t.map(t=>e(t)));throw Error(`Unsupported functor type for ap: ${JSON.stringify(e)}`)},i=e=>{if(F(e)){let t=e;if(t.isEmpty)return S([p.none()]);let n=t.orThrow();if(I(n))return n.map(e=>p(e));throw Error(`Unsupported inner container type for sequence`)}if(I(e)){let t=e.toArray();if(t.length===0)return p.none();let n=t[0];if(F(n)){for(let e of t)if(e.isEmpty)return p.none();return p(S(t.map(e=>e.orThrow())))}throw Error(`Unsupported inner container type for sequence`)}throw Error(`Unsupported outer container type for sequence: ${JSON.stringify(e)}`)};return{_tag:`HKT`,map:e,flatten:t,flatMap:n,ap:r,sequence:i,traverse:(t,n)=>i(e(t,e=>n(e))),_type:`HKT`}},Tt=L();L.map=(e,t)=>Tt.map(e,t),L.flatten=e=>Tt.flatten(e),L.flatMap=(e,t)=>Tt.flatMap(e,t),L.ap=(e,t)=>Tt.ap(e,t),L.sequence=e=>Tt.sequence(e),L.traverse=(e,t)=>Tt.traverse(e,t),L.isOption=F,L.isList=I,L.isEither=Ct,L.isTry=wt;const Et=e=>({id:e,isSame:t=>t.id===e}),Dt=t(Et,{of:e=>Et(e),pure:e=>Et(e)}),Ot=e=>({_tag:`Context`,services:e,get(t){let n=e.get(t.id);return n===void 0?f():u(n)},unsafeGet(t){let n=e.get(t.id);if(n===void 0)throw Error(`Service not found: ${t.id}`);return n},has(t){return e.has(t.id)},add(t,n){let r=new Map(e);return r.set(t.id,n),Ot(r)},merge(t){let n=new Map(e);for(let[e,r]of t.services)n.set(e,r);return Ot(n)},get size(){return e.size},toString(){return`Context(${Array.from(e.keys()).join(`, `)})`}}),R={empty:()=>Ot(new Map),make:(e,t)=>{let n=new Map;return n.set(e.id,t),Ot(n)},isContext:e=>typeof e==`object`&&!!e&&e._tag===`Context`},z=e=>({_tag:`Success`,isSuccess(){return!0},isFailure(){return!1},isInterrupted(){return!1},map(t){return z(t(e))},mapError(t){return z(e)},mapBoth(t,n){return z(n(e))},flatMap(t){return t(e)},fold(t,n,r){return n(e)},match(t){return t.Success(e)},orThrow(){return e},orElse(t){return e},toOption(){return u(e)},toEither(){return C(e)},toValue(){return{_tag:`Success`,value:e}},toString(){return`Exit.Success(${r(e)})`},toJSON(){return{_tag:`Success`,value:e}}}),B=e=>({_tag:`Failure`,isSuccess(){return!1},isFailure(){return!0},isInterrupted(){return!1},map(t){return B(e)},mapError(t){return B(t(e))},mapBoth(t,n){return B(t(e))},flatMap(t){return B(e)},fold(t,n,r){return t(e)},match(t){return t.Failure(e)},orThrow(){throw e},orElse(e){return e},toOption(){return f()},toEither(){return w(e)},toValue(){return{_tag:`Failure`,error:e}},toString(){return`Exit.Failure(${r(e)})`},toJSON(){return{_tag:`Failure`,error:e}}}),kt=e=>({_tag:`Interrupted`,isSuccess(){return!1},isFailure(){return!1},isInterrupted(){return!0},map(t){return kt(e)},mapError(t){return kt(e)},mapBoth(t,n){return kt(e)},flatMap(t){return kt(e)},fold(t,n,r){if(r)return r(e);throw Error(`Effect was interrupted: ${e}`)},match(t){return t.Interrupted(e)},orThrow(){throw Error(`Effect was interrupted: ${e}`)},orElse(e){return e},toOption(){return f()},toEither(){throw Error(`Cannot convert Interrupted Exit to Either: ${e}`)},toValue(){return{_tag:`Interrupted`,fiberId:e}},toString(){return`Exit.Interrupted(${e})`},toJSON(){return{_tag:`Interrupted`,fiberId:e}}}),V=t(e=>z(e),{succeed:e=>z(e),fail:e=>B(e),interrupt:e=>kt(e),interrupted:()=>kt(`interrupted`),isSuccess:e=>e.isSuccess(),isFailure:e=>e.isFailure(),isInterrupted:e=>e.isInterrupted(),fromEither:e=>e.isRight()?z(e.value):B(e.value),fromOption:(e,t)=>e.isSome()?z(e.value):B(t()),zip:(e,t)=>e.isInterrupted()?e:t.isInterrupted()?t:e.isFailure()?e:t.isFailure()?t:z([e.orThrow(),t.orThrow()]),all:e=>{let t=[];for(let n of e){if(n.isInterrupted()||n.isFailure())return n;t.push(n.orThrow())}return z(t)}}),H=e=>e;var At=class extends Error{constructor(e,t){super(t??`Effect timed out after ${e}ms`),this.duration=e,this._tag=`TimeoutError`,this.name=`TimeoutError`}},jt=class extends Error{constructor(e){super(e??`Effect was interrupted`),this._tag=`InterruptedError`,this.name=`InterruptedError`}};const U=e=>{let t={_effect:e,map(e){return U(H({_tag:`Map`,effect:t,f:e}))},flatMap(e){return U(H({_tag:`FlatMap`,effect:t,f:e}))},tap(e){return t.map(t=>(e(t),t))},tapEffect(e){return t.flatMap(t=>e(t).map(()=>t))},mapError(e){return U(H({_tag:`MapError`,effect:t,f:e}))},recover(e){return U(H({_tag:`Recover`,effect:t,fallback:e}))},recoverWith(e){return U(H({_tag:`RecoverWith`,effect:t,f:e}))},fold(e,n){return U(H({_tag:`Fold`,effect:t,onFailure:e,onSuccess:n}))},match(e){return t.fold(e.failure,e.success)},catchTag(e,n){return U(H({_tag:`RecoverWith`,effect:t,f:t=>typeof t==`object`&&t&&`_tag`in t&&t._tag===e?H(n(t)):H(K.fail(t))}))},catchAll(e){return t.recoverWith(e)},retry(e){return e<=0?t:t.recoverWith(()=>t.retry(e-1))},retryWithDelay(e,n){return e<=0?t:t.recoverWith(()=>K.sleep(n).flatMap(()=>t.retryWithDelay(e-1,n)))},zipRight(e){return t.flatMap(()=>e)},zipLeft(e){return t.flatMap(t=>e.map(()=>t))},zip(e){return t.flatMap(t=>e.map(e=>[t,e]))},flatten(){return this.flatMap(e=>e)},provideContext(e){return U(H({_tag:`ProvideContext`,effect:t,context:e}))},provideService(e,n){return U(H({_tag:`ProvideContext`,effect:t,context:R.make(e,n)}))},provideLayer(e){return H(H(K.async(async()=>{let t=R.empty();return await e.build(H(t))})).flatMap(e=>U(H({_tag:`ProvideContext`,effect:t,context:e}))))},async run(){let e=await G(this._effect);if(e.isSuccess())return e.orThrow();throw e.isFailure()?e.toValue().error:Error(`Effect was interrupted`)},runSync(){return W(this._effect)},async runEither(){let e=await G(this._effect);if(e.isSuccess())return C(e.orThrow());if(e.isFailure())return w(e.toValue().error);throw Error(`Effect was interrupted`)},async runExit(){return G(this._effect)},async runOption(){let e=await G(this._effect);return e.isSuccess()?u(e.orThrow()):f()},async runTry(){let e=await G(this._effect);if(e.isSuccess())return H(b(()=>e.orThrow()));let t=e.isFailure()?e.toValue().error:Error(`Effect was interrupted`);return H(b(()=>{throw t}))},pipe(e){return e(t)},delay(e){return H(K.async(()=>new Promise(t=>setTimeout(t,e))).flatMap(()=>t))},timeout(e){return U(H({_tag:`Timeout`,effect:t,duration:e}))},timeoutTo(e,n){return H(t.timeout(e).recover(H(n)))},toString(){return`IO(${r(e._tag)})`},toJSON(){return{_tag:`IO`,effect:e._tag}},*[Symbol.iterator](){return yield t}};return t},W=(e,t=R.empty())=>{switch(e._tag){case`Succeed`:return e.value;case`Fail`:throw e.error;case`Die`:throw e.defect;case`Sync`:return e.thunk();case`Async`:throw Error(`Cannot run async effect synchronously`);case`Auto`:{let t=e.thunk();if(t instanceof Promise)throw Error(`Cannot run async effect synchronously`);return t}case`Map`:{let n=W(e.effect._effect,t);return e.f(n)}case`FlatMap`:{let n=W(e.effect._effect,t);return W(e.f(n)._effect,t)}case`MapError`:try{return W(e.effect._effect,t)}catch(t){throw e.f(t)}case`Recover`:try{return W(e.effect._effect,t)}catch{return e.fallback}case`RecoverWith`:try{return W(e.effect._effect,t)}catch(n){return W(e.f(n)._effect,t)}case`Fold`:try{let n=W(e.effect._effect,t);return e.onSuccess(n)}catch(t){return e.onFailure(t)}case`Service`:{let n=t.get(e.tag);if(n.isNone())throw Error(`Service not found: ${e.tag.id}`);return n.orThrow()}case`ProvideContext`:{let n=t.merge(e.context);return W(e.effect._effect,n)}case`Interrupt`:throw new jt;case`Bracket`:{let n=W(e.acquire._effect,t);try{return W(e.use(n)._effect,t)}finally{W(e.release(n)._effect,t)}}case`Race`:throw Error(`Cannot run race effect synchronously`);case`Timeout`:throw Error(`Cannot run timeout effect synchronously`)}},G=async(e,t=R.empty())=>{try{switch(e._tag){case`Succeed`:return H(V.succeed(e.value));case`Fail`:return H(V.fail(e.error));case`Die`:throw e.defect;case`Sync`:return H(V.succeed(e.thunk()));case`Async`:{let t=await e.thunk();return H(V.succeed(t))}case`Auto`:{let t=e.thunk();return t instanceof Promise?H(V.succeed(await t)):H(V.succeed(t))}case`Map`:{let n=await G(e.effect._effect,t);return n.isSuccess()?H(V.succeed(e.f(n.orThrow()))):H(n)}case`FlatMap`:{let n=await G(e.effect._effect,t);return n.isSuccess()?G(e.f(n.orThrow())._effect,t):H(n)}case`MapError`:{let n=await G(e.effect._effect,t);return n.isSuccess()?H(n):n.isFailure()?H(V.fail(e.f(n.toValue().error))):H(n)}case`Recover`:{let n=await G(e.effect._effect,t);return n.isSuccess()?n:V.succeed(e.fallback)}case`RecoverWith`:{let n=await G(e.effect._effect,t);return n.isSuccess()?n:n.isFailure()?G(e.f(n.toValue().error)._effect,t):n}case`Fold`:{let n=await G(e.effect._effect,t);return n.isSuccess()?V.succeed(e.onSuccess(n.orThrow())):n.isFailure()?V.succeed(e.onFailure(n.toValue().error)):n}case`Service`:{let n=t.get(e.tag);return n.isNone()?V.fail(Error(`Service not found: ${e.tag.id}`)):V.succeed(n.orThrow())}case`ProvideContext`:{let n=t.merge(e.context);return G(e.effect._effect,n)}case`Interrupt`:return V.interrupted();case`Bracket`:{let n=await G(e.acquire._effect,t);if(!n.isSuccess())return n;let r=n.orThrow();try{return await G(e.use(r)._effect,t)}finally{await G(e.release(r)._effect,t)}}case`Race`:return e.effects.length===0?V.fail(Error(`No effects to race`)):await Promise.race(e.effects.map(e=>G(e._effect,t)));case`Timeout`:{let n=new Promise(t=>setTimeout(()=>t(V.fail(new At(e.duration))),e.duration)),r=G(e.effect._effect,t);return Promise.race([r,n])}}}catch(e){return V.fail(e)}},K={sync:e=>U({_tag:`Sync`,thunk:e}),succeed:e=>U({_tag:`Succeed`,value:e}),fail:e=>U({_tag:`Fail`,error:e}),die:e=>U({_tag:`Die`,defect:e}),async:e=>U(H({_tag:`Async`,thunk:e})),tryPromise:e=>U({_tag:`Async`,thunk:e.try}).mapError(e.catch),tryCatch:(e,t)=>K.sync(()=>{try{return e()}catch(e){throw t(e)}}),liftSync:e=>(...t)=>K.sync(()=>e(...t)),liftPromise:e=>(...t)=>K.async(()=>e(...t)),fromEither:e=>H(e.isRight()?K.succeed(e.value):K.fail(e.value)),fromOption:e=>H(e.isSome()?K.succeed(e.value):K.fail(void 0)),fromOptionOrFail:(e,t)=>H(e.isSome()?K.succeed(e.value):K.fail(t())),fromTry:e=>H(e.isSuccess()?K.succeed(e.orThrow()):K.fail(e.error)),service:e=>U({_tag:`Service`,tag:e}),serviceWith:(e,t)=>K.service(e).map(t),serviceWithIO:(e,t)=>K.service(e).flatMap(t),withServices:(e,t)=>{let n=Object.entries(e);if(n.length===0)return H(U({_tag:`Auto`,thunk:()=>t({})}));let r=H(K.succeed({}));return H(n.reduce((e,[t,n])=>H(e.flatMap(e=>K.service(n).map(n=>({...e,[t]:n})))),r).flatMap(e=>U({_tag:`Auto`,thunk:()=>t(e)})))},all:e=>{if(e.length===0)return H(K.succeed([]));let t=H(K.succeed([]));return H(e.reduce((e,t)=>e.flatMap(e=>t.map(t=>[...e,t])),t))},firstSuccessOf:e=>e.length===0?H(K.fail(Error(`No effects provided`))):e.reduce((e,t)=>e.recoverWith(()=>t)),sleep:e=>H(K.async(()=>new Promise(t=>setTimeout(t,e)))),never:()=>H(K.async(()=>new Promise(()=>{}))),get unit(){return H(U({_tag:`Succeed`,value:void 0}))},fromNullable:e=>H(e==null?K.fail(void 0):K.succeed(e)),interrupt:()=>U({_tag:`Interrupt`}),bracket:(e,t,n)=>U({_tag:`Bracket`,acquire:e,use:t,release:n}),acquireRelease:(e,t,n)=>K.bracket(e,t,n),race:e=>U({_tag:`Race`,effects:e}),any:e=>e.length===0?H(K.fail(Error(`No effects provided`))):e.reduce((e,t)=>e.recoverWith(()=>t)),forEach:(e,t)=>{if(e.length===0)return H(K.succeed([]));let n=H(K.succeed([]));return H(e.reduce((e,n)=>e.flatMap(e=>t(n).map(t=>[...e,t])),n))},forEachPar:(e,t)=>K.forEach(e,t),timeout:(e,t)=>U(H({_tag:`Timeout`,effect:e,duration:t})),gen:e=>H(K.sync(()=>{let t=e(),n=e=>{let r=t.next(e);return r.done?H(K.succeed(r.value)):H(r.value.flatMap(e=>n(e)))};return n(void 0)}).flatMap(e=>e)),get Do(){return Mt(K.succeed({}))}},Mt=e=>({effect:e,bind(t,n){return Mt(e.flatMap(e=>n(e).map(n=>({...e,[t]:n}))))},let(t,n){return Mt(e.map(e=>({...e,[t]:n(e)})))},map(t){return e.map(t)},flatMap(t){return e.flatMap(t)},tap(t){return Mt(e.tap(t))},tapEffect(t){return Mt(e.tapEffect(t))},done(){return e}}),q=t(e=>U(H({_tag:`Auto`,thunk:e})),K),J=(e,t)=>({_tag:`Layer`,build:e,provideToAndMerge(t){return J(async n=>{let r=await e(n),i=n.merge(r),a=await t.build(i);return r.merge(a)})},merge(t){return J(async n=>{let[r,i]=await Promise.all([e(n),t.build(n)]);return r.merge(i)})},map(t){return J(async n=>t(await e(n)))},toString(){return`Layer(${t??`anonymous`})`}}),Nt={succeed:(e,t)=>J(()=>Promise.resolve(R.make(e,t)),e.id),effect:(e,t)=>J(async()=>{let n=await t();return R.make(e,n)},e.id),sync:(e,t)=>J(()=>Promise.resolve(R.make(e,t())),e.id),fromService:(e,t,n)=>J(r=>{let i=r.unsafeGet(t);return Promise.resolve(R.make(e,n(i)))},e.id),fromServiceEffect:(e,t,n)=>J(async r=>{let i=await n(r.unsafeGet(t));return R.make(e,i)},e.id),fromContext:e=>J(()=>Promise.resolve(e)),empty:()=>J(()=>Promise.resolve(R.empty()),`empty`),mergeAll:(...e)=>J(async t=>(await Promise.all(e.map(e=>e.build(t)))).reduce((e,t)=>e.merge(t),R.empty()))},Pt=e=>({id:e,_tag:`Tag`,toString(){return`Tag(${e})`}}),Ft=()=>{let e=0,t=[],n=async()=>{for(t.sort((e,t)=>e.time-t.time);t.length>0&&t[0]!==void 0&&t[0].time<=e;){let e=t.shift();e&&(e.resolve(),await Promise.resolve())}};return{get currentTime(){return e},async advance(t){e+=t,await n()},async setTime(t){e=t,await n()},async runAll(){if(t.length>0){let n=t[t.length-1];n&&(e=n.time)}await n()},get pendingCount(){return t.length},sleep(n){return new Promise(r=>{t.push({time:e+n,resolve:r})})}}},Y=Pt(`TestClock`),It={make:Ft,tag:Y,test:async e=>e(Ft()),get:q.service(Y),advance:e=>q.serviceWithIO(Y,t=>q.async(()=>t.advance(e))),setTime:e=>q.serviceWithIO(Y,t=>q.async(()=>t.setTime(e))),runAll:q.serviceWithIO(Y,e=>q.async(()=>e.runAll())),context:()=>{let e=Ft();return{clock:e,context:R.make(Y,e)}}},Lt={make:()=>{let e=Ft(),t=R.empty(),n={get context(){return t},get clock(){return e},withService(e,r){return t=t.add(e,r),n},async run(e){return e.provideContext(t).run()}};return n},withClock:()=>{let e=Ft();return Lt.make().withService(Y,e)}},X=e=>{let t=!1,n,i,a=!1,o=()=>{if(!t)try{n=e(),t=!0}catch(e){throw i=e,a=!0,t=!0,e}if(a)throw i;return n};return{_tag:`Lazy`,get isEvaluated(){return t},orElse:e=>{try{return o()}catch{return e}},orNull:()=>{try{return o()}catch{return null}},orThrow:e=>{try{return o()}catch(t){throw e??t}},or:e=>Z(()=>{try{return o()}catch{return e.orThrow()}}),orUndefined:()=>{try{return o()}catch{return}},map:e=>Z(()=>e(o())),ap:e=>Z(()=>e.orThrow()(o())),mapAsync:async e=>{let t=await e(o());return Z(()=>t)},flatMap:e=>Z(()=>e(o()).orThrow()),flatMapAsync:async e=>{let t=await e(o());return Z(()=>t.orThrow())},filter:e=>Z(()=>{let t=o();return e(t)?u(t):f}),recover:e=>Z(()=>{try{return o()}catch(t){return e(t)}}),recoverWith:e=>Z(()=>{try{return o()}catch(t){return e(t).orThrow()}}),toOption:()=>{try{return u(o())}catch{return f}},toEither:()=>{try{return C(o())}catch(e){return w(e)}},toEitherWith:e=>{try{return C(o())}catch(t){return w(e(t))}},toTry:()=>b(()=>o()),tap:e=>Z(()=>{let t=o();return e(t),t}),tapError:e=>Z(()=>{try{return o()}catch(t){throw e(t),t}}),fold:e=>e(o()),foldWith:(e,t)=>{try{return t(o())}catch(t){return e(t)}},foldLeft:e=>t=>t(e,o()),foldRight:e=>t=>t(o(),e),match:e=>e.Lazy(o()),toString:()=>t&&!a?`Lazy(${r(n)})`:t&&a?`Lazy(<error: ${i instanceof Error?i.message:String(i)}>)`:`Lazy(<not evaluated>)`,toValue:()=>t&&!a?{_tag:`Lazy`,evaluated:!0,value:n}:{_tag:`Lazy`,evaluated:!1},get size(){try{return o(),1}catch{return 0}},get isEmpty(){try{return o(),!1}catch{return!0}},contains:e=>{try{return o()===e}catch{return!1}},reduce:e=>o(),reduceRight:e=>o(),count:e=>{try{return e(o())?1:0}catch{return 0}},find:e=>{try{let t=o();return e(t)?u(t):f}catch{return f}},exists:e=>{try{return e(o())}catch{return!1}},forEach:e=>{try{e(o())}catch{}},pipe:e=>e(o()),serialize:()=>({toJSON:()=>JSON.stringify(t&&!a?{_tag:`Lazy`,evaluated:!0,value:n}:{_tag:`Lazy`,evaluated:!1}),toYAML:()=>t&&!a?`_tag: Lazy\nevaluated: true\nvalue: ${r(n)}`:`_tag: Lazy
17
+ evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(t&&!a?{_tag:`Lazy`,evaluated:!0,value:n}:{_tag:`Lazy`,evaluated:!1})).toString(`base64`)}),typeable:`Lazy`}},Z=t(X,{of:e=>X(e),fromValue:e=>X(()=>e),fromOption:(e,t)=>X(()=>e._tag===`Some`?e.value:t()),fromTry:e=>X(()=>e.orThrow()),fromEither:e=>X(()=>e.fold(e=>{throw e},e=>e)),fromPromise:e=>X(()=>{throw Error(`Promise not yet resolved. Use await on the promise before creating Lazy.`)}),fail:e=>X(()=>{throw e})}),Rt=Map,Q=e=>{let t={values:new Rt(e)},r=()=>Array.from(t.values.entries()).map(([e,t])=>n([e,t])),a=e=>Q(new Rt(t.values).set(e.toArray()[0],e.toArray()[1]).entries()),o=e=>{let n=new Rt(t.values);return n.delete(e)?Q(n.entries()):Q(t.values.entries())},s=e=>{let n=e.toArray();return t.values.get(n[0])===n[1]},c=()=>t.values.size,l=e=>Q(Array.from(t.values.entries()).map(([t,n])=>[t,e(n)])),u=e=>Q(Q(t.values.entries()).toList().flatMap(e).toArray()),d=e=>{let n=[];for(let[r,i]of t.values.entries()){let t=e.get(r);t._tag===`Some`&&t.value&&n.push([r,t.value(i)])}return Q(n)},f=async e=>{let n=new Rt;for(let[r,i]of t.values.entries()){let t=await e(i);for(let e of t.toList()){let[t,r]=e.toArray();n.set(t,r)}}return Q(n.entries())},ee=e=>S(r()).reduce(e),te=e=>S(r()).reduceRight(e),m=e=>t=>S(r()).foldLeft(e)(t),h=e=>t=>S(r()).foldRight(e)(t),ne=e=>p(t.values.get(e)),re=(e,n)=>p(t.values.get(e)).orElse(n),ae=()=>t.values.size===0,g=(e,n)=>p(t.values.get(e)).or(n),oe=(e,t)=>{if(ae())return e();let n=r();if(n.length===0)return e();let i=n[0];return i===void 0?e():t(i)},se=()=>S(r()),_=()=>ie(r()),ce=()=>`Map(${r().toString()})`,v=e=>ae()?e.Empty():e.NonEmpty(r());return{_tag:`Map`,[Symbol.iterator]:()=>t.values.entries(),add:a,remove:o,contains:s,get size(){return c()},map:l,ap:d,flatMap:u,flatMapAsync:f,reduce:ee,reduceRight:te,foldLeft:m,foldRight:h,fold:oe,match:v,get:ne,getOrElse:re,get isEmpty(){return ae()},orElse:g,toList:se,toSet:_,toString:ce,toValue:()=>({_tag:`Map`,value:Array.from(t.values.entries())}),pipe:e=>e(Array.from(t.values.entries())),serialize:()=>i(`Map`,Array.from(t.values.entries()))}},zt=e=>Q(e),Bt={fromJSON:e=>Vt(JSON.parse(e).value),fromYAML:e=>{let t=e.split(`
18
+ `)[1]?.split(`: `)[1];return Vt(t?JSON.parse(t):[])},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return Bt.fromJSON(t)}},Vt=t(zt,Bt),Ht={default:e=>t=>e(t),when:(e,t)=>n=>e(n)?t(n):void 0},$=(e=[])=>{let t=[...e],n=()=>t.length,r=()=>t.length===0;return{_tag:`Stack`,get size(){return n()},get isEmpty(){return r()},contains:e=>t.includes(e),reduce:e=>{if(t.length===0)throw Error(`Cannot reduce an empty stack`);return t.reduce(e)},reduceRight:e=>{if(t.length===0)throw Error(`Cannot reduce an empty stack`);return t.reduceRight(e)},push:e=>$([...t,e]),pop:()=>{if(r())return[$([]),p(null)];let e=[...t],n=e.pop();return[$(e),p(n)]},peek:()=>r()?p(null):p(t[t.length-1]),map:e=>$(t.map(e)),flatMap:e=>r()?$([]):t.reduce((t,n)=>e(n).toArray().reduce((e,t)=>e.push(t),t),$([])),ap:e=>{let n=[];return t.forEach(t=>{e.toArray().forEach(e=>{n.push(e(t))})}),$(n)},flatMapAsync:async e=>r()?$([]):(await Promise.all(t.map(async t=>await e(t)))).reduce((e,t)=>t.toArray().reduce((e,t)=>e.push(t),e),$([])),toList:()=>S(t),toArray:()=>[...t],toString:()=>`Stack(${t.join(`, `)})`,fold:(e,n)=>{if(r())return e();let i=t[t.length-1];return i===void 0?e():n(i)},foldLeft:e=>n=>t.reduce(n,e),foldRight:e=>n=>t.reduceRight((e,t)=>n(t,e),e),match:e=>r()?e.Empty():e.NonEmpty([...t]),toValue:()=>({_tag:`Stack`,value:t}),pipe:e=>e([...t]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:`Stack`,value:t}),toYAML:()=>`_tag: Stack\nvalue: ${JSON.stringify(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:`Stack`,value:t})).toString(`base64`)})}},Ut=(e=[])=>$(e),Wt={empty:()=>$([]),of:e=>$([e]),fromJSON:e=>Gt(JSON.parse(e).value),fromYAML:e=>{let t=e.split(`
19
+ `)[1]?.split(`: `)[1];return Gt(t?JSON.parse(t):[])},fromBinary:e=>{let t=Buffer.from(e,`base64`).toString();return Wt.fromJSON(t)}},Gt=t(Ut,Wt);function Kt(e){let t=de({_tag:e._tag,impl:e.impl});return{...t,toValue:()=>({_tag:t._tag,value:e.value})}}export{Pe as $,rt as A,l as At,Xe as B,gt as C,g as Ct,ft as D,ee as Dt,pt as E,p as Et,it as F,Ge as G,qe as H,at as I,Ve as J,Ue as K,k as L,ut as M,c as Mt,ct as N,o as Nt,ot as O,u as Ot,st as P,s as Pt,je as Q,A as R,N as S,ce as St,mt as T,f as Tt,Ke as U,Je as V,We as W,Fe as X,Re as Y,Ie as Z,Dt as _,Se as _t,Rt as a,Ee as at,xt as b,fe as bt,Y as c,T as ct,Nt as d,C as dt,Oe as et,q as f,xe as ft,R as g,ye as gt,V as h,_e as ht,Vt as i,ke as it,lt as j,i as jt,tt as k,a as kt,Lt as l,Te as lt,At as m,ve as mt,Gt as n,De as nt,Z as o,Ne as ot,jt as p,be as pt,He as q,Ht as r,Le as rt,It as s,Me as st,Kt as t,Ae as tt,Pt as u,w as ut,L as v,S as vt,ht as w,ie as wt,yt as x,b as xt,St as y,de as yt,j as z};
20
+ //# sourceMappingURL=src-BeaSFZFq.js.map