functype 0.14.3 → 0.14.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- import { O as Option, E as Either, L as List, T as Try, z as Reshapeable, e as DoProtocol } from '../Either-DpoF3l-y.js';
2
- export { D as DO_PROTOCOL, d as DO_PROTOCOL_TYPE, a as DoResult } from '../Either-DpoF3l-y.js';
1
+ import { O as Option, E as Either, L as List, T as Try, y as Reshapeable, c as Doable } from '../Either-DRq2XcwM.js';
2
+ export { d as DoProtocol, D as DoResult } from '../Either-DRq2XcwM.js';
3
3
  import '../Typeable-CitTP1ay.js';
4
4
 
5
5
  /**
@@ -163,20 +163,20 @@ declare function DoAsync<T>(gen: () => AsyncGenerator<TryLike, T, unknown>): Pro
163
163
  declare function DoAsync<T>(gen: () => AsyncGenerator<OptionLike | EitherLike | ListLike | TryLike, T, unknown>): Promise<Reshapeable<T>>;
164
164
  declare function DoAsync<T>(gen: () => AsyncGenerator<unknown, T, unknown>): Promise<unknown>;
165
165
  /**
166
- * Helper function to check if a value implements the Do protocol
166
+ * Helper function to check if a value implements the Doable interface
167
167
  * @param value - Value to check
168
- * @returns True if the value implements DoProtocol
168
+ * @returns True if the value implements Doable
169
169
  */
170
- declare function isDoCapable<T>(value: unknown): value is DoProtocol<T>;
170
+ declare function isDoCapable<T>(value: unknown): value is Doable<T>;
171
171
  /**
172
- * Manually unwrap a monad using the Do protocol
172
+ * Manually unwrap a monad using the Doable interface
173
173
  * Useful for testing or when you need to unwrap outside of a Do-comprehension
174
174
  *
175
175
  * @param monad - Monad to unwrap
176
176
  * @returns The unwrapped value
177
177
  * @throws Error if the monad cannot be unwrapped
178
178
  */
179
- declare function unwrap<T>(monad: DoProtocol<T>): T;
179
+ declare function unwrap<T>(monad: Doable<T>): T;
180
180
  /**
181
181
  * Type helper for Do-notation generators.
182
182
  * Provides better type hints in IDEs.
@@ -212,7 +212,7 @@ declare function $<T>(monad: Option<T>): Generator<Option<T>, T, T>;
212
212
  declare function $<L, R>(monad: Either<L, R>): Generator<Either<L, R>, R, R>;
213
213
  declare function $<T>(monad: List<T>): Generator<List<T>, T, T>;
214
214
  declare function $<T>(monad: Try<T>): Generator<Try<T>, T, T>;
215
- declare function $<T>(monad: DoProtocol<T>): Generator<DoProtocol<T>, T, T>;
215
+ declare function $<T>(monad: Doable<T>): Generator<Doable<T>, T, T>;
216
216
  declare function $<M>(monad: M): Generator<M, InferYieldType<M>, InferYieldType<M>>;
217
217
  type InferYieldType<M> = M extends {
218
218
  isSome(): boolean;
@@ -225,7 +225,7 @@ type InferYieldType<M> = M extends {
225
225
  } ? T : M extends {
226
226
  isSuccess(): boolean;
227
227
  get(): infer T;
228
- } ? T : M extends DoProtocol<infer T> ? T : unknown;
228
+ } ? T : M extends Doable<infer T> ? T : unknown;
229
229
  declare const NoneError: (message?: string) => Error;
230
230
  interface LeftErrorType<L> extends Error {
231
231
  value: L;
@@ -237,4 +237,4 @@ interface FailureErrorType extends Error {
237
237
  }
238
238
  declare const FailureError: (cause: Error, message?: string) => FailureErrorType;
239
239
 
240
- export { $, Do, DoAsync, type DoGenerator, DoProtocol, EmptyListError, FailureError, type FailureErrorType, LeftError, type LeftErrorType, NoneError, isDoCapable, unwrap };
240
+ export { $, Do, DoAsync, type DoGenerator, Doable, EmptyListError, FailureError, type FailureErrorType, LeftError, type LeftErrorType, NoneError, isDoCapable, unwrap };
package/dist/do/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export{P as $,a as DO_PROTOCOL,L as Do,M as DoAsync,S as EmptyListError,T as FailureError,R as LeftError,Q as NoneError,N as isDoCapable,O as unwrap}from'../chunk-GMC6UNBM.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{Z as $,V as Do,W as DoAsync,aa as EmptyListError,ba as FailureError,$ as LeftError,_ as NoneError,X as isDoCapable,Y as unwrap}from'../chunk-MKFG47XM.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 { E as Either, g as Left, R as Right, f as TestEither, k as TypeCheckLeft, j as TypeCheckRight, h as isLeft, i as isRight, t as tryCatch, l as tryCatchAsync } from '../Either-DpoF3l-y.js';
1
+ export { E as Either, f as Left, R as Right, e as TestEither, j as TypeCheckLeft, h as TypeCheckRight, g as isLeft, i as isRight, t as tryCatch, k as tryCatchAsync } from '../Either-DRq2XcwM.js';
2
2
  import '../Typeable-CitTP1ay.js';
@@ -1,2 +1,2 @@
1
- export{u as Either,n as Left,m as Right,s as TypeCheckLeft,r as TypeCheckRight,p as isLeft,o as isRight,q as tryCatch,t as tryCatchAsync}from'../chunk-GMC6UNBM.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{t as Either,m as Left,l as Right,r as TypeCheckLeft,q as TypeCheckRight,o as isLeft,n as isRight,p as tryCatch,s as tryCatchAsync}from'../chunk-MKFG47XM.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-DpoF3l-y.js';
1
+ import { E as Either } from '../Either-DRq2XcwM.js';
2
2
  import { T as Type } from '../Typeable-CitTP1ay.js';
3
3
 
4
4
  /**
@@ -1,2 +1,2 @@
1
- export{X as FPromise,W as FPromiseCompanion}from'../chunk-GMC6UNBM.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{N as FPromise,M as FPromiseCompanion}from'../chunk-MKFG47XM.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 { L as List, O as Option, E as Either, D as DO_PROTOCOL, a as DoResult, T as Try, F as FunctypeBase, b as Extractable, c as Traversable, M as Matchable } from './Either-DpoF3l-y.js';
4
- export { A as Applicative, w as AsyncMonad, C as Collection, u as CollectionOps, v as ContainerOps, d as DO_PROTOCOL_TYPE, e as DoProtocol, x as Functor, n as Functype, o as FunctypeCollection, g as Left, p as MatchableUtils, y as Monad, N as None, q as OptionConstructor, P as Promisable, R as Right, r as Set, S as Some, f as TestEither, k as TypeCheckLeft, j as TypeCheckRight, s as TypeNames, m as isExtractable, h as isLeft, i as isRight, t as tryCatch, l as tryCatchAsync } from './Either-DpoF3l-y.js';
3
+ import { L as List, O as Option, E as Either, D as DoResult, T as Try, F as FunctypeBase, a as Extractable, b as Traversable, M as Matchable } from './Either-DRq2XcwM.js';
4
+ export { A as Applicative, v as AsyncMonad, C as Collection, s as CollectionOps, u as ContainerOps, d as DoProtocol, c as Doable, w as Functor, m as Functype, n as FunctypeCollection, f as Left, o as MatchableUtils, x as Monad, N as None, p as OptionConstructor, P as Promisable, R as Right, q as Set, S as Some, e as TestEither, j as TypeCheckLeft, h as TypeCheckRight, r as TypeNames, l as isExtractable, g as isLeft, i as isRight, t as tryCatch, k as tryCatchAsync } from './Either-DRq2XcwM.js';
5
5
  import { T as Type, F as Foldable, P as Pipe, S as Serializable, a as Typeable } from './Typeable-CitTP1ay.js';
6
6
  export { E as ExtractTag, b as SerializationMethods, c as TypeableParams, i as isTypeable } from './Typeable-CitTP1ay.js';
7
7
  import { FPromise } from './fpromise/index.js';
@@ -664,13 +664,13 @@ declare const Match: (<T extends Type, R extends Type>(value: T) => Match<T, R>)
664
664
 
665
665
  /**
666
666
  * Base Object from which most other objects inherit
667
- * Now includes automatic Do-notation support via DO_PROTOCOL
667
+ * Now includes automatic Do-notation support via doUnwrap method
668
668
  * @param type - The type name for the object
669
669
  * @param body - The implementation body
670
670
  */
671
671
  declare function Base<T extends Record<string, unknown>>(type: string, body: T): T & {
672
672
  toString(): string;
673
- [DO_PROTOCOL](): DoResult<unknown>;
673
+ doUnwrap(): DoResult<unknown>;
674
674
  _tag: string;
675
675
  };
676
676
 
@@ -848,7 +848,7 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
848
848
  */
849
849
  AsyncWithProgress: <U = T>(t: (updateProgress: (percent: number) => void) => U | Promise<U> | TaskOutcome<U> | Promise<TaskOutcome<U>>, onProgress: (percent: number) => void, e?: (error: unknown) => unknown | TaskOutcome<U>, f?: () => Promise<void> | void, cancellationToken?: CancellationToken) => FPromise<TaskOutcome<U>>;
850
850
  toString(): string;
851
- [DO_PROTOCOL](): DoResult<unknown>;
851
+ doUnwrap(): DoResult<unknown>;
852
852
  _tag: string;
