functype 0.8.84 → 0.9.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 +108 -27
- package/dist/{Either-CncND8cm.d.ts → Either-C-PDWX2U.d.ts} +4 -57
- package/dist/Serializable-D9GKEo30.d.ts +67 -0
- package/dist/branded/index.d.ts +5 -2
- package/dist/branded/index.mjs +1 -1
- package/dist/chunk-4EYCKDDF.mjs +43 -0
- package/dist/chunk-4EYCKDDF.mjs.map +1 -0
- package/dist/chunk-BQJB6CCW.mjs +3 -0
- package/dist/chunk-BQJB6CCW.mjs.map +1 -0
- package/dist/chunk-V6LFV5LW.mjs +2 -0
- package/dist/chunk-V6LFV5LW.mjs.map +1 -0
- package/dist/either/index.d.ts +2 -2
- package/dist/either/index.mjs +1 -1
- package/dist/fpromise/index.d.ts +2 -2
- package/dist/fpromise/index.mjs +1 -1
- package/dist/index.d.ts +539 -165
- package/dist/index.mjs +1 -1
- package/dist/list/index.d.ts +2 -2
- package/dist/list/index.mjs +1 -1
- package/dist/map/index.d.ts +3 -3
- package/dist/map/index.mjs +1 -1
- package/dist/option/index.d.ts +2 -2
- package/dist/option/index.mjs +1 -1
- package/dist/set/index.d.ts +2 -2
- package/dist/set/index.mjs +1 -1
- package/dist/try/index.d.ts +2 -2
- package/dist/try/index.mjs +1 -1
- package/dist/tuple/index.d.ts +75 -2
- package/dist/tuple/index.mjs +1 -1
- package/package.json +12 -12
- package/dist/Tuple-ZYh96cGE.d.ts +0 -41
- package/dist/Typeable-BBXrKPTY.d.ts +0 -14
- package/dist/chunk-B6FR572T.mjs +0 -2
- package/dist/chunk-B6FR572T.mjs.map +0 -1
- package/dist/chunk-JMCOLAJY.mjs +0 -42
- package/dist/chunk-JMCOLAJY.mjs.map +0 -1
- package/dist/chunk-TQJDL6YW.mjs +0 -2
- package/dist/chunk-TQJDL6YW.mjs.map +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{G as Base,B as BoundedNumber,C as BoundedString,E as Cond,ba as ESMap,q as Either,x as EmailAddress,K as FPromise,J as FPromiseCompanion,Y as FoldableUtils,_ as HKT,A as ISO8601Date,$ as Identity,u as IntegerNumber,aa as Lazy,W as LazyList,j as Left,h as List,ca as Map,F as Match,da as MatchableUtils,H as NAME,w as NonEmptyString,t as NonNegativeNumber,b as None,d as Option,c as OptionConstructor,U as ParseError,D as PatternString,v as PositiveInteger,s as PositiveNumber,ea as Ref,i as Right,e as Set,a as Some,ga as Stack,P as Task,M as TaskException,N as TaskResult,I as Throwable,Z as Try,o as TypeCheckLeft,n as TypeCheckRight,f as Typeable,V as TypedError,z as UUID,y as UrlString,r as ValidatedBrand,X as Validation,fa as Valuable,O as createCancellationTokenSource,T as createErrorSerializer,S as formatError,R as formatStackTrace,l as isLeft,k as isRight,L as isTaggedThrowable,g as isTypeable,Q as safeStringify,m as tryCatch,p as tryCatchAsync}from'./chunk-4EYCKDDF.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-V6LFV5LW.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/list/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { L as List } from '../Either-
|
|
2
|
-
import '../
|
|
1
|
+
export { L as List } from '../Either-C-PDWX2U.js';
|
|
2
|
+
import '../Serializable-D9GKEo30.js';
|
package/dist/list/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{h as List}from'../chunk-4EYCKDDF.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-V6LFV5LW.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/map/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { T as Traversable, C as Collection,
|
|
2
|
-
import { a as Typeable, T as Type } from '../
|
|
3
|
-
import {
|
|
1
|
+
import { T as Traversable, C as Collection, O as Option } from '../Either-C-PDWX2U.js';
|
|
2
|
+
import { a as Typeable, S as Serializable, P as Pipe, F as Foldable, T as Type } from '../Serializable-D9GKEo30.js';
|
|
3
|
+
import { Tuple } from '../tuple/index.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* A traversable interface for map that excludes map and flatMap operations
|
package/dist/map/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{ca as Map}from'../chunk-4EYCKDDF.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-V6LFV5LW.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/option/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { N as None, O as Option,
|
|
2
|
-
import '../
|
|
1
|
+
export { N as None, O as Option, l as OptionConstructor, S as Some } from '../Either-C-PDWX2U.js';
|
|
2
|
+
import '../Serializable-D9GKEo30.js';
|
package/dist/option/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{b as None,d as Option,c as OptionConstructor,a as Some}from'../chunk-4EYCKDDF.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-V6LFV5LW.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/set/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
import '../
|
|
1
|
+
export { m as Set } from '../Either-C-PDWX2U.js';
|
|
2
|
+
import '../Serializable-D9GKEo30.js';
|
package/dist/set/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{e as Set}from'../chunk-4EYCKDDF.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-V6LFV5LW.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/try/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { T as Type } from '../
|
|
1
|
+
import { F as FunctypeBase, a as Extractable, E as Either } from '../Either-C-PDWX2U.js';
|
|
2
|
+
import { P as Pipe, T as Type } from '../Serializable-D9GKEo30.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Possible types of Try instances
|
package/dist/try/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{Z as Try}from'../chunk-4EYCKDDF.mjs';import'../chunk-BQJB6CCW.mjs';import'../chunk-V6LFV5LW.mjs';//# sourceMappingURL=index.mjs.map
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/tuple/index.d.ts
CHANGED
|
@@ -1,2 +1,75 @@
|
|
|
1
|
-
import '../
|
|
2
|
-
|
|
1
|
+
import { T as Type, F as Foldable, P as Pipe, S as Serializable, a as Typeable } from '../Serializable-D9GKEo30.js';
|
|
2
|
+
|
|
3
|
+
interface Tuple<T extends Type[]> extends Foldable<T[number]>, Pipe<Tuple<T>>, Serializable<Tuple<T>>, Typeable<"Tuple"> {
|
|
4
|
+
get<K extends number>(index: K): T[K];
|
|
5
|
+
map<U extends Type[]>(f: (value: T) => U): Tuple<U>;
|
|
6
|
+
flatMap<U extends Type[]>(f: (value: T) => Tuple<U>): Tuple<U>;
|
|
7
|
+
toArray(): T;
|
|
8
|
+
length: number;
|
|
9
|
+
[Symbol.iterator](): Iterator<T[number]>;
|
|
10
|
+
toString(): string;
|
|
11
|
+
toValue(): {
|
|
12
|
+
_tag: "Tuple";
|
|
13
|
+
value: T;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Tuple provides a type-safe, fixed-length array with functional operations.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* // Creating tuples
|
|
21
|
+
* const t1 = Tuple([1, "hello", true])
|
|
22
|
+
* const t2 = Tuple.of(1, "hello", true)
|
|
23
|
+
* const pair = Tuple.pair("key", 42)
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* // Type-safe access
|
|
27
|
+
* const triple = Tuple.triple("x", 10, true)
|
|
28
|
+
* const first = triple.get(0) // string
|
|
29
|
+
* const second = triple.get(1) // number
|
|
30
|
+
* const third = triple.get(2) // boolean
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // Functional operations
|
|
34
|
+
* const doubled = Tuple([1, 2, 3])
|
|
35
|
+
* .map(arr => arr.map(x => x * 2))
|
|
36
|
+
* .toArray() // [2, 4, 6]
|
|
37
|
+
*/
|
|
38
|
+
declare const Tuple: (<T extends Type[]>(values: T) => Tuple<T>) & {
|
|
39
|
+
/**
|
|
40
|
+
* Create a Tuple from multiple arguments
|
|
41
|
+
* @example
|
|
42
|
+
* const t = Tuple.of(1, "hello", true)
|
|
43
|
+
* // TypeScript infers: Tuple<[number, string, boolean]>
|
|
44
|
+
*/
|
|
45
|
+
of: <T extends Type[]>(...values: T) => Tuple<T>;
|
|
46
|
+
/**
|
|
47
|
+
* Create a Tuple of size 2 (pair)
|
|
48
|
+
* @example
|
|
49
|
+
* const pair = Tuple.pair("key", 42)
|
|
50
|
+
* // TypeScript infers: Tuple<[string, number]>
|
|
51
|
+
*/
|
|
52
|
+
pair: <A extends Type, B extends Type>(first: A, second: B) => Tuple<[A, B]>;
|
|
53
|
+
/**
|
|
54
|
+
* Create a Tuple of size 3 (triple)
|
|
55
|
+
* @example
|
|
56
|
+
* const triple = Tuple.triple("x", 10, true)
|
|
57
|
+
* // TypeScript infers: Tuple<[string, number, boolean]>
|
|
58
|
+
*/
|
|
59
|
+
triple: <A extends Type, B extends Type, C extends Type>(first: A, second: B, third: C) => Tuple<[A, B, C]>;
|
|
60
|
+
/**
|
|
61
|
+
* Create an empty Tuple
|
|
62
|
+
* @example
|
|
63
|
+
* const empty = Tuple.empty()
|
|
64
|
+
* // TypeScript infers: Tuple<[]>
|
|
65
|
+
*/
|
|
66
|
+
empty: () => Tuple<[]>;
|
|
67
|
+
/**
|
|
68
|
+
* Create a Tuple from an array (alias for constructor)
|
|
69
|
+
* @example
|
|
70
|
+
* const t = Tuple.from([1, 2, 3])
|
|
71
|
+
*/
|
|
72
|
+
from: <T extends Type[]>(values: T) => Tuple<T>;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export { Tuple };
|
package/dist/tuple/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{
|
|
1
|
+
export{b as Tuple}from'../chunk-BQJB6CCW.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.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A smallish functional library for TypeScript",
|
|
6
6
|
"author": "jordan.burke@gmail.com",
|
|
@@ -14,26 +14,26 @@
|
|
|
14
14
|
"devDependencies": {
|
|
15
15
|
"@eslint/compat": "^1.3.1",
|
|
16
16
|
"@eslint/eslintrc": "^3.3.1",
|
|
17
|
-
"@eslint/js": "^9.
|
|
18
|
-
"@types/node": "^22.
|
|
19
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
20
|
-
"@typescript-eslint/parser": "^8.
|
|
17
|
+
"@eslint/js": "^9.32.0",
|
|
18
|
+
"@types/node": "^22.16.5",
|
|
19
|
+
"@typescript-eslint/eslint-plugin": "^8.38.0",
|
|
20
|
+
"@typescript-eslint/parser": "^8.38.0",
|
|
21
21
|
"@vitest/coverage-v8": "^3.2.4",
|
|
22
22
|
"@vitest/ui": "^3.2.4",
|
|
23
23
|
"cross-env": "^7.0.3",
|
|
24
|
-
"eslint": "^9.
|
|
25
|
-
"eslint-config-prettier": "^10.1.
|
|
24
|
+
"eslint": "^9.32.0",
|
|
25
|
+
"eslint-config-prettier": "^10.1.8",
|
|
26
26
|
"eslint-plugin-functional": "^9.0.2",
|
|
27
27
|
"eslint-plugin-import": "^2.32.0",
|
|
28
|
-
"eslint-plugin-prettier": "^5.5.
|
|
28
|
+
"eslint-plugin-prettier": "^5.5.3",
|
|
29
29
|
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
30
|
-
"fast-check": "^4.
|
|
31
|
-
"globals": "^16.
|
|
32
|
-
"prettier": "^3.6.
|
|
30
|
+
"fast-check": "^4.2.0",
|
|
31
|
+
"globals": "^16.3.0",
|
|
32
|
+
"prettier": "^3.6.2",
|
|
33
33
|
"rimraf": "^6.0.1",
|
|
34
34
|
"ts-node": "^10.9.2",
|
|
35
35
|
"tsup": "^8.5.0",
|
|
36
|
-
"typedoc": "^0.28.
|
|
36
|
+
"typedoc": "^0.28.7",
|
|
37
37
|
"typescript": "5.8.3",
|
|
38
38
|
"vitest": "^3.2.4"
|
|
39
39
|
},
|
package/dist/Tuple-ZYh96cGE.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { T as Type, a as Typeable } from './Typeable-BBXrKPTY.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Parameters for creating a Valuable instance
|
|
5
|
-
*/
|
|
6
|
-
type ValuableParams<Tag extends string, T, V> = {
|
|
7
|
-
_tag: Tag;
|
|
8
|
-
impl: T;
|
|
9
|
-
value: V;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Creates a Valuable wrapper that adds value extraction capabilities
|
|
13
|
-
* @param params - Configuration parameters
|
|
14
|
-
* @module Valuable
|
|
15
|
-
* @category Utilities
|
|
16
|
-
*/
|
|
17
|
-
declare function Valuable<Tag extends string, V, T = object>(params: ValuableParams<Tag, T, V>): T & {
|
|
18
|
-
toValue: () => {
|
|
19
|
-
_tag: Tag;
|
|
20
|
-
value: V;
|
|
21
|
-
};
|
|
22
|
-
_tag: Tag;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Represents a type that can extract its inner value
|
|
26
|
-
* @interface
|
|
27
|
-
* @module Valuable
|
|
28
|
-
* @category Utilities
|
|
29
|
-
*/
|
|
30
|
-
type Valuable<Tag extends string, V, T = object> = ReturnType<typeof Valuable<Tag, V, T>>;
|
|
31
|
-
|
|
32
|
-
type Tuple<T extends Type[]> = {
|
|
33
|
-
get<K extends number>(index: K): T[K];
|
|
34
|
-
map<U extends Type[]>(f: (value: T) => U): Tuple<U>;
|
|
35
|
-
flatMap<U extends Type[]>(f: (value: T) => Tuple<U>): Tuple<U>;
|
|
36
|
-
toArray(): T;
|
|
37
|
-
[Symbol.iterator](): Iterator<T[number]>;
|
|
38
|
-
} & Typeable<"Tuple"> & Valuable<"Tuple", T>;
|
|
39
|
-
declare const Tuple: <T extends Type[]>(values: T) => Tuple<T>;
|
|
40
|
-
|
|
41
|
-
export { Tuple as T, Valuable as V, type ValuableParams as a };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
type Type = unknown;
|
|
2
|
-
|
|
3
|
-
type TypeableParams<Tag extends string, T> = {
|
|
4
|
-
_tag: Tag;
|
|
5
|
-
impl: T;
|
|
6
|
-
};
|
|
7
|
-
type ExtractTag<T> = T extends Typeable<infer Tag, unknown> ? Tag : never;
|
|
8
|
-
type Typeable<Tag extends string, T = object> = T & {
|
|
9
|
-
readonly _tag: Tag;
|
|
10
|
-
};
|
|
11
|
-
declare function Typeable<Tag extends string, T>({ _tag, impl }: TypeableParams<Tag, T>): Typeable<Tag, T>;
|
|
12
|
-
declare function isTypeable<T>(value: unknown, tag: string): value is T;
|
|
13
|
-
|
|
14
|
-
export { type ExtractTag as E, type Type as T, Typeable as a, type TypeableParams as b, isTypeable as i };
|
package/dist/chunk-B6FR572T.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
function T({_tag:e,impl:t}){return {...t,_tag:e}}function n(e,t){return !e||typeof e!="object"||!("_tag"in e)?false:t?e._tag===t:true}function u(e){let t=T({_tag:e._tag,impl:e.impl});return {...t,toValue:()=>({_tag:t._tag,value:e.value})}}var r=e=>({_tag:"Tuple",map:t=>{let a=t(e);return r(a)},flatMap:t=>t(e),get:t=>e[t],toArray:()=>e,[Symbol.iterator](){let t=0;return {next:()=>t<e.length?{value:e[t++],done:false}:{value:void 0,done:true}}},toValue:()=>({_tag:"Tuple",value:e})});export{T as a,n as b,u as c,r as d};//# sourceMappingURL=chunk-B6FR572T.mjs.map
|
|
2
|
-
//# sourceMappingURL=chunk-B6FR572T.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/typeable/Typeable.ts","../src/valuable/Valuable.ts","../src/tuple/Tuple.ts"],"names":["Typeable","_tag","impl","isTypeable","value","tag","Valuable","params","Tuple","values","f","mapValue","index"],"mappings":"AAWO,SAASA,CAAAA,CAAgC,CAAE,IAAA,CAAAC,CAAAA,CAAM,IAAA,CAAAC,CAAK,CAAA,CAA6C,CACxG,OAAO,CACL,GAAGA,CAAAA,CACH,KAAMD,CACR,CACF,CAGO,SAASE,CAAAA,CAAcC,CAAAA,CAAgBC,CAAAA,CAAyB,CACrE,OAAI,CAACD,CAAAA,EAAS,OAAOA,CAAAA,EAAU,QAAA,EAAY,EAAE,MAAA,GAAUA,CAAAA,CAAAA,CAC9C,MAGFC,CAAAA,CAAMD,CAAAA,CAAM,IAAA,GAASC,CAAAA,CAAM,IACpC,CCZO,SAASC,CAAAA,CAA4CC,EAAmC,CAC7F,IAAM,CAAA,CAAIP,CAAAA,CAAiB,CAAE,IAAA,CAAMO,CAAAA,CAAO,IAAA,CAAM,KAAMA,CAAAA,CAAO,IAAK,CAAC,CAAA,CACnE,OAAO,CACL,GAAG,CAAA,CACH,QAAS,KAAO,CAAE,IAAA,CAAM,CAAA,CAAE,IAAA,CAAM,KAAA,CAAOA,CAAAA,CAAO,KAAM,EACtD,CACF,CCFO,IAAMC,CAAAA,CAA2BC,CAAAA,GAC/B,CACL,IAAA,CAAM,OAAA,CACN,IAAwBC,CAAAA,EAAiC,CACvD,IAAMC,CAAAA,CAAWD,CAAAA,CAAED,CAAM,CAAA,CACzB,OAAOD,EAAMG,CAAQ,CACvB,CAAA,CAEA,OAAA,CAA4BD,CAAAA,EACnBA,CAAAA,CAAED,CAAM,CAAA,CAGjB,IAAwBG,CAAAA,EACfH,CAAAA,CAAOG,CAAK,CAAA,CAGrB,OAAA,CAAS,IACAH,CAAAA,CAET,CAAC,OAAO,QAAQ,CAAA,EAAyB,CACvC,IAAIG,CAAAA,CAAQ,CAAA,CACZ,OAAO,CACL,KAAM,IACAA,CAAAA,CAAQH,CAAAA,CAAO,MAAA,CACV,CACL,KAAA,CAAOA,CAAAA,CAAOG,CAAAA,EAAO,EACrB,IAAA,CAAM,KACR,CAAA,CAEO,CACL,KAAA,CAAO,MAAA,CACP,IAAA,CAAM,IACR,CAGN,CACF,CAAA,CACA,OAAA,CAAS,KAAO,CAAE,IAAA,CAAM,OAAA,CAAS,KAAA,CAAOH,CAAO,CAAA,CACjD,CAAA","file":"chunk-B6FR572T.mjs","sourcesContent":["// Core type for Typeable objects\nexport type Typeable<Tag extends string, T = object> = T & {\n readonly _tag: Tag\n}\n\nexport type TypeableParams<Tag extends string, T> = { _tag: Tag; impl: T }\n\n// Utility type to extract the Tag from a Typeable type\nexport type ExtractTag<T> = T extends Typeable<infer Tag, unknown> ? Tag : never\n\n// Create a tagged object with type inference\nexport function Typeable<Tag extends string, T>({ _tag, impl }: TypeableParams<Tag, T>): Typeable<Tag, T> {\n return {\n ...impl,\n _tag: _tag,\n }\n}\n\n// Type guard with automatic type inference using the full type\nexport function isTypeable<T>(value: unknown, tag: string): value is T {\n if (!value || typeof value !== \"object\" || !(\"_tag\" in value)) {\n return false\n }\n\n return tag ? value._tag === tag : true\n}\n\n// // Usage\n// type User = Typeable<\n// \"User\",\n// {\n// id: string\n// name: string\n// email: string\n// }\n// >\n//\n// const user = Typeable(\"User\", {\n// id: \"123\",\n// name: \"John\",\n// email: \"john@example.com\",\n// })\n//\n// const maybeUser: unknown = user\n//\n// // Now we only need to specify User type\n// if (isTypeable<User>(maybeUser, \"User\")) {\n// console.log(maybeUser.name) // typed\n// console.log(maybeUser.email) // typed\n// console.log(maybeUser._tag) // typed as \"User\"\n// }\n//\n// // Can still check just for Typeable without specific tag\n// if (isTypeable<User>(maybeUser)) {\n// console.log(maybeUser.name) // typed\n// console.log(maybeUser.email) // typed\n// console.log(maybeUser._tag) // typed as \"User\"\n// }\n","import { Typeable } from \"@/typeable/Typeable\"\n\n/**\n * Parameters for creating a Valuable instance\n */\nexport type ValuableParams<Tag extends string, T, V> = { _tag: Tag; impl: T; value: V }\n\n/**\n * Creates a Valuable wrapper that adds value extraction capabilities\n * @param params - Configuration parameters\n * @module Valuable\n * @category Utilities\n */\nexport function Valuable<Tag extends string, V, T = object>(params: ValuableParams<Tag, T, V>) {\n const t = Typeable<Tag, T>({ _tag: params._tag, impl: params.impl })\n return {\n ...t,\n toValue: () => ({ _tag: t._tag, value: params.value }),\n }\n}\n\n/**\n * Represents a type that can extract its inner value\n * @interface\n * @module Valuable\n * @category Utilities\n */\nexport type Valuable<Tag extends string, V, T = object> = ReturnType<typeof Valuable<Tag, V, T>>\n","import { Typeable } from \"@/typeable/Typeable\"\nimport type { Type } from \"@/types\"\nimport { Valuable } from \"@/valuable/Valuable\"\n\nexport type Tuple<T extends Type[]> = {\n get<K extends number>(index: K): T[K]\n\n map<U extends Type[]>(f: (value: T) => U): Tuple<U>\n\n flatMap<U extends Type[]>(f: (value: T) => Tuple<U>): Tuple<U>\n\n toArray(): T\n\n [Symbol.iterator](): Iterator<T[number]>\n} & Typeable<\"Tuple\"> &\n Valuable<\"Tuple\", T>\n\nexport const Tuple = <T extends Type[]>(values: T): Tuple<T> => {\n return {\n _tag: \"Tuple\",\n map: <U extends Type[]>(f: (value: T) => U): Tuple<U> => {\n const mapValue = f(values)\n return Tuple(mapValue)\n },\n\n flatMap: <U extends Type[]>(f: (value: T) => Tuple<U>): Tuple<U> => {\n return f(values)\n },\n\n get: <K extends number>(index: K): T[K] => {\n return values[index]\n },\n\n toArray: (): T => {\n return values\n },\n [Symbol.iterator](): Iterator<T[number]> {\n let index = 0\n return {\n next: (): IteratorResult<T[number]> => {\n if (index < values.length) {\n return {\n value: values[index++],\n done: false,\n }\n } else {\n return {\n value: undefined,\n done: true,\n }\n }\n },\n }\n },\n toValue: () => ({ _tag: \"Tuple\", value: values }),\n }\n}\n"]}
|
package/dist/chunk-JMCOLAJY.mjs
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import {b as b$1,a as a$1,d}from'./chunk-B6FR572T.mjs';import {a}from'./chunk-TQJDL6YW.mjs';import te from'safe-stable-stringify';function E(e,t){return Object.assign(e,t)}var I=Set;var P=e=>{let t=new I(e),r={_tag:"Set",[Symbol.iterator]:()=>t[Symbol.iterator](),add:n=>P([...t,n]),remove:n=>{let o=new I(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 I;for(let a of t)for(let s of n)o.add(s(a));return P(o)},flatMap:n=>{let o=new I;for(let a of t)for(let s of n(a))o.add(s);return P(o)},flatMapAsync:async n=>{let o=new I;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 I;for(let a of t)n(a)&&o.add(a);return P(o)},filterNot:n=>{let o=new I;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 I;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
|
-
value: ${JSON.stringify(Array.from(t))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Set",value:Array.from(t)})).toString("base64")})};return r},$e=e=>P(e),Le={fromJSON:e=>{let t=JSON.parse(e);return Y(t.value)},fromYAML:e=>{let r=e.split(`
|
|
3
|
-
`)[1]?.split(": ")[1];if(!r)return Y([]);let n=JSON.parse(r);return Y(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Le.fromJSON(t)}},Y=E($e,Le);var v=e=>{let t=Array.from(e||[]),r={_tag:"List",[Symbol.iterator]:()=>t[Symbol.iterator](),get size(){return t.length},get length(){return t.length},map:n=>v(t.map(n)),ap:n=>v(t.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>v(t.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(t.map(async a=>await n(a)));return v(o.flatMap(a=>Array.from(a)))},forEach:n=>t.forEach(n),contains:n=>t.includes(n),count:n=>t.filter(n).length,exists:n=>t.some(n),filter:n=>v(t.filter(n)),filterNot:n=>v(t.filter(o=>!n(o))),filterType:n=>v(t.filter(o=>b$1(o,n))),find:(n,o)=>{let a=t.find(s=>n(s)&&(o?b$1(s,o):true));return f(a)},get head(){return t[0]},get headOption(){return t.length>0?f(t[0]):k()},get isEmpty(){return t.length===0},toArray:()=>[...t],reduce:n=>t.reduce(n),reduceRight:n=>t.reduceRight(n),fold:(n,o)=>{if(t.length===0)return n();let a=t[0];return o(a)},foldLeft:n=>o=>t.reduce(o,n),foldRight:n=>o=>t.reduceRight((a,s)=>o(s,a),n),match:n=>t.length===0?n.Empty():n.NonEmpty([...t]),remove:n=>v(t.filter(o=>o!==n)),removeAt:n=>n<0||n>=t.length?r:v([...t.slice(0,n),...t.slice(n+1)]),add:n=>v([...t,n]),get:n=>f(t[n]),concat:n=>v([...t,...n.toArray()]),drop:n=>v(t.slice(n)),dropRight:n=>v(t.slice(0,-n)),dropWhile:n=>v(t.slice(t.findIndex(o=>!n(o)))),flatten:()=>v(t.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>Y(t),toString:()=>`List(${te(t)})`,toValue:()=>({_tag:"List",value:t}),pipe:n=>n([...t]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:t}),toYAML:()=>`_tag: List
|
|
4
|
-
value: ${te(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:t})).toString("base64")})};return r},Je=e=>v(e),ke={fromJSON:e=>{let t=JSON.parse(e);return m(t.value)},fromYAML:e=>{let r=e.split(`
|
|
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 ke.fromJSON(t)}},m=E(Je,ke);var be=e=>({_tag:"Right",value:e,isLeft:()=>false,isRight:()=>true,get:()=>e,getOrElse:t=>e,getOrThrow:()=>e,orElse:t=>T(e),orNull:()=>e,orUndefined:()=>e,map:t=>T(t(e)),ap:t=>t._tag==="Right"?T(t.value(e)):c(t.value),mapAsync:t=>t(e).then(r=>T(r)).catch(r=>Promise.resolve(c(r))),merge:t=>t.isLeft()?c(t.value):T([e,t.value]),flatMap:t=>t(e),flatMapAsync:t=>t(e).catch(r=>c(r)),toOption:()=>b(e),toList:()=>m([e]),toJSON:function(){return {_tag:"Right",value:e}},toString:()=>`Right(${te(e)})`,[Symbol.iterator]:function*(){yield e;},yield:function*(){yield e;},traverse:t=>{let r=t(e);return r.isLeft()?c(r.value):T([r.value])},lazyMap:function*(t){yield T(t(e));},tap:t=>(t(e),T(e)),tapLeft:t=>T(e),mapLeft:t=>T(e),bimap:(t,r)=>T(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:()=>c(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
|
-
value: ${te(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)?b(e):k(),exists:t=>t(e),forEach:t=>t(e)}),ve=e=>({_tag:"Left",value:e,isLeft:()=>true,isRight:()=>false,get:()=>{throw new Error(`Cannot call get() on Left(${te(e)})`)},getOrElse:t=>t,getOrThrow:t=>{throw t||e},orElse:t=>t,orNull:()=>null,orUndefined:()=>{},map:t=>c(e),ap:t=>c(e),mapAsync:t=>Promise.resolve(c(e)),merge:t=>c(e),flatMap:t=>c(e),flatMapAsync:t=>Promise.resolve(c(e)),toOption:()=>k(),toList:()=>m(),toJSON:function(){return {_tag:"Left",value:e}},toString:()=>`Left(${te(e)})`,[Symbol.iterator]:function*(){},yield:function*(){},traverse:t=>c(e),lazyMap:function*(t){yield c(e);},tap:t=>c(e),tapLeft:t=>(t(e),c(e)),mapLeft:t=>c(t(e)),bimap:(t,r)=>c(t(e)),fold:(t,r)=>t(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,match:t=>t.Left(e),swap:()=>T(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
|
-
value: ${te(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Left",value:e})).toString("base64")}),get size(){return 0},get isEmpty(){return true},contains:t=>false,reduce:t=>{throw new Error("Cannot reduce a Left")},reduceRight:t=>{throw new Error("Cannot reduceRight a Left")},count:t=>0,find:t=>k(),exists:t=>false,forEach:t=>{}}),T=e=>be(e),c=e=>ve(e),bt=e=>e.isRight(),vt=e=>e.isLeft(),wt=(e,t)=>{try{return T(e())}catch(r){return c(t(r))}},We=e=>be(e);console.assert(We);var je=e=>ve(e);console.assert(je);var Ut=async(e,t)=>{try{let r=await e();return T(r)}catch(r){return c(t(r))}},xe={sequence:e=>{let t=[];for(let r of e){if(r.isLeft())return c(r.value);t.push(r.value);}return T(t)},traverse:(e,t)=>xe.sequence(e.map(t)),fromNullable:(e,t)=>e==null?c(t):T(e),fromPredicate:(e,t,r)=>t(e)?T(e):c(r),ap:(e,t)=>e.flatMap(r=>t.map(r)),fromPromise:async(e,t)=>{try{let r=await e;return T(r)}catch(r){return c(t(r))}},fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Right"?T(t.value):c(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"?T(o):c(o)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return xe.fromJSON(t)}};function M(e,t){return {brand:e,validate:t,of:r=>t(r)?f(a(e,r)):f.none(),from:r=>t(r)?T(a(e,r)):c(`Invalid ${e}: validation failed`),unsafeOf:r=>{if(!t(r))throw new Error(`Invalid ${e}: validation failed`);return a(e,r)},is:r=>{try{return t(r)}catch{return false}},refine:(r,n)=>M(r,o=>t(o)&&n(o))}}var Ye=M("PositiveNumber",e=>e>0),Nt=M("NonNegativeNumber",e=>e>=0),zt=M("IntegerNumber",e=>Number.isInteger(e)),_t=Ye.refine("PositiveInteger",e=>Number.isInteger(e)),Ft=M("NonEmptyString",e=>e.length>0),Ct=M("EmailAddress",e=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)),Vt=M("UrlString",e=>{try{return new URL(e),!0}catch{return !1}}),Kt=M("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)),It=M("ISO8601Date",e=>!isNaN(Date.parse(e))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(e));function $t(e,t,r){return M(e,n=>n>=t&&n<=r)}function Jt(e,t,r){return M(e,n=>n.length>=t&&n.length<=r)}function Wt(e,t){return M(e,r=>t.test(r))}var ce=e=>{let t=n=>typeof n=="function"?n():n,r={when:(n,o)=>e.resolved?r:n?ce({resolved:true,value:t(o)}):r,elseWhen:(n,o)=>e.resolved?r:n?ce({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},we=()=>ce({resolved:false}),De={of:()=>we(),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}},Dt=E(we,De);var se=e=>{let t=(n,o)=>typeof n=="function"?n(o):n,r={case:(n,o)=>e.resolved?r:n(e.value)?se({...e,resolved:true,result:t(o,e.value)}):r,caseValue:(n,o)=>{if(e.resolved)return r;if(e.value===n){let a=typeof o=="function"?o():o;return se({...e,resolved:true,result:a})}return r},caseValues:(n,o)=>{if(e.resolved)return r;if(n.includes(e.value)){let a=typeof o=="function"?o():o;return se({...e,resolved:true,result:a})}return r},default:n=>e.resolved?e.result:t(n,e.value),getOrThrow:()=>{if(!e.resolved)throw new Error(`No matching case for value: ${String(e.value)}`);return e.result}};return r},qe=e=>se({value:e,resolved:false}),Ge={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}})},Ht=E(qe,Ge);function H(e,t){return {...a$1({_tag:e,impl:t}),toString(){return `${e}()`}}}var ie="Throwable",R=class e extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=ie;this.name=n?.taskInfo?.name||ie,Object.defineProperties(this,{_tag:{value:ie,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||ie,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 l=new e(r.message,{data:n,cause:r.cause||void 0,stack:r.stack||void 0,taskInfo:o});for(let u of Object.keys(r))u in l||(l[u]=r[u]);return l}if(r&&typeof r=="object"){let l=r,u=typeof l.message=="string"?l.message:typeof l.error=="string"?l.error:`Object error: ${JSON.stringify(l,Object.getOwnPropertyNames(l).filter(g=>l[g]!==void 0))}`,h=new e(u,{data:n||l,taskInfo:o});for(let g of Object.keys(l))g in h||(h[g]=l[g]);return h}if(typeof r=="function"){let l=r.name||"anonymous function",u=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new e(`Function error: ${l}`,{data:n||{functionType:typeof r,functionName:l,functionString:u},taskInfo:o})}let a=typeof r,s=r===null?"null":r===void 0?"undefined":String(r);if(a==="number"){let l=r,u=Number.isNaN(l)?"Number error: NaN":Number.isFinite(l)?`Number error: ${l}`:`Number error: ${l>0?"Infinity":"-Infinity"}`;return new e(u,{data:n||{errorType:a,errorValue:l,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 l=r.description||"unnamed symbol";return new e(`Symbol error: Symbol(${l})`,{data:n||{errorType:a,symbolDescription:l,originalError:r},taskInfo:o})}let i=typeof r=="string"?r:`${a.charAt(0).toUpperCase()+a.slice(1)} error: ${s}`;return new e(i,{data:n||{errorType:a,errorValue:s,originalError:r},taskInfo:o})}};var L=e=>{let t=new Promise((r,n)=>{try{e(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>L((n,o)=>{t.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>L((n,o)=>{t.then(a=>{try{let s=r(a);"_tag"in s&&s._tag==="FPromise"?s.then(n,o):Promise.resolve(s).then(n,o);}catch(s){o(s);}}).catch(o);}),flatMapAsync:async r=>{let n=await t,o=r(n);return o instanceof Promise?o:new Promise((a,s)=>{o.then(a,s);})},tap:r=>L((n,o)=>{t.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>L((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};o(r(a,s));}catch(s){o(s);}});}),tapError:r=>L((n,o)=>{t.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>L(n=>{t.then(n).catch(()=>n(r));}),recoverWith:r=>L(n=>{t.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>L((n,o)=>{t.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>L((o,a)=>{t.then(o).catch(s=>{if(r(s))try{n(s).then(o,a);}catch(i){a(i);}else a(s);});}),logError:r=>L((n,o)=>{t.then(n).catch(a=>{try{let s={originalError:a,stack:a instanceof Error?a.stack:void 0,timestamp:Date.now()};r(a,s);}catch{}finally{o(a);}});}),then:(r,n)=>t.then(r,n),toPromise:()=>t,toEither:()=>t,fold:(r,n)=>L((o,a)=>{t.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},He={resolve:e=>L(t=>t(e)),reject:e=>L((t,r)=>r(e)),from:e=>L((t,r)=>{e.then(t).catch(r);}),fromEither:e=>e.isRight()?L(t=>t(e.value)):L((t,r)=>r(e.value)),all:e=>L((t,r)=>{Promise.all(e.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(t).catch(r);}),allSettled:e=>L(t=>{let r=[],n=0;if(e.length===0){t([]);return}e.forEach((o,a)=>{Promise.resolve(o).then(s=>{r[a]=T(s),n++,n===e.length&&t(r);}).catch(s=>{r[a]=c(s),n++,n===e.length&&t(r);});});}),race:e=>L((t,r)=>{Promise.race(e).then(t,r);}),any:e=>L((t,r)=>{if(typeof Promise.any=="function")Promise.any(e).then(t,r);else {let n=0,o=[];if(e.length===0){r(new AggregateError([],"All promises were rejected"));return}e.forEach((a,s)=>{Promise.resolve(a).then(t).catch(i=>{o[s]=i,n++,n===e.length&&r(new AggregateError(o,"All promises were rejected"));});});}}),retryWithBackoff:(e,t)=>{let{maxRetries:r,baseDelay:n=100,shouldRetry:o=()=>true}=t;return L((a,s)=>{let i=0,l=()=>{e().toPromise().then(a).catch(u=>{if(i++,i<=r&&o(u,i)){let h=n*Math.pow(2,i-1);setTimeout(l,h);}else s(u);});};l();})}},fe=E(L,He);function Qe(e){return e instanceof Error&&typeof e=="object"&&true&&e._tag==="Throwable"}var Ue=(e,t,r)=>{let n=r?.name||"TaskException",o=r?.description||"Unspecified TaskException",a={name:n,description:o},s=R.apply(e,t,a);return {...H("TaskException",c(s)),_task:a}},Se=(e,t)=>{let r=t?.name||"TaskResult",n=t?.description||"Unspecified TaskResult";return {...H("TaskResult",T(e)),_task:{name:r,description:n}}},Te=()=>{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);}}));}}},Xe=e=>{let t=e?.name||"Task",r=e?.description||"",n={Async:(o,a=l=>l,s=()=>{},i)=>fe(async(l,u)=>{let h=false,g=null,_=()=>{};if(i){if(i.isCancelled){try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}u(R.apply(new Error("Task was cancelled before execution started"),void 0,{name:t,description:r}));return}let U=()=>{h=true,g=new Error("Task was cancelled during execution");};i.onCancel(U),_=()=>{};}try{let U=await o();if(h){try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}u(g?R.apply(g,void 0,{name:t,description:r}):R.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}l(U);}catch(U){if(h){try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}u(g?R.apply(g,void 0,{name:t,description:r}):R.apply(new Error("Task was cancelled during execution"),void 0,{name:t,description:r}));return}try{await s();}catch(A){u(R.apply(A,void 0,{name:t,description:r}));return}try{if(U instanceof Error&&Qe(U)){let A=new Error(`${t}: ${U.message}`),D=R.apply(A,void 0,{name:t,description:r});Object.defineProperty(D,"cause",{value:U,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(U);}catch(J){console.error("Error in error handler:",J);}}),u(D);}else {let A=await a(U);u(R.apply(A,void 0,{name:t,description:r}));}}catch(A){u(R.apply(A,void 0,{name:t,description:r}));}}finally{_();}}),Sync:(o,a=i=>i,s=()=>{})=>{try{return Se(o(),{name:t,description:r})}catch(i){return Ue(a(i),void 0,{name:t,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=u=>u,i=()=>{},l)=>{let u=h=>{let g=Math.max(0,Math.min(100,h));g<=100&&a(g);};return n.Async(()=>o(u),s,i,l)}};return {...H("Task",n),_type:"Task"}},Be={success:(e,t)=>Se(e,t),fail:(e,t,r)=>Ue(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=Be.getErrorChain(e),n=t?.separator||`
|
|
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}] `:"",l=o.message||"No message",u=`${a>0?"\u21B3 ":""}${i}${l}`;return t?.includeStackTrace&&o.stack&&(u+=`
|
|
10
|
-
${o.stack.split(`
|
|
11
|
-
`).slice(1).join(`
|
|
12
|
-
`)}`),u}).join(n)},fromPromise:(e,t)=>(...r)=>F(t||{name:"PromiseTask",description:"Task from Promise"}).Async(()=>e(...r),o=>o),toPromise:e=>new Promise((t,r)=>{e.isRight()?t(e.value):r(e.value);}),race:(e,t,r)=>{let n=r?.name||"TaskRace",o=r?.description||"Race between multiple tasks";return F({name:n,description:o}).Async(async()=>{let s=[...e],i;if(typeof t=="number"&&t>0){let l=fe((u,h)=>{i=setTimeout(()=>{h(new Error(`Task race timed out after ${t}ms`));},t);});s.push(l);}try{return await new Promise((l,u)=>{s.forEach(h=>{h.then(g=>l(g),g=>u(g));});})}finally{i&&clearTimeout(i);}},s=>s)},fromNodeCallback:(e,t)=>{let r=t?.name||"NodeCallbackTask",n=t?.description||"Task from Node.js callback function",o={name:r,description:n};return (...a)=>F(o).Async(()=>new Promise((s,i)=>{try{e(...a,(l,u)=>{l?i(l):s(u);});}catch(l){i(l);}}),s=>s)},createCancellationTokenSource:Te,cancellable:(e,t)=>{let r=Te();return {task:F(t).Async(()=>e(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(e,t=()=>{},r)=>{let n=Te(),o=0,a=i=>{o=Math.max(0,Math.min(100,i)),t(o);};return {task:F(r).Async(()=>e(a,n.token),i=>i,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o}}},F=E(Xe,Be);var Pe={includeTasks:true,includeStackTrace:false,separator:`
|
|
13
|
-
`,includeData:false,maxStackFrames:3,title:"Error",colors:false};function Oe(e){let t=new WeakSet;return JSON.stringify(e,(r,n)=>{if(typeof n=="bigint")return n.toString()+"n";if(typeof n=="object"&&n!==null){if(t.has(n))return "[Circular Reference]";t.add(n);}return r==="stack"&&typeof n=="string"?le(n):n},2)}function le(e){if(!e)return "";if(!e)return e;let t=e.split(`
|
|
14
|
-
`),r=t[0],n=t.slice(1).map(o=>o.trim());return [r,...n].join(`
|
|
15
|
-
`)}function yr(e,t){let r={...Pe,...t},n=e instanceof Error?e:R.apply(e),o=F?.getErrorChain?F.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((l,u)=>{let h=" ".repeat(u),g=u>0?"\u21B3 ":"",_=l.taskInfo,U=r.includeTasks&&_?.name?r.colors?`\x1B[36m[${_.name}]\x1B[0m `:`[${_.name}] `:"",A=`${h}${g}${U}${l.message}`;if(r.includeStackTrace&&l.stack){let J=le(l.stack).split(`
|
|
16
|
-
`).slice(1),q=r.maxStackFrames??Pe.maxStackFrames??3,ne=J.slice(0,q).map(oe=>`${h} ${r.colors?"\x1B[90m":""}${oe}${r.colors?"\x1B[0m":""}`).join(`
|
|
17
|
-
`);A+=`
|
|
18
|
-
${ne}`,J.length>q&&(A+=`
|
|
19
|
-
${h} ${r.colors?"\x1B[90m":""}...${J.length-q} more stack frames${r.colors?"\x1B[0m":""}`);}return A}).join(r.separator),i=`${a}
|
|
20
|
-
|
|
21
|
-
${s}`;if(r.includeData){let l=n.data;if(l){let u=r.colors?`
|
|
22
|
-
|
|
23
|
-
\x1B[33mContext:\x1B[0m
|
|
24
|
-
${Oe(l)}`:`
|
|
25
|
-
|
|
26
|
-
Context:
|
|
27
|
-
${Oe(l)}`;i+=u;}}return i}function dr(){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?le(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof F?.getErrorChain=="function")try{let o=F.getErrorChain(r);o.length>1&&(n.errorChain=F.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?le(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var gr=e=>{let t=new Error(e);return t.name="ParseError",t};var xr={toOption:e=>e.fold(()=>k(),t=>b(t)),toList:e=>e.fold(()=>m([]),t=>m([t])),toEither:(e,t)=>e.fold(()=>c(t),r=>T(r)),isEmpty:e=>e.fold(()=>true,()=>false),size:e=>e.fold(()=>0,()=>1)};var ue=e=>({_tag:"Success",error:void 0,isSuccess:()=>true,isFailure:()=>false,get:()=>e,getOrElse:t=>e,getOrThrow:t=>e,orElse:t=>ue(e),orNull:()=>e,orUndefined:()=>e,orThrow:t=>e,toEither:()=>T(e),map:t=>de(()=>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(${te(e)})`,toValue:()=>({_tag:"Success",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:e}),toYAML:()=>`_tag: Success
|
|
28
|
-
value: ${te(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)}),C=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:()=>c(e),map:t=>C(e),ap:t=>C(e),flatMap:t=>C(e),flatMapAsync:async t=>C(e),fold:(t,r)=>t(e),match:t=>t.Failure(e),foldLeft:t=>r=>t,foldRight:t=>r=>t,toString:()=>`Failure(${te(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
|
|
29
|
-
error: ${e.message}
|
|
30
|
-
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=>{}}),Ze=e=>{try{return ue(e())}catch(t){return C(t instanceof Error?t:new Error(String(t)))}},Me={fromJSON:e=>{let t=JSON.parse(e);if(t._tag==="Success")return ue(t.value);{let r=new Error(t.error);return t.stack&&(r.stack=t.stack),C(r)}},fromYAML:e=>{let t=e.split(`
|
|
31
|
-
`),r=t[0]?.split(": ")[1];if(!r)return C(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=t[1]?.split(": ")[1];if(!n)return C(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return ue(o)}else {let n=t[1]?.split(": ")[1];if(!n)return C(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),C(s)}},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Me.fromJSON(t)}},de=E(Ze,Me);var W=e=>e!==null&&typeof e=="object"&&(e._tag==="Some"||e._tag==="None"),V=e=>e!==null&&typeof e=="object"&&e._tag==="List",Q=e=>e!==null&&typeof e=="object"&&(e._tag==="Left"||e._tag==="Right"),X=e=>e!==null&&typeof e=="object"&&(e._tag==="Success"||e._tag==="Failure"),w=()=>{let e=(s,i)=>{if(W(s))return s.map(l=>i(l));if(V(s))return s.map(l=>i(l));if(Q(s))return s.map(l=>i(l));if(X(s))return s.map(l=>i(l));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},t=s=>{if(W(s))return s.get();if(V(s)){let i=s.toArray();if(i.length>0&&V(i[0])){let l=[];for(let u of i)V(u)&&l.push(...u.toArray());return m(l)}return s.flatten()}if(Q(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(X(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(W(s))return s.flatMap(l=>i(l));if(V(s))return s.flatMap(l=>i(l));if(Q(s))return s.flatMap(l=>i(l));if(X(s))return s.flatMap(l=>i(l));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(W(s)&&W(i))return s.flatMap(l=>i.map(u=>l(u)));if(V(s)&&V(i))return s.flatMap(l=>i.map(u=>l(u)));if(Q(s)&&Q(i))return s.flatMap(l=>i.map(u=>l(u)));if(X(s)&&X(i))return s.flatMap(l=>i.map(u=>l(u)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(W(s)){let i=s;if(i.isEmpty)return m([f.none()]);let l=i.get();if(V(l))return l.map(u=>f(u));throw new Error("Unsupported inner container type for sequence")}if(V(s)){let l=s.toArray();if(l.length===0)return f.none();let u=l[0];if(W(u)){for(let g of l)if(g.isEmpty)return f.none();let h=l.map(g=>g.get());return f(m(h))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {...H("HKT",{map:e,flatten:t,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(e(s,l=>i(l)))}),_type:"HKT"}};w.map=(e,t)=>w().map(e,t);w.flatten=e=>w().flatten(e);w.flatMap=(e,t)=>w().flatMap(e,t);w.ap=(e,t)=>w().ap(e,t);w.sequence=e=>w().sequence(e);w.traverse=(e,t)=>w().traverse(e,t);w.isOption=W;w.isList=V;w.isEither=Q;w.isTry=X;function _r(e){return {id:e,isSame:r=>r.id===e}}var j=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(l){throw i||l}},orElse:i=>N(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>N(()=>i(a())),ap:i=>N(()=>i.get()(a())),mapAsync:async i=>{let l=a(),u=await i(l);return N(()=>u)},flatMap:i=>N(()=>i(a()).get()),flatMapAsync:async i=>{let l=a(),u=await i(l);return N(()=>u.get())},filter:i=>N(()=>{let l=a();return i(l)?b(l):k}),recover:i=>N(()=>{try{return a()}catch(l){return i(l)}}),recoverWith:i=>N(()=>{try{return a()}catch(l){return i(l).get()}}),toOption:()=>{try{return b(a())}catch{return k}},toEither:()=>{try{return T(a())}catch(i){return c(i)}},toEitherWith:i=>{try{return T(a())}catch(l){return c(i(l))}},toTry:()=>de(()=>a()),tap:i=>N(()=>{let l=a();return i(l),l}),tapError:i=>N(()=>{try{return a()}catch(l){throw i(l),l}}),fold:i=>i(a()),foldWith:(i,l)=>{try{return l(a())}catch(u){return i(u)}},foldLeft:i=>l=>l(i,a()),foldRight:i=>l=>l(a(),i),match:i=>i.Lazy(a()),toString:()=>t&&!o?`Lazy(${te(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 l=a();return i(l)?b(l):k}catch{return k}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>t&&!o?`_tag: Lazy
|
|
32
|
-
evaluated: true
|
|
33
|
-
value: ${te(r)}`:`_tag: Lazy
|
|
34
|
-
evaluated: false`,toBinary:()=>Buffer.from(JSON.stringify(t&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false})).toString("base64")}),typeable:"Lazy"}},et={of:e=>j(e),fromValue:e=>j(()=>e),fromOption:(e,t)=>j(()=>e._tag==="Some"?e.value:t()),fromTry:e=>j(()=>e.get()),fromEither:e=>j(()=>e.fold(t=>{throw t},t=>t)),fromPromise:e=>j(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:e=>j(()=>{throw e})},N=E(j,et);var x=e=>({[Symbol.iterator]:()=>e[Symbol.iterator](),map:r=>x(function*(){for(let n of e)yield r(n);}()),flatMap:r=>x(function*(){for(let n of e)yield*r(n);}()),filter:r=>x(function*(){for(let n of e)r(n)&&(yield n);}()),take:r=>x(function*(){let n=0;for(let o of e){if(n>=r)break;yield o,n++;}}()),drop:r=>x(function*(){let n=0;for(let o of e)n>=r&&(yield o),n++;}()),takeWhile:r=>x(function*(){for(let n of e){if(!r(n))break;yield n;}}()),dropWhile:r=>x(function*(){let n=true;for(let o of e)n&&r(o)||(n=false,yield o);}()),concat:r=>x(function*(){yield*e,yield*r;}()),zip:r=>x(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()}}),tt=e=>x(e),rt={empty:()=>x([]),of:e=>x([e]),from:(...e)=>x(e),iterate:(e,t)=>x(function*(){let r=e;for(;;)yield r,r=t(r);}()),generate:e=>x(function*(){for(;;)yield e();}()),range:(e,t,r=1)=>x(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)=>x(function*(){if(t===void 0)for(;;)yield e;else for(let r=0;r<t;r++)yield e;}()),cycle:e=>x(function*(){let t=Array.from(e);if(t.length!==0)for(;;)yield*t;}())},Qr=E(tt,rt);var re=Map;var $=e=>{let t="Map",r={values:new re(e)},n=()=>Array.from(r.values.entries()).map(([p,d$1])=>d([p,d$1])),o=p=>$(new re(r.values).set(p.toArray()[0],p.toArray()[1]).entries()),a=p=>{let d=new re(r.values);return d.delete(p)?$(d.entries()):$(r.values.entries())},s=p=>{let d=p.toArray();return r.values.get(d[0])===d[1]},i=()=>r.values.size,l=p=>$(Array.from(r.values.entries()).map(([d,O])=>[d,p(O)])),u=p=>{let d=$(r.values.entries()).toList();return $(d.flatMap(p).toArray())},h=p=>{let d=[];for(let[O,G]of r.values.entries()){let ee=p.get(O);ee._tag==="Some"&&ee.value&&d.push([O,ee.value(G)]);}return $(d)},g=async p=>{let d=new re;for(let[O,G]of r.values.entries()){let ee=await p(G);for(let Ve of ee.toList()){let[Ke,Ie]=Ve.toArray();d.set(Ke,Ie);}}return $(d.entries())},_=p=>m(n()).reduce(p),U=p=>m(n()).reduceRight(p),A=p=>d=>m(n()).foldLeft(p)(d),D=p=>d=>m(n()).foldRight(p)(d),J=p=>f(r.values.get(p)),q=(p,d)=>f(r.values.get(p)).getOrElse(d),Z=()=>r.values.size===0,ne=(p,d)=>f(r.values.get(p)).orElse(d),oe=(p,d)=>{if(Z())return p();let O=n();if(O.length===0)return p();let G=O[0];return G===void 0?p():d(G)},he=()=>m(n()),y=()=>Y(n()),S=()=>`Map(${n().toString()})`,B=p=>Z()?p.Empty():p.NonEmpty(n());return {_tag:t,[Symbol.iterator]:()=>r.values.entries(),add:o,remove:a,contains:s,get size(){return i()},map:l,ap:h,flatMap:u,flatMapAsync:g,reduce:_,reduceRight:U,foldLeft:A,foldRight:D,fold:oe,match:B,get:J,getOrElse:q,get isEmpty(){return Z()},orElse:ne,toList:he,toSet:y,toString:S,toValue:()=>({_tag:"Map",value:Array.from(r.values.entries())}),pipe:p=>p(Array.from(r.values.entries())),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())}),toYAML:()=>`_tag: Map
|
|
35
|
-
value: ${JSON.stringify(Array.from(r.values.entries()))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())})).toString("base64")})}},nt=e=>$(e),ze={fromJSON:e=>{let t=JSON.parse(e);return me(t.value)},fromYAML:e=>{let r=e.split(`
|
|
36
|
-
`)[1]?.split(": ")[1];if(!r)return me([]);let n=JSON.parse(r);return me(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return ze.fromJSON(t)}},me=E(nt,ze);var ot={default:e=>t=>e(t),when:(e,t)=>r=>e(r)?t(r):void 0};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:y=>r.includes(y),reduce:y=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(y)},reduceRight:y=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(y)},push:y=>z([...r,y]),pop:()=>{if(o())return [z([]),f(null)];let y=[...r],S=y.pop();return [z(y),f(S)]},peek:()=>o()?f(null):f(r[r.length-1]),map:y=>z(r.map(y)),flatMap:y=>o()?z([]):r.reduce((S,B)=>y(B).toArray().reduce((d,O)=>d.push(O),S),z([])),ap:y=>{let S=[];return r.forEach(B=>{y.toArray().forEach(p=>{S.push(p(B));});}),z(S)},flatMapAsync:async y=>o()?z([]):(await Promise.all(r.map(async B=>await y(B)))).reduce((B,p)=>p.toArray().reduce((d,O)=>d.push(O),B),z([])),toList:()=>m(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(y,S)=>{if(o())return y();let B=r[r.length-1];return B!==void 0?S(B):y()},foldLeft:y=>S=>r.reduce(S,y),foldRight:y=>S=>r.reduceRight((B,p)=>S(p,B),y),match:y=>o()?y.Empty():y.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:y=>y([...r]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Stack",value:r}),toYAML:()=>`_tag: Stack
|
|
37
|
-
value: ${JSON.stringify(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Stack",value:r})).toString("base64")})}},at=(e=[])=>z(e),_e={empty:()=>z([]),of:e=>z([e]),fromJSON:e=>{let t=JSON.parse(e);return ge(t.value)},fromYAML:e=>{let r=e.split(`
|
|
38
|
-
`)[1]?.split(": ")[1];if(!r)return ge([]);let n=JSON.parse(r);return ge(n)},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return _e.fromJSON(t)}},ge=E(at,_e);var b=e=>({_tag:"Some",value:e,isEmpty:false,get:()=>e,getOrElse:()=>e,getOrThrow:()=>e,orElse:t=>b(e),orNull:()=>e,orUndefined:()=>e,map:t=>b(t(e)),ap:t=>t._tag==="Some"&&t.value?b(t.value(e)):K,filter(t){return t(e)?b(e):K},count:t=>t(e)?1:0,find:t=>t(e)?b(e):K,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=>T(e),toString:()=>`Some(${te(e)})`,toValue:()=>({_tag:"Some",value:e}),pipe:t=>t(e),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:e}),toYAML:()=>`_tag: Some
|
|
39
|
-
value: ${te(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:e})).toString("base64")})}),K={_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=>K,ap:e=>K,filter(e){return K},count:e=>0,find:e=>K,exists:e=>false,forEach:e=>{},flatMap:e=>K,flatMapAsync:async e=>K,reduce:()=>{},reduceRight:()=>{},fold:(e,t)=>e(),match:e=>e.None(),foldLeft:e=>()=>e,foldRight:e=>()=>e,toList:()=>m([]),contains:()=>false,size:0,toEither:e=>c(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
|
|
40
|
-
value: null`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"None",value:null})).toString("base64")})},k=()=>K,st=e=>e!=null?b(e):k(),Ce={from:e=>f(e),none:()=>k(),fromJSON:e=>{let t=JSON.parse(e);return t._tag==="Some"?b(t.value):k()},fromYAML:e=>{let t=e.split(`
|
|
41
|
-
`),r=t[0]?.split(": ")[1],n=t[1]?.split(": ")[1];if(!r||!n)return k();let o=n==="null"?null:JSON.parse(n);return r==="Some"?b(o):k()},fromBinary:e=>{let t=Buffer.from(e,"base64").toString();return Ce.fromJSON(t)}},f=E(st,Ce);export{me as $,$t as A,Jt as B,Wt as C,Dt as D,Ht as E,H as F,ie as G,R as H,He as I,fe as J,Qe as K,Ue as L,Se as M,Te as N,F as O,Oe as P,le as Q,yr as R,dr as S,gr as T,xr as U,de as V,w as W,_r as X,N as Y,Qr as Z,re as _,E as a,ot as aa,b,ge as ba,k as c,st as d,f as e,Y as f,m as g,T as h,c as i,bt as j,vt as k,wt as l,We as m,je as n,Ut as o,xe as p,M as q,Ye as r,Nt as s,zt as t,_t as u,Ft as v,Ct as w,Vt as x,Kt as y,It as z};//# sourceMappingURL=chunk-JMCOLAJY.mjs.map
|
|
42
|
-
//# sourceMappingURL=chunk-JMCOLAJY.mjs.map
|