@nlozgachev/pipelined 0.44.0 → 0.46.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
@@ -57,8 +57,8 @@ var Combinable;
57
57
  Combinable2.any = { empty: false, combine: (b) => (a) => a || b };
58
58
  Combinable2.array = () => ({ empty: [], combine: (b) => (a) => [...a, ...b] });
59
59
  Combinable2.maybe = (inner) => ({
60
- empty: Maybe.none(),
61
- combine: (b) => (a) => Maybe.isNone(a) ? b : Maybe.isNone(b) ? a : Maybe.some(inner.combine(b.value)(a.value))
60
+ empty: Maybe.make.none(),
61
+ combine: (b) => (a) => Maybe.is.none(a) ? b : Maybe.is.none(b) ? a : Maybe.make.some(inner.combine(b.value)(a.value))
62
62
  });
63
63
  Combinable2.fold = (c) => (data) => data.reduce((acc, x) => c.combine(x)(acc), c.empty);
64
64
  })(Combinable || (Combinable = {}));
@@ -66,11 +66,17 @@ var Combinable;
66
66
  // src/Core/Deferred.ts
67
67
  var Deferred;
68
68
  ((Deferred2) => {
69
- Deferred2.fromPromise = (p) => (
70
- // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
71
- { then: ((f) => p.then(f)) }
72
- );
73
- Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
69
+ let from;
70
+ ((from2) => {
71
+ from2.Promise = (p) => (
72
+ // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
73
+ { then: ((f) => p.then(f)) }
74
+ );
75
+ })(from = Deferred2.from || (Deferred2.from = {}));
76
+ let to;
77
+ ((to2) => {
78
+ to2.Promise = (d) => new globalThis.Promise((resolve) => d.then(resolve));
79
+ })(to = Deferred2.to || (Deferred2.to = {}));
74
80
  })(Deferred || (Deferred = {}));
75
81
 
76
82
  // src/Core/Equality.ts
@@ -114,12 +120,15 @@ var Lazy;
114
120
  // src/Core/Lens.ts
115
121
  var Lens;
