@nlozgachev/pipelined 0.43.0 → 0.45.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;
@@ -901,7 +985,11 @@ var Arr;
901
985
  Arr2.Maybe = ArrMaybe;
902
986
  Arr2.Result = ArrResult;
903
987
  Arr2.Task = ArrTask;
904
- Arr2.isNonEmpty = (data) => isNonEmptyArr(data);
988
+ let is;
989
+ ((is2) => {
990
+ is2.empty = (data) => data.length === 0;
991
+ is2.nonEmpty = (data) => isNonEmptyArr(data);
992
+ })(is = Arr2.is || (Arr2.is = {}));
905
993
  Arr2.prepend = (value) => (data) => [value, ...data];
906
994
  Arr2.append = (value) => (data) => [...data, value];
907
995
  Arr2.size = (data) => data.length;
@@ -983,12 +1071,34 @@ var Arr;
983
1071
  })(Arr || (Arr = {}));
984
1072
 
985
1073
  // src/Data/Dict.ts
1074
+ var DictNonEmpty;
1075
+ ((DictNonEmpty2) => {
1076
+ DictNonEmpty2.singleton = (key, value) => new globalThis.Map([[key, value]]);
1077
+ let from;
1078
+ ((from2) => {
1079
+ from2.Map = (m) => m.size > 0 ? Maybe.make.some(m) : Maybe.make.none();
1080
+ })(from = DictNonEmpty2.from || (DictNonEmpty2.from = {}));
1081
+ DictNonEmpty2.keys = (m) => Dict.keys(m);
1082
+ DictNonEmpty2.values = (m) => Dict.values(m);
1083
+ DictNonEmpty2.entries = (m) => Dict.entries(m);
1084
+ DictNonEmpty2.reduce = (f) => (m) => (0, DictNonEmpty2.values)(m).reduce(f);
1085
+ DictNonEmpty2.map = (f) => (m) => Dict.map(f)(m);
1086
+ DictNonEmpty2.mapWithKey = (f) => (m) => Dict.mapWithKey(f)(m);
1087
+ })(DictNonEmpty || (DictNonEmpty = {}));
986
1088
  var Dict;
987
1089
  ((Dict2) => {
1090
+ let is;
1091
+ ((is2) => {
1092
+ is2.empty = (m) => m.size === 0;
1093
+ is2.nonEmpty = (m) => m.size > 0;
1094
+ })(is = Dict2.is || (Dict2.is = {}));
988
1095
  Dict2.empty = () => new globalThis.Map();
989
1096
  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));
1097
+ let from;
1098
+ ((from2) => {
1099
+ from2.entries = (entries3) => new globalThis.Map(entries3);
1100
+ from2.Record = (rec) => new globalThis.Map(Object.entries(rec));
1101
+ })(from = Dict2.from || (Dict2.from = {}));
992
1102
  Dict2.groupBy = (keyFn) => (items) => {
993
1103
  const result = new globalThis.Map();
994
1104
  for (const item of items) {
@@ -1003,9 +1113,8 @@ var Dict;
1003
1113
  return result;
1004
1114
  };
1005
1115
  Dict2.has = (key) => (m) => m.has(key);
1006
- Dict2.lookup = (key) => (m) => m.has(key) ? Maybe.some(m.get(key)) : Maybe.none();
1116
+ Dict2.lookup = (key) => (m) => m.has(key) ? Maybe.make.some(m.get(key)) : Maybe.make.none();
1007
1117
  Dict2.size = (m) => m.size;
1008
- Dict2.isEmpty = (m) => m.size === 0;
1009
1118
  Dict2.keys = (m) => [...m.keys()];
1010
1119
  Dict2.values = (m) => [...m.values()];
1011
1120
  Dict2.entries = (m) => [...m.entries()];
@@ -1117,7 +1226,11 @@ var Dict;
1117
1226
  }
1118
1227
  return acc;
1119
1228
  };
1120
- Dict2.toRecord = (m) => Object.fromEntries(m);
1229
+ let to;
1230
+ ((to2) => {
1231
+ to2.Record = (m) => Object.fromEntries(m);
1232
+ })(to = Dict2.to || (Dict2.to = {}));
1233
+ Dict2.NonEmpty = DictNonEmpty;
1121
1234
  })(Dict || (Dict = {}));
1122
1235
 
1123
1236
  // src/Data/Num.ts
@@ -1139,21 +1252,21 @@ var Num;
1139
1252
  Num2.inRange = (start, end) => (n) => n >= start && n < end;
