@nlozgachev/pipelined 0.42.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/core.js CHANGED
@@ -39,7 +39,7 @@ __export(Core_exports, {
39
39
  State: () => State,
40
40
  Task: () => Task,
41
41
  TaskMaybe: () => TaskMaybe,
42
- TaskResult: () => TaskResult3,
42
+ TaskResult: () => TaskResult,
43
43
  TaskValidation: () => TaskValidation,
44
44
  These: () => These,
45
45
  Tuple: () => Tuple,
@@ -1649,6 +1649,162 @@ var State;
1649
1649
  )(data);
1650
1650
  })(State || (State = {}));
1651
1651
 
1652
+ // src/Core/TaskMaybe.ts
1653
+ var TaskMaybe;
1654
+ ((TaskMaybe2) => {
1655
+ TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
1656
+ TaskMaybe2.none = () => Task.resolve(Maybe.none());
1657
+ TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
1658
+ TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
1659
+ TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
1660
+ TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
1661
+ TaskMaybe2.tryCatch = (f) => Task.from((signal) => Promise.resolve(f(signal)).then(Maybe.some).catch(() => Maybe.none()));
1662
+ TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
1663
+ TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
1664
+ TaskMaybe2.ap = (arg) => (data) => Task.from(
1665
+ (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1666
+ ([of_, oa]) => Maybe.ap(oa)(of_)
1667
+ )
1668
+ );
1669
+ TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
1670
+ TaskMaybe2.match = (cases) => (data) => Task.map(Maybe.match(cases))(data);
1671
+ TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
1672
+ TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
1673
+ TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
1674
+ TaskMaybe2.toResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
1675
+ TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
1676
+ TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
1677
+ (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
1678
+ )(data);
1679
+ TaskMaybe2.recover = (fallback) => (data) => Task.chain((maybe) => Maybe.isNone(maybe) ? fallback() : Task.resolve(maybe))(data);
1680
+ TaskMaybe2.struct = (fields) => Task.from((signal) => {
1681
+ const keys = Object.keys(fields);
1682
+ const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1683
+ return Promise.all(promises).then((results) => {
1684
+ const record = {};
1685
+ for (let i = 0; i < keys.length; i++) {
1686
+ const res = results[i];
1687
+ if (Maybe.isNone(res)) {
1688
+ return res;
1689
+ }
1690
+ record[keys[i]] = res.value;
1691
+ }
1692
+ return Maybe.some(record);
1693
+ });
1694
+ });
1695
+ })(TaskMaybe || (TaskMaybe = {}));
1696
+
1697
+ // src/Core/TaskResult.ts
1698
+ var TaskResult;
1699
+ ((TaskResult2) => {
1700
+ TaskResult2.ok = (value) => Task.resolve(Result.ok(value));
1701
+ TaskResult2.err = (error) => Task.resolve(Result.err(error));
1702
+ TaskResult2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
1703
+ TaskResult2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
1704
+ TaskResult2.fromResult = (result) => Task.resolve(result);
1705
+ TaskResult2.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
1706
+ TaskResult2.tryCatch = (f, onError) => Task.from((signal) => Promise.resolve(f(signal)).then(Result.ok).catch((error) => Result.err(onError(error))));
1707
+ TaskResult2.map = (f) => (data) => Task.map(Result.map(f))(data);
1708
+ TaskResult2.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
1709
+ TaskResult2.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
1710
+ data
1711
+ );
1712
+ TaskResult2.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
1713
+ TaskResult2.match = (cases) => (data) => Task.map(Result.match(cases))(data);
1714
+ TaskResult2.recover = (fallback) => (data) => Task.chain(
1715
+ (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
1716
+ )(data);
1717
+ TaskResult2.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
1718
+ TaskResult2.tap = (f) => (data) => Task.map(Result.tap(f))(data);
1719
+ TaskResult2.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
1720
+ TaskResult2.ap = (arg) => (data) => Task.from(
1721
+ (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1722
+ ([of_, oa]) => Result.ap(oa)(of_)
1723
+ )
1724
+ );
1725
+ TaskResult2.run = (signal) => (task) => task(signal);
1726
+ TaskResult2.bindTo = (key) => (data) => (0, TaskResult2.map)((a) => ({ [key]: a }))(data);
1727
+ TaskResult2.bind = (key, f) => (data) => (0, TaskResult2.chain)(
1728
+ (a) => (0, TaskResult2.map)((b) => ({ ...a, [key]: b }))(f(a))
1729
+ )(data);
1730
+ TaskResult2.struct = (fields) => Task.from((signal) => {
1731
+ const keys = Object.keys(fields);
1732
+ const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1733
+ return Promise.all(promises).then((results) => {
1734
+ const record = {};
1735
+ for (let i = 0; i < keys.length; i++) {
1736
+ const res = results[i];
1737
+ if (Result.isErr(res)) {
1738
+ return res;
1739
+ }
1740
+ record[keys[i]] = res.value;
1741
+ }
1742
+ return Result.ok(record);
1743
+ });
1744
+ });
1745
+ })(TaskResult || (TaskResult = {}));
1746
+
1747
+ // src/internal/InternalTypes.ts
1748
+ var isNonEmptyArr = (list) => list.length > 0;
1749
+
1750
+ // src/Core/TaskValidation.ts
1751
+ var TaskValidation;
1752
+ ((TaskValidation2) => {
1753
+ TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
1754
+ TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
1755
+ TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
1756
+ TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
1757
+ TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
1758
+ TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
1759
+ TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
1760
+ TaskValidation2.tryCatch = (f, onError) => Task.from(
1761
+ (signal) => Promise.resolve(f(signal)).then(Validation.passed).catch((error) => Validation.failed(onError(error)))
1762
+ );
1763
+ TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
1764
+ TaskValidation2.ap = (arg) => (data) => Task.from(
1765
+ (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1766
+ ([vf, va]) => Validation.ap(va)(vf)
1767
+ )
1768
+ );
1769
+ TaskValidation2.fold = (onFailed, onPassed) => (data) => Task.map(Validation.fold(onFailed, onPassed))(data);
1770
+ TaskValidation2.match = (cases) => (data) => Task.map(Validation.match(cases))(data);
1771
+ TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
1772
+ TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
1773
+ TaskValidation2.recover = (fallback) => (data) => Task.chain(
1774
+ (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1775
+ )(data);
1776
+ TaskValidation2.product = (first, second) => Task.from(
1777
+ (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
1778
+ ([va, vb]) => Validation.product(va, vb)
1779
+ )
1780
+ );
1781
+ TaskValidation2.productAll = (data) => Task.from(
1782
+ (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then((results) => {
1783
+ const [first, ...rest] = results;
1784
+ return Validation.productAll([first, ...rest]);
1785
+ })
1786
+ );
1787
+ TaskValidation2.mapError = (f) => (data) => Task.map(Validation.mapError(f))(data);
1788
+ TaskValidation2.tapError = (f) => (data) => Task.map(Validation.tapError(f))(data);
1789
+ TaskValidation2.struct = (fields) => Task.from((signal) => {
1790
+ const keys = Object.keys(fields);
1791
+ const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1792
+ return Promise.all(promises).then((results) => {
1793
+ const record = {};
1794
+ const errors = [];
1795
+ for (let i = 0; i < keys.length; i++) {
1796
+ const res = results[i];
1797
+ if (Validation.isPassed(res)) {
1798
+ record[keys[i]] = res.value;
1799
+ } else {
1800
+ errors.push(...res.errors);
1801
+ }
1802
+ }
1803
+ return isNonEmptyArr(errors) ? Validation.failedAll(errors) : Validation.passed(record);
1804
+ });
1805
+ });
1806
+ })(TaskValidation || (TaskValidation = {}));
1807
+
1652
1808
  // src/Core/Task.ts
1653
1809
  var toPromise = (task, signal) => Deferred.toPromise(task(signal));
1654
1810
  var getMs2 = (duration) => Duration.toMilliseconds(duration);
@@ -1805,14 +1961,16 @@ var Task;
1805
1961
  Task2.timeout = (duration, onTimeout) => (task) => (0, Task2.from)((outerSignal) => {
1806
1962
  const controller = new AbortController();
1807
1963
  let timerId;
1808
- function cleanUp() {
1809
- clearTimeout(timerId);
1810
- outerSignal?.removeEventListener("abort", onOuterAbort);
1811
- }
1812
- function onOuterAbort() {
1964
+ let cleanUp = () => {
1965
+ };
1966
+ const onOuterAbort = () => {
1813
1967
  cleanUp();
1814
1968
  controller.abort();
1815
- }
1969
+ };
1970
+ cleanUp = () => {
1971
+ clearTimeout(timerId);
1972
+ outerSignal?.removeEventListener("abort", onOuterAbort);
1973
+ };
1816
1974
  if (outerSignal) {
1817
1975
  if (outerSignal.aborted) {
1818
1976
  controller.abort();
@@ -1857,123 +2015,11 @@ var Task;
1857
2015
  Task2.bind = (key, f) => (data) => (0, Task2.chain)(
1858
2016
  (a) => (0, Task2.map)((b) => ({ ...a, [key]: b }))(f(a))
1859
2017
  )(data);
2018
+ Task2.Maybe = TaskMaybe;
2019
+ Task2.Result = TaskResult;
2020
+ Task2.Validation = TaskValidation;
1860
2021
  })(Task || (Task = {}));
1861
2022
 
1862
- // src/Core/TaskMaybe.ts
1863
- var TaskMaybe;
1864
- ((TaskMaybe2) => {
1865
- TaskMaybe2.some = (value) => Task.resolve(Maybe.some(value));
1866
- TaskMaybe2.none = () => Task.resolve(Maybe.none());
1867
- TaskMaybe2.fromMaybe = (option) => Task.resolve(option);
1868
- TaskMaybe2.fromNullable = (value) => Task.resolve(Maybe.fromNullable(value));
1869
- TaskMaybe2.fromResult = (result) => Task.resolve(Result.toMaybe(result));
1870
- TaskMaybe2.fromTask = (task) => Task.map(Maybe.some)(task);
1871
- TaskMaybe2.tryCatch = (f) => Task.from((signal) => f(signal).then(Maybe.some).catch(() => Maybe.none()));
1872
- TaskMaybe2.map = (f) => (data) => Task.map(Maybe.map(f))(data);
1873
- TaskMaybe2.chain = (f) => (data) => Task.chain((option) => Maybe.isSome(option) ? f(option.value) : Task.resolve(Maybe.none()))(data);
1874
- TaskMaybe2.ap = (arg) => (data) => Task.from(
1875
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1876
- ([of_, oa]) => Maybe.ap(oa)(of_)
1877
- )
1878
- );
1879
- TaskMaybe2.fold = (onNone, onSome) => (data) => Task.map(Maybe.fold(onNone, onSome))(data);
1880
- TaskMaybe2.match = (cases) => (data) => Task.map(Maybe.match(cases))(data);
1881
- TaskMaybe2.getOrElse = (defaultValue) => (data) => Task.map(Maybe.getOrElse(defaultValue))(data);
1882
- TaskMaybe2.tap = (f) => (data) => Task.map(Maybe.tap(f))(data);
1883
- TaskMaybe2.filter = (predicate) => (data) => Task.map(Maybe.filter(predicate))(data);
1884
- TaskMaybe2.toTaskResult = (onNone) => (data) => Task.map(Maybe.toResult(onNone))(data);
1885
- TaskMaybe2.bindTo = (key) => (data) => (0, TaskMaybe2.map)((a) => ({ [key]: a }))(data);
1886
- TaskMaybe2.bind = (key, f) => (data) => (0, TaskMaybe2.chain)(
1887
- (a) => (0, TaskMaybe2.map)((b) => ({ ...a, [key]: b }))(f(a))
1888
- )(data);
1889
- })(TaskMaybe || (TaskMaybe = {}));
1890
-
1891
- // src/Core/TaskResult.ts
1892
- var TaskResult3;
1893
- ((TaskResult4) => {
1894
- TaskResult4.ok = (value) => Task.resolve(Result.ok(value));
1895
- TaskResult4.err = (error) => Task.resolve(Result.err(error));
1896
- TaskResult4.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Result.err(onNull()) : Result.ok(value));
1897
- TaskResult4.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Result.err(onNone()) : Result.ok(maybe.value));
1898
- TaskResult4.fromResult = (result) => Task.resolve(result);
1899
- TaskResult4.fromThrowable = (f, onError) => (...args) => Task.from(() => f(...args).then(Result.ok).catch((error) => Result.err(onError(error))));
1900
- TaskResult4.tryCatch = (f, onError) => Task.from((signal) => f(signal).then(Result.ok).catch((error) => Result.err(onError(error))));
1901
- TaskResult4.map = (f) => (data) => Task.map(Result.map(f))(data);
1902
- TaskResult4.mapError = (f) => (data) => Task.map(Result.mapError(f))(data);
1903
- TaskResult4.chain = (f) => (data) => Task.chain((result) => Result.isOk(result) ? f(result.value) : Task.resolve(Result.err(result.error)))(
1904
- data
1905
- );
1906
- TaskResult4.fold = (onErr, onOk) => (data) => Task.map(Result.fold(onErr, onOk))(data);
1907
- TaskResult4.match = (cases) => (data) => Task.map(Result.match(cases))(data);
1908
- TaskResult4.recover = (fallback) => (data) => Task.chain(
1909
- (result) => Result.isErr(result) ? fallback(result.error) : Task.resolve(result)
1910
- )(data);
1911
- TaskResult4.getOrElse = (defaultValue) => (data) => Task.map(Result.getOrElse(defaultValue))(data);
1912
- TaskResult4.tap = (f) => (data) => Task.map(Result.tap(f))(data);
1913
- TaskResult4.tapError = (f) => (data) => Task.map(Result.tapError(f))(data);
1914
- TaskResult4.ap = (arg) => (data) => Task.from(
1915
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1916
- ([of_, oa]) => Result.ap(oa)(of_)
1917
- )
1918
- );
1919
- TaskResult4.run = (signal) => (task) => task(signal);
1920
- TaskResult4.bindTo = (key) => (data) => (0, TaskResult4.map)((a) => ({ [key]: a }))(data);
1921
- TaskResult4.bind = (key, f) => (data) => (0, TaskResult4.chain)(
1922
- (a) => (0, TaskResult4.map)((b) => ({ ...a, [key]: b }))(f(a))
1923
- )(data);
1924
- TaskResult4.struct = (fields) => Task.from((signal) => {
1925
- const keys = Object.keys(fields);
1926
- const promises = keys.map((key) => Deferred.toPromise(fields[key](signal)));
1927
- return Promise.all(promises).then((results) => {
1928
- const record = {};
1929
- for (let i = 0; i < keys.length; i++) {
1930
- const res = results[i];
1931
- if (Result.isErr(res)) {
1932
- return res;
1933
- }
1934
- record[keys[i]] = res.value;
1935
- }
1936
- return Result.ok(record);
1937
- });
1938
- });
1939
- })(TaskResult3 || (TaskResult3 = {}));
1940
-
1941
- // src/Core/TaskValidation.ts
1942
- var TaskValidation;
1943
- ((TaskValidation2) => {
1944
- TaskValidation2.passed = (value) => Task.resolve(Validation.passed(value));
1945
- TaskValidation2.failed = (error) => Task.resolve(Validation.failed(error));
1946
- TaskValidation2.failedAll = (errors) => Task.resolve(Validation.failedAll(errors));
1947
- TaskValidation2.fromValidation = (validation) => Task.resolve(validation);
1948
- TaskValidation2.fromNullable = (onNull) => (value) => Task.resolve(value === null || value === void 0 ? Validation.failed(onNull()) : Validation.passed(value));
1949
- TaskValidation2.fromMaybe = (onNone) => (maybe) => Task.resolve(Maybe.isNone(maybe) ? Validation.failed(onNone()) : Validation.passed(maybe.value));
1950
- TaskValidation2.fromResult = (result) => Task.resolve(Validation.fromResult(result));
1951
- TaskValidation2.tryCatch = (f, onError) => Task.from((signal) => f(signal).then(Validation.passed).catch((error) => Validation.failed(onError(error))));
1952
- TaskValidation2.map = (f) => (data) => Task.map(Validation.map(f))(data);
1953
- TaskValidation2.ap = (arg) => (data) => Task.from(
1954
- (signal) => Promise.all([Deferred.toPromise(data(signal)), Deferred.toPromise(arg(signal))]).then(
1955
- ([vf, va]) => Validation.ap(va)(vf)
1956
- )
1957
- );
1958
- TaskValidation2.fold = (onFailed, onPassed) => (data) => Task.map(Validation.fold(onFailed, onPassed))(data);
1959
- TaskValidation2.match = (cases) => (data) => Task.map(Validation.match(cases))(data);
1960
- TaskValidation2.getOrElse = (defaultValue) => (data) => Task.map(Validation.getOrElse(defaultValue))(data);
1961
- TaskValidation2.tap = (f) => (data) => Task.map(Validation.tap(f))(data);
1962
- TaskValidation2.recover = (fallback) => (data) => Task.chain(
1963
- (validation) => Validation.isPassed(validation) ? Task.resolve(validation) : fallback(validation.errors)
1964
- )(data);
1965
- TaskValidation2.product = (first, second) => Task.from(
1966
- (signal) => Promise.all([Deferred.toPromise(first(signal)), Deferred.toPromise(second(signal))]).then(
1967
- ([va, vb]) => Validation.product(va, vb)
1968
- )
1969
- );
1970
- TaskValidation2.productAll = (data) => Task.from(
1971
- (signal) => Promise.all(data.map((t) => Deferred.toPromise(t(signal)))).then(
1972
- (results) => Validation.productAll(results)
1973
- )
1974
- );
1975
- })(TaskValidation || (TaskValidation = {}));
1976
-
1977
2023
  // src/Core/These.ts
