@zambit/elevate-ts 0.1.2

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.
Files changed (170) hide show
  1. package/CLA-CORPORATE.md +72 -0
  2. package/CLA-INDIVIDUAL.md +71 -0
  3. package/DUAL-PUBLISHING-STRATEGY.md +571 -0
  4. package/LICENSE +610 -0
  5. package/README.md +77 -0
  6. package/dist/cjs/Either.d.ts +67 -0
  7. package/dist/cjs/Either.d.ts.map +1 -0
  8. package/dist/cjs/Either.js +147 -0
  9. package/dist/cjs/Either.js.map +1 -0
  10. package/dist/cjs/EitherAsync.d.ts +139 -0
  11. package/dist/cjs/EitherAsync.d.ts.map +1 -0
  12. package/dist/cjs/EitherAsync.js +171 -0
  13. package/dist/cjs/EitherAsync.js.map +1 -0
  14. package/dist/cjs/Function.d.ts +153 -0
  15. package/dist/cjs/Function.d.ts.map +1 -0
  16. package/dist/cjs/Function.js +110 -0
  17. package/dist/cjs/Function.js.map +1 -0
  18. package/dist/cjs/List.d.ts +134 -0
  19. package/dist/cjs/List.d.ts.map +1 -0
  20. package/dist/cjs/List.js +243 -0
  21. package/dist/cjs/List.js.map +1 -0
  22. package/dist/cjs/Maybe.d.ts +64 -0
  23. package/dist/cjs/Maybe.d.ts.map +1 -0
  24. package/dist/cjs/Maybe.js +122 -0
  25. package/dist/cjs/Maybe.js.map +1 -0
  26. package/dist/cjs/MaybeAsync.d.ts +115 -0
  27. package/dist/cjs/MaybeAsync.d.ts.map +1 -0
  28. package/dist/cjs/MaybeAsync.js +151 -0
  29. package/dist/cjs/MaybeAsync.js.map +1 -0
  30. package/dist/cjs/NonEmptyList.d.ts +86 -0
  31. package/dist/cjs/NonEmptyList.d.ts.map +1 -0
  32. package/dist/cjs/NonEmptyList.js +128 -0
  33. package/dist/cjs/NonEmptyList.js.map +1 -0
  34. package/dist/cjs/Reader.d.ts +53 -0
  35. package/dist/cjs/Reader.d.ts.map +1 -0
  36. package/dist/cjs/Reader.js +60 -0
  37. package/dist/cjs/Reader.js.map +1 -0
  38. package/dist/cjs/State.d.ts +71 -0
  39. package/dist/cjs/State.d.ts.map +1 -0
  40. package/dist/cjs/State.js +94 -0
  41. package/dist/cjs/State.js.map +1 -0
  42. package/dist/cjs/Tuple.d.ts +69 -0
  43. package/dist/cjs/Tuple.d.ts.map +1 -0
  44. package/dist/cjs/Tuple.js +73 -0
  45. package/dist/cjs/Tuple.js.map +1 -0
  46. package/dist/cjs/Validation.d.ts +53 -0
  47. package/dist/cjs/Validation.d.ts.map +1 -0
  48. package/dist/cjs/Validation.js +77 -0
  49. package/dist/cjs/Validation.js.map +1 -0
  50. package/dist/cjs/index.d.ts +12 -0
  51. package/dist/cjs/index.d.ts.map +1 -0
  52. package/dist/cjs/index.js +25 -0
  53. package/dist/cjs/index.js.map +1 -0
  54. package/dist/cjs/tokens/config.d.ts +43 -0
  55. package/dist/cjs/tokens/config.d.ts.map +1 -0
  56. package/dist/cjs/tokens/config.js +162 -0
  57. package/dist/cjs/tokens/config.js.map +1 -0
  58. package/dist/cjs/tokens/cssGen.d.ts +18 -0
  59. package/dist/cjs/tokens/cssGen.d.ts.map +1 -0
  60. package/dist/cjs/tokens/cssGen.js +144 -0
  61. package/dist/cjs/tokens/cssGen.js.map +1 -0
  62. package/dist/cjs/tokens/generateCSS.d.ts +18 -0
  63. package/dist/cjs/tokens/generateCSS.d.ts.map +1 -0
  64. package/dist/cjs/tokens/generateCSS.js +83 -0
  65. package/dist/cjs/tokens/generateCSS.js.map +1 -0
  66. package/dist/cjs/tokens/index.d.ts +13 -0
  67. package/dist/cjs/tokens/index.d.ts.map +1 -0
  68. package/dist/cjs/tokens/index.js +12 -0
  69. package/dist/cjs/tokens/index.js.map +1 -0
  70. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  71. package/dist/esm/Either.d.ts +67 -0
  72. package/dist/esm/Either.d.ts.map +1 -0
  73. package/dist/esm/Either.js +136 -0
  74. package/dist/esm/Either.js.map +1 -0
  75. package/dist/esm/EitherAsync.d.ts +139 -0
  76. package/dist/esm/EitherAsync.d.ts.map +1 -0
  77. package/dist/esm/EitherAsync.js +173 -0
  78. package/dist/esm/EitherAsync.js.map +1 -0
  79. package/dist/esm/Function.d.ts +153 -0
  80. package/dist/esm/Function.d.ts.map +1 -0
  81. package/dist/esm/Function.js +109 -0
  82. package/dist/esm/Function.js.map +1 -0
  83. package/dist/esm/List.d.ts +134 -0
  84. package/dist/esm/List.d.ts.map +1 -0
  85. package/dist/esm/List.js +243 -0
  86. package/dist/esm/List.js.map +1 -0
  87. package/dist/esm/Maybe.d.ts +64 -0
  88. package/dist/esm/Maybe.d.ts.map +1 -0
  89. package/dist/esm/Maybe.js +113 -0
  90. package/dist/esm/Maybe.js.map +1 -0
  91. package/dist/esm/MaybeAsync.d.ts +115 -0
  92. package/dist/esm/MaybeAsync.d.ts.map +1 -0
  93. package/dist/esm/MaybeAsync.js +150 -0
  94. package/dist/esm/MaybeAsync.js.map +1 -0
  95. package/dist/esm/NonEmptyList.d.ts +86 -0
  96. package/dist/esm/NonEmptyList.d.ts.map +1 -0
  97. package/dist/esm/NonEmptyList.js +128 -0
  98. package/dist/esm/NonEmptyList.js.map +1 -0
  99. package/dist/esm/Reader.d.ts +53 -0
  100. package/dist/esm/Reader.d.ts.map +1 -0
  101. package/dist/esm/Reader.js +60 -0
  102. package/dist/esm/Reader.js.map +1 -0
  103. package/dist/esm/State.d.ts +71 -0
  104. package/dist/esm/State.d.ts.map +1 -0
  105. package/dist/esm/State.js +94 -0
  106. package/dist/esm/State.js.map +1 -0
  107. package/dist/esm/Tuple.d.ts +69 -0
  108. package/dist/esm/Tuple.d.ts.map +1 -0
  109. package/dist/esm/Tuple.js +73 -0
  110. package/dist/esm/Tuple.js.map +1 -0
  111. package/dist/esm/Validation.d.ts +53 -0
  112. package/dist/esm/Validation.d.ts.map +1 -0
  113. package/dist/esm/Validation.js +79 -0
  114. package/dist/esm/Validation.js.map +1 -0
  115. package/dist/esm/index.d.ts +12 -0
  116. package/dist/esm/index.d.ts.map +1 -0
  117. package/dist/esm/index.js +22 -0
  118. package/dist/esm/index.js.map +1 -0
  119. package/dist/esm/src/Either.d.ts +67 -0
  120. package/dist/esm/src/Either.d.ts.map +1 -0
  121. package/dist/esm/src/Either.js +147 -0
  122. package/dist/esm/src/Either.js.map +1 -0
  123. package/dist/esm/src/EitherAsync.d.ts +139 -0
  124. package/dist/esm/src/EitherAsync.d.ts.map +1 -0
  125. package/dist/esm/src/EitherAsync.js +171 -0
  126. package/dist/esm/src/EitherAsync.js.map +1 -0
  127. package/dist/esm/src/Function.d.ts +153 -0
  128. package/dist/esm/src/Function.d.ts.map +1 -0
  129. package/dist/esm/src/Function.js +110 -0
  130. package/dist/esm/src/Function.js.map +1 -0
  131. package/dist/esm/src/List.d.ts +134 -0
  132. package/dist/esm/src/List.d.ts.map +1 -0
  133. package/dist/esm/src/List.js +243 -0
  134. package/dist/esm/src/List.js.map +1 -0
  135. package/dist/esm/src/Maybe.d.ts +64 -0
  136. package/dist/esm/src/Maybe.d.ts.map +1 -0
  137. package/dist/esm/src/Maybe.js +122 -0
  138. package/dist/esm/src/Maybe.js.map +1 -0
  139. package/dist/esm/src/MaybeAsync.d.ts +115 -0
  140. package/dist/esm/src/MaybeAsync.d.ts.map +1 -0
  141. package/dist/esm/src/MaybeAsync.js +151 -0
  142. package/dist/esm/src/MaybeAsync.js.map +1 -0
  143. package/dist/esm/src/NonEmptyList.d.ts +86 -0
  144. package/dist/esm/src/NonEmptyList.d.ts.map +1 -0
  145. package/dist/esm/src/NonEmptyList.js +128 -0
  146. package/dist/esm/src/NonEmptyList.js.map +1 -0
  147. package/dist/esm/src/Reader.d.ts +53 -0
  148. package/dist/esm/src/Reader.d.ts.map +1 -0
  149. package/dist/esm/src/Reader.js +60 -0
  150. package/dist/esm/src/Reader.js.map +1 -0
  151. package/dist/esm/src/State.d.ts +71 -0
  152. package/dist/esm/src/State.d.ts.map +1 -0
  153. package/dist/esm/src/State.js +94 -0
  154. package/dist/esm/src/State.js.map +1 -0
  155. package/dist/esm/src/Tuple.d.ts +69 -0
  156. package/dist/esm/src/Tuple.d.ts.map +1 -0
  157. package/dist/esm/src/Tuple.js +73 -0
  158. package/dist/esm/src/Tuple.js.map +1 -0
  159. package/dist/esm/src/Validation.d.ts +53 -0
  160. package/dist/esm/src/Validation.d.ts.map +1 -0
  161. package/dist/esm/src/Validation.js +77 -0
  162. package/dist/esm/src/Validation.js.map +1 -0
  163. package/dist/esm/src/index.d.ts +12 -0
  164. package/dist/esm/src/index.d.ts.map +1 -0
  165. package/dist/esm/src/index.js +25 -0
  166. package/dist/esm/src/index.js.map +1 -0
  167. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  168. package/elevate-ts-vs-effect-critique.md +806 -0
  169. package/eslint.config.js +104 -0
  170. package/package.json +139 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Function.d.ts","sourceRoot":"","sources":["../../../src/Function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ // Function — Composition and Utilities
