@nlozgachev/pipekit 0.4.2 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/@nlozgachev/pipekit?style=for-the-badge&color=000&logo=npm&label&logoColor=fff)](https://www.npmjs.com/package/@nlozgachev/pipekit)[![JSR Version](https://img.shields.io/jsr/v/@nlozgachev/pipekit?style=for-the-badge&color=000&logo=jsr&label&logoColor=fff)](https://jsr.io/@nlozgachev/pipekit)[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/nlozgachev/pipekit/publish.yml?style=for-the-badge&color=000&logo=githubactions&label&logoColor=fff)](https://github.com/nlozgachev/pipekit/actions/workflows/publish.yml)[![Codecov](https://img.shields.io/codecov/c/github/nlozgachev/pipekit?style=for-the-badge&color=000&logo=codecov&label&logoColor=fff)](https://app.codecov.io/github/nlozgachev/pipekit)[![TypeScript](https://img.shields.io/badge/-0?style=for-the-badge&color=000&logo=typescript&label&logoColor=fff)](https://www.typescriptlang.org)[![Deno](https://img.shields.io/badge/-0?style=for-the-badge&color=000&logo=Deno&label&logoColor=fff)](https://deno.com)
4
4
 
5
- A TypeScript toolkit for writing code that means exactly what it says.
5
+ Opinionated functional abstractions for TypeScript.
6
6
 
7
7
  > **Note:** pipekit is pre-1.0. The API may change between minor versions until the 1.0 release.
8
8
 
@@ -27,23 +27,24 @@ No FP jargon required. You won't find `Monad`, `Functor`, or `Applicative` in th
27
27
 
28
28
  ### pipekit/Core
29
29
 
30
- - **`Option<A>`** — a value that might not exist. Replaces `T | null | undefined`.
31
- - **`Result<E, A>`** — an operation that succeeds or fails. Replaces `try/catch`.
32
- - **`Validation<E, A>`** — like `Result`, but accumulates all errors instead of stopping at the
30
+ - **`Option<A>`** — a value that may not exist; propagates absence without null checks.
31
+ - **`Result<E, A>`** — an operation that succeeds or fails with a typed error.
32
+ - **`Validation<E, A>`** — like `Result`, but accumulates every failure instead of stopping at the
33
33
  first.
34
- - **`Task<A>`** — a lazy async operation that doesn't run until called.
35
- - **`TaskResult<E, A>`** — `Task` + `Result`. A lazy async operation that can fail.
36
- - **`TaskOption<A>`** — `Task` + `Option`. Replaces `Promise<T | null>`.
37
- - **`TaskValidation<E, A>`** — `Task` + `Validation`. For async checks that all need to run.
34
+ - **`Task<A>`** — a lazy, infallible async operation; nothing runs until called.
35
+ - **`TaskResult<E, A>`** — a lazy async operation that can fail with a typed error.
36
+ - **`TaskOption<A>`** — a lazy async operation that may produce nothing.
37
+ - **`TaskValidation<E, A>`** — a lazy async operation that accumulates validation errors.
38
38
  - **`These<E, A>`** — an inclusive OR: holds an error, a value, or both at once.
39
39
  - **`RemoteData<E, A>`** — the four states of a data fetch: `NotAsked`, `Loading`, `Failure`,
40
40
  `Success`.
41
41
  - **`Lens<S, A>`** — focus on a required field in a nested structure. Read, set, and modify
42
42
  immutably.
43
43
  - **`Optional<S, A>`** — like `Lens`, but the target may be absent (nullable fields, array indices).
44
- - **`Reader<R, A>`** — a computation that depends on an environment `R`, resolved later.
45
- - **`Arr`** — array utilities that return `Option` instead of `undefined`.
46
- - **`Rec`** — record/object utilities.
44
+ - **`Reader<R, A>`** — a computation that depends on an environment `R`, supplied once at the
45
+ boundary.
46
+ - **`Arr`** — array utilities, data-last, returning `Option` instead of `undefined`.
47
+ - **`Rec`** — record utilities, data-last, with `Option`-returning key lookup.
47
48
 
48
49
  ### pipekit/Types
49
50
 
@@ -1,5 +1,7 @@
1
+ import { Deferred } from "./Deferred.js";
1
2
  import { Option } from "./Option.js";
2
3
  import { Result } from "./Result.js";
4
+ import { Task } from "./Task.js";
3
5
  import { isNonEmptyList } from "../Types/NonEmptyList.js";
4
6
  /**
5
7
  * Functional array utilities that compose well with pipe.
@@ -353,7 +355,7 @@ export var Arr;
353
355
  * )(); // Promise<[2, 4, 6]>
354
356
  * ```
355
357
  */
356
- Arr.traverseTask = (f) => (data) => () => Promise.all(data.map((a) => f(a)()));
358
+ Arr.traverseTask = (f) => (data) => Task.from(() => Promise.all(data.map((a) => Deferred.toPromise(f(a)()))));
357
359
  /**
358
360
  * Collects an array of Options into an Option of array.
359
361
  * Returns None if any element is None.
@@ -0,0 +1,26 @@
1
+ export var Deferred;
2
+ (function (Deferred) {
3
+ /**
4
+ * Wraps a `Promise` into a `Deferred`, structurally excluding rejection handlers,
5
+ * `.catch()`, `.finally()`, and chainable `.then()`.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const d = Deferred.fromPromise(Promise.resolve("hello"));
10
+ * const value = await d; // "hello"
11
+ * ```
12
+ */
13
+ Deferred.fromPromise = (p) => ({
14
+ then: ((f) => p.then(f)),
15
+ });
16
+ /**
17
+ * Converts a `Deferred` back into a `Promise`.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const p = Deferred.toPromise(Deferred.fromPromise(Promise.resolve(42)));
22
+ * // p is Promise<42>
23
+ * ```
24
+ */
25
+ Deferred.toPromise = (d) => new Promise((resolve) => d.then(resolve));
26
+ })(Deferred || (Deferred = {}));
@@ -1,4 +1,9 @@
1
+ import { Deferred } from "./Deferred.js";
1
2
  import { Result } from "./Result.js";