1978
2024
  var These;
1979
2025
  ((These2) => {
@@ -2096,11 +2142,10 @@ var Validation;
2096
2142
  Validation2.map = (f) => (data) => (0, Validation2.isPassed)(data) ? (0, Validation2.passed)(f(data.value)) : data;
2097
2143
  Validation2.mapError = (f) => (data) => (0, Validation2.isFailed)(data) ? (0, Validation2.failedAll)(data.errors.map(f)) : data;
2098
2144
  Validation2.ap = (arg) => (data) => {
2099
- if ((0, Validation2.isPassed)(data) && (0, Validation2.isPassed)(arg)) {
2100
- return (0, Validation2.passed)(data.value(arg.value));
2145
+ if ((0, Validation2.isPassed)(data)) {
2146
+ return (0, Validation2.isPassed)(arg) ? (0, Validation2.passed)(data.value(arg.value)) : (0, Validation2.failedAll)(arg.errors);
2101
2147
  }
2102
- const errors = [...(0, Validation2.isFailed)(data) ? data.errors : [], ...(0, Validation2.isFailed)(arg) ? arg.errors : []];
2103
- return (0, Validation2.failedAll)(errors);
2148
+ return (0, Validation2.isPassed)(arg) ? (0, Validation2.failedAll)(data.errors) : (0, Validation2.failedAll)([...data.errors, ...arg.errors]);
2104
2149
  };
2105
2150
  Validation2.fold = (onFailed, onPassed) => (data) => (0, Validation2.isPassed)(data) ? onPassed(data.value) : onFailed(data.errors);
2106
2151
  Validation2.match = (cases) => (data) => (0, Validation2.isPassed)(data) ? cases.passed(data.value) : cases.failed(data.errors);
@@ -2123,11 +2168,10 @@ var Validation;
2123
2168
  Validation2.toMaybe = (data) => (0, Validation2.isPassed)(data) ? Maybe.some(data.value) : Maybe.none();
2124
2169
  Validation2.fromResult = (data) => data.kind === "Ok" ? (0, Validation2.passed)(data.value) : (0, Validation2.failed)(data.error);
2125
2170
  Validation2.product = (first, second) => {
2126
- if ((0, Validation2.isPassed)(first) && (0, Validation2.isPassed)(second)) {
2127
- return (0, Validation2.passed)([first.value, second.value]);
2171
+ if ((0, Validation2.isPassed)(first)) {
2172
+ return (0, Validation2.isPassed)(second) ? (0, Validation2.passed)([first.value, second.value]) : (0, Validation2.failedAll)(second.errors);
2128
2173
  }
2129
- const errors = [...(0, Validation2.isFailed)(first) ? first.errors : [], ...(0, Validation2.isFailed)(second) ? second.errors : []];
2130
- return (0, Validation2.failedAll)(errors);
2174
+ return (0, Validation2.isPassed)(second) ? (0, Validation2.failedAll)(first.errors) : (0, Validation2.failedAll)([...first.errors, ...second.errors]);
2131
2175
  };
2132
2176
  Validation2.productAll = (data) => {
2133
2177
  const values = [];
@@ -2139,7 +2183,7 @@ var Validation;
2139
2183
  errors.push(...v.errors);
2140
2184
  }
2141
2185
  }
2142
- return errors.length > 0 ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
2186
+ return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(values);
2143
2187
  };
2144
2188
  Validation2.struct = (fields) => {
2145
2189
  const record = {};
@@ -2154,7 +2198,7 @@ var Validation;
2154
2198
  }
2155
2199
  }
2156
2200
  }
