functype 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Either-C-PDWX2U.d.ts → Either-i_F6B_IB.d.ts} +7 -2
- package/dist/{Serializable-D9GKEo30.d.ts → Serializable-CK9upOU0.d.ts} +32 -3
- package/dist/branded/index.d.ts +4 -6
- package/dist/branded/index.mjs +1 -1
- package/dist/chunk-55TOOU3K.mjs +43 -0
- package/dist/chunk-55TOOU3K.mjs.map +1 -0
- package/dist/chunk-R2TQJN3P.mjs +2 -0
- package/dist/chunk-R2TQJN3P.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 +28 -20
- 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 +2 -2
- 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 +1 -1
- package/package.json +3 -3
- package/readme/BUNDLE_OPTIMIZATION.md +74 -0
- package/readme/FPromise-Assessment.md +43 -0
- package/readme/HKT.md +110 -0
- package/readme/ROADMAP.md +113 -0
- package/readme/TASK-TODO.md +33 -0
- package/readme/TUPLE-EXAMPLES.md +76 -0
- package/readme/TaskMigration.md +129 -0
- package/readme/ai-guide.md +406 -0
- package/readme/examples.md +2093 -0
- package/readme/quick-reference.md +514 -0
- package/readme/task-error-handling.md +283 -0
- package/readme/tasks.md +203 -0
- package/readme/type-index.md +238 -0
- package/dist/chunk-4EYCKDDF.mjs +0 -43
- package/dist/chunk-4EYCKDDF.mjs.map +0 -1
- package/dist/chunk-V6LFV5LW.mjs +0 -2
- package/dist/chunk-V6LFV5LW.mjs.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
# Functype Type Index
|
|
2
|
+
|
|
3
|
+
This document provides a comprehensive index of all types and data structures in the Functype library, along with the type classes each implements.
|
|
4
|
+
|
|
5
|
+
## Core Data Structures
|
|
6
|
+
|
|
7
|
+
| Data Structure | Description | Import Path |
|
|
8
|
+
| ---------------- | ---------------------------------------------------- | -------------------- |
|
|
9
|
+
| `Option<T>` | Represents a value that may or may not exist | `functype/option` |
|
|
10
|
+
| `Either<L, R>` | Represents a value of one of two possible types | `functype/either` |
|
|
11
|
+
| `Try<T>` | Represents a computation that might throw | `functype/try` |
|
|
12
|
+
| `List<T>` | Immutable list collection | `functype/list` |
|
|
13
|
+
| `Map<K, V>` | Immutable key-value map | `functype/map` |
|
|
14
|
+
| `Set<T>` | Immutable set collection | `functype/set` |
|
|
15
|
+
| `Tuple<...T>` | Type-safe fixed-length array | `functype/tuple` |
|
|
16
|
+
| `FPromise<T, E>` | Enhanced Promise with functional operations | `functype/fpromise` |
|
|
17
|
+
| `Task<T, E>` | Represents sync/async operations with error handling | `functype/core/task` |
|
|
18
|
+
| `Brand<T, B>` | Nominal typing for TypeScript | `functype/branded` |
|
|
19
|
+
| `Identity<T>` | Identity monad | `functype/identity` |
|
|
20
|
+
| `Stack<T>` | Immutable stack collection | `functype/stack` |
|
|
21
|
+
|
|
22
|
+
## Type Class Implementations
|
|
23
|
+
|
|
24
|
+
The table below shows which type classes each data structure implements.
|
|
25
|
+
|
|
26
|
+
| Data Structure | Functor | Foldable | Matchable | Traversable | Serializable | Typeable | Valuable |
|
|
27
|
+
| ---------------- | ------- | -------- | --------- | ----------- | ------------ | -------- | -------- |
|
|
28
|
+
| `Option<T>` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
29
|
+
| `Either<L, R>` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
30
|
+
| `Try<T>` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
31
|
+
| `List<T>` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
32
|
+
| `Map<K, V>` | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
|
|
33
|
+
| `Set<T>` | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
|
|
34
|
+
| `Tuple<...T>` | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ |
|
|
35
|
+
| `FPromise<T, E>` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
|
|
36
|
+
| `Task<T, E>` | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ |
|
|
37
|
+
| `Identity<T>` | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
38
|
+
| `Stack<T>` | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
|
|
39
|
+
|
|
40
|
+
## Type Classes
|
|
41
|
+
|
|
42
|
+
| Type Class | Description | Interface |
|
|
43
|
+
| ---------------- | --------------------------------------------------- | ----------------------------------------------------------------- |
|
|
44
|
+
| `Functor<F>` | Mappable container types | `map<B>(f: (a: A) => B): F<B>` |
|
|
45
|
+
| `Foldable<F>` | Types that can be "folded" to a value | `fold<B>(onEmpty: () => B, onValue: (a: A) => B): B` |
|
|
46
|
+
| `Matchable<F>` | Types that support pattern matching | `match<B>(patterns: { [key: string]: (...args: any[]) => B }): B` |
|
|
47
|
+
| `Traversable<F>` | Types that can be traversed and sequence operations | `traverse<G, B>(f: (a: A) => G<B>): G<F<B>>` |
|
|
48
|
+
| `Serializable` | Types that can be serialized | `toJSON(): unknown` |
|
|
49
|
+
| `Typeable` | Types with runtime type information | `typeName(): string` |
|
|
50
|
+
| `Valuable` | Types with value equality comparison | `equals(other: unknown): boolean` |
|
|
51
|
+
|
|
52
|
+
## Detailed Type Constructors
|
|
53
|
+
|
|
54
|
+
### Option<T>
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
type Option<T> = Some<T> | None
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Variants:**
|
|
61
|
+
|
|
62
|
+
- `Some<T>` - Contains a value of type T
|
|
63
|
+
- `None` - Represents no value
|
|
64
|
+
|
|
65
|
+
### Either<L, R>
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
type Either<L, R> = Left<L, R> | Right<L, R>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Variants:**
|
|
72
|
+
|
|
73
|
+
- `Left<L, R>` - Contains a value of type L (typically an error)
|
|
74
|
+
- `Right<L, R>` - Contains a value of type R (success value)
|
|
75
|
+
|
|
76
|
+
### Try<T>
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
type Try<T> = Success<T> | Failure<Error>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Variants:**
|
|
83
|
+
|
|
84
|
+
- `Success<T>` - Contains a successfully computed value
|
|
85
|
+
- `Failure<Error>` - Contains an error from a failed computation
|
|
86
|
+
|
|
87
|
+
### List<T>
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
type List<T> = {
|
|
91
|
+
/* ... methods ... */
|
|
92
|
+
[Symbol.iterator](): Iterator<T>
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Immutable list supporting standard collection operations.
|
|
97
|
+
|
|
98
|
+
### Map<K, V>
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
type Map<K, V> = {
|
|
102
|
+
/* ... methods ... */
|
|
103
|
+
[Symbol.iterator](): Iterator<[K, V]>
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Immutable key-value map.
|
|
108
|
+
|
|
109
|
+
### Set<T>
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
type Set<T> = {
|
|
113
|
+
/* ... methods ... */
|
|
114
|
+
[Symbol.iterator](): Iterator<T>
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Immutable set with no duplicate elements.
|
|
119
|
+
|
|
120
|
+
### FPromise<T, E>
|
|
121
|
+
|
|
122
|
+
```typescript
|
|
123
|
+
type FPromise<T, E> = {
|
|
124
|
+
/* ... methods ... */
|
|
125
|
+
toPromise(): Promise<T>
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Enhanced Promise with better error handling.
|
|
130
|
+
|
|
131
|
+
### Task<T, E>
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
type Task<T, E> = {
|
|
135
|
+
/* ... methods ... */
|
|
136
|
+
then(onFulfilled: (value: T) => any): Promise<any>
|
|
137
|
+
catch(onRejected: (reason: E) => any): Promise<any>
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Represents synchronous and asynchronous operations.
|
|
142
|
+
|
|
143
|
+
### Identity<T>
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
type Identity<T> = {
|
|
147
|
+
/* ... methods ... */
|
|
148
|
+
value: T
|
|
149
|
+
}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Identity monad that simply wraps a value.
|
|
153
|
+
|
|
154
|
+
## Higher-Kinded Types
|
|
155
|
+
|
|
156
|
+
Functype provides higher-kinded type emulation through the following interfaces:
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
// Base higher-kinded type
|
|
160
|
+
interface HKT<URI, A> {
|
|
161
|
+
readonly _URI: URI
|
|
162
|
+
readonly _A: A
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Type-level functions
|
|
166
|
+
interface URItoKind<A> {
|
|
167
|
+
readonly Option: Option<A>
|
|
168
|
+
readonly Either: Either<unknown, A>
|
|
169
|
+
readonly List: List<A>
|
|
170
|
+
readonly Try: Try<A>
|
|
171
|
+
readonly Identity: Identity<A>
|
|
172
|
+
// ... other types ...
|
|
173
|
+
}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
This allows for more advanced type operations and generic algorithms across containers.
|
|
177
|
+
|
|
178
|
+
## Type Utils
|
|
179
|
+
|
|
180
|
+
| Utility | Description | Import Path |
|
|
181
|
+
| ---------------- | ----------------------------------------- | -------------------- |
|
|
182
|
+
| `FoldableUtils` | Utilities for working with Foldable types | `functype/foldable` |
|
|
183
|
+
| `MatchableUtils` | Utilities for pattern matching | `functype/matchable` |
|
|
184
|
+
| `pipe` | Function composition utility | `functype/pipe` |
|
|
185
|
+
|
|
186
|
+
## Common Type Patterns
|
|
187
|
+
|
|
188
|
+
### Option Constructors
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
Option(value) // Some(value) if value is non-null, None otherwise
|
|
192
|
+
Some(value) // Some(value) - explicitly create Some variant
|
|
193
|
+
None() // None - explicitly create None variant
|
|
194
|
+
Option.from(value) // Alias for Option(value)
|
|
195
|
+
Option.none() // Alias for None()
|
|
196
|
+
Option.some(value) // Alias for Some(value)
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Either Constructors
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
Right<L, R>(value) // Right variant with value
|
|
203
|
+
Left<L, R>(error) // Left variant with error
|
|
204
|
+
Either.right<L, R>(value) // Alias for Right
|
|
205
|
+
Either.left<L, R>(error) // Alias for Left
|
|
206
|
+
Either.fromNullable(value, error) // Right if value is non-null, Left with error otherwise
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Try Constructors
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
Try(() => computation) // Success or Failure depending on if computation throws
|
|
213
|
+
Success(value) // Explicitly create Success
|
|
214
|
+
Failure(error) // Explicitly create Failure
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### List Constructors
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
List([1, 2, 3]) // Create from array
|
|
221
|
+
List.empty<number>() // Empty list with specified type
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### Type Class Composition
|
|
225
|
+
|
|
226
|
+
Example of composing operations using type classes:
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
// Define a function that works with any Functor
|
|
230
|
+
function double<F extends HKT<any, number>>(functor: Functor<F, number>): F {
|
|
231
|
+
return functor.map((x) => x * 2)
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// Works with any Functor
|
|
235
|
+
double(Option(5)) // Some(10)
|
|
236
|
+
double(Either.right(5)) // Right(10)
|
|
237
|
+
double(List([1, 2, 3])) // List([2, 4, 6])
|
|
238
|
+
```
|
package/dist/chunk-4EYCKDDF.mjs
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import {a,b as b$1}from'./chunk-BQJB6CCW.mjs';import {a as a$1}from'./chunk-V6LFV5LW.mjs';import se from'safe-stable-stringify';var J=Set;var P=t=>{let e=new J(t),r={_tag:"Set",[Symbol.iterator]:()=>e[Symbol.iterator](),add:n=>P([...e,n]),remove:n=>{let o=new J(e);return o.delete(n),P(o)},contains:n=>e.has(n),has:n=>e.has(n),map:n=>P(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 P(o)},flatMap:n=>{let o=new J;for(let a of e)for(let s of n(a))o.add(s);return P(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 P(o)},fold:(n,o)=>{if(e.size===0)return n();let a=Array.from(e);if(a.length===0)return n();let s=a[0];return s===void 0?n():o(s)},foldLeft:n=>o=>{let a=n;for(let s of e)a=o(a,s);return a},foldRight:n=>o=>Array.from(e).reduceRight((s,i)=>o(i,s),n),get size(){return e.size},get isEmpty(){return e.size===0},reduce:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduce empty Set");return o.reduce(n)},reduceRight:n=>{let o=Array.from(e);if(o.length===0)throw new Error("Cannot reduceRight empty Set");return o.reduceRight(n)},count:n=>{let o=0;for(let a of e)n(a)&&o++;return o},find:n=>{for(let o of e)if(n(o))return f(o);return f(null)},exists:n=>{for(let o of e)if(n(o))return true;return false},forEach:n=>{e.forEach(n);},filter:n=>{let o=new J;for(let a of e)n(a)&&o.add(a);return P(o)},filterNot:n=>{let o=new J;for(let a of e)n(a)||o.add(a);return P(o)},drop:n=>P(Array.from(e).slice(n)),dropRight:n=>P(Array.from(e).slice(0,-n)),dropWhile:n=>{let o=Array.from(e),a=o.findIndex(s=>!n(s));return P(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 P(n)},get head(){return Array.from(e)[0]},get headOption(){let n=Array.from(e)[0];return f(n)},toList:()=>m(Array.from(e)),toSet:()=>r,toArray:()=>Array.from(e),toString:()=>`Set(${Array.from(e).toString()})`,toValue:()=>({_tag:"Set",value:Array.from(e)}),pipe:n=>n(Array.from(e)),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Set",value:Array.from(e)}),toYAML:()=>`_tag: Set
|
|
2
|
-
value: ${JSON.stringify(Array.from(e))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Set",value:Array.from(e)})).toString("base64")})};return r},qe=t=>P(t),we={fromJSON:t=>{let e=JSON.parse(t);return Q(e.value)},fromYAML:t=>{let r=t.split(`
|
|
3
|
-
`)[1]?.split(": ")[1];if(!r)return Q([]);let n=JSON.parse(r);return Q(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return we.fromJSON(e)}},Q=a(qe,we);function ce({_tag:t,impl:e}){return {...e,_tag:t}}function ye(t,e){return !t||typeof t!="object"||!("_tag"in t)?false:e?t._tag===e:true}var U=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=>U(e.map(n)),ap:n=>U(e.flatMap(o=>Array.from(n).map(a=>a(o)))),flatMap:n=>U(e.flatMap(o=>Array.from(n(o)))),flatMapAsync:async n=>{let o=await Promise.all(e.map(async a=>await n(a)));return U(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=>U(e.filter(n)),filterNot:n=>U(e.filter(o=>!n(o))),filterType:n=>U(e.filter(o=>ye(o,n))),find:(n,o)=>{let a=e.find(s=>n(s)&&(o?ye(s,o):true));return f(a)},get head(){return e[0]},get headOption(){return e.length>0?f(e[0]):b()},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=>U(e.filter(o=>o!==n)),removeAt:n=>n<0||n>=e.length?r:U([...e.slice(0,n),...e.slice(n+1)]),add:n=>U([...e,n]),get:n=>f(e[n]),concat:n=>U([...e,...n.toArray()]),drop:n=>U(e.slice(n)),dropRight:n=>U(e.slice(0,-n)),dropWhile:n=>U(e.slice(e.findIndex(o=>!n(o)))),flatten:()=>U(e.flatMap(n=>Array.isArray(n)?n:[n])),toList:()=>r,toSet:()=>Q(e),toString:()=>`List(${se(e)})`,toValue:()=>({_tag:"List",value:e}),pipe:n=>n([...e]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"List",value:e}),toYAML:()=>`_tag: List
|
|
4
|
-
value: ${se(e)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"List",value:e})).toString("base64")})};return r},Ye=t=>U(t),Se={fromJSON:t=>{let e=JSON.parse(t);return m(e.value)},fromYAML:t=>{let r=t.split(`
|
|
5
|
-
`)[1]?.split(": ")[1];if(!r)return m([]);let n=JSON.parse(r);return m(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Se.fromJSON(e)}},m=a(Ye,Se);var Be=t=>({_tag:"Right",value:t,isLeft:()=>false,isRight:()=>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:()=>w(t),toList:()=>m([t]),toJSON:function(){return {_tag:"Right",value:t}},toString:()=>`Right(${se(t)})`,[Symbol.iterator]:function*(){yield t;},yield:function*(){yield t;},traverse:e=>{let r=e(t);return r.isLeft()?p(r.value):c([r.value])},lazyMap:function*(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),then:(e,r)=>Promise.resolve(t).then(e,r),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: ${se(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)?w(t):b(),exists:e=>e(t),forEach:e=>e(t)}),Oe=t=>({_tag:"Left",value:t,isLeft:()=>true,isRight:()=>false,get:()=>{throw new Error(`Cannot call get() on Left(${se(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:()=>b(),toList:()=>m(),toJSON:function(){return {_tag:"Left",value:t}},toString:()=>`Left(${se(t)})`,[Symbol.iterator]:function*(){},yield:function*(){},traverse:e=>p(t),lazyMap:function*(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),then:(e,r)=>Promise.reject(t).then(null,r),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: ${se(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=>b(),exists:e=>false,forEach:e=>{}}),c=t=>Be(t),p=t=>Oe(t),_t=t=>t.isRight(),It=t=>t.isLeft(),Mt=(t,e)=>{try{return c(t())}catch(r){return p(e(r))}},Qe=t=>Be(t);console.assert(Qe);var He=t=>Oe(t);console.assert(He);var zt=async(t,e)=>{try{let r=await t();return c(r)}catch(r){return p(e(r))}},ve={sequence:t=>{let e=[];for(let r of t){if(r.isLeft())return p(r.value);e.push(r.value);}return c(e)},traverse:(t,e)=>ve.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 ve.fromJSON(e)}};function I(t,e){return {brand:t,validate:e,of:r=>e(r)?f(a$1(t,r)):f.none(),from:r=>e(r)?c(a$1(t,r)):p(`Invalid ${t}: validation failed`),unsafeOf:r=>{if(!e(r))throw new Error(`Invalid ${t}: validation failed`);return a$1(t,r)},is:r=>{try{return e(r)}catch{return false}},refine:(r,n)=>I(r,o=>e(o.unbrand())&&n(o))}}var Ge=I("PositiveNumber",t=>t>0),Dt=I("NonNegativeNumber",t=>t>=0),Jt=I("IntegerNumber",t=>Number.isInteger(t)),Wt=Ge.refine("PositiveInteger",t=>Number.isInteger(t)),jt=I("NonEmptyString",t=>t.length>0),qt=I("EmailAddress",t=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)),Yt=I("UrlString",t=>{try{return new URL(t),!0}catch{return !1}}),Qt=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)),Ht=I("ISO8601Date",t=>!isNaN(Date.parse(t))&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/.test(t));function Gt(t,e,r){return I(t,n=>n>=e&&n<=r)}function Zt(t,e,r){return I(t,n=>n.length>=e&&n.length<=r)}function Xt(t,e){return I(t,r=>e.test(r))}var me=t=>{let e=n=>typeof n=="function"?n():n,r={when:(n,o)=>t.resolved?r:n?me({resolved:true,value:e(o)}):r,elseWhen:(n,o)=>t.resolved?r:n?me({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},Pe=()=>me({resolved:false}),Ze={of:()=>Pe(),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}},rr=a(Pe,Ze);var ee=(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 ee(o,n)}):false,H=t=>{let e=(o,a)=>typeof o=="function"?o(a):o,r=()=>{for(let{pattern:o,result:a}of t.patterns)if(ee(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 ee(t.value,o)?H({...s,resolved:true,result:e(a,t.value)}):H(s)},caseValue:(o,a)=>{if(t.resolved)return n;if(t.value===o){let s=typeof a=="function"?a():a;return H({...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 H({...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(ee(t.value,s))return H({...t,resolved:true,result:e(a,t.value),patterns:[...t.patterns,{pattern:s,result:a}]});return H({...t,patterns:[...t.patterns,...o.map(s=>({pattern:s,result:a}))]})},default:o=>t.resolved?t.result:e(o,t.value),exhaustive:()=>{let o=r();if(!o.matched)throw new Error(`Non-exhaustive match. No pattern matched value: ${JSON.stringify(t.value)}`);return o.result},getOrThrow:o=>{let a=r();if(!a.matched)throw new Error(o||`No matching pattern for value: ${JSON.stringify(t.value)}`);return a.result},toOption:()=>{let o=r();return o.matched?f(o.result):f.none()}};return n},Xe=t=>H({value:t,resolved:false,patterns:[]}),et={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(ee(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(ee(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}},sr=a(Xe,et);function te(t,e){return {...ce({_tag:t,impl:e}),toString(){return `${t}()`}}}var Te="Throwable",L=class t extends Error{constructor(r,n){super(r,{cause:n?.cause});this._tag=Te;this.name=n?.taskInfo?.name||Te,Object.defineProperties(this,{_tag:{value:Te,writable:false,configurable:false},data:{value:n?.data,writable:false,configurable:false},taskInfo:{value:n?.taskInfo,writable:false,configurable:false},name:{value:n?.taskInfo?.name||Te,writable:false,configurable:false}}),n?.cause&&Object.defineProperty(this,"cause",{value:n.cause,writable:false,configurable:false}),n?.stack?this.stack=n.stack:Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor);}static apply(r,n,o){if(r instanceof Error){let u=new t(r.message,{data:n,cause:r.cause||void 0,stack:r.stack||void 0,taskInfo:o});for(let l of Object.keys(r))l in u||(u[l]=r[l]);return u}if(r&&typeof r=="object"){let u=r,l=typeof u.message=="string"?u.message:typeof u.error=="string"?u.error:`Object error: ${JSON.stringify(u,Object.getOwnPropertyNames(u).filter(g=>u[g]!==void 0))}`,E=new t(l,{data:n||u,taskInfo:o});for(let g of Object.keys(u))g in E||(E[g]=u[g]);return E}if(typeof r=="function"){let u=r.name||"anonymous function",l=r.toString().substring(0,100)+(r.toString().length>100?"...":"");return new 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 R=t=>{let e=new Promise((r,n)=>{try{t(r,n);}catch(o){n(o);}});return {_tag:"FPromise",map:r=>R((n,o)=>{e.then(a=>{try{n(r(a));}catch(s){o(s);}}).catch(o);}),flatMap:r=>R((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=>R((n,o)=>{e.then(a=>{try{r(a),n(a);}catch(s){o(s);}}).catch(o);}),mapError:r=>R((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=>R((n,o)=>{e.then(n).catch(a=>{try{r(a),o(a);}catch(s){o(s);}});}),recover:r=>R(n=>{e.then(n).catch(()=>n(r));}),recoverWith:r=>R(n=>{e.then(n).catch(o=>{try{n(r(o));}catch{n(null);}});}),recoverWithF:r=>R((n,o)=>{e.then(n).catch(a=>{try{r(a).then(n,o);}catch(s){o(s);}});}),filterError:(r,n)=>R((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=>R((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:()=>e,fold:(r,n)=>R((o,a)=>{e.then(s=>{try{o(n(s));}catch(i){a(i);}}).catch(s=>{try{o(r(s));}catch(i){a(i);}});})}},tt={resolve:t=>R(e=>e(t)),reject:t=>R((e,r)=>r(t)),from:t=>R((e,r)=>{t.then(e).catch(r);}),fromEither:t=>t.isRight()?R(e=>e(t.value)):R((e,r)=>r(t.value)),all:t=>R((e,r)=>{Promise.all(t.map(n=>n instanceof Promise?n:Promise.resolve(n))).then(e).catch(r);}),allSettled:t=>R(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=>R((e,r)=>{Promise.race(t).then(e,r);}),any:t=>R((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 R((a,s)=>{let i=0,u=()=>{t().toPromise().then(a).catch(l=>{if(i++,i<=r&&o(l,i)){let E=n*Math.pow(2,i-1);setTimeout(u,E);}else s(l);});};u();})}},ge=a(R,tt);function rt(t){return t instanceof Error&&typeof t=="object"&&true&&t._tag==="Throwable"}var Ne=(t,e,r)=>{let n=r?.name||"TaskException",o=r?.description||"Unspecified TaskException",a={name:n,description:o},s=L.apply(t,e,a);return {...te("TaskException",p(s)),_task:a}},_e=(t,e)=>{let r=e?.name||"TaskResult",n=e?.description||"Unspecified TaskResult";return {...te("TaskResult",c(t)),_task:{name:r,description:n}}},Ee=()=>{let t=new AbortController,e=[];return {token:{get isCancelled(){return t.signal.aborted},get signal(){return t.signal},onCancel(n){t.signal.aborted?n():e.push(n);}},cancel(){t.signal.aborted||(t.abort(),e.forEach(n=>{try{n();}catch(o){console.error("Error in cancellation callback:",o);}}));}}},nt=t=>{let e=t?.name||"Task",r=t?.description||"",n={Async:(o,a=u=>u,s=()=>{},i)=>ge(async(u,l)=>{let E=false,g=null,F=()=>{};if(i){if(i.isCancelled){try{await s();}catch(A){l(L.apply(A,void 0,{name:e,description:r}));return}l(L.apply(new Error("Task was cancelled before execution started"),void 0,{name:e,description:r}));return}let v=()=>{E=true,g=new Error("Task was cancelled during execution");};i.onCancel(v),F=()=>{};}try{let v=await o();if(E){try{await s();}catch(A){l(L.apply(A,void 0,{name:e,description:r}));return}l(g?L.apply(g,void 0,{name:e,description:r}):L.apply(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}try{await s();}catch(A){l(L.apply(A,void 0,{name:e,description:r}));return}u(v);}catch(v){if(E){try{await s();}catch(A){l(L.apply(A,void 0,{name:e,description:r}));return}l(g?L.apply(g,void 0,{name:e,description:r}):L.apply(new Error("Task was cancelled during execution"),void 0,{name:e,description:r}));return}try{await s();}catch(A){l(L.apply(A,void 0,{name:e,description:r}));return}try{if(v instanceof Error&&rt(v)){let A=new Error(`${e}: ${v.message}`),G=L.apply(A,void 0,{name:e,description:r});Object.defineProperty(G,"cause",{value:v,writable:!1,configurable:!1}),Promise.resolve().then(()=>{try{a(v);}catch(j){console.error("Error in error handler:",j);}}),l(G);}else {let A=await a(v);l(L.apply(A,void 0,{name:e,description:r}));}}catch(A){l(L.apply(A,void 0,{name:e,description:r}));}}finally{F();}}),Sync:(o,a=i=>i,s=()=>{})=>{try{return _e(o(),{name:e,description:r})}catch(i){return Ne(a(i),void 0,{name:e,description:r})}finally{s();}},AsyncWithProgress:(o,a,s=l=>l,i=()=>{},u)=>{let l=E=>{let g=Math.max(0,Math.min(100,E));g<=100&&a(g);};return n.Async(()=>o(l),s,i,u)}};return {...te("Task",n),_type:"Task"}},Ie={success:(t,e)=>_e(t,e),fail:(t,e,r)=>Ne(t,e,r),getErrorChain:t=>{if(!t)return [];let e=[t],r=t;for(;r&&r.cause;){let n=r.cause;if(n)e.push(n),r=n;else break;if(e.length>100)break}return e},formatErrorChain:(t,e)=>{let r=Ie.getErrorChain(t),n=e?.separator||`
|
|
9
|
-
`;return r.map((o,a)=>{if(!o)return `${a>0?"\u21B3 ":""}Unknown error`;let s=o.taskInfo,i=e?.includeTasks&&s?.name?`[${s.name}] `:"",u=o.message||"No message",l=`${a>0?"\u21B3 ":""}${i}${u}`;return e?.includeStackTrace&&o.stack&&(l+=`
|
|
10
|
-
${o.stack.split(`
|
|
11
|
-
`).slice(1).join(`
|
|
12
|
-
`)}`),l}).join(n)},fromPromise:(t,e)=>(...r)=>V(e||{name:"PromiseTask",description:"Task from Promise"}).Async(()=>t(...r),o=>o),toPromise:t=>new Promise((e,r)=>{t.isRight()?e(t.value):r(t.value);}),race:(t,e,r)=>{let n=r?.name||"TaskRace",o=r?.description||"Race between multiple tasks";return V({name:n,description:o}).Async(async()=>{let s=[...t],i;if(typeof e=="number"&&e>0){let u=ge((l,E)=>{i=setTimeout(()=>{E(new Error(`Task race timed out after ${e}ms`));},e);});s.push(u);}try{return await new Promise((u,l)=>{s.forEach(E=>{E.then(g=>u(g),g=>l(g));});})}finally{i&&clearTimeout(i);}},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)=>V(o).Async(()=>new Promise((s,i)=>{try{t(...a,(u,l)=>{u?i(u):s(l);});}catch(u){i(u);}}),s=>s)},createCancellationTokenSource:Ee,cancellable:(t,e)=>{let r=Ee();return {task:V(e).Async(()=>t(r.token),o=>o,()=>{},r.token),cancel:()=>r.cancel()}},withProgress:(t,e=()=>{},r)=>{let n=Ee(),o=0,a=i=>{o=Math.max(0,Math.min(100,i)),e(o);};return {task:V(r).Async(()=>t(a,n.token),i=>i,()=>{},n.token),cancel:()=>n.cancel(),currentProgress:()=>o}}},V=a(nt,Ie);var Me={includeTasks:true,includeStackTrace:false,separator:`
|
|
13
|
-
`,includeData:false,maxStackFrames:3,title:"Error",colors:false};function ze(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"?fe(n):n},2)}function fe(t){if(!t)return "";if(!t)return t;let e=t.split(`
|
|
14
|
-
`),r=e[0],n=e.slice(1).map(o=>o.trim());return [r,...n].join(`
|
|
15
|
-
`)}function br(t,e){let r={...Me,...e},n=t instanceof Error?t:L.apply(t),o=V?.getErrorChain?V.getErrorChain(n):[n],a=r.colors?`\x1B[31m${r.title}:\x1B[0m ${n.message}`:`${r.title}: ${n.message}`,s=o.map((u,l)=>{let E=" ".repeat(l),g=l>0?"\u21B3 ":"",F=u.taskInfo,v=r.includeTasks&&F?.name?r.colors?`\x1B[36m[${F.name}]\x1B[0m `:`[${F.name}] `:"",A=`${E}${g}${v}${u.message}`;if(r.includeStackTrace&&u.stack){let j=fe(u.stack).split(`
|
|
16
|
-
`).slice(1),Z=r.maxStackFrames??Me.maxStackFrames??3,ue=j.slice(0,Z).map(le=>`${E} ${r.colors?"\x1B[90m":""}${le}${r.colors?"\x1B[0m":""}`).join(`
|
|
17
|
-
`);A+=`
|
|
18
|
-
${ue}`,j.length>Z&&(A+=`
|
|
19
|
-
${E} ${r.colors?"\x1B[90m":""}...${j.length-Z} more stack frames${r.colors?"\x1B[0m":""}`);}return A}).join(r.separator),i=`${a}
|
|
20
|
-
|
|
21
|
-
${s}`;if(r.includeData){let u=n.data;if(u){let l=r.colors?`
|
|
22
|
-
|
|
23
|
-
\x1B[33mContext:\x1B[0m
|
|
24
|
-
${ze(u)}`:`
|
|
25
|
-
|
|
26
|
-
Context:
|
|
27
|
-
${ze(u)}`;i+=l;}}return i}function kr(){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?fe(r.stack):void 0};if(r.taskInfo&&(n.taskInfo=r.taskInfo),r.data&&(n.data=r.data),typeof V?.getErrorChain=="function")try{let o=V.getErrorChain(r);o.length>1&&(n.errorChain=V.formatErrorChain(r,{includeTasks:!0}),n.structuredErrorChain=o.map(a=>({message:a.message,name:a.name,taskInfo:a.taskInfo,stack:a.stack?fe(a.stack):void 0})));}catch{}return Object.getOwnPropertyNames(r).forEach(o=>{if(!n[o]){let a=r[o];n[o]=a;}}),n}}var Ur=t=>{let e=new Error(t);return e.name="ParseError",e};var C=(t,e,r,n)=>{let o=L.apply(e,r,{name:t,description:e});return Object.assign(o,{code:t,message:e,status:ot(t),context:r,timestamp:new Date().toISOString(),traceId:n?.traceId})},ot=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],at={validation:(t,e,r)=>C("VALIDATION_FAILED",`Validation failed: ${t} ${r}`,{field:t,value:e,rule:r}),network:(t,e,r)=>C("NETWORK_ERROR",`Network error: ${e} ${t}${r?` (${r})`:""}`,{url:t,method:e,statusCode:r}),auth:(t,e)=>C("AUTH_REQUIRED",`Authentication required: ${t}${e?` (role: ${e})`:""}`,{resource:t,requiredRole:e}),notFound:(t,e)=>C("NOT_FOUND",`Not found: ${t} with id ${e}`,{resource:t,id:e}),permission:(t,e,r)=>C("PERMISSION_DENIED",`Permission denied: cannot ${t} ${e}`,{action:t,resource:e,userId:r}),rateLimit:(t,e,r)=>C("RATE_LIMITED",`Rate limit exceeded: ${t} requests per ${e}`,{limit:t,window:e,retryAfter:r}),internal:t=>C("INTERNAL_ERROR",`Internal server error: ${t}`,{errorId:t,timestamp:new Date().toISOString()}),badRequest:(t,e)=>C("BAD_REQUEST",`Bad request: ${t}`,{reason:t,expected:e}),conflict:(t,e)=>C("CONFLICT",`Conflict: ${t} already exists with value ${e}`,{resource:t,conflictingValue:e}),timeout:(t,e)=>C("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(C,at);var k=t=>{let e={_tag:"LazyList",[Symbol.iterator]:()=>t[Symbol.iterator](),map:r=>k(function*(){for(let n of t)yield r(n);}()),flatMap:r=>k(function*(){for(let n of t)yield*r(n);}()),filter:r=>k(function*(){for(let n of t)r(n)&&(yield n);}()),take:r=>k(function*(){let n=0;for(let o of t){if(n>=r)break;yield o,n++;}}()),drop:r=>k(function*(){let n=0;for(let o of t)n>=r&&(yield o),n++;}()),takeWhile:r=>k(function*(){for(let n of t){if(!r(n))break;yield n;}}()),dropWhile:r=>k(function*(){let n=true;for(let o of t)n&&r(o)||(n=false,yield o);}()),concat:r=>k(function*(){yield*t,yield*r;}()),zip:r=>k(function*(){let n=t[Symbol.iterator](),o=r[Symbol.iterator]();for(;;){let a=n.next(),s=o.next();if(a.done||s.done)break;yield [a.value,s.value];}}()),toList:()=>m(Array.from(t)),toArray:()=>Array.from(t),forEach:r=>{for(let n of t)r(n);},reduce:(r,n)=>{let o=n;for(let a of t)o=r(o,a);return o},find:r=>{for(let n of t)if(r(n))return f(n);return f.none()},some:r=>{for(let n of t)if(r(n))return true;return false},every:r=>{for(let n of t)if(!r(n))return false;return true},count:()=>{let r=0;for(let n of t)r++;return r},first:()=>{let n=t[Symbol.iterator]().next();return n.done?f.none():f(n.value)},last:()=>{let r,n=false;for(let o of t)r=o,n=true;return n?f(r):f.none()},fold:(r,n)=>{let a=t[Symbol.iterator]().next();return a.done?r():n(a.value)},foldLeft:r=>n=>{let o=r;for(let a of t)o=n(o,a);return o},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: ${se(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"LazyList",value:r})).toString("base64")}},toString:()=>{let n=[],o=0,a=false;for(let i of t)if(o<10)n.push(i),o++;else {a=true;break}let s=n.map(i=>String(i)).join(", ");return a?`LazyList(${s}, ...)`:`LazyList(${s})`}};return e},it=t=>k(t),ut={empty:()=>k([]),of:t=>k([t]),from:(...t)=>k(t),iterate:(t,e)=>k(function*(){let r=t;for(;;)yield r,r=e(r);}()),generate:t=>k(function*(){for(;;)yield t();}()),range:(t,e,r=1)=>k(function*(){if(r===0)throw new Error("Step cannot be zero");if(r>0)for(let n=t;n<e;n+=r)yield n;else for(let n=t;n>e;n+=r)yield n;}()),repeat:(t,e)=>k(function*(){if(e===void 0)for(;;)yield t;else for(let r=0;r<e;r++)yield t;}()),cycle:t=>k(function*(){let e=Array.from(t);if(e.length!==0)for(;;)yield*e;}())},Ir=a(it,ut);var N={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(E=>E,()=>{throw new Error("Should not be left")}),l=x.validation(o,s,u.context.rule);r.push(l);}else n[o]=i.get();}return r.length>0?p(m(r)):c(n)}},lt={...N,validators:{email:N.rule("email"),url:N.rule("url"),uuid:N.rule("uuid"),required:N.rule("required"),numeric:N.rule("numeric"),positiveNumber:N.combine(N.rule("numeric"),N.rule("min:0")),nonEmptyString:N.combine(N.rule("required"),N.custom(t=>typeof t=="string"&&t.trim().length>0,"must not be empty"))}},$r=Object.assign(N.rule,lt);var Yr={toOption:t=>t.fold(()=>b(),e=>w(e)),toList:t=>t.fold(()=>m([]),e=>m([e])),toEither:(t,e)=>t.fold(()=>p(e),r=>c(r)),isEmpty:t=>t.fold(()=>true,()=>false),size:t=>t.fold(()=>0,()=>1)};var de=t=>({_tag:"Success",error:void 0,isSuccess:()=>true,isFailure:()=>false,get:()=>t,getOrElse:e=>t,getOrThrow:e=>t,orElse:e=>de(t),orNull:()=>t,orUndefined:()=>t,orThrow:e=>t,toEither:()=>c(t),map:e=>Ae(()=>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(${se(t)})`,toValue:()=>({_tag:"Success",value:t}),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Success",value:t}),toYAML:()=>`_tag: Success
|
|
29
|
-
value: ${se(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Success",value:t})).toString("base64")}),get size(){return 1},get isEmpty(){return false},contains:e=>t===e,reduce:e=>t,reduceRight:e=>t,count:e=>e(t)?1:0,find:e=>e(t)?f(t):f(void 0),exists:e=>e(t),forEach:e=>e(t)}),$=t=>({_tag:"Failure",error:t,isSuccess:()=>false,isFailure:()=>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=>$(t),ap:e=>$(t),flatMap:e=>$(t),flatMapAsync:async e=>$(t),fold:(e,r)=>e(t),match:e=>e.Failure(t),foldLeft:e=>r=>e,foldRight:e=>r=>e,toString:()=>`Failure(${se(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=>f(null),exists:e=>false,forEach:e=>{}}),pt=t=>{try{return de(t())}catch(e){return $(e instanceof Error?e:new Error(String(e)))}},Fe={fromJSON:t=>{let e=JSON.parse(t);if(e._tag==="Success")return de(e.value);{let r=new Error(e.error);return e.stack&&(r.stack=e.stack),$(r)}},fromYAML:t=>{let e=t.split(`
|
|
32
|
-
`),r=e[0]?.split(": ")[1];if(!r)return $(new Error("Invalid YAML format for Try"));if(r==="Success"){let n=e[1]?.split(": ")[1];if(!n)return $(new Error("Invalid YAML format for Try Success"));let o=JSON.parse(n);return de(o)}else {let n=e[1]?.split(": ")[1];if(!n)return $(new Error("Invalid YAML format for Try Failure"));let o=e[2]?.split(": "),a=o&&o.length>1?o.slice(1).join(": "):void 0,s=new Error(n);return a&&(s.stack=a),$(s)}},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Fe.fromJSON(e)}},Ae=a(pt,Fe);var q=t=>t!==null&&typeof t=="object"&&(t._tag==="Some"||t._tag==="None"),K=t=>t!==null&&typeof t=="object"&&t._tag==="List",re=t=>t!==null&&typeof t=="object"&&(t._tag==="Left"||t._tag==="Right"),ne=t=>t!==null&&typeof t=="object"&&(t._tag==="Success"||t._tag==="Failure"),S=()=>{let t=(s,i)=>{if(q(s))return s.map(u=>i(u));if(K(s))return s.map(u=>i(u));if(re(s))return s.map(u=>i(u));if(ne(s))return s.map(u=>i(u));throw new Error(`Unsupported functor type: ${JSON.stringify(s)}`)},e=s=>{if(q(s))return s.get();if(K(s)){let i=s.toArray();if(i.length>0&&K(i[0])){let u=[];for(let l of i)K(l)&&u.push(...l.toArray());return m(u)}return s.flatten()}if(re(s))return s.isRight()?s.fold(()=>null,i=>i):s;if(ne(s))return s.isSuccess()?s.get():s;throw new Error(`Unsupported functor type for flatten: ${JSON.stringify(s)}`)},r=(s,i)=>{if(q(s))return s.flatMap(u=>i(u));if(K(s))return s.flatMap(u=>i(u));if(re(s))return s.flatMap(u=>i(u));if(ne(s))return s.flatMap(u=>i(u));throw new Error(`Unsupported functor type for flatMap: ${JSON.stringify(s)}`)},n=(s,i)=>{if(q(s)&&q(i))return s.flatMap(u=>i.map(l=>u(l)));if(K(s)&&K(i))return s.flatMap(u=>i.map(l=>u(l)));if(re(s)&&re(i))return s.flatMap(u=>i.map(l=>u(l)));if(ne(s)&&ne(i))return s.flatMap(u=>i.map(l=>u(l)));throw new Error(`Unsupported functor type for ap: ${JSON.stringify(s)}`)},o=s=>{if(q(s)){let i=s;if(i.isEmpty)return m([f.none()]);let u=i.get();if(K(u))return u.map(l=>f(l));throw new Error("Unsupported inner container type for sequence")}if(K(s)){let u=s.toArray();if(u.length===0)return f.none();let l=u[0];if(q(l)){for(let g of u)if(g.isEmpty)return f.none();let E=u.map(g=>g.get());return f(m(E))}throw new Error("Unsupported inner container type for sequence")}throw new Error(`Unsupported outer container type for sequence: ${JSON.stringify(s)}`)};return {...te("HKT",{map:t,flatten:e,flatMap:r,ap:n,sequence:o,traverse:(s,i)=>o(t(s,u=>i(u)))}),_type:"HKT"}};S.map=(t,e)=>S().map(t,e);S.flatten=t=>S().flatten(t);S.flatMap=(t,e)=>S().flatMap(t,e);S.ap=(t,e)=>S().ap(t,e);S.sequence=t=>S().sequence(t);S.traverse=(t,e)=>S().traverse(t,e);S.isOption=q;S.isList=K;S.isEither=re;S.isTry=ne;function sn(t){return {id:t,isSame:r=>r.id===t}}var Y=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=>M(()=>{try{return a()}catch{return i.get()}}),orUndefined:()=>{try{return a()}catch{return}},map:i=>M(()=>i(a())),ap:i=>M(()=>i.get()(a())),mapAsync:async i=>{let u=a(),l=await i(u);return M(()=>l)},flatMap:i=>M(()=>i(a()).get()),flatMapAsync:async i=>{let u=a(),l=await i(u);return M(()=>l.get())},filter:i=>M(()=>{let u=a();return i(u)?w(u):b}),recover:i=>M(()=>{try{return a()}catch(u){return i(u)}}),recoverWith:i=>M(()=>{try{return a()}catch(u){return i(u).get()}}),toOption:()=>{try{return w(a())}catch{return b}},toEither:()=>{try{return c(a())}catch(i){return p(i)}},toEitherWith:i=>{try{return c(a())}catch(u){return p(i(u))}},toTry:()=>Ae(()=>a()),tap:i=>M(()=>{let u=a();return i(u),u}),tapError:i=>M(()=>{try{return a()}catch(u){throw i(u),u}}),fold:i=>i(a()),foldWith:(i,u)=>{try{return u(a())}catch(l){return i(l)}},foldLeft:i=>u=>u(i,a()),foldRight:i=>u=>u(a(),i),match:i=>i.Lazy(a()),toString:()=>e&&!o?`Lazy(${se(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)?w(u):b}catch{return b}},exists:i=>{try{return i(a())}catch{return false}},forEach:i=>{try{i(a());}catch{}},pipe:i=>i(a()),serialize:()=>({toJSON:()=>JSON.stringify(e&&!o?{_tag:"Lazy",evaluated:true,value:r}:{_tag:"Lazy",evaluated:false}),toYAML:()=>e&&!o?`_tag: Lazy
|
|
33
|
-
evaluated: true
|
|
34
|
-
value: ${se(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"}},ct={of:t=>Y(t),fromValue:t=>Y(()=>t),fromOption:(t,e)=>Y(()=>t._tag==="Some"?t.value:e()),fromTry:t=>Y(()=>t.get()),fromEither:t=>Y(()=>t.fold(e=>{throw e},e=>e)),fromPromise:t=>Y(()=>{throw new Error("Promise not yet resolved. Use await on the promise before creating Lazy.")}),fail:t=>Y(()=>{throw t})},M=a(Y,ct);var ie=Map;var W=t=>{let r={values:new ie(t)},n=()=>Array.from(r.values.entries()).map(([T,y])=>b$1([T,y])),o=T=>W(new ie(r.values).set(T.toArray()[0],T.toArray()[1]).entries()),a=T=>{let y=new ie(r.values);return y.delete(T)?W(y.entries()):W(r.values.entries())},s=T=>{let y=T.toArray();return r.values.get(y[0])===y[1]},i=()=>r.values.size,u=T=>W(Array.from(r.values.entries()).map(([y,_])=>[y,T(_)])),l=T=>{let y=W(r.values.entries()).toList();return W(y.flatMap(T).toArray())},E=T=>{let y=[];for(let[_,X]of r.values.entries()){let ae=T.get(_);ae._tag==="Some"&&ae.value&&y.push([_,ae.value(X)]);}return W(y)},g=async T=>{let y=new ie;for(let[_,X]of r.values.entries()){let ae=await T(X);for(let Je of ae.toList()){let[We,je]=Je.toArray();y.set(We,je);}}return W(y.entries())},F=T=>m(n()).reduce(T),v=T=>m(n()).reduceRight(T),A=T=>y=>m(n()).foldLeft(T)(y),G=T=>y=>m(n()).foldRight(T)(y),j=T=>f(r.values.get(T)),Z=(T,y)=>f(r.values.get(T)).getOrElse(y),oe=()=>r.values.size===0,ue=(T,y)=>f(r.values.get(T)).orElse(y),le=(T,y)=>{if(oe())return T();let _=n();if(_.length===0)return T();let X=_[0];return X===void 0?T():y(X)},be=()=>m(n()),d=()=>Q(n()),B=()=>`Map(${n().toString()})`,O=T=>oe()?T.Empty():T.NonEmpty(n());return {_tag:"Map",[Symbol.iterator]:()=>r.values.entries(),add:o,remove:a,contains:s,get size(){return i()},map:u,ap:E,flatMap:l,flatMapAsync:g,reduce:F,reduceRight:v,foldLeft:A,foldRight:G,fold:le,match:O,get:j,getOrElse:Z,get isEmpty(){return oe()},orElse:ue,toList:be,toSet:d,toString:B,toValue:()=>({_tag:"Map",value:Array.from(r.values.entries())}),pipe:T=>T(Array.from(r.values.entries())),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())}),toYAML:()=>`_tag: Map
|
|
36
|
-
value: ${JSON.stringify(Array.from(r.values.entries()))}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Map",value:Array.from(r.values.entries())})).toString("base64")})}},Tt=t=>W(t),Ce={fromJSON:t=>{let e=JSON.parse(t);return Re(e.value)},fromYAML:t=>{let r=t.split(`
|
|
37
|
-
`)[1]?.split(": ")[1];if(!r)return Re([]);let n=JSON.parse(r);return Re(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return Ce.fromJSON(e)}},Re=a(Tt,Ce);var ft={default:t=>e=>t(e),when:(t,e)=>r=>t(r)?e(r):void 0};function Le(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}}}Le.of=Le;function In(t){let e=ce({_tag:t._tag,impl:t.impl});return {...e,toValue:()=>({_tag:e._tag,value:t.value})}}var z=(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:d=>r.includes(d),reduce:d=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduce(d)},reduceRight:d=>{if(r.length===0)throw new Error("Cannot reduce an empty stack");return r.reduceRight(d)},push:d=>z([...r,d]),pop:()=>{if(o())return [z([]),f(null)];let d=[...r],B=d.pop();return [z(d),f(B)]},peek:()=>o()?f(null):f(r[r.length-1]),map:d=>z(r.map(d)),flatMap:d=>o()?z([]):r.reduce((B,O)=>d(O).toArray().reduce((y,_)=>y.push(_),B),z([])),ap:d=>{let B=[];return r.forEach(O=>{d.toArray().forEach(T=>{B.push(T(O));});}),z(B)},flatMapAsync:async d=>o()?z([]):(await Promise.all(r.map(async O=>await d(O)))).reduce((O,T)=>T.toArray().reduce((y,_)=>y.push(_),O),z([])),toList:()=>m(r),toArray:()=>[...r],toString:()=>`Stack(${r.join(", ")})`,fold:(d,B)=>{if(o())return d();let O=r[r.length-1];return O!==void 0?B(O):d()},foldLeft:d=>B=>r.reduce(B,d),foldRight:d=>B=>r.reduceRight((O,T)=>B(T,O),d),match:d=>o()?d.Empty():d.NonEmpty([...r]),toValue:()=>({_tag:"Stack",value:r}),pipe:d=>d([...r]),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Stack",value:r}),toYAML:()=>`_tag: Stack
|
|
38
|
-
value: ${JSON.stringify(r)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Stack",value:r})).toString("base64")})}},dt=(t=[])=>z(t),$e={empty:()=>z([]),of:t=>z([t]),fromJSON:t=>{let e=JSON.parse(t);return xe(e.value)},fromYAML:t=>{let r=t.split(`
|
|
39
|
-
`)[1]?.split(": ")[1];if(!r)return xe([]);let n=JSON.parse(r);return xe(n)},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return $e.fromJSON(e)}},xe=a(dt,$e);var w=t=>({_tag:"Some",value:t,isEmpty:false,get:()=>t,getOrElse:()=>t,getOrThrow:()=>t,orElse:e=>w(t),orNull:()=>t,orUndefined:()=>t,map:e=>w(e(t)),ap:e=>e._tag==="Some"&&e.value?w(e.value(t)):D,filter(e){return e(t)?w(t):D},count:e=>e(t)?1:0,find:e=>e(t)?w(t):D,exists:e=>e(t),forEach:e=>e(t),fold:(e,r)=>r(t),match:e=>e.Some(t),flatMap:e=>e(t),flatMapAsync:async e=>await e(t),reduce:e=>e(void 0,t),reduceRight:e=>e(void 0,t),foldLeft:e=>r=>r(e,t),foldRight:e=>r=>r(t,e),toList:()=>m([t]),contains:e=>e===t,size:1,toEither:e=>c(t),toString:()=>`Some(${se(t)})`,toValue:()=>({_tag:"Some",value:t}),pipe:e=>e(t),serialize:()=>({toJSON:()=>JSON.stringify({_tag:"Some",value:t}),toYAML:()=>`_tag: Some
|
|
40
|
-
value: ${se(t)}`,toBinary:()=>Buffer.from(JSON.stringify({_tag:"Some",value:t})).toString("base64")})}),D={_tag:"None",value:void 0,isEmpty: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=>D,ap:t=>D,filter(t){return D},count:t=>0,find:t=>D,exists:t=>false,forEach:t=>{},flatMap:t=>D,flatMapAsync:async t=>D,reduce:()=>{},reduceRight:()=>{},fold:(t,e)=>t(),match:t=>t.None(),foldLeft:t=>()=>t,foldRight:t=>()=>t,toList:()=>m([]),contains:()=>false,size:0,toEither:t=>p(t),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")})},b=()=>D,yt=t=>t!=null?w(t):b(),De={from:t=>f(t),none:()=>b(),fromJSON:t=>{let e=JSON.parse(t);return e._tag==="Some"?w(e.value):b()},fromYAML:t=>{let e=t.split(`
|
|
42
|
-
`),r=e[0]?.split(": ")[1],n=e[1]?.split(": ")[1];if(!r||!n)return b();let o=n==="null"?null:JSON.parse(n);return r==="Some"?w(o):b()},fromBinary:t=>{let e=Buffer.from(t,"base64").toString();return De.fromJSON(e)}},f=a(yt,De);export{sn as $,Ht as A,Gt as B,Zt as C,Xt as D,rr as E,sr as F,te as G,Te as H,L as I,tt as J,ge as K,rt as L,Ne as M,_e as N,Ee as O,V as P,ze as Q,fe as R,br as S,kr as T,Ur as U,x as V,Ir as W,$r as X,Yr as Y,Ae as Z,S as _,w as a,M as aa,b,ie as ba,yt as c,Re as ca,f as d,ft as da,Q as e,Le as ea,ce as f,In as fa,ye as g,xe as ga,m as h,c as i,p as j,_t as k,It as l,Mt as m,Qe as n,He as o,zt as p,ve as q,I as r,Ge as s,Dt as t,Jt as u,Wt as v,jt as w,qt as x,Yt as y,Qt as z};//# sourceMappingURL=chunk-4EYCKDDF.mjs.map
|
|
43
|
-
//# sourceMappingURL=chunk-4EYCKDDF.mjs.map
|