3
+ // Internal helper — not exported. Runs a Task and converts the result to a Promise
4
+ // so that combinators can use Promise chaining (.then, Promise.all, Promise.race, etc.)
5
+ // internally without leaking that primitive through the public API.
6
+ const toPromise = (task) => Deferred.toPromise(task());
2
7
  export var Task;
3
8
  (function (Task) {
4
9
  /**
@@ -7,20 +12,19 @@ export var Task;
7
12
  * @example
8
13
  * ```ts
9
14
  * const task = Task.resolve(42);
10
- * task().then(console.log); // 42
15
+ * const value = await task(); // 42
11
16
  * ```
12
17
  */
13
- Task.resolve = (value) => () => Promise.resolve(value);
18
+ Task.resolve = (value) => () => Deferred.fromPromise(Promise.resolve(value));
14
19
  /**
15
20
  * Creates a Task from a function that returns a Promise.
16
- * Alias for directly creating a Task.
17
21
  *
18
22
  * @example
19
23
  * ```ts
20
24
  * const getTimestamp = Task.from(() => Promise.resolve(Date.now()));
21
25
  * ```
22
26
  */
23
- Task.from = (f) => f;
27
+ Task.from = (f) => () => Deferred.fromPromise(f());
24
28
  /**
25
29
  * Transforms the value inside a Task.
26
30
  *
@@ -29,25 +33,26 @@ export var Task;
29
33
  * pipe(
30
34
  * Task.resolve(5),
31
35
  * Task.map(n => n * 2)
32
- * )(); // Promise<10>
36
+ * )(); // Deferred<10>
33
37
  * ```
34
38
  */
35
- Task.map = (f) => (data) => () => data().then(f);
39
+ Task.map = (f) => (data) => Task.from(() => toPromise(data).then(f));
36
40
  /**
37
41
  * Chains Task computations. Passes the resolved value of the first Task to f.
38
42
  *
39
43
  * @example
40
44
  * ```ts
41
- * const readUserId: Task<string> = () => Promise.resolve(session.userId);
42
- * const loadPrefs = (id: string): Task<Preferences> => () => Promise.resolve(prefsCache.get(id));
45
+ * const readUserId: Task<string> = Task.resolve(session.userId);
46
+ * const loadPrefs = (id: string): Task<Preferences> =>
47
+ * Task.resolve(prefsCache.get(id));
43
48
  *
44
49
  * pipe(
45
50
  * readUserId,
46
51
  * Task.chain(loadPrefs)
47
- * )(); // Promise<Preferences>
52
+ * )(); // Deferred<Preferences>
48
53
  * ```
49
54
  */
50
- Task.chain = (f) => (data) => () => data().then((a) => f(a)());
55
+ Task.chain = (f) => (data) => Task.from(() => toPromise(data).then((a) => toPromise(f(a))));
51
56
  /**
52
57
  * Applies a function wrapped in a Task to a value wrapped in a Task.
53
58
  * Both Tasks run in parallel.
@@ -59,10 +64,13 @@ export var Task;
59
64
  * Task.resolve(add),
60
65
  * Task.ap(Task.resolve(5)),
61
66
  * Task.ap(Task.resolve(3))
62
- * )(); // Promise<8>
67
+ * )(); // Deferred<8>
63
68
  * ```
64
69
  */
65
- Task.ap = (arg) => (data) => () => Promise.all([data(), arg()]).then(([f, a]) => f(a));
70
+ Task.ap = (arg) => (data) => Task.from(() => Promise.all([
71
+ toPromise(data),
72
+ toPromise(arg),
73
+ ]).then(([f, a]) => f(a)));
66
74
  /**
67
75
  * Executes a side effect on the value without changing the Task.
68
76
  * Useful for logging or debugging.
@@ -76,20 +84,20 @@ export var Task;
76
84
  * );
77
85
  * ```
78
86
  */
79
- Task.tap = (f) => (data) => () => data().then((a) => {
87
+ Task.tap = (f) => (data) => Task.from(() => toPromise(data).then((a) => {
80
88
  f(a);
81
89
  return a;
82
- });
90
+ }));
83
91
  /**
84
92
  * Runs multiple Tasks in parallel and collects their results.
85
93
  *
86
94
  * @example
87
95
  * ```ts
88
96
  * Task.all([loadConfig, detectLocale, loadTheme])();
89
- * // Promise<[Config, string, Theme]>
97
+ * // Deferred<[Config, string, Theme]>
90
98
  * ```
91
99
  */
92
- Task.all = (tasks) => () => Promise.all(tasks.map((t) => t()));
100
+ Task.all = (tasks) => Task.from(() => Promise.all(tasks.map((t) => toPromise(t))));
93
101
  /**
94
102
  * Delays the execution of a Task by the specified milliseconds.
95
103
  * Useful for debouncing or rate limiting.
@@ -102,7 +110,7 @@ export var Task;
102
110
  * )(); // Resolves after 1 second
103
111
  * ```
104
112
  */
105
- Task.delay = (ms) => (data) => () => new Promise((resolve, reject) => setTimeout(() => data().then(resolve, reject), ms));
113
+ Task.delay = (ms) => (data) => Task.from(() => new Promise((resolve) => setTimeout(() => toPromise(data).then(resolve), ms)));
106
114
  /**
107
115
  * Runs a Task a fixed number of times sequentially, collecting all results into an array.
108
116
  * An optional delay (ms) can be inserted between runs.
@@ -115,20 +123,20 @@ export var Task;
115
123
  * )(); // Task<Reading[]> — 5 readings, one per second
116
124
  * ```
117
125
  */
118
- Task.repeat = (options) => (task) => () => {
126
+ Task.repeat = (options) => (task) => Task.from(() => {
119
127
  const { times, delay: ms } = options;
120
128
  if (times <= 0)
121
129
  return Promise.resolve([]);
122
130
  const results = [];
123
131
  const wait = () => ms !== undefined && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
124
- const run = (left) => task().then((a) => {
132
+ const run = (left) => toPromise(task).then((a) => {
125
133
  results.push(a);
126
134
  if (left <= 1)
127
135
  return results;
128
136
  return wait().then(() => run(left - 1));
129
137
  });
130
138
  return run(times);
131
- };
139
+ });
132
140
  /**
133
141
  * Runs a Task repeatedly until the result satisfies a predicate, returning that result.
134
142
  * An optional delay (ms) can be inserted between runs.
@@ -141,16 +149,16 @@ export var Task;
141
149
  * )(); // polls every 500ms until status is "ready"
142
150
  * ```
143
151
  */
144
- Task.repeatUntil = (options) => (task) => () => {
152
+ Task.repeatUntil = (options) => (task) => Task.from(() => {
145
153
  const { when: predicate, delay: ms } = options;
146
154
  const wait = () => ms !== undefined && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
147
- const run = () => task().then((a) => {
155
+ const run = () => toPromise(task).then((a) => {
148
156
  if (predicate(a))
149
157
  return a;
150
158
  return wait().then(run);
151
159
  });
152
160
  return run();
153
- };
161
+ });
154
162
  /**
155
163
  * Converts a `Task<A>` into a `Task<Result<E, A>>`, resolving to `Err` if the
156
164
  * Task does not complete within the given time.
@@ -164,10 +172,10 @@ export var Task;
164
172
  * );
165
173
  * ```
166
174
  */
167
- Task.timeout = (ms, onTimeout) => (task) => () => {
175
+ Task.timeout = (ms, onTimeout) => (task) => Task.from(() => {
168
176
  let timerId;
169
177
  return Promise.race([
170
- task().then((a) => {
178
+ toPromise(task).then((a) => {
171
179
  clearTimeout(timerId);
172
180
  return Result.ok(a);
173
181
  }),
@@ -175,5 +183,5 @@ export var Task;
175
183
  timerId = setTimeout(() => resolve(Result.err(onTimeout())), ms);
176
184
  }),
177
185
  ]);
178
- };
186
+ });
179
187
  })(Task || (Task = {}));
@@ -1,3 +1,4 @@
1
+ import { Deferred } from "./Deferred.js";
1
2
  import { Option } from "./Option.js";
2
3
  import { Task } from "./Task.js";
3
4
  export var TaskOption;
@@ -29,9 +30,9 @@ export var TaskOption;
29
30
  * );
30
31
  * ```
31
32
  */
32
- TaskOption.tryCatch = (f) => () => f()
33
+ TaskOption.tryCatch = (f) => Task.from(() => f()
33
34
  .then(Option.some)
34
- .catch(() => Option.none());
35
+ .catch(() => Option.none()));
35
36
  /**
36
37
  * Transforms the value inside a TaskOption.
37
38
  */
@@ -53,7 +54,10 @@ export var TaskOption;
53
54
  * Applies a function wrapped in a TaskOption to a value wrapped in a TaskOption.
54
55
  * Both Tasks run in parallel.
55
56
  */
56
- TaskOption.ap = (arg) => (data) => () => Promise.all([data(), arg()]).then(([of_, oa]) => Option.ap(oa)(of_));
57
+ TaskOption.ap = (arg) => (data) => Task.from(() => Promise.all([
58
+ Deferred.toPromise(data()),
59
+ Deferred.toPromise(arg()),
60
+ ]).then(([of_, oa]) => Option.ap(oa)(of_)));
57
61
  /**
58
62
  * Extracts a value from a TaskOption by providing handlers for both cases.
59
63
  */
@@ -1,3 +1,4 @@
1
+ import { Deferred } from "./Deferred.js";
1
2
  import { Result } from "./Result.js";
2
3
  import { Task } from "./Task.js";
3
4
  export var TaskResult;
@@ -23,9 +24,9 @@ export var TaskResult;
23
24
  * );
24
25
  * ```
25
26
  */
26
- TaskResult.tryCatch = (f, onError) => () => f()
27
+ TaskResult.tryCatch = (f, onError) => Task.from(() => f()
27
28
  .then(Result.ok)
28
- .catch((e) => Result.err(onError(e)));
29
+ .catch((e) => Result.err(onError(e))));
29
30
  /**
30
31
  * Transforms the success value inside a TaskResult.
31
32
  */
@@ -82,10 +83,10 @@ export var TaskResult;
82
83
  * );
83
84
  * ```
84
85
  */
85
- TaskResult.retry = (options) => (data) => () => {
86
+ TaskResult.retry = (options) => (data) => Task.from(() => {
86
87
  const { attempts, backoff, when: shouldRetry } = options;
87
88
  const getDelay = (n) => backoff === undefined ? 0 : typeof backoff === "function" ? backoff(n) : backoff;
88
- const run = (left) => data().then((result) => {
89
+ const run = (left) => Deferred.toPromise(data()).then((result) => {
89
90
  if (Result.isOk(result))
90
91
  return result;
91
92
  if (left <= 1)
@@ -97,7 +98,7 @@ export var TaskResult;
97
98
  return (ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve()).then(() => run(left - 1));
98
99
  });
99
100
  return run(attempts);
100
- };
101
+ });
101
102
  /**
102
103
  * Fails a TaskResult with a typed error if it does not resolve within the given time.
103
104
  *
@@ -109,10 +110,10 @@ export var TaskResult;
109
110
  * );
110
111
  * ```
111
112
  */
112
- TaskResult.timeout = (ms, onTimeout) => (data) => () => {
113
+ TaskResult.timeout = (ms, onTimeout) => (data) => Task.from(() => {
113
114
  let timerId;
114
115
  return Promise.race([
115
- data().then((result) => {
116
+ Deferred.toPromise(data()).then((result) => {
116
117
  clearTimeout(timerId);
117
118
  return result;
118
119
  }),
@@ -120,5 +121,5 @@ export var TaskResult;
120
121
  timerId = setTimeout(() => resolve(Result.err(onTimeout())), ms);
121
122
  }),
122
123
  ]);
123
- };
124
+ });
124
125
  })(TaskResult || (TaskResult = {}));
