functype 0.9.1 → 0.9.3

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/README.md CHANGED
@@ -230,14 +230,15 @@ const promise = Task().toPromise(taskResult) // Promise<string>
230
230
  ```typescript
231
231
  import { Brand, ValidatedBrand } from "functype/branded"
232
232
 
233
- // Create branded types for stronger type safety (with instance methods!)
233
+ // Create branded types for stronger type safety
234
234
  type UserId = Brand<"UserId", string>
235
235
  type Email = Brand<"Email", string>
236
236
 
237
- // Simple branding
237
+ // Simple branding - branded values ARE primitives!
238
238
  const userId = Brand("UserId", "U123456")
239
- console.log(userId.unbrand()) // "U123456"
240
- console.log(userId.toString()) // "UserId(U123456)"
239
+ console.log(userId) // "U123456" - it IS a string
240
+ console.log(typeof userId) // "string"
241
+ console.log(userId.toUpperCase()) // "U123456" - string methods work!
241
242
 
242
243
  // Runtime-validated branding for safer input handling
243
244
  const EmailValidator = ValidatedBrand("Email", (s: string) => /^[^@]+@[^@]+\.[^@]+$/.test(s))
@@ -1,4 +1,4 @@
1
- import { T as Type, a as Typeable, S as Serializable, F as Foldable, P as Pipe } from './Serializable-BbKuhDDL.js';
1
+ import { T as Type, a as Typeable, S as Serializable, F as Foldable, P as Pipe } from './Serializable-CK9upOU0.js';
2
2
 
3
3
  /**
4
4
  * Creates a Some variant of Option containing a value.
@@ -1,5 +1,12 @@
1
1
  type Type = unknown;
2
2
 
3
+ /**
4
+ * Base interface for objects with a type tag
5
+ * @internal
6
+ */
7
+ interface TypeableBase<Tag extends string> {
8
+ readonly _tag: Tag;
9
+ }
3
10
  /**
4
11
  * Parameters for creating a Typeable instance
5
12
  * @internal
@@ -8,9 +15,13 @@ type TypeableParams<Tag extends string, T> = {
8
15
  _tag: Tag;
9
16
  impl: T;
10
17
  };
11
- type Typeable<Tag extends string, T = object> = T & {
12
- readonly _tag: Tag;
13
- };
18
+ /**
19
+ * Utility type to extract the Tag from a Typeable type
20
+ * @typeParam T - The Typeable type to extract the tag from
21
+ * @internal
22
+ */
23
+ type ExtractTag<T> = T extends Typeable<infer Tag, unknown> ? Tag : never;
24
+ type Typeable<Tag extends string, T = object> = T & TypeableBase<Tag>;
14
25
  /**
15
26
  * Core utility for creating nominal typing in TypeScript by adding a type tag to any object.
16
27
  * This allows for creating distinct types that are structurally identical but considered different by TypeScript's type system.
@@ -21,6 +32,13 @@ type Typeable<Tag extends string, T = object> = T & {
21
32
  * @typeParam T - The base type to extend with the tag
22
33
  */
23
34
  declare function Typeable<Tag extends string, T>({ _tag, impl }: TypeableParams<Tag, T>): Typeable<Tag, T>;
35
+ /**
36
+ * Type guard with automatic type inference using the full type
37
+ * @param value - The value to check
38
+ * @param tag - The tag to check for
39
+ * @returns Whether the value is a Typeable with the specified tag
40
+ */
41
+ declare function isTypeable<T>(value: unknown, tag: string): value is T;
24
42
 
25
43
  /**
26
44
  * Foldable type class represents data structures that can be folded to a summary value.
@@ -75,4 +93,4 @@ interface Serializable<T> {
75
93
  serialize(): SerializationMethods<T>;
76
94
  }
77
95
 
78
- export { type Foldable as F, type Pipe as P, type Serializable as S, type Type as T, Typeable as a, type SerializationMethods as b };
96
+ export { type ExtractTag as E, type Foldable as F, type Pipe as P, type Serializable as S, type Type as T, Typeable as a, type SerializationMethods as b, type TypeableParams as c, isTypeable as i };
@@ -1,30 +1,28 @@
1
- type Unbrand<T> = T extends Brand<string, infer U> ? U : never;
1
+ type Unbrand<T> = T extends Brand<string, infer U> ? U : T;
2
2
  type ExtractBrand<T> = T extends Brand<infer K, unknown> ? K : never;
3
3
  type Brand<K extends string, T> = T & {
4
4
  readonly __brand: K;
5
- readonly unbrand: () => T;
6
- readonly unwrap: () => T;
7
5
  };
8
6
  /**
9
7
  * Brand is a utility for creating nominal typing in TypeScript.
10
- * It allows for creating distinct types that are structurally identical
11
- * but considered different by TypeScript's type system.
8
+ * It creates phantom types that exist only at compile time.
9
+ * At runtime, the branded value IS the primitive value.
12
10
  *
13
- * @param brand - The brand name
11
+ * @param brand - The brand name (unused at runtime, only for type inference)
14
12
  * @param value - The value to brand
15
- * @returns The branded value with unbrand/unwrap methods
13
+ * @returns The value with phantom type brand
16
14
  */
17
- declare function Brand<K extends string, T>(brand: K, value: T): Brand<K, T>;
15
+ declare function Brand<K extends string, T>(_brand: K, value: T): Brand<K, T>;
18
16
  /**
19
17
  * Helper to remove a brand from a value
20
18
  * @param branded - The branded value
21
19
  * @returns The original value without the brand
22
20
  */
23
- declare function unbrand<T>(branded: Brand<string, T>): T;
21
+ declare function unbrand<K extends string, T>(branded: Brand<K, T>): T;
24
22
  /**
25
23
  * Type guard for checking if a value has a specific brand
26
24
  * @param value - The value to check
27
- * @param brand - The brand to check for
25
+ * @param _brand - The brand to check for (unused at runtime)
28
26
  * @returns True if the value has the specified brand
29
27
  *
30
28
  * Note: Since brands are phantom types that exist only at compile time,
@@ -32,7 +30,7 @@ declare function unbrand<T>(branded: Brand<string, T>): T;
32
30
  * for non-null values, as we have no way to actually check the brand at runtime.
33
31
  * This function is primarily for API consistency and documentation purposes.
34
32
  */
35
- declare function hasBrand<K extends string, T>(value: unknown, brand: K): value is Brand<K, T>;
33
+ declare function hasBrand<K extends string, T>(value: unknown, _brand: K): value is Brand<K, T>;
36
34
  /**
37
35
  * Create a branded type constructor for a specific brand
38
36
  * @param brand - The brand name
@@ -1,2 +1,2 @@
1
- export{a as Brand,g as BrandedBoolean,f as BrandedNumber,e as BrandedString,d as createBrander,c as hasBrand,b as unbrand}from'../chunk-R2TQJN3P.mjs';//# sourceMappingURL=index.mjs.map
1
+ export{a as Brand,g as BrandedBoolean,f as BrandedNumber,e as BrandedString,d as createBrander,c as hasBrand,b as unbrand}from'../chunk-ECL55NTP.mjs';//# sourceMappingURL=index.mjs.map
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1,11 +1,11 @@
1
- import {a,b as b$1}from'./chunk-BQJB6CCW.mjs';import {a as a$1}from'./chunk-R2TQJN3P.mjs';import se from'safe-stable-stringify';var J=Set;var P=e=>{let t=new J(e),r={_tag:"Set",[Symbol.iterator]:()=>t[Symbol.iterator](),add:n=>P([...t,n]),remove:n=>{let o=new J(t);return o.delete(n),P(o)},contains:n=>t.has(n),has:n=>t.has(n),map:n=>P(Array.from(t).map(n)),ap:n=>{let o=new J;for(let a of t)for(let s of n)o.add(s(a));return P(o)},flatMap:n=>{let o=new J;for(let a of t)for(let s of n(a))o.add(s);return P(o)},flatMapAsync:async n=>{let o=new J;for(let a of t){let s=await n(a);for(let i of s)o.add(i);}return P(o)},fold:(n,o)=>{if(t.size===0)return n();let a=Array.from(t);if(a.length===0)return n();let s=a[0];return s===void 0?n():o(s)},foldLeft:n=>o=>{let a=n;for(let s of t)a=o(a,s);return a},foldRight:n=>o=>Array.from(t).reduceRight((s,i)=>o(i,s),n),get size(){return t.size},get isEmpty(){return t.size===0},reduce:n=>{let o=Array.from(t);if(o.length===0)throw new Error("Cannot reduce empty Set");return o.reduce(n)},reduceRight:n=>{let o=Array.from(t);if(o.length===0)throw new Error("Cannot reduceRight empty Set");return o.reduceRight(n)},count:n=>{let o=0;for(let a of t)n(a)&&o++;return o},find:n=>{for(let o of t)if(n(o))return f(o);return f(null)},exists:n=>{for(let o of t)if(n(o))return true;return false},forEach:n=>{t.forEach(n);},filter:n=>{let o=new J;for(let a of t)n(a)&&o.add(a);return P(o)},filterNot:n=>{let o=new J;for(let a of t)n(a)||o.add(a);return P(o)},drop:n=>P(Array.from(t).slice(n)),dropRight:n=>P(Array.from(t).slice(0,-n)),dropWhile:n=>{let o=Array.from(t),a=o.findIndex(s=>!n(s));return P(a===-1?[]:o.slice(a))},flatten:()=>{let n=new J;for(let o of t)if(Array.isArray(o))for(let a of o)n.add(a);else if(o&&typeof o=="object"&&Symbol.iterator in o)for(let a of o)n.add(a);else n.add(o);return P(n)},get head(){return Array.from(t)[0]},get headOption(){let n=Array.from(t)[0];return f(n)},toList:()=>m(Array.from(t)),toSet:()=>r,toArray:()=>Array.from(t),toString:()=>`Set(${Array.from(t).toString()})`,toValue:()=>({_tag:"Set",value:Array.from(t)}),pipe:n=>n(Array.from(t)),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Set",value:Array.from(t)}),toYAML:()=>`_tag: Set
1
+ import {a,b as b$1}from'./chunk-BQJB6CCW.mjs';import {a as a$1}from'./chunk-ECL55NTP.mjs';import se from'safe-stable-stringify';var J=Set;var P=e=>{let t=new J(e),r={_tag:"Set",[Symbol.iterator]:()=>t[Symbol.iterator](),add:n=>P([...t,n]),remove:n=>{let o=new J(t);return o.delete(n),P(o)},contains:n=>t.has(n),has:n=>t.has(n),map:n=>P(Array.from(t).map(n)),ap:n=>{let o=new J;for(let a of t)for(let s of n)o.add(s(a));return P(o)},flatMap:n=>{let o=new J;for(let a of t)for(let s of n(a))o.add(s);return P(o)},flatMapAsync:async n=>{let o=new J;for(let a of t){let s=await n(a);for(let i of s)o.add(i);}return P(o)},fold:(n,o)=>{if(t.size===0)return n();let a=Array.from(t);if(a.length===0)return n();let s=a[0];return s===void 0?n():o(s)},foldLeft:n=>o=>{let a=n;for(let s of t)a=o(a,s);return a},foldRight:n=>o=>Array.from(t).reduceRight((s,i)=>o(i,s),n),get size(){return t.size},get isEmpty(){return t.size===0},reduce:n=>{let o=Array.from(t);if(o.length===0)throw new Error("Cannot reduce empty Set");return o.reduce(n)},reduceRight:n=>{let o=Array.from(t);if(o.length===0)throw new Error("Cannot reduceRight empty Set");return o.reduceRight(n)},count:n=>{let o=0;for(let a of t)n(a)&&o++;return o},find:n=>{for(let o of t)if(n(o))return f(o);return f(null)},exists:n=>{for(let o of t)if(n(o))return true;return false},forEach:n=>{t.forEach(n);},filter:n=>{let o=new J;for(let a of t)n(a)&&o.add(a);return P(o)},filterNot:n=>{let o=new J;for(let a of t)n(a)||o.add(a);return P(o)},drop:n=>P(Array.from(t).slice(n)),dropRight:n=>P(Array.from(t).slice(0,-n)),dropWhile:n=>{let o=Array.from(t),a=o.findIndex(s=>!n(s));return P(a===-1?[]:o.slice(a))},flatten:()=>{let n=new J;for(let o of t)if(Array.isArray(o))for(let a of o)n.add(a);else if(o&&typeof o=="object"&&Symbol.iterator in o)for(let a of o)n.add(a);else n.add(o);return P(n)},get head(){return Array.from(t)[0]},get headOption(){let n=Array.from(t)[0];return f(n)},toList:()=>m(Array.from(t)),toSet:()=>r,toArray:()=>Array.from(t),toString:()=>`Set(${Array.from(t).toString()})`,toValue:()=>({_tag:"Set",value:Array.from(t)}),pipe:n=>n(Array.from(t)),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Set",value:Array.from(t)}),toYAML:()=>`_tag: Set
2
2
  value: ${JSON.stringify(Array.from(t))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Set",value:Array.from(t)})).toString("base64")})};return r},qe=e=>P(e),we={fromJSON:e=>{let t=JSON.parse(e);return Q(t.value)},fromYAML:e=>{let r=e.split(`
3
3
  `)[1]?.split(": ")[1];if(!r)return Q([]);let n=JSON.parse(r);return Q(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return we.fromJSON(t)}},Q=a(qe,we);function ce({_tag:e,impl:t}){return {...t,_tag:e}}function ye(e,t){return !e||typeof e!="object"||!("_tag"in e)?false:t?e._tag===t:true}var U=e=>{let t=Array.from(e||[]),r={_tag:"List",[Symbol.iterator]:()=>t[Symbol.iterator](),get size(){return t.length},get length(){return t.length},map:n=>U(t.map(n)),ap:n=>U(t.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>U(t.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(t.map(async a=>await n(a)));return U(o.flatMap(a=>Array.from(a)))},forEach:n=>t.forEach(n),contains:n=>t.includes(n),count:n=>t.filter(n).length,exists:n=>t.some(n),filter:n=>U(t.filter(n)),filterNot:n=>U(t.filter(o=>!n(o))),filterType:n=>U(t.filter(o=>ye(o,n))),find:(n,o)=>{let a=t.find(s=>n(s)&&(o?ye(s,o):true));return f(a)},get head(){return t[0]},get headOption(){return t.length>0?f(t[0]):b()},get isEmpty(){return t.length===0},toArray:()=>[...t],reduce:n=>t.reduce(n),reduceRight:n=>t.reduceRight(n),fold:(n,o)=>{if(t.length===0)return n();let a=t[0];return o(a)},foldLeft:n=>o=>t.reduce(o,n),foldRight:n=>o=>t.reduceRight((a,s)=>o(s,a),n),match:n=>t.length===0?n.Empty():n.NonEmpty([...t]),remove:n=>U(t.filter(o=>o!==n)),removeAt:n=>n<0||n>=t.length?r:U([...t.slice(0,n),...t.slice(n+1)]),add:n=>U([...t,n]),get:n=>f(t[n]),concat:n=>U([...t,...n.toArray()]),drop:n=>U(t.slice(n)),dropRight:n=>U(t.slice(0,-n)),dropWhile:n=>U(t.slice(t.findIndex(o=>!n(o)))),flatten:()=>U(t.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>Q(t),toString:()=>`List(${se(t)})`,toValue:()=>({_tag:"List",value:t}),pipe:n=>n([...t]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:t}),toYAML:()=>`_tag: List
4
4
  value: ${se(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:t})).toString("base64")})};return r},Ye=e=>U(e),Se={fromJSON:e=>{let t=JSON.parse(e);return m(t.value)},fromYAML:e=>{let r=e.split(`
5
5
  `)[1]?.split(": ")[1];if(!r)return m([]);let n=JSON.parse(r);return m(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Se.fromJSON(t)}},m=a(Ye,Se);var Be=e=>({_tag:"Right",value:e,isLeft:()=>false,isRight:()=>true,get:()=>e,getOrElse:t=>e,getOrThrow:()=>e,orElse:t=>c(e),orNull:()=>e,orUndefined:()=>e,map:t=>c(t(e)),ap:t=>t._tag==="Right"?c(t.value(e)):p(t.value),mapAsync:t=>t(e).then(r=>c(r)).catch(r=>Promise.resolve(p(r))),merge:t=>t.isLeft()?p(t.value):c([e,t.value]),flatMap:t=>t(e),flatMapAsync:t=>t(e).catch(r=>p(r)),toOption:()=>w(e),toList:()=>m([e]),toJSON:function(){return {_tag:"Right",value:e}},toString:()=>`Right(${se(e)})`,[Symbol.iterator]:function*(){yield e;},yield:function*(){yield e;},traverse:t=>{let r=t(e);return r.isLeft()?p(r.value):c([r.value])},lazyMap:function*(t){yield c(t(e));},tap:t=>(t(e),c(e)),tapLeft:t=>c(e),mapLeft:t=>c(e),bimap:(t,r)=>c(r(e)),fold:(t,r)=>r(e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),match:t=>t.Right(e),swap:()=>p(e),then:(t,r)=>Promise.resolve(e).then(t,r),toValue:()=>({_tag:"Right",value:e}),pipeEither:(t,r)=>r(e),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Right",value:e}),toYAML:()=>`_tag: Right
6
6
  value: ${se(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Right",value:e})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?w(e):b(),exists:t=>t(e),forEach:t=>t(e)}),Oe=e=>({_tag:"Left",value:e,isLeft:()=>true,isRight:()=>false,get:()=>{throw new Error(`Cannot call get() on Left(${se(e)})`)},getOrElse:t=>t,getOrThrow:t=>{throw t||e},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},map:t=>p(e),ap:t=>p(e),mapAsync:t=>Promise.resolve(p(e)),merge:t=>p(e),flatMap:t=>p(e),flatMapAsync:t=>Promise.resolve(p(e)),toOption:()=>b(),toList:()=>m(),toJSON:function(){return {_tag:"Left",value:e}},toString:()=>`Left(${se(e)})`,[Symbol.iterator]:function*(){},yield:function*(){},traverse:t=>p(e),lazyMap:function*(t){yield p(e);},tap:t=>p(e),tapLeft:t=>(t(e),p(e)),mapLeft:t=>p(t(e)),bimap:(t,r)=>p(t(e)),fold:(t,r)=>t(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,match:t=>t.Left(e),swap:()=>c(e),then:(t,r)=>Promise.reject(e).then(null,r),toValue:()=>({_tag:"Left",value:e}),pipeEither:(t,r)=>t(e),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Left",value:e}),toYAML:()=>`_tag: Left
7
7
  value: ${se(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Left",value:e})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:t=>false,reduce:t=>{throw new Error("Cannot reduce a Left")},reduceRight:t=>{throw new Error("Cannot reduceRight a Left")},count:t=>0,find:t=>b(),exists:t=>false,forEach:t=>{}}),c=e=>Be(e),p=e=>Oe(e),It=e=>e.isRight(),Mt=e=>e.isLeft(),zt=(e,t)=>{try{return c(e())}catch(r){return p(t(r))}},Qe=e=>Be(e);console.assert(Qe);var He=e=>Oe(e);console.assert(He);var Ft=async(e,t)=>{try{let r=await e();return c(r)}catch(r){return p(t(r))}},ve={sequence:e=>{let t=[];for(let r of e){if(r.isLeft())return p(r.value);t.push(r.value);}return c(t)},traverse:(e,t)=>ve.sequence(e.map(t)),fromNullable:(e,t)=>e==null?p(t):c(e),fromPredicate:(e,t,r)=>t(e)?c(e):p(r),ap:(e,t)=>e.flatMap(r=>t.map(r)),fromPromise:async(e,t)=>{try{let r=await e;return c(r)}catch(r){return p(t(r))}},fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Right"?c(t.value):p(t.value)},fromYAML:e=>{let t=e.split(`
8
- `),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)throw new Error("Invalid YAML format for Either");let o=JSON.parse(n);return r==="Right"?c(o):p(o)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return ve.fromJSON(t)}};function I(e,t){return {brand:e,validate:t,of:r=>t(r)?f(a$1(e,r)):f.none(),from:r=>t(r)?c(a$1(e,r)):p(`Invalid ${e}: validation failed`),unsafeOf:r=>{if(!t(r))throw new Error(`Invalid ${e}: validation failed`);return a$1(e,r)},is:r=>{try{return t(r)}catch{return false}},refine:(r,n)=>I(r,o=>t(o.unbrand())&&n(o))}}var Ge=I("PositiveNumber",e=>e>0),Jt=I("NonNegativeNumber",e=>e>=0),Wt=I("IntegerNumber",e=>Number.isInteger(e)),jt=Ge.refine("PositiveInteger",e=>Number.isInteger(e)),qt=I("NonEmptyString",e=>e.length>0),Yt=I("EmailAddress",e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),Qt=I("UrlString",e=>{try{return new URL(e),!0}catch{return !1}}),Ht=I("UUID",e=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)),Gt=I("ISO8601Date",e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function Zt(e,t,r){return I(e,n=>n>=t&&n<=r)}function Xt(e,t,r){return I(e,n=>n.length>=t&&n.length<=r)}function er(e,t){return I(e,r=>t.test(r))}var me=e=>{let t=n=>typeof n=="function"?n():n,r={when:(n,o)=>e.resolved?r:n?me({resolved:true,value:t(o)}):r,elseWhen:(n,o)=>e.resolved?r:n?me({resolved:true,value:t(o)}):r,else:n=>e.resolved?e.value:t(n),getOrThrow:()=>{if(!e.resolved)throw new Error("Conditional expression has no matching condition");return e.value}};return r},Pe=()=>me({resolved:false}),Ze={of:()=>Pe(),match:e=>t=>{let r=t[e];if(r===void 0)throw new Error(`No case defined for value: ${String(e)}`);return typeof r=="function"?r():r},lazy:()=>{let e={resolved:false},t={when:(r,n)=>(e.resolved||r()&&(e.resolved=true,e.value=n()),t),elseWhen:(r,n)=>(e.resolved||r()&&(e.resolved=true,e.value=n()),t),else:r=>e.resolved?e.value:r()};return t}},nr=a(Pe,Ze);var ee=(e,t)=>t===e?true:typeof t=="function"?t(e):t&&typeof t=="object"&&"_"in t?t._(e):typeof t=="object"&&t!==null&&typeof e=="object"&&e!==null?Object.entries(t).every(([r,n])=>{let o=e[r];return ee(o,n)}):false,H=e=>{let t=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of e.patterns)if(ee(e.value,o))return {matched:true,result:t(a,e.value)};return {matched:false}},n={case:(o,a)=>{if(e.resolved)return n;let s={...e,patterns:[...e.patterns,{pattern:o,result:a}]};return ee(e.value,o)?H({...s,resolved:true,result:t(a,e.value)}):H(s)},caseValue:(o,a)=>{if(e.resolved)return n;if(e.value===o){let s=typeof a=="function"?a():a;return H({...e,resolved:true,result:s})}return n},caseValues:(o,a)=>{if(e.resolved)return n;if(o.includes(e.value)){let s=typeof a=="function"?a():a;return H({...e,resolved:true,result:s})}return n},when:(o,a)=>n.case(o,a),caseAny:(o,a)=>{if(e.resolved)return n;for(let s of o)if(ee(e.value,s))return H({...e,resolved:true,result:t(a,e.value),patterns:[...e.patterns,{pattern:s,result:a}]});return H({...e,patterns:[...e.patterns,...o.map(s=>({pattern:s,result:a}))]})},default:o=>e.resolved?e.result:t(o,e.value),exhaustive:()=>{let o=r();if(!o.matched)throw new Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(e.value)}`);return o.result},getOrThrow:o=>{let a=r();if(!a.matched)throw new Error(o||`No matching pattern for value: ${JSON.stringify(e.value)}`);return a.result},toOption:()=>{let o=r();return o.matched?f(o.result):f.none()}};return n},Xe=e=>H({value:e,resolved:false,patterns:[]}),et={exhaustive:e=>t=>{let r=e[t];if(r===void 0)throw new Error(`No case defined for value: ${String(t)}`);return r},partial:e=>({withDefault:t=>r=>{let n=e[r];return n!==void 0?typeof n=="function"?n(r):n:typeof t=="function"?t(r):t}}),withGuards:e=>({withDefault:t=>r=>{for(let[n,o]of e)if(n(r))return typeof o=="function"?o(r):o;return typeof t=="function"?t(r):t}}),struct:()=>{let e=[],t={case:(r,n)=>(e.push({pattern:r,handler:n}),t),build:()=>r=>{for(let{pattern:n,handler:o}of e)if(ee(r,n))return o(r);throw new Error(`No matching pattern for value: ${JSON.stringify(r)}`)}};return t},builder:()=>{let e=[],t,r={case:(n,o)=>(e.push({pattern:n,result:o}),r),when:(n,o)=>(e.push({pattern:n,result:o}),r),default:n=>(t=n,{build:()=>o=>{for(let{pattern:a,result:s}of e)if(ee(o,a))return typeof s=="function"?s(o):s;if(t!==void 0)return typeof t=="function"?t(o):t;throw new Error(`No matching pattern for value: ${JSON.stringify(o)}`)}})};return r}},ir=a(Xe,et);function te(e,t){return {...ce({_tag:e,impl:t}),toString(){return `${e}()`}}}var Te="Throwable",L=class e extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=Te;this.name=n?.taskInfo?.name||Te,Object.defineProperties(this,{_tag:{value:Te,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||Te,writable:false,configurable:false}}),n?.cause&&Object.defineProperty(this,"cause",{value:n.cause,writable:false,configurable:false}),n?.stack?this.stack=n.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}static apply(r,n,o){if(r instanceof Error){let u=new e(r.message,{data:n,cause:r.cause||void 0,stack:r.stack||void 0,taskInfo:o});for(let l of Object.keys(r))l in u||(u[l]=r[l]);return u}if(r&&typeof r=="object"){let u=r,l=typeof u.message=="string"?u.message:typeof u.error=="string"?u.error:`Object error: ${JSON.stringify(u,Object.getOwnPropertyNames(u).filter(g=>u[g]!==void 0))}`,E=new e(l,{data:n||u,taskInfo:o});for(let g of Object.keys(u))g in E||(E[g]=u[g]);return E}if(typeof r=="function"){let u=r.name||"anonymous function",l=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new e(`Function error: ${u}`,{data:n||{functionType:typeof r,functionName:u,functionString:l},taskInfo:o})}let a=typeof r,s=r===null?"null":r===void 0?"undefined":String(r);if(a==="number"){let u=r,l=Number.isNaN(u)?"Number error: NaN":Number.isFinite(u)?`Number error: ${u}`:`Number error: ${u>0?"Infinity":"-Infinity"}`;return new e(l,{data:n||{errorType:a,errorValue:u,originalError:r},taskInfo:o})}if(a==="bigint")return new e(`BigInt error: ${r}n`,{data:n||{errorType:a,errorValue:String(r),originalError:r},taskInfo:o});if(a==="boolean")return new e(`Boolean error: ${r}`,{data:n||{errorType:a,errorValue:r,originalError:r},taskInfo:o});if(a==="symbol"){let u=r.description||"unnamed symbol";return new e(`Symbol error: Symbol(${u})`,{data:n||{errorType:a,symbolDescription:u,originalError:r},taskInfo:o})}let i=typeof r=="string"?r:`${a.charAt(0).toUpperCase()+a.slice(1)} error: ${s}`;return new e(i,{data:n||{errorType:a,errorValue:s,originalError:r},taskInfo:o})}};var R=e=>{let t=new Promise((r,n)=>{try{e(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>R((n,o)=>{t.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>R((n,o)=>{t.then(a=>{try{let s=r(a);"_tag"in s&&s._tag==="FPromise"?s.then(n,o):Promise.resolve(s).then(n,o);}catch(s){o(s);}}).catch(o);}),flatMapAsync:async r=>{let n=await t,o=r(n);return o instanceof Promise?o:new Promise((a,s)=>{o.then(a,s);})},tap:r=>R((n,o)=>{t.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>R((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};o(r(a,s));}catch(s){o(s);}});}),tapError:r=>R((n,o)=>{t.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>R(n=>{t.then(n).catch(()=>n(r));}),recoverWith:r=>R(n=>{t.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>R((n,o)=>{t.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>R((o,a)=>{t.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(i){a(i);}else a(s);});}),logError:r=>R((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};r(a,s);}catch{}finally{o(a);}});}),then:(r,n)=>t.then(r,n),toPromise:()=>t,toEither:()=>t,fold:(r,n)=>R((o,a)=>{t.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},tt={resolve:e=>R(t=>t(e)),reject:e=>R((t,r)=>r(e)),from:e=>R((t,r)=>{e.then(t).catch(r);}),fromEither:e=>e.isRight()?R(t=>t(e.value)):R((t,r)=>r(e.value)),all:e=>R((t,r)=>{Promise.all(e.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(t).catch(r);}),allSettled:e=>R(t=>{let r=[],n=0;if(e.length===0){t([]);return}e.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=c(s),n++,n===e.length&&t(r);}).catch(s=>{r[a]=p(s),n++,n===e.length&&t(r);});});}),race:e=>R((t,r)=>{Promise.race(e).then(t,r);}),any:e=>R((t,r)=>{if(typeof Promise.any=="function")Promise.any(e).then(t,r);else {let n=0,o=[];if(e.length===0){r(new AggregateError([],"All promises were rejected"));return}e.forEach((a,s)=>{Promise.resolve(a).then(t).catch(i=>{o[s]=i,n++,n===e.length&&r(new AggregateError(o,"All promises were rejected"));});});}}),retryWithBackoff:(e,t)=>{let{maxRetries:r,baseDelay:n=100,shouldRetry:o=()=>true}=t;return R((a,s)=>{let i=0,u=()=>{e().toPromise().then(a).catch(l=>{if(i++,i<=r&&o(l,i)){let E=n*Math.pow(2,i-1);setTimeout(u,E);}else s(l);});};u();})}},ge=a(R,tt);function rt(e){return e instanceof Error&&typeof e=="object"&&true&&e._tag==="Throwable"}var Ne=(e,t,r)=>{let n=r?.name||"TaskException",o=r?.description||"Unspecified TaskException",a={name:n,description:o},s=L.apply(e,t,a);return {...te("TaskException",p(s)),_task:a}},_e=(e,t)=>{let r=t?.name||"TaskResult",n=t?.description||"Unspecified TaskResult";return {...te("TaskResult",c(e)),_task:{name:r,description:n}}},Ee=()=>{let e=new AbortController,t=[];return {token:{get isCancelled(){return e.signal.aborted},get signal(){return e.signal},onCancel(n){e.signal.aborted?n():t.push(n);}},cancel(){e.signal.aborted||(e.abort(),t.forEach(n=>{try{n();}catch(o){console.error("Error in cancellation callback:",o);}}));}}},nt=e=>{let t=e?.name||"Task",r=e?.description||"",n={Async:(o,a=u=>u,s=()=>{},i)=>ge(async(u,l)=>{let E=false,g=null,F=()=>{};if(i){if(i.isCancelled){try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}l(L.apply(new Error("Task was cancelled before execution started"),void 0,{name:t,description:r}));return}let v=()=>{E=true,g=new Error("Task was cancelled during execution");};i.onCancel(v),F=()=>{};}try{let v=await o();if(E){try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}l(g?L.apply(g,void 0,{name:t,description:r}):L.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}u(v);}catch(v){if(E){try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}l(g?L.apply(g,void 0,{name:t,description:r}):L.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}try{if(v instanceof Error&&rt(v)){let A=new Error(`${t}: ${v.message}`),G=L.apply(A,void 0,{name:t,description:r});Object.defineProperty(G,"cause",{value:v,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(v);}catch(j){console.error("Error in error handler:",j);}}),l(G);}else {let A=await a(v);l(L.apply(A,void 0,{name:t,description:r}));}}catch(A){l(L.apply(A,void 0,{name:t,description:r}));}}finally{F();}}),Sync:(o,a=i=>i,s=()=>{})=>{try{return _e(o(),{name:t,description:r})}catch(i){return Ne(a(i),void 0,{name:t,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=l=>l,i=()=>{},u)=>{let l=E=>{let g=Math.max(0,Math.min(100,E));g<=100&&a(g);};return n.Async(()=>o(l),s,i,u)}};return {...te("Task",n),_type:"Task"}},Ie={success:(e,t)=>_e(e,t),fail:(e,t,r)=>Ne(e,t,r),getErrorChain:e=>{if(!e)return [];let t=[e],r=e;for(;r&&r.cause;){let n=r.cause;if(n)t.push(n),r=n;else break;if(t.length>100)break}return t},formatErrorChain:(e,t)=>{let r=Ie.getErrorChain(e),n=t?.separator||`
8
+ `),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)throw new Error("Invalid YAML format for Either");let o=JSON.parse(n);return r==="Right"?c(o):p(o)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return ve.fromJSON(t)}};function I(e,t){return {brand:e,validate:t,of:r=>t(r)?f(a$1(e,r)):f.none(),from:r=>t(r)?c(a$1(e,r)):p(`Invalid ${e}: validation failed`),unsafeOf:r=>{if(!t(r))throw new Error(`Invalid ${e}: validation failed`);return a$1(e,r)},is:r=>{try{return t(r)}catch{return false}},unwrap:r=>r,refine:(r,n)=>I(r,o=>t(o)&&n(o))}}var Ge=I("PositiveNumber",e=>e>0),Jt=I("NonNegativeNumber",e=>e>=0),Wt=I("IntegerNumber",e=>Number.isInteger(e)),jt=Ge.refine("PositiveInteger",e=>Number.isInteger(e)),qt=I("NonEmptyString",e=>e.length>0),Yt=I("EmailAddress",e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),Qt=I("UrlString",e=>{try{return new URL(e),!0}catch{return !1}}),Ht=I("UUID",e=>/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e)),Gt=I("ISO8601Date",e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function Zt(e,t,r){return I(e,n=>n>=t&&n<=r)}function Xt(e,t,r){return I(e,n=>n.length>=t&&n.length<=r)}function er(e,t){return I(e,r=>t.test(r))}var me=e=>{let t=n=>typeof n=="function"?n():n,r={when:(n,o)=>e.resolved?r:n?me({resolved:true,value:t(o)}):r,elseWhen:(n,o)=>e.resolved?r:n?me({resolved:true,value:t(o)}):r,else:n=>e.resolved?e.value:t(n),getOrThrow:()=>{if(!e.resolved)throw new Error("Conditional expression has no matching condition");return e.value}};return r},Pe=()=>me({resolved:false}),Ze={of:()=>Pe(),match:e=>t=>{let r=t[e];if(r===void 0)throw new Error(`No case defined for value: ${String(e)}`);return typeof r=="function"?r():r},lazy:()=>{let e={resolved:false},t={when:(r,n)=>(e.resolved||r()&&(e.resolved=true,e.value=n()),t),elseWhen:(r,n)=>(e.resolved||r()&&(e.resolved=true,e.value=n()),t),else:r=>e.resolved?e.value:r()};return t}},nr=a(Pe,Ze);var ee=(e,t)=>t===e?true:typeof t=="function"?t(e):t&&typeof t=="object"&&"_"in t?t._(e):typeof t=="object"&&t!==null&&typeof e=="object"&&e!==null?Object.entries(t).every(([r,n])=>{let o=e[r];return ee(o,n)}):false,H=e=>{let t=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of e.patterns)if(ee(e.value,o))return {matched:true,result:t(a,e.value)};return {matched:false}},n={case:(o,a)=>{if(e.resolved)return n;let s={...e,patterns:[...e.patterns,{pattern:o,result:a}]};return ee(e.value,o)?H({...s,resolved:true,result:t(a,e.value)}):H(s)},caseValue:(o,a)=>{if(e.resolved)return n;if(e.value===o){let s=typeof a=="function"?a():a;return H({...e,resolved:true,result:s})}return n},caseValues:(o,a)=>{if(e.resolved)return n;if(o.includes(e.value)){let s=typeof a=="function"?a():a;return H({...e,resolved:true,result:s})}return n},when:(o,a)=>n.case(o,a),caseAny:(o,a)=>{if(e.resolved)return n;for(let s of o)if(ee(e.value,s))return H({...e,resolved:true,result:t(a,e.value),patterns:[...e.patterns,{pattern:s,result:a}]});return H({...e,patterns:[...e.patterns,...o.map(s=>({pattern:s,result:a}))]})},default:o=>e.resolved?e.result:t(o,e.value),exhaustive:()=>{let o=r();if(!o.matched)throw new Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(e.value)}`);return o.result},getOrThrow:o=>{let a=r();if(!a.matched)throw new Error(o||`No matching pattern for value: ${JSON.stringify(e.value)}`);return a.result},toOption:()=>{let o=r();return o.matched?f(o.result):f.none()}};return n},Xe=e=>H({value:e,resolved:false,patterns:[]}),et={exhaustive:e=>t=>{let r=e[t];if(r===void 0)throw new Error(`No case defined for value: ${String(t)}`);return r},partial:e=>({withDefault:t=>r=>{let n=e[r];return n!==void 0?typeof n=="function"?n(r):n:typeof t=="function"?t(r):t}}),withGuards:e=>({withDefault:t=>r=>{for(let[n,o]of e)if(n(r))return typeof o=="function"?o(r):o;return typeof t=="function"?t(r):t}}),struct:()=>{let e=[],t={case:(r,n)=>(e.push({pattern:r,handler:n}),t),build:()=>r=>{for(let{pattern:n,handler:o}of e)if(ee(r,n))return o(r);throw new Error(`No matching pattern for value: ${JSON.stringify(r)}`)}};return t},builder:()=>{let e=[],t,r={case:(n,o)=>(e.push({pattern:n,result:o}),r),when:(n,o)=>(e.push({pattern:n,result:o}),r),default:n=>(t=n,{build:()=>o=>{for(let{pattern:a,result:s}of e)if(ee(o,a))return typeof s=="function"?s(o):s;if(t!==void 0)return typeof t=="function"?t(o):t;throw new Error(`No matching pattern for value: ${JSON.stringify(o)}`)}})};return r}},ir=a(Xe,et);function te(e,t){return {...ce({_tag:e,impl:t}),toString(){return `${e}()`}}}var Te="Throwable",L=class e extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=Te;this.name=n?.taskInfo?.name||Te,Object.defineProperties(this,{_tag:{value:Te,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||Te,writable:false,configurable:false}}),n?.cause&&Object.defineProperty(this,"cause",{value:n.cause,writable:false,configurable:false}),n?.stack?this.stack=n.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}static apply(r,n,o){if(r instanceof Error){let u=new e(r.message,{data:n,cause:r.cause||void 0,stack:r.stack||void 0,taskInfo:o});for(let l of Object.keys(r))l in u||(u[l]=r[l]);return u}if(r&&typeof r=="object"){let u=r,l=typeof u.message=="string"?u.message:typeof u.error=="string"?u.error:`Object error: ${JSON.stringify(u,Object.getOwnPropertyNames(u).filter(g=>u[g]!==void 0))}`,E=new e(l,{data:n||u,taskInfo:o});for(let g of Object.keys(u))g in E||(E[g]=u[g]);return E}if(typeof r=="function"){let u=r.name||"anonymous function",l=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new e(`Function error: ${u}`,{data:n||{functionType:typeof r,functionName:u,functionString:l},taskInfo:o})}let a=typeof r,s=r===null?"null":r===void 0?"undefined":String(r);if(a==="number"){let u=r,l=Number.isNaN(u)?"Number error: NaN":Number.isFinite(u)?`Number error: ${u}`:`Number error: ${u>0?"Infinity":"-Infinity"}`;return new e(l,{data:n||{errorType:a,errorValue:u,originalError:r},taskInfo:o})}if(a==="bigint")return new e(`BigInt error: ${r}n`,{data:n||{errorType:a,errorValue:String(r),originalError:r},taskInfo:o});if(a==="boolean")return new e(`Boolean error: ${r}`,{data:n||{errorType:a,errorValue:r,originalError:r},taskInfo:o});if(a==="symbol"){let u=r.description||"unnamed symbol";return new e(`Symbol error: Symbol(${u})`,{data:n||{errorType:a,symbolDescription:u,originalError:r},taskInfo:o})}let i=typeof r=="string"?r:`${a.charAt(0).toUpperCase()+a.slice(1)} error: ${s}`;return new e(i,{data:n||{errorType:a,errorValue:s,originalError:r},taskInfo:o})}};var R=e=>{let t=new Promise((r,n)=>{try{e(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>R((n,o)=>{t.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>R((n,o)=>{t.then(a=>{try{let s=r(a);"_tag"in s&&s._tag==="FPromise"?s.then(n,o):Promise.resolve(s).then(n,o);}catch(s){o(s);}}).catch(o);}),flatMapAsync:async r=>{let n=await t,o=r(n);return o instanceof Promise?o:new Promise((a,s)=>{o.then(a,s);})},tap:r=>R((n,o)=>{t.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>R((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};o(r(a,s));}catch(s){o(s);}});}),tapError:r=>R((n,o)=>{t.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>R(n=>{t.then(n).catch(()=>n(r));}),recoverWith:r=>R(n=>{t.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>R((n,o)=>{t.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>R((o,a)=>{t.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(i){a(i);}else a(s);});}),logError:r=>R((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};r(a,s);}catch{}finally{o(a);}});}),then:(r,n)=>t.then(r,n),toPromise:()=>t,toEither:()=>t,fold:(r,n)=>R((o,a)=>{t.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},tt={resolve:e=>R(t=>t(e)),reject:e=>R((t,r)=>r(e)),from:e=>R((t,r)=>{e.then(t).catch(r);}),fromEither:e=>e.isRight()?R(t=>t(e.value)):R((t,r)=>r(e.value)),all:e=>R((t,r)=>{Promise.all(e.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(t).catch(r);}),allSettled:e=>R(t=>{let r=[],n=0;if(e.length===0){t([]);return}e.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=c(s),n++,n===e.length&&t(r);}).catch(s=>{r[a]=p(s),n++,n===e.length&&t(r);});});}),race:e=>R((t,r)=>{Promise.race(e).then(t,r);}),any:e=>R((t,r)=>{if(typeof Promise.any=="function")Promise.any(e).then(t,r);else {let n=0,o=[];if(e.length===0){r(new AggregateError([],"All promises were rejected"));return}e.forEach((a,s)=>{Promise.resolve(a).then(t).catch(i=>{o[s]=i,n++,n===e.length&&r(new AggregateError(o,"All promises were rejected"));});});}}),retryWithBackoff:(e,t)=>{let{maxRetries:r,baseDelay:n=100,shouldRetry:o=()=>true}=t;return R((a,s)=>{let i=0,u=()=>{e().toPromise().then(a).catch(l=>{if(i++,i<=r&&o(l,i)){let E=n*Math.pow(2,i-1);setTimeout(u,E);}else s(l);});};u();})}},ge=a(R,tt);function rt(e){return e instanceof Error&&typeof e=="object"&&true&&e._tag==="Throwable"}var Ne=(e,t,r)=>{let n=r?.name||"TaskException",o=r?.description||"Unspecified TaskException",a={name:n,description:o},s=L.apply(e,t,a);return {...te("TaskException",p(s)),_task:a}},_e=(e,t)=>{let r=t?.name||"TaskResult",n=t?.description||"Unspecified TaskResult";return {...te("TaskResult",c(e)),_task:{name:r,description:n}}},Ee=()=>{let e=new AbortController,t=[];return {token:{get isCancelled(){return e.signal.aborted},get signal(){return e.signal},onCancel(n){e.signal.aborted?n():t.push(n);}},cancel(){e.signal.aborted||(e.abort(),t.forEach(n=>{try{n();}catch(o){console.error("Error in cancellation callback:",o);}}));}}},nt=e=>{let t=e?.name||"Task",r=e?.description||"",n={Async:(o,a=u=>u,s=()=>{},i)=>ge(async(u,l)=>{let E=false,g=null,F=()=>{};if(i){if(i.isCancelled){try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}l(L.apply(new Error("Task was cancelled before execution started"),void 0,{name:t,description:r}));return}let v=()=>{E=true,g=new Error("Task was cancelled during execution");};i.onCancel(v),F=()=>{};}try{let v=await o();if(E){try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}l(g?L.apply(g,void 0,{name:t,description:r}):L.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}u(v);}catch(v){if(E){try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}l(g?L.apply(g,void 0,{name:t,description:r}):L.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){l(L.apply(A,void 0,{name:t,description:r}));return}try{if(v instanceof Error&&rt(v)){let A=new Error(`${t}: ${v.message}`),G=L.apply(A,void 0,{name:t,description:r});Object.defineProperty(G,"cause",{value:v,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(v);}catch(j){console.error("Error in error handler:",j);}}),l(G);}else {let A=await a(v);l(L.apply(A,void 0,{name:t,description:r}));}}catch(A){l(L.apply(A,void 0,{name:t,description:r}));}}finally{F();}}),Sync:(o,a=i=>i,s=()=>{})=>{try{return _e(o(),{name:t,description:r})}catch(i){return Ne(a(i),void 0,{name:t,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=l=>l,i=()=>{},u)=>{let l=E=>{let g=Math.max(0,Math.min(100,E));g<=100&&a(g);};return n.Async(()=>o(l),s,i,u)}};return {...te("Task",n),_type:"Task"}},Ie={success:(e,t)=>_e(e,t),fail:(e,t,r)=>Ne(e,t,r),getErrorChain:e=>{if(!e)return [];let t=[e],r=e;for(;r&&r.cause;){let n=r.cause;if(n)t.push(n),r=n;else break;if(t.length>100)break}return t},formatErrorChain:(e,t)=>{let r=Ie.getErrorChain(e),n=t?.separator||`
9
9
  `;return r.map((o,a)=>{if(!o)return `${a>0?"\u21B3 ":""}Unknown error`;let s=o.taskInfo,i=t?.includeTasks&&s?.name?`[${s.name}] `:"",u=o.message||"No message",l=`${a>0?"\u21B3 ":""}${i}${u}`;return t?.includeStackTrace&&o.stack&&(l+=`
10
10
  ${o.stack.split(`
11
11
  `).slice(1).join(`
@@ -25,19 +25,19 @@ ${ze(u)}`:`
25
25
 
26
26
  Context:
27
27
  ${ze(u)}`;i+=l;}}return i}function wr(){return function(t){if(!t)return t;let r=t instanceof Error?t:new Error(String(t)),n={message:r.message,name:r.name||"Error",stack:r.stack?fe(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof V?.getErrorChain=="function")try{let o=V.getErrorChain(r);o.length>1&&(n.errorChain=V.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?fe(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var Sr=e=>{let t=new Error(e);return t.name="ParseError",t};var C=(e,t,r,n)=>{let o=L.apply(t,r,{name:e,description:t});return Object.assign(o,{code:e,message:t,status:ot(e),context:r,timestamp:new Date().toISOString(),traceId:n?.traceId})},ot=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],at={validation:(e,t,r)=>C("VALIDATION_FAILED",`Validation failed: ${e} ${r}`,{field:e,value:t,rule:r}),network:(e,t,r)=>C("NETWORK_ERROR",`Network error: ${t} ${e}${r?` (${r})`:""}`,{url:e,method:t,statusCode:r}),auth:(e,t)=>C("AUTH_REQUIRED",`Authentication required: ${e}${t?` (role: ${t})`:""}`,{resource:e,requiredRole:t}),notFound:(e,t)=>C("NOT_FOUND",`Not found: ${e} with id ${t}`,{resource:e,id:t}),permission:(e,t,r)=>C("PERMISSION_DENIED",`Permission denied: cannot ${e} ${t}`,{action:e,resource:t,userId:r}),rateLimit:(e,t,r)=>C("RATE_LIMITED",`Rate limit exceeded: ${e} requests per ${t}`,{limit:e,window:t,retryAfter:r}),internal:e=>C("INTERNAL_ERROR",`Internal server error: ${e}`,{errorId:e,timestamp:new Date().toISOString()}),badRequest:(e,t)=>C("BAD_REQUEST",`Bad request: ${e}`,{reason:e,expected:t}),conflict:(e,t)=>C("CONFLICT",`Conflict: ${e} already exists with value ${t}`,{resource:e,conflictingValue:t}),timeout:(e,t)=>C("TIMEOUT",`Request timeout: ${t} exceeded ${e}ms`,{duration:e,operation:t}),isTypedError:e=>typeof e=="object"&&e!==null&&"code"in e&&"message"in e&&"status"in e&&"context"in e&&"_tag"in e&&e._tag==="Throwable",hasCode:(e,t)=>e.code===t},x=Object.assign(C,at);var k=e=>{let t={_tag:"LazyList",[Symbol.iterator]:()=>e[Symbol.iterator](),map:r=>k(function*(){for(let n of e)yield r(n);}()),flatMap:r=>k(function*(){for(let n of e)yield*r(n);}()),filter:r=>k(function*(){for(let n of e)r(n)&&(yield n);}()),take:r=>k(function*(){let n=0;for(let o of e){if(n>=r)break;yield o,n++;}}()),drop:r=>k(function*(){let n=0;for(let o of e)n>=r&&(yield o),n++;}()),takeWhile:r=>k(function*(){for(let n of e){if(!r(n))break;yield n;}}()),dropWhile:r=>k(function*(){let n=true;for(let o of e)n&&r(o)||(n=false,yield o);}()),concat:r=>k(function*(){yield*e,yield*r;}()),zip:r=>k(function*(){let n=e[Symbol.iterator](),o=r[Symbol.iterator]();for(;;){let a=n.next(),s=o.next();if(a.done||s.done)break;yield [a.value,s.value];}}()),toList:()=>m(Array.from(e)),toArray:()=>Array.from(e),forEach:r=>{for(let n of e)r(n);},reduce:(r,n)=>{let o=n;for(let a of e)o=r(o,a);return o},find:r=>{for(let n of e)if(r(n))return f(n);return f.none()},some:r=>{for(let n of e)if(r(n))return true;return false},every:r=>{for(let n of e)if(!r(n))return false;return true},count:()=>{let r=0;for(let n of e)r++;return r},first:()=>{let n=e[Symbol.iterator]().next();return n.done?f.none():f(n.value)},last:()=>{let r,n=false;for(let o of e)r=o,n=true;return n?f(r):f.none()},fold:(r,n)=>{let a=e[Symbol.iterator]().next();return a.done?r():n(a.value)},foldLeft:r=>n=>{let o=r;for(let a of e)o=n(o,a);return o},foldRight:r=>n=>Array.from(e).reduceRight((a,s)=>n(s,a),r),pipe:r=>r(t),serialize:()=>{let r=Array.from(e);return {toJSON:()=>JSON.stringify({_tag:"LazyList",value:r}),toYAML:()=>`_tag: LazyList
28
- value: ${se(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=0,a=false;for(let i of e)if(o<10)n.push(i),o++;else {a=true;break}let s=n.map(i=>String(i)).join(", ");return a?`LazyList(${s}, ...)`:`LazyList(${s})`}};return t},it=e=>k(e),ut={empty:()=>k([]),of:e=>k([e]),from:(...e)=>k(e),iterate:(e,t)=>k(function*(){let r=e;for(;;)yield r,r=t(r);}()),generate:e=>k(function*(){for(;;)yield e();}()),range:(e,t,r=1)=>k(function*(){if(r===0)throw new Error("Step cannot be zero");if(r>0)for(let n=e;n<t;n+=r)yield n;else for(let n=e;n>t;n+=r)yield n;}()),repeat:(e,t)=>k(function*(){if(t===void 0)for(;;)yield e;else for(let r=0;r<t;r++)yield e;}()),cycle:e=>k(function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t;}())},Mr=a(it,ut);var N={rule:e=>t=>{if(e==="email")return typeof t!="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?p(x.validation("value",t,"must be a valid email")):c(t);if(e==="url")try{return new URL(String(t)),c(t)}catch{return p(x.validation("value",t,"must be a valid URL"))}if(e==="uuid")return typeof t!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)?p(x.validation("value",t,"must be a valid UUID")):c(t);if(e==="required")return t==null||t===""?p(x.validation("value",t,"is required")):c(t);if(e==="numeric")return typeof t!="number"&&!/^\d+$/.test(String(t))?p(x.validation("value",t,"must be numeric")):c(t);if(e==="alpha")return typeof t!="string"||!/^[a-zA-Z]+$/.test(t)?p(x.validation("value",t,"must contain only letters")):c(t);if(e==="alphanumeric")return typeof t!="string"||!/^[a-zA-Z0-9]+$/.test(t)?p(x.validation("value",t,"must be alphanumeric")):c(t);if(e.startsWith("min:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n<r?p(x.validation("value",t,`must be at least ${r}`)):c(t)}if(e.startsWith("max:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n>r?p(x.validation("value",t,`must be at most ${r}`)):c(t)}if(e.startsWith("minLength:")){let r=Number(e.split(":")[1]);return String(t).length<r?p(x.validation("value",t,`must be at least ${r} characters`)):c(t)}if(e.startsWith("maxLength:")){let r=Number(e.split(":")[1]);return String(t).length>r?p(x.validation("value",t,`must be at most ${r} characters`)):c(t)}if(e.startsWith("pattern:")){let r=e.substring(8);return new RegExp(r).test(String(t))?c(t):p(x.validation("value",t,`must match pattern ${r}`))}if(e.startsWith("in:")){let r=e.substring(3).split(",");return r.includes(String(t))?c(t):p(x.validation("value",t,`must be one of: ${r.join(", ")}`))}if(e.startsWith("notIn:")){let r=e.substring(6).split(",");return r.includes(String(t))?p(x.validation("value",t,`must not be one of: ${r.join(", ")}`)):c(t)}if(e==="date"){let r=new Date(String(t));return isNaN(r.getTime())?p(x.validation("value",t,"must be a valid date")):c(t)}if(e==="future"){let r=new Date(String(t));return isNaN(r.getTime())||r<=new Date?p(x.validation("value",t,"must be a future date")):c(t)}if(e==="past"){let r=new Date(String(t));return isNaN(r.getTime())||r>=new Date?p(x.validation("value",t,"must be a past date")):c(t)}return c(t)},combine:(...e)=>t=>{for(let r of e){let n=r(t);if(n.isLeft())return n}return c(t)},custom:(e,t)=>r=>e(r)?c(r):p(x.validation("value",r,t)),form:(e,t)=>{let r=[],n={};for(let[o,a]of Object.entries(e)){let s=t[o],i=a(s);if(i.isLeft()){let u=i.fold(E=>E,()=>{throw new Error("Should not be left")}),l=x.validation(o,s,u.context.rule);r.push(l);}else n[o]=i.get();}return r.length>0?p(m(r)):c(n)}},lt={...N,validators:{email:N.rule("email"),url:N.rule("url"),uuid:N.rule("uuid"),required:N.rule("required"),numeric:N.rule("numeric"),positiveNumber:N.combine(N.rule("numeric"),N.rule("min:0")),nonEmptyString:N.combine(N.rule("required"),N.custom(e=>typeof e=="string"&&e.trim().length>0,"must not be empty"))}},Kr=Object.assign(N.rule,lt);function pt(e){return e!=null&&typeof e=="object"&&"getOrElse"in e&&typeof e.getOrElse=="function"&&"getOrThrow"in e&&typeof e.getOrThrow=="function"&&"get"in e&&typeof e.get=="function"&&"orElse"in e&&typeof e.orElse=="function"&&"orNull"in e&&typeof e.orNull=="function"&&"orUndefined"in e&&typeof e.orUndefined=="function"}var Zr={toOption:e=>e.fold(()=>b(),t=>w(t)),toList:e=>e.fold(()=>m([]),t=>m([t])),toEither:(e,t)=>e.fold(()=>p(t),r=>c(r)),isEmpty:e=>e.fold(()=>true,()=>false),size:e=>e.fold(()=>0,()=>1)};var de=e=>({_tag:"Success",error:void 0,isSuccess:()=>true,isFailure:()=>false,get:()=>e,getOrElse:t=>e,getOrThrow:t=>e,orElse:t=>de(e),orNull:()=>e,orUndefined:()=>e,orThrow:t=>e,toEither:()=>c(e),map:t=>Ae(()=>t(e)),ap:t=>t.map(r=>r(e)),flatMap:t=>t(e),flatMapAsync:async t=>t(e),fold:(t,r)=>r(e),match:t=>t.Success(e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),toString:()=>`Success(${se(e)})`,toValue:()=>({_tag:"Success",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:e}),toYAML:()=>`_tag: Success
29
- value: ${se(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Success",value:e})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?f(e):f(void 0),exists:t=>t(e),forEach:t=>t(e)}),$=e=>({_tag:"Failure",error:e,isSuccess:()=>false,isFailure:()=>true,get:()=>{throw e},getOrElse:t=>t,getOrThrow:t=>{throw t||e},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},orThrow:t=>{throw t},toEither:()=>p(e),map:t=>$(e),ap:t=>$(e),flatMap:t=>$(e),flatMapAsync:async t=>$(e),fold:(t,r)=>t(e),match:t=>t.Failure(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,toString:()=>`Failure(${se(e)}))`,toValue:()=>({_tag:"Failure",value:e}),pipe:t=>{throw e},serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack}),toYAML:()=>`_tag: Failure
28
+ value: ${se(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=0,a=false;for(let i of e)if(o<10)n.push(i),o++;else {a=true;break}let s=n.map(i=>String(i)).join(", ");return a?`LazyList(${s}, ...)`:`LazyList(${s})`}};return t},it=e=>k(e),ut={empty:()=>k([]),of:e=>k([e]),from:(...e)=>k(e),iterate:(e,t)=>k(function*(){let r=e;for(;;)yield r,r=t(r);}()),generate:e=>k(function*(){for(;;)yield e();}()),range:(e,t,r=1)=>k(function*(){if(r===0)throw new Error("Step cannot be zero");if(r>0)for(let n=e;n<t;n+=r)yield n;else for(let n=e;n>t;n+=r)yield n;}()),repeat:(e,t)=>k(function*(){if(t===void 0)for(;;)yield e;else for(let r=0;r<t;r++)yield e;}()),cycle:e=>k(function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t;}())},Mr=a(it,ut);var N={rule:e=>t=>{if(e==="email")return typeof t!="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)?p(x.validation("value",t,"must be a valid email")):c(t);if(e==="url")try{return new URL(String(t)),c(t)}catch{return p(x.validation("value",t,"must be a valid URL"))}if(e==="uuid")return typeof t!="string"||!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)?p(x.validation("value",t,"must be a valid UUID")):c(t);if(e==="required")return t==null||t===""?p(x.validation("value",t,"is required")):c(t);if(e==="numeric")return typeof t!="number"&&!/^\d+$/.test(String(t))?p(x.validation("value",t,"must be numeric")):c(t);if(e==="alpha")return typeof t!="string"||!/^[a-zA-Z]+$/.test(t)?p(x.validation("value",t,"must contain only letters")):c(t);if(e==="alphanumeric")return typeof t!="string"||!/^[a-zA-Z0-9]+$/.test(t)?p(x.validation("value",t,"must be alphanumeric")):c(t);if(e.startsWith("min:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n<r?p(x.validation("value",t,`must be at least ${r}`)):c(t)}if(e.startsWith("max:")){let r=Number(e.split(":")[1]),n=Number(t);return isNaN(n)||n>r?p(x.validation("value",t,`must be at most ${r}`)):c(t)}if(e.startsWith("minLength:")){let r=Number(e.split(":")[1]);return String(t).length<r?p(x.validation("value",t,`must be at least ${r} characters`)):c(t)}if(e.startsWith("maxLength:")){let r=Number(e.split(":")[1]);return String(t).length>r?p(x.validation("value",t,`must be at most ${r} characters`)):c(t)}if(e.startsWith("pattern:")){let r=e.substring(8);return new RegExp(r).test(String(t))?c(t):p(x.validation("value",t,`must match pattern ${r}`))}if(e.startsWith("in:")){let r=e.substring(3).split(",");return r.includes(String(t))?c(t):p(x.validation("value",t,`must be one of: ${r.join(", ")}`))}if(e.startsWith("notIn:")){let r=e.substring(6).split(",");return r.includes(String(t))?p(x.validation("value",t,`must not be one of: ${r.join(", ")}`)):c(t)}if(e==="date"){let r=new Date(String(t));return isNaN(r.getTime())?p(x.validation("value",t,"must be a valid date")):c(t)}if(e==="future"){let r=new Date(String(t));return isNaN(r.getTime())||r<=new Date?p(x.validation("value",t,"must be a future date")):c(t)}if(e==="past"){let r=new Date(String(t));return isNaN(r.getTime())||r>=new Date?p(x.validation("value",t,"must be a past date")):c(t)}return c(t)},combine:(...e)=>t=>{for(let r of e){let n=r(t);if(n.isLeft())return n}return c(t)},custom:(e,t)=>r=>e(r)?c(r):p(x.validation("value",r,t)),form:(e,t)=>{let r=[],n={};for(let[o,a]of Object.entries(e)){let s=t[o],i=a(s);if(i.isLeft()){let u=i.fold(E=>E,()=>{throw new Error("Should not be left")}),l=x.validation(o,s,u.context.rule);r.push(l);}else n[o]=i.get();}return r.length>0?p(m(r)):c(n)}},lt={...N,validators:{email:N.rule("email"),url:N.rule("url"),uuid:N.rule("uuid"),required:N.rule("required"),numeric:N.rule("numeric"),positiveNumber:N.combine(N.rule("numeric"),N.rule("min:0")),nonEmptyString:N.combine(N.rule("required"),N.custom(e=>typeof e=="string"&&e.trim().length>0,"must not be empty"))}},$r=Object.assign(N.rule,lt);function pt(e){return e!=null&&typeof e=="object"&&"getOrElse"in e&&typeof e.getOrElse=="function"&&"getOrThrow"in e&&typeof e.getOrThrow=="function"&&"get"in e&&typeof e.get=="function"&&"orElse"in e&&typeof e.orElse=="function"&&"orNull"in e&&typeof e.orNull=="function"&&"orUndefined"in e&&typeof e.orUndefined=="function"}var Zr={toOption:e=>e.fold(()=>b(),t=>w(t)),toList:e=>e.fold(()=>m([]),t=>m([t])),toEither:(e,t)=>e.fold(()=>p(t),r=>c(r)),isEmpty:e=>e.fold(()=>true,()=>false),size:e=>e.fold(()=>0,()=>1)};var de=e=>({_tag:"Success",error:void 0,isSuccess:()=>true,isFailure:()=>false,get:()=>e,getOrElse:t=>e,getOrThrow:t=>e,orElse:t=>de(e),orNull:()=>e,orUndefined:()=>e,orThrow:t=>e,toEither:()=>c(e),map:t=>Ae(()=>t(e)),ap:t=>t.map(r=>r(e)),flatMap:t=>t(e),flatMapAsync:async t=>t(e),fold:(t,r)=>r(e),match:t=>t.Success(e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),toString:()=>`Success(${se(e)})`,toValue:()=>({_tag:"Success",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:e}),toYAML:()=>`_tag: Success
29
+ value: ${se(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Success",value:e})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:t=>e===t,reduce:t=>e,reduceRight:t=>e,count:t=>t(e)?1:0,find:t=>t(e)?f(e):f(void 0),exists:t=>t(e),forEach:t=>t(e)}),K=e=>({_tag:"Failure",error:e,isSuccess:()=>false,isFailure:()=>true,get:()=>{throw e},getOrElse:t=>t,getOrThrow:t=>{throw t||e},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},orThrow:t=>{throw t},toEither:()=>p(e),map:t=>K(e),ap:t=>K(e),flatMap:t=>K(e),flatMapAsync:async t=>K(e),fold:(t,r)=>t(e),match:t=>t.Failure(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,toString:()=>`Failure(${se(e)}))`,toValue:()=>({_tag:"Failure",value:e}),pipe:t=>{throw e},serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack}),toYAML:()=>`_tag: Failure
30
30
  error: ${e.message}
31
- stack: ${e.stack}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:t=>false,reduce:t=>{throw new Error("Cannot reduce a Failure")},reduceRight:t=>{throw new Error("Cannot reduceRight a Failure")},count:t=>0,find:t=>f(null),exists:t=>false,forEach:t=>{}}),ct=e=>{try{return de(e())}catch(t){return $(t instanceof Error?t:new Error(String(t)))}},Fe={fromJSON:e=>{let t=JSON.parse(e);if(t._tag==="Success")return de(t.value);{let r=new Error(t.error);return t.stack&&(r.stack=t.stack),$(r)}},fromYAML:e=>{let t=e.split(`
32
- `),r=t[0]?.split(": ")[1];if(!r)return $(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=t[1]?.split(": ")[1];if(!n)return $(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return de(o)}else {let n=t[1]?.split(": ")[1];if(!n)return $(new Error("Invalid YAML format for Try Failure"));let o=t[2]?.split(": "),a=o&&o.length>1?o.slice(1).join(": "):void 0,s=new Error(n);return a&&(s.stack=a),$(s)}},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Fe.fromJSON(t)}},Ae=a(ct,Fe);var q=e=>e!==null&&typeof e=="object"&&(e._tag==="Some"||e._tag==="None"),K=e=>e!==null&&typeof e=="object"&&e._tag==="List",re=e=>e!==null&&typeof e=="object"&&(e._tag==="Left"||e._tag==="Right"),ne=e=>e!==null&&typeof e=="object"&&(e._tag==="Success"||e._tag==="Failure"),S=()=>{let e=(s,i)=>{if(q(s))return s.map(u=>i(u));if(K(s))return s.map(u=>i(u));if(re(s))return s.map(u=>i(u));if(ne(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},t=s=>{if(q(s))return s.get();if(K(s)){let i=s.toArray();if(i.length>0&&K(i[0])){let u=[];for(let l of i)K(l)&&u.push(...l.toArray());return m(u)}return s.flatten()}if(re(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(ne(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(q(s))return s.flatMap(u=>i(u));if(K(s))return s.flatMap(u=>i(u));if(re(s))return s.flatMap(u=>i(u));if(ne(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(q(s)&&q(i))return s.flatMap(u=>i.map(l=>u(l)));if(K(s)&&K(i))return s.flatMap(u=>i.map(l=>u(l)));if(re(s)&&re(i))return s.flatMap(u=>i.map(l=>u(l)));if(ne(s)&&ne(i))return s.flatMap(u=>i.map(l=>u(l)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(q(s)){let i=s;if(i.isEmpty)return m([f.none()]);let u=i.get();if(K(u))return u.map(l=>f(l));throw new Error("Unsupported inner container type for sequence")}if(K(s)){let u=s.toArray();if(u.length===0)return f.none();let l=u[0];if(q(l)){for(let g of u)if(g.isEmpty)return f.none();let E=u.map(g=>g.get());return f(m(E))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {...te("HKT",{map:e,flatten:t,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(e(s,u=>i(u)))}),_type:"HKT"}};S.map=(e,t)=>S().map(e,t);S.flatten=e=>S().flatten(e);S.flatMap=(e,t)=>S().flatMap(e,t);S.ap=(e,t)=>S().ap(e,t);S.sequence=e=>S().sequence(e);S.traverse=(e,t)=>S().traverse(e,t);S.isOption=q;S.isList=K;S.isEither=re;S.isTry=ne;function cn(e){return {id:e,isSame:r=>r.id===e}}var Y=e=>{let t=false,r,n,o=false,a=()=>{if(!t)try{r=e(),t=!0;}catch(i){throw n=i,o=true,t=true,i}if(o)throw n;return r};return {_tag:"Lazy",get isEvaluated(){return t},get:a,getOrElse:i=>{try{return a()}catch{return i}},getOrNull:()=>{try{return a()}catch{return null}},orNull:()=>{try{return a()}catch{return null}},getOrThrow:i=>{try{return a()}catch(u){throw i||u}},orElse:i=>M(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>M(()=>i(a())),ap:i=>M(()=>i.get()(a())),mapAsync:async i=>{let u=a(),l=await i(u);return M(()=>l)},flatMap:i=>M(()=>i(a()).get()),flatMapAsync:async i=>{let u=a(),l=await i(u);return M(()=>l.get())},filter:i=>M(()=>{let u=a();return i(u)?w(u):b}),recover:i=>M(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>M(()=>{try{return a()}catch(u){return i(u).get()}}),toOption:()=>{try{return w(a())}catch{return b}},toEither:()=>{try{return c(a())}catch(i){return p(i)}},toEitherWith:i=>{try{return c(a())}catch(u){return p(i(u))}},toTry:()=>Ae(()=>a()),tap:i=>M(()=>{let u=a();return i(u),u}),tapError:i=>M(()=>{try{return a()}catch(u){throw i(u),u}}),fold:i=>i(a()),foldWith:(i,u)=>{try{return u(a())}catch(l){return i(l)}},foldLeft:i=>u=>u(i,a()),foldRight:i=>u=>u(a(),i),match:i=>i.Lazy(a()),toString:()=>t&&!o?`Lazy(${se(r)})`:t&&o?`Lazy(<error: ${n instanceof Error?n.message:String(n)}>)`:"Lazy(<not evaluated>)",toValue:()=>t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false},get size(){try{return a(),1}catch{return 0}},get isEmpty(){try{return a(),!1}catch{return true}},contains:i=>{try{return a()===i}catch{return false}},reduce:i=>a(),reduceRight:i=>a(),count:i=>{try{return i(a())?1:0}catch{return 0}},find:i=>{try{let u=a();return i(u)?w(u):b}catch{return b}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>t&&!o?`_tag: Lazy
31
+ stack: ${e.stack}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Failure",error:e.message,stack:e.stack})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:t=>false,reduce:t=>{throw new Error("Cannot reduce a Failure")},reduceRight:t=>{throw new Error("Cannot reduceRight a Failure")},count:t=>0,find:t=>f(null),exists:t=>false,forEach:t=>{}}),ct=e=>{try{return de(e())}catch(t){return K(t instanceof Error?t:new Error(String(t)))}},Fe={fromJSON:e=>{let t=JSON.parse(e);if(t._tag==="Success")return de(t.value);{let r=new Error(t.error);return t.stack&&(r.stack=t.stack),K(r)}},fromYAML:e=>{let t=e.split(`
32
+ `),r=t[0]?.split(": ")[1];if(!r)return K(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=t[1]?.split(": ")[1];if(!n)return K(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return de(o)}else {let n=t[1]?.split(": ")[1];if(!n)return K(new Error("Invalid YAML format for Try Failure"));let o=t[2]?.split(": "),a=o&&o.length>1?o.slice(1).join(": "):void 0,s=new Error(n);return a&&(s.stack=a),K(s)}},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Fe.fromJSON(t)}},Ae=a(ct,Fe);var q=e=>e!==null&&typeof e=="object"&&(e._tag==="Some"||e._tag==="None"),$=e=>e!==null&&typeof e=="object"&&e._tag==="List",re=e=>e!==null&&typeof e=="object"&&(e._tag==="Left"||e._tag==="Right"),ne=e=>e!==null&&typeof e=="object"&&(e._tag==="Success"||e._tag==="Failure"),S=()=>{let e=(s,i)=>{if(q(s))return s.map(u=>i(u));if($(s))return s.map(u=>i(u));if(re(s))return s.map(u=>i(u));if(ne(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},t=s=>{if(q(s))return s.get();if($(s)){let i=s.toArray();if(i.length>0&&$(i[0])){let u=[];for(let l of i)$(l)&&u.push(...l.toArray());return m(u)}return s.flatten()}if(re(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(ne(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(q(s))return s.flatMap(u=>i(u));if($(s))return s.flatMap(u=>i(u));if(re(s))return s.flatMap(u=>i(u));if(ne(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(q(s)&&q(i))return s.flatMap(u=>i.map(l=>u(l)));if($(s)&&$(i))return s.flatMap(u=>i.map(l=>u(l)));if(re(s)&&re(i))return s.flatMap(u=>i.map(l=>u(l)));if(ne(s)&&ne(i))return s.flatMap(u=>i.map(l=>u(l)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(q(s)){let i=s;if(i.isEmpty)return m([f.none()]);let u=i.get();if($(u))return u.map(l=>f(l));throw new Error("Unsupported inner container type for sequence")}if($(s)){let u=s.toArray();if(u.length===0)return f.none();let l=u[0];if(q(l)){for(let g of u)if(g.isEmpty)return f.none();let E=u.map(g=>g.get());return f(m(E))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {...te("HKT",{map:e,flatten:t,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(e(s,u=>i(u)))}),_type:"HKT"}};S.map=(e,t)=>S().map(e,t);S.flatten=e=>S().flatten(e);S.flatMap=(e,t)=>S().flatMap(e,t);S.ap=(e,t)=>S().ap(e,t);S.sequence=e=>S().sequence(e);S.traverse=(e,t)=>S().traverse(e,t);S.isOption=q;S.isList=$;S.isEither=re;S.isTry=ne;function cn(e){return {id:e,isSame:r=>r.id===e}}var Y=e=>{let t=false,r,n,o=false,a=()=>{if(!t)try{r=e(),t=!0;}catch(i){throw n=i,o=true,t=true,i}if(o)throw n;return r};return {_tag:"Lazy",get isEvaluated(){return t},get:a,getOrElse:i=>{try{return a()}catch{return i}},getOrNull:()=>{try{return a()}catch{return null}},orNull:()=>{try{return a()}catch{return null}},getOrThrow:i=>{try{return a()}catch(u){throw i||u}},orElse:i=>M(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>M(()=>i(a())),ap:i=>M(()=>i.get()(a())),mapAsync:async i=>{let u=a(),l=await i(u);return M(()=>l)},flatMap:i=>M(()=>i(a()).get()),flatMapAsync:async i=>{let u=a(),l=await i(u);return M(()=>l.get())},filter:i=>M(()=>{let u=a();return i(u)?w(u):b}),recover:i=>M(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>M(()=>{try{return a()}catch(u){return i(u).get()}}),toOption:()=>{try{return w(a())}catch{return b}},toEither:()=>{try{return c(a())}catch(i){return p(i)}},toEitherWith:i=>{try{return c(a())}catch(u){return p(i(u))}},toTry:()=>Ae(()=>a()),tap:i=>M(()=>{let u=a();return i(u),u}),tapError:i=>M(()=>{try{return a()}catch(u){throw i(u),u}}),fold:i=>i(a()),foldWith:(i,u)=>{try{return u(a())}catch(l){return i(l)}},foldLeft:i=>u=>u(i,a()),foldRight:i=>u=>u(a(),i),match:i=>i.Lazy(a()),toString:()=>t&&!o?`Lazy(${se(r)})`:t&&o?`Lazy(<error: ${n instanceof Error?n.message:String(n)}>)`:"Lazy(<not evaluated>)",toValue:()=>t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false},get size(){try{return a(),1}catch{return 0}},get isEmpty(){try{return a(),!1}catch{return true}},contains:i=>{try{return a()===i}catch{return false}},reduce:i=>a(),reduceRight:i=>a(),count:i=>{try{return i(a())?1:0}catch{return 0}},find:i=>{try{let u=a();return i(u)?w(u):b}catch{return b}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>t&&!o?`_tag: Lazy
33
33
  evaluated: true
34
34
  value: ${se(r)}`:`_tag: Lazy
35
35
  evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false})).toString("base64")}),typeable:"Lazy"}},Tt={of:e=>Y(e),fromValue:e=>Y(()=>e),fromOption:(e,t)=>Y(()=>e._tag==="Some"?e.value:t()),fromTry:e=>Y(()=>e.get()),fromEither:e=>Y(()=>e.fold(t=>{throw t},t=>t)),fromPromise:e=>Y(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:e=>Y(()=>{throw e})},M=a(Y,Tt);var ie=Map;var W=e=>{let r={values:new ie(e)},n=()=>Array.from(r.values.entries()).map(([T,y])=>b$1([T,y])),o=T=>W(new ie(r.values).set(T.toArray()[0],T.toArray()[1]).entries()),a=T=>{let y=new ie(r.values);return y.delete(T)?W(y.entries()):W(r.values.entries())},s=T=>{let y=T.toArray();return r.values.get(y[0])===y[1]},i=()=>r.values.size,u=T=>W(Array.from(r.values.entries()).map(([y,_])=>[y,T(_)])),l=T=>{let y=W(r.values.entries()).toList();return W(y.flatMap(T).toArray())},E=T=>{let y=[];for(let[_,X]of r.values.entries()){let ae=T.get(_);ae._tag==="Some"&&ae.value&&y.push([_,ae.value(X)]);}return W(y)},g=async T=>{let y=new ie;for(let[_,X]of r.values.entries()){let ae=await T(X);for(let Je of ae.toList()){let[We,je]=Je.toArray();y.set(We,je);}}return W(y.entries())},F=T=>m(n()).reduce(T),v=T=>m(n()).reduceRight(T),A=T=>y=>m(n()).foldLeft(T)(y),G=T=>y=>m(n()).foldRight(T)(y),j=T=>f(r.values.get(T)),Z=(T,y)=>f(r.values.get(T)).getOrElse(y),oe=()=>r.values.size===0,ue=(T,y)=>f(r.values.get(T)).orElse(y),le=(T,y)=>{if(oe())return T();let _=n();if(_.length===0)return T();let X=_[0];return X===void 0?T():y(X)},be=()=>m(n()),d=()=>Q(n()),B=()=>`Map(${n().toString()})`,O=T=>oe()?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:E,flatMap:l,flatMapAsync:g,reduce:F,reduceRight:v,foldLeft:A,foldRight:G,fold:le,match:O,get:j,getOrElse:Z,get isEmpty(){return oe()},orElse:ue,toList:be,toSet:d,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
36
  value: ${JSON.stringify(Array.from(r.values.entries()))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())})).toString("base64")})}},ft=e=>W(e),Ce={fromJSON:e=>{let t=JSON.parse(e);return Re(t.value)},fromYAML:e=>{let r=e.split(`
37
- `)[1]?.split(": ")[1];if(!r)return Re([]);let n=JSON.parse(r);return Re(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ce.fromJSON(t)}},Re=a(ft,Ce);var dt={default:e=>t=>e(t),when:(e,t)=>r=>e(r)?t(r):void 0};function Le(e){let t=e;return {get(){return t},set(n){t=n;},update(n){t=n(t);},getAndSet(n){let o=t;return t=n,o},updateAndGet(n){return t=n(t),t},getAndUpdate(n){let o=t;return t=n(t),o},compareAndSet(n,o){return t===n?(t=o,true):false},modify(n){let[o,a]=n(t);return t=o,a}}}Le.of=Le;function Fn(e){let t=ce({_tag:e._tag,impl:e.impl});return {...t,toValue:()=>({_tag:t._tag,value:e.value})}}var z=(e=[])=>{let t="Stack",r=[...e],n=()=>r.length,o=()=>r.length===0;return {_tag:t,get size(){return n()},get isEmpty(){return o()},contains:d=>r.includes(d),reduce:d=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(d)},reduceRight:d=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(d)},push:d=>z([...r,d]),pop:()=>{if(o())return [z([]),f(null)];let d=[...r],B=d.pop();return [z(d),f(B)]},peek:()=>o()?f(null):f(r[r.length-1]),map:d=>z(r.map(d)),flatMap:d=>o()?z([]):r.reduce((B,O)=>d(O).toArray().reduce((y,_)=>y.push(_),B),z([])),ap:d=>{let B=[];return r.forEach(O=>{d.toArray().forEach(T=>{B.push(T(O));});}),z(B)},flatMapAsync:async d=>o()?z([]):(await Promise.all(r.map(async O=>await d(O)))).reduce((O,T)=>T.toArray().reduce((y,_)=>y.push(_),O),z([])),toList:()=>m(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(d,B)=>{if(o())return d();let O=r[r.length-1];return O!==void 0?B(O):d()},foldLeft:d=>B=>r.reduce(B,d),foldRight:d=>B=>r.reduceRight((O,T)=>B(T,O),d),match:d=>o()?d.Empty():d.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:d=>d([...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")})}},yt=(e=[])=>z(e),$e={empty:()=>z([]),of:e=>z([e]),fromJSON:e=>{let t=JSON.parse(e);return xe(t.value)},fromYAML:e=>{let r=e.split(`
39
- `)[1]?.split(": ")[1];if(!r)return xe([]);let n=JSON.parse(r);return xe(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return $e.fromJSON(t)}},xe=a(yt,$e);var w=e=>({_tag:"Some",value:e,isEmpty:false,get:()=>e,getOrElse:()=>e,getOrThrow:()=>e,orElse:t=>w(e),orNull:()=>e,orUndefined:()=>e,map:t=>w(t(e)),ap:t=>t._tag==="Some"&&t.value?w(t.value(e)):D,filter(t){return t(e)?w(e):D},count:t=>t(e)?1:0,find:t=>t(e)?w(e):D,exists:t=>t(e),forEach:t=>t(e),fold:(t,r)=>r(e),match:t=>t.Some(e),flatMap:t=>t(e),flatMapAsync:async t=>await t(e),reduce:t=>t(void 0,e),reduceRight:t=>t(void 0,e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),toList:()=>m([e]),contains:t=>t===e,size:1,toEither:t=>c(e),toString:()=>`Some(${se(e)})`,toValue:()=>({_tag:"Some",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:e}),toYAML:()=>`_tag: Some
37
+ `)[1]?.split(": ")[1];if(!r)return Re([]);let n=JSON.parse(r);return Re(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ce.fromJSON(t)}},Re=a(ft,Ce);var dt={default:e=>t=>e(t),when:(e,t)=>r=>e(r)?t(r):void 0};function Le(e){let t=e;return {get(){return t},set(n){t=n;},update(n){t=n(t);},getAndSet(n){let o=t;return t=n,o},updateAndGet(n){return t=n(t),t},getAndUpdate(n){let o=t;return t=n(t),o},compareAndSet(n,o){return t===n?(t=o,true):false},modify(n){let[o,a]=n(t);return t=o,a}}}Le.of=Le;function Vn(e){let t=ce({_tag:e._tag,impl:e.impl});return {...t,toValue:()=>({_tag:t._tag,value:e.value})}}var z=(e=[])=>{let t="Stack",r=[...e],n=()=>r.length,o=()=>r.length===0;return {_tag:t,get size(){return n()},get isEmpty(){return o()},contains:d=>r.includes(d),reduce:d=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(d)},reduceRight:d=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(d)},push:d=>z([...r,d]),pop:()=>{if(o())return [z([]),f(null)];let d=[...r],B=d.pop();return [z(d),f(B)]},peek:()=>o()?f(null):f(r[r.length-1]),map:d=>z(r.map(d)),flatMap:d=>o()?z([]):r.reduce((B,O)=>d(O).toArray().reduce((y,_)=>y.push(_),B),z([])),ap:d=>{let B=[];return r.forEach(O=>{d.toArray().forEach(T=>{B.push(T(O));});}),z(B)},flatMapAsync:async d=>o()?z([]):(await Promise.all(r.map(async O=>await d(O)))).reduce((O,T)=>T.toArray().reduce((y,_)=>y.push(_),O),z([])),toList:()=>m(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(d,B)=>{if(o())return d();let O=r[r.length-1];return O!==void 0?B(O):d()},foldLeft:d=>B=>r.reduce(B,d),foldRight:d=>B=>r.reduceRight((O,T)=>B(T,O),d),match:d=>o()?d.Empty():d.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:d=>d([...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")})}},yt=(e=[])=>z(e),Ke={empty:()=>z([]),of:e=>z([e]),fromJSON:e=>{let t=JSON.parse(e);return xe(t.value)},fromYAML:e=>{let r=e.split(`
39
+ `)[1]?.split(": ")[1];if(!r)return xe([]);let n=JSON.parse(r);return xe(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ke.fromJSON(t)}},xe=a(yt,Ke);var w=e=>({_tag:"Some",value:e,isEmpty:false,get:()=>e,getOrElse:()=>e,getOrThrow:()=>e,orElse:t=>w(e),orNull:()=>e,orUndefined:()=>e,map:t=>w(t(e)),ap:t=>t._tag==="Some"&&t.value?w(t.value(e)):D,filter(t){return t(e)?w(e):D},count:t=>t(e)?1:0,find:t=>t(e)?w(e):D,exists:t=>t(e),forEach:t=>t(e),fold:(t,r)=>r(e),match:t=>t.Some(e),flatMap:t=>t(e),flatMapAsync:async t=>await t(e),reduce:t=>t(void 0,e),reduceRight:t=>t(void 0,e),foldLeft:t=>r=>r(t,e),foldRight:t=>r=>r(e,t),toList:()=>m([e]),contains:t=>t===e,size:1,toEither:t=>c(e),toString:()=>`Some(${se(e)})`,toValue:()=>({_tag:"Some",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:e}),toYAML:()=>`_tag: Some
40
40
  value: ${se(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:e})).toString("base64")})}),D={_tag:"None",value:void 0,isEmpty:true,get:()=>{throw new Error("Cannot call get() on None")},getOrElse:e=>e,getOrThrow(e){throw e},orElse:e=>e,orNull:()=>null,orUndefined:()=>{},map:e=>D,ap:e=>D,filter(e){return D},count:e=>0,find:e=>D,exists:e=>false,forEach:e=>{},flatMap:e=>D,flatMapAsync:async e=>D,reduce:()=>{},reduceRight:()=>{},fold:(e,t)=>e(),match:e=>e.None(),foldLeft:e=>()=>e,foldRight:e=>()=>e,toList:()=>m([]),contains:()=>false,size:0,toEither:e=>p(e),toString:()=>"None",toValue:()=>({_tag:"None",value:void 0}),pipe:e=>e(void 0),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"None",value:null}),toYAML:()=>`_tag: None
41
41
  value: null`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"None",value:null})).toString("base64")})},b=()=>D,mt=e=>e!=null?w(e):b(),De={from:e=>f(e),none:()=>b(),fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Some"?w(t.value):b()},fromYAML:e=>{let t=e.split(`
42
- `),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)return b();let o=n==="null"?null:JSON.parse(n);return r==="Some"?w(o):b()},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return De.fromJSON(t)}},f=a(mt,De);export{M as $,Xt as A,er as B,nr as C,ir as D,te as E,Te as F,L as G,tt as H,ge as I,rt as J,Ne as K,_e as L,Ee as M,V as N,ze as O,fe as P,kr as Q,wr as R,Sr as S,x as T,Mr as U,Kr as V,pt as W,Zr as X,Ae as Y,S as Z,cn as _,w as a,ie as aa,b,Re as ba,mt as c,dt as ca,f as d,Le as da,Q as e,Fn as ea,m as f,xe as fa,c as g,p as h,It as i,Mt as j,zt as k,Qe as l,He as m,Ft as n,ve as o,I as p,Ge as q,Jt as r,Wt as s,jt as t,qt as u,Yt as v,Qt as w,Ht as x,Gt as y,Zt as z};//# sourceMappingURL=chunk-GHBOC52G.mjs.map
43
- //# sourceMappingURL=chunk-GHBOC52G.mjs.map
42
+ `),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)return b();let o=n==="null"?null:JSON.parse(n);return r==="Some"?w(o):b()},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return De.fromJSON(t)}},f=a(mt,De);export{S as $,Gt as A,Zt as B,Xt as C,er as D,nr as E,ir as F,te as G,Te as H,L as I,tt as J,ge as K,rt as L,Ne as M,_e as N,Ee as O,V as P,ze as Q,fe as R,kr as S,wr as T,Sr as U,x as V,Mr as W,$r as X,pt as Y,Zr as Z,Ae as _,w as a,cn as aa,b,M as ba,mt as c,ie as ca,f as d,Re as da,Q as e,dt as ea,ce as f,Le as fa,ye as g,Vn as ga,m as h,xe as ha,c as i,p as j,It as k,Mt as l,zt as m,Qe as n,He as o,Ft as p,ve as q,I as r,Ge as s,Jt as t,Wt as u,jt as v,qt as w,Yt as x,Qt as y,Ht as z};//# sourceMappingURL=chunk-4WBZOSQH.mjs.map
43
+ //# sourceMappingURL=chunk-4WBZOSQH.mjs.map