2157
- return errors.length > 0 ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
2201
+ return isNonEmptyArr(errors) ? (0, Validation2.failedAll)(errors) : (0, Validation2.passed)(record);
2158
2202
  };
2159
2203
  })(Validation || (Validation = {}));
2160
2204
  // Annotate the CommonJS export names for ESM import in node:
package/dist/core.mjs CHANGED
@@ -23,8 +23,8 @@ import {
23
23
  These,
24
24
  Tuple,
25
25
  Validation
26
- } from "./chunk-OAP765G3.mjs";
27
- import "./chunk-GBB6LVLI.mjs";
26
+ } from "./chunk-ND476266.mjs";
27
+ import "./chunk-74JKKJ4R.mjs";
28
28
  export {
29
29
  Combinable,
30
30
  Deferred,
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.mjs';
2
- export { Combinable, Failed, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Passed, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Validation } from './core.mjs';
3
- export { D as Deferred, E as Equality, a as Err, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-BprUabHP.mjs';
4
- export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.mjs';
5
- export { B as Brand, D as Duration } from './Duration-BTeT9D-q.mjs';
6
- export { NonEmptyList, isNonEmptyList } from './types.mjs';
2
+ export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, These, TheseBoth, TheseFirst, TheseSecond, Tuple } from './core.mjs';
3
+ export { D as Deferred } from './InternalTypes-BL23H8Qr.mjs';
4
+ export { E as Equality, a as Err, F as Failed, M as Maybe, N as None, O as Ok, b as Ordering, P as Passed, R as Result, S as Some, T as Task, c as TaskMaybe, d as TaskResult, e as TaskValidation, V as Validation } from './Validation-Dz70wtcG.mjs';
5
+ export { Arr, Dict, NonEmptyRecord, Num, Rec, Str, Uniq } from './utils.mjs';
6
+ export { Brand, Duration } from './types.mjs';
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { and, compose, constFalse, constNull, constTrue, constUndefined, constVoid, constant, converge, curry, curry3, curry4, defaultTo, flip, flow, identity, juxt, memoize, memoizeWeak, not, on, once, or, pipe, tap, uncurry, uncurry3, uncurry4 } from './composition.js';
2
- export { Combinable, Failed, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Passed, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, TaskMaybe, TaskResult, TaskValidation, These, TheseBoth, TheseFirst, TheseSecond, Tuple, Validation } from './core.js';
3
- export { D as Deferred, E as Equality, a as Err, M as Maybe, N as None, O as Ok, b as Ordering, R as Result, S as Some, T as Task } from './Task-Dt3ZMen6.js';
4
- export { Arr, Dict, Num, Rec, Str, Uniq } from './utils.js';
5
- export { B as Brand, D as Duration } from './Duration-BTeT9D-q.js';
6
- export { NonEmptyList, isNonEmptyList } from './types.js';
2
+ export { Combinable, Failure, Lazy, Lens, Loading, Logged, NotAsked, Op, Optional, Predicate, Reader, Refinement, RemoteData, Resource, State, Success, These, TheseBoth, TheseFirst, TheseSecond, Tuple } from './core.js';
3
+ export { D as Deferred } from './InternalTypes-7o9-yrHq.js';
4
+ export { E as Equality, a as Err, F as Failed, M as Maybe, N as None, O as Ok, b as Ordering, P as Passed, R as Result, S as Some, T as Task, c as TaskMaybe, d as TaskResult, e as TaskValidation, V as Validation } from './Validation-DM2eh6wj.js';
5
+ export { Arr, Dict, NonEmptyRecord, Num, Rec, Str, Uniq } from './utils.js';
6
+ export { Brand, Duration } from './types.js';