functype 0.11.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +62 -21
- package/dist/chunk-VXULTLLY.mjs +43 -0
- package/dist/chunk-VXULTLLY.mjs.map +1 -0
- package/dist/either/index.mjs +1 -1
- package/dist/fpromise/index.mjs +1 -1
- package/dist/index.d.ts +35 -10
- package/dist/index.mjs +1 -1
- package/dist/list/index.mjs +1 -1
- package/dist/map/index.mjs +1 -1
- package/dist/option/index.mjs +1 -1
- package/dist/set/index.mjs +1 -1
- package/dist/try/index.mjs +1 -1
- package/package.json +3 -3
- package/dist/chunk-PPFDDUSD.mjs +0 -43
- package/dist/chunk-PPFDDUSD.mjs.map +0 -1
package/dist/either/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{q as Either,j as Left,i as Right,o as TypeCheckLeft,n as TypeCheckRight,l as isLeft,k as isRight,m as tryCatch,p as tryCatchAsync}from'../chunk-
|
|
1
|
+
export{q as Either,j as Left,i as Right,o as TypeCheckLeft,n as TypeCheckRight,l as isLeft,k as isRight,m as tryCatch,p as tryCatchAsync}from'../chunk-VXULTLLY.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/fpromise/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{K as FPromise,J as FPromiseCompanion}from'../chunk-
|
|
1
|
+
export{K as FPromise,J as FPromiseCompanion}from'../chunk-VXULTLLY.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
|
@@ -639,6 +639,21 @@ interface TaskSuccess<T> extends TaskOutcome<T> {
|
|
|
639
639
|
*/
|
|
640
640
|
declare const TaskSuccess: <T>(data: T, params?: TaskParams) => TaskSuccess<T>;
|
|
641
641
|
type TaskResult<T> = Promise<TaskOutcome<T>>;
|
|
642
|
+
/**
|
|
643
|
+
* Ok constructor - Creates a successful TaskOutcome
|
|
644
|
+
* Alias for TaskSuccess for cleaner, more concise code
|
|
645
|
+
* @param value - The successful value
|
|
646
|
+
* @param params - Optional task parameters
|
|
647
|
+
*/
|
|
648
|
+
declare const Ok: <T>(value: T, params?: TaskParams) => TaskSuccess<T>;
|
|
649
|
+
/**
|
|
650
|
+
* Err constructor - Creates a failed TaskOutcome
|
|
651
|
+
* Alias for TaskFailure for cleaner, more concise code
|
|
652
|
+
* @param error - The error value
|
|
653
|
+
* @param data - Optional additional error data
|
|
654
|
+
* @param params - Optional task parameters
|
|
655
|
+
*/
|
|
656
|
+
declare const Err: <T>(error: unknown, data?: unknown, params?: TaskParams) => TaskFailure<T>;
|
|
642
657
|
/**
|
|
643
658
|
* The CancellationToken is a control structure that allows long-running tasks to be cancelled
|
|
644
659
|
* Cancellation is cooperative, meaning the task must check the token and respond to cancellation requests
|
|
@@ -679,7 +694,7 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
679
694
|
* @param f - Optional finally handler function
|
|
680
695
|
* @param cancellationToken - Optional token for cancellation support
|
|
681
696
|
*/
|
|
682
|
-
Async: <U = T>(t: () => U | Promise<U
|
|
697
|
+
Async: <U = T>(t: () => U | Promise<U> | TaskOutcome<U> | Promise<TaskOutcome<U>>, e?: (error: unknown) => unknown | TaskOutcome<U>, f?: () => Promise<void> | void, cancellationToken?: CancellationToken) => FPromise<TaskOutcome<U>>;
|
|
683
698
|
/**
|
|
684
699
|
* Run a synchronous operation with explicit try/catch/finally semantics
|
|
685
700
|
* Returns a TaskOutcome for functional error handling
|
|
@@ -699,7 +714,7 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
699
714
|
* @param f - Optional finally handler function
|
|
700
715
|
* @param cancellationToken - Optional token for cancellation support
|
|
701
716
|
*/
|
|
702
|
-
AsyncWithProgress: <U = T>(t: (updateProgress: (percent: number) => void) => U | Promise<U
|
|
717
|
+
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>>;
|
|
703
718
|
toString(): string;
|
|
704
719
|
_tag: string;
|
|
705
720
|
}) & {
|
|
@@ -711,6 +726,16 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
711
726
|
* Create a failed Task result
|
|
712
727
|
*/
|
|
713
728
|
fail: <T>(error: unknown, data?: unknown, params?: TaskParams) => TaskFailure<T>;
|
|
729
|
+
/**
|
|
730
|
+
* Create a successful Task result (alias for success)
|
|
731
|
+
* Preferred for new code
|
|
732
|
+
*/
|
|
733
|
+
ok: <T>(data: T, params?: TaskParams) => TaskSuccess<T>;
|
|
734
|
+
/**
|
|
735
|
+
* Create a failed Task result (alias for fail)
|
|
736
|
+
* Preferred for new code
|
|
737
|
+
*/
|
|
738
|
+
err: <T>(error: unknown, data?: unknown, params?: TaskParams) => TaskFailure<T>;
|
|
714
739
|
/**
|
|
715
740
|
* Extract the error chain from a Throwable error
|
|
716
741
|
* Returns an array of errors from outermost to innermost
|
|
@@ -734,7 +759,7 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
734
759
|
/**
|
|
735
760
|
* Convert a Promise-returning function to a Task-compatible function
|
|
736
761
|
*/
|
|
737
|
-
fromPromise: <U, Args extends unknown[]>(promiseFn: (...args: Args) => Promise<U>, params?: TaskParams) => ((...args: Args) => FPromise<U
|
|
762
|
+
fromPromise: <U, Args extends unknown[]>(promiseFn: (...args: Args) => Promise<U>, params?: TaskParams) => ((...args: Args) => FPromise<TaskOutcome<U>>);
|
|
738
763
|
/**
|
|
739
764
|
* Convert a Task result to a Promise
|
|
740
765
|
*/
|
|
@@ -748,7 +773,7 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
748
773
|
* @param params - Task parameters for the race operation
|
|
749
774
|
* @returns A promise that resolves with the first task to complete or rejects if all tasks fail
|
|
750
775
|
*/
|
|
751
|
-
race: <T>(tasks: Array<FPromise<T
|
|
776
|
+
race: <T>(tasks: Array<FPromise<T> | FPromise<TaskOutcome<T>>>, timeoutMs?: number, params?: TaskParams) => FPromise<TaskOutcome<T>>;
|
|
752
777
|
/**
|
|
753
778
|
* Convert a Node.js style callback function to a Task-compatible function
|
|
754
779
|
* Node.js callbacks typically have the signature (error, result) => void
|
|
@@ -757,7 +782,7 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
757
782
|
* @param params - Task parameters
|
|
758
783
|
* @returns A function that returns an FPromise
|
|
759
784
|
*/
|
|
760
|
-
fromNodeCallback: <T, Args extends unknown[]>(nodeFn: (...args: [...Args, (error: unknown, result: T) => void]) => void, params?: TaskParams) => ((...args: Args) => FPromise<T
|
|
785
|
+
fromNodeCallback: <T, Args extends unknown[]>(nodeFn: (...args: [...Args, (error: unknown, result: T) => void]) => void, params?: TaskParams) => ((...args: Args) => FPromise<TaskOutcome<T>>);
|
|
761
786
|
/**
|
|
762
787
|
* Create a cancellation token source
|
|
763
788
|
* @returns A cancellation token source that can be used to control task cancellation
|
|
@@ -770,8 +795,8 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
770
795
|
* @param params - Task parameters
|
|
771
796
|
* @returns An object with the task and a function to cancel it
|
|
772
797
|
*/
|
|
773
|
-
cancellable: <T>(task: (token: CancellationToken) => Promise<T
|
|
774
|
-
task: FPromise<T
|
|
798
|
+
cancellable: <T>(task: (token: CancellationToken) => Promise<T> | Promise<TaskOutcome<T>>, params?: TaskParams) => {
|
|
799
|
+
task: FPromise<TaskOutcome<T>>;
|
|
775
800
|
cancel: () => void;
|
|
776
801
|
};
|
|
777
802
|
/**
|
|
@@ -782,8 +807,8 @@ declare const Task: (<T = unknown>(params?: TaskParams) => {
|
|
|
782
807
|
* @param params - Task parameters
|
|
783
808
|
* @returns An object with the task, cancel function, and current progress
|
|
784
809
|
*/
|
|
785
|
-
withProgress: <T>(task: (updateProgress: (percent: number) => void, token: CancellationToken) => Promise<T
|
|
786
|
-
task: FPromise<T
|
|
810
|
+
withProgress: <T>(task: (updateProgress: (percent: number) => void, token: CancellationToken) => Promise<T> | Promise<TaskOutcome<T>>, onProgress?: (percent: number) => void, params?: TaskParams) => {
|
|
811
|
+
task: FPromise<TaskOutcome<T>>;
|
|
787
812
|
cancel: () => void;
|
|
788
813
|
currentProgress: () => number;
|
|
789
814
|
};
|
|
@@ -1779,4 +1804,4 @@ declare const Stack: (<A extends Type>(values?: A[]) => Stack<A>) & {
|
|
|
1779
1804
|
fromBinary: <A>(binary: string) => Stack<A>;
|
|
1780
1805
|
};
|
|
1781
1806
|
|
|
1782
|
-
export { type Async, Base, BoundedNumber, BoundedString, Brand, type CancellationToken, type CancellationTokenSource, Companion, Cond, ESMap, type ESMapType, Either, type EitherKind, EmailAddress, 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, 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 };
|
|
1807
|
+
export { type Async, Base, BoundedNumber, BoundedString, Brand, type CancellationToken, type CancellationTokenSource, Companion, Cond, 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{G as Base,B as BoundedNumber,C as BoundedString,E as Cond,
|
|
1
|
+
export{G as Base,B as BoundedNumber,C as BoundedString,E as Cond,fa as ESMap,q as Either,x as EmailAddress,Q as Err,K as FPromise,J as FPromiseCompanion,aa as FoldableUtils,ba as HKT,A as ISO8601Date,ca as Identity,u as IntegerNumber,ea as Lazy,Z as LazyList,j as Left,h as List,ga as Map,F as Match,ha as MatchableUtils,H as NAME,w as NonEmptyString,t as NonNegativeNumber,b as None,P as Ok,d as Option,c as OptionConstructor,X as ParseError,D as PatternString,v as PositiveInteger,s as PositiveNumber,L as Ref,i as Right,e as Set,a as Some,ia as Stack,S as Task,N as TaskFailure,O as TaskSuccess,I as Throwable,da as Try,o as TypeCheckLeft,n as TypeCheckRight,f as Typeable,Y as TypedError,z as UUID,y as UrlString,r as ValidatedBrand,_ as Validation,ja as Valuable,R as createCancellationTokenSource,W as createErrorSerializer,V as formatError,U as formatStackTrace,$ as isExtractable,l as isLeft,k as isRight,M as isTaggedThrowable,g as isTypeable,T as safeStringify,m as tryCatch,p as tryCatchAsync}from'./chunk-VXULTLLY.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
|
package/dist/list/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{h as List}from'../chunk-
|
|
1
|
+
export{h as List}from'../chunk-VXULTLLY.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/map/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{ga as Map}from'../chunk-VXULTLLY.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/option/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{b as None,d as Option,c as OptionConstructor,a as Some}from'../chunk-
|
|
1
|
+
export{b as None,d as Option,c as OptionConstructor,a as Some}from'../chunk-VXULTLLY.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/set/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{e as Set}from'../chunk-
|
|
1
|
+
export{e as Set}from'../chunk-VXULTLLY.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-YBBRJTHY.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/try/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{da as Try}from'../chunk-VXULTLLY.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.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A smallish functional library for TypeScript",
|
|
6
6
|
"author": "jordan.burke@gmail.com",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@eslint/compat": "^1.3.2",
|
|
16
16
|
"@eslint/eslintrc": "^3.3.1",
|
|
17
|
-
"@eslint/js": "^9.
|
|
17
|
+
"@eslint/js": "^9.34.0",
|
|
18
18
|
"@semantic-release/commit-analyzer": "^13.0.1",
|
|
19
19
|
"@semantic-release/github": "^11.0.4",
|
|
20
20
|
"@semantic-release/npm": "^12.0.2",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"@vitest/coverage-v8": "^3.2.4",
|
|
26
26
|
"@vitest/ui": "^3.2.4",
|
|
27
27
|
"cross-env": "^10.0.0",
|
|
28
|
-
"eslint": "^9.
|
|
28
|
+
"eslint": "^9.34.0",
|
|
29
29
|
"eslint-config-functype": "1.3.0",
|
|
30
30
|
"eslint-config-prettier": "^10.1.8",
|
|
31
31
|
"eslint-plugin-functional": "^9.0.2",
|
package/dist/chunk-PPFDDUSD.mjs
DELETED
|
@@ -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 pe from'safe-stable-stringify';var j=Set;var N=t=>{let e=new j(t),r={_tag:"Set",[Symbol.iterator]:()=>e[Symbol.iterator](),add:n=>N([...e,n]),remove:n=>{let o=new j(e);return o.delete(n),N(o)},contains:n=>e.has(n),has:n=>e.has(n),map:n=>N(Array.from(e).map(n)),ap:n=>{let o=new j;for(let a of e)for(let s of n)o.add(s(a));return N(o)},flatMap:n=>{let o=new j;for(let a of e)for(let s of n(a))o.add(s);return N(o)},flatMapAsync:async n=>{let o=new j;for(let a of e){let s=await n(a);for(let i of s)o.add(i);}return N(o)},fold:(n,o)=>{if(e.size===0)return n();let a=Array.from(e);if(a.length===0)return n();let s=a[0];return s===void 0?n():o(s)},foldLeft:n=>o=>{let a=n;for(let s of e)a=o(a,s);return a},foldRight:n=>o=>Array.from(e).reduceRight((s,i)=>o(i,s),n),get size(){return e.size},get isEmpty(){return e.size===0},reduce:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduce empty Set");return o.reduce(n)},reduceRight:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduceRight empty Set");return o.reduceRight(n)},count:n=>{let o=0;for(let a of e)n(a)&&o++;return o},find:n=>{for(let o of e)if(n(o))return d(o);return d(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 j;for(let a of e)n(a)&&o.add(a);return N(o)},filterNot:n=>{let o=new j;for(let a of e)n(a)||o.add(a);return N(o)},drop:n=>N(Array.from(e).slice(n)),dropRight:n=>N(Array.from(e).slice(0,-n)),dropWhile:n=>{let o=Array.from(e),a=o.findIndex(s=>!n(s));return N(a===-1?[]:o.slice(a))},flatten:()=>{let n=new j;for(let o of e)if(Array.isArray(o))for(let a of o)n.add(a);else if(o&&typeof o=="object"&&Symbol.iterator in o)for(let a of o)n.add(a);else n.add(o);return N(n)},get head(){return Array.from(e)[0]},get headOption(){let n=Array.from(e)[0];return d(n)},toList:()=>g(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},He=t=>N(t),Pe={fromJSON:t=>{let e=JSON.parse(t);return Z(e.value)},fromYAML:t=>{let r=t.split(`
|
|
3
|
-
`)[1]?.split(": ")[1];if(!r)return Z([]);let n=JSON.parse(r);return Z(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Pe.fromJSON(e)}},Z=a(He,Pe);function me({_tag:t,impl:e}){return {...e,_tag:t}}function Le(t,e){return !t||typeof t!="object"||!("_tag"in t)?false:e?t._tag===e:true}var v=t=>{let e=Array.from(t??[]),r={_tag:"List",[Symbol.iterator]:()=>e[Symbol.iterator](),get size(){return e.length},get length(){return e.length},map:n=>v(e.map(n)),ap:n=>v(e.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>v(e.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(e.map(async a=>await n(a)));return v(o.flatMap(a=>Array.from(a)))},forEach:n=>e.forEach(n),contains:n=>e.includes(n),count:n=>e.filter(n).length,exists:n=>e.some(n),filter:n=>v(e.filter(n)),filterNot:n=>v(e.filter(o=>!n(o))),filterType:n=>v(e.filter(o=>Le(o,n))),find:(n,o)=>{let a=e.find(s=>n(s)&&(o?Le(s,o):true));return d(a)},get head(){return e[0]},get headOption(){return e.length>0?d(e[0]):k()},get isEmpty(){return e.length===0},toArray:()=>[...e],reduce:n=>e.reduce(n),reduceRight:n=>e.reduceRight(n),fold:(n,o)=>{if(e.length===0)return n();let a=e[0];return o(a)},foldLeft:n=>o=>e.reduce(o,n),foldRight:n=>o=>e.reduceRight((a,s)=>o(s,a),n),match:n=>e.length===0?n.Empty():n.NonEmpty([...e]),remove:n=>v(e.filter(o=>o!==n)),removeAt:n=>n<0||n>=e.length?r:v([...e.slice(0,n),...e.slice(n+1)]),add:n=>v([...e,n]),get:n=>d(e[n]),concat:n=>v([...e,...n.toArray()]),drop:n=>v(e.slice(n)),dropRight:n=>v(e.slice(0,-n)),dropWhile:n=>v(e.slice(e.findIndex(o=>!n(o)))),flatten:()=>v(e.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>Z(e),toString:()=>`List(${pe(e)})`,toValue:()=>({_tag:"List",value:e}),pipe:n=>n([...e]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:e}),toYAML:()=>`_tag: List
|
|
4
|
-
value: ${pe(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:e})).toString("base64")})};return r},Ze=t=>v(t),_e={fromJSON:t=>{let e=JSON.parse(t);return g(e.value)},fromYAML:t=>{let r=t.split(`
|
|
5
|
-
`)[1]?.split(": ")[1];if(!r)return g([]);let n=JSON.parse(r);return g(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return _e.fromJSON(e)}},g=a(Ze,_e);var Ie=t=>({_tag:"Right",value:t,isLeft(){return false},isRight(){return true},get:()=>t,getOrElse:e=>t,getOrThrow:()=>t,orElse:e=>c(t),orNull:()=>t,orUndefined:()=>t,map:e=>c(e(t)),ap:e=>e._tag==="Right"?c(e.value(t)):p(e.value),mapAsync:e=>e(t).then(r=>c(r)).catch(r=>Promise.resolve(p(r))),merge:e=>e.isLeft()?p(e.value):c([t,e.value]),flatMap:e=>e(t),flatMapAsync:e=>e(t).catch(r=>p(r)),toOption:()=>U(t),toList:()=>g([t]),toJSON(){return {_tag:"Right",value:t}},toString:()=>`Right(${pe(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
|
|
6
|
-
value: ${pe(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):k(),exists:e=>e(t),forEach:e=>e(t)}),Ve=t=>({_tag:"Left",value:t,isLeft(){return true},isRight(){return false},get:()=>{throw new Error(`Cannot call get() on Left(${pe(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:()=>k(),toList:()=>g(),toJSON(){return {_tag:"Left",value:t}},toString:()=>`Left(${pe(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
|
|
7
|
-
value: ${pe(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=>k(),exists:e=>false,forEach:e=>{}}),c=t=>Ie(t),p=t=>Ve(t),Vt=t=>t.isRight(),Ft=t=>t.isLeft(),Ct=(t,e)=>{try{return c(t())}catch(r){return p(e(r))}},Xe=t=>Ie(t);console.assert(Xe);var et=t=>Ve(t);console.assert(et);var zt=async(t,e)=>{try{let r=await t();return c(r)}catch(r){return p(e(r))}},Me={sequence:t=>t.reduce((e,r)=>e.isLeft()?e:r.isLeft()?p(r.value):e.map(n=>[...n,r.value]),c([])),traverse:(t,e)=>Me.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(`
|
|
8
|
-
`),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 Me.fromJSON(e)}};function I(t,e){return {brand:t,validate:e,of:r=>e(r)?d(a$1(t,r)):d.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 tt=I("PositiveNumber",t=>t>0),Wt=I("NonNegativeNumber",t=>t>=0),jt=I("IntegerNumber",t=>Number.isInteger(t)),qt=tt.refine("PositiveInteger",t=>Number.isInteger(t)),Yt=I("NonEmptyString",t=>t.length>0),Qt=I("EmailAddress",t=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)),Gt=I("UrlString",t=>{try{return new URL(t),!0}catch{return !1}}),Ht=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)),Zt=I("ISO8601Date",t=>!isNaN(Date.parse(t))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(t));function Xt(t,e,r){return I(t,n=>n>=e&&n<=r)}function er(t,e,r){return I(t,n=>n.length>=e&&n.length<=r)}function tr(t,e){return I(t,r=>e.test(r))}var be=t=>{let e=n=>typeof n=="function"?n():n,r={when:(n,o)=>t.resolved?r:n?be({resolved:true,value:e(o)}):r,elseWhen:(n,o)=>t.resolved?r:n?be({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},Fe=()=>be({resolved:false}),rt={of:()=>Fe(),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}},or=a(Fe,rt);var ne=(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 ne(o,n)}):false,X=t=>{let e=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of t.patterns)if(ne(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 ne(t.value,o)?X({...s,resolved:true,result:e(a,t.value)}):X(s)},caseValue:(o,a)=>{if(t.resolved)return n;if(t.value===o){let s=typeof a=="function"?a():a;return X({...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 X({...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(ne(t.value,s))return X({...t,resolved:true,result:e(a,t.value),patterns:[...t.patterns,{pattern:s,result:a}]});return X({...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?d(o.result):d.none()}};return n},nt=t=>X({value:t,resolved:false,patterns:[]}),ot={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(ne(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(ne(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}},ur=a(nt,ot);function ye(t,e){return {...me({_tag:t,impl:e}),toString(){return `${t}()`}}}var ge="Throwable",b=class t extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=ge;this.name=n?.taskInfo?.name??ge,Object.defineProperties(this,{_tag:{value:ge,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??ge,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 f=u,h=r;f[l]=h[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(h=>u[h]!==void 0))}`,f=new t(l,{data:n??u,taskInfo:o});for(let h of Object.keys(u))if(!(h in f)){let P=f;P[h]=u[h];}return f}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 L=t=>{let e=new Promise((r,n)=>{try{t(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>L((n,o)=>{e.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>L((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=>L((n,o)=>{e.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>L((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=>L((n,o)=>{e.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>L(n=>{e.then(n).catch(()=>n(r));}),recoverWith:r=>L(n=>{e.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>L((n,o)=>{e.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>L((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=>L((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)=>L((o,a)=>{e.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},at={resolve:t=>L(e=>e(t)),reject:t=>L((e,r)=>r(t)),from:t=>L((e,r)=>{t.then(e).catch(r);}),fromEither:t=>t.isRight()?L(e=>e(t.value)):L((e,r)=>r(t.value)),all:t=>L((e,r)=>{Promise.all(t.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(e).catch(r);}),allSettled:t=>L(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=>L((e,r)=>{Promise.race(t).then(e,r);}),any:t=>L((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 L((a,s)=>{let i=0,u=()=>{t().toPromise().then(a).catch(l=>{if(i++,i<=r&&o(l,i)){let f=n*Math.pow(2,i-1);setTimeout(u,f);}else s(l);});};u();})}},xe=a(L,at);function A(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}}}A.of=A;var oe=(t=0)=>{let e=A(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 he=()=>{let t=A([]);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}};function st(t){return t instanceof Error&&typeof t=="object"&&true&&t._tag==="Throwable"}var V=(t,e)=>{if(t.isRight())return Q(t.get(),e);if(t.isLeft())return Ee(t,void 0,e);throw new Error("Unrecognized task outcome")},Ee=(t,e,r)=>{let n={name:r?.name??"Task",description:r?.description??""},o=b.apply(t,e,n),a=p(o),{isLeft:s,isRight:i,...u}=a;return {...u,_tag:"TaskFailure",_meta:n,error:o,map:l=>{let f=a.map(l);return V(f,r)},flatMap:l=>{let f=a.flatMap(l);return V(f,r)},ap:l=>{let f=a.ap(l);return V(f,r)},merge:l=>{let f=a.merge(l);return V(f,r)},mapAsync:async l=>{let f=await a.mapAsync(l);return V(f,r)},flatMapAsync:async l=>{let f=await a.flatMapAsync(l);return V(f,r)},isSuccess(){return false},isFailure(){return true},mapError:l=>Ee(l(o),e,r),recover:l=>Q(l,r),recoverWith:l=>Q(l(o),r)}},Q=(t,e)=>{let r={name:e?.name??"Task",description:e?.description??""},n=c(t),{isLeft:o,isRight:a,...s}=n;return {...s,_tag:"TaskSuccess",_meta:r,map:i=>{let u=n.map(i);return V(u,e)},flatMap:i=>{let u=n.flatMap(i);return V(u,e)},ap:i=>{let u=n.ap(i);return V(u,e)},merge:i=>{let u=n.merge(i);return V(u,e)},mapAsync:async i=>{let u=await n.mapAsync(i);return V(u,e)},flatMapAsync:async i=>{let u=await n.flatMapAsync(i);return V(u,e)},isSuccess(){return true},isFailure(){return false},mapError:i=>Q(t,e),recover:i=>Q(t,e),recoverWith:i=>Q(t,e)}},ke=()=>{let t=new AbortController,e=he();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);}}));}}},it=t=>{let e=t?.name??"Task",r=t?.description??"",n={Async:(o,a=u=>u,s=()=>{},i)=>xe((u,l)=>{(async()=>{let f=A(false),h=A(null),P=A(()=>{});if(i){if(i.isCancelled){try{await s();}catch(R){l(b.apply(R,void 0,{name:e,description:r}));return}l(b.apply(new Error("Task was cancelled before execution started"),void 0,{name:e,description:r}));return}let S=()=>{f.set(true),h.set(new Error("Task was cancelled during execution"));};i.onCancel(S),P.set(()=>{});}try{let S=await o();if(f.get()){try{await s();}catch(R){l(b.apply(R,void 0,{name:e,description:r}));return}h.get()?l(b.apply(h.get(),void 0,{name:e,description:r})):l(b.apply(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}try{await s();}catch(R){l(b.apply(R,void 0,{name:e,description:r}));return}u(S);}catch(S){if(f.get()){try{await s();}catch(R){l(b.apply(R,void 0,{name:e,description:r}));return}h.get()?l(b.apply(h.get(),void 0,{name:e,description:r})):l(b.apply(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}try{await s();}catch(R){l(b.apply(R,void 0,{name:e,description:r}));return}try{if(S instanceof Error&&st(S)){let R=new Error(`${e}: ${S.message}`),ee=b.apply(R,void 0,{name:e,description:r});Object.defineProperty(ee,"cause",{value:S,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(S);}catch(Y){console.error("Error in error handler:",Y);}}),l(ee);}else {let R=await a(S);l(b.apply(R,void 0,{name:e,description:r}));}}catch(R){l(b.apply(R,void 0,{name:e,description:r}));}}finally{P.get()();}})().catch(l);}),Sync:(o,a=i=>i,s=()=>{})=>{try{return Q(o(),{name:e,description:r})}catch(i){return Ee(a(i),void 0,{name:e,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=l=>l,i=()=>{},u)=>{let l=f=>{let h=Math.max(0,Math.min(100,f));h<=100&&a(h);};return n.Async(()=>o(l),s,i,u)}};return {...ye("Task",n),_type:"Task"}},Ce={success:(t,e)=>Q(t,e),fail:(t,e,r)=>Ee(t,e,r),getErrorChain:t=>{if(!t)return [];let e=he();e.add(t);let r=A(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=Ce.getErrorChain(t),n=e?.separator??`
|
|
9
|
-
`;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=A(`${a>0?"\u21B3 ":""}${i}${u}`);return e?.includeStackTrace&&o.stack&&l.set(`${l.get()}
|
|
10
|
-
${o.stack.split(`
|
|
11
|
-
`).slice(1).join(`
|
|
12
|
-
`)}`),l.get()}).join(n)},fromPromise:(t,e)=>(...r)=>z(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 z({name:n,description:o}).Async(async()=>{let s=he();t.forEach(u=>s.add(u));let i=A(void 0);if(typeof e=="number"&&e>0){let u=xe((l,f)=>{i.set(setTimeout(()=>{f(new Error(`Task race timed out after ${e}ms`));},e));});s.add(u);}try{return await new Promise((u,l)=>{s.build().forEach(f=>{f.then(h=>u(h),h=>l(h));});})}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)=>z(o).Async(()=>new Promise((s,i)=>{try{t(...a,(u,l)=>{u?i(u):s(l);});}catch(u){i(u);}}),s=>s)},createCancellationTokenSource:ke,cancellable:(t,e)=>{let r=ke();return {task:z(e).Async(()=>t(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(t,e=()=>{},r)=>{let n=ke(),o=A(0),a=i=>{o.set(Math.max(0,Math.min(100,i))),e(o.get());};return {task:z(r).Async(()=>t(a,n.token),i=>i,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o.get()}}},z=a(it,Ce);var ze={includeTasks:true,includeStackTrace:false,separator:`
|
|
13
|
-
`,includeData:false,maxStackFrames:3,title:"Error",colors:false};function Ke(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"?Ae(n):n},2)}function Ae(t){if(t===void 0||t==="")return "";let e=t.split(`
|
|
14
|
-
`),r=e[0],n=e.slice(1).map(o=>o.trim());return [r,...n].join(`
|
|
15
|
-
`)}function Sr(t,e){let r={...ze,...e},n=t instanceof Error?t:b.apply(t),o=z?.getErrorChain?z.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((u,l)=>{let f=" ".repeat(l),h=l>0?"\u21B3 ":"",{taskInfo:P}=u,S=r.includeTasks&&P?.name?r.colors?`\x1B[36m[${P.name}]\x1B[0m `:`[${P.name}] `:"",R=`${f}${h}${S}${u.message}`;if(r.includeStackTrace&&u.stack){let Y=Ae(u.stack).split(`
|
|
16
|
-
`).slice(1),te=r.maxStackFrames??ze.maxStackFrames??3,Te=Y.slice(0,te).map(de=>`${f} ${r.colors?"\x1B[90m":""}${de}${r.colors?"\x1B[0m":""}`).join(`
|
|
17
|
-
`);R+=`
|
|
18
|
-
${Te}`,Y.length>te&&(R+=`
|
|
19
|
-
${f} ${r.colors?"\x1B[90m":""}...${Y.length-te} more stack frames${r.colors?"\x1B[0m":""}`);}return R}).join(r.separator),i=`${a}
|
|
20
|
-
|
|
21
|
-
${s}`;if(r.includeData){let{data:u}=n;if(u){let l=r.colors?`
|
|
22
|
-
|
|
23
|
-
\x1B[33mContext:\x1B[0m
|
|
24
|
-
${Ke(u)}`:`
|
|
25
|
-
|
|
26
|
-
Context:
|
|
27
|
-
${Ke(u)}`;i+=l;}}return i}function Br(){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?Ae(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof z?.getErrorChain=="function")try{let o=z.getErrorChain(r);o.length>1&&(n.errorChain=z.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?Ae(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var Pr=t=>{let e=new Error(t);return e.name="ParseError",e};var K=(t,e,r,n)=>{let o=b.apply(e,r,{name:t,description:e});return Object.assign(o,{code:t,message:e,status:ut(t),context:r,timestamp:new Date().toISOString(),traceId:n?.traceId})},ut=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],lt={validation:(t,e,r)=>K("VALIDATION_FAILED",`Validation failed: ${t} ${r}`,{field:t,value:e,rule:r}),network:(t,e,r)=>K("NETWORK_ERROR",`Network error: ${e} ${t}${r?` (${r})`:""}`,{url:t,method:e,statusCode:r}),auth:(t,e)=>K("AUTH_REQUIRED",`Authentication required: ${t}${e?` (role: ${e})`:""}`,{resource:t,requiredRole:e}),notFound:(t,e)=>K("NOT_FOUND",`Not found: ${t} with id ${e}`,{resource:t,id:e}),permission:(t,e,r)=>K("PERMISSION_DENIED",`Permission denied: cannot ${t} ${e}`,{action:t,resource:e,userId:r}),rateLimit:(t,e,r)=>K("RATE_LIMITED",`Rate limit exceeded: ${t} requests per ${e}`,{limit:t,window:e,retryAfter:r}),internal:t=>K("INTERNAL_ERROR",`Internal server error: ${t}`,{errorId:t,timestamp:new Date().toISOString()}),badRequest:(t,e)=>K("BAD_REQUEST",`Bad request: ${t}`,{reason:t,expected:e}),conflict:(t,e)=>K("CONFLICT",`Conflict: ${t} already exists with value ${e}`,{resource:t,conflictingValue:e}),timeout:(t,e)=>K("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},x=Object.assign(K,lt);var w=t=>{let e={_tag:"LazyList",[Symbol.iterator]:()=>t[Symbol.iterator](),map:r=>w((function*(){for(let n of t)yield r(n);})()),flatMap:r=>w((function*(){for(let n of t)yield*r(n);})()),filter:r=>w((function*(){for(let n of t)r(n)&&(yield n);})()),take:r=>w((function*(){let n=oe(0);for(let o of t){if(n.get()>=r)break;yield o,n.increment();}})()),drop:r=>w((function*(){let n=oe(0);for(let o of t)n.get()>=r&&(yield o),n.increment();})()),takeWhile:r=>w((function*(){for(let n of t){if(!r(n))break;yield n;}})()),dropWhile:r=>w((function*(){let n=A(true);for(let o of t)n.get()&&r(o)||(n.set(false),yield o);})()),concat:r=>w((function*(){yield*t,yield*r;})()),zip:r=>w((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:()=>g(Array.from(t)),toArray:()=>Array.from(t),forEach:r=>{for(let n of t)r(n);},reduce:(r,n)=>{let o=A(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 d(n);return d.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=oe(0);for(let n of t)r.increment();return r.get()},first:()=>{let n=t[Symbol.iterator]().next();return n.done?d.none():d(n.value)},last:()=>{let r=A(void 0),n=A(false);for(let o of t)r.set(o),n.set(true);return n.get()?d(r.get()):d.none()},fold:(r,n)=>{let a=t[Symbol.iterator]().next();return a.done?r():n(a.value)},foldLeft:r=>n=>{let o=A(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
|
|
28
|
-
value: ${pe(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=oe(0),a=A(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},ct=t=>w(t),Tt={empty:()=>w([]),of:t=>w([t]),from:(...t)=>w(t),iterate:(t,e)=>w((function*(){let r=A(t);for(;;)yield r.get(),r.set(e(r.get()));})()),generate:t=>w((function*(){for(;;)yield t();})()),range:(t,e,r=1)=>w((function*(){if(r===0)throw new Error("Step cannot be zero");let n=A(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)=>w((function*(){if(e===void 0)for(;;)yield t;else {let r=oe(0);for(;r.get()<e;)yield t,r.increment();}})()),cycle:t=>w((function*(){let e=Array.from(t);if(e.length!==0)for(;;)yield*e;})())},$r=a(ct,Tt);var _={rule:t=>e=>{if(t==="email")return typeof e!="string"||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)?p(x.validation("value",e,"must be a valid email")):c(e);if(t==="url")try{return new URL(String(e)),c(e)}catch{return p(x.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(x.validation("value",e,"must be a valid UUID")):c(e);if(t==="required")return e==null||e===""?p(x.validation("value",e,"is required")):c(e);if(t==="numeric")return typeof e!="number"&&!/^\d+$/.test(String(e))?p(x.validation("value",e,"must be numeric")):c(e);if(t==="alpha")return typeof e!="string"||!/^[a-zA-Z]+$/.test(e)?p(x.validation("value",e,"must contain only letters")):c(e);if(t==="alphanumeric")return typeof e!="string"||!/^[a-zA-Z0-9]+$/.test(e)?p(x.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(x.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(x.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(x.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(x.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(x.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(x.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(x.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(x.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(x.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(x.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(x.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(f=>f,()=>{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(g(r)):c(n)}},dt={..._,validators:{email:_.rule("email"),url:_.rule("url"),uuid:_.rule("uuid"),required:_.rule("required"),numeric:_.rule("numeric"),positiveNumber:_.combine(_.rule("numeric"),_.rule("min:0")),nonEmptyString:_.combine(_.rule("required"),_.custom(t=>typeof t=="string"&&t.trim().length>0,"must not be empty"))}},qr=Object.assign(_.rule,dt);function ft(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 tn={toOption:t=>t.fold(()=>k(),e=>U(e)),toList:t=>t.fold(()=>g([]),e=>g([e])),toEither:(t,e)=>t.fold(()=>p(e),r=>c(r)),isEmpty:t=>t.fold(()=>true,()=>false),size:t=>t.fold(()=>0,()=>1)};var G=t=>t!==null&&typeof t=="object"&&(t._tag==="Some"||t._tag==="None"),D=t=>t!==null&&typeof t=="object"&&t._tag==="List",ae=t=>t!==null&&typeof t=="object"&&(t._tag==="Left"||t._tag==="Right"),se=t=>t!==null&&typeof t=="object"&&(t._tag==="Success"||t._tag==="Failure"),$=()=>{let t=(s,i)=>{if(G(s))return s.map(u=>i(u));if(D(s))return s.map(u=>i(u));if(ae(s))return s.map(u=>i(u));if(se(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},e=s=>{if(G(s))return s.get();if(D(s)){let i=s.toArray();if(i.length>0&&D(i[0])){let u=[];for(let l of i)D(l)&&u.push(...l.toArray());return g(u)}return s.flatten()}if(ae(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(se(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(G(s))return s.flatMap(u=>i(u));if(D(s))return s.flatMap(u=>i(u));if(ae(s))return s.flatMap(u=>i(u));if(se(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(G(s)&&G(i))return s.flatMap(u=>i.map(l=>u(l)));if(D(s)&&D(i))return s.flatMap(u=>i.map(l=>u(l)));if(ae(s)&&ae(i))return s.flatMap(u=>i.map(l=>u(l)));if(se(s)&&se(i))return s.flatMap(u=>i.map(l=>u(l)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(G(s)){let i=s;if(i.isEmpty)return g([d.none()]);let u=i.get();if(D(u))return u.map(l=>d(l));throw new Error("Unsupported inner container type for sequence")}if(D(s)){let u=s.toArray();if(u.length===0)return d.none();let l=u[0];if(G(l)){for(let h of u)if(h.isEmpty)return d.none();let f=u.map(h=>h.get());return d(g(f))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {...ye("HKT",{map:t,flatten:e,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(t(s,u=>i(u)))}),_type:"HKT"}},ie=$();$.map=(t,e)=>ie.map(t,e);$.flatten=t=>ie.flatten(t);$.flatMap=(t,e)=>ie.flatMap(t,e);$.ap=(t,e)=>ie.ap(t,e);$.sequence=t=>ie.sequence(t);$.traverse=(t,e)=>ie.traverse(t,e);$.isOption=G;$.isList=D;$.isEither=ae;$.isTry=se;function un(t){return {id:t,isSame:r=>r.id===t}}var Re=t=>({_tag:"Success",error:void 0,isSuccess(){return true},isFailure(){return false},get:()=>t,getOrElse:e=>t,getOrThrow:e=>t,orElse:e=>Re(t),orNull:()=>t,orUndefined:()=>t,orThrow:e=>t,toEither:()=>c(t),map:e=>Ue(()=>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(${pe(t)})`,toPromise:()=>Promise.resolve(t),toValue:()=>({_tag:"Success",value:t}),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:t}),toYAML:()=>`_tag: Success
|
|
29
|
-
value: ${pe(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)?d(t):d(void 0),exists:e=>e(t),forEach:e=>e(t)}),J=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:()=>p(t),map:e=>J(t),ap:e=>J(t),flatMap:e=>J(t),flatMapAsync:e=>Promise.resolve(J(t)),fold:(e,r)=>e(t),match:e=>e.Failure(t),foldLeft:e=>r=>e,foldRight:e=>r=>e,toString:()=>`Failure(${pe(t)}))`,toPromise:()=>Promise.reject(t),toValue:()=>({_tag:"Failure",value:t}),pipe:e=>{throw t},serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Failure",error:t.message,stack:t.stack}),toYAML:()=>`_tag: Failure
|
|
30
|
-
error: ${t.message}
|
|
31
|
-
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=>d(null),exists:e=>false,forEach:e=>{}}),mt=t=>{try{return Re(t())}catch(e){return J(e instanceof Error?e:new Error(String(e)))}},$e={fromJSON:t=>{let e=JSON.parse(t);if(e._tag==="Success")return Re(e.value);{let r=new Error(e.error);return e.stack&&(r.stack=e.stack),J(r)}},fromYAML:t=>{let e=t.split(`
|
|
32
|
-
`),r=e[0]?.split(": ")[1];if(!r)return J(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=e[1]?.split(": ")[1];if(!n)return J(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return Re(o)}else {let n=e[1]?.split(": ")[1];if(!n)return J(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),J(s)}},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return $e.fromJSON(e)}},Ue=a(mt,$e);var H=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=>F(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>F(()=>i(a())),ap:i=>F(()=>i.get()(a())),mapAsync:async i=>{let u=a(),l=await i(u);return F(()=>l)},flatMap:i=>F(()=>i(a()).get()),flatMapAsync:async i=>{let u=a(),l=await i(u);return F(()=>l.get())},filter:i=>F(()=>{let u=a();return i(u)?U(u):k}),recover:i=>F(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>F(()=>{try{return a()}catch(u){return i(u).get()}}),toOption:()=>{try{return U(a())}catch{return k}},toEither:()=>{try{return c(a())}catch(i){return p(i)}},toEitherWith:i=>{try{return c(a())}catch(u){return p(i(u))}},toTry:()=>Ue(()=>a()),tap:i=>F(()=>{let u=a();return i(u),u}),tapError:i=>F(()=>{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(${pe(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):k}catch{return k}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(e&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>e&&!o?`_tag: Lazy
|
|
33
|
-
evaluated: true
|
|
34
|
-
value: ${pe(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"}},yt={of:t=>H(t),fromValue:t=>H(()=>t),fromOption:(t,e)=>H(()=>t._tag==="Some"?t.value:e()),fromTry:t=>H(()=>t.get()),fromEither:t=>H(()=>t.fold(e=>{throw e},e=>e)),fromPromise:t=>H(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:t=>H(()=>{throw t})},F=a(H,yt);var ce=Map;var q=t=>{let r={values:new ce(t)},n=()=>Array.from(r.values.entries()).map(([T,y])=>b$1([T,y])),o=T=>q(new ce(r.values).set(T.toArray()[0],T.toArray()[1]).entries()),a=T=>{let y=new ce(r.values);return y.delete(T)?q(y.entries()):q(r.values.entries())},s=T=>{let y=T.toArray();return r.values.get(y[0])===y[1]},i=()=>r.values.size,u=T=>q(Array.from(r.values.entries()).map(([y,M])=>[y,T(M)])),l=T=>{let y=q(r.values.entries()).toList();return q(y.flatMap(T).toArray())},f=T=>{let y=[];for(let[M,re]of r.values.entries()){let le=T.get(M);le._tag==="Some"&&le.value&&y.push([M,le.value(re)]);}return q(y)},h=async T=>{let y=new ce;for(let[M,re]of r.values.entries()){let le=await T(re);for(let Ye of le.toList()){let[Qe,Ge]=Ye.toArray();y.set(Qe,Ge);}}return q(y.entries())},P=T=>g(n()).reduce(T),S=T=>g(n()).reduceRight(T),R=T=>y=>g(n()).foldLeft(T)(y),ee=T=>y=>g(n()).foldRight(T)(y),Y=T=>d(r.values.get(T)),te=(T,y)=>d(r.values.get(T)).getOrElse(y),ue=()=>r.values.size===0,Te=(T,y)=>d(r.values.get(T)).orElse(y),de=(T,y)=>{if(ue())return T();let M=n();if(M.length===0)return T();let re=M[0];return re===void 0?T():y(re)},Be=()=>g(n()),m=()=>Z(n()),B=()=>`Map(${n().toString()})`,O=T=>ue()?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:f,flatMap:l,flatMapAsync:h,reduce:P,reduceRight:S,foldLeft:R,foldRight:ee,fold:de,match:O,get:Y,getOrElse:te,get isEmpty(){return ue()},orElse:Te,toList:Be,toSet:m,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")})}},gt=t=>q(t),Je={fromJSON:t=>{let e=JSON.parse(t);return ve(e.value)},fromYAML:t=>{let r=t.split(`
|
|
37
|
-
`)[1]?.split(": ")[1];if(!r)return ve([]);let n=JSON.parse(r);return ve(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Je.fromJSON(e)}},ve=a(gt,Je);var ht={default:t=>e=>t(e),when:(t,e)=>r=>t(r)?e(r):void 0};var C=(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:m=>r.includes(m),reduce:m=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(m)},reduceRight:m=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(m)},push:m=>C([...r,m]),pop:()=>{if(o())return [C([]),d(null)];let m=[...r],B=m.pop();return [C(m),d(B)]},peek:()=>o()?d(null):d(r[r.length-1]),map:m=>C(r.map(m)),flatMap:m=>o()?C([]):r.reduce((B,O)=>m(O).toArray().reduce((y,M)=>y.push(M),B),C([])),ap:m=>{let B=[];return r.forEach(O=>{m.toArray().forEach(T=>{B.push(T(O));});}),C(B)},flatMapAsync:async m=>o()?C([]):(await Promise.all(r.map(async O=>await m(O)))).reduce((O,T)=>T.toArray().reduce((y,M)=>y.push(M),O),C([])),toList:()=>g(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(m,B)=>{if(o())return m();let O=r[r.length-1];return O!==void 0?B(O):m()},foldLeft:m=>B=>r.reduce(B,m),foldRight:m=>B=>r.reduceRight((O,T)=>B(T,O),m),match:m=>o()?m.Empty():m.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:m=>m([...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")})}},Et=(t=[])=>C(t),We={empty:()=>C([]),of:t=>C([t]),fromJSON:t=>{let e=JSON.parse(t);return Se(e.value)},fromYAML:t=>{let r=t.split(`
|
|
39
|
-
`)[1]?.split(": ")[1];if(!r)return Se([]);let n=JSON.parse(r);return Se(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return We.fromJSON(e)}},Se=a(Et,We);function Kn(t){let e=me({_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)):W,filter(e){return e(t)?U(t):W},count:e=>e(t)?1:0,find:e=>e(t)?U(t):W,exists:e=>e(t),forEach:e=>e(t),fold:(e,r)=>r(t),match:e=>e.Some(t),flatMap:e=>e(t),flatMapAsync:async e=>await e(t),reduce:e=>e(void 0,t),reduceRight:e=>e(void 0,t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),toList:()=>g([t]),contains:e=>e===t,size:1,toEither:e=>c(t),toPromise:()=>Promise.resolve(t),toString:()=>`Some(${pe(t)})`,toValue:()=>({_tag:"Some",value:t}),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:t}),toYAML:()=>`_tag: Some
|
|
40
|
-
value: ${pe(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:t})).toString("base64")})}),W={_tag:"None",value:void 0,isEmpty:true,isSome(){return false},isNone(){return true},get:()=>{throw new Error("Cannot call get() on None")},getOrElse:t=>t,getOrThrow(t){throw t},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},map:t=>W,ap:t=>W,filter(t){return W},count:t=>0,find:t=>W,exists:t=>false,forEach:t=>{},flatMap:t=>W,flatMapAsync:t=>Promise.resolve(W),reduce:()=>{},reduceRight:()=>{},fold:(t,e)=>t(),match:t=>t.None(),foldLeft:t=>()=>t,foldRight:t=>()=>t,toList:()=>g([]),contains:()=>false,size:0,toEither:t=>p(t),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=()=>W,At=t=>t!=null?U(t):k(),qe={from:t=>d(t),none:()=>k(),fromJSON:t=>{let e=JSON.parse(t);return e._tag==="Some"?U(e.value):k()},fromYAML:t=>{let e=t.split(`
|
|
42
|
-
`),r=e[0]?.split(": ")[1],n=e[1]?.split(": ")[1];if(!r||!n)return k();let o=n==="null"?null:JSON.parse(n);return r==="Some"?U(o):k()},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return qe.fromJSON(e)}},d=a(At,qe);export{$,Zt as A,Xt as B,er as C,tr as D,or as E,ur as F,ye as G,ge as H,b as I,at as J,xe as K,A as L,st as M,Ee as N,Q as O,ke as P,z as Q,Ke as R,Ae as S,Sr as T,Br as U,Pr as V,x as W,$r as X,qr as Y,ft as Z,tn as _,U as a,un as aa,k as b,Ue as ba,At as c,F as ca,d,ce as da,Z as e,ve as ea,me as f,ht as fa,Le as g,Se as ga,g as h,Kn as ha,c as i,p as j,Vt as k,Ft as l,Ct as m,Xe as n,et as o,zt as p,Me as q,I as r,tt as s,Wt as t,jt as u,qt as v,Yt as w,Qt as x,Gt as y,Ht as z};//# sourceMappingURL=chunk-PPFDDUSD.mjs.map
|
|
43
|
-
//# sourceMappingURL=chunk-PPFDDUSD.mjs.map
|