116
122
  ((Lens3) => {
117
- Lens3.make = (get2, set2) => ({ get: get2, set: set2 });
118
- Lens3.prop = () => (key) => (0, Lens3.make)((s) => s[key], (a) => (s) => ({ ...s, [key]: a }));
123
+ let from;
124
+ ((from2) => {
125
+ from2.accessors = (get2, set2) => ({ get: get2, set: set2 });
126
+ from2.property = () => (key) => (0, from2.accessors)((s) => s[key], (a) => (s) => ({ ...s, [key]: a }));
127
+ })(from = Lens3.from || (Lens3.from = {}));
119
128
  Lens3.get = (lens) => (s) => lens.get(s);
120
129
  Lens3.set = (lens) => (a) => (s) => lens.set(a)(s);
121
130
  Lens3.modify = (lens) => (f) => (s) => lens.set(f(lens.get(s)))(s);
122
- Lens3.andThen = (inner) => (outer) => (0, Lens3.make)((s) => inner.get(outer.get(s)), (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s));
131
+ Lens3.andThen = (inner) => (outer) => from.accessors((s) => inner.get(outer.get(s)), (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s));
123
132
  Lens3.andThenOptional = (inner) => (outer) => ({
124
133
  get: (s) => inner.get(outer.get(s)),
125
134
  set: (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
@@ -133,8 +142,11 @@ var Lens;
133
142
  // src/Core/Logged.ts
134
143
  var Logged;
135
144
  ((Logged2) => {
136
- Logged2.make = (value) => ({ value, log: [] });
137
- Logged2.tell = (entry) => ({ value: void 0, log: [entry] });
145
+ let from;
146
+ ((from2) => {
147
+ from2.value = (val) => ({ value: val, log: [] });
148
+ from2.entry = (logEntry) => ({ value: void 0, log: [logEntry] });
149
+ })(from = Logged2.from || (Logged2.from = {}));
138
150
  Logged2.map = (f) => (data) => ({
139
151
  value: f(data.value),
140
152
  log: data.log
@@ -161,47 +173,59 @@ var Logged;
161
173
  // src/Core/Maybe.ts
162
174
  var _none = { kind: "None" };
163
175
  var Maybe;
164
- ((Maybe2) => {
165
- Maybe2.some = (value) => ({ kind: "Some", value });
166
- Maybe2.isSome = (data) => data.kind === "Some";
167
- Maybe2.none = () => _none;
168
- Maybe2.isNone = (data) => data.kind === "None";
169
- Maybe2.fromNullable = (value) => value === null || value === void 0 ? (0, Maybe2.none)() : (0, Maybe2.some)(value);
170
- Maybe2.toNullable = (data) => (0, Maybe2.isSome)(data) ? data.value : null;
171
- Maybe2.toUndefined = (data) => (0, Maybe2.isSome)(data) ? data.value : void 0;
172
- Maybe2.fromPredicate = (pred) => (a) => pred(a) ? (0, Maybe2.some)(a) : (0, Maybe2.none)();
173
- Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.err(onNone());
174
- Maybe2.fromResult = (data) => Result.isOk(data) ? (0, Maybe2.some)(data.value) : (0, Maybe2.none)();
175
- Maybe2.map = (f) => (data) => (0, Maybe2.isSome)(data) ? (0, Maybe2.some)(f(data.value)) : data;
176
- Maybe2.chain = (f) => (data) => (0, Maybe2.isSome)(data) ? f(data.value) : data;
177
- Maybe2.fold = (onNone, onSome) => (data) => (0, Maybe2.isSome)(data) ? onSome(data.value) : onNone();
178
- Maybe2.match = (cases) => (data) => (0, Maybe2.isSome)(data) ? cases.some(data.value) : cases.none();
179
- Maybe2.getOrElse = (defaultValue) => (data) => (0, Maybe2.isSome)(data) ? data.value : defaultValue();
180
- Maybe2.tap = (f) => (data) => {
181
- if ((0, Maybe2.isSome)(data)) {
176
+ ((Maybe3) => {
177
+ let make;
178
+ ((make2) => {
179
+ make2.some = (value) => ({ kind: "Some", value });
180
+ make2.none = () => _none;
181
+ })(make = Maybe3.make || (Maybe3.make = {}));
182
+ let is;
183
+ ((is2) => {
184
+ is2.some = (data) => data.kind === "Some";
185
+ is2.none = (data) => data.kind === "None";
186
+ })(is = Maybe3.is || (Maybe3.is = {}));
187
+ let to;
188
+ ((to2) => {
189
+ to2.nullable = (data) => is.some(data) ? data.value : null;
190
+ to2.undefined = (data) => is.some(data) ? data.value : globalThis.undefined;
191
+ to2.Result = (onNone) => (data) => is.some(data) ? Result.make.ok(data.value) : Result.make.err(onNone());
192
+ })(to = Maybe3.to || (Maybe3.to = {}));
193
+ let from;
194
+ ((from2) => {
195
+ from2.nullable = (value) => value === null || value === void 0 ? make.none() : make.some(value);
196
+ from2.Predicate = (pred) => (a) => pred(a) ? make.some(a) : make.none();
197
+ from2.Result = (data) => Result.is.ok(data) ? make.some(data.value) : make.none();
198
+ })(from = Maybe3.from || (Maybe3.from = {}));
199
+ Maybe3.map = (f) => (data) => is.some(data) ? make.some(f(data.value)) : data;
200
+ Maybe3.chain = (f) => (data) => is.some(data) ? f(data.value) : data;
201
+ Maybe3.fold = (onNone, onSome) => (data) => is.some(data) ? onSome(data.value) : onNone();
202
+ Maybe3.match = (cases) => (data) => is.some(data) ? cases.some(data.value) : cases.none();
203
+ Maybe3.getOrElse = (defaultValue) => (data) => is.some(data) ? data.value : defaultValue();
204
+ Maybe3.tap = (f) => (data) => {
205
+ if (is.some(data)) {
182
206
  f(data.value);
183
207
  }
184
208
  return data;
185
209
  };
186
- Maybe2.filter = (predicate) => (data) => (0, Maybe2.isSome)(data) ? predicate(data.value) ? data : (0, Maybe2.none)() : data;
187
- Maybe2.recover = (fallback) => (data) => (0, Maybe2.isSome)(data) ? data : fallback();
188
- Maybe2.ap = (arg) => (data) => (0, Maybe2.isSome)(data) && (0, Maybe2.isSome)(arg) ? (0, Maybe2.some)(data.value(arg.value)) : (0, Maybe2.none)();
189
- Maybe2.bindTo = (key) => (data) => (0, Maybe2.map)((a) => ({ [key]: a }))(data);
190
- Maybe2.bind = (key, f) => (data) => (0, Maybe2.chain)(
191
- (a) => (0, Maybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
210
+ Maybe3.filter = (predicate) => (data) => is.some(data) ? predicate(data.value) ? data : make.none() : data;
211
+ Maybe3.recover = (fallback) => (data) => is.some(data) ? data : fallback();
212
+ Maybe3.ap = (arg) => (data) => is.some(data) && is.some(arg) ? make.some(data.value(arg.value)) : make.none();
213
+ Maybe3.bindTo = (key) => (data) => (0, Maybe3.map)((a) => ({ [key]: a }))(data);
214
+ Maybe3.bind = (key, f) => (data) => (0, Maybe3.chain)(
215
+ (a) => (0, Maybe3.map)((b) => ({ ...a, [key]: b }))(f(a))
192
216
  )(data);
193
- Maybe2.struct = (fields) => {
217
+ Maybe3.struct = (fields) => {
194
218
  const result = {};
195
219
  for (const key in fields) {
196
220
  if (Object.hasOwn(fields, key)) {
197
221
  const res = fields[key];
198
- if ((0, Maybe2.isNone)(res)) {
222
+ if (is.none(res)) {
199
223
  return res;
200
224
  }
201
225
  result[key] = res.value;
202
226
  }
203
227
  }
204
- return (0, Maybe2.some)(result);
228
+ return make.some(result);
205
229
  };
206
230
  })(Maybe || (Maybe = {}));
207
231
 
@@ -221,11 +245,14 @@ var Duration;
221
245
  Duration2.minutes = (m) => wrap(m * 60 * 1e3);
222
246
  Duration2.hours = (h) => wrap(h * 60 * 60 * 1e3);
223
247
  Duration2.days = (d) => wrap(d * 24 * 60 * 60 * 1e3);
224
- Duration2.toMilliseconds = (d) => Brand.unwrap(d);
225
- Duration2.toSeconds = (d) => Brand.unwrap(d) / 1e3;
226
- Duration2.toMinutes = (d) => Brand.unwrap(d) / (60 * 1e3);
227
- Duration2.toHours = (d) => Brand.unwrap(d) / (60 * 60 * 1e3);
228
- Duration2.toDays = (d) => Brand.unwrap(d) / (24 * 60 * 60 * 1e3);
248
+ let to;
249
+ ((to2) => {
250
+ to2.milliseconds = (d) => Brand.unwrap(d);
251
+ to2.seconds = (d) => Brand.unwrap(d) / 1e3;
252
+ to2.minutes = (d) => Brand.unwrap(d) / (60 * 1e3);
253
+ to2.hours = (d) => Brand.unwrap(d) / (60 * 60 * 1e3);
254
+ to2.days = (d) => Brand.unwrap(d) / (24 * 60 * 60 * 1e3);
255
+ })(to = Duration2.to || (Duration2.to = {}));
229
256
  Duration2.add = (other) => (self) => wrap(Brand.unwrap(self) + Brand.unwrap(other));
230
257
  Duration2.subtract = (other) => (self) => wrap(Brand.unwrap(self) - Brand.unwrap(other));
231
258
  })(Duration || (Duration = {}));
@@ -239,7 +266,7 @@ var _idle = { kind: "Idle" };
239
266
  var _pending = { kind: "Pending" };
240
267
  var ok = (value) => ({ kind: "OpOk", value });
241
268
  var err = (error) => ({ kind: "OpErr", error });
242
- var getMs = (duration) => Duration.toMilliseconds(duration);
269
+ var getMs = (duration) => Duration.to.milliseconds(duration);
243
270
  var cancellableWait = (duration, signal) => {
244
271
  const rawMs = getMs(duration);
245
272
  if (rawMs <= 0) {
@@ -262,7 +289,7 @@ var runWithRetry = (op, input, signal, options, onRetrying) => {
262
289
  return typeof backoff === "function" ? backoff(n) : backoff;
263
290
  };
264
291
  const attempt = async (left) => {
265
- const result = await Deferred.toPromise(op._factory(input, signal));
292
+ const result = await Deferred.to.Promise(op._factory(input, signal));
266
293
  if (result === null || signal.aborted) {
267
294
  return null;
268
295
  }
@@ -297,12 +324,12 @@ var runWithRetry = (op, input, signal, options, onRetrying) => {
297
324
  var execute = (op, input, controller, retryOptions, timeoutOptions, onRetrying) => {
298
325
  const { signal } = controller;
299
326
  const toOutcome = (r) => r === null ? _abortedNil : r.kind === "Ok" ? ok(r.value) : err(r.error);
300
- const runPromise = retryOptions !== void 0 && onRetrying !== void 0 ? runWithRetry(op, input, signal, retryOptions, onRetrying).then(toOutcome) : Deferred.toPromise(op._factory(input, signal)).then(toOutcome);
327
+ const runPromise = retryOptions !== void 0 && onRetrying !== void 0 ? runWithRetry(op, input, signal, retryOptions, onRetrying).then(toOutcome) : Deferred.to.Promise(op._factory(input, signal)).then(toOutcome);
301
328
  if (timeoutOptions === void 0) {
302
- return Deferred.fromPromise(runPromise);
329
+ return Deferred.from.Promise(runPromise);
303
330
  }
304
331
  let timerId;
305
- return Deferred.fromPromise(Promise.race([
332
+ return Deferred.from.Promise(Promise.race([
306
333
  runPromise.then((outcome) => {
307
334
  clearTimeout(timerId);
308
335
  return outcome;
@@ -326,7 +353,7 @@ var makeRestartable = (op, minInterval, retryOptions, timeoutOptions) => {
326
353
  currentState = state;
327
354
  subscribers.forEach((cb) => cb(state));
328
355
  };
329
- const run = (input) => Deferred.fromPromise(
356
+ const run = (input) => Deferred.from.Promise(
330
357
  new Promise((resolve) => {
331
358
  waitController?.abort();
332
359
  waitController = void 0;
@@ -418,9 +445,9 @@ var makeExclusive = (op, cooldown, retryOptions, timeoutOptions) => {
418
445
  };
419
446
  const run = (input) => {
420
447
  if (currentController !== void 0 || cooldownTimer !== void 0) {
421
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
448
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
422
449
  }
423
- return Deferred.fromPromise(
450
+ return Deferred.from.Promise(
424
451
  new Promise((resolve) => {
425
452
  currentResolve = resolve;
426
453
  currentController = new AbortController();
@@ -540,14 +567,14 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
540
567
  }
541
568
  }
542
569
  if (inFlight < maxConcurrency) {
543
- return Deferred.fromPromise(
570
+ return Deferred.from.Promise(
544
571
  new Promise((resolve) => {
545
572
  startOne(input, resolve, myGeneration);
546
573
  })
547
574
  );
548
575
  }
549
576
  if (maxSize === void 0 || queue.length < maxSize) {
550
- return Deferred.fromPromise(
577
+ return Deferred.from.Promise(
551
578
  new Promise((resolve) => {
552
579
  queue.push({ input, resolve });
553
580
  emit({ kind: "Queued", position: queue.length - 1 });
@@ -555,7 +582,7 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
555
582
  );
556
583
  }
557
584
  if (overflow === "replace-last") {
558
- return Deferred.fromPromise(
585
+ return Deferred.from.Promise(
559
586
  new Promise((resolve) => {
560
587
  const tail = queue.pop();
561
588
  tail.resolve(_evictedNil);
@@ -564,7 +591,7 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
564
591
  })
565
592
  );
566
593
  }
567
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
594
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
568
595
  };
569
596
  const abort = () => {
570
597
  generation++;
@@ -636,7 +663,7 @@ var makeBuffered = (op, size, retryOptions, timeoutOptions) => {
636
663
  }
637
664
  });
638
665
  };
639
- const run = (input) => Deferred.fromPromise(
666
+ const run = (input) => Deferred.from.Promise(
640
667
  new Promise((resolve) => {
641
668
  if (currentController === void 0) {
642
669
  startRun(input, resolve);
@@ -762,7 +789,7 @@ var makeDebounced = (op, duration, leading, maxWait, retryOptions, timeoutOption
762
789
  timerId = setTimeout(fireTrailing, delay);
763
790
  };
764
791
  const inDebounceWindow = () => timerId !== void 0 || leadingController !== void 0 || currentController !== void 0;
765
- const run = (input) => Deferred.fromPromise(
792
+ const run = (input) => Deferred.from.Promise(
766
793
  new Promise((resolve) => {
767
794
  if (!inDebounceWindow()) {
768
795
  firstCallAt = Date.now();
@@ -877,9 +904,9 @@ var makeThrottled = (op, duration, trailing, retryOptions, timeoutOptions) => {
877
904
  const run = (input) => {
878
905
  if (cooldownTimer !== void 0) {
879
906
  if (!trailing) {
880
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
907
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
881
908
  }
882
- return Deferred.fromPromise(
909
+ return Deferred.from.Promise(
883
910
  new Promise((resolve) => {
884
911
  const prev = pendingResolve;
885
912
  pendingInput = input;
@@ -888,7 +915,7 @@ var makeThrottled = (op, duration, trailing, retryOptions, timeoutOptions) => {
888
915
  })
889
916
  );
890
917
  }
891
- return Deferred.fromPromise(
918
+ return Deferred.from.Promise(
892
919
  new Promise((resolve) => {
893
920
  fireOp(input, resolve);
894
921
  startCooldown();
@@ -979,16 +1006,16 @@ var makeConcurrent = (op, n, overflow, retryOptions, timeoutOptions) => {
979
1006
  const run = (input) => {
980
1007
  const myGeneration = generation;
981
1008
  if (inflight < n) {
982
- return Deferred.fromPromise(
1009
+ return Deferred.from.Promise(
983
1010
  new Promise((resolve) => {
984
1011
  startOne(input, resolve, myGeneration);
985
1012
  })
986
1013
  );
987
1014
  }
988
1015
  if (overflow === "drop") {
989
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1016
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
990
1017
  }
991
- return Deferred.fromPromise(
1018
+ return Deferred.from.Promise(
992
1019
  new Promise((resolve) => {
993
1020
  overflowQueue.push({ input, resolve });
994
1021
  emit({ kind: "Queued", position: overflowQueue.length - 1 });
@@ -1041,7 +1068,7 @@ var makeKeyed = (op, keyFn, perKey, timeoutOptions) => {
1041
1068
  const k = keyFn(input);
1042
1069
  if (slots.has(k)) {
1043
1070
  if (perKey === "exclusive") {
1044
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1071
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1045
1072
  }
1046
1073
  const existing = slots.get(k);
1047
1074
  existing.controller.abort();
@@ -1049,7 +1076,7 @@ var makeKeyed = (op, keyFn, perKey, timeoutOptions) => {
1049
1076
  slots.delete(k);
1050
1077
  prev(_replacedNil);
1051
1078
  }
1052
- return Deferred.fromPromise(
1079
+ return Deferred.from.Promise(
1053
1080
  new Promise((resolve) => {
1054
1081
  const controller = new AbortController();
1055
1082
  slots.set(k, { controller, resolve });
@@ -1129,9 +1156,9 @@ var makeOnce = (op, retryOptions, timeoutOptions) => {
1129
1156
  };
1130
1157
  const run = (input) => {
1131
1158
  if (currentState.kind !== "Idle") {
1132
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1159
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1133
1160
  }
1134
- return Deferred.fromPromise(
1161
+ return Deferred.from.Promise(
1135
1162
  new Promise((resolve) => {
1136
1163
  currentResolve = resolve;
1137
1164
  currentController = new AbortController();
@@ -1192,10 +1219,8 @@ var Op;
1192
1219
  ((Op2) => {
1193
1220
  Op2.nil = (reason) => ({ kind: "OpNil", reason });
1194
1221
  Op2.create = (factory, onError) => ({
1195
- _factory: (input, signal) => Deferred.fromPromise(
1196
- factory(signal)(input).then((value) => Result.ok(value)).catch(
1197
- (error) => signal.aborted ? null : Result.err(onError(error))
1198
- )
1222
+ _factory: (input, signal) => Deferred.from.Promise(
1223
+ factory(signal)(input).then((value) => Result.make.ok(value)).catch((error) => signal.aborted ? null : Result.make.err(onError(error)))
1199
1224
  )
1200
1225
  });
1201
1226
  Op2.lift = (f) => (0, Op2.create)((signal) => (input) => f(input, signal), (e) => e);
@@ -1237,18 +1262,21 @@ var Op;
1237
1262
  return outcome;
1238
1263
  };
1239
1264
  Op2.recover = (f) => (outcome) => outcome.kind === "OpErr" ? f(outcome.error) : outcome;
1240
- Op2.toResult = (onNil) => (outcome) => {
1241
- if (outcome.kind === "OpOk") {
1242
- return Result.ok(outcome.value);
1243
- }
1244
- if (outcome.kind === "OpErr") {
1245
- return Result.err(outcome.error);
1246
- }
1247
- return Result.err(onNil());
1248
- };
1249
- Op2.toMaybe = (outcome) => outcome.kind === "OpOk" ? Maybe.some(outcome.value) : Maybe.none();
1250
- Op2.all = (invocations) => Deferred.fromPromise(Promise.all(invocations.map(Deferred.toPromise)));
1251
- Op2.race = (invocations) => Deferred.fromPromise(Promise.race(invocations.map(Deferred.toPromise)));
1265
+ let to;
1266
+ ((to2) => {
1267
+ to2.Result = (onNil) => (outcome) => {
1268
+ if (outcome.kind === "OpOk") {
1269
+ return Result.make.ok(outcome.value);
1270
+ }
1271
+ if (outcome.kind === "OpErr") {
1272
+ return Result.make.err(outcome.error);
1273
+ }
1274
+ return Result.make.err(onNil());
1275
+ };
1276
+ to2.Maybe = (outcome) => outcome.kind === "OpOk" ? Maybe.make.some(outcome.value) : Maybe.make.none();
1277
+ })(to = Op2.to || (Op2.to = {}));
1278
+ Op2.all = (invocations) => Deferred.from.Promise(Promise.all(invocations.map(Deferred.to.Promise)));
1279
+ Op2.race = (invocations) => Deferred.from.Promise(Promise.race(invocations.map(Deferred.to.Promise)));
1252
1280
  Op2.wire = (source, f) => source.subscribe((state) => {
1253
1281
  if ((0, Op2.isOk)(state)) {
1254
1282
  f(state.value);
@@ -1313,12 +1341,18 @@ var Op;
1313
1341
  // src/Core/Optional.ts
1314
1342
  var Optional;
1315
1343
  ((Optional2) => {
1316
- Optional2.make = (get2, set2) => ({ get: get2, set: set2 });
1317
- Optional2.prop = () => (key) => (0, Optional2.make)((s) => {
1318
- const val = s[key];
1319
- return val !== null && val !== void 0 ? Maybe.some(val) : Maybe.none();
1320
- }, (a) => (s) => ({ ...s, [key]: a }));
1321
- Optional2.index = (i) => (0, Optional2.make)((arr) => i >= 0 && i < arr.length ? Maybe.some(arr[i]) : Maybe.none(), (a) => (arr) => {
1344
+ let from;
1345
+ ((from2) => {
1346
+ from2.accessors = (get2, set2) => ({
1347
+ get: get2,
1348
+ set: set2
1349
+ });
1350
+ from2.property = () => (key) => (0, from2.accessors)((s) => {
1351
+ const val = s[key];
1352
+ return val !== null && val !== void 0 ? Maybe.make.some(val) : Maybe.make.none();
1353
+ }, (a) => (s) => ({ ...s, [key]: a }));
1354
+ })(from = Optional2.from || (Optional2.from = {}));
1355
+ Optional2.index = (i) => from.accessors((arr) => i >= 0 && i < arr.length ? Maybe.make.some(arr[i]) : Maybe.make.none(), (a) => (arr) => {
1322
1356
  if (i < 0 || i >= arr.length) {
1323
1357
  return arr;
1324
1358
  }
@@ -1344,16 +1378,16 @@ var Optional;
1344
1378
  const val = opt.get(s);
1345
1379
  return val.kind === "Some" ? cases.some(val.value) : cases.none();
1346
1380
  };
1347
- Optional2.andThen = (inner) => (outer) => (0, Optional2.make)((s) => {
1381
+ Optional2.andThen = (inner) => (outer) => from.accessors((s) => {
1348
1382
  const mid = outer.get(s);
1349
- return mid.kind === "None" ? Maybe.none() : inner.get(mid.value);
1383
+ return mid.kind === "None" ? Maybe.make.none() : inner.get(mid.value);
1350
1384
  }, (b) => (s) => {
1351
1385
  const mid = outer.get(s);
1352
1386
  return mid.kind === "None" ? s : outer.set(inner.set(b)(mid.value))(s);
1353
1387
  });
1354
- Optional2.andThenLens = (inner) => (outer) => (0, Optional2.make)((s) => {
1388
+ Optional2.andThenLens = (inner) => (outer) => from.accessors((s) => {
1355
1389
  const mid = outer.get(s);
1356
- return mid.kind === "None" ? Maybe.none() : Maybe.some(inner.get(mid.value));
1390
+ return mid.kind === "None" ? Maybe.make.none() : Maybe.make.some(inner.get(mid.value));
1357
1391
  }, (b) => (s) => {
1358
1392
  const mid = outer.get(s);
1359
1393
  return mid.kind === "None" ? s : outer.set(inner.set(b)(mid.value))(s);
@@ -1383,7 +1417,10 @@ var Predicate;
1383
1417
  Predicate2.using = (f) => (p) => (b) => p(f(b));
1384
1418
  Predicate2.all = (predicates) => (a) => predicates.every((p) => p(a));
1385
1419
  Predicate2.any = (predicates) => (a) => predicates.some((p) => p(a));
1386
- Predicate2.fromRefinement = (r) => r;
1420
+ let from;
1421
+ ((from2) => {
1422
+ from2.Refinement = (r) => r;
1423
+ })(from = Predicate2.from || (Predicate2.from = {}));
1387
1424
  })(Predicate || (Predicate = {}));
1388
1425
 
1389
1426
  // src/Core/Reader.ts
@@ -1411,12 +1448,18 @@ var Reader;
1411
1448
  // src/Core/Refinement.ts
1412
1449
  var Refinement;
1413
1450
  ((Refinement2) => {
1414
- Refinement2.make = (f) => f;
1451
+ let from;
1452
+ ((from2) => {
1453
+ from2.predicate = (f) => f;
1454
+ })(from = Refinement2.from || (Refinement2.from = {}));
1415
1455
  Refinement2.compose = (bc) => (ab) => (a) => ab(a) && bc(a);
1416
1456
  Refinement2.and = (second) => (first) => (a) => first(a) && second(a);
1417
1457
  Refinement2.or = (second) => (first) => (a) => first(a) || second(a);
1418
- Refinement2.toFilter = (r) => (a) => r(a) ? Maybe.some(a) : Maybe.none();
1419
- Refinement2.toResult = (r, onFail) => (a) => r(a) ? Result.ok(a) : Result.err(onFail(a));
1458
+ let to;
1459
+ ((to2) => {
1460
+ to2.Maybe = (r) => (a) => r(a) ? Maybe.make.some(a) : Maybe.make.none();
1461
+ to2.Result = (r, onFail) => (a) => r(a) ? Result.make.ok(a) : Result.make.err(onFail(a));
1462
+ })(to = Refinement2.to || (Refinement2.to = {}));
1420
1463
  })(Refinement || (Refinement = {}));
1421
1464
 
1422
1465
  // src/Core/RemoteData.ts
@@ -1424,31 +1467,37 @@ var _notAsked = { kind: "NotAsked" };
1424
1467
  var _loading = { kind: "Loading" };
1425
1468
  var RemoteData;
1426
1469
  ((RemoteData2) => {
1427
- RemoteData2.notAsked = () => _notAsked;
1428
- RemoteData2.loading = () => _loading;
1429
- RemoteData2.failure = (error) => ({ kind: "Failure", error });
1430
- RemoteData2.success = (value) => ({ kind: "Success", value });
1431
- RemoteData2.isNotAsked = (data) => data.kind === "NotAsked";
1432
- RemoteData2.isLoading = (data) => data.kind === "Loading";
1433
- RemoteData2.isFailure = (data) => data.kind === "Failure";
1434
- RemoteData2.isSuccess = (data) => data.kind === "Success";
1435
- RemoteData2.map = (f) => (data) => (0, RemoteData2.isSuccess)(data) ? (0, RemoteData2.success)(f(data.value)) : data;
1436
- RemoteData2.mapError = (f) => (data) => (0, RemoteData2.isFailure)(data) ? (0, RemoteData2.failure)(f(data.error)) : data;
1437
- RemoteData2.chain = (f) => (data) => (0, RemoteData2.isSuccess)(data) ? f(data.value) : data;
1470
+ let make;
1471
+ ((make2) => {
1472
+ make2.notAsked = () => _notAsked;
1473
+ make2.loading = () => _loading;
1474
+ make2.failure = (error) => ({ kind: "Failure", error });
1475
+ make2.success = (value) => ({ kind: "Success", value });
1476
+ })(make = RemoteData2.make || (RemoteData2.make = {}));
1477
+ let is;
1478
+ ((is2) => {
1479
+ is2.notAsked = (data) => data.kind === "NotAsked";
1480
+ is2.loading = (data) => data.kind === "Loading";
1481
+ is2.failure = (data) => data.kind === "Failure";
1482
+ is2.success = (data) => data.kind === "Success";
1483
+ })(is = RemoteData2.is || (RemoteData2.is = {}));
1484
+ RemoteData2.map = (f) => (data) => is.success(data) ? make.success(f(data.value)) : data;
1485
+ RemoteData2.mapError = (f) => (data) => is.failure(data) ? make.failure(f(data.error)) : data;
1486
+ RemoteData2.chain = (f) => (data) => is.success(data) ? f(data.value) : data;
1438
1487
  RemoteData2.ap = (arg) => (data) => {
1439
- if ((0, RemoteData2.isSuccess)(data) && (0, RemoteData2.isSuccess)(arg)) {
1440
- return (0, RemoteData2.success)(data.value(arg.value));
1488
+ if (is.success(data) && is.success(arg)) {
1489
+ return make.success(data.value(arg.value));
1441
1490
  }
1442
- if ((0, RemoteData2.isFailure)(data)) {
1491
+ if (is.failure(data)) {
1443
1492
  return data;
1444
1493
  }
1445
- if ((0, RemoteData2.isFailure)(arg)) {
1494
+ if (is.failure(arg)) {
1446
1495
  return arg;
1447
1496
  }
1448
- if ((0, RemoteData2.isLoading)(data) || (0, RemoteData2.isLoading)(arg)) {
1449
- return (0, RemoteData2.loading)();
1497
+ if (is.loading(data) || is.loading(arg)) {
1498
+ return make.loading();
1450
1499
  }
1451
- return (0, RemoteData2.notAsked)();
1500
+ return make.notAsked();
1452
1501
  };
1453
1502
  RemoteData2.fold = (onFailure, onNotAsked, onLoading, onSuccess) => (data) => {
1454
1503
  switch (data.kind) {
@@ -1482,69 +1531,78 @@ var RemoteData;
1482
1531
  }
1483
1532
  }
1484
1533
  };
1485
- RemoteData2.getOrElse = (defaultValue) => (data) => (0, RemoteData2.isSuccess)(data) ? data.value : defaultValue();
1534
+ RemoteData2.getOrElse = (defaultValue) => (data) => is.success(data) ? data.value : defaultValue();
1486
1535
  RemoteData2.tap = (f) => (data) => {
1487
- if ((0, RemoteData2.isSuccess)(data)) {
1536
+ if (is.success(data)) {
1488
1537
  f(data.value);
1489
1538
  }
1490
1539
  return data;
1491
1540
  };
1492
1541
  RemoteData2.tapError = (f) => (data) => {
1493
- if ((0, RemoteData2.isFailure)(data)) {
1542
+ if (is.failure(data)) {
1494
1543
  f(data.error);
1495
1544
  }
1496
1545
  return data;
1497
1546
  };
1498
- RemoteData2.recover = (fallback) => (data) => (0, RemoteData2.isFailure)(data) ? fallback(data.error) : data;
1499
- RemoteData2.toMaybe = (data) => (0, RemoteData2.isSuccess)(data) ? Maybe.some(data.value) : Maybe.none();
1500
- RemoteData2.toResult = (onNotReady) => (data) => (0, RemoteData2.isSuccess)(data) ? Result.ok(data.value) : Result.err((0, RemoteData2.isFailure)(data) ? data.error : onNotReady());
1501
- RemoteData2.fromResult = (data) => Result.isOk(data) ? (0, RemoteData2.success)(data.value) : (0, RemoteData2.failure)(data.error);
1502
- RemoteData2.fromMaybe = (onNone) => (data) => Maybe.isSome(data) ? (0, RemoteData2.success)(data.value) : (0, RemoteData2.failure)(onNone());
1503
- RemoteData2.filter = (pred, onFalse) => (data) => (0, RemoteData2.isSuccess)(data) ? pred(data.value) ? data : (0, RemoteData2.failure)(onFalse(data.value)) : data;
1547
+ RemoteData2.recover = (fallback) => (data) => is.failure(data) ? fallback(data.error) : data;
1548
+ let to;
1549
+ ((to2) => {
1550
+ to2.Maybe = (data) => is.success(data) ? Maybe.make.some(data.value) : Maybe.make.none();
1551
+ to2.Result = (onNotReady) => (data) => is.success(data) ? Result.make.ok(data.value) : Result.make.err(is.failure(data) ? data.error : onNotReady());
1552
+ })(to = RemoteData2.to || (RemoteData2.to = {}));
1553
+ let from;
1554
+ ((from2) => {
1555
+ from2.Result = (data) => Result.is.ok(data) ? make.success(data.value) : make.failure(data.error);
1556
+ from2.Maybe = (onNone) => (data) => Maybe.is.some(data) ? make.success(data.value) : make.failure(onNone());
1557
+ })(from = RemoteData2.from || (RemoteData2.from = {}));
1558
+ RemoteData2.filter = (pred, onFalse) => (data) => is.success(data) ? pred(data.value) ? data : make.failure(onFalse(data.value)) : data;
1504
1559
  })(RemoteData || (RemoteData = {}));
1505
1560
 
1506
1561
  // src/Core/Resource.ts
1507
1562
  var Resource;
1508
1563
  ((Resource2) => {
1509
- Resource2.make = (acquire, release) => ({
1510
- acquire,
1511
- release
1512
- });
1513
- Resource2.fromTask = (acquire, release) => ({
1514
- acquire: Task.map((a) => Result.ok(a))(acquire),
1515
- release
1516
- });
1517
- Resource2.use = (f) => (resource) => Task.from(
1518
- (signal) => Deferred.toPromise(resource.acquire(signal)).then(async (acquired) => {
1519
- if (Result.isErr(acquired)) {
1564
+ let from;
1565
+ ((from2) => {
1566
+ from2.handlers = (acquire, release) => ({
1567
+ acquire,
1568
+ release
1569
+ });
1570
+ from2.Task = (acquire, release) => ({
1571
+ acquire: Task.map((a) => Result.make.ok(a))(acquire),
1572
+ release
1573
+ });
1574
+ })(from = Resource2.from || (Resource2.from = {}));
1575
+ Resource2.use = (f) => (resource) => Task.from.Promise(
1576
+ (signal) => Deferred.to.Promise(resource.acquire(signal)).then(async (acquired) => {
1577
+ if (Result.is.err(acquired)) {
1520
1578
  return acquired;
1521
1579
  }
1522
1580
  const a = acquired.value;
1523
1581
  try {
1524
- const usageResult = await Deferred.toPromise(f(a)(signal));
1582
+ const usageResult = await Deferred.to.Promise(f(a)(signal));
1525
1583
  return usageResult;
1526
1584
  } finally {
1527
- await Deferred.toPromise(resource.release(a)(signal));
1585
+ await Deferred.to.Promise(resource.release(a)(signal));
1528
1586
  }
1529
1587
  })
1530
1588
  );
1531
1589
  Resource2.combine = (resourceA, resourceB) => ({
1532
- acquire: Task.from(
1533
- (signal) => Deferred.toPromise(resourceA.acquire(signal)).then(async (acquiredA) => {
1534
- if (Result.isErr(acquiredA)) {
1590
+ acquire: Task.from.Promise(
1591
+ (signal) => Deferred.to.Promise(resourceA.acquire(signal)).then(async (acquiredA) => {
1592
+ if (Result.is.err(acquiredA)) {
1535
1593
  return acquiredA;
1536
1594
  }
1537
1595
  const a = acquiredA.value;
1538
- const acquiredB = await Deferred.toPromise(resourceB.acquire(signal));
1539
- if (Result.isErr(acquiredB)) {
1540
- await Deferred.toPromise(resourceA.release(a)(signal));
1596
+ const acquiredB = await Deferred.to.Promise(resourceB.acquire(signal));
1597
+ if (Result.is.err(acquiredB)) {
1598
+ await Deferred.to.Promise(resourceA.release(a)(signal));
1541
1599
  return acquiredB;
1542
1600
  }
1543
- return Result.ok([a, acquiredB.value]);
1601
+ return Result.make.ok([a, acquiredB.value]);
1544
1602
  })
1545
1603
  ),
1546
- release: ([a, b]) => Task.from(
1547
- (signal) => Deferred.toPromise(resourceB.release(b)(signal)).then(() => Deferred.toPromise(resourceA.release(a)(signal)))
1604
+ release: ([a, b]) => Task.from.Promise(
1605
+ (signal) => Deferred.to.Promise(resourceB.release(b)(signal)).then(() => Deferred.to.Promise(resourceA.release(a)(signal)))
1548
1606
  )
1549
1607
  });
1550
1608
  })(Resource || (Resource = {}));
@@ -1552,49 +1610,61 @@ var Resource;
1552
1610
  // src/Core/Result.ts
1553
1611
  var Result;
1554
1612
  ((Result4) => {
1555
- Result4.ok = (value) => ({ kind: "Ok", value });
1556
- Result4.err = (e) => ({ kind: "Err", error: e });
1557
- Result4.isOk = (data) => data.kind === "Ok";
1558
- Result4.isErr = (data) => data.kind === "Err";
1613
+ let make;
1614
+ ((make2) => {
1615
+ make2.ok = (value) => ({ kind: "Ok", value });
1616
+ make2.err = (e) => ({ kind: "Err", error: e });
1617
+ })(make = Result4.make || (Result4.make = {}));
1618
+ let is;
1619
+ ((is2) => {
1620
+ is2.ok = (data) => data.kind === "Ok";
1621
+ is2.err = (data) => data.kind === "Err";
1622
+ })(is = Result4.is || (Result4.is = {}));
1559
1623
  Result4.tryCatch = (f, onError) => {
1560
1624
  try {
1561
- return (0, Result4.ok)(f());
1625
+ return make.ok(f());
1562
1626
  } catch (error) {
1563
- return (0, Result4.err)(onError(error));
1627
+ return make.err(onError(error));
1564
1628
  }
1565
1629
  };
1566
- Result4.map = (f) => (data) => (0, Result4.isOk)(data) ? (0, Result4.ok)(f(data.value)) : data;
1567
- Result4.mapError = (f) => (data) => (0, Result4.isErr)(data) ? (0, Result4.err)(f(data.error)) : data;
1568
- Result4.chain = (f) => (data) => (0, Result4.isOk)(data) ? f(data.value) : data;
1569
- Result4.fold = (onErr, onOk) => (data) => (0, Result4.isOk)(data) ? onOk(data.value) : onErr(data.error);
1570
- Result4.match = (cases) => (data) => (0, Result4.isOk)(data) ? cases.ok(data.value) : cases.err(data.error);
1571
- Result4.getOrElse = (defaultValue) => (data) => (0, Result4.isOk)(data) ? data.value : defaultValue();
1630
+ Result4.map = (f) => (data) => is.ok(data) ? make.ok(f(data.value)) : data;
1631
+ Result4.mapError = (f) => (data) => is.err(data) ? make.err(f(data.error)) : data;
1632
+ Result4.chain = (f) => (data) => is.ok(data) ? f(data.value) : data;
1633
+ Result4.fold = (onErr, onOk) => (data) => is.ok(data) ? onOk(data.value) : onErr(data.error);
1634
+ Result4.match = (cases) => (data) => is.ok(data) ? cases.ok(data.value) : cases.err(data.error);
1635
+ Result4.getOrElse = (defaultValue) => (data) => is.ok(data) ? data.value : defaultValue();
1572
1636
  Result4.tap = (f) => (data) => {
1573
- if ((0, Result4.isOk)(data)) {
1637
+ if (is.ok(data)) {
1574
1638
  f(data.value);
1575
1639
  }
1576
1640
  return data;
1577
1641
  };
1578
1642
  Result4.tapError = (f) => (data) => {
1579
- if ((0, Result4.isErr)(data)) {
1643
+ if (is.err(data)) {
1580
1644
  f(data.error);
1581
1645
  }
1582
1646
  return data;
1583
1647
  };
1584
- Result4.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result4.ok)(a) : (0, Result4.err)(onFalse(a));
1585
- Result4.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Result4.err)(onNull()) : (0, Result4.ok)(value);
1586
- Result4.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Result4.err)(onNone()) : (0, Result4.ok)(maybe.value);
1587
- Result4.fromThrowable = (f, onError) => (...args) => {
1588
- try {
1589
- return (0, Result4.ok)(f(...args));
1590
- } catch (error) {
1591
- return (0, Result4.err)(onError(error));
1592
- }
1593
- };
1594
- Result4.recover = (fallback) => (data) => (0, Result4.isOk)(data) ? data : fallback(data.error);
1595
- Result4.recoverUnless = (isBlocked, fallback) => (data) => (0, Result4.isErr)(data) && !isBlocked(data.error) ? fallback() : data;
1596
- Result4.toMaybe = (data) => (0, Result4.isOk)(data) ? Maybe.some(data.value) : Maybe.none();
1597
- Result4.ap = (arg) => (data) => (0, Result4.isOk)(data) && (0, Result4.isOk)(arg) ? (0, Result4.ok)(data.value(arg.value)) : (0, Result4.isErr)(data) ? data : arg;
1648
+ let from;
1649
+ ((from2) => {
1650
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.ok(a) : make.err(onFalse(a));
1651
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.err(onNull()) : make.ok(value);
1652
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.err(onNone()) : make.ok(maybe.value);
1653
+ from2.throwable = (f, onError) => (...args) => {
1654
+ try {
1655
+ return make.ok(f(...args));
1656
+ } catch (error) {
1657
+ return make.err(onError(error));
1658
+ }
1659
+ };
1660
+ })(from = Result4.from || (Result4.from = {}));
1661
+ Result4.recover = (fallback) => (data) => is.ok(data) ? data : fallback(data.error);
1662
+ Result4.recoverUnless = (isBlocked, fallback) => (data) => is.err(data) && !isBlocked(data.error) ? fallback() : data;
1663
+ let to;
1664
+ ((to2) => {
1665
+ to2.Maybe = (data) => is.ok(data) ? Maybe.make.some(data.value) : Maybe.make.none();
1666
+ })(to = Result4.to || (Result4.to = {}));
1667
+ Result4.ap = (arg) => (data) => is.ok(data) && is.ok(arg) ? make.ok(data.value(arg.value)) : is.err(data) ? data : arg;
1598
1668
  Result4.bindTo = (key) => (data) => (0, Result4.map)((a) => ({ [key]: a }))(data);
1599
1669
  Result4.bind = (key, f) => (data) => (0, Result4.chain)(
1600
1670
  (a) => (0, Result4.map)((b) => ({ ...a, [key]: b }))(f(a))
@@ -1604,13 +1674,13 @@ var Result;
1604
1674
  for (const key in fields) {
1605
1675
  if (Object.hasOwn(fields, key)) {
1606
1676
  const res = fields[key];
1607
- if ((0, Result4.isErr)(res)) {
1677
+ if (is.err(res)) {
1608
1678
  return res;
1609
1679
  }
1610
1680
  result[key] = res.value;
1611
1681
  }
1612
1682
  }
1613
- return (0, Result4.ok)(result);
1683
+ return make.ok(result);
1614
1684
  };
1615
1685
  })(Result || (Result = {}));
1616
1686
 
@@ -1652,17 +1722,24 @@ var State;
1652
1722
  // src/Core/TaskMaybe.ts
1653
1723
  var TaskMaybe;
1654
1724
  ((TaskMaybe2) => {
1655
- TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
1656
- TaskMaybe2.none = () => Task.resolve(Maybe.none());
1657
- TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
1658
- TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
1659
- TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
1660
- TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
1661
- TaskMaybe2.tryCatch = (f) => Task.from((signal) => Promise.resolve(f(signal)).then(Maybe.some).catch(() => Maybe.none()));
1725
+ TaskMaybe2.some = (value) => Task.resolve(Maybe.make.some(value));
1726
+ TaskMaybe2.none = () => Task.resolve(Maybe.make.none());
1727
+ let from;
1728
+ ((from2) => {
1729
+ from2.Maybe = (option) => Task.resolve(option);
1730
+ from2.nullable = (value) => Task.resolve(Maybe.from.nullable(value));
1731
+ from2.Result = (result) => Task.resolve(Result.to.Maybe(result));
1732
+ from2.Task = (task) => Task.map(Maybe.make.some)(task);
1733
+ })(from = TaskMaybe2.from || (TaskMaybe2.from = {}));
1734
+ TaskMaybe2.tryCatch = (f) => Task.from.Promise(
1735
+ (signal) => Promise.resolve(f(signal)).then(Maybe.make.some).catch(() => Maybe.make.none())
1736
+ );
1662
1737
  TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
1663
- TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
1664
- TaskMaybe2.ap = (arg) => (data) => Task.from(
1665
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1738
+ TaskMaybe2.chain = (f) => (data) => Task.chain(
1739
+ (option) => Maybe.is.some(option) ? f(option.value) : Task.resolve(Maybe.make.none())
1740
+ )(data);
1741
+ TaskMaybe2.ap = (arg) => (data) => Task.from.Promise(
1742
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
1666
1743
  ([of_, oa]) => Maybe.ap(oa)(of_)
1667
1744
  )
1668
1745
  );
@@ -1671,25 +1748,30 @@ var TaskMaybe;
1671
1748
  TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
1672
1749
  TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
1673
1750
  TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
1674
- TaskMaybe2.toResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
1751
+ let to;
1752
+ ((to2) => {
1753
+ to2.Result = (onNone) => (data) => Task.map(Maybe.to.Result(onNone))(data);
1754
+ })(to = TaskMaybe2.to || (TaskMaybe2.to = {}));
1675
1755
  TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
1676
1756
  TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
1677
1757
  (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
1678
1758
  )(data);
1679
- TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.isNone(maybe) ? fallback() : Task.resolve(maybe))(data);
1680
- TaskMaybe2.struct = (fields) => Task.from((signal) => {
1759
+ TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.is.none(maybe) ? fallback() : Task.resolve(maybe))(
1760
+ data
1761
+ );
1762
+ TaskMaybe2.struct = (fields) => Task.from.Promise((signal) => {
1681
1763
  const keys = Object.keys(fields);
1682
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1764
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
1683
1765
  return Promise.all(promises).then((results) => {
1684
1766
  const record = {};
1685
1767
  for (let i = 0; i < keys.length; i++) {
1686
1768
  const res = results[i];
1687
- if (Maybe.isNone(res)) {
1769
+ if (Maybe.is.none(res)) {
1688
1770
  return res;
1689
1771
  }
1690
1772
  record[keys[i]] = res.value;
1691
1773
  }
1692
- return Maybe.some(record);
1774
+ return Maybe.make.some(record);
1693
1775
  });
1694
1776
  });
1695
1777
  })(TaskMaybe || (TaskMaybe = {}));
@@ -1697,28 +1779,35 @@ var TaskMaybe;
1697
1779
  // src/Core/TaskResult.ts
1698
1780
  var TaskResult;
1699
1781
  ((TaskResult2) => {
1700
- TaskResult2.ok = (value) => Task.resolve(Result.ok(value));
1701
- TaskResult2.err = (error) => Task.resolve(Result.err(error));
1702
- TaskResult2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
1703
- TaskResult2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
1704
- TaskResult2.fromResult = (result) => Task.resolve(result);
1705
- TaskResult2.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
1706
- TaskResult2.tryCatch = (f, onError) => Task.from((signal) => Promise.resolve(f(signal)).then(Result.ok).catch((error) => Result.err(onError(error))));
1782
+ TaskResult2.ok = (value) => Task.resolve(Result.make.ok(value));
1783
+ TaskResult2.err = (error) => Task.resolve(Result.make.err(error));
1784
+ let from;
1785
+ ((from2) => {
1786
+ from2.nullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.make.err(onNull()) : Result.make.ok(value));
1787
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(Maybe.is.none(maybe) ? Result.make.err(onNone()) : Result.make.ok(maybe.value));
1788
+ from2.Result = (result) => Task.resolve(result);
1789
+ from2.throwable = (f, onError) => (...args) => Task.from.Promise(
1790
+ () => f(...args).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
1791
+ );
1792
+ })(from = TaskResult2.from || (TaskResult2.from = {}));
1793
+ TaskResult2.tryCatch = (f, onError) => Task.from.Promise(
1794
+ (signal) => Promise.resolve(f(signal)).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
1795
+ );
1707
1796
  TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
1708
1797
  TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
1709
- TaskResult2.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
1710
- data
1711
- );
1798
+ TaskResult2.chain = (f) => (data) => Task.chain(
1799
+ (result) => Result.is.ok(result) ? f(result.value) : Task.resolve(Result.make.err(result.error))
1800
+ )(data);
1712
1801
  TaskResult2.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
1713
1802
  TaskResult2.match = (cases) => (data) => Task.map(Result.match(cases))(data);
1714
1803
  TaskResult2.recover = (fallback) => (data) => Task.chain(
1715
- (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
1804
+ (result) => Result.is.err(result) ? fallback(result.error) : Task.resolve(result)
1716
1805
  )(data);
1717
1806
  TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
1718
1807
  TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
1719
1808
  TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
1720
- TaskResult2.ap = (arg) => (data) => Task.from(
1721
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1809
+ TaskResult2.ap = (arg) => (data) => Task.from.Promise(
1810
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
1722
1811
  ([of_, oa]) => Result.ap(oa)(of_)
1723
1812
  )
1724
1813
  );
@@ -1727,19 +1816,19 @@ var TaskResult;
1727
1816
  TaskResult2.bind = (key, f) => (data) => (0, TaskResult2.chain)(
1728
1817
  (a) => (0, TaskResult2.map)((b) => ({ ...a, [key]: b }))(f(a))
1729
1818
  )(data);
1730
- TaskResult2.struct = (fields) => Task.from((signal) => {
1819
+ TaskResult2.struct = (fields) => Task.from.Promise((signal) => {
1731
1820
  const keys = Object.keys(fields);
1732
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1821
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
1733
1822
  return Promise.all(promises).then((results) => {
1734
1823
  const record = {};
1735
1824
  for (let i = 0; i < keys.length; i++) {
1736
1825
  const res = results[i];
1737
- if (Result.isErr(res)) {
1826
+ if (Result.is.err(res)) {
1738
1827
  return res;
1739
1828
  }
1740
1829
  record[keys[i]] = res.value;
1741
1830
  }
1742
- return Result.ok(record);
1831
+ return Result.make.ok(record);
1743
1832
  });
1744
1833
  });
1745
1834
  })(TaskResult || (TaskResult = {}));
@@ -1750,19 +1839,28 @@ var isNonEmptyArr = (list) => list.length > 0;
1750
1839
  // src/Core/TaskValidation.ts
1751
1840
  var TaskValidation;
1752
1841
  ((TaskValidation2) => {
1753
- TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
1754
- TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
1755
- TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
1756
- TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
1757
- TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
1758
- TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
1759
- TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
1760
- TaskValidation2.tryCatch = (f, onError) => Task.from(
1761
- (signal) => Promise.resolve(f(signal)).then(Validation.passed).catch((error) => Validation.failed(onError(error)))
1842
+ TaskValidation2.passed = (value) => Task.resolve(Validation.make.passed(value));
1843
+ TaskValidation2.failed = (error) => Task.resolve(Validation.make.failed(error));
1844
+ TaskValidation2.failedAll = (errors) => Task.resolve(Validation.make.failedAll(errors));
1845
+ let from;
1846
+ ((from2) => {
1847
+ from2.Validation = (validation) => Task.resolve(validation);
1848
+ from2.nullable = (onNull) => (value) => Task.resolve(
1849
+ value === null || value === void 0 ? Validation.make.failed(onNull()) : Validation.make.passed(value)
1850
+ );
1851
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(
1852
+ Maybe.is.none(maybe) ? Validation.make.failed(onNone()) : Validation.make.passed(maybe.value)
1853
+ );
1854
+ from2.Result = (result) => Task.resolve(Validation.from.Result(result));
1855
+ })(from = TaskValidation2.from || (TaskValidation2.from = {}));
1856
+ TaskValidation2.tryCatch = (f, onError) => Task.from.Promise(
1857
+ (signal) => Promise.resolve(f(signal)).then(Validation.make.passed).catch(
1858
+ (error) => Validation.make.failed(onError(error))
1859
+ )
1762
1860
  );
1763
1861
  TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
1764
- TaskValidation2.ap = (arg) => (data) => Task.from(
1765
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1862
+ TaskValidation2.ap = (arg) => (data) => Task.from.Promise(
1863
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
1766
1864
  ([vf, va]) => Validation.ap(va)(vf)
1767
1865
  )
1768
1866
  );
@@ -1771,61 +1869,64 @@ var TaskValidation;
1771
1869
  TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
1772
1870
  TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
1773
1871
  TaskValidation2.recover = (fallback) => (data) => Task.chain(
1774
- (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1872
+ (validation) => Validation.is.passed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1775
1873
  )(data);
1776
- TaskValidation2.product = (first, second) => Task.from(
1777
- (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
1874
+ TaskValidation2.product = (first, second) => Task.from.Promise(
1875
+ (signal) => Promise.all([Deferred.to.Promise(first(signal)), Deferred.to.Promise(second(signal))]).then(
1778
1876
  ([va, vb]) => Validation.product(va, vb)
1779
1877
  )
1780
1878
  );
1781
- TaskValidation2.productAll = (data) => Task.from(
1782
- (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => {
1879
+ TaskValidation2.productAll = (data) => Task.from.Promise(
1880
+ (signal) => Promise.all(data.map((t) => Deferred.to.Promise(t(signal)))).then((results) => {
1783
1881
  const [first, ...rest] = results;
1784
1882
  return Validation.productAll([first, ...rest]);
1785
1883
  })
1786
1884
  );
1787
1885
  TaskValidation2.mapError = (f) => (data) => Task.map(Validation.mapError(f))(data);
1788
1886
  TaskValidation2.tapError = (f) => (data) => Task.map(Validation.tapError(f))(data);
1789
- TaskValidation2.struct = (fields) => Task.from((signal) => {
1887
+ TaskValidation2.struct = (fields) => Task.from.Promise((signal) => {
1790
1888
  const keys = Object.keys(fields);
1791
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1889
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
1792
1890
  return Promise.all(promises).then((results) => {
1793
1891
  const record = {};
1794
1892
  const errors = [];
1795
1893
  for (let i = 0; i < keys.length; i++) {
1796
1894
  const res = results[i];
1797
- if (Validation.isPassed(res)) {
1895
+ if (Validation.is.passed(res)) {
1798
1896
  record[keys[i]] = res.value;
1799
1897
  } else {
1800
1898
  errors.push(...res.errors);
1801
1899
  }
1802
1900
  }
1803
- return isNonEmptyArr(errors) ? Validation.failedAll(errors) : Validation.passed(record);
1901
+ return isNonEmptyArr(errors) ? Validation.make.failedAll(errors) : Validation.make.passed(record);
1804
1902
  });
1805
1903
  });
1806
1904
  })(TaskValidation || (TaskValidation = {}));
1807
1905
 
1808
1906
  // src/Core/Task.ts
1809
- var toPromise = (task, signal) => Deferred.toPromise(task(signal));
1810
- var getMs2 = (duration) => Duration.toMilliseconds(duration);
1907
+ var toPromise = (task, signal) => Deferred.to.Promise(task(signal));
1908
+ var getMs2 = (duration) => Duration.to.milliseconds(duration);
1811
1909
  var Task;
1812
1910
  ((Task2) => {
1813
- Task2.resolve = (value) => () => Deferred.fromPromise(Promise.resolve(value));
1814
- Task2.from = (f) => (signal) => Deferred.fromPromise(f(signal));
1815
- Task2.fromSync = (f) => () => Deferred.fromPromise(Promise.resolve(f()));
1816
- Task2.map = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then(f));
1817
- Task2.chain = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
1818
- Task2.ap = (arg) => (data) => (0, Task2.from)((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
1819
- Task2.tap = (f) => (data) => (0, Task2.from)(
1911
+ Task2.resolve = (value) => () => Deferred.from.Promise(globalThis.Promise.resolve(value));
1912
+ let from;
1913
+ ((from2) => {
1914
+ from2.Promise = (f) => (signal) => Deferred.from.Promise(f(signal));
1915
+ from2.sync = (f) => () => Deferred.from.Promise(globalThis.Promise.resolve(f()));
1916
+ })(from = Task2.from || (Task2.from = {}));
1917
+ Task2.map = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then(f));
1918
+ Task2.chain = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
1919
+ Task2.ap = (arg) => (data) => from.Promise((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
1920
+ Task2.tap = (f) => (data) => from.Promise(
1820
1921
  (signal) => toPromise(data, signal).then((a) => {
1821
1922
  f(a);
1822
1923
  return a;
1823
1924
  })
1824
1925
  );
1825
- Task2.all = (tasks) => (0, Task2.from)(
1926
+ Task2.all = (tasks) => from.Promise(
1826
1927
  (signal) => Promise.all(tasks.map((t) => toPromise(t, signal)))
1827
1928
  );
1828
- Task2.delay = (duration) => (data) => (0, Task2.from)(
1929
+ Task2.delay = (duration) => (data) => from.Promise(
1829
1930
  (signal) => new Promise((res) => {
1830
1931
  let timerId;
1831
1932
  const onAbort = () => {
@@ -1844,7 +1945,7 @@ var Task;
1844
1945
  }, getMs2(duration));
1845
1946
  })
1846
1947
  );
1847
- Task2.repeat = (options) => (task) => (0, Task2.from)((signal) => {
1948
+ Task2.repeat = (options) => (task) => from.Promise((signal) => {
1848
1949
  const { times, delay: delayDuration } = options;
1849
1950
  if (times <= 0) {
1850
1951
  return Promise.resolve([]);
@@ -1878,7 +1979,7 @@ var Task;
1878
1979
  };
1879
1980
  return run2(times);
1880
1981
  });
1881
- Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
1982
+ Task2.repeatUntil = (options) => (task) => from.Promise((signal) => {
1882
1983
  const { when: predicate, delay: delayDuration, maxAttempts } = options;
1883
1984
  const wait = () => new Promise((r) => {
1884
1985
  let timerId;
@@ -1915,10 +2016,10 @@ var Task;
1915
2016
  });
1916
2017
  Task2.race = (tasks) => {
1917
2018
  if (tasks.length === 0) {
1918
- return () => Deferred.fromPromise(new Promise(() => {
2019
+ return () => Deferred.from.Promise(new Promise(() => {
1919
2020
  }));
1920
2021
  }
1921
- return (0, Task2.from)((outerSignal) => {
2022
+ return from.Promise((outerSignal) => {
1922
2023
  const controllers = tasks.map(() => new AbortController());
1923
2024
  const onOuterAbort = () => {
1924
2025
  for (const ctrl of controllers) {
@@ -1947,8 +2048,8 @@ var Task;
1947
2048
  return Promise.race(promises);
1948
2049
  });
1949
2050
  };
1950
- Task2.sequence = (tasks) => (0, Task2.from)((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
1951
- Task2.sequential = (tasks) => (0, Task2.from)(async (signal) => {
2051
+ Task2.sequence = (tasks) => from.Promise((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
2052
+ Task2.sequential = (tasks) => from.Promise(async (signal) => {
1952
2053
  const results = [];
1953
2054
  for (const task of tasks) {
1954
2055
  if (signal?.aborted) {
@@ -1958,7 +2059,7 @@ var Task;
1958
2059
  }
1959
2060
  return results;
1960
2061
  });
1961
- Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
2062
+ Task2.timeout = (duration, onTimeout) => (task) => from.Promise((outerSignal) => {
1962
2063
  const controller = new AbortController();
1963
2064
  let timerId;
1964
2065
  let cleanUp = () => {
@@ -1981,13 +2082,13 @@ var Task;
1981
2082
  return Promise.race([
1982
2083
  toPromise(task, controller.signal).then((a) => {
1983
2084
  cleanUp();
1984
- return Result.ok(a);
2085
+ return Result.make.ok(a);
1985
2086
  }),
1986
2087
  new Promise((res) => {
1987
2088
  timerId = setTimeout(() => {
1988
2089
  controller.abort();
1989
2090
  cleanUp();
1990
- res(Result.err(onTimeout()));
2091
+ res(Result.make.err(onTimeout()));
1991
2092
  }, getMs2(duration));
1992
2093
  })
1993
2094
  ]);
@@ -2006,7 +2107,7 @@ var Task;
2006
2107
  outerSignal.addEventListener("abort", () => controller.abort(outerSignal.reason), { once: true });
2007
2108
  }
2008
2109
  }
2009
- return Deferred.fromPromise(factory(controller.signal));
2110
+ return Deferred.from.Promise(factory(controller.signal));
2010
2111
  };
2011
2112
  return { task, abort };
2012
2113
  };
@@ -2023,67 +2124,73 @@ var Task;
2023
2124
  // src/Core/These.ts
2024
2125
  var These;
2025
2126
  ((These2) => {
2026
- These2.first = (value) => ({ kind: "First", first: value });
2027
- These2.second = (value) => ({ kind: "Second", second: value });
2028
- These2.both = (f, s) => ({ kind: "Both", first: f, second: s });
2029
- These2.isFirst = (data) => data.kind === "First";
2030
- These2.isSecond = (data) => data.kind === "Second";
2031
- These2.isBoth = (data) => data.kind === "Both";
2127
+ let make;
2128
+ ((make2) => {
2129
+ make2.first = (value) => ({ kind: "First", first: value });
2130
+ make2.second = (value) => ({ kind: "Second", second: value });
2131
+ make2.both = (f, s) => ({ kind: "Both", first: f, second: s });
2132
+ })(make = These2.make || (These2.make = {}));
2133
+ let is;
2134
+ ((is2) => {
2135
+ is2.first = (data) => data.kind === "First";
2136
+ is2.second = (data) => data.kind === "Second";
2137
+ is2.both = (data) => data.kind === "Both";
2138
+ })(is = These2.is || (These2.is = {}));
2032
2139
  These2.hasFirst = (data) => data.kind === "First" || data.kind === "Both";
2033
2140
  These2.hasSecond = (data) => data.kind === "Second" || data.kind === "Both";
2034
2141
  These2.mapFirst = (f) => (data) => {
2035
- if ((0, These2.isSecond)(data)) {
2142
+ if (is.second(data)) {
2036
2143
  return data;
2037
2144
  }
2038
- if ((0, These2.isFirst)(data)) {
2039
- return (0, These2.first)(f(data.first));
2145
+ if (is.first(data)) {
2146
+ return make.first(f(data.first));
2040
2147
  }
2041
- return (0, These2.both)(f(data.first), data.second);
2148
+ return make.both(f(data.first), data.second);
2042
2149
  };
2043
2150
  These2.mapSecond = (f) => (data) => {
2044
- if ((0, These2.isFirst)(data)) {
2151
+ if (is.first(data)) {
2045
2152
  return data;
2046
2153
  }
2047
- if ((0, These2.isSecond)(data)) {
2048
- return (0, These2.second)(f(data.second));
2154
+ if (is.second(data)) {
2155
+ return make.second(f(data.second));
2049
2156
  }
2050
- return (0, These2.both)(data.first, f(data.second));
2157
+ return make.both(data.first, f(data.second));
2051
2158
  };
2052
2159
  These2.mapBoth = (onFirst, onSecond) => (data) => {
2053
- if ((0, These2.isSecond)(data)) {
2054
- return (0, These2.second)(onSecond(data.second));
2160
+ if (is.second(data)) {
2161
+ return make.second(onSecond(data.second));
2055
2162
  }
2056
- if ((0, These2.isFirst)(data)) {
2057
- return (0, These2.first)(onFirst(data.first));
2163
+ if (is.first(data)) {
2164
+ return make.first(onFirst(data.first));
2058
2165
  }
2059
- return (0, These2.both)(onFirst(data.first), onSecond(data.second));
2166
+ return make.both(onFirst(data.first), onSecond(data.second));
2060
2167
  };
2061
2168
  These2.chainFirst = (f) => (data) => {
2062
- if ((0, These2.isSecond)(data)) {
2169
+ if (is.second(data)) {
2063
2170
  return data;
2064
2171
  }
2065
2172
  return f(data.first);
2066
2173
  };
2067
2174
  These2.chainSecond = (f) => (data) => {
2068
- if ((0, These2.isFirst)(data)) {
2175
+ if (is.first(data)) {
2069
2176
  return data;
2070
2177
  }
2071
2178
  return f(data.second);
2072
2179
  };
2073
2180
  These2.fold = (onFirst, onSecond, onBoth) => (data) => {
2074
- if ((0, These2.isSecond)(data)) {
2181
+ if (is.second(data)) {
2075
2182
  return onSecond(data.second);
2076
2183
  }
2077
- if ((0, These2.isFirst)(data)) {
2184
+ if (is.first(data)) {
2078
2185
  return onFirst(data.first);
2079
2186
  }
2080
2187
  return onBoth(data.first, data.second);
2081
2188
  };
2082
2189
  These2.match = (cases) => (data) => {
2083
- if ((0, These2.isSecond)(data)) {
2190
+ if (is.second(data)) {
2084
2191
  return cases.second(data.second);
2085
2192
  }
2086
- if ((0, These2.isFirst)(data)) {
2193
+ if (is.first(data)) {
2087
2194
  return cases.first(data.first);
2088
2195
  }
2089
2196
  return cases.both(data.first, data.second);
@@ -2097,20 +2204,24 @@ var These;
2097
2204
  return data;
2098
2205
  };
2099
2206
  These2.swap = (data) => {
2100
- if ((0, These2.isSecond)(data)) {
2101
- return (0, These2.first)(data.second);
2207
+ if (is.second(data)) {
2208
+ return make.first(data.second);
2102
2209
  }
2103
- if ((0, These2.isFirst)(data)) {
2104
- return (0, These2.second)(data.first);
2210
+ if (is.first(data)) {
2211
+ return make.second(data.first);
2105
2212
  }
2106
- return (0, These2.both)(data.second, data.first);
2213
+ return make.both(data.second, data.first);
2107
2214
  };
2108
2215
  })(These || (These = {}));
2109
2216
 
2110
2217
  // src/Core/Tuple.ts
2111
2218
  var Tuple;
2112
2219
  ((Tuple2) => {
2113
- Tuple2.make = (first2, second2) => [first2, second2];
2220
+ let from;
2221
+ ((from2) => {
2222
+ from2.pair = (first2, second2) => [first2, second2];
2223
+ from2.array = (arr) => arr;
2224
+ })(from = Tuple2.from || (Tuple2.from = {}));
2114
2225
  Tuple2.first = (tuple) => tuple[0];
2115
2226
  Tuple2.second = (tuple) => tuple[1];
2116
2227
  Tuple2.mapFirst = (f) => (tuple) => [f(tuple[0]), tuple[1]];
@@ -2121,7 +2232,10 @@ var Tuple;
2121
2232
  ];
2122
2233
  Tuple2.fold = (f) => (tuple) => f(tuple[0], tuple[1]);
2123
2234
  Tuple2.swap = (tuple) => [tuple[1], tuple[0]];
2124
- Tuple2.toArray = (tuple) => [...tuple];
2235
+ let to;
2236
+ ((to2) => {
2237
+ to2.Array = (tuple) => [...tuple];
2238
+ })(to = Tuple2.to || (Tuple2.to = {}));
2125
2239
  Tuple2.tap = (f) => (tuple) => {
2126
2240
  f(tuple[0], tuple[1]);
2127
2241
  return tuple;
@@ -2131,59 +2245,71 @@ var Tuple;
2131
2245
  // src/Core/Validation.ts
2132
2246
  var Validation;
2133
2247
  ((Validation2) => {
2134
- Validation2.passed = (value) => ({ kind: "Passed", value });
2135
- Validation2.failed = (error) => ({ kind: "Failed", errors: [error] });
2136
- Validation2.failedAll = (errors) => ({ kind: "Failed", errors });
2137
- Validation2.isPassed = (data) => data.kind === "Passed";
2138
- Validation2.isFailed = (data) => data.kind === "Failed";
2139
- Validation2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Validation2.passed)(a) : (0, Validation2.failed)(onFalse(a));
2140
- Validation2.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Validation2.failed)(onNull()) : (0, Validation2.passed)(value);
2141
- Validation2.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Validation2.failed)(onNone()) : (0, Validation2.passed)(maybe.value);
2142
- Validation2.map = (f) => (data) => (0, Validation2.isPassed)(data) ? (0, Validation2.passed)(f(data.value)) : data;
2143
- Validation2.mapError = (f) => (data) => (0, Validation2.isFailed)(data) ? (0, Validation2.failedAll)(data.errors.map(f)) : data;
2248
+ let make;
2249
+ ((make2) => {
2250
+ make2.passed = (value) => ({ kind: "Passed", value });
2251
+ make2.failed = (error) => ({ kind: "Failed", errors: [error] });
2252
+ make2.failedAll = (errors) => ({ kind: "Failed", errors });
2253
+ })(make = Validation2.make || (Validation2.make = {}));
2254
+ let is;
2255
+ ((is2) => {
2256
+ is2.passed = (data) => data.kind === "Passed";
2257
+ is2.failed = (data) => data.kind === "Failed";
2258
+ })(is = Validation2.is || (Validation2.is = {}));
2259
+ let from;
2260
+ ((from2) => {
2261
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.passed(a) : make.failed(onFalse(a));
2262
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.failed(onNull()) : make.passed(value);
2263
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.failed(onNone()) : make.passed(maybe.value);
2264
+ from2.Result = (data) => data.kind === "Ok" ? make.passed(data.value) : make.failed(data.error);
2265
+ })(from = Validation2.from || (Validation2.from = {}));
2266
+ Validation2.map = (f) => (data) => is.passed(data) ? make.passed(f(data.value)) : data;
2267
+ Validation2.mapError = (f) => (data) => is.failed(data) ? make.failedAll(data.errors.map(f)) : data;
2144
2268
  Validation2.ap = (arg) => (data) => {
2145
- if ((0, Validation2.isPassed)(data)) {
2146
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.passed)(data.value(arg.value)) : (0, Validation2.failedAll)(arg.errors);
2269
+ if (is.passed(data)) {
2270
+ return is.passed(arg) ? make.passed(data.value(arg.value)) : make.failedAll(arg.errors);
2147
2271
  }
2148
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.failedAll)(data.errors) : (0, Validation2.failedAll)([...data.errors, ...arg.errors]);
2272
+ return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll([...data.errors, ...arg.errors]);
2149
2273
  };
2150
- Validation2.fold = (onFailed, onPassed) => (data) => (0, Validation2.isPassed)(data) ? onPassed(data.value) : onFailed(data.errors);
2151
- Validation2.match = (cases) => (data) => (0, Validation2.isPassed)(data) ? cases.passed(data.value) : cases.failed(data.errors);
2152
- Validation2.getOrElse = (defaultValue) => (data) => (0, Validation2.isPassed)(data) ? data.value : defaultValue();
2274
+ Validation2.fold = (onFailed, onPassed) => (data) => is.passed(data) ? onPassed(data.value) : onFailed(data.errors);
2275
+ Validation2.match = (cases) => (data) => is.passed(data) ? cases.passed(data.value) : cases.failed(data.errors);
2276
+ Validation2.getOrElse = (defaultValue) => (data) => is.passed(data) ? data.value : defaultValue();
2153
2277
  Validation2.tap = (f) => (data) => {
2154
- if ((0, Validation2.isPassed)(data)) {
2278
+ if (is.passed(data)) {
2155
2279
  f(data.value);
2156
2280
  }
2157
2281
  return data;
2158
2282
  };
2159
2283
  Validation2.tapError = (f) => (data) => {
2160
- if ((0, Validation2.isFailed)(data)) {
2284
+ if (is.failed(data)) {
2161
2285
  f(data.errors);
2162
2286
  }
2163
2287
  return data;
2164
2288
  };
2165
- Validation2.recover = (fallback) => (data) => (0, Validation2.isPassed)(data) ? data : fallback(data.errors);
2166
- Validation2.recoverUnless = (isBlocked, fallback) => (data) => (0, Validation2.isFailed)(data) && !data.errors.some(isBlocked) ? fallback() : data;
2167
- Validation2.toResult = (data) => (0, Validation2.isPassed)(data) ? Result.ok(data.value) : Result.err(data.errors);
2168
- Validation2.toMaybe = (data) => (0, Validation2.isPassed)(data) ? Maybe.some(data.value) : Maybe.none();
2169
- Validation2.fromResult = (data) => data.kind === "Ok" ? (0, Validation2.passed)(data.value) : (0, Validation2.failed)(data.error);
2289
+ Validation2.recover = (fallback) => (data) => is.passed(data) ? data : fallback(data.errors);
2290
+ Validation2.recoverUnless = (isBlocked, fallback) => (data) => is.failed(data) && !data.errors.some(isBlocked) ? fallback() : data;
2291
+ let to;
2292
+ ((to2) => {
2293
+ to2.Result = (data) => is.passed(data) ? Result.make.ok(data.value) : Result.make.err(data.errors);
2294
+ to2.Maybe = (data) => is.passed(data) ? Maybe.make.some(data.value) : Maybe.make.none();
2295
+ })(to = Validation2.to || (Validation2.to = {}));
2170
2296
  Validation2.product = (first, second) => {
2171
- if ((0, Validation2.isPassed)(first)) {
2172
- return (0, Validation2.isPassed)(second) ? (0, Validation2.passed)([first.value, second.value]) : (0, Validation2.failedAll)(second.errors);
2297
+ if (is.passed(first)) {
2298
+ return is.passed(second) ? make.passed([first.value, second.value]) : make.failedAll(second.errors);
2173
2299
  }
2174
- return (0, Validation2.isPassed)(second) ? (0, Validation2.failedAll)(first.errors) : (0, Validation2.failedAll)([...first.errors, ...second.errors]);
2300
+ return is.passed(second) ? make.failedAll(first.errors) : make.failedAll([...first.errors, ...second.errors]);
2175
2301
  };
2176
2302
  Validation2.productAll = (data) => {
2177
2303
  const values = [];
2178
2304
  const errors = [];
2179
2305
  for (const v of data) {
2180
- if ((0, Validation2.isPassed)(v)) {
2306
+ if (is.passed(v)) {
2181
2307
  values.push(v.value);
2182
2308
  } else {
2183
2309
  errors.push(...v.errors);
2184
2310
  }
2185
2311
  }
2186
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
2312
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(values);
2187
2313
  };
2188
2314
  Validation2.struct = (fields) => {
2189
2315
  const record = {};
@@ -2191,14 +2317,14 @@ var Validation;
2191
2317
  for (const key in fields) {
2192
2318
  if (Object.hasOwn(fields, key)) {
2193
2319
  const val = fields[key];
2194
- if ((0, Validation2.isPassed)(val)) {
2320
+ if (is.passed(val)) {
2195
2321
  record[key] = val.value;
2196
2322
  } else {
2197
2323
  errors.push(...val.errors);
2198
2324
  }
2199
2325
  }
2200
2326
  }
2201
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
2327
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(record);
2202
2328
  };
2203
2329
  })(Validation || (Validation = {}));
2204
2330
  // Annotate the CommonJS export names for ESM import in node: