@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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Duration
3
- } from "./chunk-74JKKJ4R.mjs";
3
+ } from "./chunk-XTVF5R6R.mjs";
4
4
 
5
5
  // src/Core/Combinable.ts
6
6
  var Combinable;
@@ -12,8 +12,8 @@ var Combinable;
12
12
  Combinable2.any = { empty: false, combine: (b) => (a) => a || b };
13
13
  Combinable2.array = () => ({ empty: [], combine: (b) => (a) => [...a, ...b] });
14
14
  Combinable2.maybe = (inner) => ({
15
- empty: Maybe.none(),
16
- combine: (b) => (a) => Maybe.isNone(a) ? b : Maybe.isNone(b) ? a : Maybe.some(inner.combine(b.value)(a.value))
15
+ empty: Maybe.make.none(),
16
+ combine: (b) => (a) => Maybe.is.none(a) ? b : Maybe.is.none(b) ? a : Maybe.make.some(inner.combine(b.value)(a.value))
17
17
  });
18
18
  Combinable2.fold = (c) => (data) => data.reduce((acc, x) => c.combine(x)(acc), c.empty);
19
19
  })(Combinable || (Combinable = {}));
@@ -21,11 +21,17 @@ var Combinable;
21
21
  // src/Core/Deferred.ts
22
22
  var Deferred;
23
23
  ((Deferred2) => {
24
- Deferred2.fromPromise = (p) => (
25
- // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
26
- { then: ((f) => p.then(f)) }
27
- );
28
- Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
24
+ let from;
25
+ ((from2) => {
26
+ from2.Promise = (p) => (
27
+ // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
28
+ { then: ((f) => p.then(f)) }
29
+ );
30
+ })(from = Deferred2.from || (Deferred2.from = {}));
31
+ let to;
32
+ ((to2) => {
33
+ to2.Promise = (d) => new globalThis.Promise((resolve) => d.then(resolve));
34
+ })(to = Deferred2.to || (Deferred2.to = {}));
29
35
  })(Deferred || (Deferred = {}));
30
36
 
31
37
  // src/Core/Equality.ts
@@ -69,12 +75,15 @@ var Lazy;
69
75
  // src/Core/Lens.ts
70
76
  var Lens;