2
+ /**
3
+ * Identity function: returns its input unchanged.
4
+ * @param a - The value to return.
5
+ * @returns The same value.
6
+ */
7
+ export const identity = (a) => a;
8
+ /**
9
+ * Create a function that always returns the same value.
10
+ * @param a - The value to return.
11
+ * @returns A function that ignores its input and returns the value.
12
+ */
13
+ export const constant = (a) => () => a;
14
+ /**
15
+ * Flip the first two arguments of a binary function.
16
+ * @param f - A binary function.
17
+ * @returns A function with argument order reversed.
18
+ */
19
+ export const flip = (f) => (b, a) => f(a, b);
20
+ /**
21
+ * Absurd: a function that takes a never value.
22
+ * @param a - A value of type never (should never be called).
23
+ * @returns A value of any type (unreachable).
24
+ */
25
+ export const absurd = (_) => {
26
+ throw new Error('absurd: unreachable');
27
+ };
28
+ /**
29
+ * Pipe implementation.
30
+ */
31
+ export function pipe(a, ...fns) {
32
+ let result = a;
33
+ for (const fn of fns) {
34
+ result = fn(result);
35
+ }
36
+ return result;
37
+ }
38
+ /**
39
+ * Flow implementation.
40
+ */
41
+ export function flow(...fns) {
42
+ return (a) => {
43
+ let result = a;
44
+ for (const fn of fns) {
45
+ result = fn(result);
46
+ }
47
+ return result;
48
+ };
49
+ }
50
+ /**
51
+ * Curry a 2-argument function.
52
+ * @param f - A binary function.
53
+ * @returns A curried function.
54
+ */
55
+ export const curry2 = (f) => (a) => (b) => f(a, b);
56
+ /**
57
+ * Curry a 3-argument function.
58
+ * @param f - A ternary function.
59
+ * @returns A curried function.
60
+ */
61
+ export const curry3 = (f) => (a) => (b) => (c) => f(a, b, c);
62
+ /**
63
+ * Curry a 4-argument function.
64
+ * @param f - A 4-argument function.
65
+ * @returns A curried function.
66
+ */
67
+ export const curry4 = (f) => (a) => (b) => (c) => (d) => f(a, b, c, d);
68
+ /**
69
+ * Memoize a function with single-level cache.
70
+ * @param f - The function to memoize.
71
+ * @returns A memoized function.
72
+ */
73
+ export const memoize = (f) => {
74
+ const cache = new Map();
75
+ return (a) => {
76
+ const cached = cache.get(a);
77
+ if (cached !== undefined) {
78
+ return cached;
79
+ }
80
+ const result = f(a);
81
+ cache.set(a, result);
82
+ return result;
83
+ };
84
+ };
85
+ /**
86
+ * Execute a function at most once; cache the result.
87
+ * @param f - The function to execute once.
88
+ * @returns A function that returns the cached result on all calls.
89
+ */
90
+ export const once = (f) => {
91
+ let called = false;
92
+ let result;
93
+ return (a) => {
94
+ if (!called) {
95
+ result = f(a);
96
+ called = true;
97
+ }
98
+ return result;
99
+ };
100
+ };
101
+ /**
102
+ * Execute a side effect and pass the value through.
103
+ * @param f - A side-effect function.
104
+ * @returns A function that executes the side effect and returns its input.
105
+ */
106
+ export const tap = (f) => (a) => {
107
+ f(a);
108
+ return a;
109
+ };
110
+ //# sourceMappingURL=Function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Function.js","sourceRoot":"","sources":["../../../src/Function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ import * as Maybe from './Maybe.js';
2
+ /**
3
+ * Get the first element of an array.
4
+ * @param arr - The array.
5
+ * @returns The first element or undefined if empty.
6
+ */
7
+ export declare const head: <A>(arr: readonly A[]) => A | undefined;
8
+ /**
9
+ * Get all but the first element.
10
+ * @param arr - The array.
11
+ * @returns An array of remaining elements.
12
+ */
13
+ export declare const tail: <A>(arr: readonly A[]) => readonly A[];
14
+ /**
15
+ * Get the last element of an array.
16
+ * @param arr - The array.
17
+ * @returns The last element or undefined if empty.
18
+ */
19
+ export declare const last: <A>(arr: readonly A[]) => A | undefined;
20
+ /**
21
+ * Get all but the last element.
22
+ * @param arr - The array.
23
+ * @returns An array of all but the last element.
24
+ */
25
+ export declare const init: <A>(arr: readonly A[]) => readonly A[];
26
+ /**
27
+ * Deconstruct an array into head and tail.
28
+ * @param arr - The array.
29
+ * @returns Just [head, tail] if nonempty, Nothing if empty.
30
+ */
31
+ export declare const uncons: <A>(arr: readonly A[]) => Maybe.Maybe<readonly [A, readonly A[]]>;
32
+ /**
33
+ * Prepend an element to an array.
34
+ * @param a - The element to prepend.
35
+ * @returns A function that takes an array and returns the new array.
36
+ */
37
+ export declare const cons: <A>(a: A) => ((arr: readonly A[]) => readonly A[]);
38
+ /**
39
+ * Append an element to an array.
40
+ * @param a - The element to append.
41
+ * @returns A function that takes an array and returns the new array.
42
+ */
43
+ export declare const snoc: <A>(a: A) => ((arr: readonly A[]) => readonly A[]);
44
+ /**
45
+ * Take the first n elements.
46
+ * @param n - The number of elements to take.
47
+ * @returns A function that takes an array and returns the first n elements.
48
+ */
49
+ export declare const take: <A>(n: number) => ((arr: readonly A[]) => readonly A[]);
50
+ /**
51
+ * Drop the first n elements.
52
+ * @param n - The number of elements to drop.
53
+ * @returns A function that takes an array and returns the remaining elements.
54
+ */
55
+ export declare const drop: <A>(n: number) => ((arr: readonly A[]) => readonly A[]);
56
+ /**
57
+ * Take elements while predicate holds.
58
+ * @param predicate - The predicate to test.
59
+ * @returns A function that takes an array and returns elements taken while predicate holds.
60
+ */
61
+ export declare const takeWhile: <A>(predicate: (a: A) => boolean) => ((arr: readonly A[]) => readonly A[]);
62
+ /**
63
+ * Drop elements while predicate holds.
64
+ * @param predicate - The predicate to test.
65
+ * @returns A function that takes an array and returns remaining elements.
66
+ */
67
+ export declare const dropWhile: <A>(predicate: (a: A) => boolean) => ((arr: readonly A[]) => readonly A[]);
68
+ /**
69
+ * Partition an array into two based on a predicate.
70
+ * @param predicate - The predicate to split on.
71
+ * @returns A function that takes an array and returns [matching, nonmatching].
72
+ */
73
+ export declare const partition: <A>(predicate: (a: A) => boolean) => ((arr: readonly A[]) => readonly [readonly A[], readonly A[]]);
74
+ /**
75
+ * Split an array at the first element that fails the predicate.
76
+ * @param predicate - The predicate to test.
77
+ * @returns A function that takes an array and returns [taken, dropped].
78
+ */
79
+ export declare const span: <A>(predicate: (a: A) => boolean) => ((arr: readonly A[]) => readonly [readonly A[], readonly A[]]);
80
+ /**
81
+ * Group consecutive equal elements.
82
+ * @param eq - Equality comparator.
83
+ * @returns A function that takes an array and returns grouped elements.
84
+ */
85
+ export declare const groupBy: <A>(eq: (a: A, b: A) => boolean) => ((arr: readonly A[]) => readonly (readonly A[])[]);
86
+ /**
87
+ * Remove consecutive duplicates.
88
+ * @param eq - Equality comparator.
89
+ * @returns A function that takes an array and returns array without consecutive duplicates.
90
+ */
91
+ export declare const nubBy: <A>(eq: (a: A, b: A) => boolean) => ((arr: readonly A[]) => readonly A[]);
92
+ /**
93
+ * Sort an array with a comparator function.
94
+ * @param ord - Comparator function (negative if a < b, positive if a > b).
95
+ * @returns A function that takes an array and returns a sorted array.
96
+ */
97
+ export declare const sortBy: <A>(ord: (a: A, b: A) => number) => ((arr: readonly A[]) => readonly A[]);
98
+ /**
99
+ * Zip two arrays into pairs.
100
+ * @param arr2 - The second array.
101
+ * @returns A function taking first array, returning [pairs, remainders].
102
+ */
103
+ export declare const zip: <A, B>(arr2: readonly B[]) => (arr1: readonly A[]) => readonly [[A, B][], A[] | B[]];
104
+ /**
105
+ * Zip two arrays with a function.
106
+ * @param f - Function to apply to pairs.
107
+ * @returns A function taking the second array, then first array, returning results.
108
+ */
109
+ export declare const zipWith: <A, B, C>(f: (a: A, b: B) => C) => ((arr2: readonly B[]) => (arr1: readonly A[]) => readonly C[]);
110
+ /**
111
+ * Unzip an array of pairs into two arrays.
112
+ * @param pairs - Array of pairs.
113
+ * @returns A tuple of two arrays.
114
+ */
115
+ export declare const unzip: <A, B>(pairs: readonly (readonly [A, B])[]) => readonly [readonly A[], readonly B[]];
116
+ /**
117
+ * Flatten one level of nesting.
118
+ * @param arr - Array of arrays.
119
+ * @returns A flattened array.
120
+ */
121
+ export declare const flatten: <A>(arr: readonly (readonly A[])[]) => readonly A[];
122
+ /**
123
+ * Insert a separator between elements.
124
+ * @param sep - The separator element.
125
+ * @returns A function that takes an array and returns interspersed array.
126
+ */
127
+ export declare const intersperse: <A>(sep: A) => ((arr: readonly A[]) => readonly A[]);
128
+ /**
129
+ * Transpose a matrix (2D array).
130
+ * @param matrix - A matrix as array of arrays.
131
+ * @returns The transposed matrix.
132
+ */
133
+ export declare const transpose: <A>(matrix: readonly (readonly A[])[]) => readonly (readonly A[])[];
134
+ //# sourceMappingURL=List.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/List.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,243 @@
1
+ // List — Array Utilities
2
+ import * as Maybe from './Maybe.js';
3
+ /**
4
+ * Get the first element of an array.
5
+ * @param arr - The array.
6
+ * @returns The first element or undefined if empty.
7
+ */
8
+ export const head = (arr) => arr[0];
9
+ /**
10
+ * Get all but the first element.
11
+ * @param arr - The array.
12
+ * @returns An array of remaining elements.
13
+ */
14
+ export const tail = (arr) => arr.slice(1);
15
+ /**
16
+ * Get the last element of an array.
17
+ * @param arr - The array.
18
+ * @returns The last element or undefined if empty.
19
+ */
20
+ export const last = (arr) => (arr.length > 0 ? arr[arr.length - 1] : undefined);
21
+ /**
22
+ * Get all but the last element.
23
+ * @param arr - The array.
24
+ * @returns An array of all but the last element.
25
+ */
26
+ export const init = (arr) => (arr.length > 0 ? arr.slice(0, -1) : []);
27
+ /**
28
+ * Deconstruct an array into head and tail.
29
+ * @param arr - The array.
30
+ * @returns Just [head, tail] if nonempty, Nothing if empty.
31
+ */
32
+ export const uncons = (arr) => (arr.length > 0 ? Maybe.Just([arr[0], arr.slice(1)]) : Maybe.Nothing);
33
+ /**
34
+ * Prepend an element to an array.
35
+ * @param a - The element to prepend.
36
+ * @returns A function that takes an array and returns the new array.
37
+ */
38
+ export const cons = (a) => (arr) => [a, ...arr];
39
+ /**
40
+ * Append an element to an array.
41
+ * @param a - The element to append.
42
+ * @returns A function that takes an array and returns the new array.
43
+ */
44
+ export const snoc = (a) => (arr) => [...arr, a];
45
+ /**
46
+ * Take the first n elements.
47
+ * @param n - The number of elements to take.
48
+ * @returns A function that takes an array and returns the first n elements.
49
+ */
50
+ export const take = (n) => (arr) => arr.slice(0, n);
51
+ /**
52
+ * Drop the first n elements.
53
+ * @param n - The number of elements to drop.
54
+ * @returns A function that takes an array and returns the remaining elements.
55
+ */
56
+ export const drop = (n) => (arr) => arr.slice(n);
57
+ /**
58
+ * Take elements while predicate holds.
59
+ * @param predicate - The predicate to test.
60
+ * @returns A function that takes an array and returns elements taken while predicate holds.
61
+ */
62
+ export const takeWhile = (predicate) => (arr) => {
63
+ let i = 0;
64
+ while (i < arr.length && predicate(arr[i]))
65
+ i++;
66
+ return arr.slice(0, i);
67
+ };
68
+ /**
69
+ * Drop elements while predicate holds.
70
+ * @param predicate - The predicate to test.
71
+ * @returns A function that takes an array and returns remaining elements.
72
+ */
73
+ export const dropWhile = (predicate) => (arr) => {
74
+ let i = 0;
75
+ while (i < arr.length && predicate(arr[i]))
76
+ i++;
77
+ return arr.slice(i);
78
+ };
79
+ /**
80
+ * Partition an array into two based on a predicate.
81
+ * @param predicate - The predicate to split on.
82
+ * @returns A function that takes an array and returns [matching, nonmatching].
83
+ */
84
+ export const partition = (predicate) => (arr) => {
85
+ const left = [];
86
+ const right = [];
87
+ for (const a of arr) {
88
+ if (predicate(a)) {
89
+ left.push(a);
90
+ }
91
+ else {
92
+ right.push(a);
93
+ }
94
+ }
95
+ return [left, right];
96
+ };
97
+ /**
98
+ * Split an array at the first element that fails the predicate.
99
+ * @param predicate - The predicate to test.
100
+ * @returns A function that takes an array and returns [taken, dropped].
101
+ */
102
+ export const span = (predicate) => (arr) => {
103
+ let i = 0;
104
+ while (i < arr.length && predicate(arr[i]))
105
+ i++;
106
+ return [arr.slice(0, i), arr.slice(i)];
107
+ };
108
+ /**
109
+ * Group consecutive equal elements.
110
+ * @param eq - Equality comparator.
111
+ * @returns A function that takes an array and returns grouped elements.
112
+ */
113
+ export const groupBy = (eq) => (arr) => {
114
+ if (arr.length === 0)
115
+ return [];
116
+ const groups = [];
117
+ let current = [arr[0]];
118
+ for (let i = 1; i < arr.length; i++) {
119
+ if (eq(arr[i], arr[i - 1])) {
120
+ current.push(arr[i]);
121
+ }
122
+ else {
123
+ groups.push(current);
124
+ current = [arr[i]];
125
+ }
126
+ }
127
+ groups.push(current);
128
+ return groups;
129
+ };
130
+ /**
131
+ * Remove consecutive duplicates.
132
+ * @param eq - Equality comparator.
133
+ * @returns A function that takes an array and returns array without consecutive duplicates.
134
+ */
135
+ export const nubBy = (eq) => (arr) => {
136
+ if (arr.length === 0)
137
+ return [];
138
+ const result = [arr[0]];
139
+ for (let i = 1; i < arr.length; i++) {
140
+ if (!eq(arr[i], arr[i - 1])) {
141
+ result.push(arr[i]);
142
+ }
143
+ }
144
+ return result;
145
+ };
146
+ /**
147
+ * Sort an array with a comparator function.
148
+ * @param ord - Comparator function (negative if a < b, positive if a > b).
149
+ * @returns A function that takes an array and returns a sorted array.
150
+ */
151
+ export const sortBy = (ord) => (arr) => [...arr].sort(ord);
152
+ /**
153
+ * Zip two arrays into pairs.
154
+ * @param arr2 - The second array.
155
+ * @returns A function taking first array, returning [pairs, remainders].
156
+ */
157
+ export const zip = (arr2) => (arr1) => {
158
+ const len = Math.min(arr1.length, arr2.length);
159
+ const pairs = [];
160
+ for (let i = 0; i < len; i++) {
161
+ pairs.push([arr1[i], arr2[i]]);
162
+ }
163
+ const remainder = arr1.length > arr2.length ? arr1.slice(len) : arr2.slice(len);
164
+ return [pairs, remainder];
165
+ };
166
+ /**
167
+ * Zip two arrays with a function.
168
+ * @param f - Function to apply to pairs.
169
+ * @returns A function taking the second array, then first array, returning results.
170
+ */
171
+ export const zipWith = (f) => (arr2) => (arr1) => {
172
+ const len = Math.min(arr1.length, arr2.length);
173
+ const result = [];
174
+ for (let i = 0; i < len; i++) {
175
+ result.push(f(arr1[i], arr2[i]));
176
+ }
177
+ return result;
178
+ };
179
+ /**
180
+ * Unzip an array of pairs into two arrays.
181
+ * @param pairs - Array of pairs.
182
+ * @returns A tuple of two arrays.
183
+ */
184
+ export const unzip = (pairs) => {
185
+ const as = [];
186
+ const bs = [];
187
+ for (const [a, b] of pairs) {
188
+ as.push(a);
189
+ bs.push(b);
190
+ }
191
+ return [as, bs];
192
+ };
193
+ /**
194
+ * Flatten one level of nesting.
195
+ * @param arr - Array of arrays.
196
+ * @returns A flattened array.
197
+ */
198
+ export const flatten = (arr) => {
199
+ const result = [];
200
+ for (const sub of arr) {
201
+ for (const a of sub) {
202
+ result.push(a);
203
+ }
204
+ }
205
+ return result;
206
+ };
207
+ /**
208
+ * Insert a separator between elements.
209
+ * @param sep - The separator element.
210
+ * @returns A function that takes an array and returns interspersed array.
211
+ */
212
+ export const intersperse = (sep) => (arr) => {
213
+ if (arr.length === 0)
214
+ return [];
215
+ const result = [arr[0]];
216
+ for (let i = 1; i < arr.length; i++) {
217
+ result.push(sep);
218
+ result.push(arr[i]);
219
+ }
220
+ return result;
221
+ };
222
+ /**
223
+ * Transpose a matrix (2D array).
224
+ * @param matrix - A matrix as array of arrays.
225
+ * @returns The transposed matrix.
226
+ */
227
+ export const transpose = (matrix) => {
228
+ if (matrix.length === 0)
229
+ return [];
230
+ const maxLen = Math.max(...matrix.map((row) => row.length));
231
+ const result = [];
232
+ for (let col = 0; col < maxLen; col++) {
233
+ const row = [];
234
+ for (let rowIdx = 0; rowIdx < matrix.length; rowIdx++) {
235
+ if (col < matrix[rowIdx].length) {
236
+ row.push(matrix[rowIdx][col]);
237
+ }
238
+ }
239
+ result.push(row);
240
+ }
241
+ return result;
242
+ };
243
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../src/List.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /** Represents a Just value. */
2
+ export type Just<A> = {
3
+ readonly tag: 'Just';
4
+ readonly value: A;
5
+ };
6
+ /** Represents the absence of a value. */
7
+ export type Nothing = {
8
+ readonly tag: 'Nothing';
9
+ };
10
+ /** Optional value: Just<A> (present) or Nothing (absent). */
11
+ export type Maybe<A> = Just<A> | Nothing;
12
+ /** Create a Just value. */
13
+ export declare const Just: <A>(value: A) => Just<A>;
14
+ /** The Nothing singleton. */
15
+ export declare const Nothing: Nothing;
16
+ /** Test if a Maybe is Just. */
17
+ export declare const isJust: <A>(ma: Maybe<A>) => ma is Just<A>;
18
+ /** Test if a Maybe is Nothing. */
19
+ export declare const isNothing: <A>(ma: Maybe<A>) => ma is Nothing;
20
+ /** Lift a possibly-null value into Maybe. */
21
+ export declare const fromNullable: <A>(a: A | null | undefined) => Maybe<A>;
22
+ /** Construct Just if predicate holds, Nothing otherwise. */
23
+ export declare const fromPredicate: <A>(predicate: (a: A) => boolean) => ((a: A) => Maybe<A>);
24
+ /** Extract value or null. */
25
+ export declare const toNullable: <A>(ma: Maybe<A>) => A | null;
26
+ /** Lift to 0 or 1 element array. */
27
+ export declare const toArray: <A>(ma: Maybe<A>) => readonly A[];
28
+ /** Functor map. */
29
+ export declare const map: <A, B>(f: (a: A) => B) => ((ma: Maybe<A>) => Maybe<B>);
30
+ /** Applicative ap. */
31
+ export declare const ap: <A, B>(mf: Maybe<(a: A) => B>) => ((ma: Maybe<A>) => Maybe<B>);
32
+ /** Monadic bind (flatMap). */
33
+ export declare const chain: <A, B>(f: (a: A) => Maybe<B>) => ((ma: Maybe<A>) => Maybe<B>);
34
+ /** Chain with nullable result. */
35
+ export declare const chainNullable: <A, B>(f: (a: A) => B | null | undefined) => ((ma: Maybe<A>) => Maybe<B>);
36
+ /** Extract value or provide a default. */
37
+ export declare const getOrElse: <A>(a: A) => ((ma: Maybe<A>) => A);
38
+ /** Extract value or compute a default lazily. */
39
+ export declare const getOrElseL: <A>(f: () => A) => ((ma: Maybe<A>) => A);
40
+ /** Alt: use alternative if first is Nothing. */
41
+ export declare const alt: <A>(malt: Maybe<A>) => ((ma: Maybe<A>) => Maybe<A>);
42
+ /** Alt with lazy alternative. */
43
+ export declare const altL: <A>(f: () => Maybe<A>) => ((ma: Maybe<A>) => Maybe<A>);
44
+ /** Keep if predicate holds, otherwise Nothing. */
45
+ export declare const filter: <A>(predicate: (a: A) => boolean) => ((ma: Maybe<A>) => Maybe<A>);
46
+ /** Case analysis. */
47
+ export declare const fold: <A, B>(onNothing: B, onJust: (a: A) => B) => ((ma: Maybe<A>) => B);
48
+ /** Filter out Nothing; collect Just values. */
49
+ export declare const catMaybes: <A>(maybes: readonly Maybe<A>[]) => readonly A[];
50
+ /** Map then catMaybes. */
51
+ export declare const mapMaybe: <A, B>(f: (a: A) => Maybe<B>) => ((as: readonly A[]) => readonly B[]);
52
+ /** Sequence all-or-Nothing. */
53
+ export declare const sequence: <A>(maybes: readonly Maybe<A>[]) => Maybe<readonly A[]>;
54
+ /** Traverse a sequence. */
55
+ export declare const traverse: <A, B>(f: (a: A) => Maybe<B>) => ((as: readonly A[]) => Maybe<readonly B[]>);
56
+ /** Convert a Maybe to an Either. */
57
+ export declare const toEither: <E, A>(onNothing: E) => ((ma: Maybe<A>) => {
58
+ readonly tag: "Right";
59
+ readonly right: A;
60
+ } | {
61
+ readonly tag: "Left";
62
+ readonly left: E;
63
+ });
64
+ //# sourceMappingURL=Maybe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Maybe.d.ts","sourceRoot":"","sources":["../../../src/Maybe.ts"],"names":[],"mappings":"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"}