1140
1253
  Num2.parse = (s) => {
1141
1254
  if (s.trim() === "") {
1142
- return Maybe.none();
1255
+ return Maybe.make.none();
1143
1256
  }
1144
1257
  const n = Number(s);
1145
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
1258
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
1146
1259
  };
1147
1260
  Num2.add = (b) => (a) => a + b;
1148
1261
  Num2.subtract = (b) => (a) => a - b;
1149
1262
  Num2.multiply = (b) => (a) => a * b;
1150
- Num2.divide = (b) => (a) => b === 0 ? Maybe.none() : Maybe.some(a / b);
1263
+ Num2.divide = (b) => (a) => b === 0 ? Maybe.make.none() : Maybe.make.some(a / b);
1151
1264
  Num2.abs = (n) => Math.abs(n);
1152
1265
  Num2.negate = (n) => -n;
1153
1266
  Num2.round = (n) => Math.round(n);
1154
1267
  Num2.floor = (n) => Math.floor(n);
1155
1268
  Num2.ceil = (n) => Math.ceil(n);
1156
- Num2.remainder = (divisor) => (n) => divisor === 0 ? Maybe.none() : Maybe.some(n % divisor);
1269
+ Num2.remainder = (divisor) => (n) => divisor === 0 ? Maybe.make.none() : Maybe.make.some(n % divisor);
1157
1270
  Num2.sum = (ns) => {
1158
1271
  let result = 0;
1159
1272
  for (let i = 0; i < ns.length; i++) {
@@ -1161,10 +1274,10 @@ var Num;
1161
1274
  }
1162
1275
  return result;
1163
1276
  };
1164
- Num2.mean = (ns) => ns.length === 0 ? Maybe.none() : Maybe.some((0, Num2.sum)(ns) / ns.length);
1277
+ Num2.mean = (ns) => ns.length === 0 ? Maybe.make.none() : Maybe.make.some((0, Num2.sum)(ns) / ns.length);
1165
1278
  Num2.min = (ns) => {
1166
1279
  if (ns.length === 0) {
1167
- return Maybe.none();
1280
+ return Maybe.make.none();
1168
1281
  }
1169
1282
  let [result] = ns;
1170
1283
  for (let i = 1; i < ns.length; i++) {
@@ -1172,11 +1285,11 @@ var Num;
1172
1285
  result = ns[i];
1173
1286
  }
1174
1287
  }
1175
- return Maybe.some(result);
1288
+ return Maybe.make.some(result);
1176
1289
  };
1177
1290
  Num2.max = (ns) => {
1178
1291
  if (ns.length === 0) {
1179
- return Maybe.none();
1292
+ return Maybe.make.none();
1180
1293
  }
1181
1294
  let [result] = ns;
1182
1295
  for (let i = 1; i < ns.length; i++) {
@@ -1184,7 +1297,7 @@ var Num;
1184
1297
  result = ns[i];
1185
1298
  }
1186
1299
  }
1187
- return Maybe.some(result);
1300
+ return Maybe.make.some(result);
1188
1301
  };
1189
1302
  })(Num || (Num = {}));
1190
1303
 
@@ -1227,32 +1340,43 @@ var RecResult;
1227
1340
  var RecNonEmpty;
1228
1341
  ((RecNonEmpty2) => {
1229
1342
  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
- };
1343
+ let from;
1344
+ ((from2) => {
1345
+ from2.Record = (data) => _isNonEmpty(data) ? Maybe.make.some(data) : Maybe.make.none();
1346
+ })(from = RecNonEmpty2.from || (RecNonEmpty2.from = {}));
1347
+ RecNonEmpty2.keys = (data) => Rec.keys(data);
1348
+ RecNonEmpty2.values = (data) => Rec.values(data);
1349
+ RecNonEmpty2.entries = (data) => Rec.entries(data);
1350
+ RecNonEmpty2.reduce = (f) => (data) => (0, RecNonEmpty2.values)(data).reduce(f);
1351
+ RecNonEmpty2.map = (f) => (data) => Rec.map(f)(data);
1352
+ RecNonEmpty2.mapWithKey = (f) => (data) => Rec.mapWithKey(f)(data);
1238
1353
  })(RecNonEmpty || (RecNonEmpty = {}));
1239
1354
  var Rec;
