@nlozgachev/pipelined 0.30.0 → 0.32.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/dist/core.js CHANGED
@@ -20,12 +20,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/Core/index.ts
21
21
  var Core_exports = {};
22
22
  __export(Core_exports, {
23
+ Combinable: () => Combinable,
23
24
  Deferred: () => Deferred,
25
+ Equality: () => Equality,
26
+ Lazy: () => Lazy,
24
27
  Lens: () => Lens,
25
28
  Logged: () => Logged,
26
29
  Maybe: () => Maybe,
27
30
  Op: () => Op,
28
31
  Optional: () => Optional,
32
+ Ordering: () => Ordering,
29
33
  Predicate: () => Predicate,
30
34
  Reader: () => Reader,
31
35
  Refinement: () => Refinement,
@@ -43,65 +47,6 @@ __export(Core_exports, {
43
47
  });
44
48
  module.exports = __toCommonJS(Core_exports);
45
49
 
46
- // src/Core/Deferred.ts
47
- var Deferred;
48
- ((Deferred2) => {
49
- Deferred2.fromPromise = (p) => (
50
- // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
51
- { then: ((f) => p.then(f)) }
52
- );
53
- Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
54
- })(Deferred || (Deferred = {}));
55
-
56
- // src/Core/Lens.ts
57
- var Lens;
58
- ((Lens2) => {
59
- Lens2.make = (get2, set2) => ({ get: get2, set: set2 });
60
- Lens2.prop = () => (key) => (0, Lens2.make)(
61
- (s) => s[key],
62
- (a) => (s) => ({ ...s, [key]: a })
63
- );
64
- Lens2.get = (lens) => (s) => lens.get(s);
65
- Lens2.set = (lens) => (a) => (s) => lens.set(a)(s);
66
- Lens2.modify = (lens) => (f) => (s) => lens.set(f(lens.get(s)))(s);
67
- Lens2.andThen = (inner) => (outer) => (0, Lens2.make)(
68
- (s) => inner.get(outer.get(s)),
69
- (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
70
- );
71
- Lens2.andThenOptional = (inner) => (outer) => ({
72
- get: (s) => inner.get(outer.get(s)),
73
- set: (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
74
- });
75
- Lens2.toOptional = (lens) => ({
76
- get: (s) => ({ kind: "Some", value: lens.get(s) }),
77
- set: lens.set
78
- });
79
- })(Lens || (Lens = {}));
80
-
81
- // src/Core/Logged.ts
82
- var Logged;
83
- ((Logged2) => {
84
- Logged2.make = (value) => ({ value, log: [] });
85
- Logged2.tell = (entry) => ({ value: void 0, log: [entry] });
86
- Logged2.map = (f) => (data) => ({
87
- value: f(data.value),
88
- log: data.log
89
- });
90
- Logged2.chain = (f) => (data) => {
91
- const next = f(data.value);
92
- return { value: next.value, log: [...data.log, ...next.log] };
93
- };
94
- Logged2.ap = (arg) => (data) => ({
95
- value: data.value(arg.value),
96
- log: [...data.log, ...arg.log]
97
- });
98
- Logged2.tap = (f) => (data) => {
99
- f(data.value);
100
- return data;
101
- };
102
- Logged2.run = (data) => [data.value, data.log];
103
- })(Logged || (Logged = {}));
104
-
105
50
  // src/Core/Result.ts
106
51
  var Result;
107
52
  ((Result2) => {
@@ -165,6 +110,137 @@ var Maybe;
165
110
  Maybe2.ap = (arg) => (data) => (0, Maybe2.isSome)(data) && (0, Maybe2.isSome)(arg) ? (0, Maybe2.some)(data.value(arg.value)) : (0, Maybe2.none)();
166
111
  })(Maybe || (Maybe = {}));
167
112
 
113
+ // src/Core/Combinable.ts
114
+ var Combinable;
115
+ ((Combinable2) => {
116
+ Combinable2.string = {
117
+ empty: "",
118
+ combine: (b) => (a) => a + b
119
+ };
120
+ Combinable2.sum = {
121
+ empty: 0,
122
+ combine: (b) => (a) => a + b
123
+ };
124
+ Combinable2.product = {
125
+ empty: 1,
126
+ combine: (b) => (a) => a * b
127
+ };
128
+ Combinable2.all = {
129
+ empty: true,
130
+ combine: (b) => (a) => a && b
131
+ };
132
+ Combinable2.any = {
133
+ empty: false,
134
+ combine: (b) => (a) => a || b
135
+ };
136
+ Combinable2.array = () => ({
137
+ empty: [],
138
+ combine: (b) => (a) => [...a, ...b]
139
+ });
140
+ Combinable2.maybe = (inner) => ({
141
+ empty: Maybe.none(),
142
+ combine: (b) => (a) => Maybe.isNone(a) ? b : Maybe.isNone(b) ? a : Maybe.some(inner.combine(b.value)(a.value))
143
+ });
144
+ Combinable2.fold = (c) => (data) => data.reduce((acc, x) => c.combine(x)(acc), c.empty);
145
+ })(Combinable || (Combinable = {}));
146
+
147
+ // src/Core/Deferred.ts
148
+ var Deferred;
149
+ ((Deferred2) => {
150
+ Deferred2.fromPromise = (p) => (
151
+ // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
152
+ { then: ((f) => p.then(f)) }
153
+ );
154
+ Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
155
+ })(Deferred || (Deferred = {}));
156
+
157
+ // src/Core/Equality.ts
158
+ var Equality;
159
+ ((Equality2) => {
160
+ Equality2.string = (a, b) => a === b;
161
+ Equality2.number = (a, b) => a === b;
162
+ Equality2.boolean = (a, b) => a === b;
163
+ Equality2.date = (a, b) => a.getTime() === b.getTime();
164
+ Equality2.array = (eq) => (a, b) => a.length === b.length && a.every((x, i) => eq(x, b[i]));
165
+ Equality2.by = (f) => (eq) => (a, b) => eq(f(a), f(b));
166
+ Equality2.and = (eq2) => (eq1) => (a, b) => eq1(a, b) && eq2(a, b);
167
+ })(Equality || (Equality = {}));
168
+
169
+ // src/Core/Lazy.ts
170
+ var Lazy;
171
+ ((Lazy2) => {
172
+ Lazy2.from = (f) => {
173
+ let done = false;
174
+ let cache;
175
+ return {
176
+ get: () => {
177
+ if (!done) {
178
+ cache = f();
179
+ done = true;
180
+ }
181
+ return cache;
182
+ }
183
+ };
184
+ };
185
+ Lazy2.evaluate = (lazy) => lazy.get();
186
+ Lazy2.map = (f) => (lazy) => Lazy2.from(() => f(lazy.get()));
187
+ Lazy2.chain = (f) => (lazy) => Lazy2.from(() => f(lazy.get()).get());
188
+ Lazy2.tap = (f) => (lazy) => Lazy2.from(() => {
189
+ const v = lazy.get();
190
+ f(v);
191
+ return v;
192
+ });
193
+ })(Lazy || (Lazy = {}));
194
+
195
+ // src/Core/Lens.ts
196
+ var Lens;
197
+ ((Lens2) => {
198
+ Lens2.make = (get2, set2) => ({ get: get2, set: set2 });
199
+ Lens2.prop = () => (key) => (0, Lens2.make)(
200
+ (s) => s[key],
201
+ (a) => (s) => ({ ...s, [key]: a })
202
+ );
203
+ Lens2.get = (lens) => (s) => lens.get(s);
204
+ Lens2.set = (lens) => (a) => (s) => lens.set(a)(s);
205
+ Lens2.modify = (lens) => (f) => (s) => lens.set(f(lens.get(s)))(s);
206
+ Lens2.andThen = (inner) => (outer) => (0, Lens2.make)(
207
+ (s) => inner.get(outer.get(s)),
208
+ (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
209
+ );
210
+ Lens2.andThenOptional = (inner) => (outer) => ({
211
+ get: (s) => inner.get(outer.get(s)),
212
+ set: (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
213
+ });
214
+ Lens2.toOptional = (lens) => ({
215
+ get: (s) => ({ kind: "Some", value: lens.get(s) }),
216
+ set: lens.set
217
+ });
218
+ })(Lens || (Lens = {}));
219
+
220
+ // src/Core/Logged.ts
221
+ var Logged;
222
+ ((Logged2) => {
223
+ Logged2.make = (value) => ({ value, log: [] });
224
+ Logged2.tell = (entry) => ({ value: void 0, log: [entry] });
225
+ Logged2.map = (f) => (data) => ({
226
+ value: f(data.value),
227
+ log: data.log
228
+ });
229
+ Logged2.chain = (f) => (data) => {
230
+ const next = f(data.value);
231
+ return { value: next.value, log: [...data.log, ...next.log] };
232
+ };
233
+ Logged2.ap = (arg) => (data) => ({
234
+ value: data.value(arg.value),
235
+ log: [...data.log, ...arg.log]
236
+ });
237
+ Logged2.tap = (f) => (data) => {
238
+ f(data.value);
239
+ return data;
240
+ };
241
+ Logged2.run = (data) => [data.value, data.log];
242
+ })(Logged || (Logged = {}));
243
+
168
244
  // src/internal/Op.util.ts
169
245
  var _abortedNil = { kind: "OpNil", reason: "aborted" };
170
246
  var _droppedNil = { kind: "OpNil", reason: "dropped" };
@@ -1067,10 +1143,6 @@ var Op;
1067
1143
  Op2.wire = (source, f) => source.subscribe((state) => {
1068
1144
  if ((0, Op2.isOk)(state)) f(state.value);
1069
1145
  });
1070
- Op2.wireAll = (...pairs) => {
1071
- const cleanups = pairs.map(([source, f]) => (0, Op2.wire)(source, f));
1072
- return () => cleanups.forEach((c) => c());
1073
- };
1074
1146
  function interpret(op, options) {
1075
1147
  const { strategy, retry: retryOptions, timeout: timeoutOptions } = options;
1076
1148
  switch (strategy) {
@@ -1171,6 +1243,20 @@ var Optional;
1171
1243
  );
1172
1244
  })(Optional || (Optional = {}));
1173
1245
 
1246
+ // src/Core/Ordering.ts
1247
+ var Ordering;
1248
+ ((Ordering2) => {
1249
+ Ordering2.string = (a, b) => a < b ? -1 : a > b ? 1 : 0;
1250
+ Ordering2.number = (a, b) => a - b;
1251
+ Ordering2.date = (a, b) => a.getTime() - b.getTime();
1252
+ Ordering2.reverse = (ord) => (a, b) => ord(b, a);
1253
+ Ordering2.thenBy = (ord2) => (ord1) => (a, b) => {
1254
+ const r = ord1(a, b);
1255
+ return r !== 0 ? r : ord2(a, b);
1256
+ };
1257
+ Ordering2.by = (f) => (ord) => (a, b) => ord(f(a), f(b));
1258
+ })(Ordering || (Ordering = {}));
1259
+
1174
1260
  // src/Core/Predicate.ts
1175
1261
  var Predicate;
1176
1262
  ((Predicate2) => {
@@ -1309,58 +1395,135 @@ var Task;
1309
1395
  (signal) => Promise.all(tasks.map((t) => toPromise(t, signal)))
1310
1396
  );
1311
1397
  Task2.delay = (ms) => (data) => (0, Task2.from)(
1312
- (signal) => new Promise(
1313
- (resolve2) => setTimeout(
1314
- () => toPromise(data, signal).then(resolve2),
1315
- ms
1316
- )
1317
- )
1398
+ (signal) => new Promise((resolve2) => {
1399
+ let timerId = void 0;
1400
+ const onAbort = () => {
1401
+ if (timerId !== void 0) {
1402
+ clearTimeout(timerId);
1403
+ }
1404
+ resolve2(toPromise(data, signal));
1405
+ };
1406
+ if (signal) {
1407
+ if (signal.aborted) {
1408
+ return resolve2(toPromise(data, signal));
1409
+ }
1410
+ signal.addEventListener("abort", onAbort, { once: true });
1411
+ }
1412
+ timerId = setTimeout(() => {
1413
+ signal?.removeEventListener("abort", onAbort);
1414
+ resolve2(toPromise(data, signal));
1415
+ }, ms);
1416
+ })
1318
1417
  );
1319
1418
  Task2.repeat = (options) => (task) => (0, Task2.from)((signal) => {
1320
1419
  const { times, delay: ms } = options;
1321
1420
  if (times <= 0) return Promise.resolve([]);
1322
1421
  const results = [];
1323
- const wait = () => ms !== void 0 && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
1324
- const run2 = (left) => toPromise(task, signal).then((a) => {
1325
- results.push(a);
1326
- if (left <= 1) return results;
1327
- return wait().then(() => run2(left - 1));
1328
- });
1422
+ const wait = () => {
1423
+ if (signal?.aborted) return Promise.resolve();
1424
+ return new Promise((r) => {
1425
+ let timerId = void 0;
1426
+ const onAbort = () => {
1427
+ if (timerId !== void 0) {
1428
+ clearTimeout(timerId);
1429
+ }
1430
+ r();
1431
+ };
1432
+ if (signal) {
1433
+ signal.addEventListener("abort", onAbort, { once: true });
1434
+ }
1435
+ timerId = setTimeout(() => {
1436
+ signal?.removeEventListener("abort", onAbort);
1437
+ r();
1438
+ }, ms || 0);
1439
+ });
1440
+ };
1441
+ const run2 = (left) => {
1442
+ if (signal?.aborted) {
1443
+ return Promise.resolve(results);
1444
+ }
1445
+ return toPromise(task, signal).then((a) => {
1446
+ results.push(a);
1447
+ if (left <= 1 || signal?.aborted) return results;
1448
+ return wait().then(() => run2(left - 1));
1449
+ });
1450
+ };
1329
1451
  return run2(times);
1330
1452
  });
1331
1453
  Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
1332
1454
  const { when: predicate, delay: ms, maxAttempts } = options;
1333
- const wait = () => ms !== void 0 && ms > 0 ? new Promise((r) => setTimeout(r, ms)) : Promise.resolve();
1334
- const run2 = (attempt) => toPromise(task, signal).then((a) => {
1335
- if (predicate(a)) return a;
1336
- if (maxAttempts !== void 0 && attempt >= maxAttempts) return a;
1337
- return wait().then(() => run2(attempt + 1));
1338
- });
1455
+ const wait = () => {
1456
+ if (signal?.aborted) return Promise.resolve();
1457
+ return new Promise((r) => {
1458
+ let timerId = void 0;
1459
+ const onAbort = () => {
1460
+ if (timerId !== void 0) {
1461
+ clearTimeout(timerId);
1462
+ }
1463
+ r();
1464
+ };
1465
+ if (signal) {
1466
+ signal.addEventListener("abort", onAbort, { once: true });
1467
+ }
1468
+ timerId = setTimeout(() => {
1469
+ signal?.removeEventListener("abort", onAbort);
1470
+ r();
1471
+ }, ms || 0);
1472
+ });
1473
+ };
1474
+ const run2 = (attempt, lastValue) => {
1475
+ if (signal?.aborted && lastValue !== void 0) {
1476
+ return Promise.resolve(lastValue);
1477
+ }
1478
+ return toPromise(task, signal).then((a) => {
1479
+ if (predicate(a)) return a;
1480
+ if (maxAttempts !== void 0 && attempt >= maxAttempts) return a;
1481
+ if (signal?.aborted) return a;
1482
+ return wait().then(() => run2(attempt + 1, a));
1483
+ });
1484
+ };
1339
1485
  return run2(1);
1340
1486
  });
1341
1487
  Task2.race = (tasks) => (0, Task2.from)((signal) => Promise.race(tasks.map((t) => toPromise(t, signal))));
1342
1488
  Task2.sequential = (tasks) => (0, Task2.from)(async (signal) => {
1343
1489
  const results = [];
1344
1490
  for (const task of tasks) {
1491
+ if (signal?.aborted) {
1492
+ break;
1493
+ }
1345
1494
  results.push(await toPromise(task, signal));
1346
1495
  }
1347
1496
  return results;
1348
1497
  });
1349
1498
  Task2.timeout = (ms, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
1350
1499
  const controller = new AbortController();
1351
- const onOuterAbort = () => controller.abort();
1352
- outerSignal?.addEventListener("abort", onOuterAbort, { once: true });
1353
1500
  let timerId;
1501
+ const cleanUp = () => {
1502
+ if (timerId !== void 0) {
1503
+ clearTimeout(timerId);
1504
+ }
1505
+ outerSignal?.removeEventListener("abort", onOuterAbort);
1506
+ };
1507
+ const onOuterAbort = () => {
1508
+ cleanUp();
1509
+ controller.abort();
1510
+ };
1511
+ if (outerSignal) {
1512
+ if (outerSignal.aborted) {
1513
+ controller.abort();
1514
+ } else {
1515
+ outerSignal.addEventListener("abort", onOuterAbort, { once: true });
1516
+ }
1517
+ }
1354
1518
  return Promise.race([
1355
1519
  toPromise(task, controller.signal).then((a) => {
1356
- clearTimeout(timerId);
1357
- outerSignal?.removeEventListener("abort", onOuterAbort);
1520
+ cleanUp();
1358
1521
  return Result.ok(a);
1359
1522
  }),
1360
1523
  new Promise((resolve2) => {
1361
1524
  timerId = setTimeout(() => {
1362
1525
  controller.abort();
1363
- outerSignal?.removeEventListener("abort", onOuterAbort);
1526
+ cleanUp();
1364
1527
  resolve2(Result.error(onTimeout()));
1365
1528
  }, ms);
1366
1529
  })
@@ -1396,28 +1559,33 @@ var Resource;
1396
1559
  release
1397
1560
  });
1398
1561
  Resource2.use = (f) => (resource) => Task.from(
1399
- () => Deferred.toPromise(resource.acquire()).then(async (acquired) => {
1562
+ (signal) => Deferred.toPromise(resource.acquire(signal)).then(async (acquired) => {
1400
1563
  if (Result.isError(acquired)) return acquired;
1401
1564
  const a = acquired.value;
1402
- const usageResult = await Deferred.toPromise(f(a)());
1403
- await Deferred.toPromise(resource.release(a)());
1404
- return usageResult;
1565
+ try {
1566
+ const usageResult = await Deferred.toPromise(f(a)(signal));
1567
+ return usageResult;
1568
+ } finally {
1569
+ await Deferred.toPromise(resource.release(a)(signal));
1570
+ }
1405
1571
  })
1406
1572
  );
1407
1573
  Resource2.combine = (resourceA, resourceB) => ({
1408
1574
  acquire: Task.from(
1409
- () => Deferred.toPromise(resourceA.acquire()).then(async (acquiredA) => {
1575
+ (signal) => Deferred.toPromise(resourceA.acquire(signal)).then(async (acquiredA) => {
1410
1576
  if (Result.isError(acquiredA)) return acquiredA;
1411
1577
  const a = acquiredA.value;
1412
- const acquiredB = await Deferred.toPromise(resourceB.acquire());
1578
+ const acquiredB = await Deferred.toPromise(resourceB.acquire(signal));
1413
1579
  if (Result.isError(acquiredB)) {
1414
- await Deferred.toPromise(resourceA.release(a)());
1580
+ await Deferred.toPromise(resourceA.release(a)(signal));
1415
1581
  return acquiredB;
1416
1582
  }
1417
1583
  return Result.ok([a, acquiredB.value]);
1418
1584
  })
1419
1585
  ),
1420
- release: ([a, b]) => Task.from(() => Deferred.toPromise(resourceB.release(b)()).then(() => Deferred.toPromise(resourceA.release(a)())))
1586
+ release: ([a, b]) => Task.from(
1587
+ (signal) => Deferred.toPromise(resourceB.release(b)(signal)).then(() => Deferred.toPromise(resourceA.release(a)(signal)))
1588
+ )
1421
1589
  });
1422
1590
  })(Resource || (Resource = {}));
1423
1591
 
@@ -1460,14 +1628,14 @@ var TaskMaybe;
1460
1628
  TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
1461
1629
  TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
1462
1630
  TaskMaybe2.tryCatch = (f) => Task.from(
1463
- () => f().then(Maybe.some).catch(() => Maybe.none())
1631
+ (signal) => f(signal).then(Maybe.some).catch(() => Maybe.none())
1464
1632
  );
1465
1633
  TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
1466
1634
  TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
1467
1635
  TaskMaybe2.ap = (arg) => (data) => Task.from(
1468
- () => Promise.all([
1469
- Deferred.toPromise(data()),
1470
- Deferred.toPromise(arg())
1636
+ (signal) => Promise.all([
1637
+ Deferred.toPromise(data(signal)),
1638
+ Deferred.toPromise(arg(signal))
1471
1639
  ]).then(([of_, oa]) => Maybe.ap(oa)(of_))
1472
1640
  );
1473
1641
  TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
@@ -1501,6 +1669,12 @@ var TaskResult;
1501
1669
  TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
1502
1670
  TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
1503
1671
  TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
1672
+ TaskResult2.ap = (arg) => (data) => Task.from(
1673
+ (signal) => Promise.all([
1674
+ Deferred.toPromise(data(signal)),
1675
+ Deferred.toPromise(arg(signal))
1676
+ ]).then(([of_, oa]) => Result.ap(oa)(of_))
1677
+ );
1504
1678
  TaskResult2.run = (signal) => (task) => Deferred.toPromise(task(signal));
1505
1679
  })(TaskResult || (TaskResult = {}));
1506
1680
 
@@ -1574,13 +1748,13 @@ var TaskValidation;
1574
1748
  TaskValidation2.invalidAll = (errors) => Task.resolve(Validation.invalidAll(errors));
1575
1749
  TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
1576
1750
  TaskValidation2.tryCatch = (f, onError) => Task.from(
1577
- () => f().then(Validation.valid).catch((e) => Validation.invalid(onError(e)))
1751
+ (signal) => f(signal).then(Validation.valid).catch((e) => Validation.invalid(onError(e)))
1578
1752
  );
1579
1753
  TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
1580
1754
  TaskValidation2.ap = (arg) => (data) => Task.from(
1581
- () => Promise.all([
1582
- Deferred.toPromise(data()),
1583
- Deferred.toPromise(arg())
1755
+ (signal) => Promise.all([
1756
+ Deferred.toPromise(data(signal)),
1757
+ Deferred.toPromise(arg(signal))
1584
1758
  ]).then(([vf, va]) => Validation.ap(va)(vf))
1585
1759
  );
1586
1760
  TaskValidation2.fold = (onInvalid, onValid) => (data) => Task.map(Validation.fold(onInvalid, onValid))(data);
@@ -1591,13 +1765,13 @@ var TaskValidation;
1591
1765
  (validation) => Validation.isValid(validation) ? Task.resolve(validation) : fallback(validation.errors)
1592
1766
  )(data);
1593
1767
  TaskValidation2.product = (first, second) => Task.from(
1594
- () => Promise.all([
1595
- Deferred.toPromise(first()),
1596
- Deferred.toPromise(second())
1768
+ (signal) => Promise.all([
1769
+ Deferred.toPromise(first(signal)),
1770
+ Deferred.toPromise(second(signal))
1597
1771
  ]).then(([va, vb]) => Validation.product(va, vb))
1598
1772
  );
1599
1773
  TaskValidation2.productAll = (data) => Task.from(
1600
- () => Promise.all(data.map((t) => Deferred.toPromise(t()))).then((results) => Validation.productAll(results))
1774
+ (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => Validation.productAll(results))
1601
1775
  );
1602
1776
  })(TaskValidation || (TaskValidation = {}));
1603
1777
 
@@ -1684,12 +1858,16 @@ var Tuple;
1684
1858
  })(Tuple || (Tuple = {}));
1685
1859
  // Annotate the CommonJS export names for ESM import in node:
1686
1860
  0 && (module.exports = {
1861
+ Combinable,
1687
1862
  Deferred,
1863
+ Equality,
1864
+ Lazy,
1688
1865
  Lens,
1689
1866
  Logged,
1690
1867
  Maybe,
1691
1868
  Op,
1692
1869
  Optional,
1870
+ Ordering,
1693
1871
  Predicate,
1694
1872
  Reader,
1695
1873
  Refinement,
package/dist/core.mjs CHANGED
@@ -1,8 +1,12 @@
1
1
  import {
2
+ Combinable,
3
+ Equality,
4
+ Lazy,
2
5
  Lens,
3
6
  Logged,
4
7
  Op,
5
8
  Optional,
9
+ Ordering,
6
10
  Predicate,
7
11
  Reader,
8
12
  Refinement,
@@ -15,20 +19,24 @@ import {
15
19
  These,
16
20
  Tuple,
17
21
  Validation
18
- } from "./chunk-PV7JOUKL.mjs";
22
+ } from "./chunk-L3NC44SN.mjs";
19
23
  import {
20
24
  Deferred,
21
25
  Maybe,
22
26
  Result,
23
27
  Task
24
- } from "./chunk-SDGDJ7CU.mjs";
28
+ } from "./chunk-TK5ZCGP2.mjs";
25
29
  export {
30
+ Combinable,
26
31
  Deferred,
32
+ Equality,
33
+ Lazy,
27
34
  Lens,
28
35
  Logged,
29
36
  Maybe,
30
37
  Op,
31
38
  Optional,
39
+ Ordering,
32
40
  Predicate,
33
41
  Reader,
34
42
  Refinement,
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.mjs';
2
- export { D as Deferred, E as Error, M as Maybe, N as None, O as Ok, R as Result, S as Some, T as Task } from './Task-BDcKwFAj.mjs';
3
- export { Failure, Invalid, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Valid, Validation } from './core.mjs';
2
+ export { Combinable, Failure, Invalid, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Valid, Validation } from './core.mjs';
3
+ export { D as Deferred, E as Equality, a as Error, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-CJZfcOkO.mjs';
4
4
  export { Brand } from './types.mjs';
5
5
  export { N as NonEmptyList, i as isNonEmptyList } from './NonEmptyList-BlGFjor5.mjs';
6
6
  export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.mjs';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.js';
2
- export { D as Deferred, E as Error, M as Maybe, N as None, O as Ok, R as Result, S as Some, T as Task } from './Task-CnF22Q2o.js';
3
- export { Failure, Invalid, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Valid, Validation } from './core.js';
2
+ export { Combinable, Failure, Invalid, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Valid, Validation } from './core.js';
3
+ export { D as Deferred, E as Equality, a as Error, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-CjYKLeTY.js';
4
4
  export { Brand } from './types.js';
5
5
  export { N as NonEmptyList, i as isNonEmptyList } from './NonEmptyList-BlGFjor5.js';
6
6
  export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.js';