@nlozgachev/pipekit 0.2.0 → 0.3.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 +18 -13
- package/esm/src/Composition/flip.js +2 -2
- package/esm/src/Composition/fn.js +1 -1
- package/esm/src/Composition/tap.js +1 -1
- package/esm/src/Core/Arr.js +4 -4
- package/esm/src/Core/Option.js +13 -22
- package/esm/src/Core/RemoteData.js +9 -13
- package/esm/src/Core/Result.js +12 -21
- package/esm/src/Core/Task.js +26 -23
- package/esm/src/Core/TaskOption.js +8 -6
- package/esm/src/Core/TaskResult.js +10 -6
- package/esm/src/Core/TaskValidation.js +12 -8
- package/esm/src/Core/These.js +6 -6
- package/esm/src/Core/Validation.js +42 -43
- package/package.json +1 -1
- package/script/src/Composition/flip.js +2 -2
- package/script/src/Composition/fn.js +1 -1
- package/script/src/Composition/tap.js +1 -1
- package/script/src/Core/Arr.js +4 -4
- package/script/src/Core/Option.js +13 -22
- package/script/src/Core/RemoteData.js +9 -13
- package/script/src/Core/Result.js +12 -21
- package/script/src/Core/Task.js +26 -23
- package/script/src/Core/TaskOption.js +8 -6
- package/script/src/Core/TaskResult.js +10 -6
- package/script/src/Core/TaskValidation.js +12 -8
- package/script/src/Core/These.js +6 -6
- package/script/src/Core/Validation.js +42 -43
- package/types/src/Composition/flip.d.ts +2 -2
- package/types/src/Composition/fn.d.ts +1 -1
- package/types/src/Composition/pipe.d.ts +1 -1
- package/types/src/Composition/tap.d.ts +1 -1
- package/types/src/Composition/uncurry.d.ts +3 -3
- package/types/src/Core/Arr.d.ts +4 -4
- package/types/src/Core/Option.d.ts +14 -23
- package/types/src/Core/Option.d.ts.map +1 -1
- package/types/src/Core/RemoteData.d.ts +9 -13
- package/types/src/Core/RemoteData.d.ts.map +1 -1
- package/types/src/Core/Result.d.ts +12 -21
- package/types/src/Core/Result.d.ts.map +1 -1
- package/types/src/Core/Task.d.ts +35 -32
- package/types/src/Core/Task.d.ts.map +1 -1
- package/types/src/Core/TaskOption.d.ts +1 -1
- package/types/src/Core/TaskOption.d.ts.map +1 -1
- package/types/src/Core/TaskResult.d.ts +1 -1
- package/types/src/Core/TaskResult.d.ts.map +1 -1
- package/types/src/Core/TaskValidation.d.ts +10 -6
- package/types/src/Core/TaskValidation.d.ts.map +1 -1
- package/types/src/Core/These.d.ts +6 -6
- package/types/src/Core/These.d.ts.map +1 -1
- package/types/src/Core/Validation.d.ts +38 -42
- package/types/src/Core/Validation.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteData.d.ts","sourceRoot":"","sources":["../../../src/src/Core/RemoteData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE5E,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC5C,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1C,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC5D,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAE5D,yBAAiB,UAAU,CAAC;IAC1B;;OAEG;IACI,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,OAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAA2B,CAAC;IAE7E;;OAEG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,OAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAA0B,CAAC;IAE3E;;OAEG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAGtD,CAAC;IAEH;;OAEG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAGtD,CAAC;IAEH;;OAEG;IACI,MAAM,
|
|
1
|
+
{"version":3,"file":"RemoteData.d.ts","sourceRoot":"","sources":["../../../src/src/Core/RemoteData.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,22 +20,13 @@ export type Ok<A> = WithKind<"Ok"> & WithValue<A>;
|
|
|
20
20
|
export type Err<E> = WithKind<"Error"> & WithError<E>;
|
|
21
21
|
export declare namespace Result {
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```ts
|
|
27
|
-
* Result.of(42); // Ok(42)
|
|
28
|
-
* ```
|
|
23
|
+
* Creates a successful Result with the given value.
|
|
29
24
|
*/
|
|
30
|
-
const
|
|
25
|
+
const ok: <A>(value: A) => Ok<A>;
|
|
31
26
|
/**
|
|
32
27
|
* Creates a failed Result with the given error.
|
|
33
28
|
*/
|
|
34
29
|
const err: <E>(error: E) => Err<E>;
|
|
35
|
-
/**
|
|
36
|
-
* Creates a successful Result with the given value.
|
|
37
|
-
*/
|
|
38
|
-
const ok: <A>(value: A) => Ok<A>;
|
|
39
30
|
/**
|
|
40
31
|
* Type guard that checks if an Result is Ok.
|
|
41
32
|
*/
|
|
@@ -63,7 +54,7 @@ export declare namespace Result {
|
|
|
63
54
|
*
|
|
64
55
|
* @example
|
|
65
56
|
* ```ts
|
|
66
|
-
* pipe(Result.
|
|
57
|
+
* pipe(Result.ok(5), Result.map(n => n * 2)); // Ok(10)
|
|
67
58
|
* pipe(Result.err("error"), Result.map(n => n * 2)); // Err("error")
|
|
68
59
|
* ```
|
|
69
60
|
*/
|
|
@@ -84,10 +75,10 @@ export declare namespace Result {
|
|
|
84
75
|
* @example
|
|
85
76
|
* ```ts
|
|
86
77
|
* const validatePositive = (n: number): Result<string, number> =>
|
|
87
|
-
* n > 0 ? Result.
|
|
78
|
+
* n > 0 ? Result.ok(n) : Result.err("Must be positive");
|
|
88
79
|
*
|
|
89
|
-
* pipe(Result.
|
|
90
|
-
* pipe(Result.
|
|
80
|
+
* pipe(Result.ok(5), Result.chain(validatePositive)); // Ok(5)
|
|
81
|
+
* pipe(Result.ok(-1), Result.chain(validatePositive)); // Err("Must be positive")
|
|
91
82
|
* ```
|
|
92
83
|
*/
|
|
93
84
|
const chain: <E, A, B>(f: (a: A) => Result<E, B>) => (data: Result<E, A>) => Result<E, B>;
|
|
@@ -97,7 +88,7 @@ export declare namespace Result {
|
|
|
97
88
|
* @example
|
|
98
89
|
* ```ts
|
|
99
90
|
* pipe(
|
|
100
|
-
* Result.
|
|
91
|
+
* Result.ok(5),
|
|
101
92
|
* Result.fold(
|
|
102
93
|
* e => `Error: ${e}`,
|
|
103
94
|
* n => `Value: ${n}`
|
|
@@ -129,7 +120,7 @@ export declare namespace Result {
|
|
|
129
120
|
*
|
|
130
121
|
* @example
|
|
131
122
|
* ```ts
|
|
132
|
-
* pipe(Result.
|
|
123
|
+
* pipe(Result.ok(5), Result.getOrElse(0)); // 5
|
|
133
124
|
* pipe(Result.err("error"), Result.getOrElse(0)); // 0
|
|
134
125
|
* ```
|
|
135
126
|
*/
|
|
@@ -141,7 +132,7 @@ export declare namespace Result {
|
|
|
141
132
|
* @example
|
|
142
133
|
* ```ts
|
|
143
134
|
* pipe(
|
|
144
|
-
* Result.
|
|
135
|
+
* Result.ok(5),
|
|
145
136
|
* Result.tap(n => console.log("Value:", n)),
|
|
146
137
|
* Result.map(n => n * 2)
|
|
147
138
|
* );
|
|
@@ -174,9 +165,9 @@ export declare namespace Result {
|
|
|
174
165
|
* ```ts
|
|
175
166
|
* const add = (a: number) => (b: number) => a + b;
|
|
176
167
|
* pipe(
|
|
177
|
-
* Result.
|
|
178
|
-
* Result.ap(Result.
|
|
179
|
-
* Result.ap(Result.
|
|
168
|
+
* Result.ok(add),
|
|
169
|
+
* Result.ap(Result.ok(5)),
|
|
170
|
+
* Result.ap(Result.ok(3))
|
|
180
171
|
* ); // Ok(8)
|
|
181
172
|
* ```
|
|
182
173
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAE1C,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAEtD,yBAAiB,MAAM,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"Result.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Result.ts"],"names":[],"mappings":"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"}
|
package/types/src/Core/Task.d.ts
CHANGED
|
@@ -1,42 +1,45 @@
|
|
|
1
1
|
import { Result } from "./Result.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* A lazy async computation that always resolves.
|
|
4
|
+
*
|
|
5
|
+
* Two guarantees:
|
|
6
|
+
* - **Lazy** — nothing starts until you call it.
|
|
7
|
+
* - **Infallible** — it never rejects. If failure is possible, encode it in the
|
|
8
|
+
* return type using `TaskResult<E, A>` instead.
|
|
6
9
|
*
|
|
7
10
|
* @example
|
|
8
11
|
* ```ts
|
|
9
|
-
* const
|
|
12
|
+
* const getTimestamp: Task<number> = () => Promise.resolve(Date.now());
|
|
10
13
|
*
|
|
11
|
-
* // Nothing
|
|
12
|
-
* const
|
|
13
|
-
*
|
|
14
|
-
* Task.map(
|
|
14
|
+
* // Nothing runs yet — getTimestamp is just a description
|
|
15
|
+
* const formatted = pipe(
|
|
16
|
+
* getTimestamp,
|
|
17
|
+
* Task.map(ts => new Date(ts).toISOString())
|
|
15
18
|
* );
|
|
16
19
|
*
|
|
17
|
-
* //
|
|
18
|
-
*
|
|
20
|
+
* // Execute when ready
|
|
21
|
+
* const result = await formatted();
|
|
19
22
|
* ```
|
|
20
23
|
*/
|
|
21
24
|
export type Task<A> = () => Promise<A>;
|
|
22
25
|
export declare namespace Task {
|
|
23
26
|
/**
|
|
24
|
-
*
|
|
27
|
+
* Creates a Task that immediately resolves to the given value.
|
|
25
28
|
*
|
|
26
29
|
* @example
|
|
27
30
|
* ```ts
|
|
28
|
-
* const task = Task.
|
|
31
|
+
* const task = Task.resolve(42);
|
|
29
32
|
* task().then(console.log); // 42
|
|
30
33
|
* ```
|
|
31
34
|
*/
|
|
32
|
-
const
|
|
35
|
+
const resolve: <A>(value: A) => Task<A>;
|
|
33
36
|
/**
|
|
34
37
|
* Creates a Task from a function that returns a Promise.
|
|
35
38
|
* Alias for directly creating a Task.
|
|
36
39
|
*
|
|
37
40
|
* @example
|
|
38
41
|
* ```ts
|
|
39
|
-
* const
|
|
42
|
+
* const getTimestamp = Task.from(() => Promise.resolve(Date.now()));
|
|
40
43
|
* ```
|
|
41
44
|
*/
|
|
42
45
|
const from: <A>(f: () => Promise<A>) => Task<A>;
|
|
@@ -46,7 +49,7 @@ export declare namespace Task {
|
|
|
46
49
|
* @example
|
|
47
50
|
* ```ts
|
|
48
51
|
* pipe(
|
|
49
|
-
* Task.
|
|
52
|
+
* Task.resolve(5),
|
|
50
53
|
* Task.map(n => n * 2)
|
|
51
54
|
* )(); // Promise<10>
|
|
52
55
|
* ```
|
|
@@ -57,13 +60,13 @@ export declare namespace Task {
|
|
|
57
60
|
*
|
|
58
61
|
* @example
|
|
59
62
|
* ```ts
|
|
60
|
-
* const
|
|
61
|
-
* const
|
|
63
|
+
* const readUserId: Task<string> = () => Promise.resolve(session.userId);
|
|
64
|
+
* const loadPrefs = (id: string): Task<Preferences> => () => Promise.resolve(prefsCache.get(id));
|
|
62
65
|
*
|
|
63
66
|
* pipe(
|
|
64
|
-
*
|
|
65
|
-
* Task.chain(
|
|
66
|
-
* )(); // Promise<
|
|
67
|
+
* readUserId,
|
|
68
|
+
* Task.chain(loadPrefs)
|
|
69
|
+
* )(); // Promise<Preferences>
|
|
67
70
|
* ```
|
|
68
71
|
*/
|
|
69
72
|
const chain: <A, B>(f: (a: A) => Task<B>) => (data: Task<A>) => Task<B>;
|
|
@@ -75,9 +78,9 @@ export declare namespace Task {
|
|
|
75
78
|
* ```ts
|
|
76
79
|
* const add = (a: number) => (b: number) => a + b;
|
|
77
80
|
* pipe(
|
|
78
|
-
* Task.
|
|
79
|
-
* Task.ap(Task.
|
|
80
|
-
* Task.ap(Task.
|
|
81
|
+
* Task.resolve(add),
|
|
82
|
+
* Task.ap(Task.resolve(5)),
|
|
83
|
+
* Task.ap(Task.resolve(3))
|
|
81
84
|
* )(); // Promise<8>
|
|
82
85
|
* ```
|
|
83
86
|
*/
|
|
@@ -89,9 +92,9 @@ export declare namespace Task {
|
|
|
89
92
|
* @example
|
|
90
93
|
* ```ts
|
|
91
94
|
* pipe(
|
|
92
|
-
*
|
|
93
|
-
* Task.tap(
|
|
94
|
-
* Task.map(
|
|
95
|
+
* loadConfig,
|
|
96
|
+
* Task.tap(cfg => console.log("Config:", cfg)),
|
|
97
|
+
* Task.map(buildReport)
|
|
95
98
|
* );
|
|
96
99
|
* ```
|
|
97
100
|
*/
|
|
@@ -101,8 +104,8 @@ export declare namespace Task {
|
|
|
101
104
|
*
|
|
102
105
|
* @example
|
|
103
106
|
* ```ts
|
|
104
|
-
* Task.all([
|
|
105
|
-
* // Promise<[
|
|
107
|
+
* Task.all([loadConfig, detectLocale, loadTheme])();
|
|
108
|
+
* // Promise<[Config, string, Theme]>
|
|
106
109
|
* ```
|
|
107
110
|
*/
|
|
108
111
|
const all: <T extends readonly Task<unknown>[]>(tasks: T) => Task<{ [K in keyof T]: T[K] extends Task<infer A> ? A : never; }>;
|
|
@@ -113,7 +116,7 @@ export declare namespace Task {
|
|
|
113
116
|
* @example
|
|
114
117
|
* ```ts
|
|
115
118
|
* pipe(
|
|
116
|
-
* Task.
|
|
119
|
+
* Task.resolve(42),
|
|
117
120
|
* Task.delay(1000)
|
|
118
121
|
* )(); // Resolves after 1 second
|
|
119
122
|
* ```
|
|
@@ -158,9 +161,9 @@ export declare namespace Task {
|
|
|
158
161
|
* @example
|
|
159
162
|
* ```ts
|
|
160
163
|
* pipe(
|
|
161
|
-
*
|
|
162
|
-
* Task.timeout(5000, () =>
|
|
163
|
-
* TaskResult.chain(
|
|
164
|
+
* heavyComputation,
|
|
165
|
+
* Task.timeout(5000, () => "timed out"),
|
|
166
|
+
* TaskResult.chain(processResult)
|
|
164
167
|
* );
|
|
165
168
|
* ```
|
|
166
169
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC
|
|
1
|
+
{"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;AAEvC,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;OAQG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;IAE9E;;;;;;;;OAQG;IACI,MAAM,IAAI,GAAI,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAAM,CAAC;IAE3D;;;;;;;;;;OAUG;IACI,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAAyB,CAAC;IAE9F;;;;;;;;;;;;;OAaG;IACI,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAChD,CAAC;IAE7B;;;;;;;;;;;;;OAaG;IACI,MAAM,EAAE,GAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CACtB,CAAC;IAEtD;;;;;;;;;;;;OAYG;IACI,MAAM,GAAG,GAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAIhE,CAAC;IAEL;;;;;;;;OAQG;IACI,MAAM,GAAG,GAAI,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,EACpD,OAAO,CAAC,KACP,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,GAAE,CAM/D,CAAC;IAEJ;;;;;;;;;;;OAWG;IACI,MAAM,KAAK,GAAI,IAAI,MAAM,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CACuB,CAAC;IAEvF;;;;;;;;;;;OAWG;IACI,MAAM,MAAM,GAChB,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,EAAE,CAa3E,CAAC;IAEJ;;;;;;;;;;;OAWG;IACI,MAAM,WAAW,GACrB,CAAC,EAAE,SAAS;QAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAUnF,CAAC;IAEJ;;;;;;;;;;;;OAYG;IACI,MAAM,OAAO,GACjB,CAAC,EAAE,IAAI,MAAM,EAAE,WAAW,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAW3E,CAAC;CACL"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskOption.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskOption.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5C,yBAAiB,UAAU,CAAC;IAC1B;;OAEG;IACI,MAAM,
|
|
1
|
+
{"version":3,"file":"TaskOption.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskOption.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export declare namespace TaskResult {
|
|
|
18
18
|
/**
|
|
19
19
|
* Wraps a value in a successful TaskResult.
|
|
20
20
|
*/
|
|
21
|
-
const
|
|
21
|
+
const ok: <E, A>(value: A) => TaskResult<E, A>;
|
|
22
22
|
/**
|
|
23
23
|
* Creates a failed TaskResult with the given error.
|
|
24
24
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskResult.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAElD,yBAAiB,UAAU,CAAC;IAC1B;;OAEG;IACI,MAAM,EAAE,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"TaskResult.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskResult.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,12 +10,12 @@ import { Validation } from "./Validation.js";
|
|
|
10
10
|
* ```ts
|
|
11
11
|
* const validateName = (name: string): TaskValidation<string, string> =>
|
|
12
12
|
* name.length > 0
|
|
13
|
-
* ? TaskValidation.
|
|
14
|
-
* : TaskValidation.
|
|
13
|
+
* ? TaskValidation.valid(name)
|
|
14
|
+
* : TaskValidation.invalid("Name is required");
|
|
15
15
|
*
|
|
16
16
|
* // Accumulate errors from multiple async validations using ap
|
|
17
17
|
* pipe(
|
|
18
|
-
* TaskValidation.
|
|
18
|
+
* TaskValidation.valid((name: string) => (age: number) => ({ name, age })),
|
|
19
19
|
* TaskValidation.ap(validateName("")),
|
|
20
20
|
* TaskValidation.ap(validateAge(-1))
|
|
21
21
|
* )();
|
|
@@ -27,11 +27,15 @@ export declare namespace TaskValidation {
|
|
|
27
27
|
/**
|
|
28
28
|
* Wraps a value in a valid TaskValidation.
|
|
29
29
|
*/
|
|
30
|
-
const
|
|
30
|
+
const valid: <E, A>(value: A) => TaskValidation<E, A>;
|
|
31
31
|
/**
|
|
32
32
|
* Creates a failed TaskValidation with a single error.
|
|
33
33
|
*/
|
|
34
|
-
const
|
|
34
|
+
const invalid: <E, A>(error: E) => TaskValidation<E, A>;
|
|
35
|
+
/**
|
|
36
|
+
* Creates an invalid TaskValidation from multiple errors.
|
|
37
|
+
*/
|
|
38
|
+
const invalidAll: <E, A>(errors: NonEmptyList<E>) => TaskValidation<E, A>;
|
|
35
39
|
/**
|
|
36
40
|
* Lifts a Validation into a TaskValidation.
|
|
37
41
|
*/
|
|
@@ -69,7 +73,7 @@ export declare namespace TaskValidation {
|
|
|
69
73
|
* @example
|
|
70
74
|
* ```ts
|
|
71
75
|
* pipe(
|
|
72
|
-
* TaskValidation.
|
|
76
|
+
* TaskValidation.valid((name: string) => (age: number) => ({ name, age })),
|
|
73
77
|
* TaskValidation.ap(validateName(name)),
|
|
74
78
|
* TaskValidation.ap(validateAge(age))
|
|
75
79
|
* )();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskValidation.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskValidation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE1D,yBAAiB,cAAc,CAAC;IAC9B;;OAEG;IACI,MAAM,
|
|
1
|
+
{"version":3,"file":"TaskValidation.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,23 +23,23 @@ export type These<E, A> = Err<E> | Ok<A> | Both<E, A>;
|
|
|
23
23
|
export type Both<E, A> = WithKind<"Both"> & WithError<E> & WithValue<A>;
|
|
24
24
|
export declare namespace These {
|
|
25
25
|
/**
|
|
26
|
-
* Creates a These holding only
|
|
26
|
+
* Creates a These holding only a success value (no error).
|
|
27
27
|
*
|
|
28
28
|
* @example
|
|
29
29
|
* ```ts
|
|
30
|
-
* These.
|
|
30
|
+
* These.ok(42);
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
|
-
const
|
|
33
|
+
const ok: <A>(value: A) => Ok<A>;
|
|
34
34
|
/**
|
|
35
|
-
* Creates a These holding only
|
|
35
|
+
* Creates a These holding only an error/warning (no success value).
|
|
36
36
|
*
|
|
37
37
|
* @example
|
|
38
38
|
* ```ts
|
|
39
|
-
* These.
|
|
39
|
+
* These.err("Something went wrong");
|
|
40
40
|
* ```
|
|
41
41
|
*/
|
|
42
|
-
const
|
|
42
|
+
const err: <E>(error: E) => Err<E>;
|
|
43
43
|
/**
|
|
44
44
|
* Creates a These holding both an error/warning and a success value.
|
|
45
45
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"These.d.ts","sourceRoot":"","sources":["../../../src/src/Core/These.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEtD,MAAM,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAExE,yBAAiB,KAAK,CAAC;IACrB;;;;;;;OAOG;IACI,MAAM,
|
|
1
|
+
{"version":3,"file":"These.d.ts","sourceRoot":"","sources":["../../../src/src/Core/These.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,14 +11,14 @@ import { WithErrors, WithKind, WithValue } from "./InternalTypes.js";
|
|
|
11
11
|
* @example
|
|
12
12
|
* ```ts
|
|
13
13
|
* const validateName = (name: string): Validation<string, string> =>
|
|
14
|
-
* name.length > 0 ? Validation.
|
|
14
|
+
* name.length > 0 ? Validation.valid(name) : Validation.invalid("Name is required");
|
|
15
15
|
*
|
|
16
16
|
* const validateAge = (age: number): Validation<string, number> =>
|
|
17
|
-
* age >= 0 ? Validation.
|
|
17
|
+
* age >= 0 ? Validation.valid(age) : Validation.invalid("Age must be positive");
|
|
18
18
|
*
|
|
19
19
|
* // Accumulates all errors using ap
|
|
20
20
|
* pipe(
|
|
21
|
-
* Validation.
|
|
21
|
+
* Validation.valid((name: string) => (age: number) => ({ name, age })),
|
|
22
22
|
* Validation.ap(validateName("")),
|
|
23
23
|
* Validation.ap(validateAge(-1))
|
|
24
24
|
* );
|
|
@@ -34,47 +34,43 @@ export declare namespace Validation {
|
|
|
34
34
|
*
|
|
35
35
|
* @example
|
|
36
36
|
* ```ts
|
|
37
|
-
* Validation.
|
|
37
|
+
* Validation.valid(42); // Valid(42)
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
const
|
|
40
|
+
const valid: <E, A>(value: A) => Validation<E, A>;
|
|
41
41
|
/**
|
|
42
|
-
* Creates
|
|
43
|
-
*/
|
|
44
|
-
const toValid: <A>(value: A) => Valid<A>;
|
|
45
|
-
/**
|
|
46
|
-
* Type guard that checks if a Validation is valid.
|
|
47
|
-
*/
|
|
48
|
-
const isValid: <E, A>(data: Validation<E, A>) => data is Valid<A>;
|
|
49
|
-
/**
|
|
50
|
-
* Creates an invalid Validation with the given errors.
|
|
42
|
+
* Creates an invalid Validation from a single error.
|
|
51
43
|
*
|
|
52
44
|
* @example
|
|
53
45
|
* ```ts
|
|
54
|
-
* Validation.
|
|
46
|
+
* Validation.invalid("Invalid input");
|
|
55
47
|
* ```
|
|
56
48
|
*/
|
|
57
|
-
const
|
|
58
|
-
/**
|
|
59
|
-
* Type guard that checks if a Validation is invalid.
|
|
60
|
-
*/
|
|
61
|
-
const isInvalid: <E, A>(data: Validation<E, A>) => data is Invalid<E>;
|
|
49
|
+
const invalid: <E>(error: E) => Invalid<E>;
|
|
62
50
|
/**
|
|
63
|
-
* Creates an invalid Validation from
|
|
51
|
+
* Creates an invalid Validation from multiple errors.
|
|
64
52
|
*
|
|
65
53
|
* @example
|
|
66
54
|
* ```ts
|
|
67
|
-
* Validation.
|
|
55
|
+
* Validation.invalidAll(["Invalid input"]);
|
|
68
56
|
* ```
|
|
69
57
|
*/
|
|
70
|
-
const
|
|
58
|
+
const invalidAll: <E>(errors: NonEmptyList<E>) => Invalid<E>;
|
|
59
|
+
/**
|
|
60
|
+
* Type guard that checks if a Validation is valid.
|
|
61
|
+
*/
|
|
62
|
+
const isValid: <E, A>(data: Validation<E, A>) => data is Valid<A>;
|
|
63
|
+
/**
|
|
64
|
+
* Type guard that checks if a Validation is invalid.
|
|
65
|
+
*/
|
|
66
|
+
const isInvalid: <E, A>(data: Validation<E, A>) => data is Invalid<E>;
|
|
71
67
|
/**
|
|
72
68
|
* Transforms the success value inside a Validation.
|
|
73
69
|
*
|
|
74
70
|
* @example
|
|
75
71
|
* ```ts
|
|
76
|
-
* pipe(Validation.
|
|
77
|
-
* pipe(Validation.
|
|
72
|
+
* pipe(Validation.valid(5), Validation.map(n => n * 2)); // Valid(10)
|
|
73
|
+
* pipe(Validation.invalid("oops"), Validation.map(n => n * 2)); // Invalid(["oops"])
|
|
78
74
|
* ```
|
|
79
75
|
*/
|
|
80
76
|
const map: <A, B>(f: (a: A) => B) => <E>(data: Validation<E, A>) => Validation<E, B>;
|
|
@@ -87,10 +83,10 @@ export declare namespace Validation {
|
|
|
87
83
|
* @example
|
|
88
84
|
* ```ts
|
|
89
85
|
* const validatePositive = (n: number): Validation<string, number> =>
|
|
90
|
-
* n > 0 ? Validation.
|
|
86
|
+
* n > 0 ? Validation.valid(n) : Validation.invalid("Must be positive");
|
|
91
87
|
*
|
|
92
|
-
* pipe(Validation.
|
|
93
|
-
* pipe(Validation.
|
|
88
|
+
* pipe(Validation.valid(5), Validation.chain(validatePositive)); // Valid(5)
|
|
89
|
+
* pipe(Validation.valid(-1), Validation.chain(validatePositive)); // Invalid(["Must be positive"])
|
|
94
90
|
* ```
|
|
95
91
|
*/
|
|
96
92
|
const chain: <E, A, B>(f: (a: A) => Validation<E, B>) => (data: Validation<E, A>) => Validation<E, B>;
|
|
@@ -102,15 +98,15 @@ export declare namespace Validation {
|
|
|
102
98
|
* ```ts
|
|
103
99
|
* const add = (a: number) => (b: number) => a + b;
|
|
104
100
|
* pipe(
|
|
105
|
-
* Validation.
|
|
106
|
-
* Validation.ap(Validation.
|
|
107
|
-
* Validation.ap(Validation.
|
|
101
|
+
* Validation.valid(add),
|
|
102
|
+
* Validation.ap(Validation.valid(5)),
|
|
103
|
+
* Validation.ap(Validation.valid(3))
|
|
108
104
|
* ); // Valid(8)
|
|
109
105
|
*
|
|
110
106
|
* pipe(
|
|
111
|
-
* Validation.
|
|
112
|
-
* Validation.ap(Validation.
|
|
113
|
-
* Validation.ap(Validation.
|
|
107
|
+
* Validation.valid(add),
|
|
108
|
+
* Validation.ap(Validation.invalid<string, number>("bad a")),
|
|
109
|
+
* Validation.ap(Validation.invalid<string, number>("bad b"))
|
|
114
110
|
* ); // Invalid(["bad a", "bad b"])
|
|
115
111
|
* ```
|
|
116
112
|
*/
|
|
@@ -121,7 +117,7 @@ export declare namespace Validation {
|
|
|
121
117
|
* @example
|
|
122
118
|
* ```ts
|
|
123
119
|
* pipe(
|
|
124
|
-
* Validation.
|
|
120
|
+
* Validation.valid(42),
|
|
125
121
|
* Validation.fold(
|
|
126
122
|
* errors => `Errors: ${errors.join(", ")}`,
|
|
127
123
|
* value => `Value: ${value}`
|
|
@@ -153,8 +149,8 @@ export declare namespace Validation {
|
|
|
153
149
|
*
|
|
154
150
|
* @example
|
|
155
151
|
* ```ts
|
|
156
|
-
* pipe(Validation.
|
|
157
|
-
* pipe(Validation.
|
|
152
|
+
* pipe(Validation.valid(5), Validation.getOrElse(0)); // 5
|
|
153
|
+
* pipe(Validation.invalid("oops"), Validation.getOrElse(0)); // 0
|
|
158
154
|
* ```
|
|
159
155
|
*/
|
|
160
156
|
const getOrElse: <E, A>(defaultValue: A) => (data: Validation<E, A>) => A;
|
|
@@ -164,7 +160,7 @@ export declare namespace Validation {
|
|
|
164
160
|
* @example
|
|
165
161
|
* ```ts
|
|
166
162
|
* pipe(
|
|
167
|
-
* Validation.
|
|
163
|
+
* Validation.valid(5),
|
|
168
164
|
* Validation.tap(n => console.log("Value:", n)),
|
|
169
165
|
* Validation.map(n => n * 2)
|
|
170
166
|
* );
|
|
@@ -187,13 +183,13 @@ export declare namespace Validation {
|
|
|
187
183
|
* @example
|
|
188
184
|
* ```ts
|
|
189
185
|
* Validation.combine(
|
|
190
|
-
* Validation.
|
|
191
|
-
* Validation.
|
|
186
|
+
* Validation.invalid("Error 1"),
|
|
187
|
+
* Validation.invalid("Error 2")
|
|
192
188
|
* ); // Invalid(["Error 1", "Error 2"])
|
|
193
189
|
*
|
|
194
190
|
* Validation.combine(
|
|
195
|
-
* Validation.
|
|
196
|
-
* Validation.
|
|
191
|
+
* Validation.valid("a"),
|
|
192
|
+
* Validation.valid("b")
|
|
197
193
|
* ); // Valid("b")
|
|
198
194
|
* ```
|
|
199
195
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAErD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAE7D,yBAAiB,UAAU,CAAC;IAC1B;;;;;;;OAOG;IACI,MAAM,
|
|
1
|
+
{"version":3,"file":"Validation.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAErD,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAE7D,yBAAiB,UAAU,CAAC;IAC1B;;;;;;;OAOG;IACI,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAGpD,CAAC;IAEH;;;;;;;OAOG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,CAAC,CAG7C,CAAC;IAEH;;;;;;;OAOG;IACI,MAAM,UAAU,GAAI,CAAC,EAAE,QAAQ,YAAY,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAG/D,CAAC;IAEH;;OAEG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,IAAI,IAAI,KAAK,CAAC,CAAC,CAA0B,CAAC;IAEjG;;OAEG;IACI,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,IAAI,IAAI,OAAO,CAAC,CAAC,CACjD,CAAC;IAE1B;;;;;;;;OAQG;IACI,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAC5C,CAAC;IAE9C;;;;;;;;;;;;;;OAcG;IACI,MAAM,KAAK,GACf,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAC/C,CAAC;IAEzC;;;;;;;;;;;;;;;;;;;OAmBG;IACI,MAAM,EAAE,GACZ,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAOtF,CAAC;IAEJ;;;;;;;;;;;;;OAaG;IACI,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAC1B,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EACzC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAErB,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAAiE,CAAC;IAE5F;;;;;;;;;;;;;OAaG;IACI,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO;QACpC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KACzC,MACA,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CAC4C,CAAC;IAEvE;;;;;;;;OAQG;IACI,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,CACnC,CAAC;IAE5C;;;;;;;;;;;OAWG;IACI,MAAM,GAAG,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAGxF,CAAC;IAEF;;OAEG;IACI,MAAM,OAAO,GACjB,CAAC,EAAE,CAAC,EAAE,UAAU,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAClD,CAAC;IAEtC;;OAEG;IACI,MAAM,aAAa,GACvB,CAAC,EAAE,CAAC,EAAE,eAAe,SAAS,CAAC,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MACnE,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,UAAU,CAAC,CAAC,EAAE,CAAC,CAI/B,CAAC;IAEb;;;;;;;;;;;;;;;;;OAiBG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,CAAC,EAC1B,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACvB,QAAQ,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KACvB,UAAU,CAAC,CAAC,EAAE,CAAC,CASjB,CAAC;IAEF;;;;;;;;;;;;;OAaG;IACI,MAAM,UAAU,GAAI,CAAC,EAAE,CAAC,EAC7B,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KACvB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SACoD,CAAC;CAC5E"}
|