@@ -1,3 +1,4 @@
1
+ import { Deferred } from "./Deferred.js";
1
2
  import { Task } from "./Task.js";
2
3
  import { Validation } from "./Validation.js";
3
4
  export var TaskValidation;
@@ -31,9 +32,9 @@ export var TaskValidation;
31
32
  * );
32
33
  * ```
33
34
  */
34
- TaskValidation.tryCatch = (f, onError) => () => f()
35
+ TaskValidation.tryCatch = (f, onError) => Task.from(() => f()
35
36
  .then((Validation.valid))
36
- .catch((e) => Validation.invalid(onError(e)));
37
+ .catch((e) => Validation.invalid(onError(e))));
37
38
  /**
38
39
  * Transforms the success value inside a TaskValidation.
39
40
  */
@@ -61,7 +62,10 @@ export var TaskValidation;
61
62
  * )();
62
63
  * ```
63
64
  */
64
- TaskValidation.ap = (arg) => (data) => () => Promise.all([data(), arg()]).then(([vf, va]) => Validation.ap(va)(vf));
65
+ TaskValidation.ap = (arg) => (data) => Task.from(() => Promise.all([
66
+ Deferred.toPromise(data()),
67
+ Deferred.toPromise(arg()),
68
+ ]).then(([vf, va]) => Validation.ap(va)(vf)));
65
69
  /**
66
70
  * Extracts a value from a TaskValidation by providing handlers for both cases.
67
71
  */