1240
1355
  ((Rec2) => {
1241
- Rec2.isNonEmpty = _isNonEmpty;
1242
- Rec2.map = (f) => ((data) => {
1356
+ let is;
1357
+ ((is2) => {
1358
+ is2.empty = (data) => Object.keys(data).length === 0;
1359
+ is2.nonEmpty = _isNonEmpty;
1360
+ })(is = Rec2.is || (Rec2.is = {}));
1361
+ Rec2.map = (f) => (data) => {
1243
1362
  const recordKeys = Object.keys(data);
1244
1363
  const recordValues = Object.values(data);
1245
1364
  const result = Object.create(Object.getPrototypeOf(data));
1246
1365
  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
- });
1366
+ const key = recordKeys[i];
1367
+ if (key === "__proto__") {
1368
+ Object.defineProperty(result, "__proto__", {
1369
+ value: f(recordValues[i]),
1370
+ writable: true,
1371
+ enumerable: true,
1372
+ configurable: true
1373
+ });
1374
+ } else {
1375
+ result[key] = f(recordValues[i]);
1376
+ }
1253
1377
  }
1254
1378
  return result;
1255
- });
1379
+ };
1256
1380
  Rec2.filterMap = (f) => (data) => {
1257
1381
  const recordKeys = Object.keys(data);
1258
1382
  const recordValues = Object.values(data);
@@ -1270,20 +1394,25 @@ var Rec;
1270
1394
  }
1271
1395
  return result;
1272
1396
  };
1273
- Rec2.mapWithKey = (f) => ((data) => {
1397
+ Rec2.mapWithKey = (f) => (data) => {
1274
1398
  const recordKeys = Object.keys(data);
1275
1399
  const recordValues = Object.values(data);
1276
1400
  const result = Object.create(Object.getPrototypeOf(data));
1277
1401
  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
- });
1402
+ const key = recordKeys[i];
1403
+ if (key === "__proto__") {
1404
+ Object.defineProperty(result, "__proto__", {
1405
+ value: f(key, recordValues[i]),
1406
+ writable: true,
1407
+ enumerable: true,
1408
+ configurable: true
1409
+ });
1410
+ } else {
1411
+ result[key] = f(key, recordValues[i]);
1412
+ }
1284
1413
  }
1285
1414
  return result;
1286
- });
1415
+ };
1287
1416
  Rec2.filter = (predicate) => (data) => {
1288
1417
  const recordKeys = Object.keys(data);
1289
1418
  const recordValues = Object.values(data);
@@ -1313,7 +1442,10 @@ var Rec;
1313
1442
  Rec2.keys = (data) => Object.keys(data);
1314
1443
  Rec2.values = (data) => Object.values(data);
1315
1444
  Rec2.entries = (data) => Object.entries(data);
1316
- Rec2.fromEntries = (data) => Object.fromEntries(data);
1445
+ let from;
1446
+ ((from2) => {
1447
+ from2.entries = (data) => Object.fromEntries(data);
1448
+ })(from = Rec2.from || (Rec2.from = {}));
1317
1449
  Rec2.groupBy = (keyFn) => (items) => {
1318
1450
  const result = {};
1319
1451
  for (const item of items) {
@@ -1354,7 +1486,6 @@ var Rec;
1354
1486
  ...data,
1355
1487
  ...other
1356
1488
  });
1357
- Rec2.isEmpty = (data) => Object.keys(data).length === 0;
1358
1489
  Rec2.size = (data) => Object.keys(data).length;
1359
1490
  Rec2.mapKeys = (f) => (data) => {
1360
1491
  const result = {};
@@ -1378,8 +1509,20 @@ var Rec;
1378
1509
  })(Rec || (Rec = {}));
1379
1510
 
1380
1511
  // src/Data/Str.ts
1512
+ var StrNonEmpty;
1513
+ ((StrNonEmpty2) => {
1514
+ let from;
1515
+ ((from2) => {
1516
+ from2.String = (s) => s.length > 0 ? Maybe.make.some(s) : Maybe.make.none();
1517
+ })(from = StrNonEmpty2.from || (StrNonEmpty2.from = {}));
1518
+ })(StrNonEmpty || (StrNonEmpty = {}));
1381
1519
  var Str;
