@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/utils.js CHANGED
@@ -32,57 +32,75 @@ module.exports = __toCommonJS(Data_exports);
32
32
  // src/Core/Deferred.ts
33
33
  var Deferred;
34
34
  ((Deferred2) => {
35
- Deferred2.fromPromise = (p) => (
36
- // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
37
- { then: ((f) => p.then(f)) }
38
- );
39
- Deferred2.toPromise = (d) => new Promise((resolve) => d.then(resolve));
35
+ let from;
36
+ ((from2) => {
37
+ from2.Promise = (p) => (
38
+ // eslint-disable-next-line unicorn/no-thenable -- Deferred is intentionally thenable; it is the mechanism that makes Task awaitable
39
+ { then: ((f) => p.then(f)) }
40
+ );
41
+ })(from = Deferred2.from || (Deferred2.from = {}));
42
+ let to;
43
+ ((to2) => {
44
+ to2.Promise = (d) => new globalThis.Promise((resolve) => d.then(resolve));
45
+ })(to = Deferred2.to || (Deferred2.to = {}));
40
46
  })(Deferred || (Deferred = {}));
41
47
 
42
48
  // src/Core/Maybe.ts
43
49
  var _none = { kind: "None" };
44
50
  var Maybe;
45
- ((Maybe2) => {
46
- Maybe2.some = (value) => ({ kind: "Some", value });
47
- Maybe2.isSome = (data) => data.kind === "Some";
48
- Maybe2.none = () => _none;
49
- Maybe2.isNone = (data) => data.kind === "None";
50
- Maybe2.fromNullable = (value) => value === null || value === void 0 ? (0, Maybe2.none)() : (0, Maybe2.some)(value);
51
- Maybe2.toNullable = (data) => (0, Maybe2.isSome)(data) ? data.value : null;
52
- Maybe2.toUndefined = (data) => (0, Maybe2.isSome)(data) ? data.value : void 0;
53
- Maybe2.fromPredicate = (pred) => (a) => pred(a) ? (0, Maybe2.some)(a) : (0, Maybe2.none)();
54
- Maybe2.toResult = (onNone) => (data) => (0, Maybe2.isSome)(data) ? Result.ok(data.value) : Result.err(onNone());
55
- Maybe2.fromResult = (data) => Result.isOk(data) ? (0, Maybe2.some)(data.value) : (0, Maybe2.none)();
56
- Maybe2.map = (f) => (data) => (0, Maybe2.isSome)(data) ? (0, Maybe2.some)(f(data.value)) : data;
57
- Maybe2.chain = (f) => (data) => (0, Maybe2.isSome)(data) ? f(data.value) : data;
58
- Maybe2.fold = (onNone, onSome) => (data) => (0, Maybe2.isSome)(data) ? onSome(data.value) : onNone();
59
- Maybe2.match = (cases) => (data) => (0, Maybe2.isSome)(data) ? cases.some(data.value) : cases.none();
60
- Maybe2.getOrElse = (defaultValue) => (data) => (0, Maybe2.isSome)(data) ? data.value : defaultValue();
61
- Maybe2.tap = (f) => (data) => {
62
- if ((0, Maybe2.isSome)(data)) {
51
+ ((Maybe3) => {
52
+ let make;
53
+ ((make2) => {
54
+ make2.some = (value) => ({ kind: "Some", value });
55
+ make2.none = () => _none;
56
+ })(make = Maybe3.make || (Maybe3.make = {}));
57
+ let is;
58
+ ((is2) => {
59
+ is2.some = (data) => data.kind === "Some";
60
+ is2.none = (data) => data.kind === "None";
61
+ })(is = Maybe3.is || (Maybe3.is = {}));
62
+ let to;
63
+ ((to2) => {
64
+ to2.nullable = (data) => is.some(data) ? data.value : null;
65
+ to2.undefined = (data) => is.some(data) ? data.value : globalThis.undefined;
66
+ to2.Result = (onNone) => (data) => is.some(data) ? Result.make.ok(data.value) : Result.make.err(onNone());
67
+ })(to = Maybe3.to || (Maybe3.to = {}));
68
+ let from;
69
+ ((from2) => {
70
+ from2.nullable = (value) => value === null || value === void 0 ? make.none() : make.some(value);
71
+ from2.Predicate = (pred) => (a) => pred(a) ? make.some(a) : make.none();
72
+ from2.Result = (data) => Result.is.ok(data) ? make.some(data.value) : make.none();
73
+ })(from = Maybe3.from || (Maybe3.from = {}));
74
+ Maybe3.map = (f) => (data) => is.some(data) ? make.some(f(data.value)) : data;
75
+ Maybe3.chain = (f) => (data) => is.some(data) ? f(data.value) : data;
76
+ Maybe3.fold = (onNone, onSome) => (data) => is.some(data) ? onSome(data.value) : onNone();
77
+ Maybe3.match = (cases) => (data) => is.some(data) ? cases.some(data.value) : cases.none();
78
+ Maybe3.getOrElse = (defaultValue) => (data) => is.some(data) ? data.value : defaultValue();
79
+ Maybe3.tap = (f) => (data) => {
80
+ if (is.some(data)) {
63
81
  f(data.value);
64
82
  }
65
83
  return data;
66
84
  };
67
- Maybe2.filter = (predicate) => (data) => (0, Maybe2.isSome)(data) ? predicate(data.value) ? data : (0, Maybe2.none)() : data;
68
- Maybe2.recover = (fallback) => (data) => (0, Maybe2.isSome)(data) ? data : fallback();
69
- Maybe2.ap = (arg) => (data) => (0, Maybe2.isSome)(data) && (0, Maybe2.isSome)(arg) ? (0, Maybe2.some)(data.value(arg.value)) : (0, Maybe2.none)();
70
- Maybe2.bindTo = (key) => (data) => (0, Maybe2.map)((a) => ({ [key]: a }))(data);
71
- Maybe2.bind = (key, f) => (data) => (0, Maybe2.chain)(
72
- (a) => (0, Maybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
85
+ Maybe3.filter = (predicate) => (data) => is.some(data) ? predicate(data.value) ? data : make.none() : data;
86
+ Maybe3.recover = (fallback) => (data) => is.some(data) ? data : fallback();
87
+ Maybe3.ap = (arg) => (data) => is.some(data) && is.some(arg) ? make.some(data.value(arg.value)) : make.none();
88
+ Maybe3.bindTo = (key) => (data) => (0, Maybe3.map)((a) => ({ [key]: a }))(data);
89
+ Maybe3.bind = (key, f) => (data) => (0, Maybe3.chain)(
90
+ (a) => (0, Maybe3.map)((b) => ({ ...a, [key]: b }))(f(a))
73
91
  )(data);
74
- Maybe2.struct = (fields) => {
92
+ Maybe3.struct = (fields) => {
75
93
  const result = {};
76
94
  for (const key in fields) {
77
95
  if (Object.hasOwn(fields, key)) {
78
96
  const res = fields[key];
79
- if ((0, Maybe2.isNone)(res)) {
97
+ if (is.none(res)) {
80
98
  return res;
81
99
  }
82
100
  result[key] = res.value;
83
101
  }
84
102
  }
85
- return (0, Maybe2.some)(result);
103
+ return make.some(result);
86
104
  };
87
105
  })(Maybe || (Maybe = {}));
88
106
 
@@ -102,11 +120,14 @@ var Duration;
102
120
  Duration2.minutes = (m) => wrap(m * 60 * 1e3);
103
121
  Duration2.hours = (h) => wrap(h * 60 * 60 * 1e3);
104
122
  Duration2.days = (d) => wrap(d * 24 * 60 * 60 * 1e3);
105
- Duration2.toMilliseconds = (d) => Brand.unwrap(d);
106
- Duration2.toSeconds = (d) => Brand.unwrap(d) / 1e3;
107
- Duration2.toMinutes = (d) => Brand.unwrap(d) / (60 * 1e3);
108
- Duration2.toHours = (d) => Brand.unwrap(d) / (60 * 60 * 1e3);
109
- Duration2.toDays = (d) => Brand.unwrap(d) / (24 * 60 * 60 * 1e3);
123
+ let to;
124
+ ((to2) => {
125
+ to2.milliseconds = (d) => Brand.unwrap(d);
126
+ to2.seconds = (d) => Brand.unwrap(d) / 1e3;
127
+ to2.minutes = (d) => Brand.unwrap(d) / (60 * 1e3);
128
+ to2.hours = (d) => Brand.unwrap(d) / (60 * 60 * 1e3);
129
+ to2.days = (d) => Brand.unwrap(d) / (24 * 60 * 60 * 1e3);
130
+ })(to = Duration2.to || (Duration2.to = {}));
110
131
  Duration2.add = (other) => (self) => wrap(Brand.unwrap(self) + Brand.unwrap(other));
111
132
  Duration2.subtract = (other) => (self) => wrap(Brand.unwrap(self) - Brand.unwrap(other));
112
133
  })(Duration || (Duration = {}));
@@ -114,49 +135,61 @@ var Duration;
114
135
  // src/Core/Result.ts
115
136
  var Result;
116
137
  ((Result3) => {
117
- Result3.ok = (value) => ({ kind: "Ok", value });
118
- Result3.err = (e) => ({ kind: "Err", error: e });
119
- Result3.isOk = (data) => data.kind === "Ok";
120
- Result3.isErr = (data) => data.kind === "Err";
138
+ let make;
139
+ ((make2) => {
140
+ make2.ok = (value) => ({ kind: "Ok", value });
141
+ make2.err = (e) => ({ kind: "Err", error: e });
142
+ })(make = Result3.make || (Result3.make = {}));
143
+ let is;
144
+ ((is2) => {
145
+ is2.ok = (data) => data.kind === "Ok";
146
+ is2.err = (data) => data.kind === "Err";
147
+ })(is = Result3.is || (Result3.is = {}));
121
148
  Result3.tryCatch = (f, onError) => {
122
149
  try {
123
- return (0, Result3.ok)(f());
150
+ return make.ok(f());
124
151
  } catch (error) {
125
- return (0, Result3.err)(onError(error));
152
+ return make.err(onError(error));
126
153
  }
127
154
  };
128
- Result3.map = (f) => (data) => (0, Result3.isOk)(data) ? (0, Result3.ok)(f(data.value)) : data;
129
- Result3.mapError = (f) => (data) => (0, Result3.isErr)(data) ? (0, Result3.err)(f(data.error)) : data;
130
- Result3.chain = (f) => (data) => (0, Result3.isOk)(data) ? f(data.value) : data;
131
- Result3.fold = (onErr, onOk) => (data) => (0, Result3.isOk)(data) ? onOk(data.value) : onErr(data.error);
132
- Result3.match = (cases) => (data) => (0, Result3.isOk)(data) ? cases.ok(data.value) : cases.err(data.error);
133
- Result3.getOrElse = (defaultValue) => (data) => (0, Result3.isOk)(data) ? data.value : defaultValue();
155
+ Result3.map = (f) => (data) => is.ok(data) ? make.ok(f(data.value)) : data;
156
+ Result3.mapError = (f) => (data) => is.err(data) ? make.err(f(data.error)) : data;
157
+ Result3.chain = (f) => (data) => is.ok(data) ? f(data.value) : data;
158
+ Result3.fold = (onErr, onOk) => (data) => is.ok(data) ? onOk(data.value) : onErr(data.error);
159
+ Result3.match = (cases) => (data) => is.ok(data) ? cases.ok(data.value) : cases.err(data.error);
160
+ Result3.getOrElse = (defaultValue) => (data) => is.ok(data) ? data.value : defaultValue();
134
161
  Result3.tap = (f) => (data) => {
135
- if ((0, Result3.isOk)(data)) {
162
+ if (is.ok(data)) {
136
163
  f(data.value);
137
164
  }
138
165
  return data;
139
166
  };
140
167
  Result3.tapError = (f) => (data) => {
141
- if ((0, Result3.isErr)(data)) {
168
+ if (is.err(data)) {
142
169
  f(data.error);
143
170
  }
144
171
  return data;
145
172
  };
146
- Result3.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Result3.ok)(a) : (0, Result3.err)(onFalse(a));
147
- Result3.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Result3.err)(onNull()) : (0, Result3.ok)(value);
148
- Result3.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Result3.err)(onNone()) : (0, Result3.ok)(maybe.value);
149
- Result3.fromThrowable = (f, onError) => (...args) => {
150
- try {
151
- return (0, Result3.ok)(f(...args));
152
- } catch (error) {
153
- return (0, Result3.err)(onError(error));
154
- }
155
- };
156
- Result3.recover = (fallback) => (data) => (0, Result3.isOk)(data) ? data : fallback(data.error);
157
- Result3.recoverUnless = (isBlocked, fallback) => (data) => (0, Result3.isErr)(data) && !isBlocked(data.error) ? fallback() : data;
158
- Result3.toMaybe = (data) => (0, Result3.isOk)(data) ? Maybe.some(data.value) : Maybe.none();
159
- Result3.ap = (arg) => (data) => (0, Result3.isOk)(data) && (0, Result3.isOk)(arg) ? (0, Result3.ok)(data.value(arg.value)) : (0, Result3.isErr)(data) ? data : arg;
173
+ let from;
174
+ ((from2) => {
175
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.ok(a) : make.err(onFalse(a));
176
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.err(onNull()) : make.ok(value);
177
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.err(onNone()) : make.ok(maybe.value);
178
+ from2.throwable = (f, onError) => (...args) => {
179
+ try {
180
+ return make.ok(f(...args));
181
+ } catch (error) {
182
+ return make.err(onError(error));
183
+ }
184
+ };
185
+ })(from = Result3.from || (Result3.from = {}));
186
+ Result3.recover = (fallback) => (data) => is.ok(data) ? data : fallback(data.error);
187
+ Result3.recoverUnless = (isBlocked, fallback) => (data) => is.err(data) && !isBlocked(data.error) ? fallback() : data;
188
+ let to;
189
+ ((to2) => {
190
+ to2.Maybe = (data) => is.ok(data) ? Maybe.make.some(data.value) : Maybe.make.none();
191
+ })(to = Result3.to || (Result3.to = {}));
192
+ Result3.ap = (arg) => (data) => is.ok(data) && is.ok(arg) ? make.ok(data.value(arg.value)) : is.err(data) ? data : arg;
160
193
  Result3.bindTo = (key) => (data) => (0, Result3.map)((a) => ({ [key]: a }))(data);
161
194
  Result3.bind = (key, f) => (data) => (0, Result3.chain)(
162
195
  (a) => (0, Result3.map)((b) => ({ ...a, [key]: b }))(f(a))
@@ -166,30 +199,37 @@ var Result;
166
199
  for (const key in fields) {
167
200
  if (Object.hasOwn(fields, key)) {
168
201
  const res = fields[key];
169
- if ((0, Result3.isErr)(res)) {
202
+ if (is.err(res)) {
170
203
  return res;
171
204
  }
172
205
  result[key] = res.value;
173
206
  }
174
207
  }
175
- return (0, Result3.ok)(result);
208
+ return make.ok(result);
176
209
  };
177
210
  })(Result || (Result = {}));
178
211
 
179
212
  // src/Core/TaskMaybe.ts
180
213
  var TaskMaybe;
181
214
  ((TaskMaybe2) => {
182
- TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
183
- TaskMaybe2.none = () => Task.resolve(Maybe.none());
184
- TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
185
- TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
186
- TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
187
- TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
188
- TaskMaybe2.tryCatch = (f) => Task.from((signal) => Promise.resolve(f(signal)).then(Maybe.some).catch(() => Maybe.none()));
215
+ TaskMaybe2.some = (value) => Task.resolve(Maybe.make.some(value));
216
+ TaskMaybe2.none = () => Task.resolve(Maybe.make.none());
217
+ let from;
218
+ ((from2) => {
219
+ from2.Maybe = (option) => Task.resolve(option);
220
+ from2.nullable = (value) => Task.resolve(Maybe.from.nullable(value));
221
+ from2.Result = (result) => Task.resolve(Result.to.Maybe(result));
222
+ from2.Task = (task) => Task.map(Maybe.make.some)(task);
223
+ })(from = TaskMaybe2.from || (TaskMaybe2.from = {}));
224
+ TaskMaybe2.tryCatch = (f) => Task.from.Promise(
225
+ (signal) => Promise.resolve(f(signal)).then(Maybe.make.some).catch(() => Maybe.make.none())
226
+ );
189
227
  TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
190
- TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
191
- TaskMaybe2.ap = (arg) => (data) => Task.from(
192
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
228
+ TaskMaybe2.chain = (f) => (data) => Task.chain(
229
+ (option) => Maybe.is.some(option) ? f(option.value) : Task.resolve(Maybe.make.none())
230
+ )(data);
231
+ TaskMaybe2.ap = (arg) => (data) => Task.from.Promise(
232
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
193
233
  ([of_, oa]) => Maybe.ap(oa)(of_)
194
234
  )
195
235
  );
@@ -198,25 +238,30 @@ var TaskMaybe;
198
238
  TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
199
239
  TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
200
240
  TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
201
- TaskMaybe2.toResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
241
+ let to;
242
+ ((to2) => {
243
+ to2.Result = (onNone) => (data) => Task.map(Maybe.to.Result(onNone))(data);
244
+ })(to = TaskMaybe2.to || (TaskMaybe2.to = {}));
202
245
  TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
203
246
  TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
204
247
  (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
205
248
  )(data);
206
- TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.isNone(maybe) ? fallback() : Task.resolve(maybe))(data);
207
- TaskMaybe2.struct = (fields) => Task.from((signal) => {
249
+ TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.is.none(maybe) ? fallback() : Task.resolve(maybe))(
250
+ data
251
+ );
252
+ TaskMaybe2.struct = (fields) => Task.from.Promise((signal) => {
208
253
  const keys = Object.keys(fields);
209
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
254
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
210
255
  return Promise.all(promises).then((results) => {
211
256
  const record = {};
212
257
  for (let i = 0; i < keys.length; i++) {
213
258
  const res = results[i];
214
- if (Maybe.isNone(res)) {
259
+ if (Maybe.is.none(res)) {
215
260
  return res;
216
261
  }
217
262
  record[keys[i]] = res.value;
218
263
  }
219
- return Maybe.some(record);
264
+ return Maybe.make.some(record);
220
265
  });
221
266
  });
222
267
  })(TaskMaybe || (TaskMaybe = {}));
@@ -224,28 +269,35 @@ var TaskMaybe;
224
269
  // src/Core/TaskResult.ts
225
270
  var TaskResult;
226
271
  ((TaskResult2) => {
227
- TaskResult2.ok = (value) => Task.resolve(Result.ok(value));
228
- TaskResult2.err = (error) => Task.resolve(Result.err(error));
229
- TaskResult2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
230
- TaskResult2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
231
- TaskResult2.fromResult = (result) => Task.resolve(result);
232
- TaskResult2.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
233
- TaskResult2.tryCatch = (f, onError) => Task.from((signal) => Promise.resolve(f(signal)).then(Result.ok).catch((error) => Result.err(onError(error))));
272
+ TaskResult2.ok = (value) => Task.resolve(Result.make.ok(value));
273
+ TaskResult2.err = (error) => Task.resolve(Result.make.err(error));
274
+ let from;
275
+ ((from2) => {
276
+ from2.nullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.make.err(onNull()) : Result.make.ok(value));
277
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(Maybe.is.none(maybe) ? Result.make.err(onNone()) : Result.make.ok(maybe.value));
278
+ from2.Result = (result) => Task.resolve(result);
279
+ from2.throwable = (f, onError) => (...args) => Task.from.Promise(
280
+ () => f(...args).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
281
+ );
282
+ })(from = TaskResult2.from || (TaskResult2.from = {}));
283
+ TaskResult2.tryCatch = (f, onError) => Task.from.Promise(
284
+ (signal) => Promise.resolve(f(signal)).then(Result.make.ok).catch((error) => Result.make.err(onError(error)))
285
+ );
234
286
  TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
235
287
  TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
236
- TaskResult2.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
237
- data
238
- );
288
+ TaskResult2.chain = (f) => (data) => Task.chain(
289
+ (result) => Result.is.ok(result) ? f(result.value) : Task.resolve(Result.make.err(result.error))
290
+ )(data);
239
291
  TaskResult2.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
240
292
  TaskResult2.match = (cases) => (data) => Task.map(Result.match(cases))(data);
241
293
  TaskResult2.recover = (fallback) => (data) => Task.chain(
242
- (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
294
+ (result) => Result.is.err(result) ? fallback(result.error) : Task.resolve(result)
243
295
  )(data);
244
296
  TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
245
297
  TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
246
298
  TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
247
- TaskResult2.ap = (arg) => (data) => Task.from(
248
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
299
+ TaskResult2.ap = (arg) => (data) => Task.from.Promise(
300
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
249
301
  ([of_, oa]) => Result.ap(oa)(of_)
250
302
  )
251
303
  );
@@ -254,19 +306,19 @@ var TaskResult;
254
306
  TaskResult2.bind = (key, f) => (data) => (0, TaskResult2.chain)(
255
307
  (a) => (0, TaskResult2.map)((b) => ({ ...a, [key]: b }))(f(a))
256
308
  )(data);
257
- TaskResult2.struct = (fields) => Task.from((signal) => {
309
+ TaskResult2.struct = (fields) => Task.from.Promise((signal) => {
258
310
  const keys = Object.keys(fields);
259
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
311
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
260
312
  return Promise.all(promises).then((results) => {
261
313
  const record = {};
262
314
  for (let i = 0; i < keys.length; i++) {
263
315
  const res = results[i];
264
- if (Result.isErr(res)) {
316
+ if (Result.is.err(res)) {
265
317
  return res;
266
318
  }
267
319
  record[keys[i]] = res.value;
268
320
  }
269
- return Result.ok(record);
321
+ return Result.make.ok(record);
270
322
  });
271
323
  });
272
324
  })(TaskResult || (TaskResult = {}));
@@ -277,19 +329,28 @@ var isNonEmptyArr = (list) => list.length > 0;
277
329
  // src/Core/TaskValidation.ts
278
330
  var TaskValidation;
279
331
  ((TaskValidation2) => {
280
- TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
281
- TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
282
- TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
283
- TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
284
- TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
285
- TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
286
- TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
287
- TaskValidation2.tryCatch = (f, onError) => Task.from(
288
- (signal) => Promise.resolve(f(signal)).then(Validation.passed).catch((error) => Validation.failed(onError(error)))
332
+ TaskValidation2.passed = (value) => Task.resolve(Validation.make.passed(value));
333
+ TaskValidation2.failed = (error) => Task.resolve(Validation.make.failed(error));
334
+ TaskValidation2.failedAll = (errors) => Task.resolve(Validation.make.failedAll(errors));
335
+ let from;
336
+ ((from2) => {
337
+ from2.Validation = (validation) => Task.resolve(validation);
338
+ from2.nullable = (onNull) => (value) => Task.resolve(
339
+ value === null || value === void 0 ? Validation.make.failed(onNull()) : Validation.make.passed(value)
340
+ );
341
+ from2.Maybe = (onNone) => (maybe) => Task.resolve(
342
+ Maybe.is.none(maybe) ? Validation.make.failed(onNone()) : Validation.make.passed(maybe.value)
343
+ );
344
+ from2.Result = (result) => Task.resolve(Validation.from.Result(result));
345
+ })(from = TaskValidation2.from || (TaskValidation2.from = {}));
346
+ TaskValidation2.tryCatch = (f, onError) => Task.from.Promise(
347
+ (signal) => Promise.resolve(f(signal)).then(Validation.make.passed).catch(
348
+ (error) => Validation.make.failed(onError(error))
349
+ )
289
350
  );
290
351
  TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
291
- TaskValidation2.ap = (arg) => (data) => Task.from(
292
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
352
+ TaskValidation2.ap = (arg) => (data) => Task.from.Promise(
353
+ (signal) => Promise.all([Deferred.to.Promise(data(signal)), Deferred.to.Promise(arg(signal))]).then(
293
354
  ([vf, va]) => Validation.ap(va)(vf)
294
355
  )
295
356
  );
@@ -298,61 +359,64 @@ var TaskValidation;
298
359
  TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
299
360
  TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
300
361
  TaskValidation2.recover = (fallback) => (data) => Task.chain(
301
- (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
362
+ (validation) => Validation.is.passed(validation) ? Task.resolve(validation) : fallback(validation.errors)
302
363
  )(data);
303
- TaskValidation2.product = (first, second) => Task.from(
304
- (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
364
+ TaskValidation2.product = (first, second) => Task.from.Promise(
365
+ (signal) => Promise.all([Deferred.to.Promise(first(signal)), Deferred.to.Promise(second(signal))]).then(
305
366
  ([va, vb]) => Validation.product(va, vb)
306
367
  )
307
368
  );
308
- TaskValidation2.productAll = (data) => Task.from(
309
- (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => {
369
+ TaskValidation2.productAll = (data) => Task.from.Promise(
370
+ (signal) => Promise.all(data.map((t) => Deferred.to.Promise(t(signal)))).then((results) => {
310
371
  const [first, ...rest] = results;
311
372
  return Validation.productAll([first, ...rest]);
312
373
  })
313
374
  );
314
375
  TaskValidation2.mapError = (f) => (data) => Task.map(Validation.mapError(f))(data);
315
376
  TaskValidation2.tapError = (f) => (data) => Task.map(Validation.tapError(f))(data);
316
- TaskValidation2.struct = (fields) => Task.from((signal) => {
377
+ TaskValidation2.struct = (fields) => Task.from.Promise((signal) => {
317
378
  const keys = Object.keys(fields);
318
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
379
+ const promises = keys.map((key) => Deferred.to.Promise(fields[key](signal)));
319
380
  return Promise.all(promises).then((results) => {
320
381
  const record = {};
321
382
  const errors = [];
322
383
  for (let i = 0; i < keys.length; i++) {
323
384
  const res = results[i];
324
- if (Validation.isPassed(res)) {
385
+ if (Validation.is.passed(res)) {
325
386
  record[keys[i]] = res.value;
326
387
  } else {
327
388
  errors.push(...res.errors);
328
389
  }
329
390
  }
330
- return isNonEmptyArr(errors) ? Validation.failedAll(errors) : Validation.passed(record);
391
+ return isNonEmptyArr(errors) ? Validation.make.failedAll(errors) : Validation.make.passed(record);
331
392
  });
332
393
  });
333
394
  })(TaskValidation || (TaskValidation = {}));
334
395
 
335
396
  // src/Core/Task.ts
336
- var toPromise = (task, signal) => Deferred.toPromise(task(signal));
337
- var getMs = (duration) => Duration.toMilliseconds(duration);
397
+ var toPromise = (task, signal) => Deferred.to.Promise(task(signal));
398
+ var getMs = (duration) => Duration.to.milliseconds(duration);
338
399
  var Task;
339
400
  ((Task2) => {
340
- Task2.resolve = (value) => () => Deferred.fromPromise(Promise.resolve(value));
341
- Task2.from = (f) => (signal) => Deferred.fromPromise(f(signal));
342
- Task2.fromSync = (f) => () => Deferred.fromPromise(Promise.resolve(f()));
343
- Task2.map = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then(f));
344
- Task2.chain = (f) => (data) => (0, Task2.from)((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
345
- Task2.ap = (arg) => (data) => (0, Task2.from)((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
346
- Task2.tap = (f) => (data) => (0, Task2.from)(
401
+ Task2.resolve = (value) => () => Deferred.from.Promise(globalThis.Promise.resolve(value));
402
+ let from;
403
+ ((from2) => {
404
+ from2.Promise = (f) => (signal) => Deferred.from.Promise(f(signal));
405
+ from2.sync = (f) => () => Deferred.from.Promise(globalThis.Promise.resolve(f()));
406
+ })(from = Task2.from || (Task2.from = {}));
407
+ Task2.map = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then(f));
408
+ Task2.chain = (f) => (data) => from.Promise((signal) => toPromise(data, signal).then((a) => toPromise(f(a), signal)));
409
+ Task2.ap = (arg) => (data) => from.Promise((signal) => Promise.all([toPromise(data, signal), toPromise(arg, signal)]).then(([f, a]) => f(a)));
410
+ Task2.tap = (f) => (data) => from.Promise(
347
411
  (signal) => toPromise(data, signal).then((a) => {
348
412
  f(a);
349
413
  return a;
350
414
  })
351
415
  );
352
- Task2.all = (tasks) => (0, Task2.from)(
416
+ Task2.all = (tasks) => from.Promise(
353
417
  (signal) => Promise.all(tasks.map((t) => toPromise(t, signal)))
354
418
  );
355
- Task2.delay = (duration) => (data) => (0, Task2.from)(
419
+ Task2.delay = (duration) => (data) => from.Promise(
356
420
  (signal) => new Promise((res) => {
357
421
  let timerId;
358
422
  const onAbort = () => {
@@ -371,7 +435,7 @@ var Task;
371
435
  }, getMs(duration));
372
436
  })
373
437
  );
374
- Task2.repeat = (options) => (task) => (0, Task2.from)((signal) => {
438
+ Task2.repeat = (options) => (task) => from.Promise((signal) => {
375
439
  const { times, delay: delayDuration } = options;
376
440
  if (times <= 0) {
377
441
  return Promise.resolve([]);
@@ -405,7 +469,7 @@ var Task;
405
469
  };
406
470
  return run2(times);
407
471
  });
408
- Task2.repeatUntil = (options) => (task) => (0, Task2.from)((signal) => {
472
+ Task2.repeatUntil = (options) => (task) => from.Promise((signal) => {
409
473
  const { when: predicate, delay: delayDuration, maxAttempts } = options;
410
474
  const wait = () => new Promise((r) => {
411
475
  let timerId;
@@ -442,10 +506,10 @@ var Task;
442
506
  });
443
507
  Task2.race = (tasks) => {
444
508
  if (tasks.length === 0) {
445
- return () => Deferred.fromPromise(new Promise(() => {
509
+ return () => Deferred.from.Promise(new Promise(() => {
446
510
  }));
447
511
  }
448
- return (0, Task2.from)((outerSignal) => {
512
+ return from.Promise((outerSignal) => {
449
513
  const controllers = tasks.map(() => new AbortController());
450
514
  const onOuterAbort = () => {
451
515
  for (const ctrl of controllers) {
@@ -474,8 +538,8 @@ var Task;
474
538
  return Promise.race(promises);
475
539
  });
476
540
  };
477
- Task2.sequence = (tasks) => (0, Task2.from)((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
478
- Task2.sequential = (tasks) => (0, Task2.from)(async (signal) => {
541
+ Task2.sequence = (tasks) => from.Promise((signal) => Promise.all(tasks.map((t) => toPromise(t, signal))));
542
+ Task2.sequential = (tasks) => from.Promise(async (signal) => {
479
543
  const results = [];
480
544
  for (const task of tasks) {
481
545
  if (signal?.aborted) {
@@ -485,7 +549,7 @@ var Task;
485
549
  }
486
550
  return results;
487
551
  });
488
- Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
552
+ Task2.timeout = (duration, onTimeout) => (task) => from.Promise((outerSignal) => {
489
553
  const controller = new AbortController();
490
554
  let timerId;
491
555
  let cleanUp = () => {
@@ -508,13 +572,13 @@ var Task;
508
572
  return Promise.race([
509
573
  toPromise(task, controller.signal).then((a) => {
510
574
  cleanUp();
511
- return Result.ok(a);
575
+ return Result.make.ok(a);
512
576
  }),
513
577
  new Promise((res) => {
514
578
  timerId = setTimeout(() => {
515
579
  controller.abort();
516
580
  cleanUp();
517
- res(Result.err(onTimeout()));
581
+ res(Result.make.err(onTimeout()));
518
582
  }, getMs(duration));
519
583
  })
520
584
  ]);
@@ -533,7 +597,7 @@ var Task;
533
597
  outerSignal.addEventListener("abort", () => controller.abort(outerSignal.reason), { once: true });
534
598
  }
535
599
  }
536
- return Deferred.fromPromise(factory(controller.signal));
600
+ return Deferred.from.Promise(factory(controller.signal));
537
601
  };
538
602
  return { task, abort };
539
603
  };
@@ -550,59 +614,71 @@ var Task;
550
614
  // src/Core/Validation.ts
551
615
  var Validation;
552
616
  ((Validation2) => {
553
- Validation2.passed = (value) => ({ kind: "Passed", value });
554
- Validation2.failed = (error) => ({ kind: "Failed", errors: [error] });
555
- Validation2.failedAll = (errors) => ({ kind: "Failed", errors });
556
- Validation2.isPassed = (data) => data.kind === "Passed";
557
- Validation2.isFailed = (data) => data.kind === "Failed";
558
- Validation2.fromPredicate = (pred, onFalse) => (a) => pred(a) ? (0, Validation2.passed)(a) : (0, Validation2.failed)(onFalse(a));
559
- Validation2.fromNullable = (onNull) => (value) => value === null || value === void 0 ? (0, Validation2.failed)(onNull()) : (0, Validation2.passed)(value);
560
- Validation2.fromMaybe = (onNone) => (maybe) => Maybe.isNone(maybe) ? (0, Validation2.failed)(onNone()) : (0, Validation2.passed)(maybe.value);
561
- Validation2.map = (f) => (data) => (0, Validation2.isPassed)(data) ? (0, Validation2.passed)(f(data.value)) : data;
562
- Validation2.mapError = (f) => (data) => (0, Validation2.isFailed)(data) ? (0, Validation2.failedAll)(data.errors.map(f)) : data;
617
+ let make;
618
+ ((make2) => {
619
+ make2.passed = (value) => ({ kind: "Passed", value });
620
+ make2.failed = (error) => ({ kind: "Failed", errors: [error] });
621
+ make2.failedAll = (errors) => ({ kind: "Failed", errors });
622
+ })(make = Validation2.make || (Validation2.make = {}));
623
+ let is;
624
+ ((is2) => {
625
+ is2.passed = (data) => data.kind === "Passed";
626
+ is2.failed = (data) => data.kind === "Failed";
627
+ })(is = Validation2.is || (Validation2.is = {}));
628
+ let from;
629
+ ((from2) => {
630
+ from2.Predicate = (pred, onFalse) => (a) => pred(a) ? make.passed(a) : make.failed(onFalse(a));
631
+ from2.nullable = (onNull) => (value) => value === null || value === void 0 ? make.failed(onNull()) : make.passed(value);
632
+ from2.Maybe = (onNone) => (maybe) => Maybe.is.none(maybe) ? make.failed(onNone()) : make.passed(maybe.value);
633
+ from2.Result = (data) => data.kind === "Ok" ? make.passed(data.value) : make.failed(data.error);
634
+ })(from = Validation2.from || (Validation2.from = {}));
635
+ Validation2.map = (f) => (data) => is.passed(data) ? make.passed(f(data.value)) : data;
636
+ Validation2.mapError = (f) => (data) => is.failed(data) ? make.failedAll(data.errors.map(f)) : data;
563
637
  Validation2.ap = (arg) => (data) => {
564
- if ((0, Validation2.isPassed)(data)) {
565
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.passed)(data.value(arg.value)) : (0, Validation2.failedAll)(arg.errors);
638
+ if (is.passed(data)) {
639
+ return is.passed(arg) ? make.passed(data.value(arg.value)) : make.failedAll(arg.errors);
566
640
  }
567
- return (0, Validation2.isPassed)(arg) ? (0, Validation2.failedAll)(data.errors) : (0, Validation2.failedAll)([...data.errors, ...arg.errors]);
641
+ return is.passed(arg) ? make.failedAll(data.errors) : make.failedAll([...data.errors, ...arg.errors]);
568
642
  };
569
- Validation2.fold = (onFailed, onPassed) => (data) => (0, Validation2.isPassed)(data) ? onPassed(data.value) : onFailed(data.errors);
570
- Validation2.match = (cases) => (data) => (0, Validation2.isPassed)(data) ? cases.passed(data.value) : cases.failed(data.errors);
571
- Validation2.getOrElse = (defaultValue) => (data) => (0, Validation2.isPassed)(data) ? data.value : defaultValue();
643
+ Validation2.fold = (onFailed, onPassed) => (data) => is.passed(data) ? onPassed(data.value) : onFailed(data.errors);
644
+ Validation2.match = (cases) => (data) => is.passed(data) ? cases.passed(data.value) : cases.failed(data.errors);
645
+ Validation2.getOrElse = (defaultValue) => (data) => is.passed(data) ? data.value : defaultValue();
572
646
  Validation2.tap = (f) => (data) => {
573
- if ((0, Validation2.isPassed)(data)) {
647
+ if (is.passed(data)) {
574
648
  f(data.value);
575
649
  }
576
650
  return data;
577
651
  };
578
652
  Validation2.tapError = (f) => (data) => {
579
- if ((0, Validation2.isFailed)(data)) {
653
+ if (is.failed(data)) {
580
654
  f(data.errors);
581
655
  }
582
656
  return data;
583
657
  };
584
- Validation2.recover = (fallback) => (data) => (0, Validation2.isPassed)(data) ? data : fallback(data.errors);
585
- Validation2.recoverUnless = (isBlocked, fallback) => (data) => (0, Validation2.isFailed)(data) && !data.errors.some(isBlocked) ? fallback() : data;
586
- Validation2.toResult = (data) => (0, Validation2.isPassed)(data) ? Result.ok(data.value) : Result.err(data.errors);
587
- Validation2.toMaybe = (data) => (0, Validation2.isPassed)(data) ? Maybe.some(data.value) : Maybe.none();
588
- Validation2.fromResult = (data) => data.kind === "Ok" ? (0, Validation2.passed)(data.value) : (0, Validation2.failed)(data.error);
658
+ Validation2.recover = (fallback) => (data) => is.passed(data) ? data : fallback(data.errors);
659
+ Validation2.recoverUnless = (isBlocked, fallback) => (data) => is.failed(data) && !data.errors.some(isBlocked) ? fallback() : data;
660
+ let to;
661
+ ((to2) => {
662
+ to2.Result = (data) => is.passed(data) ? Result.make.ok(data.value) : Result.make.err(data.errors);
663
+ to2.Maybe = (data) => is.passed(data) ? Maybe.make.some(data.value) : Maybe.make.none();
664
+ })(to = Validation2.to || (Validation2.to = {}));
589
665
  Validation2.product = (first, second) => {
590
- if ((0, Validation2.isPassed)(first)) {
591
- return (0, Validation2.isPassed)(second) ? (0, Validation2.passed)([first.value, second.value]) : (0, Validation2.failedAll)(second.errors);
666
+ if (is.passed(first)) {
667
+ return is.passed(second) ? make.passed([first.value, second.value]) : make.failedAll(second.errors);
592
668
  }
593
- return (0, Validation2.isPassed)(second) ? (0, Validation2.failedAll)(first.errors) : (0, Validation2.failedAll)([...first.errors, ...second.errors]);
669
+ return is.passed(second) ? make.failedAll(first.errors) : make.failedAll([...first.errors, ...second.errors]);
594
670
  };
595
671
  Validation2.productAll = (data) => {
596
672
  const values = [];
597
673
  const errors = [];
598
674
  for (const v of data) {
599
- if ((0, Validation2.isPassed)(v)) {
675
+ if (is.passed(v)) {
600
676
  values.push(v.value);
601
677
  } else {
602
678
  errors.push(...v.errors);
603
679
  }
604
680
  }
605
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
681
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(values);
606
682
  };
607
683
  Validation2.struct = (fields) => {
608
684
  const record = {};
@@ -610,14 +686,14 @@ var Validation;
610
686
  for (const key in fields) {
611
687
  if (Object.hasOwn(fields, key)) {
612
688
  const val = fields[key];
613
- if ((0, Validation2.isPassed)(val)) {
689
+ if (is.passed(val)) {
614
690
  record[key] = val.value;
615
691
  } else {
616
692
  errors.push(...val.errors);
617
693
  }
618
694
  }
619
695
  }
620
- return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
696
+ return isNonEmptyArr(errors) ? make.failedAll(errors) : make.passed(record);
621
697
  };
622
698
  })(Validation || (Validation = {}));
623
699
 
@@ -630,11 +706,11 @@ var ArrMaybe;
630
706
  for (let i = 0; i < n; i++) {
631
707
  const mapped = f(data[i]);
632
708
  if (mapped.kind === "None") {
633
- return Maybe.none();
709
+ return Maybe.make.none();
634
710
  }
635
711
  result[i] = mapped.value;
636
712
  }
637
- return Maybe.some(result);
713
+ return Maybe.make.some(result);
638
714
  };
639
715
  ArrMaybe2.sequence = (data) => (0, ArrMaybe2.traverse)((a) => a)(data);
640
716
  })(ArrMaybe || (ArrMaybe = {}));
@@ -650,61 +726,69 @@ var ArrResult;
650
726
  }
651
727
  result[i] = mapped.value;
652
728
  }
653
- return Result.ok(result);
729
+ return Result.make.ok(result);
654
730
  };
655
731
  ArrResult2.sequence = (data) => (0, ArrResult2.traverse)((a) => a)(data);
656
732
  })(ArrResult || (ArrResult = {}));
657
733
  var ArrTaskResult;
658
734
  ((ArrTaskResult2) => {
659
- ArrTaskResult2.traverse = (f) => (data) => Task.from(async () => {
735
+ ArrTaskResult2.traverse = (f) => (data) => Task.from.Promise(async () => {
660
736
  const result = [];
661
737
  for (const a of data) {
662
- const r = await Deferred.toPromise(f(a)());
663
- if (Result.isErr(r)) {
738
+ const r = await Deferred.to.Promise(f(a)());
739
+ if (Result.is.err(r)) {
664
740
  return r;
665
741
  }
666
742
  result.push(r.value);
667
743
  }
668
- return Result.ok(result);
744
+ return Result.make.ok(result);
669
745
  });
670
746
  ArrTaskResult2.sequence = (data) => (0, ArrTaskResult2.traverse)((a) => a)(data);
671
747
  })(ArrTaskResult || (ArrTaskResult = {}));
672
748
  var ArrTask;
673
749
  ((ArrTask2) => {
674
- ArrTask2.traverse = (f) => (data) => Task.from(() => Promise.all(data.map((a) => Deferred.toPromise(f(a)()))));
750
+ ArrTask2.traverse = (f) => (data) => Task.from.Promise(() => Promise.all(data.map((a) => Deferred.to.Promise(f(a)()))));
675
751
  ArrTask2.sequence = (data) => (0, ArrTask2.traverse)((a) => a)(data);
676
752
  ArrTask2.Result = ArrTaskResult;
677
753
  })(ArrTask || (ArrTask = {}));
678
754
  var ArrNonEmpty;
679
755
  ((ArrNonEmpty2) => {
680
756
  ArrNonEmpty2.singleton = (value) => [value];
681
- ArrNonEmpty2.fromArray = (data) => isNonEmptyArr(data) ? Maybe.some(data) : Maybe.none();
757
+ let from;
758
+ ((from2) => {
759
+ from2.Array = (data) => isNonEmptyArr(data) ? Maybe.make.some(data) : Maybe.make.none();
760
+ })(from = ArrNonEmpty2.from || (ArrNonEmpty2.from = {}));
682
761
  ArrNonEmpty2.head = (data) => data[0];
683
762
  ArrNonEmpty2.last = (data) => data[data.length - 1];
684
763
  ArrNonEmpty2.tail = (data) => data.slice(1);
685
764
  ArrNonEmpty2.reduce = (f) => (data) => data.reduce(f);
765
+ ArrNonEmpty2.map = (f) => (data) => Arr.map(f)(data);
766
+ ArrNonEmpty2.mapWithIndex = (f) => (data) => Arr.mapWithIndex(f)(data);
767
+ ArrNonEmpty2.intersperse = (sep) => (data) => Arr.intersperse(sep)(data);
768
+ ArrNonEmpty2.concat = (other) => (data) => Arr.concat(other)(data);
769
+ ArrNonEmpty2.reverse = (data) => Arr.reverse(data);
686
770
  })(ArrNonEmpty || (ArrNonEmpty = {}));
687
771
  var Arr;
688
772
  ((Arr2) => {
689
- Arr2.head = (data) => data.length > 0 ? Maybe.some(data[0]) : Maybe.none();
690
- Arr2.last = (data) => data.length > 0 ? Maybe.some(data[data.length - 1]) : Maybe.none();
691
- Arr2.tail = (data) => data.length > 0 ? Maybe.some(data.slice(1)) : Maybe.none();
692
- Arr2.init = (data) => data.length > 0 ? Maybe.some(data.slice(0, -1)) : Maybe.none();
773
+ Arr2.head = (data) => data.length > 0 ? Maybe.make.some(data[0]) : Maybe.make.none();
774
+ Arr2.last = (data) => data.length > 0 ? Maybe.make.some(data[data.length - 1]) : Maybe.make.none();
775
+ Arr2.tail = (data) => data.length > 0 ? Maybe.make.some(data.slice(1)) : Maybe.make.none();
776
+ Arr2.init = (data) => data.length > 0 ? Maybe.make.some(data.slice(0, -1)) : Maybe.make.none();
693
777
  Arr2.findFirst = (predicate) => (data) => {
694
778
  const idx = data.findIndex(predicate);
695
- return idx !== -1 ? Maybe.some(data[idx]) : Maybe.none();
779
+ return idx !== -1 ? Maybe.make.some(data[idx]) : Maybe.make.none();
696
780
  };
697
781
  Arr2.findLast = (predicate) => (data) => {
698
782
  for (let i = data.length - 1; i >= 0; i--) {
699
783
  if (predicate(data[i])) {
700
- return Maybe.some(data[i]);
784
+ return Maybe.make.some(data[i]);
701
785
  }
702
786
  }
703
- return Maybe.none();
787
+ return Maybe.make.none();
704
788
  };
705
789
  Arr2.findIndex = (predicate) => (data) => {
706
790
  const idx = data.findIndex(predicate);
707
- return idx !== -1 ? Maybe.some(idx) : Maybe.none();
791
+ return idx !== -1 ? Maybe.make.some(idx) : Maybe.make.none();
708
792
  };
709
793
  Arr2.map = (f) => (data) => {
710
794
  const n = data.length;
@@ -898,10 +982,29 @@ var Arr;
898
982
  return result;
899
983
  };
900
984
  Arr2.reduce = (initial, f) => (data) => data.reduce(f, initial);
901
- Arr2.Maybe = ArrMaybe;
902
- Arr2.Result = ArrResult;
903
- Arr2.Task = ArrTask;
904
- Arr2.isNonEmpty = (data) => isNonEmptyArr(data);
985
+ const _traverseTask = Object.assign((f) => ArrTask.traverse(f), {
986
+ Result: ArrTaskResult.traverse
987
+ });
988
+ const _sequenceTask = Object.assign((data) => ArrTask.sequence(data), {
989
+ Result: ArrTaskResult.sequence
990
+ });
991
+ let traverse;
992
+ ((traverse2) => {
993
+ traverse2.Maybe = ArrMaybe.traverse;
994
+ traverse2.Result = ArrResult.traverse;
995
+ traverse2.Task = _traverseTask;
996
+ })(traverse = Arr2.traverse || (Arr2.traverse = {}));
997
+ let sequence;
998
+ ((sequence2) => {
999
+ sequence2.Maybe = ArrMaybe.sequence;
1000
+ sequence2.Result = ArrResult.sequence;
1001
+ sequence2.Task = _sequenceTask;
1002
+ })(sequence = Arr2.sequence || (Arr2.sequence = {}));
1003
+ let is;
1004
+ ((is2) => {
1005
+ is2.empty = (data) => data.length === 0;
1006
+ is2.nonEmpty = (data) => isNonEmptyArr(data);
1007
+ })(is = Arr2.is || (Arr2.is = {}));
905
1008
  Arr2.prepend = (value) => (data) => [value, ...data];
906
1009
  Arr2.append = (value) => (data) => [...data, value];
907
1010
  Arr2.size = (data) => data.length;
@@ -983,12 +1086,34 @@ var Arr;
983
1086
  })(Arr || (Arr = {}));
984
1087
 
985
1088
  // src/Data/Dict.ts
1089
+ var DictNonEmpty;
1090
+ ((DictNonEmpty2) => {
1091
+ DictNonEmpty2.singleton = (key, value) => new globalThis.Map([[key, value]]);
1092
+ let from;
1093
+ ((from2) => {
1094
+ from2.Map = (m) => m.size > 0 ? Maybe.make.some(m) : Maybe.make.none();
1095
+ })(from = DictNonEmpty2.from || (DictNonEmpty2.from = {}));
1096
+ DictNonEmpty2.keys = (m) => Dict.keys(m);
1097
+ DictNonEmpty2.values = (m) => Dict.values(m);
1098
+ DictNonEmpty2.entries = (m) => Dict.entries(m);
1099
+ DictNonEmpty2.reduce = (f) => (m) => (0, DictNonEmpty2.values)(m).reduce(f);
1100
+ DictNonEmpty2.map = (f) => (m) => Dict.map(f)(m);
1101
+ DictNonEmpty2.mapWithKey = (f) => (m) => Dict.mapWithKey(f)(m);
1102
+ })(DictNonEmpty || (DictNonEmpty = {}));
986
1103
  var Dict;
987
1104
  ((Dict2) => {
1105
+ let is;
1106
+ ((is2) => {
1107
+ is2.empty = (m) => m.size === 0;
1108
+ is2.nonEmpty = (m) => m.size > 0;
1109
+ })(is = Dict2.is || (Dict2.is = {}));
988
1110
  Dict2.empty = () => new globalThis.Map();
989
1111
  Dict2.singleton = (key, value) => new globalThis.Map([[key, value]]);
990
- Dict2.fromEntries = (entries2) => new globalThis.Map(entries2);
991
- Dict2.fromRecord = (rec) => new globalThis.Map(Object.entries(rec));
1112
+ let from;
1113
+ ((from2) => {
1114
+ from2.entries = (entries3) => new globalThis.Map(entries3);
1115
+ from2.Record = (rec) => new globalThis.Map(Object.entries(rec));
1116
+ })(from = Dict2.from || (Dict2.from = {}));
992
1117
  Dict2.groupBy = (keyFn) => (items) => {
993
1118
  const result = new globalThis.Map();
994
1119
  for (const item of items) {
@@ -1003,9 +1128,8 @@ var Dict;
1003
1128
  return result;
1004
1129
  };
1005
1130
  Dict2.has = (key) => (m) => m.has(key);
1006
- Dict2.lookup = (key) => (m) => m.has(key) ? Maybe.some(m.get(key)) : Maybe.none();
1131
+ Dict2.lookup = (key) => (m) => m.has(key) ? Maybe.make.some(m.get(key)) : Maybe.make.none();
1007
1132
  Dict2.size = (m) => m.size;
1008
- Dict2.isEmpty = (m) => m.size === 0;
1009
1133
  Dict2.keys = (m) => [...m.keys()];
1010
1134
  Dict2.values = (m) => [...m.values()];
1011
1135
  Dict2.entries = (m) => [...m.entries()];
@@ -1117,7 +1241,11 @@ var Dict;
1117
1241
  }
1118
1242
  return acc;
1119
1243
  };
1120
- Dict2.toRecord = (m) => Object.fromEntries(m);
1244
+ let to;
1245
+ ((to2) => {
1246
+ to2.Record = (m) => Object.fromEntries(m);
1247
+ })(to = Dict2.to || (Dict2.to = {}));
1248
+ Dict2.NonEmpty = DictNonEmpty;
1121
1249
  })(Dict || (Dict = {}));
1122
1250
 
1123
1251
  // src/Data/Num.ts
@@ -1139,21 +1267,21 @@ var Num;
1139
1267
  Num2.inRange = (start, end) => (n) => n >= start && n < end;
1140
1268
  Num2.parse = (s) => {
1141
1269
  if (s.trim() === "") {
1142
- return Maybe.none();
1270
+ return Maybe.make.none();
1143
1271
  }
1144
1272
  const n = Number(s);
1145
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
1273
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
1146
1274
  };
1147
1275
  Num2.add = (b) => (a) => a + b;
1148
1276
  Num2.subtract = (b) => (a) => a - b;
1149
1277
  Num2.multiply = (b) => (a) => a * b;
1150
- Num2.divide = (b) => (a) => b === 0 ? Maybe.none() : Maybe.some(a / b);
1278
+ Num2.divide = (b) => (a) => b === 0 ? Maybe.make.none() : Maybe.make.some(a / b);
1151
1279
  Num2.abs = (n) => Math.abs(n);
1152
1280
  Num2.negate = (n) => -n;
1153
1281
  Num2.round = (n) => Math.round(n);
1154
1282
  Num2.floor = (n) => Math.floor(n);
1155
1283
  Num2.ceil = (n) => Math.ceil(n);
1156
- Num2.remainder = (divisor) => (n) => divisor === 0 ? Maybe.none() : Maybe.some(n % divisor);
1284
+ Num2.remainder = (divisor) => (n) => divisor === 0 ? Maybe.make.none() : Maybe.make.some(n % divisor);
1157
1285
  Num2.sum = (ns) => {
1158
1286
  let result = 0;
1159
1287
  for (let i = 0; i < ns.length; i++) {
@@ -1161,10 +1289,10 @@ var Num;
1161
1289
  }
1162
1290
  return result;
1163
1291
  };
1164
- Num2.mean = (ns) => ns.length === 0 ? Maybe.none() : Maybe.some((0, Num2.sum)(ns) / ns.length);
1292
+ Num2.mean = (ns) => ns.length === 0 ? Maybe.make.none() : Maybe.make.some((0, Num2.sum)(ns) / ns.length);
1165
1293
  Num2.min = (ns) => {
1166
1294
  if (ns.length === 0) {
1167
- return Maybe.none();
1295
+ return Maybe.make.none();
1168
1296
  }
1169
1297
  let [result] = ns;
1170
1298
  for (let i = 1; i < ns.length; i++) {
@@ -1172,11 +1300,11 @@ var Num;
1172
1300
  result = ns[i];
1173
1301
  }
1174
1302
  }
1175
- return Maybe.some(result);
1303
+ return Maybe.make.some(result);
1176
1304
  };
1177
1305
  Num2.max = (ns) => {
1178
1306
  if (ns.length === 0) {
1179
- return Maybe.none();
1307
+ return Maybe.make.none();
1180
1308
  }
1181
1309
  let [result] = ns;
1182
1310
  for (let i = 1; i < ns.length; i++) {
@@ -1184,7 +1312,7 @@ var Num;
1184
1312
  result = ns[i];
1185
1313
  }
1186
1314
  }
1187
- return Maybe.some(result);
1315
+ return Maybe.make.some(result);
1188
1316
  };
1189
1317
  })(Num || (Num = {}));
1190
1318
 
@@ -1227,32 +1355,43 @@ var RecResult;
1227
1355
  var RecNonEmpty;
1228
1356
  ((RecNonEmpty2) => {
1229
1357
  RecNonEmpty2.singleton = (key, value) => ({ [key]: value });
1230
- RecNonEmpty2.fromRecord = (data) => _isNonEmpty(data) ? Maybe.some(data) : Maybe.none();
1231
- RecNonEmpty2.keys = (data) => Object.keys(data);
1232
- RecNonEmpty2.values = (data) => Object.values(data);
1233
- RecNonEmpty2.entries = (data) => Object.entries(data);
1234
- RecNonEmpty2.reduce = (f) => (data) => {
1235
- const recordVals = Object.values(data);
1236
- return recordVals.reduce(f);
1237
- };
1358
+ let from;
1359
+ ((from2) => {
1360
+ from2.Record = (data) => _isNonEmpty(data) ? Maybe.make.some(data) : Maybe.make.none();
1361
+ })(from = RecNonEmpty2.from || (RecNonEmpty2.from = {}));
1362
+ RecNonEmpty2.keys = (data) => Rec.keys(data);
1363
+ RecNonEmpty2.values = (data) => Rec.values(data);
1364
+ RecNonEmpty2.entries = (data) => Rec.entries(data);
1365
+ RecNonEmpty2.reduce = (f) => (data) => (0, RecNonEmpty2.values)(data).reduce(f);
1366
+ RecNonEmpty2.map = (f) => (data) => Rec.map(f)(data);
1367
+ RecNonEmpty2.mapWithKey = (f) => (data) => Rec.mapWithKey(f)(data);
1238
1368
  })(RecNonEmpty || (RecNonEmpty = {}));
1239
1369
  var Rec;
1240
1370
  ((Rec2) => {
1241
- Rec2.isNonEmpty = _isNonEmpty;
1242
- Rec2.map = (f) => ((data) => {
1371
+ let is;
1372
+ ((is2) => {
1373
+ is2.empty = (data) => Object.keys(data).length === 0;
1374
+ is2.nonEmpty = _isNonEmpty;
1375
+ })(is = Rec2.is || (Rec2.is = {}));
1376
+ Rec2.map = (f) => (data) => {
1243
1377
  const recordKeys = Object.keys(data);
1244
1378
  const recordValues = Object.values(data);
1245
1379
  const result = Object.create(Object.getPrototypeOf(data));
1246
1380
  for (let i = 0; i < recordKeys.length; i++) {
1247
- Object.defineProperty(result, recordKeys[i], {
1248
- value: f(recordValues[i]),
1249
- writable: true,
1250
- enumerable: true,
1251
- configurable: true
1252
- });
1381
+ const key = recordKeys[i];
1382
+ if (key === "__proto__") {
1383
+ Object.defineProperty(result, "__proto__", {
1384
+ value: f(recordValues[i]),
1385
+ writable: true,
1386
+ enumerable: true,
1387
+ configurable: true
1388
+ });
1389
+ } else {
1390
+ result[key] = f(recordValues[i]);
1391
+ }
1253
1392
  }
1254
1393
  return result;
1255
- });
1394
+ };
1256
1395
  Rec2.filterMap = (f) => (data) => {
1257
1396
  const recordKeys = Object.keys(data);
1258
1397
  const recordValues = Object.values(data);
@@ -1270,20 +1409,25 @@ var Rec;
1270
1409
  }
1271
1410
  return result;
1272
1411
  };
1273
- Rec2.mapWithKey = (f) => ((data) => {
1412
+ Rec2.mapWithKey = (f) => (data) => {
1274
1413
  const recordKeys = Object.keys(data);
1275
1414
  const recordValues = Object.values(data);
1276
1415
  const result = Object.create(Object.getPrototypeOf(data));
1277
1416
  for (let i = 0; i < recordKeys.length; i++) {
1278
- Object.defineProperty(result, recordKeys[i], {
1279
- value: f(recordKeys[i], recordValues[i]),
1280
- writable: true,
1281
- enumerable: true,
1282
- configurable: true
1283
- });
1417
+ const key = recordKeys[i];
1418
+ if (key === "__proto__") {
1419
+ Object.defineProperty(result, "__proto__", {
1420
+ value: f(key, recordValues[i]),
1421
+ writable: true,
1422
+ enumerable: true,
1423
+ configurable: true
1424
+ });
1425
+ } else {
1426
+ result[key] = f(key, recordValues[i]);
1427
+ }
1284
1428
  }
1285
1429
  return result;
1286
- });
1430
+ };
1287
1431
  Rec2.filter = (predicate) => (data) => {
1288
1432
  const recordKeys = Object.keys(data);
1289
1433
  const recordValues = Object.values(data);
@@ -1313,7 +1457,10 @@ var Rec;
1313
1457
  Rec2.keys = (data) => Object.keys(data);
1314
1458
  Rec2.values = (data) => Object.values(data);
1315
1459
  Rec2.entries = (data) => Object.entries(data);
1316
- Rec2.fromEntries = (data) => Object.fromEntries(data);
1460
+ let from;
1461
+ ((from2) => {
1462
+ from2.entries = (data) => Object.fromEntries(data);
1463
+ })(from = Rec2.from || (Rec2.from = {}));
1317
1464
  Rec2.groupBy = (keyFn) => (items) => {
1318
1465
  const result = {};
1319
1466
  for (const item of items) {
@@ -1354,7 +1501,6 @@ var Rec;
1354
1501
  ...data,
1355
1502
  ...other
1356
1503
  });
1357
- Rec2.isEmpty = (data) => Object.keys(data).length === 0;
1358
1504
  Rec2.size = (data) => Object.keys(data).length;
1359
1505
  Rec2.mapKeys = (f) => (data) => {
1360
1506
  const result = {};
@@ -1372,14 +1518,34 @@ var Rec;
1372
1518
  }
1373
1519
  return result;
1374
1520
  };
1375
- Rec2.Maybe = RecMaybe;
1376
- Rec2.Result = RecResult;
1521
+ let traverse;
1522
+ ((traverse2) => {
1523
+ traverse2.Maybe = RecMaybe.traverse;
1524
+ traverse2.Result = RecResult.traverse;
1525
+ })(traverse = Rec2.traverse || (Rec2.traverse = {}));
1526
+ let sequence;
1527
+ ((sequence2) => {
1528
+ sequence2.Maybe = RecMaybe.sequence;
1529
+ sequence2.Result = RecResult.sequence;
1530
+ })(sequence = Rec2.sequence || (Rec2.sequence = {}));
1377
1531
  Rec2.NonEmpty = RecNonEmpty;
1378
1532
  })(Rec || (Rec = {}));
1379
1533
 
1380
1534
  // src/Data/Str.ts
1535
+ var StrNonEmpty;
1536
+ ((StrNonEmpty2) => {
1537
+ let from;
1538
+ ((from2) => {
1539
+ from2.String = (s) => s.length > 0 ? Maybe.make.some(s) : Maybe.make.none();
1540
+ })(from = StrNonEmpty2.from || (StrNonEmpty2.from = {}));
1541
+ })(StrNonEmpty || (StrNonEmpty = {}));
1381
1542
  var Str;
1382
1543
  ((Str2) => {
1544
+ let is;
1545
+ ((is2) => {
1546
+ is2.empty = (s) => s.length === 0;
1547
+ is2.nonEmpty = (s) => s.length > 0;
1548
+ })(is = Str2.is || (Str2.is = {}));
1383
1549
  Str2.split = (separator) => (s) => s.split(separator);
1384
1550
  Str2.trim = (s) => s.trim();
1385
1551
  Str2.includes = (substring) => (s) => s.includes(substring);
@@ -1392,7 +1558,6 @@ var Str;
1392
1558
  Str2.capitalize = (s) => s.length === 0 ? "" : s.charAt(0).toUpperCase() + s.slice(1);
1393
1559
  Str2.lines = (s) => s.split(/\r?\n|\r/);
1394
1560
  Str2.words = (s) => s.trim().split(/\s+/).filter(Boolean);
1395
- Str2.isEmpty = (s) => s.length === 0;
1396
1561
  Str2.isBlank = (s) => s.trim().length === 0;
1397
1562
  Str2.length = (s) => s.length;
1398
1563
  Str2.slice = (start, end) => (s) => s.slice(start, end);
@@ -1411,7 +1576,7 @@ var Str;
1411
1576
  */
1412
1577
  int: (s) => {
1413
1578
  const n = parseInt(s, 10);
1414
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
1579
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
1415
1580
  },
1416
1581
  /**
1417
1582
  * Parses a string as a floating-point number. Returns `None` if the result is `NaN`.
@@ -1425,27 +1590,49 @@ var Str;
1425
1590
  */
1426
1591
  float: (s) => {
1427
1592
  const n = parseFloat(s);
1428
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
1593
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
1429
1594
  }
1430
1595
  };
1431
1596
  Str2.parseJson = (s) => {
1432
1597
  try {
1433
- return Result.ok(JSON.parse(s));
1598
+ return Result.make.ok(JSON.parse(s));
1434
1599
  } catch (error) {
1435
- return Result.err(error);
1600
+ return Result.make.err(error);
1436
1601
  }
1437
1602
  };
1603
+ Str2.NonEmpty = StrNonEmpty;
1438
1604
  })(Str || (Str = {}));
1439
1605
 
1440
1606
  // src/Data/Uniq.ts
1607
+ var UniqNonEmpty;
1608
+ ((UniqNonEmpty2) => {
1609
+ UniqNonEmpty2.singleton = (item) => new globalThis.Set([item]);
1610
+ let from;
1611
+ ((from2) => {
1612
+ from2.Set = (s) => s.size > 0 ? Maybe.make.some(s) : Maybe.make.none();
1613
+ })(from = UniqNonEmpty2.from || (UniqNonEmpty2.from = {}));
1614
+ UniqNonEmpty2.reduce = (f) => (s) => to.Array(s).reduce(f);
1615
+ UniqNonEmpty2.map = (f) => (s) => Uniq.map(f)(s);
1616
+ let to;
1617
+ ((to2) => {
1618
+ to2.Array = (s) => Uniq.to.Array(s);
1619
+ })(to = UniqNonEmpty2.to || (UniqNonEmpty2.to = {}));
1620
+ })(UniqNonEmpty || (UniqNonEmpty = {}));
1441
1621
  var Uniq;
1442
1622
  ((Uniq2) => {
1623
+ let is;
1624
+ ((is2) => {
1625
+ is2.empty = (s) => s.size === 0;
1626
+ is2.nonEmpty = (s) => s.size > 0;
1627
+ })(is = Uniq2.is || (Uniq2.is = {}));
1443
1628
  Uniq2.empty = () => new globalThis.Set();
1444
1629
  Uniq2.singleton = (item) => new globalThis.Set([item]);
1445
- Uniq2.fromArray = (arr) => new globalThis.Set(arr);
1630
+ let from;
1631
+ ((from2) => {
1632
+ from2.Array = (arr) => new globalThis.Set(arr);
1633
+ })(from = Uniq2.from || (Uniq2.from = {}));
1446
1634
  Uniq2.has = (item) => (s) => s.has(item);
1447
1635
  Uniq2.size = (s) => s.size;
1448
- Uniq2.isEmpty = (s) => s.size === 0;
1449
1636
  Uniq2.isSubsetOf = (other) => (s) => {
1450
1637
  const set = s;
1451
1638
  if (typeof set.isSubsetOf === "function") {
@@ -1534,7 +1721,11 @@ var Uniq;
1534
1721
  }
1535
1722
  return acc;
1536
1723
  };
1537
- Uniq2.toArray = (s) => [...s];
1724
+ let to;
1725
+ ((to2) => {
1726
+ to2.Array = (s) => [...s];
1727
+ })(to = Uniq2.to || (Uniq2.to = {}));
1728
+ Uniq2.NonEmpty = UniqNonEmpty;
1538
1729
  })(Uniq || (Uniq = {}));
1539
1730
  // Annotate the CommonJS export names for ESM import in node:
1540
1731
  0 && (module.exports = {