@@ -1,4 +1,5 @@
1
1
  export * from "./Arr.js";
2
+ export * from "./Deferred.js";
2
3
  export * from "./Lens.js";
3
4
  export * from "./Option.js";
4
5
  export * from "./Reader.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nlozgachev/pipekit",
3
- "version": "0.4.2",
3
+ "version": "0.5.1",
4
4
  "description": "Simple functional programming toolkit for TypeScript",
5
5
  "keywords": [
6
6
  "functional",
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Arr = void 0;
4
+ const Deferred_js_1 = require("./Deferred.js");
4
5
  const Option_js_1 = require("./Option.js");
5
6
  const Result_js_1 = require("./Result.js");
7
+ const Task_js_1 = require("./Task.js");
6
8
  const NonEmptyList_js_1 = require("../Types/NonEmptyList.js");
7
9
  /**
8
10
  * Functional array utilities that compose well with pipe.
@@ -356,7 +358,7 @@ var Arr;
356
358
  * )(); // Promise<[2, 4, 6]>
357
359
  * ```
358
360
  */
359
- Arr.traverseTask = (f) => (data) => () => Promise.all(data.map((a) => f(a)()));
361
+ Arr.traverseTask = (f) => (data) => Task_js_1.Task.from(() => Promise.all(data.map((a) => Deferred_js_1.Deferred.toPromise(f(a)()))));
360
362
  /**
361
363
  * Collects an array of Options into an Option of array.
362
364
  * Returns None if any element is None.
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Deferred = void 0;
4
+ var Deferred;
5
+ (function (Deferred) {
6
+ /**
7
+ * Wraps a `Promise` into a `Deferred`, structurally excluding rejection handlers,
8
+ * `.catch()`, `.finally()`, and chainable `.then()`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const d = Deferred.fromPromise(Promise.resolve("hello"));
13
+ * const value = await d; // "hello"
14
+ * ```
15
+ */
16
+ Deferred.fromPromise = (p) => ({
17
+ then: ((f) => p.then(f)),
18
+ });
19
+ /**
20
+ * Converts a `Deferred` back into a `Promise`.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const p = Deferred.toPromise(Deferred.fromPromise(Promise.resolve(42)));
25
+ * // p is Promise<42>
26
+ * ```
27
+ */
28
+ Deferred.toPromise = (d) => new Promise((resolve) => d.then(resolve));
29
+ })(Deferred || (exports.Deferred = Deferred = {}));
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Task = void 0;
4
+ const Deferred_js_1 = require("./Deferred.js");
4
5
  const Result_js_1 = require("./Result.js");
6
+ // Internal helper — not exported. Runs a Task and converts the result to a Promise
7
+ // so that combinators can use Promise chaining (.then, Promise.all, Promise.race, etc.)
8
+ // internally without leaking that primitive through the public API.
9
+ const toPromise = (task) => Deferred_js_1.Deferred.toPromise(task());
5
10
  var Task;