71
77
  ((Lens3) => {
72
- Lens3.make = (get2, set2) => ({ get: get2, set: set2 });
73
- Lens3.prop = () => (key) => (0, Lens3.make)((s) => s[key], (a) => (s) => ({ ...s, [key]: a }));
78
+ let from;
79
+ ((from2) => {
80
+ from2.accessors = (get2, set2) => ({ get: get2, set: set2 });
81
+ from2.property = () => (key) => (0, from2.accessors)((s) => s[key], (a) => (s) => ({ ...s, [key]: a }));
82
+ })(from = Lens3.from || (Lens3.from = {}));
74
83
  Lens3.get = (lens) => (s) => lens.get(s);
75
84
  Lens3.set = (lens) => (a) => (s) => lens.set(a)(s);
76
85
  Lens3.modify = (lens) => (f) => (s) => lens.set(f(lens.get(s)))(s);
77
- Lens3.andThen = (inner) => (outer) => (0, Lens3.make)((s) => inner.get(outer.get(s)), (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s));
86
+ Lens3.andThen = (inner) => (outer) => from.accessors((s) => inner.get(outer.get(s)), (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s));
78
87
  Lens3.andThenOptional = (inner) => (outer) => ({
79
88
  get: (s) => inner.get(outer.get(s)),
80
89
  set: (b) => (s) => outer.set(inner.set(b)(outer.get(s)))(s)
@@ -88,8 +97,11 @@ var Lens;
88
97
  // src/Core/Logged.ts
89
98
  var Logged;
90
99
  ((Logged2) => {
91
- Logged2.make = (value) => ({ value, log: [] });
92
- Logged2.tell = (entry) => ({ value: void 0, log: [entry] });
100
+ let from;
101
+ ((from2) => {
102
+ from2.value = (val) => ({ value: val, log: [] });
103
+ from2.entry = (logEntry) => ({ value: void 0, log: [logEntry] });
104
+ })(from = Logged2.from || (Logged2.from = {}));
93
105
  Logged2.map = (f) => (data) => ({
94
106
  value: f(data.value),
95
107
  log: data.log
@@ -116,47 +128,59 @@ var Logged;
116
128
  // src/Core/Maybe.ts
117
129
  var _none = { kind: "None" };
118
130
  var Maybe;
119
- ((Maybe2) => {
120
- Maybe2.some = (value) => ({ kind: "Some", value });
121
- Maybe2.isSome = (data) => data.kind === "Some";
122
- Maybe2.none = () => _none;
123
- Maybe2.isNone = (data) => data.kind === "None";
124
- Maybe2.fromNullable = (value) => value === null || value === void 0 ? (0, Maybe2.none)() : (0, Maybe2.some)(value);
125
- Maybe2.toNullable = (data) => (0, Maybe2.isSome)(data) ? data.value : null;
126
- Maybe2.toUndefined = (data) => (0, Maybe2.isSome)(data) ? data.value : void 0;
127
- Maybe2.fromPredicate = (pred) => (a) => pred(a) ? (0, Maybe2.some)(a) : (0, Maybe2.none)();
128
- Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.err(onNone());
129
- Maybe2.fromResult = (data) => Result.isOk(data) ? (0, Maybe2.some)(data.value) : (0, Maybe2.none)();
130
- Maybe2.map = (f) => (data) => (0, Maybe2.isSome)(data) ? (0, Maybe2.some)(f(data.value)) : data;
131
- Maybe2.chain = (f) => (data) => (0, Maybe2.isSome)(data) ? f(data.value) : data;
132
- Maybe2.fold = (onNone, onSome) => (data) => (0, Maybe2.isSome)(data) ? onSome(data.value) : onNone();
133
- Maybe2.match = (cases) => (data) => (0, Maybe2.isSome)(data) ? cases.some(data.value) : cases.none();
134
- Maybe2.getOrElse = (defaultValue) => (data) => (0, Maybe2.isSome)(data) ? data.value : defaultValue();
135
- Maybe2.tap = (f) => (data) => {
136
- if ((0, Maybe2.isSome)(data)) {
131
+ ((Maybe3) => {
132
+ let make;
133
+ ((make2) => {
134
+ make2.some = (value) => ({ kind: "Some", value });
135
+ make2.none = () => _none;
136
+ })(make = Maybe3.make || (Maybe3.make = {}));
137
+ let is;
138
+ ((is2) => {
139
+ is2.some = (data) => data.kind === "Some";
140
+ is2.none = (data) => data.kind === "None";
141
+ })(is = Maybe3.is || (Maybe3.is = {}));
142
+ let to;
143
+ ((to2) => {
144
+ to2.nullable = (data) => is.some(data) ? data.value : null;
145
+ to2.undefined = (data) => is.some(data) ? data.value : globalThis.undefined;
146
+ to2.Result = (onNone) => (data) => is.some(data) ? Result.make.ok(data.value) : Result.make.err(onNone());
147
+ })(to = Maybe3.to || (Maybe3.to = {}));
148
+ let from;
149
+ ((from2) => {
150
+ from2.nullable = (value) => value === null || value === void 0 ? make.none() : make.some(value);
151
+ from2.Predicate = (pred) => (a) => pred(a) ? make.some(a) : make.none();
152
+ from2.Result = (data) => Result.is.ok(data) ? make.some(data.value) : make.none();
153
+ })(from = Maybe3.from || (Maybe3.from = {}));
154
+ Maybe3.map = (f) => (data) => is.some(data) ? make.some(f(data.value)) : data;
155
+ Maybe3.chain = (f) => (data) => is.some(data) ? f(data.value) : data;
156
+ Maybe3.fold = (onNone, onSome) => (data) => is.some(data) ? onSome(data.value) : onNone();
157
+ Maybe3.match = (cases) => (data) => is.some(data) ? cases.some(data.value) : cases.none();
158
+ Maybe3.getOrElse = (defaultValue) => (data) => is.some(data) ? data.value : defaultValue();
159
+ Maybe3.tap = (f) => (data) => {
160
+ if (is.some(data)) {
137
161
  f(data.value);
138
162
  }
139
163
  return data;
140
164
  };
141
- Maybe2.filter = (predicate) => (data) => (0, Maybe2.isSome)(data) ? predicate(data.value) ? data : (0, Maybe2.none)() : data;
142
- Maybe2.recover = (fallback) => (data) => (0, Maybe2.isSome)(data) ? data : fallback();
143
- Maybe2.ap = (arg) => (data) => (0, Maybe2.isSome)(data) && (0, Maybe2.isSome)(arg) ? (0, Maybe2.some)(data.value(arg.value)) : (0, Maybe2.none)();
144
- Maybe2.bindTo = (key) => (data) => (0, Maybe2.map)((a) => ({ [key]: a }))(data);
145
- Maybe2.bind = (key, f) => (data) => (0, Maybe2.chain)(
146
- (a) => (0, Maybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
165
+ Maybe3.filter = (predicate) => (data) => is.some(data) ? predicate(data.value) ? data : make.none() : data;
166
+ Maybe3.recover = (fallback) => (data) => is.some(data) ? data : fallback();
167
+ Maybe3.ap = (arg) => (data) => is.some(data) && is.some(arg) ? make.some(data.value(arg.value)) : make.none();
168
+ Maybe3.bindTo = (key) => (data) => (0, Maybe3.map)((a) => ({ [key]: a }))(data);
169
+ Maybe3.bind = (key, f) => (data) => (0, Maybe3.chain)(
170
+ (a) => (0, Maybe3.map)((b) => ({ ...a, [key]: b }))(f(a))
147
171
  )(data);
148
- Maybe2.struct = (fields) => {
172
+ Maybe3.struct = (fields) => {
149
173
  const result = {};
150
174
  for (const key in fields) {
151
175
  if (Object.hasOwn(fields, key)) {
152
176
  const res = fields[key];
153
- if ((0, Maybe2.isNone)(res)) {
177
+ if (is.none(res)) {
154
178
  return res;
155
179
  }
156
180
  result[key] = res.value;
157
181
  }
158
182
  }
159
- return (0, Maybe2.some)(result);
183
+ return make.some(result);
160
184
  };
161
185
  })(Maybe || (Maybe = {}));
162
186
 
@@ -169,7 +193,7 @@ var _idle = { kind: "Idle" };
169
193
  var _pending = { kind: "Pending" };
170
194
  var ok = (value) => ({ kind: "OpOk", value });
171
195
  var err = (error) => ({ kind: "OpErr", error });
172
- var getMs = (duration) => Duration.toMilliseconds(duration);
196
+ var getMs = (duration) => Duration.to.milliseconds(duration);
173
197
  var cancellableWait = (duration, signal) => {
174
198
  const rawMs = getMs(duration);
175
199
  if (rawMs <= 0) {
@@ -192,7 +216,7 @@ var runWithRetry = (op, input, signal, options, onRetrying) => {
192
216
  return typeof backoff === "function" ? backoff(n) : backoff;
193
217
  };
194
218
  const attempt = async (left) => {
195
- const result = await Deferred.toPromise(op._factory(input, signal));
219
+ const result = await Deferred.to.Promise(op._factory(input, signal));
196
220
  if (result === null || signal.aborted) {
197
221
  return null;
198
222
  }
@@ -227,12 +251,12 @@ var runWithRetry = (op, input, signal, options, onRetrying) => {
227
251
  var execute = (op, input, controller, retryOptions, timeoutOptions, onRetrying) => {
228
252
  const { signal } = controller;
229
253
  const toOutcome = (r) => r === null ? _abortedNil : r.kind === "Ok" ? ok(r.value) : err(r.error);
230
- const runPromise = retryOptions !== void 0 && onRetrying !== void 0 ? runWithRetry(op, input, signal, retryOptions, onRetrying).then(toOutcome) : Deferred.toPromise(op._factory(input, signal)).then(toOutcome);
254
+ 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);
231
255
  if (timeoutOptions === void 0) {
232
- return Deferred.fromPromise(runPromise);
256
+ return Deferred.from.Promise(runPromise);
233
257
  }
234
258
  let timerId;
235
- return Deferred.fromPromise(Promise.race([
259
+ return Deferred.from.Promise(Promise.race([
236
260
  runPromise.then((outcome) => {
237
261
  clearTimeout(timerId);
238
262
  return outcome;
@@ -256,7 +280,7 @@ var makeRestartable = (op, minInterval, retryOptions, timeoutOptions) => {
256
280
  currentState = state;
257
281
  subscribers.forEach((cb) => cb(state));
258
282
  };
259
- const run = (input) => Deferred.fromPromise(
283
+ const run = (input) => Deferred.from.Promise(
260
284
  new Promise((resolve) => {
261
285
  waitController?.abort();
262
286
  waitController = void 0;
@@ -348,9 +372,9 @@ var makeExclusive = (op, cooldown, retryOptions, timeoutOptions) => {
348
372
  };
349
373
  const run = (input) => {
350
374
  if (currentController !== void 0 || cooldownTimer !== void 0) {
351
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
375
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
352
376
  }
353
- return Deferred.fromPromise(
377
+ return Deferred.from.Promise(
354
378
  new Promise((resolve) => {
355
379
  currentResolve = resolve;
356
380
  currentController = new AbortController();
@@ -470,14 +494,14 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
470
494
  }
471
495
  }
472
496
  if (inFlight < maxConcurrency) {
473
- return Deferred.fromPromise(
497
+ return Deferred.from.Promise(
474
498
  new Promise((resolve) => {
475
499
  startOne(input, resolve, myGeneration);
476
500
  })
477
501
  );
478
502
  }
479
503
  if (maxSize === void 0 || queue.length < maxSize) {
480
- return Deferred.fromPromise(
504
+ return Deferred.from.Promise(
481
505
  new Promise((resolve) => {
482
506
  queue.push({ input, resolve });
483
507
  emit({ kind: "Queued", position: queue.length - 1 });
@@ -485,7 +509,7 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
485
509
  );
486
510
  }
487
511
  if (overflow === "replace-last") {
488
- return Deferred.fromPromise(
512
+ return Deferred.from.Promise(
489
513
  new Promise((resolve) => {
490
514
  const tail = queue.pop();
491
515
  tail.resolve(_evictedNil);
@@ -494,7 +518,7 @@ var makeQueue = (op, maxSize, overflow, concurrency, dedupe, retryOptions, timeo
494
518
  })
495
519
  );
496
520
  }
497
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
521
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
498
522
  };
499
523
  const abort = () => {
500
524
  generation++;
@@ -566,7 +590,7 @@ var makeBuffered = (op, size, retryOptions, timeoutOptions) => {
566
590
  }
567
591
  });
568
592
  };
569
- const run = (input) => Deferred.fromPromise(
593
+ const run = (input) => Deferred.from.Promise(
570
594
  new Promise((resolve) => {
571
595
  if (currentController === void 0) {
572
596
  startRun(input, resolve);
@@ -692,7 +716,7 @@ var makeDebounced = (op, duration, leading, maxWait, retryOptions, timeoutOption
692
716
  timerId = setTimeout(fireTrailing, delay);
693
717
  };
694
718
  const inDebounceWindow = () => timerId !== void 0 || leadingController !== void 0 || currentController !== void 0;
695
- const run = (input) => Deferred.fromPromise(
719
+ const run = (input) => Deferred.from.Promise(
696
720
  new Promise((resolve) => {
697
721
  if (!inDebounceWindow()) {
698
722
  firstCallAt = Date.now();
@@ -807,9 +831,9 @@ var makeThrottled = (op, duration, trailing, retryOptions, timeoutOptions) => {
807
831
  const run = (input) => {
808
832
  if (cooldownTimer !== void 0) {
809
833
  if (!trailing) {
810
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
834
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
811
835
  }
812
- return Deferred.fromPromise(
836
+ return Deferred.from.Promise(
813
837
  new Promise((resolve) => {
814
838
  const prev = pendingResolve;
815
839
  pendingInput = input;
@@ -818,7 +842,7 @@ var makeThrottled = (op, duration, trailing, retryOptions, timeoutOptions) => {
818
842
  })
819
843
  );
820
844
  }
821
- return Deferred.fromPromise(
845
+ return Deferred.from.Promise(
822
846
  new Promise((resolve) => {
823
847
  fireOp(input, resolve);
824
848
  startCooldown();
@@ -909,16 +933,16 @@ var makeConcurrent = (op, n, overflow, retryOptions, timeoutOptions) => {
909
933
  const run = (input) => {
910
934
  const myGeneration = generation;
911
935
  if (inflight < n) {
912
- return Deferred.fromPromise(
936
+ return Deferred.from.Promise(
913
937
  new Promise((resolve) => {
914
938
  startOne(input, resolve, myGeneration);
915
939
  })
916
940
  );
917
941
  }
918
942
  if (overflow === "drop") {
919
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
943
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
920
944
  }
921
- return Deferred.fromPromise(
945
+ return Deferred.from.Promise(
922
946
  new Promise((resolve) => {
923
947
  overflowQueue.push({ input, resolve });
924
948
  emit({ kind: "Queued", position: overflowQueue.length - 1 });
@@ -971,7 +995,7 @@ var makeKeyed = (op, keyFn, perKey, timeoutOptions) => {
971
995
  const k = keyFn(input);
972
996
  if (slots.has(k)) {
973
997
  if (perKey === "exclusive") {
974
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
998
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
975
999
  }
976
1000
  const existing = slots.get(k);
977
1001
  existing.controller.abort();
@@ -979,7 +1003,7 @@ var makeKeyed = (op, keyFn, perKey, timeoutOptions) => {
979
1003
  slots.delete(k);
980
1004
  prev(_replacedNil);
981
1005
  }
982
- return Deferred.fromPromise(
1006
+ return Deferred.from.Promise(
983
1007
  new Promise((resolve) => {
984
1008
  const controller = new AbortController();
985
1009
  slots.set(k, { controller, resolve });
@@ -1059,9 +1083,9 @@ var makeOnce = (op, retryOptions, timeoutOptions) => {
1059
1083
  };
1060
1084
  const run = (input) => {
1061
1085
  if (currentState.kind !== "Idle") {
1062
- return Deferred.fromPromise(Promise.resolve(_droppedNil));
1086
+ return Deferred.from.Promise(Promise.resolve(_droppedNil));
1063
1087
  }
1064
- return Deferred.fromPromise(
1088
+ return Deferred.from.Promise(
1065
1089
  new Promise((resolve) => {
1066
1090
  currentResolve = resolve;
1067
1091
  currentController = new AbortController();
@@ -1122,10 +1146,8 @@ var Op;
1122
1146
  ((Op2) => {
1123
1147
  Op2.nil = (reason) => ({ kind: "OpNil", reason });
1124
1148
  Op2.create = (factory, onError) => ({
1125
- _factory: (input, signal) => Deferred.fromPromise(
1126
- factory(signal)(input).then((value) => Result.ok(value)).catch(
1127
- (error) => signal.aborted ? null : Result.err(onError(error))
1128
- )
1149
+ _factory: (input, signal) => Deferred.from.Promise(
1150
+ factory(signal)(input).then((value) => Result.make.ok(value)).catch((error) => signal.aborted ? null : Result.make.err(onError(error)))
1129
1151
  )
1130
1152
  });
1131
1153
  Op2.lift = (f) => (0, Op2.create)((signal) => (input) => f(input, signal), (e) => e);
@@ -1167,18 +1189,21 @@ var Op;
1167
1189
  return outcome;
1168
1190
  };
1169
1191
  Op2.recover = (f) => (outcome) => outcome.kind === "OpErr" ? f(outcome.error) : outcome;
1170
- Op2.toResult = (onNil) => (outcome) => {
1171
- if (outcome.kind === "OpOk") {
1172
- return Result.ok(outcome.value);
1173
- }
1174
- if (outcome.kind === "OpErr") {
1175
- return Result.err(outcome.error);
1176
- }
1177
- return Result.err(onNil());
1178
- };
1179
- Op2.toMaybe = (outcome) => outcome.kind === "OpOk" ? Maybe.some(outcome.value) : Maybe.none();
1180
- Op2.all = (invocations) => Deferred.fromPromise(Promise.all(invocations.map(Deferred.toPromise)));
1181
- Op2.race = (invocations) => Deferred.fromPromise(Promise.race(invocations.map(Deferred.toPromise)));
1192
+ let to;
1193
+ ((to2) => {
1194
+ to2.Result = (onNil) => (outcome) => {
1195
+ if (outcome.kind === "OpOk") {
1196
+ return Result.make.ok(outcome.value);
1197
+ }
1198
+ if (outcome.kind === "OpErr") {
1199
+ return Result.make.err(outcome.error);
1200
+ }
1201
+ return Result.make.err(onNil());
1202
+ };
1203
+ to2.Maybe = (outcome) => outcome.kind === "OpOk" ? Maybe.make.some(outcome.value) : Maybe.make.none();
1204
+ })(to = Op2.to || (Op2.to = {}));
1205
+ Op2.all = (invocations) => Deferred.from.Promise(Promise.all(invocations.map(Deferred.to.Promise)));
1206
+ Op2.race = (invocations) => Deferred.from.Promise(Promise.race(invocations.map(Deferred.to.Promise)));
1182
1207
  Op2.wire = (source, f) => source.subscribe((state) => {
1183
1208
  if ((0, Op2.isOk)(state)) {
1184
1209
  f(state.value);
@@ -1243,12 +1268,18 @@ var Op;
1243
1268
  // src/Core/Optional.ts
1244
1269
  var Optional;
1245
1270
  ((Optional2) => {
1246
- Optional2.make = (get2, set2) => ({ get: get2, set: set2 });
1247
- Optional2.prop = () => (key) => (0, Optional2.make)((s) => {
1248
- const val = s[key];
1249
- return val !== null && val !== void 0 ? Maybe.some(val) : Maybe.none();
1250
- }, (a) => (s) => ({ ...s, [key]: a }));
1251
- Optional2.index = (i) => (0, Optional2.make)((arr) => i >= 0 && i < arr.length ? Maybe.some(arr[i]) : Maybe.none(), (a) => (arr) => {
1271
+ let from;
1272
+ ((from2) => {
1273
+ from2.accessors = (get2, set2) => ({
1274
+ get: get2,
1275
+ set: set2
1276
+ });
1277
+ from2.property = () => (key) => (0, from2.accessors)((s) => {
1278
+ const val = s[key];
1279
+ return val !== null && val !== void 0 ? Maybe.make.some(val) : Maybe.make.none();
1280
+ }, (a) => (s) => ({ ...s, [key]: a }));
1281
+ })(from = Optional2.from || (Optional2.from = {}));
1282
+ Optional2.index = (i) => from.accessors((arr) => i >= 0 && i < arr.length ? Maybe.make.some(arr[i]) : Maybe.make.none(), (a) => (arr) => {
1252
1283
  if (i < 0 || i >= arr.length) {
1253
1284
  return arr;
1254
1285
  }
@@ -1274,16 +1305,16 @@ var Optional;
1274
1305
  const val = opt.get(s);
1275
1306
  return val.kind === "Some" ? cases.some(val.value) : cases.none();
1276
1307
  };
1277
- Optional2.andThen = (inner) => (outer) => (0, Optional2.make)((s) => {
1308
+ Optional2.andThen = (inner) => (outer) => from.accessors((s) => {
1278
1309
  const mid = outer.get(s);
1279
- return mid.kind === "None" ? Maybe.none() : inner.get(mid.value);
1310
+ return mid.kind === "None" ? Maybe.make.none() : inner.get(mid.value);
1280
1311
  }, (b) => (s) => {
1281
1312
  const mid = outer.get(s);
1282
1313
  return mid.kind === "None" ? s : outer.set(inner.set(b)(mid.value))(s);
1283
1314
  });
1284
- Optional2.andThenLens = (inner) => (outer) => (0, Optional2.make)((s) => {
1315
+ Optional2.andThenLens = (inner) => (outer) => from.accessors((s) => {
1285
1316
  const mid = outer.get(s);
1286
- return mid.kind === "None" ? Maybe.none() : Maybe.some(inner.get(mid.value));
1317
+ return mid.kind === "None" ? Maybe.make.none() : Maybe.make.some(inner.get(mid.value));
1287
1318
  }, (b) => (s) => {
1288
1319
  const mid = outer.get(s);
1289
1320
  return mid.kind === "None" ? s : outer.set(inner.set(b)(mid.value))(s);
@@ -1313,7 +1344,10 @@ var Predicate;
1313
1344
  Predicate2.using = (f) => (p) => (b) => p(f(b));
1314
1345
  Predicate2.all = (predicates) => (a) => predicates.every((p) => p(a));
1315
1346
  Predicate2.any = (predicates) => (a) => predicates.some((p) => p(a));
1316
- Predicate2.fromRefinement = (r) => r;
1347
+ let from;
1348
+ ((from2) => {
1349
+ from2.Refinement = (r) => r;
1350
+ })(from = Predicate2.from || (Predicate2.from = {}));
1317
1351
  })(Predicate || (Predicate = {}));
1318
1352
 
1319
1353
  // src/Core/Reader.ts
@@ -1341,12 +1375,18 @@ var Reader;
1341
1375
  // src/Core/Refinement.ts
1342
1376
  var Refinement;
1343
1377
  ((Refinement2) => {
1344
- Refinement2.make = (f) => f;
1378
+ let from;
1379
+ ((from2) => {
1380
+ from2.predicate = (f) => f;
1381
+ })(from = Refinement2.from || (Refinement2.from = {}));
1345
1382
  Refinement2.compose = (bc) => (ab) => (a) => ab(a) && bc(a);
1346
1383
  Refinement2.and = (second) => (first) => (a) => first(a) && second(a);
1347
1384
  Refinement2.or = (second) => (first) => (a) => first(a) || second(a);
1348
- Refinement2.toFilter = (r) => (a) => r(a) ? Maybe.some(a) : Maybe.none();
1349
- Refinement2.toResult = (r, onFail) => (a) => r(a) ? Result.ok(a) : Result.err(onFail(a));
1385
+ let to;
1386
+ ((to2) => {
1387
+ to2.Maybe = (r) => (a) => r(a) ? Maybe.make.some(a) : Maybe.make.none();
1388
+ to2.Result = (r, onFail) => (a) => r(a) ? Result.make.ok(a) : Result.make.err(onFail(a));
1389
+ })(to = Refinement2.to || (Refinement2.to = {}));
1350
1390
  })(Refinement || (Refinement = {}));
1351
1391
 
1352
1392
  // src/Core/RemoteData.ts
@@ -1354,31 +1394,37 @@ var _notAsked = { kind: "NotAsked" };
1354
1394
  var _loading = { kind: "Loading" };
1355
1395
  var RemoteData;
1356
1396
  ((RemoteData2) => {
1357
- RemoteData2.notAsked = () => _notAsked;
1358
- RemoteData2.loading = () => _loading;
1359
- RemoteData2.failure = (error) => ({ kind: "Failure", error });
1360
- RemoteData2.success = (value) => ({ kind: "Success", value });
1361
- RemoteData2.isNotAsked = (data) => data.kind === "NotAsked";
1362
- RemoteData2.isLoading = (data) => data.kind === "Loading";
1363
- RemoteData2.isFailure = (data) => data.kind === "Failure";
1364
- RemoteData2.isSuccess = (data) => data.kind === "Success";
1365
- RemoteData2.map = (f) => (data) => (0, RemoteData2.isSuccess)(data) ? (0, RemoteData2.success)(f(data.value)) : data;
1366
- RemoteData2.mapError = (f) => (data) => (0, RemoteData2.isFailure)(data) ? (0, RemoteData2.failure)(f(data.error)) : data;
1367
- RemoteData2.chain = (f) => (data) => (0, RemoteData2.isSuccess)(data) ? f(data.value) : data;
1397
+ let make;
1398
+ ((make2) => {
1399
+ make2.notAsked = () => _notAsked;
1400
+ make2.loading = () => _loading;
1401
+ make2.failure = (error) => ({ kind: "Failure", error });
1402
+ make2.success = (value) => ({ kind: "Success", value });
1403
+ })(make = RemoteData2.make || (RemoteData2.make = {}));
1404
+ let is;
1405
+ ((is2) => {
1406
+ is2.notAsked = (data) => data.kind === "NotAsked";
1407
+ is2.loading = (data) => data.kind === "Loading";
1408
+ is2.failure = (data) => data.kind === "Failure";
1409
+ is2.success = (data) => data.kind === "Success";
1410
+ })(is = RemoteData2.is || (RemoteData2.is = {}));
1411
+ RemoteData2.map = (f) => (data) => is.success(data) ? make.success(f(data.value)) : data;
1412
+ RemoteData2.mapError = (f) => (data) => is.failure(data) ? make.failure(f(data.error)) : data;
1413
+ RemoteData2.chain = (f) => (data) => is.success(data) ? f(data.value) : data;
1368
1414
  RemoteData2.ap = (arg) => (data) => {
1369
- if ((0, RemoteData2.isSuccess)(data) && (0, RemoteData2.isSuccess)(arg)) {
1370
- return (0, RemoteData2.success)(data.value(arg.value));
1415
+ if (is.success(data) && is.success(arg)) {
1416
+ return make.success(data.value(arg.value));
1371
1417
  }
1372
- if ((0, RemoteData2.isFailure)(data)) {
1418
+ if (is.failure(data)) {
1373
1419
  return data;
1374
1420
  }
1375
- if ((0, RemoteData2.isFailure)(arg)) {
1421
+ if (is.failure(arg)) {
1376
1422
  return arg;
1377
1423
  }
1378
- if ((0, RemoteData2.isLoading)(data) || (0, RemoteData2.isLoading)(arg)) {
1379
- return (0, RemoteData2.loading)();
1424
+ if (is.loading(data) || is.loading(arg)) {
1425
+ return make.loading();
1380
1426
  }
1381
- return (0, RemoteData2.notAsked)();
1427
+ return make.notAsked();
1382
1428
  };
1383
1429
  RemoteData2.fold = (onFailure, onNotAsked, onLoading, onSuccess) => (data) => {
1384
1430
  switch (data.kind) {
@@ -1412,69 +1458,78 @@ var RemoteData;
1412
1458
  }
1413
1459
  }
1414
1460
  };
1415
- RemoteData2.getOrElse = (defaultValue) => (data) => (0, RemoteData2.isSuccess)(data) ? data.value : defaultValue();
1461
+ RemoteData2.getOrElse = (defaultValue) => (data) => is.success(data) ? data.value : defaultValue();
1416
1462
  RemoteData2.tap = (f) => (data) => {
1417
- if ((0, RemoteData2.isSuccess)(data)) {
1463
+ if (is.success(data)) {
1418
1464
  f(data.value);
1419
1465
  }
1420
1466
  return data;
1421
1467
  };
1422
1468
  RemoteData2.tapError = (f) => (data) => {
1423
- if ((0, RemoteData2.isFailure)(data)) {
1469
+ if (is.failure(data)) {
1424
1470
  f(data.error);
1425
1471
  }
1426
1472
  return data;
1427
1473
  };
1428
- RemoteData2.recover = (fallback) => (data) => (0, RemoteData2.isFailure)(data) ? fallback(data.error) : data;
1429
- RemoteData2.toMaybe = (data) => (0, RemoteData2.isSuccess)(data) ? Maybe.some(data.value) : Maybe.none();
1430
- RemoteData2.toResult = (onNotReady) => (data) => (0, RemoteData2.isSuccess)(data) ? Result.ok(data.value) : Result.err((0, RemoteData2.isFailure)(data) ? data.error : onNotReady());
1431
- RemoteData2.fromResult = (data) => Result.isOk(data) ? (0, RemoteData2.success)(data.value) : (0, RemoteData2.failure)(data.error);
1432
- RemoteData2.fromMaybe = (onNone) => (data) => Maybe.isSome(data) ? (0, RemoteData2.success)(data.value) : (0, RemoteData2.failure)(onNone());
1433
- RemoteData2.filter = (pred, onFalse) => (data) => (0, RemoteData2.isSuccess)(data) ? pred(data.value) ? data : (0, RemoteData2.failure)(onFalse(data.value)) : data;
1474
+ RemoteData2.recover = (fallback) => (data) => is.failure(data) ? fallback(data.error) : data;
1475
+ let to;
1476
+ ((to2) => {
1477
+ to2.Maybe = (data) => is.success(data) ? Maybe.make.some(data.value) : Maybe.make.none();
1478
+ to2.Result = (onNotReady) => (data) => is.success(data) ? Result.make.ok(data.value) : Result.make.err(is.failure(data) ? data.error : onNotReady());
1479
+ })(to = RemoteData2.to || (RemoteData2.to = {}));
1480
+ let from;
1481
+ ((from2) => {
1482
+ from2.Result = (data) => Result.is.ok(data) ? make.success(data.value) : make.failure(data.error);
1483
+ from2.Maybe = (onNone) => (data) => Maybe.is.some(data) ? make.success(data.value) : make.failure(onNone());
1484
+ })(from = RemoteData2.from || (RemoteData2.from = {}));
1485
+ RemoteData2.filter = (pred, onFalse) => (data) => is.success(data) ? pred(data.value) ? data : make.failure(onFalse(data.value)) : data;
1434
1486
  })(RemoteData || (RemoteData = {}));
1435
1487
 
1436
1488
  // src/Core/Resource.ts
1437
1489
  var Resource;
1438
1490
  ((Resource2) => {
1439
- Resource2.make = (acquire, release) => ({
1440
- acquire,
1441
- release
1442
- });
1443
- Resource2.fromTask = (acquire, release) => ({
1444
- acquire: Task.map((a) => Result.ok(a))(acquire),
1445
- release
1446
- });
1447
- Resource2.use = (f) => (resource) => Task.from(
1448
- (signal) => Deferred.toPromise(resource.acquire(signal)).then(async (acquired) => {
1449
- if (Result.isErr(acquired)) {
1491
+ let from;
1492
+ ((from2) => {
1493
+ from2.handlers = (acquire, release) => ({
1494
+ acquire,
1495
+ release
1496
+ });
1497
+ from2.Task = (acquire, release) => ({
1498
+ acquire: Task.map((a) => Result.make.ok(a))(acquire),
1499
+ release
1500
+ });
1501
+ })(from = Resource2.from || (Resource2.from = {}));
1502
+ Resource2.use = (f) => (resource) => Task.from.Promise(
1503
+ (signal) => Deferred.to.Promise(resource.acquire(signal)).then(async (acquired) => {
1504
+ if (Result.is.err(acquired)) {
1450
1505
  return acquired;
1451
1506
  }
1452
1507
  const a = acquired.value;
1453
1508
  try {
1454
- const usageResult = await Deferred.toPromise(f(a)(signal));
1509
+ const usageResult = await Deferred.to.Promise(f(a)(signal));
1455
1510
  return usageResult;
1456
1511
  } finally {
1457
- await Deferred.toPromise(resource.release(a)(signal));
1512
+ await Deferred.to.Promise(resource.release(a)(signal));
1458
1513
  }
1459
1514
  })
1460
1515
  );
1461
1516
  Resource2.combine = (resourceA, resourceB) => ({
1462
- acquire: Task.from(
1463
- (signal) => Deferred.toPromise(resourceA.acquire(signal)).then(async (acquiredA) => {
1464
- if (Result.isErr(acquiredA)) {
1517
+ acquire: Task.from.Promise(
1518
+ (signal) => Deferred.to.Promise(resourceA.acquire(signal)).then(async (acquiredA) => {
1519
+ if (Result.is.err(acquiredA)) {
1465
1520
  return acquiredA;
1466
1521
  }
1467
1522
  const a = acquiredA.value;
1468
- const acquiredB = await Deferred.toPromise(resourceB.acquire(signal));
1469
- if (Result.isErr(acquiredB)) {
1470
- await Deferred.toPromise(resourceA.release(a)(signal));
1523
+ const acquiredB = await Deferred.to.Promise(resourceB.acquire(signal));
1524
+ if (Result.is.err(acquiredB)) {
1525
+ await Deferred.to.Promise(resourceA.release(a)(signal));
1471
1526
  return acquiredB;
1472
1527
  }
1473
- return Result.ok([a, acquiredB.value]);
1528
+ return Result.make.ok([a, acquiredB.value]);
1474
1529
  })
1475
1530
  ),
1476
- release: ([a, b]) => Task.from(
1477
- (signal) => Deferred.toPromise(resourceB.release(b)(signal)).then(() => Deferred.toPromise(resourceA.release(a)(signal)))
1531
+ release: ([a, b]) => Task.from.Promise(
1532
+ (signal) => Deferred.to.Promise(resourceB.release(b)(signal)).then(() => Deferred.to.Promise(resourceA.release(a)(signal)))
1478
1533
  )
1479
1534
  });
1480
1535
  })(Resource || (Resource = {}));
@@ -1482,49 +1537,61 @@ var Resource;
1482
1537
  // src/Core/Result.ts
1483
1538
  var Result;
1484
1539
  ((Result4) => {
1485
- Result4.ok = (value) => ({ kind: "Ok", value });
1486
- Result4.err = (e) => ({ kind: "Err", error: e });
1487
- Result4.isOk = (data) => data.kind === "Ok";
1488
- Result4.isErr = (data) => data.kind === "Err";
1540
+ let make;
1541
+ ((make2) => {
1542
+ make2.ok = (value) => ({ kind: "Ok", value });
1543
+ make2.err = (e) => ({ kind: "Err", error: e });
1544
+ })(make = Result4.make || (Result4.make = {}));
1545
+ let is;
1546
+ ((is2) => {
1547
+ is2.ok = (data) => data.kind === "Ok";
1548
+ is2.err = (data) => data.kind === "Err";
1549
+ })(is = Result4.is || (Result4.is = {}));
1489
1550
  Result4.tryCatch = (f, onError) => {
1490
1551
  try {
1491
- return (0, Result4.ok)(f());
1552
+ return make.ok(f());
1492
1553
  } catch (error) {
1493
- return (0, Result4.err)(onError(error));
1554
+ return make.err(onError(error));
1494
1555
  }
1495
1556
  };
1496
- Result4.map = (f) => (data) => (0, Result4.isOk)(data) ? (0, Result4.ok)(f(data.value)) : data;
1497
- Result4.mapError = (f) => (data) => (0, Result4.isErr)(data) ? (0, Result4.err)(f(data.error)) : data;
1498
- Result4.chain = (f) => (data) => (0, Result4.isOk)(data) ? f(data.value) : data;
1499
- Result4.fold = (onErr, onOk) => (data) => (0, Result4.isOk)(data) ? onOk(data.value) : onErr(data.error);
1500
- Result4.match = (cases) => (data) => (0, Result4.isOk)(data) ? cases.ok(data.value) : cases.err(data.error);
1501
- Result4.getOrElse = (defaultValue) => (data) => (0, Result4.isOk)(data) ? data.value : defaultValue();
1557
+ Result4.map = (f) => (data) => is.ok(data) ? make.ok(f(data.value)) : data;
1558
+ Result4.mapError = (f) => (data) => is.err(data) ? make.err(f(data.error)) : data;
1559
+ Result4.chain = (f) => (data) => is.ok(data) ? f(data.value) : data;
1560
+ Result4.fold = (onErr, onOk) => (data) => is.ok(data) ? onOk(data.value) : onErr(data.error);
1561
+ Result4.match = (cases) => (data) => is.ok(data) ? cases.ok(data.value) : cases.err(data.error);
1562
+ Result4.getOrElse = (defaultValue) => (data) => is.ok(data) ? data.value : defaultValue();
1502
1563
  Result4.tap = (f) => (data) => {
1503
- if ((0, Result4.isOk)(data)) {
1564
+ if (is.ok(data)) {
1504
1565
  f(data.value);
1505
1566
  }
1506
1567
  return data;
1507
1568
  };
1508
1569
  Result4.tapError = (f) => (data) => {
1509
- if ((0, Result4.isErr)(data)) {
1570
+ if (is.err(data)) {
1510
1571
  f(data.error);
1511
1572
  }
1512
1573
  return data;
1513
1574
  };
1514
- Result4.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result4.ok)(a) : (0, Result4.err)(onFalse(a));
1515
- Result4.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Result4.err)(onNull()) : (0, Result4.ok)(value);
1516
- Result4.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Result4.err)(onNone()) : (0, Result4.ok)(maybe.value);
1517
- Result4.fromThrowable = (f, onError) => (...args) => {
1518
- try {
1519
- return (0, Result4.ok)(f(...args));
1520
- } catch (error) {
1521
- return (0, Result4.err)(onError(error));
1522
- }
1523
- };
1524
- Result4.recover = (fallback) => (data) => (0, Result4.isOk)(data) ? data : fallback(data.error);
1525
- Result4.recoverUnless = (isBlocked, fallback) => (data) => (0, Result4.isErr)(data) && !isBlocked(data.error) ? fallback() : data;
1526
- Result4.toMaybe = (data) => (0, Result4.isOk)(data) ? Maybe.some(data.value) : Maybe.none();
1527
- 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;
1575
+ let from;
1576
+ ((from2) => {
1577
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.ok(a) : make.err(onFalse(a));
1578
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.err(onNull()) : make.ok(value);
1579
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.err(onNone()) : make.ok(maybe.value);
1580
+ from2.throwable = (f, onError) => (...args) => {
1581
+ try {
1582
+ return make.ok(f(...args));
1583
+ } catch (error) {
1584
+ return make.err(onError(error));
1585
+ }
1586
+ };
1587
+ })(from = Result4.from || (Result4.from = {}));
1588
+ Result4.recover = (fallback) => (data) => is.ok(data) ? data : fallback(data.error);
1589
+ Result4.recoverUnless = (isBlocked, fallback) => (data) => is.err(data) && !isBlocked(data.error) ? fallback() : data;
1590
+ let to;
1591
+ ((to2) => {
1592
+ to2.Maybe = (data) => is.ok(data) ? Maybe.make.some(data.value) : Maybe.make.none();
1593
+ })(to = Result4.to || (Result4.to = {}));
1594
+ Result4.ap = (arg) => (data) => is.ok(data) && is.ok(arg) ? make.ok(data.value(arg.value)) : is.err(data) ? data : arg;
1528
1595
  Result4.bindTo = (key) => (data) => (0, Result4.map)((a) => ({ [key]: a }))(data);
1529
1596
  Result4.bind = (key, f) => (data) => (0, Result4.chain)(
1530
1597
  (a) => (0, Result4.map)((b) => ({ ...a, [key]: b }))(f(a))
@@ -1534,13 +1601,13 @@ var Result;
1534
1601
  for (const key in fields) {
1535
1602
  if (Object.hasOwn(fields, key)) {
1536
1603
  const res = fields[key];
1537
- if ((0, Result4.isErr)(res)) {
1604
+ if (is.err(res)) {
1538
1605
  return res;
1539
1606
  }
1540
1607
  result[key] = res.value;
1541
1608
  }
1542
1609
  }
1543
- return (0, Result4.ok)(result);
1610
+ return make.ok(result);
1544
1611
  };
1545
1612
  })(Result || (Result = {}));
1546
1613
 
@@ -1582,17 +1649,24 @@ var State;
1582
1649
  // src/Core/TaskMaybe.ts
1583
1650
  var TaskMaybe;
1584
1651
  ((TaskMaybe2) => {
1585
- TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
1586
- TaskMaybe2.none = () => Task.resolve(Maybe.none());
1587
- TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
1588
- TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
1589
- TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
1590
- TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
1591
- TaskMaybe2.tryCatch = (f) => Task.from((signal) => Promise.resolve(f(signal)).then(Maybe.some).catch(() => Maybe.none()));
1652
+ TaskMaybe2.some = (value) => Task.resolve(Maybe.make.some(value));
1653
+ TaskMaybe2.none = () => Task.resolve(Maybe.make.none());
1654
+ let from;
1655
+ ((from2) => {
1656
+ from2.Maybe = (option) => Task.resolve(option);
1657
+ from2.nullable = (value) => Task.resolve(Maybe.from.nullable(value));
1658
+ from2.Result = (result) => Task.resolve(Result.to.Maybe(result));
1659
+ from2.Task = (task) => Task.map(Maybe.make.some)(task);
1660
+ })(from = TaskMaybe2.from || (TaskMaybe2.from = {}));
1661
+ TaskMaybe2.tryCatch = (f) => Task.from.Promise(
1662
+ (signal) => Promise.resolve(f(signal)).then(Maybe.make.some).catch(() => Maybe.make.none())
1663
+ );
1592
1664
  TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
1593
- TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
1594
- TaskMaybe2.ap = (arg) => (data) => Task.from(
1595
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1665
+ TaskMaybe2.chain = (f) => (data) => Task.chain(
1666
+ (option) => Maybe.is.some(option) ? f(option.value) : Task.resolve(Maybe.make.none())
1667
+ )(data);
1668
+ TaskMaybe2.ap = (arg) => (data) => Task.from.Promise(
1669
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
1596
1670
  ([of_, oa]) => Maybe.ap(oa)(of_)
1597
1671
  )
1598
1672
  );
@@ -1601,25 +1675,30 @@ var TaskMaybe;
1601
1675
  TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
1602
1676
  TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
1603
1677
  TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
1604
- TaskMaybe2.toResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
1678
+ let to;
1679
+ ((to2) => {
1680
+ to2.Result = (onNone) => (data) => Task.map(Maybe.to.Result(onNone))(data);
1681
+ })(to = TaskMaybe2.to || (TaskMaybe2.to = {}));
1605
1682
  TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
1606
1683
  TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
1607
1684
  (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
1608
1685
  )(data);
1609
- TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.isNone(maybe) ? fallback() : Task.resolve(maybe))(data);
1610
- TaskMaybe2.struct = (fields) => Task.from((signal) => {
1686
+ TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.is.none(maybe) ? fallback() : Task.resolve(maybe))(
1687
+ data
1688
+ );
1689
+ TaskMaybe2.struct = (fields) => Task.from.Promise((signal) => {
1611
1690
  const keys = Object.keys(fields);
1612
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1691
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
1613
1692
  return Promise.all(promises).then((results) => {
1614
1693
  const record = {};
1615
1694
  for (let i = 0; i < keys.length; i++) {
1616
1695
  const res = results[i];
1617
- if (Maybe.isNone(res)) {
1696
+ if (Maybe.is.none(res)) {
1618
1697
  return res;
1619
1698
  }
1620
1699
  record[keys[i]] = res.value;
1621
1700
  }
1622
- return Maybe.some(record);
1701
+ return Maybe.make.some(record);
1623
1702
  });
1624
1703
  });
1625
1704
  })(TaskMaybe || (TaskMaybe = {}));
@@ -1627,28 +1706,35 @@ var TaskMaybe;
1627
1706
  // src/Core/TaskResult.ts
1628
1707
  var TaskResult;
1629
1708
  ((TaskResult2) => {
1630
- TaskResult2.ok = (value) => Task.resolve(Result.ok(value));
1631
- TaskResult2.err = (error) => Task.resolve(Result.err(error));
1632
- TaskResult2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
1633
- TaskResult2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
1634
- TaskResult2.fromResult = (result) => Task.resolve(result);
1635
- TaskResult2.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
1636
- TaskResult2.tryCatch = (f, onError) => Task.from((signal) => Promise.resolve(f(signal)).then(Result.ok).catch((error) => Result.err(onError(error))));
1709
+ TaskResult2.ok = (value) => Task.resolve(Result.make.ok(value));
1710
+ TaskResult2.err = (error) => Task.resolve(Result.make.err(error));
1711
+ let from;
1712
+ ((from2) => {
1713
+ from2.nullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.make.err(onNull()) : Result.make.ok(value));
1714
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(Maybe.is.none(maybe) ? Result.make.err(onNone()) : Result.make.ok(maybe.value));
1715
+ from2.Result = (result) => Task.resolve(result);
1716
+ from2.throwable = (f, onError) => (...args) => Task.from.Promise(
1717
+ () => f(...args).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
1718
+ );
1719
+ })(from = TaskResult2.from || (TaskResult2.from = {}));
1720
+ TaskResult2.tryCatch = (f, onError) => Task.from.Promise(
1721
+ (signal) => Promise.resolve(f(signal)).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
1722
+ );
1637
1723
  TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
1638
1724
  TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
1639
- TaskResult2.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
1640
- data
1641
- );
1725
+ TaskResult2.chain = (f) => (data) => Task.chain(
1726
+ (result) => Result.is.ok(result) ? f(result.value) : Task.resolve(Result.make.err(result.error))
1727
+ )(data);
1642
1728
  TaskResult2.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
1643
1729
  TaskResult2.match = (cases) => (data) => Task.map(Result.match(cases))(data);
1644
1730
  TaskResult2.recover = (fallback) => (data) => Task.chain(
1645
- (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
1731
+ (result) => Result.is.err(result) ? fallback(result.error) : Task.resolve(result)
1646
1732
  )(data);
1647
1733
  TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
1648
1734
  TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
1649
1735
  TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
1650
- TaskResult2.ap = (arg) => (data) => Task.from(
1651
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1736
+ TaskResult2.ap = (arg) => (data) => Task.from.Promise(
1737
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
1652
1738
  ([of_, oa]) => Result.ap(oa)(of_)
1653
1739
  )
1654
1740
  );
@@ -1657,19 +1743,19 @@ var TaskResult;
1657
1743
  TaskResult2.bind = (key, f) => (data) => (0, TaskResult2.chain)(
1658
1744
  (a) => (0, TaskResult2.map)((b) => ({ ...a, [key]: b }))(f(a))
1659
1745
  )(data);
1660
- TaskResult2.struct = (fields) => Task.from((signal) => {
1746
+ TaskResult2.struct = (fields) => Task.from.Promise((signal) => {
1661
1747
  const keys = Object.keys(fields);
1662
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1748
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
1663
1749
  return Promise.all(promises).then((results) => {
1664
1750
  const record = {};
1665
1751
  for (let i = 0; i < keys.length; i++) {
1666
1752
  const res = results[i];
1667
- if (Result.isErr(res)) {
1753
+ if (Result.is.err(res)) {
1668
1754
  return res;
1669
1755
  }
1670
1756
  record[keys[i]] = res.value;
1671
1757
  }
1672
- return Result.ok(record);
1758
+ return Result.make.ok(record);
1673
1759
  });
1674
1760
  });
1675
1761
  })(TaskResult || (TaskResult = {}));
@@ -1680,19 +1766,28 @@ var isNonEmptyArr = (list) => list.length > 0;
1680
1766
  // src/Core/TaskValidation.ts
1681
1767
  var TaskValidation;
1682
1768
  ((TaskValidation2) => {
1683
- TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
1684
- TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
1685
- TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
1686
- TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
1687
- TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
1688
- TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
1689
- TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
1690
- TaskValidation2.tryCatch = (f, onError) => Task.from(
1691
- (signal) => Promise.resolve(f(signal)).then(Validation.passed).catch((error) => Validation.failed(onError(error)))
1769
+ TaskValidation2.passed = (value) => Task.resolve(Validation.make.passed(value));
1770
+ TaskValidation2.failed = (error) => Task.resolve(Validation.make.failed(error));
1771
+ TaskValidation2.failedAll = (errors) => Task.resolve(Validation.make.failedAll(errors));
1772
+ let from;
1773
+ ((from2) => {
1774
+ from2.Validation = (validation) => Task.resolve(validation);
1775
+ from2.nullable = (onNull) => (value) => Task.resolve(
1776
+ value === null || value === void 0 ? Validation.make.failed(onNull()) : Validation.make.passed(value)
1777
+ );
1778
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(
1779
+ Maybe.is.none(maybe) ? Validation.make.failed(onNone()) : Validation.make.passed(maybe.value)
1780
+ );
1781
+ from2.Result = (result) => Task.resolve(Validation.from.Result(result));
1782
+ })(from = TaskValidation2.from || (TaskValidation2.from = {}));
1783
+ TaskValidation2.tryCatch = (f, onError) => Task.from.Promise(
1784
+ (signal) => Promise.resolve(f(signal)).then(Validation.make.passed).catch(
1785
+ (error) => Validation.make.failed(onError(error))
1786
+ )
1692
1787
  );
1693
1788
  TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
1694
- TaskValidation2.ap = (arg) => (data) => Task.from(
1695
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1789
+ TaskValidation2.ap = (arg) => (data) => Task.from.Promise(
1790
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
1696
1791
  ([vf, va]) => Validation.ap(va)(vf)
1697
1792
  )
1698
1793
  );
@@ -1701,61 +1796,64 @@ var TaskValidation;
1701
1796
  TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
1702
1797
  TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
1703
1798
  TaskValidation2.recover = (fallback) => (data) => Task.chain(
1704
- (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1799
+ (validation) => Validation.is.passed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1705
1800
  )(data);
1706
- TaskValidation2.product = (first, second) => Task.from(
1707
- (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
1801
+ TaskValidation2.product = (first, second) => Task.from.Promise(
1802
+ (signal) => Promise.all([Deferred.to.Promise(first(signal)), Deferred.to.Promise(second(signal))]).then(
1708
1803
  ([va, vb]) => Validation.product(va, vb)
1709
1804
  )
1710
1805
  );
1711
- TaskValidation2.productAll = (data) => Task.from(
1712
- (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => {
1806
+ TaskValidation2.productAll = (data) => Task.from.Promise(
1807
+ (signal) => Promise.all(data.map((t) => Deferred.to.Promise(t(signal)))).then((results) => {
1713
1808
  const [first, ...rest] = results;
1714
1809
  return Validation.productAll([first, ...rest]);
1715
1810
  })
1716
1811
  );
1717
1812
  TaskValidation2.mapError = (f) => (data) => Task.map(Validation.mapError(f))(data);
1718
1813
  TaskValidation2.tapError = (f) => (data) => Task.map(Validation.tapError(f))(data);
1719
- TaskValidation2.struct = (fields) => Task.from((signal) => {
1814
+ TaskValidation2.struct = (fields) => Task.from.Promise((signal) => {
1720
1815
  const keys = Object.keys(fields);
1721
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1816
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
1722
1817
  return Promise.all(promises).then((results) => {
1723
1818
  const record = {};
1724
1819
  const errors = [];
1725
1820
  for (let i = 0; i < keys.length; i++) {
1726
1821
  const res = results[i];
1727
- if (Validation.isPassed(res)) {
1822
+ if (Validation.is.passed(res)) {
1728
1823
  record[keys[i]] = res.value;
1729
1824
  } else {
1730
1825
  errors.push(...res.errors);
1731
1826
  }
1732
1827
  }
1733
- return isNonEmptyArr(errors) ? Validation.failedAll(errors) : Validation.passed(record);
1828
+ return isNonEmptyArr(errors) ? Validation.make.failedAll(errors) : Validation.make.passed(record);
1734
1829
  });
1735
1830
  });
1736
1831
  })(TaskValidation || (TaskValidation = {}));
1737
1832
 
1738
1833
  // src/Core/Task.ts
1739
- var toPromise = (task, signal) => Deferred.toPromise(task(signal));
1740
- var getMs2 = (duration) => Duration.toMilliseconds(duration);
1834
+ var toPromise = (task, signal) => Deferred.to.Promise(task(signal));
1835
+ var getMs2 = (duration) => Duration.to.milliseconds(duration);
1741
1836
  var Task;
1742
1837
  ((Task2) => {
1743
- Task2.resolve = (value) => () => Deferred.fromPromise(Promise.resolve(value));
1744
- Task2.from = (f) => (signal) => Deferred.fromPromise(f(signal));
1745
- Task2.fromSync = (f) => () => Deferred.fromPromise(Promise.resolve(f()));
1746
- Task2.map = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then(f));
1747
- Task2.chain = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
1748
- Task2.ap = (arg) => (data) => (0, Task2.from)((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
1749
- Task2.tap = (f) => (data) => (0, Task2.from)(
1838
+ Task2.resolve = (value) => () => Deferred.from.Promise(globalThis.Promise.resolve(value));
1839
+ let from;
1840
+ ((from2) => {
1841
+ from2.Promise = (f) => (signal) => Deferred.from.Promise(f(signal));
1842
+ from2.sync = (f) => () => Deferred.from.Promise(globalThis.Promise.resolve(f()));
1843
+ })(from = Task2.from || (Task2.from = {}));
1844
+ Task2.map = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then(f));
1845
+ Task2.chain = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
1846
+ Task2.ap = (arg) => (data) => from.Promise((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
1847
+ Task2.tap = (f) => (data) => from.Promise(
1750
1848
  (signal) => toPromise(data, signal).then((a) => {
1751
1849
  f(a);
1752
1850
  return a;
1753
1851
  })
1754
1852
  );
1755
- Task2.all = (tasks) => (0, Task2.from)(
1853
+ Task2.all = (tasks) => from.Promise(
1756
1854
  (signal) => Promise.all(tasks.map((t) => toPromise(t, signal)))
1757
1855
  );
1758
- Task2.delay = (duration) => (data) => (0, Task2.from)(
1856
+ Task2.delay = (duration) => (data) => from.Promise(
1759
1857
  (signal) => new Promise((res) => {
1760
1858
  let timerId;
1761
1859
  const onAbort = () => {
@@ -1774,7 +1872,7 @@ var Task;
1774
1872
  }, getMs2(duration));
1775
1873
  })
1776
1874
  );
1777
- Task2.repeat = (options) => (task) => (0, Task2.from)((signal) => {
1875
+ Task2.repeat = (options) => (task) => from.Promise((signal) => {
1778
1876
  const { times, delay: delayDuration } = options;
1779
1877
  if (times <= 0) {
1780
1878
  return Promise.resolve([]);
@@ -1808,7 +1906,7 @@ var Task;
1808
1906
  };
1809
1907
  return run2(times);
1810
1908
  });
1811
- Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
1909
+ Task2.repeatUntil = (options) => (task) => from.Promise((signal) => {
1812
1910
  const { when: predicate, delay: delayDuration, maxAttempts } = options;
1813
1911
  const wait = () => new Promise((r) => {
1814
1912
  let timerId;
@@ -1845,10 +1943,10 @@ var Task;
1845
1943
  });
1846
1944
  Task2.race = (tasks) => {
1847
1945
  if (tasks.length === 0) {
1848
- return () => Deferred.fromPromise(new Promise(() => {
1946
+ return () => Deferred.from.Promise(new Promise(() => {
1849
1947
  }));
1850
1948
  }
1851
- return (0, Task2.from)((outerSignal) => {
1949
+ return from.Promise((outerSignal) => {
1852
1950
  const controllers = tasks.map(() => new AbortController());
1853
1951
  const onOuterAbort = () => {
1854
1952
  for (const ctrl of controllers) {
@@ -1877,8 +1975,8 @@ var Task;
1877
1975
  return Promise.race(promises);
1878
1976
  });
1879
1977
  };
1880
- Task2.sequence = (tasks) => (0, Task2.from)((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
1881
- Task2.sequential = (tasks) => (0, Task2.from)(async (signal) => {
1978
+ Task2.sequence = (tasks) => from.Promise((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
1979
+ Task2.sequential = (tasks) => from.Promise(async (signal) => {
1882
1980
  const results = [];
1883
1981
  for (const task of tasks) {
1884
1982
  if (signal?.aborted) {
@@ -1888,7 +1986,7 @@ var Task;
1888
1986
  }
1889
1987
  return results;
1890
1988
  });
1891
- Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
1989
+ Task2.timeout = (duration, onTimeout) => (task) => from.Promise((outerSignal) => {
1892
1990
  const controller = new AbortController();
1893
1991
  let timerId;
1894
1992
  let cleanUp = () => {
@@ -1911,13 +2009,13 @@ var Task;
1911
2009
  return Promise.race([
1912
2010
  toPromise(task, controller.signal).then((a) => {
1913
2011
  cleanUp();
1914
- return Result.ok(a);
2012
+ return Result.make.ok(a);
1915
2013
  }),
1916
2014
  new Promise((res) => {
1917
2015
  timerId = setTimeout(() => {
1918
2016
  controller.abort();
1919
2017
  cleanUp();
1920
- res(Result.err(onTimeout()));
2018
+ res(Result.make.err(onTimeout()));
1921
2019
  }, getMs2(duration));
1922
2020
  })
1923
2021
  ]);
@@ -1936,7 +2034,7 @@ var Task;
1936
2034
  outerSignal.addEventListener("abort", () => controller.abort(outerSignal.reason), { once: true });
1937
2035
  }
1938
2036
  }
1939
- return Deferred.fromPromise(factory(controller.signal));
2037
+ return Deferred.from.Promise(factory(controller.signal));
1940
2038
  };
1941
2039
  return { task, abort };
1942
2040
  };
@@ -1953,67 +2051,73 @@ var Task;
1953
2051
  // src/Core/These.ts
1954
2052
  var These;
1955
2053
  ((These2) => {
1956
- These2.first = (value) => ({ kind: "First", first: value });
1957
- These2.second = (value) => ({ kind: "Second", second: value });
1958
- These2.both = (f, s) => ({ kind: "Both", first: f, second: s });
1959
- These2.isFirst = (data) => data.kind === "First";
1960
- These2.isSecond = (data) => data.kind === "Second";
1961
- These2.isBoth = (data) => data.kind === "Both";
2054
+ let make;
2055
+ ((make2) => {
2056
+ make2.first = (value) => ({ kind: "First", first: value });
2057
+ make2.second = (value) => ({ kind: "Second", second: value });
2058
+ make2.both = (f, s) => ({ kind: "Both", first: f, second: s });
2059
+ })(make = These2.make || (These2.make = {}));
2060
+ let is;
2061
+ ((is2) => {
2062
+ is2.first = (data) => data.kind === "First";
2063
+ is2.second = (data) => data.kind === "Second";
2064
+ is2.both = (data) => data.kind === "Both";
2065
+ })(is = These2.is || (These2.is = {}));
1962
2066
  These2.hasFirst = (data) => data.kind === "First" || data.kind === "Both";
1963
2067
  These2.hasSecond = (data) => data.kind === "Second" || data.kind === "Both";
1964
2068
  These2.mapFirst = (f) => (data) => {
1965
- if ((0, These2.isSecond)(data)) {
2069
+ if (is.second(data)) {
1966
2070
  return data;
1967
2071
  }
1968
- if ((0, These2.isFirst)(data)) {
1969
- return (0, These2.first)(f(data.first));
2072
+ if (is.first(data)) {
2073
+ return make.first(f(data.first));
1970
2074
  }
1971
- return (0, These2.both)(f(data.first), data.second);
2075
+ return make.both(f(data.first), data.second);
1972
2076
  };
1973
2077
  These2.mapSecond = (f) => (data) => {
1974
- if ((0, These2.isFirst)(data)) {
2078
+ if (is.first(data)) {
1975
2079
  return data;
1976
2080
  }
1977
- if ((0, These2.isSecond)(data)) {
1978
- return (0, These2.second)(f(data.second));
2081
+ if (is.second(data)) {
2082
+ return make.second(f(data.second));
1979
2083
  }
1980
- return (0, These2.both)(data.first, f(data.second));
2084
+ return make.both(data.first, f(data.second));
1981
2085
  };
1982
2086
  These2.mapBoth = (onFirst, onSecond) => (data) => {
1983
- if ((0, These2.isSecond)(data)) {
1984
- return (0, These2.second)(onSecond(data.second));
2087
+ if (is.second(data)) {
2088
+ return make.second(onSecond(data.second));
1985
2089
  }
1986
- if ((0, These2.isFirst)(data)) {
1987
- return (0, These2.first)(onFirst(data.first));
2090
+ if (is.first(data)) {
2091
+ return make.first(onFirst(data.first));
1988
2092
  }
1989
- return (0, These2.both)(onFirst(data.first), onSecond(data.second));
2093
+ return make.both(onFirst(data.first), onSecond(data.second));
1990
2094
  };
1991
2095
  These2.chainFirst = (f) => (data) => {
1992
- if ((0, These2.isSecond)(data)) {
2096
+ if (is.second(data)) {
1993
2097
  return data;
1994
2098
  }
1995
2099
  return f(data.first);
1996
2100
  };
1997
2101
  These2.chainSecond = (f) => (data) => {
1998
- if ((0, These2.isFirst)(data)) {
2102
+ if (is.first(data)) {
1999
2103
  return data;
2000
2104
  }
2001
2105
  return f(data.second);
2002
2106
  };
2003
2107
  These2.fold = (onFirst, onSecond, onBoth) => (data) => {
2004
- if ((0, These2.isSecond)(data)) {
2108
+ if (is.second(data)) {
2005
2109
  return onSecond(data.second);
2006
2110
  }
2007
- if ((0, These2.isFirst)(data)) {
2111
+ if (is.first(data)) {
2008
2112
  return onFirst(data.first);
2009
2113
  }
2010
2114
  return onBoth(data.first, data.second);
2011
2115
  };
2012
2116
  These2.match = (cases) => (data) => {
2013
- if ((0, These2.isSecond)(data)) {
2117
+ if (is.second(data)) {
2014
2118
  return cases.second(data.second);
2015
2119
  }
2016
- if ((0, These2.isFirst)(data)) {
2120
+ if (is.first(data)) {
2017
2121
  return cases.first(data.first);
2018
2122
  }
2019
2123
  return cases.both(data.first, data.second);
@@ -2027,20 +2131,24 @@ var These;
2027
2131
  return data;
2028
2132
  };
2029
2133
  These2.swap = (data) => {
2030
- if ((0, These2.isSecond)(data)) {
2031
- return (0, These2.first)(data.second);
2134
+ if (is.second(data)) {
2135
+ return make.first(data.second);
2032
2136
  }
2033
- if ((0, These2.isFirst)(data)) {
2034
- return (0, These2.second)(data.first);
2137
+ if (is.first(data)) {
2138
+ return make.second(data.first);
2035
2139
  }
2036
- return (0, These2.both)(data.second, data.first);
2140
+ return make.both(data.second, data.first);
2037
2141
  };
2038
2142
  })(These || (These = {}));
2039
2143
 
2040
2144
  // src/Core/Tuple.ts
2041
2145
  var Tuple;
2042
2146
  ((Tuple2) => {
2043
- Tuple2.make = (first2, second2) => [first2, second2];
2147
+ let from;
2148
+ ((from2) => {
2149
+ from2.pair = (first2, second2) => [first2, second2];
2150
+ from2.array = (arr) => arr;
2151
+ })(from = Tuple2.from || (Tuple2.from = {}));
2044
2152
  Tuple2.first = (tuple) => tuple[0];
2045
2153
  Tuple2.second = (tuple) => tuple[1];
2046
2154
  Tuple2.mapFirst = (f) => (tuple) => [f(tuple[0]), tuple[1]];
@@ -2051,7 +2159,10 @@ var Tuple;
2051
2159
  ];
2052
2160
  Tuple2.fold = (f) => (tuple) => f(tuple[0], tuple[1]);
2053
2161
  Tuple2.swap = (tuple) => [tuple[1], tuple[0]];
2054
- Tuple2.toArray = (tuple) => [...tuple];
2162
+ let to;
2163
+ ((to2) => {
2164
+ to2.Array = (tuple) => [...tuple];
2165
+ })(to = Tuple2.to || (Tuple2.to = {}));
2055
2166
  Tuple2.tap = (f) => (tuple) => {
2056
2167
  f(tuple[0], tuple[1]);
2057
2168
  return tuple;
@@ -2061,59 +2172,71 @@ var Tuple;
2061
2172
  // src/Core/Validation.ts
2062
2173
  var Validation;
2063
2174
  ((Validation2) => {
2064
- Validation2.passed = (value) => ({ kind: "Passed", value });
2065
- Validation2.failed = (error) => ({ kind: "Failed", errors: [error] });
2066
- Validation2.failedAll = (errors) => ({ kind: "Failed", errors });
2067
- Validation2.isPassed = (data) => data.kind === "Passed";
2068
- Validation2.isFailed = (data) => data.kind === "Failed";
2069
- Validation2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Validation2.passed)(a) : (0, Validation2.failed)(onFalse(a));
2070
- Validation2.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Validation2.failed)(onNull()) : (0, Validation2.passed)(value);
2071
- Validation2.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Validation2.failed)(onNone()) : (0, Validation2.passed)(maybe.value);
2072
- Validation2.map = (f) => (data) => (0, Validation2.isPassed)(data) ? (0, Validation2.passed)(f(data.value)) : data;
2073
- Validation2.mapError = (f) => (data) => (0, Validation2.isFailed)(data) ? (0, Validation2.failedAll)(data.errors.map(f)) : data;
2175
+ let make;
2176
+ ((make2) => {
2177
+ make2.passed = (value) => ({ kind: "Passed", value });
2178
+ make2.failed = (error) => ({ kind: "Failed", errors: [error] });
2179
+ make2.failedAll = (errors) => ({ kind: "Failed", errors });
2180
+ })(make = Validation2.make || (Validation2.make = {}));
2181
+ let is;
2182
+ ((is2) => {
2183
+ is2.passed = (data) => data.kind === "Passed";
2184
+ is2.failed = (data) => data.kind === "Failed";
2185
+ })(is = Validation2.is || (Validation2.is = {}));
2186
+ let from;
2187
+ ((from2) => {
2188
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.passed(a) : make.failed(onFalse(a));
2189
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.failed(onNull()) : make.passed(value);
2190
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.failed(onNone()) : make.passed(maybe.value);
2191
+ from2.Result = (data) => data.kind === "Ok" ? make.passed(data.value) : make.failed(data.error);
2192
+ })(from = Validation2.from || (Validation2.from = {}));
2193
+ Validation2.map = (f) => (data) => is.passed(data) ? make.passed(f(data.value)) : data;
2194
+ Validation2.mapError = (f) => (data) => is.failed(data) ? make.failedAll(data.errors.map(f)) : data;
2074
2195
  Validation2.ap = (arg) => (data) => {
2075
- if ((0, Validation2.isPassed)(data)) {
2076
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.passed)(data.value(arg.value)) : (0, Validation2.failedAll)(arg.errors);
2196
+ if (is.passed(data)) {
2197
+ return is.passed(arg) ? make.passed(data.value(arg.value)) : make.failedAll(arg.errors);
2077
2198
  }
2078
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.failedAll)(data.errors) : (0, Validation2.failedAll)([...data.errors, ...arg.errors]);
2199
+ return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll([...data.errors, ...arg.errors]);
2079
2200
  };
2080
- Validation2.fold = (onFailed, onPassed) => (data) => (0, Validation2.isPassed)(data) ? onPassed(data.value) : onFailed(data.errors);
2081
- Validation2.match = (cases) => (data) => (0, Validation2.isPassed)(data) ? cases.passed(data.value) : cases.failed(data.errors);
2082
- Validation2.getOrElse = (defaultValue) => (data) => (0, Validation2.isPassed)(data) ? data.value : defaultValue();
2201
+ Validation2.fold = (onFailed, onPassed) => (data) => is.passed(data) ? onPassed(data.value) : onFailed(data.errors);
2202
+ Validation2.match = (cases) => (data) => is.passed(data) ? cases.passed(data.value) : cases.failed(data.errors);
2203
+ Validation2.getOrElse = (defaultValue) => (data) => is.passed(data) ? data.value : defaultValue();
2083
2204
  Validation2.tap = (f) => (data) => {
2084
- if ((0, Validation2.isPassed)(data)) {
2205
+ if (is.passed(data)) {
2085
2206
  f(data.value);
2086
2207
  }
2087
2208
  return data;
2088
2209
  };
2089
2210
  Validation2.tapError = (f) => (data) => {
2090
- if ((0, Validation2.isFailed)(data)) {
2211
+ if (is.failed(data)) {
2091
2212
  f(data.errors);
2092
2213
  }
2093
2214
  return data;
2094
2215
  };
2095
- Validation2.recover = (fallback) => (data) => (0, Validation2.isPassed)(data) ? data : fallback(data.errors);
2096
- Validation2.recoverUnless = (isBlocked, fallback) => (data) => (0, Validation2.isFailed)(data) && !data.errors.some(isBlocked) ? fallback() : data;
2097
- Validation2.toResult = (data) => (0, Validation2.isPassed)(data) ? Result.ok(data.value) : Result.err(data.errors);
2098
- Validation2.toMaybe = (data) => (0, Validation2.isPassed)(data) ? Maybe.some(data.value) : Maybe.none();
2099
- Validation2.fromResult = (data) => data.kind === "Ok" ? (0, Validation2.passed)(data.value) : (0, Validation2.failed)(data.error);
2216
+ Validation2.recover = (fallback) => (data) => is.passed(data) ? data : fallback(data.errors);
2217
+ Validation2.recoverUnless = (isBlocked, fallback) => (data) => is.failed(data) && !data.errors.some(isBlocked) ? fallback() : data;
2218
+ let to;
2219
+ ((to2) => {
2220
+ to2.Result = (data) => is.passed(data) ? Result.make.ok(data.value) : Result.make.err(data.errors);
2221
+ to2.Maybe = (data) => is.passed(data) ? Maybe.make.some(data.value) : Maybe.make.none();
2222
+ })(to = Validation2.to || (Validation2.to = {}));
2100
2223
  Validation2.product = (first, second) => {
2101
- if ((0, Validation2.isPassed)(first)) {
2102
- return (0, Validation2.isPassed)(second) ? (0, Validation2.passed)([first.value, second.value]) : (0, Validation2.failedAll)(second.errors);
2224
+ if (is.passed(first)) {
2225
+ return is.passed(second) ? make.passed([first.value, second.value]) : make.failedAll(second.errors);
2103
2226
  }
2104
- return (0, Validation2.isPassed)(second) ? (0, Validation2.failedAll)(first.errors) : (0, Validation2.failedAll)([...first.errors, ...second.errors]);
2227
+ return is.passed(second) ? make.failedAll(first.errors) : make.failedAll([...first.errors, ...second.errors]);
2105
2228
  };
2106
2229
  Validation2.productAll = (data) => {
2107
2230
  const values = [];
2108
2231
  const errors = [];
2109
2232
  for (const v of data) {
2110
- if ((0, Validation2.isPassed)(v)) {
2233
+ if (is.passed(v)) {
2111
2234
  values.push(v.value);
2112
2235
  } else {
2113
2236
  errors.push(...v.errors);
2114
2237
  }
2115
2238
  }
2116
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
2239
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(values);
2117
2240
  };
2118
2241
  Validation2.struct = (fields) => {
2119
2242
  const record = {};
@@ -2121,14 +2244,14 @@ var Validation;
2121
2244
  for (const key in fields) {
2122
2245
  if (Object.hasOwn(fields, key)) {
2123
2246
  const val = fields[key];
2124
- if ((0, Validation2.isPassed)(val)) {
2247
+ if (is.passed(val)) {
2125
2248
  record[key] = val.value;
2126
2249
  } else {
2127
2250
  errors.push(...val.errors);
2128
2251
  }
2129
2252
  }
2130
2253
  }
2131
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
2254
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(record);
2132
2255
  };
2133
2256
  })(Validation || (Validation = {}));
2134
2257