1382
1520
  ((Str2) => {
1521
+ let is;
1522
+ ((is2) => {
1523
+ is2.empty = (s) => s.length === 0;
1524
+ is2.nonEmpty = (s) => s.length > 0;
1525
+ })(is = Str2.is || (Str2.is = {}));
1383
1526
  Str2.split = (separator) => (s) => s.split(separator);
1384
1527
  Str2.trim = (s) => s.trim();
1385
1528
  Str2.includes = (substring) => (s) => s.includes(substring);
@@ -1392,7 +1535,6 @@ var Str;
1392
1535
  Str2.capitalize = (s) => s.length === 0 ? "" : s.charAt(0).toUpperCase() + s.slice(1);
1393
1536
  Str2.lines = (s) => s.split(/\r?\n|\r/);
1394
1537
  Str2.words = (s) => s.trim().split(/\s+/).filter(Boolean);
1395
- Str2.isEmpty = (s) => s.length === 0;
1396
1538
  Str2.isBlank = (s) => s.trim().length === 0;
1397
1539
  Str2.length = (s) => s.length;
1398
1540
  Str2.slice = (start, end) => (s) => s.slice(start, end);
@@ -1411,7 +1553,7 @@ var Str;
1411
1553
  */
1412
1554
  int: (s) => {
1413
1555
  const n = parseInt(s, 10);
1414
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
1556
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
1415
1557
  },
1416
1558
  /**
1417
1559
  * Parses a string as a floating-point number. Returns `None` if the result is `NaN`.
@@ -1425,27 +1567,49 @@ var Str;
1425
1567
  */
1426
1568
  float: (s) => {
1427
1569
  const n = parseFloat(s);
1428
- return isNaN(n) ? Maybe.none() : Maybe.some(n);
1570
+ return isNaN(n) ? Maybe.make.none() : Maybe.make.some(n);
1429
1571
  }
1430
1572
  };
1431
1573
  Str2.parseJson = (s) => {
1432
1574
  try {
1433
- return Result.ok(JSON.parse(s));
1575
+ return Result.make.ok(JSON.parse(s));
1434
1576
  } catch (error) {
1435
- return Result.err(error);
1577
+ return Result.make.err(error);
1436
1578
  }
1437
1579
  };
1580
+ Str2.NonEmpty = StrNonEmpty;
1438
1581
  })(Str || (Str = {}));
1439
1582
 
1440
1583
  // src/Data/Uniq.ts
1584
+ var UniqNonEmpty;
1585
+ ((UniqNonEmpty2) => {
1586
+ UniqNonEmpty2.singleton = (item) => new globalThis.Set([item]);
1587
+ let from;
1588
+ ((from2) => {
1589
+ from2.Set = (s) => s.size > 0 ? Maybe.make.some(s) : Maybe.make.none();
1590
+ })(from = UniqNonEmpty2.from || (UniqNonEmpty2.from = {}));
1591
+ UniqNonEmpty2.reduce = (f) => (s) => to.Array(s).reduce(f);
1592
+ UniqNonEmpty2.map = (f) => (s) => Uniq.map(f)(s);
1593
+ let to;
1594
+ ((to2) => {
1595
+ to2.Array = (s) => Uniq.to.Array(s);
1596
+ })(to = UniqNonEmpty2.to || (UniqNonEmpty2.to = {}));
1597
+ })(UniqNonEmpty || (UniqNonEmpty = {}));
1441
1598
  var Uniq;
1442
1599
  ((Uniq2) => {
1600
+ let is;
1601
+ ((is2) => {
1602
+ is2.empty = (s) => s.size === 0;
1603
+ is2.nonEmpty = (s) => s.size > 0;
1604
+ })(is = Uniq2.is || (Uniq2.is = {}));
1443
1605
  Uniq2.empty = () => new globalThis.Set();
1444
1606
  Uniq2.singleton = (item) => new globalThis.Set([item]);
1445
- Uniq2.fromArray = (arr) => new globalThis.Set(arr);
1607
+ let from;
1608
+ ((from2) => {
1609
+ from2.Array = (arr) => new globalThis.Set(arr);
1610
+ })(from = Uniq2.from || (Uniq2.from = {}));
1446
1611
  Uniq2.has = (item) => (s) => s.has(item);
1447
1612
  Uniq2.size = (s) => s.size;
1448
- Uniq2.isEmpty = (s) => s.size === 0;
1449
1613
  Uniq2.isSubsetOf = (other) => (s) => {
1450
1614
  const set = s;
1451
1615
  if (typeof set.isSubsetOf === "function") {
@@ -1534,7 +1698,11 @@ var Uniq;
1534
1698
  }
1535
1699
  return acc;
1536
1700
  };
1537
- Uniq2.toArray = (s) => [...s];
1701
+ let to;
1702
+ ((to2) => {
1703
+ to2.Array = (s) => [...s];
1704
+ })(to = Uniq2.to || (Uniq2.to = {}));
1705
+ Uniq2.NonEmpty = UniqNonEmpty;
1538
1706
  })(Uniq || (Uniq = {}));
1539
1707
  // Annotate the CommonJS export names for ESM import in node:
1540
1708
  0 && (module.exports = {