6
11
  (function (Task) {
7
12
  /**
@@ -10,20 +15,19 @@ var Task;
10
15
  * @example
11
16
  * ```ts
12
17
  * const task = Task.resolve(42);
13
- * task().then(console.log); // 42
18
+ * const value = await task(); // 42
14
19
  * ```
15
20
  */
16
- Task.resolve = (value) => () => Promise.resolve(value);
21
+ Task.resolve = (value) => () => Deferred_js_1.Deferred.fromPromise(Promise.resolve(value));
17
22
  /**
18
23
  * Creates a Task from a function that returns a Promise.
19
- * Alias for directly creating a Task.
20
24
  *
21
25
  * @example
22
26
  * ```ts
23
27
  * const getTimestamp = Task.from(() => Promise.resolve(Date.now()));
24
28
  * ```
25
29
  */
26
- Task.from = (f) => f;
30
+ Task.from = (f) => () => Deferred_js_1.Deferred.fromPromise(f());
27
31
  /**
28
32
  * Transforms the value inside a Task.
29
33
  *
@@ -32,25 +36,26 @@ var Task;
32
36
  * pipe(
33
37
  * Task.resolve(5),
34
38
  * Task.map(n => n * 2)
35
- * )(); // Promise<10>
39
+ * )(); // Deferred<10>
36
40
  * ```
37
41
  */
38
- Task.map = (f) => (data) => () => data().then(f);
42
+ Task.map = (f) => (data) => Task.from(() => toPromise(data).then(f));
39
43
  /**
40
44
  * Chains Task computations. Passes the resolved value of the first Task to f.
41
45
  *
42
46
  * @example
43
47
  * ```ts
44
- * const readUserId: Task<string> = () => Promise.resolve(session.userId);
45
- * const loadPrefs = (id: string): Task<Preferences> => () => Promise.resolve(prefsCache.get(id));
48
+ * const readUserId: Task<string> = Task.resolve(session.userId);
49
+ * const loadPrefs = (id: string): Task<Preferences> =>
50
+ * Task.resolve(prefsCache.get(id));
46
51
  *
47
52
  * pipe(
48
53
  * readUserId,
49
54
  * Task.chain(loadPrefs)
50
- * )(); // Promise<Preferences>
55
+ * )(); // Deferred<Preferences>
51
56
  * ```
52
57
  */
53
- Task.chain = (f) => (data) => () => data().then((a) => f(a)());
58
+ Task.chain = (f) => (data) => Task.from(() => toPromise(data).then((a) => toPromise(f(a))));
54
59
  /**
55
60
  * Applies a function wrapped in a Task to a value wrapped in a Task.
56
61
  * Both Tasks run in parallel.
@@ -62,10 +67,13 @@ var Task;
62
67
  * Task.resolve(add),
63
68
  * Task.ap(Task.resolve(5)),
64
69
  * Task.ap(Task.resolve(3))
65
- * )(); // Promise<8>
70
+ * )(); // Deferred<8>
66
71
  * ```
67
72
  */
68
- Task.ap = (arg) => (data) => () => Promise.all([data(), arg()]).then(([f, a]) => f(a));
73
+ Task.ap = (arg) => (data) => Task.from(() => Promise.all([
74
+ toPromise(data),
75
+ toPromise(arg),
76
+ ]).then(([f, a]) => f(a)));
69
77
  /**
70
78
  * Executes a side effect on the value without changing the Task.
71
79
  * Useful for logging or debugging.
@@ -79,20 +87,20 @@ var Task;
79
87
  * );
80
88
  * ```
81
89
  */
82
- Task.tap = (f) => (data) => () => data().then((a) => {
90
+ Task.tap = (f) => (data) => Task.from(() => toPromise(data).then((a) => {
83
91
  f(a);
84
92
  return a;
85
- });
93
+ }));
86
94
  /**
87
95
  * Runs multiple Tasks in parallel and collects their results.
88
96
  *
89
97
  * @example
90
98
  * ```ts
91
99
  * Task.all([loadConfig, detectLocale, loadTheme])();
92
- * // Promise<[Config, string, Theme]>
100
+ * // Deferred<[Config, string, Theme]>
93
101
  * ```
94
102
  */
95
- Task.all = (tasks) => () => Promise.all(tasks.map((t) => t()));
103
+ Task.all = (tasks) => Task.from(() => Promise.all(tasks.map((t) => toPromise(t))));
96
104
  /**
97
105
  * Delays the execution of a Task by the specified milliseconds.
98
106
  * Useful for debouncing or rate limiting.
@@ -105,7 +113,7 @@ var Task;
105
113
  * )(); // Resolves after 1 second
106
114
  * ```
107
115
  */
108
- Task.delay = (ms) => (data) => () => new Promise((resolve, reject) => setTimeout(() => data().then(resolve, reject), ms));
116
+ Task.delay = (ms) => (data) => Task.from(() => new Promise((resolve) => setTimeout(() => toPromise(data).then(resolve), ms)));
109
117
  /**
110
118
  * Runs a Task a fixed number of times sequentially, collecting all results into an array.
111
119
  * An optional delay (ms) can be inserted between runs.
@@ -118,20 +126,20 @@ var Task;
118
126
  * )(); // Task<Reading[]> — 5 readings, one per second
119
127
  * ```
120
128
  */
121
- Task.repeat = (options) => (task) => () => {
129
+ Task.repeat = (options) => (task) => Task.from(() => {
122
130
  const { times, delay: ms } = options;
123
131
  if (times <= 0)
124
132
  return Promise.resolve([]);
125
133
  const results = [];
126
134
  const wait = () => ms !== undefined && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
127
- const run = (left) => task().then((a) => {
135
+ const run = (left) => toPromise(task).then((a) => {
128
136
  results.push(a);
129
137
  if (left <= 1)
130
138
  return results;
131
139
  return wait().then(() => run(left - 1));
132
140
  });
133
141
  return run(times);
134
- };
142
+ });
135
143
  /**
136
144
  * Runs a Task repeatedly until the result satisfies a predicate, returning that result.
137
145
  * An optional delay (ms) can be inserted between runs.
@@ -144,16 +152,16 @@ var Task;
144
152
  * )(); // polls every 500ms until status is "ready"
145
153
  * ```
146
154
  */
147
- Task.repeatUntil = (options) => (task) => () => {
155
+ Task.repeatUntil = (options) => (task) => Task.from(() => {
148
156
  const { when: predicate, delay: ms } = options;
149
157
  const wait = () => ms !== undefined && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
150
- const run = () => task().then((a) => {
158
+ const run = () => toPromise(task).then((a) => {
151
159
  if (predicate(a))
152
160
  return a;
153
161
  return wait().then(run);
154
162
  });
155
163
  return run();
156
- };
164
+ });
157
165
  /**
158
166
  * Converts a `Task<A>` into a `Task<Result<E, A>>`, resolving to `Err` if the
159
167
  * Task does not complete within the given time.
@@ -167,10 +175,10 @@ var Task;
167
175
  * );
168
176
  * ```
169
177
  */
170
- Task.timeout = (ms, onTimeout) => (task) => () => {
178
+ Task.timeout = (ms, onTimeout) => (task) => Task.from(() => {
171
179
  let timerId;
172
180
  return Promise.race([
173
- task().then((a) => {
181
+ toPromise(task).then((a) => {
174
182
  clearTimeout(timerId);
175
183
  return Result_js_1.Result.ok(a);
176
184
  }),
@@ -178,5 +186,5 @@ var Task;
178
186
  timerId = setTimeout(() => resolve(Result_js_1.Result.err(onTimeout())), ms);
179
187
  }),
180
188
  ]);
181
- };
189
+ });
182
190
  })(Task || (exports.Task = Task = {}));
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskOption = void 0;
4
+ const Deferred_js_1 = require("./Deferred.js");
4
5
  const Option_js_1 = require("./Option.js");
5
6
  const Task_js_1 = require("./Task.js");
6
7
  var TaskOption;
@@ -32,9 +33,9 @@ var TaskOption;
32
33
  * );
33
34
  * ```
34
35
  */
35
- TaskOption.tryCatch = (f) => () => f()
36
+ TaskOption.tryCatch = (f) => Task_js_1.Task.from(() => f()
36
37
  .then(Option_js_1.Option.some)
37
- .catch(() => Option_js_1.Option.none());
38
+ .catch(() => Option_js_1.Option.none()));
38
39
  /**
39
40
  * Transforms the value inside a TaskOption.
40
41
  */
@@ -56,7 +57,10 @@ var TaskOption;
56
57
  * Applies a function wrapped in a TaskOption to a value wrapped in a TaskOption.
57
58
  * Both Tasks run in parallel.
58
59
  */
59
- TaskOption.ap = (arg) => (data) => () => Promise.all([data(), arg()]).then(([of_, oa]) => Option_js_1.Option.ap(oa)(of_));
60
+ TaskOption.ap = (arg) => (data) => Task_js_1.Task.from(() => Promise.all([
61
+ Deferred_js_1.Deferred.toPromise(data()),
62
+ Deferred_js_1.Deferred.toPromise(arg()),
63
+ ]).then(([of_, oa]) => Option_js_1.Option.ap(oa)(of_)));
60
64
  /**
61
65
  * Extracts a value from a TaskOption by providing handlers for both cases.
62
66
  */
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskResult = void 0;
4
+ const Deferred_js_1 = require("./Deferred.js");
4
5
  const Result_js_1 = require("./Result.js");
5
6
  const Task_js_1 = require("./Task.js");
6
7
  var TaskResult;
@@ -26,9 +27,9 @@ var TaskResult;
26
27
  * );
27
28
  * ```
28
29
  */
29
- TaskResult.tryCatch = (f, onError) => () => f()
30
+ TaskResult.tryCatch = (f, onError) => Task_js_1.Task.from(() => f()
30
31
  .then(Result_js_1.Result.ok)
31
- .catch((e) => Result_js_1.Result.err(onError(e)));
32
+ .catch((e) => Result_js_1.Result.err(onError(e))));
32
33
  /**
33
34
  * Transforms the success value inside a TaskResult.
34
35
  */
@@ -85,10 +86,10 @@ var TaskResult;
85
86
  * );
86
87
  * ```
87
88
  */
88
- TaskResult.retry = (options) => (data) => () => {
89
+ TaskResult.retry = (options) => (data) => Task_js_1.Task.from(() => {
89
90
  const { attempts, backoff, when: shouldRetry } = options;
90
91
  const getDelay = (n) => backoff === undefined ? 0 : typeof backoff === "function" ? backoff(n) : backoff;
91
- const run = (left) => data().then((result) => {
92
+ const run = (left) => Deferred_js_1.Deferred.toPromise(data()).then((result) => {
92
93
  if (Result_js_1.Result.isOk(result))
93
94
  return result;
94
95
  if (left <= 1)
@@ -100,7 +101,7 @@ var TaskResult;
100
101
  return (ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve()).then(() => run(left - 1));
101
102
  });
102
103
  return run(attempts);
103
- };
104
+ });
104
105
  /**
105
106
  * Fails a TaskResult with a typed error if it does not resolve within the given time.
106
107
  *
@@ -112,10 +113,10 @@ var TaskResult;
112
113
  * );
113
114
  * ```
114
115
  */
115
- TaskResult.timeout = (ms, onTimeout) => (data) => () => {
116
+ TaskResult.timeout = (ms, onTimeout) => (data) => Task_js_1.Task.from(() => {
116
117
  let timerId;
117
118
  return Promise.race([
118
- data().then((result) => {
119
+ Deferred_js_1.Deferred.toPromise(data()).then((result) => {
119
120
  clearTimeout(timerId);
120
121
  return result;
121
122
  }),
@@ -123,5 +124,5 @@ var TaskResult;
123
124
  timerId = setTimeout(() => resolve(Result_js_1.Result.err(onTimeout())), ms);
124
125
  }),
125
126
  ]);
126
- };
127
+ });
127
128
  })(TaskResult || (exports.TaskResult = TaskResult = {}));
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TaskValidation = void 0;
4
+ const Deferred_js_1 = require("./Deferred.js");
4
5
  const Task_js_1 = require("./Task.js");