853
853
  }) & {
854
854
  /**
@@ -1805,4 +1805,4 @@ declare const Stack: (<A extends Type>(values?: A[]) => Stack<A>) & {
1805
1805
  fromBinary: <A>(binary: string) => Stack<A>;
1806
1806
  };
1807
1807
 
1808
- export { type Async, Base, BoundedNumber, BoundedString, Brand, type CancellationToken, type CancellationTokenSource, Companion, Cond, DO_PROTOCOL, DoResult, ESMap, type ESMapType, Either, type EitherKind, EmailAddress, Err, type ErrorChainElement, type ErrorCode, type ErrorFormatterOptions, type ErrorMessage, type ErrorStatus, type ErrorWithTaskInfo, Extractable, FPromise, type FieldValidation, Foldable, FoldableUtils, type FormValidation, FunctypeBase, HKT, ISO8601Date, Identity, IntegerNumber, type Kind, Lazy, LazyList, Lazy as LazyType, List, type ListKind, Match, Matchable, NAME, NonEmptyString, NonNegativeNumber, Ok, Option, type OptionKind, ParseError, PatternString, Pipe, PositiveInteger, PositiveNumber, Ref, Ref as RefType, Serializable, Stack, type Sync, type TaggedThrowable, Task, type TaskErrorInfo, TaskFailure, type TaskMetadata, type TaskOutcome, type TaskParams, type TaskResult, TaskSuccess, Throwable, type ThrowableType, Traversable, Try, type TryKind, Type, Typeable, TypedError, type TypedErrorContext, UUID, type UniversalContainer, UrlString, ValidatedBrand, type ValidatedBrandCompanion, Validation, type ValidationRule, type Validator, Valuable, type ValuableParams, createCancellationTokenSource, createErrorSerializer, formatError, formatStackTrace, isTaggedThrowable, safeStringify };
1808
+ export { type Async, Base, BoundedNumber, BoundedString, Brand, type CancellationToken, type CancellationTokenSource, Companion, Cond, DoResult, ESMap, type ESMapType, Either, type EitherKind, EmailAddress, Err, type ErrorChainElement, type ErrorCode, type ErrorFormatterOptions, type ErrorMessage, type ErrorStatus, type ErrorWithTaskInfo, Extractable, FPromise, type FieldValidation, Foldable, FoldableUtils, type FormValidation, FunctypeBase, HKT, ISO8601Date, Identity, IntegerNumber, type Kind, Lazy, LazyList, Lazy as LazyType, List, type ListKind, Match, Matchable, NAME, NonEmptyString, NonNegativeNumber, Ok, Option, type OptionKind, ParseError, PatternString, Pipe, PositiveInteger, PositiveNumber, Ref, Ref as RefType, Serializable, Stack, type Sync, type TaggedThrowable, Task, type TaskErrorInfo, TaskFailure, type TaskMetadata, type TaskOutcome, type TaskParams, type TaskResult, TaskSuccess, Throwable, type ThrowableType, Traversable, Try, type TryKind, Type, Typeable, TypedError, type TypedErrorContext, UUID, type UniversalContainer, UrlString, ValidatedBrand, type ValidatedBrandCompanion, Validation, type ValidationRule, type Validator, Valuable, type ValuableParams, createCancellationTokenSource, createErrorSerializer, formatError, formatStackTrace, isTaggedThrowable, safeStringify };
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export{P as $,K as Base,F as BoundedNumber,G as BoundedString,I as Cond,a as DO_PROTOCOL,L as Do,M as DoAsync,pa as ESMap,u as Either,B as EmailAddress,S as EmptyListError,aa as Err,X as FPromise,W as FPromiseCompanion,T as FailureError,la as FoldableUtils,ma as HKT,E as ISO8601Date,na as Identity,y as IntegerNumber,oa as Lazy,h as LazyList,n as Left,R as LeftError,l as List,qa as Map,J as Match,ra as MatchableUtils,U as NAME,A as NonEmptyString,x as NonNegativeNumber,c as None,Q as NoneError,$ as Ok,e as Option,d as OptionConstructor,ha as ParseError,H as PatternString,z as PositiveInteger,w as PositiveNumber,g as Ref,m as Right,f as Set,b as Some,sa as Stack,ca as Task,Z as TaskFailure,_ as TaskSuccess,V as Throwable,i as Try,s as TypeCheckLeft,r as TypeCheckRight,j as Typeable,ia as TypedError,D as UUID,C as UrlString,v as ValidatedBrand,ja as Validation,ta as Valuable,ba as createCancellationTokenSource,ga as createErrorSerializer,fa as formatError,ea as formatStackTrace,N as isDoCapable,ka as isExtractable,p as isLeft,o as isRight,Y as isTaggedThrowable,k as isTypeable,da as safeStringify,q as tryCatch,t as tryCatchAsync,O as unwrap}from'./chunk-GMC6UNBM.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{Z as $,J as Base,E as BoundedNumber,F as BoundedString,H as Cond,V as Do,W as DoAsync,oa as ESMap,t as Either,A as EmailAddress,aa as EmptyListError,S as Err,N as FPromise,M as FPromiseCompanion,ba as FailureError,ka as FoldableUtils,la as HKT,D as ISO8601Date,ma as Identity,x as IntegerNumber,na as Lazy,g as LazyList,m as Left,$ as LeftError,k as List,pa as Map,I as Match,qa as MatchableUtils,K as NAME,z as NonEmptyString,w as NonNegativeNumber,b as None,_ as NoneError,R as Ok,d as Option,c as OptionConstructor,ga as ParseError,G as PatternString,y as PositiveInteger,v as PositiveNumber,f as Ref,l as Right,e as Set,a as Some,ra as Stack,U as Task,P as TaskFailure,Q as TaskSuccess,L as Throwable,h as Try,r as TypeCheckLeft,q as TypeCheckRight,i as Typeable,ha as TypedError,C as UUID,B as UrlString,u as ValidatedBrand,ia as Validation,sa as Valuable,T as createCancellationTokenSource,fa as createErrorSerializer,ea as formatError,da as formatStackTrace,X as isDoCapable,ja as isExtractable,o as isLeft,n as isRight,O as isTaggedThrowable,j as isTypeable,ca as safeStringify,p as tryCatch,s as tryCatchAsync,Y as unwrap}from'./chunk-MKFG47XM.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-DpoF3l-y.js';
1
+ export { L as List } from '../Either-DRq2XcwM.js';
2
2
  import '../Typeable-CitTP1ay.js';
@@ -1,2 +1,2 @@
1
- export{l as List}from'../chunk-GMC6UNBM.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{k as List}from'../chunk-MKFG47XM.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 { c as Traversable, C as Collection, O as Option } from '../Either-DpoF3l-y.js';
1
+ import { b as Traversable, C as Collection, O as Option } from '../Either-DRq2XcwM.js';
2
2
  import { a as Typeable, S as Serializable, P as Pipe, F as Foldable, T as Type } from '../Typeable-CitTP1ay.js';
3
3
  import { Tuple } from '../tuple/index.js';
4
4
 
@@ -1,2 +1,2 @@
1
- export{qa as Map}from'../chunk-GMC6UNBM.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{pa as Map}from'../chunk-MKFG47XM.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, q as OptionConstructor, S as Some } from '../Either-DpoF3l-y.js';
1
+ export { N as None, O as Option, p as OptionConstructor, S as Some } from '../Either-DRq2XcwM.js';
2
2
  import '../Typeable-CitTP1ay.js';
@@ -1,2 +1,2 @@
1
- export{c as None,e as Option,d as OptionConstructor,b as Some}from'../chunk-GMC6UNBM.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-MKFG47XM.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 { r as Set } from '../Either-DpoF3l-y.js';
1
+ export { q as Set } from '../Either-DRq2XcwM.js';
2
2
  import '../Typeable-CitTP1ay.js';
@@ -1,2 +1,2 @@
1
- export{f as Set}from'../chunk-GMC6UNBM.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{e as Set}from'../chunk-MKFG47XM.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 { T as Try, s as TypeNames } from '../Either-DpoF3l-y.js';
1
+ export { T as Try, r as TypeNames } from '../Either-DRq2XcwM.js';
2
2
  import '../Typeable-CitTP1ay.js';
@@ -1,2 +1,2 @@
1
- export{i as Try}from'../chunk-GMC6UNBM.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{h as Try}from'../chunk-MKFG47XM.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.14.3",
3
+ "version": "0.14.6",
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 me from'safe-stable-stringify';var k=Symbol.for("functype.do.unwrap");var q=Set;var M=t=>{let e=new q(t),r={_tag:"Set",[Symbol.iterator]:()=>e[Symbol.iterator](),add:n=>M([...e,n]),remove:n=>{let o=new q(e);return o.delete(n),M(o)},contains:n=>e.has(n),has:n=>e.has(n),map:n=>M(Array.from(e).map(n)),ap:n=>{let o=new q;for(let a of e)for(let s of n)o.add(s(a));return M(o)},flatMap:n=>{let o=new q;for(let a of e)for(let s of n(a))o.add(s);return M(o)},flatMapAsync:async n=>{let o=new q;for(let a of e){let s=await n(a);for(let i of s)o.add(i);}return M(o)},fold:(n,o)=>{if(e.size===0)return n();let a=Array.from(e);if(a.length===0)return n();let s=a[0];return s===void 0?n():o(s)},foldLeft:n=>o=>{let a=n;for(let s of e)a=o(a,s);return a},foldRight:n=>o=>Array.from(e).reduceRight((s,i)=>o(i,s),n),get size(){return e.size},get isEmpty(){return e.size===0},reduce:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduce empty Set");return o.reduce(n)},reduceRight:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduceRight empty Set");return o.reduceRight(n)},count:n=>{let o=0;for(let a of e)n(a)&&o++;return o},find:n=>{for(let o of e)if(n(o))return f(o);return f(null)},exists:n=>{for(let o of e)if(n(o))return true;return false},forEach:n=>{e.forEach(n);},filter:n=>{let o=new q;for(let a of e)n(a)&&o.add(a);return M(o)},filterNot:n=>{let o=new q;for(let a of e)n(a)||o.add(a);return M(o)},drop:n=>M(Array.from(e).slice(n)),dropRight:n=>M(Array.from(e).slice(0,-n)),dropWhile:n=>{let o=Array.from(e),a=o.findIndex(s=>!n(s));return M(a===-1?[]:o.slice(a))},flatten:()=>{let n=new q;for(let o of e)if(Array.isArray(o))for(let a of o)n.add(a);else if(o&&typeof o=="object"&&Symbol.iterator in o)for(let a of o)n.add(a);else n.add(o);return M(n)},get head(){return Array.from(e)[0]},get headOption(){let n=Array.from(e)[0];return f(n)},toList:()=>m(Array.from(e)),toSet:()=>r,toArray:()=>Array.from(e),toString:()=>`Set(${Array.from(e).toString()})`,toValue:()=>({_tag:"Set",value:Array.from(e)}),pipe:n=>n(Array.from(e)),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Set",value:Array.from(e)}),toYAML:()=>`_tag: Set
2
- value: ${JSON.stringify(Array.from(e))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Set",value:Array.from(e)})).toString("base64")})};return r},rt=t=>M(t),Me={fromJSON:t=>{let e=JSON.parse(t);return ne(e.value)},fromYAML:t=>{let r=t.split(`
3
- `)[1]?.split(": ")[1];if(!r)return ne([]);let n=JSON.parse(r);return ne(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Me.fromJSON(e)}},ne=a(rt,Me);function x(t){let e=t;return {get(){return e},set(n){e=n;},update(n){e=n(e);},getAndSet(n){let o=e;return e=n,o},updateAndGet(n){return e=n(e),e},getAndUpdate(n){let o=e;return e=n(e),o},compareAndSet(n,o){return e===n?(e=o,true):false},modify(n){let[o,a]=n(e);return e=o,a}}}x.of=x;var ie=(t=0)=>{let e=x(t),r=t;return {get:()=>e.get(),set:n=>e.set(n),increment:()=>e.updateAndGet(n=>n+1),decrement:()=>e.updateAndGet(n=>n-1),reset:()=>e.set(r),compareAndSet:(n,o)=>e.compareAndSet(n,o)}};var Ae=()=>{let t=x([]);return {add:e=>t.update(r=>[...r,e]),addAll:e=>t.update(r=>[...r,...e]),build:()=>t.get(),clear:()=>t.set([]),size:()=>t.get().length}};var v=t=>{let e={_tag:"LazyList",[Symbol.iterator]:()=>t[Symbol.iterator](),map:r=>v((function*(){for(let n of t)yield r(n);})()),flatMap:r=>v((function*(){for(let n of t)yield*r(n);})()),filter:r=>v((function*(){for(let n of t)r(n)&&(yield n);})()),take:r=>v((function*(){let n=ie(0);for(let o of t){if(n.get()>=r)break;yield o,n.increment();}})()),drop:r=>v((function*(){let n=ie(0);for(let o of t)n.get()>=r&&(yield o),n.increment();})()),takeWhile:r=>v((function*(){for(let n of t){if(!r(n))break;yield n;}})()),dropWhile:r=>v((function*(){let n=x(true);for(let o of t)n.get()&&r(o)||(n.set(false),yield o);})()),concat:r=>v((function*(){yield*t,yield*r;})()),zip:r=>v((function*(){let n=t[Symbol.iterator](),o=r[Symbol.iterator]();for(;;){let a=n.next(),s=o.next();if(a.done||s.done)break;yield [a.value,s.value];}})()),toList:()=>m(Array.from(t)),toArray:()=>Array.from(t),forEach:r=>{for(let n of t)r(n);},reduce:(r,n)=>{let o=x(n);for(let a of t)o.set(r(o.get(),a));return o.get()},find:r=>{for(let n of t)if(r(n))return f(n);return f.none()},some:r=>{for(let n of t)if(r(n))return true;return false},every:r=>{for(let n of t)if(!r(n))return false;return true},count:()=>{let r=ie(0);for(let n of t)r.increment();return r.get()},first:()=>{let n=t[Symbol.iterator]().next();return n.done?f.none():f(n.value)},last:()=>{let r=x(void 0),n=x(false);for(let o of t)r.set(o),n.set(true);return n.get()?f(r.get()):f.none()},fold:(r,n)=>{let a=t[Symbol.iterator]().next();return a.done?r():n(a.value)},foldLeft:r=>n=>{let o=x(r);for(let a of t)o.set(n(o.get(),a));return o.get()},foldRight:r=>n=>Array.from(t).reduceRight((a,s)=>n(s,a),r),pipe:r=>r(e),serialize:()=>{let r=Array.from(t);return {toJSON:()=>JSON.stringify({_tag:"LazyList",value:r}),toYAML:()=>`_tag: LazyList
4
- value: ${me(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=ie(0),a=x(false);for(let i of t)if(o.get()<10)n.push(i),o.increment();else {a.set(true);break}let s=n.map(i=>String(i)).join(", ");return a.get()?`LazyList(${s}, ...)`:`LazyList(${s})`}};return e},ot=t=>v(t),at={empty:()=>v([]),of:t=>v([t]),from:(...t)=>v(t),iterate:(t,e)=>v((function*(){let r=x(t);for(;;)yield r.get(),r.set(e(r.get()));})()),generate:t=>v((function*(){for(;;)yield t();})()),range:(t,e,r=1)=>v((function*(){if(r===0)throw new Error("Step cannot be zero");let n=x(t);if(r>0)for(;n.get()<e;)yield n.get(),n.set(n.get()+r);else for(;n.get()>e;)yield n.get(),n.set(n.get()+r);})()),repeat:(t,e)=>v((function*(){if(e===void 0)for(;;)yield t;else {let r=ie(0);for(;r.get()<e;)yield t,r.increment();}})()),cycle:t=>v((function*(){let e=Array.from(t);if(e.length!==0)for(;;)yield*e;})())},$t=a(ot,at);var de=t=>({_tag:"Success",error:void 0,isSuccess(){return true},isFailure(){return false},get:()=>t,getOrElse:e=>t,getOrThrow:e=>t,orElse:e=>de(t),orNull:()=>t,orUndefined:()=>t,orThrow:e=>t,toEither:e=>c(t),map:e=>P(()=>e(t)),ap:e=>e.map(r=>r(t)),flatMap:e=>e(t),flatMapAsync:async e=>e(t),fold:(e,r)=>r(t),match:e=>e.Success(t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),toString:()=>`Success(${me(t)})`,toPromise:()=>Promise.resolve(t),toValue:()=>({_tag:"Success",value:t}),toOption:()=>U(t),toList:()=>m([t]),toTry:()=>de(t),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:t}),toYAML:()=>`_tag: Success
5
- value: ${me(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Success",value:t})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:e=>t===e,reduce:e=>t,reduceRight:e=>t,count:e=>e(t)?1:0,find:e=>e(t)?f(t):f(void 0),exists:e=>e(t),forEach:e=>e(t),[k](){return {ok:true,value:t}}}),$=t=>({_tag:"Failure",error:t,isSuccess(){return false},isFailure(){return true},get:()=>{throw t},getOrElse:e=>e,getOrThrow:e=>{throw e??t},orElse:e=>e,orNull:()=>null,orUndefined:()=>{},orThrow:e=>{throw e},toEither:e=>p(t),map:e=>$(t),ap:e=>$(t),flatMap:e=>$(t),flatMapAsync:e=>Promise.resolve($(t)),fold:(e,r)=>e(t),match:e=>e.Failure(t),foldLeft:e=>r=>e,foldRight:e=>r=>e,toString:()=>`Failure(${me(t)}))`,toPromise:()=>Promise.reject(t),toValue:()=>({_tag:"Failure",value:t}),toOption:()=>w(),toList:()=>m([]),toTry:()=>$(t),pipe:e=>{throw t},serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Failure",error:t.message,stack:t.stack}),toYAML:()=>`_tag: Failure
6
- error: ${t.message}
7
- stack: ${t.stack}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Failure",error:t.message,stack:t.stack})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:e=>false,reduce:e=>{throw new Error("Cannot reduce a Failure")},reduceRight:e=>{throw new Error("Cannot reduceRight a Failure")},count:e=>0,find:e=>f(null),exists:e=>false,forEach:e=>{},[k](){return {ok:false,empty:false,error:t}}}),st=t=>{try{return de(t())}catch(e){return $(e instanceof Error?e:new Error(String(e)))}},Ce={fromJSON:t=>{let e=JSON.parse(t);if(e._tag==="Success")return de(e.value);{let r=new Error(e.error);return e.stack&&(r.stack=e.stack),$(r)}},fromYAML:t=>{let e=t.split(`
8
- `),r=e[0]?.split(": ")[1];if(!r)return $(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=e[1]?.split(": ")[1];if(!n)return $(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return de(o)}else {let n=e[1]?.split(": ")[1];if(!n)return $(new Error("Invalid YAML format for Try Failure"));let o=e[2]?.split(": "),a=o&&o.length>1?o.slice(1).join(": "):void 0,s=new Error(n);return a&&(s.stack=a),$(s)}},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ce.fromJSON(e)}},P=a(st,Ce);function Le({_tag:t,impl:e}){return {...e,_tag:t}}function we(t,e){return !t||typeof t!="object"||!("_tag"in t)?false:e?t._tag===e:true}var O=t=>{let e=Array.from(t??[]),r={_tag:"List",[Symbol.iterator]:()=>e[Symbol.iterator](),get size(){return e.length},get length(){return e.length},map:n=>O(e.map(n)),ap:n=>O(e.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>O(e.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(e.map(async a=>await n(a)));return O(o.flatMap(a=>Array.from(a)))},forEach:n=>e.forEach(n),contains:n=>e.includes(n),count:n=>e.filter(n).length,exists:n=>e.some(n),filter:n=>O(e.filter(n)),filterNot:n=>O(e.filter(o=>!n(o))),filterType:n=>O(e.filter(o=>we(o,n))),find:(n,o)=>{let a=e.find(s=>n(s)&&(o?we(s,o):true));return f(a)},get head(){return e[0]},get headOption(){return e.length>0?f(e[0]):w()},get isEmpty(){return e.length===0},toArray:()=>[...e],reduce:n=>e.reduce(n),reduceRight:n=>e.reduceRight(n),fold:(n,o)=>{if(e.length===0)return n();let a=e[0];return o(a)},foldLeft:n=>o=>e.reduce(o,n),foldRight:n=>o=>e.reduceRight((a,s)=>o(s,a),n),match:n=>e.length===0?n.Empty():n.NonEmpty([...e]),remove:n=>O(e.filter(o=>o!==n)),removeAt:n=>n<0||n>=e.length?r:O([...e.slice(0,n),...e.slice(n+1)]),add:n=>O([...e,n]),get:n=>f(e[n]),concat:n=>O([...e,...n.toArray()]),drop:n=>O(e.slice(n)),dropRight:n=>O(e.slice(0,-n)),dropWhile:n=>O(e.slice(e.findIndex(o=>!n(o)))),flatten:()=>O(e.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>ne(e),toOption:()=>e.length>0?f(e[0]):w(),toEither:n=>e.length>0?c(e[0]):p(n),toTry:()=>e.length>0?P(()=>e[0]):P(()=>{throw new Error("Empty list")}),toString:()=>`List(${me(e)})`,toValue:()=>({_tag:"List",value:e}),pipe:n=>n([...e]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:e}),toYAML:()=>`_tag: List
9
- value: ${me(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:e})).toString("base64")}),[k](){return e.length===0?{ok:false,empty:true}:{ok:true,value:e[0]}}};return r},it=t=>O(t),Ve={fromJSON:t=>{let e=JSON.parse(t);return m(e.value)},fromYAML:t=>{let r=t.split(`
10
- `)[1]?.split(": ")[1];if(!r)return m([]);let n=JSON.parse(r);return m(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ve.fromJSON(e)}},m=a(it,Ve);var ze=t=>({_tag:"Right",value:t,isLeft(){return false},isRight(){return true},get:()=>t,getOrElse:e=>t,getOrThrow:()=>t,orElse:e=>c(t),orNull:()=>t,orUndefined:()=>t,map:e=>c(e(t)),ap:e=>e._tag==="Right"?c(e.value(t)):p(e.value),mapAsync:e=>e(t).then(r=>c(r)).catch(r=>Promise.resolve(p(r))),merge:e=>e.isLeft()?p(e.value):c([t,e.value]),flatMap:e=>e(t),flatMapAsync:e=>e(t).catch(r=>p(r)),toOption:()=>U(t),toList:()=>m([t]),toEither:e=>c(t),toTry:()=>P(()=>t),toJSON(){return {_tag:"Right",value:t}},toString:()=>`Right(${me(t)})`,*[Symbol.iterator](){yield t;},*yield(){yield t;},traverse:e=>{let r=e(t);return r.isLeft()?p(r.value):c([r.value])},*lazyMap(e){yield c(e(t));},tap:e=>(e(t),c(t)),tapLeft:e=>c(t),mapLeft:e=>c(t),bimap:(e,r)=>c(r(t)),fold:(e,r)=>r(t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),match:e=>e.Right(t),swap:()=>p(t),toPromise:()=>Promise.resolve(t),toValue:()=>({_tag:"Right",value:t}),pipeEither:(e,r)=>r(t),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Right",value:t}),toYAML:()=>`_tag: Right
11
- value: ${me(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Right",value:t})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:e=>t===e,reduce:e=>t,reduceRight:e=>t,count:e=>e(t)?1:0,find:e=>e(t)?U(t):w(),exists:e=>e(t),forEach:e=>e(t),[k](){return {ok:true,value:t}}}),De=t=>({_tag:"Left",value:t,isLeft(){return true},isRight(){return false},get:()=>{throw new Error(`Cannot call get() on Left(${me(t)})`)},getOrElse:e=>e,getOrThrow:e=>{throw e??t},orElse:e=>e,orNull:()=>null,orUndefined:()=>{},map:e=>p(t),ap:e=>p(t),mapAsync:e=>Promise.resolve(p(t)),merge:e=>p(t),flatMap:e=>p(t),flatMapAsync:e=>Promise.resolve(p(t)),toOption:()=>w(),toList:()=>m(),toEither:e=>p(e),toTry:()=>P(()=>{throw new Error(String(t))}),toJSON(){return {_tag:"Left",value:t}},toString:()=>`Left(${me(t)})`,*[Symbol.iterator](){},*yield(){},traverse:e=>p(t),*lazyMap(e){yield p(t);},tap:e=>p(t),tapLeft:e=>(e(t),p(t)),mapLeft:e=>p(e(t)),bimap:(e,r)=>p(e(t)),fold:(e,r)=>e(t),foldLeft:e=>r=>e,foldRight:e=>r=>e,match:e=>e.Left(t),swap:()=>c(t),toPromise:()=>Promise.reject(t),toValue:()=>({_tag:"Left",value:t}),pipeEither:(e,r)=>e(t),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Left",value:t}),toYAML:()=>`_tag: Left
12
- value: ${me(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Left",value:t})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:e=>false,reduce:e=>{throw new Error("Cannot reduce a Left")},reduceRight:e=>{throw new Error("Cannot reduceRight a Left")},count:e=>0,find:e=>w(),exists:e=>false,forEach:e=>{},[k](){return {ok:false,empty:false,error:t}}}),c=t=>ze(t),p=t=>De(t),fr=t=>t.isRight(),dr=t=>t.isLeft(),mr=(t,e)=>{try{return c(t())}catch(r){return p(e(r))}},ut=t=>ze(t);console.assert(ut);var lt=t=>De(t);console.assert(lt);var yr=async(t,e)=>{try{let r=await t();return c(r)}catch(r){return p(e(r))}},Ie={sequence:t=>t.reduce((e,r)=>e.isLeft()?e:r.isLeft()?p(r.value):e.map(n=>[...n,r.value]),c([])),traverse:(t,e)=>Ie.sequence(t.map(e)),fromNullable:(t,e)=>t==null?p(e):c(t),fromPredicate:(t,e,r)=>e(t)?c(t):p(r),ap:(t,e)=>t.flatMap(r=>e.map(r)),fromPromise:async(t,e)=>{try{let r=await t;return c(r)}catch(r){return p(e(r))}},fromJSON:t=>{let e=JSON.parse(t);return e._tag==="Right"?c(e.value):p(e.value)},fromYAML:t=>{let e=t.split(`
13
- `),r=e[0]?.split(": ")[1],n=e[1]?.split(": ")[1];if(!r||!n)throw new Error("Invalid YAML format for Either");let o=JSON.parse(n);return r==="Right"?c(o):p(o)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ie.fromJSON(e)}};function I(t,e){return {brand:t,validate:e,of:r=>e(r)?f(a$1(t,r)):f.none(),from:r=>e(r)?c(a$1(t,r)):p(`Invalid ${t}: validation failed`),unsafeOf:r=>{if(!e(r))throw new Error(`Invalid ${t}: validation failed`);return a$1(t,r)},is:r=>{try{return e(r)}catch{return false}},unwrap:r=>r,refine:(r,n)=>I(r,o=>e(o)&&n(o))}}var pt=I("PositiveNumber",t=>t>0),Ar=I("NonNegativeNumber",t=>t>=0),Lr=I("IntegerNumber",t=>Number.isInteger(t)),kr=pt.refine("PositiveInteger",t=>Number.isInteger(t)),xr=I("NonEmptyString",t=>t.length>0),br=I("EmailAddress",t=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)),wr=I("UrlString",t=>{try{return new URL(t),!0}catch{return !1}}),Ur=I("UUID",t=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)),Sr=I("ISO8601Date",t=>!isNaN(Date.parse(t))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(t));function vr(t,e,r){return I(t,n=>n>=e&&n<=r)}function Or(t,e,r){return I(t,n=>n.length>=e&&n.length<=r)}function Br(t,e){return I(t,r=>e.test(r))}var Ue=t=>{let e=n=>typeof n=="function"?n():n,r={when:(n,o)=>t.resolved?r:n?Ue({resolved:true,value:e(o)}):r,elseWhen:(n,o)=>t.resolved?r:n?Ue({resolved:true,value:e(o)}):r,else:n=>t.resolved?t.value:e(n),getOrThrow:()=>{if(!t.resolved)throw new Error("Conditional expression has no matching condition");return t.value}};return r},Ke=()=>Ue({resolved:false}),ct={of:()=>Ke(),match:t=>e=>{let r=e[t];if(r===void 0)throw new Error(`No case defined for value: ${String(t)}`);return typeof r=="function"?r():r},lazy:()=>{let t={resolved:false},e={when:(r,n)=>(t.resolved||r()&&(t.resolved=true,t.value=n()),e),elseWhen:(r,n)=>(t.resolved||r()&&(t.resolved=true,t.value=n()),e),else:r=>t.resolved?t.value:r()};return e}},Nr=a(Ke,ct);var ue=(t,e)=>e===t?true:typeof e=="function"?e(t):e&&typeof e=="object"&&"_"in e?e._(t):typeof e=="object"&&e!==null&&typeof t=="object"&&t!==null?Object.entries(e).every(([r,n])=>{let o=t[r];return ue(o,n)}):false,oe=t=>{let e=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of t.patterns)if(ue(t.value,o))return {matched:true,result:e(a,t.value)};return {matched:false}},n={case:(o,a)=>{if(t.resolved)return n;let s={...t,patterns:[...t.patterns,{pattern:o,result:a}]};return ue(t.value,o)?oe({...s,resolved:true,result:e(a,t.value)}):oe(s)},caseValue:(o,a)=>{if(t.resolved)return n;if(t.value===o){let s=typeof a=="function"?a():a;return oe({...t,resolved:true,result:s})}return n},caseValues:(o,a)=>{if(t.resolved)return n;if(o.includes(t.value)){let s=typeof a=="function"?a():a;return oe({...t,resolved:true,result:s})}return n},when:(o,a)=>n.case(o,a),caseAny:(o,a)=>{if(t.resolved)return n;for(let s of o)if(ue(t.value,s))return oe({...t,resolved:true,result:e(a,t.value),patterns:[...t.patterns,{pattern:s,result:a}]});return oe({...t,patterns:[...t.patterns,...o.map(s=>({pattern:s,result:a}))]})},default:o=>t.resolved?t.result:e(o,t.value),exhaustive:()=>{let o=r();if(!o.matched)throw new Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(t.value)}`);return o.result},getOrThrow:o=>{let a=r();if(!a.matched)throw new Error(o??`No matching pattern for value: ${JSON.stringify(t.value)}`);return a.result},toOption:()=>{let o=r();return o.matched?f(o.result):f.none()}};return n},Tt=t=>oe({value:t,resolved:false,patterns:[]}),ft={exhaustive:t=>e=>{let r=t[e];if(r===void 0)throw new Error(`No case defined for value: ${String(e)}`);return r},partial:t=>({withDefault:e=>r=>{let n=t[r];return n!==void 0?typeof n=="function"?n(r):n:typeof e=="function"?e(r):e}}),withGuards:t=>({withDefault:e=>r=>{for(let[n,o]of t)if(n(r))return typeof o=="function"?o(r):o;return typeof e=="function"?e(r):e}}),struct:()=>{let t=[],e={case:(r,n)=>(t.push({pattern:r,handler:n}),e),build:()=>r=>{for(let{pattern:n,handler:o}of t)if(ue(r,n))return o(r);throw new Error(`No matching pattern for value: ${JSON.stringify(r)}`)}};return e},builder:()=>{let t=[],e,r={case:(n,o)=>(t.push({pattern:n,result:o}),r),when:(n,o)=>(t.push({pattern:n,result:o}),r),default:n=>(e=n,{build:()=>o=>{for(let{pattern:a,result:s}of t)if(ue(o,a))return typeof s=="function"?s(o):s;if(e!==void 0)return typeof e=="function"?e(o):e;throw new Error(`No matching pattern for value: ${JSON.stringify(o)}`)}})};return r}},Vr=a(Tt,ft);function $e(t,e){return {...Le({_tag:t,impl:e}),toString(){return `${t}()`},[k](){if("isSome"in e&&"isNone"in e){if(typeof e.isSome=="function"&&e.isSome()&&"get"in e&&typeof e.get=="function")return {ok:true,value:e.get()};if(typeof e.isNone=="function"&&e.isNone())return {ok:false,empty:true}}if("isLeft"in e&&"isRight"in e){if(typeof e.isRight=="function"&&e.isRight()&&"value"in e)return {ok:true,value:e.value};if(typeof e.isLeft=="function"&&e.isLeft()&&"value"in e)return {ok:false,empty:false,error:e.value}}if("isSuccess"in e&&"isFailure"in e){if(typeof e.isSuccess=="function"&&e.isSuccess()&&"get"in e&&typeof e.get=="function")return {ok:true,value:e.get()};if(typeof e.isFailure=="function"&&e.isFailure()&&"getError"in e&&typeof e.getError=="function")return {ok:false,empty:false,error:e.getError()}}if("isEmpty"in e&&"head"in e){if(typeof e.isEmpty=="function"&&e.isEmpty())return {ok:false,empty:true};if(typeof e.head=="function")return {ok:true,value:e.head()};if("head"in e)return {ok:true,value:e.head}}return {ok:true,value:e}}}}function Je(t){if(!t||typeof t!="object"||!("_tag"in t))return "unknown";switch(t._tag){case "Some":case "None":return "Option";case "Left":case "Right":return "Either";case "List":return "List";case "Success":case "Failure":return "Try";default:return "unknown"}}var ee={Option:{of:t=>f(t),empty:()=>f.none()},Either:{of:t=>c(t),empty:t=>p(t)},List:{of:t=>m([t]),empty:()=>m([])},Try:{of:t=>P(()=>t),empty:t=>P(()=>{throw t??new Error("Try failed")})}};function Yr(t){let e=t(),r=null;function n(o){let a=e.next(o);if(a.done)return r&&r in ee?ee[r]?.of(a.value):m([a.value]);let s=a.value;if(!r&&s&&typeof s=="object"&&"_tag"in s&&(r=Je(s),r==="List"))return dt(t);if(s&&typeof s=="object"&&k in s){let i=s[k]();if(!i.ok){if(!r||!(r in ee))return m([]);let u=ee[r];if("empty"in i&&!i.empty&&"error"in i){if(r==="Either")return u?.empty(i.error);if(r==="Try")return u?.empty(i.error instanceof Error?i.error:new Error(String(i.error)))}return u?.empty()}return n(i.value)}throw new Error("Do-notation error: All yielded values must be monadic. Use yield* $(Option(value)), yield* $(Right(value)), etc. Raw values should be assigned directly without yielding.")}return n()}function dt(t){function e(o){if(!o||typeof o!="object"||!(k in o))return [o];let a=o;if("toArray"in a&&typeof a.toArray=="function"){let i=a.toArray();return i.length===0?[]:i}let s=a[k]();return s.ok?[s.value]:[]}function r(o){let a=t(),s=[],i=[],u=0;function l(d){let y=a.next(d);if(y.done){s.push(y.value);return}if(u<o.length){let R=o[u];i.push(R),u++,l(R);return}let A=e(y.value);if(A.length!==0)if(A.length>1){let R=A.flatMap(E=>{let F=[...i,E];return r(F)});s.push(...R);}else i.push(A[0]),u++,l(A[0]);}return l(void 0),s}let n=r([]);return m(n)}async function qr(t){let e=t(),r=null;async function n(o){let a=await e.next(o);if(a.done)return r&&r in ee?ee[r]?.of(a.value):m([a.value]);let s=await Promise.resolve(a.value);if(!r&&s&&typeof s=="object"&&"_tag"in s&&(r=Je(s)),s&&typeof s=="object"&&k in s){let i=s[k]();if(!i.ok){if(!r||!(r in ee))return m([]);let u=ee[r];if("empty"in i&&!i.empty&&"error"in i){if(r==="Either")return u?.empty(i.error);if(r==="Try")return u?.empty(i.error instanceof Error?i.error:new Error(String(i.error)))}return u?.empty()}return n(i.value)}return n(s)}return n()}function Qr(t){return t!==null&&typeof t=="object"&&k in t}function Hr(t){let e=t[k]();if(e.ok)return e.value;throw "error"in e?e.error:new Error("Cannot unwrap empty monad")}function*Zr(t){return yield t}var Xr=(t="Cannot unwrap None in Do-notation")=>{let e=new Error(t),r=Object.create(Error.prototype);return r.message=e.message,r.stack=e.stack,r.name="NoneError",r},en=(t,e="Cannot unwrap Left in Do-notation")=>{let r=new Error(e),n=Object.create(Error.prototype);return n.message=r.message,n.stack=r.stack,n.name="LeftError",n.value=t,n},tn=(t="Cannot unwrap empty List in Do-notation")=>{let e=new Error(t),r=Object.create(Error.prototype);return r.message=e.message,r.stack=e.stack,r.name="EmptyListError",r},rn=(t,e="Cannot unwrap Failure in Do-notation")=>{let r=new Error(e),n=Object.create(Error.prototype);return n.message=r.message,n.stack=r.stack,n.name="FailureError",n.cause=t,n};var ke="Throwable",Q=class t extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=ke;this.name=n?.taskInfo?.name??ke,Object.defineProperties(this,{_tag:{value:ke,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??ke,writable:false,configurable:false}}),n?.cause&&Object.defineProperty(this,"cause",{value:n.cause,writable:false,configurable:false}),n?.stack?this.stack=n.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}static apply(r,n,o){if(r instanceof Error){let u=new t(r.message,{data:n,cause:r.cause??void 0,stack:r.stack??void 0,taskInfo:o});for(let l of Object.keys(r))if(!(l in u)){let d=u,y=r;d[l]=y[l];}return u}if(r&&typeof r=="object"){let u=r,l=typeof u.message=="string"?u.message:typeof u.error=="string"?u.error:`Object error: ${JSON.stringify(u,Object.getOwnPropertyNames(u).filter(y=>u[y]!==void 0))}`,d=new t(l,{data:n??u,taskInfo:o});for(let y of Object.keys(u))if(!(y in d)){let A=d;A[y]=u[y];}return d}if(typeof r=="function"){let u=r.name??"anonymous function",l=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new t(`Function error: ${u}`,{data:n??{functionType:typeof r,functionName:u,functionString:l},taskInfo:o})}let a=typeof r,s=r===null?"null":r===void 0?"undefined":String(r);if(a==="number"){let u=r,l=Number.isNaN(u)?"Number error: NaN":Number.isFinite(u)?`Number error: ${u}`:`Number error: ${u>0?"Infinity":"-Infinity"}`;return new t(l,{data:n??{errorType:a,errorValue:u,originalError:r},taskInfo:o})}if(a==="bigint")return new t(`BigInt error: ${r}n`,{data:n??{errorType:a,errorValue:String(r),originalError:r},taskInfo:o});if(a==="boolean")return new t(`Boolean error: ${r}`,{data:n??{errorType:a,errorValue:r,originalError:r},taskInfo:o});if(a==="symbol"){let u=r.description??"unnamed symbol";return new t(`Symbol error: Symbol(${u})`,{data:n??{errorType:a,symbolDescription:u,originalError:r},taskInfo:o})}let i=typeof r=="string"?r:`${a.charAt(0).toUpperCase()+a.slice(1)} error: ${s}`;return new t(i,{data:n??{errorType:a,errorValue:s,originalError:r},taskInfo:o})}};var b=t=>{let e=new Promise((r,n)=>{try{t(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>b((n,o)=>{e.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>b((n,o)=>{e.then(a=>{try{let s=r(a);"_tag"in s&&s._tag==="FPromise"?s.then(n,o):Promise.resolve(s).then(n,o);}catch(s){o(s);}}).catch(o);}),flatMapAsync:async r=>{let n=await e,o=r(n);return o instanceof Promise?o:new Promise((a,s)=>{o.then(a,s);})},tap:r=>b((n,o)=>{e.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>b((n,o)=>{e.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};o(r(a,s));}catch(s){o(s);}});}),tapError:r=>b((n,o)=>{e.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>b(n=>{e.then(n).catch(()=>n(r));}),recoverWith:r=>b(n=>{e.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>b((n,o)=>{e.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>b((o,a)=>{e.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(i){a(i);}else a(s);});}),logError:r=>b((n,o)=>{e.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};r(a,s);}catch{}finally{o(a);}});}),then:(r,n)=>e.then(r,n),toPromise:()=>e,toEither:async()=>{try{let r=await e;return c(r)}catch(r){return p(r)}},fold:(r,n)=>b((o,a)=>{e.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},mt={resolve:t=>b(e=>e(t)),reject:t=>b((e,r)=>r(t)),from:t=>b((e,r)=>{t.then(e).catch(r);}),fromEither:t=>t.isRight()?b(e=>e(t.value)):b((e,r)=>r(t.value)),all:t=>b((e,r)=>{Promise.all(t.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(e).catch(r);}),allSettled:t=>b(e=>{let r=[],n=0;if(t.length===0){e([]);return}t.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=c(s),n++,n===t.length&&e(r);}).catch(s=>{r[a]=p(s),n++,n===t.length&&e(r);});});}),race:t=>b((e,r)=>{Promise.race(t).then(e,r);}),any:t=>b((e,r)=>{if(typeof Promise.any=="function")Promise.any(t).then(e,r);else {let n=0,o=[];if(t.length===0){r(new AggregateError([],"All promises were rejected"));return}t.forEach((a,s)=>{Promise.resolve(a).then(e).catch(i=>{o[s]=i,n++,n===t.length&&r(new AggregateError(o,"All promises were rejected"));});});}}),retryWithBackoff:(t,e)=>{let{maxRetries:r,baseDelay:n=100,shouldRetry:o=()=>true}=e;return b((a,s)=>{let i=0,u=()=>{t().toPromise().then(a).catch(l=>{if(i++,i<=r&&o(l,i)){let d=n*Math.pow(2,i-1);setTimeout(u,d);}else s(l);});};u();})}},Se=a(b,mt);function yt(t){return t instanceof Error&&typeof t=="object"&&true&&t._tag==="Throwable"}var z=(t,e)=>{if(t.isRight())return H(t.get(),e);if(t.isLeft())return ye(t,void 0,e);throw new Error("Unrecognized task outcome")},ye=(t,e,r)=>{let n={name:r?.name??"Task",description:r?.description??""},o=Q.apply(t,e,n),a=p(o),{isLeft:s,isRight:i,...u}=a;return {...u,_tag:"TaskFailure",_meta:n,error:o,map:l=>{let d=a.map(l);return z(d,r)},flatMap:l=>{let d=a.flatMap(l);return z(d,r)},ap:l=>{let d=a.ap(l);return z(d,r)},merge:l=>{let d=a.merge(l);return z(d,r)},mapAsync:async l=>{let d=await a.mapAsync(l);return z(d,r)},flatMapAsync:async l=>{let d=await a.flatMapAsync(l);return z(d,r)},isSuccess(){return false},isFailure(){return true},mapError:l=>ye(l(o),e,r),recover:l=>H(l,r),recoverWith:l=>H(l(o),r)}},H=(t,e)=>{let r={name:e?.name??"Task",description:e?.description??""},n=c(t),{isLeft:o,isRight:a,...s}=n;return {...s,_tag:"TaskSuccess",_meta:r,map:i=>{let u=n.map(i);return z(u,e)},flatMap:i=>{let u=n.flatMap(i);return z(u,e)},ap:i=>{let u=n.ap(i);return z(u,e)},merge:i=>{let u=n.merge(i);return z(u,e)},mapAsync:async i=>{let u=await n.mapAsync(i);return z(u,e)},flatMapAsync:async i=>{let u=await n.flatMapAsync(i);return z(u,e)},isSuccess(){return true},isFailure(){return false},mapError:i=>H(t,e),recover:i=>H(t,e),recoverWith:i=>H(t,e)}},Oe=(t,e)=>H(t,e),N=(t,e,r)=>ye(t,e,r),ve=()=>{let t=new AbortController,e=Ae();return {token:{get isCancelled(){return t.signal.aborted},get signal(){return t.signal},onCancel(n){t.signal.aborted?n():e.add(n);}},cancel(){t.signal.aborted||(t.abort(),e.build().forEach(n=>{try{n();}catch(o){console.error("Error in cancellation callback:",o);}}));}}},gt=t=>{let e=t?.name??"Task",r=t?.description??"",n={Async:(o,a=u=>u,s=()=>{},i)=>Se((u,l)=>{(async()=>{let d=x(false),y=x(null),A=x(()=>{});if(i){if(i.isCancelled){try{await s();}catch(E){u(N(E,void 0,{name:e,description:r}));return}u(N(new Error("Task was cancelled before execution started"),void 0,{name:e,description:r}));return}let R=()=>{d.set(true),y.set(new Error("Task was cancelled during execution"));};i.onCancel(R),A.set(()=>{});}try{let R=await o();try{await s();}catch(E){u(N(E,void 0,{name:e,description:r}));return}if(d.get()){y.get()?u(N(y.get(),void 0,{name:e,description:r})):u(N(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}if(R&&typeof R=="object"&&"_tag"in R){let E=R;E._tag==="TaskSuccess"||E._tag==="TaskFailure"?u(E):u(Oe(R,{name:e,description:r}));}else u(Oe(R,{name:e,description:r}));}catch(R){try{await s();}catch(E){u(N(E,void 0,{name:e,description:r}));return}if(d.get()){y.get()?u(N(y.get(),void 0,{name:e,description:r})):u(N(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}try{if(R instanceof Error&&yt(R)){let E=new Error(`${e}: ${R.message}`),F=Q.apply(E,void 0,{name:e,description:r});Object.defineProperty(F,"cause",{value:R,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(R);}catch(X){console.error("Error in error handler:",X);}}),u(N(F,void 0,{name:e,description:r}));}else {let E=await a(R);if(E&&typeof E=="object"&&"_tag"in E){let F=E;F._tag==="TaskSuccess"||F._tag==="TaskFailure"?u(F):u(N(E,void 0,{name:e,description:r}));}else u(N(E,void 0,{name:e,description:r}));}}catch(E){u(N(E,void 0,{name:e,description:r}));}}finally{A.get()();}})().catch(d=>u(N(d,void 0,{name:e,description:r})));}),Sync:(o,a=i=>i,s=()=>{})=>{try{return H(o(),{name:e,description:r})}catch(i){return ye(a(i),void 0,{name:e,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=l=>l,i=()=>{},u)=>{let l=d=>{let y=Math.max(0,Math.min(100,d));y<=100&&a(y);};return n.Async(()=>o(l),s,i,u)}};return {...$e("Task",n),_type:"Task"}},je={success:(t,e)=>H(t,e),fail:(t,e,r)=>ye(t,e,r),ok:(t,e)=>Oe(t,e),err:(t,e,r)=>N(t,e,r),getErrorChain:t=>{if(!t)return [];let e=Ae();e.add(t);let r=x(t);for(;r.get()&&r.get().cause;){let{cause:n}=r.get();if(n)e.add(n),r.set(n);else break;if(e.size()>100)break}return e.build()},formatErrorChain:(t,e)=>{let r=je.getErrorChain(t),n=e?.separator??`
14
- `;return r.map((o,a)=>{if(!o)return `${a>0?"\u21B3 ":""}Unknown error`;let{taskInfo:s}=o,i=e?.includeTasks&&s?.name?`[${s.name}] `:"",u=o.message??"No message",l=x(`${a>0?"\u21B3 ":""}${i}${u}`);return e?.includeStackTrace&&o.stack&&l.set(`${l.get()}
15
- ${o.stack.split(`
16
- `).slice(1).join(`
17
- `)}`),l.get()}).join(n)},fromPromise:(t,e)=>(...r)=>J(e??{name:"PromiseTask",description:"Task from Promise"}).Async(()=>t(...r),o=>o),toPromise:t=>new Promise((e,r)=>{t.isSuccess()?e(t.get()):r(t.error);}),race:(t,e,r)=>{let n=r?.name??"TaskRace",o=r?.description??"Race between multiple tasks";return J({name:n,description:o}).Async(async()=>{let s=Ae();t.forEach(u=>s.add(u));let i=x(void 0);if(typeof e=="number"&&e>0){let u=Se((l,d)=>{i.set(setTimeout(()=>{d(new Error(`Task race timed out after ${e}ms`));},e));});s.add(u);}try{return await new Promise((u,l)=>{s.build().forEach(d=>{d.then(y=>{if(y&&typeof y=="object"&&"_tag"in y){let A=y;A._tag==="TaskSuccess"?u(A.get()):A._tag==="TaskFailure"?l(A.error):u(y);}else u(y);},y=>l(y));});})}finally{i.get()&&clearTimeout(i.get());}},s=>s)},fromNodeCallback:(t,e)=>{let r=e?.name??"NodeCallbackTask",n=e?.description??"Task from Node.js callback function",o={name:r,description:n};return (...a)=>J(o).Async(()=>new Promise((s,i)=>{try{t(...a,(u,l)=>{u?i(u):s(l);});}catch(u){i(u);}}),s=>s)},createCancellationTokenSource:ve,cancellable:(t,e)=>{let r=ve();return {task:J(e).Async(()=>t(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(t,e=()=>{},r)=>{let n=ve(),o=x(0),a=i=>{o.set(Math.max(0,Math.min(100,i))),e(o.get());};return {task:J(r).Async(()=>t(a,n.token),i=>i,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o.get()}}},J=a(gt,je);var We={includeTasks:true,includeStackTrace:false,separator:`
18
- `,includeData:false,maxStackFrames:3,title:"Error",colors:false};function Ge(t){let e=new WeakSet;return JSON.stringify(t,(r,n)=>{if(typeof n=="bigint")return `${n.toString()}n`;if(typeof n=="object"&&n!==null){if(e.has(n))return "[Circular Reference]";e.add(n);}return r==="stack"&&typeof n=="string"?xe(n):n},2)}function xe(t){if(t===void 0||t==="")return "";let e=t.split(`
19
- `),r=e[0],n=e.slice(1).map(o=>o.trim());return [r,...n].join(`
20
- `)}function Rn(t,e){let r={...We,...e},n=t instanceof Error?t:Q.apply(t),o=J?.getErrorChain?J.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((u,l)=>{let d=" ".repeat(l),y=l>0?"\u21B3 ":"",{taskInfo:A}=u,R=r.includeTasks&&A?.name?r.colors?`\x1B[36m[${A.name}]\x1B[0m `:`[${A.name}] `:"",E=`${d}${y}${R}${u.message}`;if(r.includeStackTrace&&u.stack){let X=xe(u.stack).split(`
21
- `).slice(1),ae=r.maxStackFrames??We.maxStackFrames??3,he=X.slice(0,ae).map(Ee=>`${d} ${r.colors?"\x1B[90m":""}${Ee}${r.colors?"\x1B[0m":""}`).join(`
22
- `);E+=`
23
- ${he}`,X.length>ae&&(E+=`
24
- ${d} ${r.colors?"\x1B[90m":""}...${X.length-ae} more stack frames${r.colors?"\x1B[0m":""}`);}return E}).join(r.separator),i=`${a}
25
-
26
- ${s}`;if(r.includeData){let{data:u}=n;if(u){let l=r.colors?`
27
-
28
- \x1B[33mContext:\x1B[0m
29
- ${Ge(u)}`:`
30
-
31
- Context:
32
- ${Ge(u)}`;i+=l;}}return i}function An(){return function(e){if(!e)return e;let r=e instanceof Error?e:new Error(String(e)),n={message:r.message,name:r.name||"Error",stack:r.stack?xe(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof J?.getErrorChain=="function")try{let o=J.getErrorChain(r);o.length>1&&(n.errorChain=J.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?xe(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var kn=t=>{let e=new Error(t);return e.name="ParseError",e};var j=(t,e,r,n)=>{let o=Q.apply(e,r,{name:t,description:e});return Object.assign(o,{code:t,message:e,status:ht(t),context:r,timestamp:new Date().toISOString(),traceId:n?.traceId})},ht=t=>({VALIDATION_FAILED:400,BAD_REQUEST:400,AUTH_REQUIRED:401,PERMISSION_DENIED:403,NOT_FOUND:404,TIMEOUT:408,CONFLICT:409,RATE_LIMITED:429,INTERNAL_ERROR:500,NETWORK_ERROR:503})[t],Et={validation:(t,e,r)=>j("VALIDATION_FAILED",`Validation failed: ${t} ${r}`,{field:t,value:e,rule:r}),network:(t,e,r)=>j("NETWORK_ERROR",`Network error: ${e} ${t}${r?` (${r})`:""}`,{url:t,method:e,statusCode:r}),auth:(t,e)=>j("AUTH_REQUIRED",`Authentication required: ${t}${e?` (role: ${e})`:""}`,{resource:t,requiredRole:e}),notFound:(t,e)=>j("NOT_FOUND",`Not found: ${t} with id ${e}`,{resource:t,id:e}),permission:(t,e,r)=>j("PERMISSION_DENIED",`Permission denied: cannot ${t} ${e}`,{action:t,resource:e,userId:r}),rateLimit:(t,e,r)=>j("RATE_LIMITED",`Rate limit exceeded: ${t} requests per ${e}`,{limit:t,window:e,retryAfter:r}),internal:t=>j("INTERNAL_ERROR",`Internal server error: ${t}`,{errorId:t,timestamp:new Date().toISOString()}),badRequest:(t,e)=>j("BAD_REQUEST",`Bad request: ${t}`,{reason:t,expected:e}),conflict:(t,e)=>j("CONFLICT",`Conflict: ${t} already exists with value ${e}`,{resource:t,conflictingValue:e}),timeout:(t,e)=>j("TIMEOUT",`Request timeout: ${e} exceeded ${t}ms`,{duration:t,operation:e}),isTypedError:t=>typeof t=="object"&&t!==null&&"code"in t&&"message"in t&&"status"in t&&"context"in t&&"_tag"in t&&t._tag==="Throwable",hasCode:(t,e)=>t.code===e},S=Object.assign(j,Et);var C={rule:t=>e=>{if(t==="email")return typeof e!="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?p(S.validation("value",e,"must be a valid email")):c(e);if(t==="url")try{return new URL(String(e)),c(e)}catch{return p(S.validation("value",e,"must be a valid URL"))}if(t==="uuid")return typeof e!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)?p(S.validation("value",e,"must be a valid UUID")):c(e);if(t==="required")return e==null||e===""?p(S.validation("value",e,"is required")):c(e);if(t==="numeric")return typeof e!="number"&&!/^\d+$/.test(String(e))?p(S.validation("value",e,"must be numeric")):c(e);if(t==="alpha")return typeof e!="string"||!/^[a-zA-Z]+$/.test(e)?p(S.validation("value",e,"must contain only letters")):c(e);if(t==="alphanumeric")return typeof e!="string"||!/^[a-zA-Z0-9]+$/.test(e)?p(S.validation("value",e,"must be alphanumeric")):c(e);if(t.startsWith("min:")){let r=Number(t.split(":")[1]),n=Number(e);return isNaN(n)||n<r?p(S.validation("value",e,`must be at least ${r}`)):c(e)}if(t.startsWith("max:")){let r=Number(t.split(":")[1]),n=Number(e);return isNaN(n)||n>r?p(S.validation("value",e,`must be at most ${r}`)):c(e)}if(t.startsWith("minLength:")){let r=Number(t.split(":")[1]);return String(e).length<r?p(S.validation("value",e,`must be at least ${r} characters`)):c(e)}if(t.startsWith("maxLength:")){let r=Number(t.split(":")[1]);return String(e).length>r?p(S.validation("value",e,`must be at most ${r} characters`)):c(e)}if(t.startsWith("pattern:")){let r=t.substring(8);return new RegExp(r).test(String(e))?c(e):p(S.validation("value",e,`must match pattern ${r}`))}if(t.startsWith("in:")){let r=t.substring(3).split(",");return r.includes(String(e))?c(e):p(S.validation("value",e,`must be one of: ${r.join(", ")}`))}if(t.startsWith("notIn:")){let r=t.substring(6).split(",");return r.includes(String(e))?p(S.validation("value",e,`must not be one of: ${r.join(", ")}`)):c(e)}if(t==="date"){let r=new Date(String(e));return isNaN(r.getTime())?p(S.validation("value",e,"must be a valid date")):c(e)}if(t==="future"){let r=new Date(String(e));return isNaN(r.getTime())||r<=new Date?p(S.validation("value",e,"must be a future date")):c(e)}if(t==="past"){let r=new Date(String(e));return isNaN(r.getTime())||r>=new Date?p(S.validation("value",e,"must be a past date")):c(e)}return c(e)},combine:(...t)=>e=>{for(let r of t){let n=r(e);if(n.isLeft())return n}return c(e)},custom:(t,e)=>r=>t(r)?c(r):p(S.validation("value",r,e)),form:(t,e)=>{let r=[],n={};for(let[o,a]of Object.entries(t)){let s=e[o],i=a(s);if(i.isLeft()){let u=i.fold(d=>d,()=>{throw new Error("Should not be left")}),l=S.validation(o,s,u.context.rule);r.push(l);}else n[o]=i.get();}return r.length>0?p(m(r)):c(n)}},Rt={...C,validators:{email:C.rule("email"),url:C.rule("url"),uuid:C.rule("uuid"),required:C.rule("required"),numeric:C.rule("numeric"),positiveNumber:C.combine(C.rule("numeric"),C.rule("min:0")),nonEmptyString:C.combine(C.rule("required"),C.custom(t=>typeof t=="string"&&t.trim().length>0,"must not be empty"))}},On=Object.assign(C.rule,Rt);function At(t){return t!=null&&typeof t=="object"&&"getOrElse"in t&&typeof t.getOrElse=="function"&&"getOrThrow"in t&&typeof t.getOrThrow=="function"&&"get"in t&&typeof t.get=="function"&&"orElse"in t&&typeof t.orElse=="function"&&"orNull"in t&&typeof t.orNull=="function"&&"orUndefined"in t&&typeof t.orUndefined=="function"}var Vn={toOption:t=>t.fold(()=>w(),e=>U(e)),toList:t=>t.fold(()=>m([]),e=>m([e])),toEither:(t,e)=>t.fold(()=>p(e),r=>c(r)),isEmpty:t=>t.fold(()=>true,()=>false),size:t=>t.fold(()=>0,()=>1)};var te=t=>t!==null&&typeof t=="object"&&(t._tag==="Some"||t._tag==="None"),Y=t=>t!==null&&typeof t=="object"&&t._tag==="List",le=t=>t!==null&&typeof t=="object"&&(t._tag==="Left"||t._tag==="Right"),pe=t=>t!==null&&typeof t=="object"&&(t._tag==="Success"||t._tag==="Failure"),W=()=>{let t=(s,i)=>{if(te(s))return s.map(u=>i(u));if(Y(s))return s.map(u=>i(u));if(le(s))return s.map(u=>i(u));if(pe(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},e=s=>{if(te(s))return s.get();if(Y(s)){let i=s.toArray();if(i.length>0&&Y(i[0])){let u=[];for(let l of i)Y(l)&&u.push(...l.toArray());return m(u)}return s.flatten()}if(le(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(pe(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(te(s))return s.flatMap(u=>i(u));if(Y(s))return s.flatMap(u=>i(u));if(le(s))return s.flatMap(u=>i(u));if(pe(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(te(s)&&te(i))return s.flatMap(u=>i.map(l=>u(l)));if(Y(s)&&Y(i))return s.flatMap(u=>i.map(l=>u(l)));if(le(s)&&le(i))return s.flatMap(u=>i.map(l=>u(l)));if(pe(s)&&pe(i))return s.flatMap(u=>i.map(l=>u(l)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(te(s)){let i=s;if(i.isEmpty)return m([f.none()]);let u=i.get();if(Y(u))return u.map(l=>f(l));throw new Error("Unsupported inner container type for sequence")}if(Y(s)){let u=s.toArray();if(u.length===0)return f.none();let l=u[0];if(te(l)){for(let y of u)if(y.isEmpty)return f.none();let d=u.map(y=>y.get());return f(m(d))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {_tag:"HKT",map:t,flatten:e,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(t(s,u=>i(u))),_type:"HKT"}},ce=W();W.map=(t,e)=>ce.map(t,e);W.flatten=t=>ce.flatten(t);W.flatMap=(t,e)=>ce.flatMap(t,e);W.ap=(t,e)=>ce.ap(t,e);W.sequence=t=>ce.sequence(t);W.traverse=(t,e)=>ce.traverse(t,e);W.isOption=te;W.isList=Y;W.isEither=le;W.isTry=pe;function $n(t){return {id:t,isSame:r=>r.id===t}}var re=t=>{let e=false,r,n,o=false,a=()=>{if(!e)try{r=t(),e=!0;}catch(i){throw n=i,o=true,e=true,i}if(o)throw n;return r};return {_tag:"Lazy",get isEvaluated(){return e},get:a,getOrElse:i=>{try{return a()}catch{return i}},getOrNull:()=>{try{return a()}catch{return null}},orNull:()=>{try{return a()}catch{return null}},getOrThrow:i=>{try{return a()}catch(u){throw i??u}},orElse:i=>D(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>D(()=>i(a())),ap:i=>D(()=>i.get()(a())),mapAsync:async i=>{let u=a(),l=await i(u);return D(()=>l)},flatMap:i=>D(()=>i(a()).get()),flatMapAsync:async i=>{let u=a(),l=await i(u);return D(()=>l.get())},filter:i=>D(()=>{let u=a();return i(u)?U(u):w}),recover:i=>D(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>D(()=>{try{return a()}catch(u){return i(u).get()}}),toOption:()=>{try{return U(a())}catch{return w}},toEither:()=>{try{return c(a())}catch(i){return p(i)}},toEitherWith:i=>{try{return c(a())}catch(u){return p(i(u))}},toTry:()=>P(()=>a()),tap:i=>D(()=>{let u=a();return i(u),u}),tapError:i=>D(()=>{try{return a()}catch(u){throw i(u),u}}),fold:i=>i(a()),foldWith:(i,u)=>{try{return u(a())}catch(l){return i(l)}},foldLeft:i=>u=>u(i,a()),foldRight:i=>u=>u(a(),i),match:i=>i.Lazy(a()),toString:()=>e&&!o?`Lazy(${me(r)})`:e&&o?`Lazy(<error: ${n instanceof Error?n.message:String(n)}>)`:"Lazy(<not evaluated>)",toValue:()=>e&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false},get size(){try{return a(),1}catch{return 0}},get isEmpty(){try{return a(),!1}catch{return true}},contains:i=>{try{return a()===i}catch{return false}},reduce:i=>a(),reduceRight:i=>a(),count:i=>{try{return i(a())?1:0}catch{return 0}},find:i=>{try{let u=a();return i(u)?U(u):w}catch{return w}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(e&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>e&&!o?`_tag: Lazy
33
- evaluated: true
34
- value: ${me(r)}`:`_tag: Lazy
35
- evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(e&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false})).toString("base64")}),typeable:"Lazy"}},Lt={of:t=>re(t),fromValue:t=>re(()=>t),fromOption:(t,e)=>re(()=>t._tag==="Some"?t.value:e()),fromTry:t=>re(()=>t.get()),fromEither:t=>re(()=>t.fold(e=>{throw e},e=>e)),fromPromise:t=>re(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:t=>re(()=>{throw t})},D=a(re,Lt);var ge=Map;var Z=t=>{let r={values:new ge(t)},n=()=>Array.from(r.values.entries()).map(([T,h])=>b$1([T,h])),o=T=>Z(new ge(r.values).set(T.toArray()[0],T.toArray()[1]).entries()),a=T=>{let h=new ge(r.values);return h.delete(T)?Z(h.entries()):Z(r.values.entries())},s=T=>{let h=T.toArray();return r.values.get(h[0])===h[1]},i=()=>r.values.size,u=T=>Z(Array.from(r.values.entries()).map(([h,V])=>[h,T(V)])),l=T=>{let h=Z(r.values.entries()).toList();return Z(h.flatMap(T).toArray())},d=T=>{let h=[];for(let[V,se]of r.values.entries()){let fe=T.get(V);fe._tag==="Some"&&fe.value&&h.push([V,fe.value(se)]);}return Z(h)},y=async T=>{let h=new ge;for(let[V,se]of r.values.entries()){let fe=await T(se);for(let Xe of fe.toList()){let[et,tt]=Xe.toArray();h.set(et,tt);}}return Z(h.entries())},A=T=>m(n()).reduce(T),R=T=>m(n()).reduceRight(T),E=T=>h=>m(n()).foldLeft(T)(h),F=T=>h=>m(n()).foldRight(T)(h),X=T=>f(r.values.get(T)),ae=(T,h)=>f(r.values.get(T)).getOrElse(h),Te=()=>r.values.size===0,he=(T,h)=>f(r.values.get(T)).orElse(h),Ee=(T,h)=>{if(Te())return T();let V=n();if(V.length===0)return T();let se=V[0];return se===void 0?T():h(se)},_e=()=>m(n()),g=()=>ne(n()),B=()=>`Map(${n().toString()})`,_=T=>Te()?T.Empty():T.NonEmpty(n());return {_tag:"Map",[Symbol.iterator]:()=>r.values.entries(),add:o,remove:a,contains:s,get size(){return i()},map:u,ap:d,flatMap:l,flatMapAsync:y,reduce:A,reduceRight:R,foldLeft:E,foldRight:F,fold:Ee,match:_,get:X,getOrElse:ae,get isEmpty(){return Te()},orElse:he,toList:_e,toSet:g,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")})}},kt=t=>Z(t),qe={fromJSON:t=>{let e=JSON.parse(t);return Be(e.value)},fromYAML:t=>{let r=t.split(`
37
- `)[1]?.split(": ")[1];if(!r)return Be([]);let n=JSON.parse(r);return Be(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return qe.fromJSON(e)}},Be=a(kt,qe);var xt={default:t=>e=>t(e),when:(t,e)=>r=>t(r)?e(r):void 0};var K=(t=[])=>{let e="Stack",r=[...t],n=()=>r.length,o=()=>r.length===0;return {_tag:e,get size(){return n()},get isEmpty(){return o()},contains:g=>r.includes(g),reduce:g=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(g)},reduceRight:g=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(g)},push:g=>K([...r,g]),pop:()=>{if(o())return [K([]),f(null)];let g=[...r],B=g.pop();return [K(g),f(B)]},peek:()=>o()?f(null):f(r[r.length-1]),map:g=>K(r.map(g)),flatMap:g=>o()?K([]):r.reduce((B,_)=>g(_).toArray().reduce((h,V)=>h.push(V),B),K([])),ap:g=>{let B=[];return r.forEach(_=>{g.toArray().forEach(T=>{B.push(T(_));});}),K(B)},flatMapAsync:async g=>o()?K([]):(await Promise.all(r.map(async _=>await g(_)))).reduce((_,T)=>T.toArray().reduce((h,V)=>h.push(V),_),K([])),toList:()=>m(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(g,B)=>{if(o())return g();let _=r[r.length-1];return _!==void 0?B(_):g()},foldLeft:g=>B=>r.reduce(B,g),foldRight:g=>B=>r.reduceRight((_,T)=>B(T,_),g),match:g=>o()?g.Empty():g.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:g=>g([...r]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Stack",value:r}),toYAML:()=>`_tag: Stack
38
- value: ${JSON.stringify(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Stack",value:r})).toString("base64")})}},bt=(t=[])=>K(t),Qe={empty:()=>K([]),of:t=>K([t]),fromJSON:t=>{let e=JSON.parse(t);return Pe(e.value)},fromYAML:t=>{let r=t.split(`
39
- `)[1]?.split(": ")[1];if(!r)return Pe([]);let n=JSON.parse(r);return Pe(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Qe.fromJSON(e)}},Pe=a(bt,Qe);function ho(t){let e=Le({_tag:t._tag,impl:t.impl});return {...e,toValue:()=>({_tag:e._tag,value:t.value})}}var U=t=>({_tag:"Some",value:t,isEmpty:false,isSome(){return true},isNone(){return false},get:()=>t,getOrElse:()=>t,getOrThrow:()=>t,orElse:e=>U(t),orNull:()=>t,orUndefined:()=>t,map:e=>U(e(t)),ap:e=>e._tag==="Some"&&e.value?U(e.value(t)):G,filter(e){return e(t)?U(t):G},count:e=>e(t)?1:0,find:e=>e(t)?U(t):G,exists:e=>e(t),forEach:e=>e(t),fold:(e,r)=>r(t),match:e=>e.Some(t),flatMap:e=>e(t),flatMapAsync:async e=>await e(t),reduce:e=>e(void 0,t),reduceRight:e=>e(void 0,t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),toList:()=>m([t]),contains:e=>e===t,size:1,toOption:()=>U(t),toEither:e=>c(t),toTry:()=>P(()=>t),toPromise:()=>Promise.resolve(t),toString:()=>`Some(${me(t)})`,toValue:()=>({_tag:"Some",value:t}),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:t}),toYAML:()=>`_tag: Some
40
- value: ${me(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:t})).toString("base64")}),[k](){return {ok:true,value:t}}}),G={_tag:"None",value:void 0,isEmpty:true,isSome(){return false},isNone(){return true},get:()=>{throw new Error("Cannot call get() on None")},getOrElse:t=>t,getOrThrow(t){throw t},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},map:t=>G,ap:t=>G,filter(t){return G},count:t=>0,find:t=>G,exists:t=>false,forEach:t=>{},flatMap:t=>G,flatMapAsync:t=>Promise.resolve(G),reduce:()=>{},reduceRight:()=>{},fold:(t,e)=>t(),match:t=>t.None(),foldLeft:t=>()=>t,foldRight:t=>()=>t,toList:()=>m([]),contains:()=>false,size:0,toOption:()=>G,toEither:t=>p(t),toTry:()=>P(()=>{throw new Error("None")}),toPromise:()=>Promise.reject(new Error("Cannot convert None to Promise")),toString:()=>"None",toValue:()=>({_tag:"None",value:void 0}),pipe:t=>t(void 0),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"None",value:null}),toYAML:()=>`_tag: None
41
- value: null`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"None",value:null})).toString("base64")}),[k](){return {ok:false,empty:true}}},w=()=>G,wt=t=>t!=null?U(t):w(),Ze={from:t=>f(t),none:()=>w(),fromJSON:t=>{let e=JSON.parse(t);return e._tag==="Some"?U(e.value):w()},fromYAML:t=>{let e=t.split(`
42
- `),r=e[0]?.split(": ")[1],n=e[1]?.split(": ")[1];if(!r||!n)return w();let o=n==="null"?null:JSON.parse(n);return r==="Some"?U(o):w()},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ze.fromJSON(e)}},f=a(wt,Ze);export{Oe as $,xr as A,br as B,wr as C,Ur as D,Sr as E,vr as F,Or as G,Br as H,Nr as I,Vr as J,$e as K,Yr as L,qr as M,Qr as N,Hr as O,Zr as P,Xr as Q,en as R,tn as S,rn as T,ke as U,Q as V,mt as W,Se as X,yt as Y,ye as Z,H as _,k as a,N as aa,U as b,ve as ba,w as c,J as ca,wt as d,Ge as da,f as e,xe as ea,ne as f,Rn as fa,x as g,An as ga,$t as h,kn as ha,P as i,S as ia,Le as j,On as ja,we as k,At as ka,m as l,Vn as la,c as m,W as ma,p as n,$n as na,fr as o,D as oa,dr as p,ge as pa,mr as q,Be as qa,ut as r,xt as ra,lt as s,Pe as sa,yr as t,ho as ta,Ie as u,I as v,pt as w,Ar as x,Lr as y,kr as z};//# sourceMappingURL=chunk-GMC6UNBM.mjs.map
43
- //# sourceMappingURL=chunk-GMC6UNBM.mjs.map