5
6
  const Validation_js_1 = require("./Validation.js");
6
7
  var TaskValidation;
@@ -34,9 +35,9 @@ var TaskValidation;
34
35
  * );
35
36
  * ```
36
37
  */
37
- TaskValidation.tryCatch = (f, onError) => () => f()
38
+ TaskValidation.tryCatch = (f, onError) => Task_js_1.Task.from(() => f()
38
39
  .then((Validation_js_1.Validation.valid))
39
- .catch((e) => Validation_js_1.Validation.invalid(onError(e)));
40
+ .catch((e) => Validation_js_1.Validation.invalid(onError(e))));
40
41
  /**
41
42
  * Transforms the success value inside a TaskValidation.
42
43
  */
@@ -64,7 +65,10 @@ var TaskValidation;
64
65
  * )();
65
66
  * ```
66
67
  */
67
- TaskValidation.ap = (arg) => (data) => () => Promise.all([data(), arg()]).then(([vf, va]) => Validation_js_1.Validation.ap(va)(vf));
68
+ TaskValidation.ap = (arg) => (data) => Task_js_1.Task.from(() => Promise.all([
69
+ Deferred_js_1.Deferred.toPromise(data()),
70
+ Deferred_js_1.Deferred.toPromise(arg()),
71
+ ]).then(([vf, va]) => Validation_js_1.Validation.ap(va)(vf)));
68
72
  /**
69
73
  * Extracts a value from a TaskValidation by providing handlers for both cases.
70
74
  */
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Arr.js"), exports);
18
+ __exportStar(require("./Deferred.js"), exports);
18
19
  __exportStar(require("./Lens.js"), exports);
19
20
  __exportStar(require("./Option.js"), exports);
20
21
  __exportStar(require("./Reader.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Arr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Arr.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Arr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ declare const _deferred: unique symbol;
2
+ /**
3
+ * A nominally typed, one-shot async value that supports `await` but enforces infallibility.
4
+ *
5
+ * Two design choices work together to make the guarantee structural rather than documentary:
6
+ *
7
+ * - The phantom `[_deferred]` symbol makes the type **nominal**: only values produced by
8
+ * `Deferred.fromPromise` satisfy it. A plain object `{ then: ... }` does not.
9
+ * - The single-parameter `.then()` **excludes rejection handlers** by construction. There is
10
+ * no second argument to pass, so chaining and `.catch()` are impossible.
11
+ *
12
+ * This makes `Deferred<A>` the natural return type for `Task<A>`, which is guaranteed to
13
+ * never reject.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const value = await Deferred.fromPromise(Promise.resolve(42));
18
+ * // value === 42
19
+ * ```
20
+ */
21
+ export type Deferred<A> = {
22
+ readonly [_deferred]: A;
23
+ readonly then: (onfulfilled: (value: A) => void) => void;
24
+ };
25
+ export declare namespace Deferred {
26
+ /**
27
+ * Wraps a `Promise` into a `Deferred`, structurally excluding rejection handlers,
28
+ * `.catch()`, `.finally()`, and chainable `.then()`.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const d = Deferred.fromPromise(Promise.resolve("hello"));
33
+ * const value = await d; // "hello"
34
+ * ```
35
+ */
36
+ const fromPromise: <A>(p: Promise<A>) => Deferred<A>;
37
+ /**
38
+ * Converts a `Deferred` back into a `Promise`.
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * const p = Deferred.toPromise(Deferred.fromPromise(Promise.resolve(42)));
43
+ * // p is Promise<42>
44
+ * ```
45
+ */
46
+ const toPromise: <A>(d: Deferred<A>) => Promise<A>;
47
+ }
48
+ export {};
49
+ //# sourceMappingURL=Deferred.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Deferred.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Deferred.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,SAAS,EAAE,OAAO,MAAM,CAAC;AAEvC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;IACxB,QAAQ,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,yBAAiB,QAAQ,CAAC;IACxB;;;;;;;;;OASG;IACI,MAAM,WAAW,GAAI,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,CAAC,CAGtC,CAAC;IAEpB;;;;;;;;OAQG;IACI,MAAM,SAAS,GAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CACZ,CAAC;CAC7C"}
@@ -1,3 +1,4 @@
1
+ import { Deferred } from "./Deferred.js";
1
2
  import { Result } from "./Result.js";
2
3
  /**
3
4
  * A lazy async computation that always resolves.
@@ -7,9 +8,25 @@ import { Result } from "./Result.js";
7
8
  * - **Infallible** — it never rejects. If failure is possible, encode it in the
8
9
  * return type using `TaskResult<E, A>` instead.
9
10
  *
11
+ * Calling a Task returns a `Deferred<A>` — a one-shot async value that supports
12
+ * `await` but has no `.catch()`, `.finally()`, or chainable `.then()`.
13
+ *
14
+ * **Consuming a Task:**
15
+ *
16
+ * Use `await task()` to run it and get the value directly:
17
+ * ```ts
18
+ * const value: number = await task();
19
+ * ```
20
+ *
21
+ * When you need an explicit `Promise<A>` (e.g. for a third-party API), convert
22
+ * the `Deferred` with `Deferred.toPromise`:
23
+ * ```ts
24
+ * const p: Promise<number> = Deferred.toPromise(task());
25
+ * ```
26
+ *
10
27
  * @example
11
28
  * ```ts
12
- * const getTimestamp: Task<number> = () => Promise.resolve(Date.now());
29
+ * const getTimestamp: Task<number> = Task.resolve(Date.now());
13
30
  *
14
31
  * // Nothing runs yet — getTimestamp is just a description
15
32
  * const formatted = pipe(
@@ -21,7 +38,7 @@ import { Result } from "./Result.js";
21
38
  * const result = await formatted();
22
39
  * ```
23
40
  */
24
- export type Task<A> = () => Promise<A>;
41
+ export type Task<A> = () => Deferred<A>;
25
42
  export declare namespace Task {
26
43
  /**
27
44
  * Creates a Task that immediately resolves to the given value.
@@ -29,13 +46,12 @@ export declare namespace Task {
29
46
  * @example
30
47
  * ```ts
31
48
  * const task = Task.resolve(42);
32
- * task().then(console.log); // 42
49
+ * const value = await task(); // 42
33
50
  * ```
34
51
  */
35
52
  const resolve: <A>(value: A) => Task<A>;
36
53
  /**
37
54
  * Creates a Task from a function that returns a Promise.
38
- * Alias for directly creating a Task.
39
55
  *
40
56
  * @example
41
57
  * ```ts
@@ -51,7 +67,7 @@ export declare namespace Task {
51
67
  * pipe(
52
68
  * Task.resolve(5),
53
69
  * Task.map(n => n * 2)
54
- * )(); // Promise<10>
70
+ * )(); // Deferred<10>
55
71
  * ```
56
72
  */
57
73
  const map: <A, B>(f: (a: A) => B) => (data: Task<A>) => Task<B>;
@@ -60,13 +76,14 @@ export declare namespace Task {
60
76
  *
61
77
  * @example
62
78
  * ```ts
63
- * const readUserId: Task<string> = () => Promise.resolve(session.userId);
64
- * const loadPrefs = (id: string): Task<Preferences> => () => Promise.resolve(prefsCache.get(id));
79
+ * const readUserId: Task<string> = Task.resolve(session.userId);
80
+ * const loadPrefs = (id: string): Task<Preferences> =>
81
+ * Task.resolve(prefsCache.get(id));
65
82
  *
66
83
  * pipe(
67
84
  * readUserId,
68
85
  * Task.chain(loadPrefs)
69
- * )(); // Promise<Preferences>
86
+ * )(); // Deferred<Preferences>
70
87
  * ```
71
88
  */
72
89
  const chain: <A, B>(f: (a: A) => Task<B>) => (data: Task<A>) => Task<B>;
@@ -81,7 +98,7 @@ export declare namespace Task {
81
98
  * Task.resolve(add),
82
99
  * Task.ap(Task.resolve(5)),
83
100
  * Task.ap(Task.resolve(3))
84
- * )(); // Promise<8>
101
+ * )(); // Deferred<8>
85
102
  * ```
86
103
  */
87
104
  const ap: <A>(arg: Task<A>) => <B>(data: Task<(a: A) => B>) => Task<B>;
@@ -105,7 +122,7 @@ export declare namespace Task {
105
122
  * @example
106
123
  * ```ts
107
124
  * Task.all([loadConfig, detectLocale, loadTheme])();
108
- * // Promise<[Config, string, Theme]>
125
+ * // Deferred<[Config, string, Theme]>
109
126
  * ```
110
127
  */
111
128
  const all: <T extends readonly Task<unknown>[]>(tasks: T) => Task<{ [K in keyof T]: T[K] extends Task<infer A> ? A : never; }>;
@@ -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;;;;;;;;;;;;;;;;;;;;;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
+ {"version":3,"file":"Task.d.ts","sourceRoot":"","sources":["../../../src/src/Core/Task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;AAOxC,yBAAiB,IAAI,CAAC;IACpB;;;;;;;;OAQG;IACI,MAAM,OAAO,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,IAAI,CAAC,CAAC,CACE,CAAC;IAE/C;;;;;;;OAOG;IACI,MAAM,IAAI,GAAI,CAAC,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAAoC,CAAC;IAEzF;;;;;;;;;;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,CAC/B,CAAC;IAEtC;;;;;;;;;;;;;;OAcG;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,CAClB,CAAC;IAE3D;;;;;;;;;;;;;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,CAMxE,CAAC;IAEJ;;;;;;;;;;;;OAYG;IACI,MAAM,GAAG,GAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,MAAM,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAMjE,CAAC;IAEJ;;;;;;;;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,CAQ/D,CAAC;IAEJ;;;;;;;;;;;OAWG;IACI,MAAM,KAAK,GAAI,IAAI,MAAM,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,KAAG,IAAI,CAAC,CAAC,CAS5D,CAAC;IAEJ;;;;;;;;;;;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,CAcxE,CAAC;IAEP;;;;;;;;;;;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,CAWhF,CAAC;IAEP;;;;;;;;;;;;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,CAYxE,CAAC;CACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskOption.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskOption.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskOption.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskOption.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskResult.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskResult.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskResult.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskResult.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskValidation.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskValidation.d.ts","sourceRoot":"","sources":["../../../src/src/Core/TaskValidation.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./Arr.js";
2
+ export * from "./Deferred.js";
2
3
  export * from "./Lens.js";
3
4
  export * from "./Option.js";
4
5
  export * from "./Reader.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/Core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/Core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}