@igorjs/pure-ts 0.7.4 → 0.7.7

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 (143) hide show
  1. package/README.md +39 -745
  2. package/dist/async/cache.d.ts +1 -6
  3. package/dist/async/cache.d.ts.map +1 -1
  4. package/dist/async/cache.js.map +1 -1
  5. package/dist/async/circuit-breaker.d.ts +1 -6
  6. package/dist/async/circuit-breaker.d.ts.map +1 -1
  7. package/dist/async/circuit-breaker.js.map +1 -1
  8. package/dist/async/index.d.ts +56 -12
  9. package/dist/async/index.d.ts.map +1 -1
  10. package/dist/async/index.js +41 -12
  11. package/dist/async/index.js.map +1 -1
  12. package/dist/async/lazy.d.ts +6 -42
  13. package/dist/async/lazy.d.ts.map +1 -1
  14. package/dist/async/lazy.js.map +1 -1
  15. package/dist/async/pool.d.ts +1 -5
  16. package/dist/async/pool.d.ts.map +1 -1
  17. package/dist/async/pool.js +3 -3
  18. package/dist/async/pool.js.map +1 -1
  19. package/dist/async/rate-limiter.d.ts +1 -6
  20. package/dist/async/rate-limiter.d.ts.map +1 -1
  21. package/dist/async/rate-limiter.js.map +1 -1
  22. package/dist/async/retry.d.ts +7 -9
  23. package/dist/async/retry.d.ts.map +1 -1
  24. package/dist/async/retry.js.map +1 -1
  25. package/dist/async/semaphore.d.ts +2 -7
  26. package/dist/async/semaphore.d.ts.map +1 -1
  27. package/dist/async/semaphore.js.map +1 -1
  28. package/dist/async/stream.d.ts +1 -5
  29. package/dist/async/stream.d.ts.map +1 -1
  30. package/dist/async/stream.js +6 -6
  31. package/dist/async/stream.js.map +1 -1
  32. package/dist/async/task-like.d.ts +30 -0
  33. package/dist/async/task-like.d.ts.map +1 -0
  34. package/dist/async/task-like.js +13 -0
  35. package/dist/async/task-like.js.map +1 -0
  36. package/dist/async/task.d.ts +8 -62
  37. package/dist/async/task.d.ts.map +1 -1
  38. package/dist/async/task.js +1 -1
  39. package/dist/async/task.js.map +1 -1
  40. package/dist/async/timer.d.ts +1 -6
  41. package/dist/async/timer.d.ts.map +1 -1
  42. package/dist/async/timer.js +4 -4
  43. package/dist/async/timer.js.map +1 -1
  44. package/dist/client.d.ts +6 -7
  45. package/dist/client.d.ts.map +1 -1
  46. package/dist/client.js +2 -2
  47. package/dist/client.js.map +1 -1
  48. package/dist/core/index.d.ts +21 -9
  49. package/dist/core/index.d.ts.map +1 -1
  50. package/dist/core/index.js +21 -9
  51. package/dist/core/index.js.map +1 -1
  52. package/dist/core/option.d.ts +26 -68
  53. package/dist/core/option.d.ts.map +1 -1
  54. package/dist/core/option.js +7 -20
  55. package/dist/core/option.js.map +1 -1
  56. package/dist/core/pipe.d.ts +13 -0
  57. package/dist/core/pipe.d.ts.map +1 -1
  58. package/dist/core/pipe.js.map +1 -1
  59. package/dist/core/result.d.ts +45 -90
  60. package/dist/core/result.d.ts.map +1 -1
  61. package/dist/core/result.js +9 -65
  62. package/dist/core/result.js.map +1 -1
  63. package/dist/data/adt.d.ts +1 -2
  64. package/dist/data/adt.d.ts.map +1 -1
  65. package/dist/data/codec.d.ts +4 -3
  66. package/dist/data/codec.d.ts.map +1 -1
  67. package/dist/data/codec.js.map +1 -1
  68. package/dist/data/index.d.ts +24 -5
  69. package/dist/data/index.d.ts.map +1 -1
  70. package/dist/data/index.js +11 -3
  71. package/dist/data/index.js.map +1 -1
  72. package/dist/data/internals.d.ts +2 -2
  73. package/dist/data/internals.d.ts.map +1 -1
  74. package/dist/data/list.d.ts +1 -1
  75. package/dist/data/non-empty-list.d.ts +1 -1
  76. package/dist/data/record.d.ts +1 -2
  77. package/dist/data/record.d.ts.map +1 -1
  78. package/dist/data/record.js.map +1 -1
  79. package/dist/data/stable-vec.d.ts +116 -0
  80. package/dist/data/stable-vec.d.ts.map +1 -0
  81. package/dist/data/stable-vec.js +184 -0
  82. package/dist/data/stable-vec.js.map +1 -0
  83. package/dist/index.d.ts +162 -49
  84. package/dist/index.d.ts.map +1 -1
  85. package/dist/index.js +6 -4
  86. package/dist/index.js.map +1 -1
  87. package/dist/io/compression.d.ts +1 -6
  88. package/dist/io/compression.d.ts.map +1 -1
  89. package/dist/io/compression.js +3 -3
  90. package/dist/io/compression.js.map +1 -1
  91. package/dist/io/crypto.d.ts +1 -5
  92. package/dist/io/crypto.d.ts.map +1 -1
  93. package/dist/io/crypto.js +2 -2
  94. package/dist/io/crypto.js.map +1 -1
  95. package/dist/io/dns.d.ts +3 -7
  96. package/dist/io/dns.d.ts.map +1 -1
  97. package/dist/io/dns.js +3 -3
  98. package/dist/io/dns.js.map +1 -1
  99. package/dist/io/file.d.ts +1 -5
  100. package/dist/io/file.d.ts.map +1 -1
  101. package/dist/io/file.js +13 -13
  102. package/dist/io/file.js.map +1 -1
  103. package/dist/io/index.d.ts +36 -11
  104. package/dist/io/index.d.ts.map +1 -1
  105. package/dist/io/index.js +26 -10
  106. package/dist/io/index.js.map +1 -1
  107. package/dist/io/net.d.ts +1 -6
  108. package/dist/io/net.d.ts.map +1 -1
  109. package/dist/io/net.js +6 -6
  110. package/dist/io/net.js.map +1 -1
  111. package/dist/io/subprocess.d.ts +1 -6
  112. package/dist/io/subprocess.d.ts.map +1 -1
  113. package/dist/io/subprocess.js +4 -4
  114. package/dist/io/subprocess.js.map +1 -1
  115. package/dist/program.d.ts +137 -25
  116. package/dist/program.d.ts.map +1 -1
  117. package/dist/program.js +23 -5
  118. package/dist/program.js.map +1 -1
  119. package/dist/runtime/config.d.ts +4 -5
  120. package/dist/runtime/config.d.ts.map +1 -1
  121. package/dist/runtime/index.d.ts +23 -2
  122. package/dist/runtime/index.d.ts.map +1 -1
  123. package/dist/runtime/index.js +7 -2
  124. package/dist/runtime/index.js.map +1 -1
  125. package/dist/runtime/logger.d.ts +22 -6
  126. package/dist/runtime/logger.d.ts.map +1 -1
  127. package/dist/runtime/logger.js.map +1 -1
  128. package/dist/runtime/platform.d.ts +2 -2
  129. package/dist/runtime/platform.d.ts.map +1 -1
  130. package/dist/runtime/platform.js.map +1 -1
  131. package/dist/runtime/process.d.ts +4 -2
  132. package/dist/runtime/process.d.ts.map +1 -1
  133. package/dist/runtime/process.js.map +1 -1
  134. package/dist/types/error.d.ts +34 -61
  135. package/dist/types/error.d.ts.map +1 -1
  136. package/dist/types/error.js.map +1 -1
  137. package/dist/types/index.d.ts +15 -2
  138. package/dist/types/index.d.ts.map +1 -1
  139. package/dist/types/index.js +4 -2
  140. package/dist/types/index.js.map +1 -1
  141. package/dist/types/nominal.d.ts +1 -3
  142. package/dist/types/nominal.d.ts.map +1 -1
  143. package/package.json +1 -1
@@ -0,0 +1,116 @@
1
+ /**
2
+ * @module stable-vec
3
+ *
4
+ * A dense, index-stable collection backed by typed arrays.
5
+ *
6
+ * Standard arrays invalidate indices when elements are removed (splice
7
+ * shifts everything after the gap). StableVec solves this by assigning
8
+ * each element a **handle** — a (index, generation) pair that remains
9
+ * valid even after other elements are inserted or removed.
10
+ *
11
+ * Internally, data is kept contiguous: removal swaps the target with the
12
+ * last element, keeping the backing store dense for cache-friendly iteration.
13
+ * A generation counter per slot detects stale handles (use-after-free).
14
+ * Freed slots are reused via an implicit free list.
15
+ *
16
+ * **Time complexities:**
17
+ * - `insert`: O(1) amortized
18
+ * - `remove`: O(1) — swap-with-last
19
+ * - `get` by handle: O(1) — one indirection + generation check
20
+ * - `iterate`: O(n) over dense data, no gaps
21
+ *
22
+ * **When to use:**
23
+ * - Long-lived collections with frequent insert/remove
24
+ * - External code holds handles that must survive mutations
25
+ * - Cache-friendly iteration matters (game loops, simulations, ECS)
26
+ *
27
+ * **When NOT to use:**
28
+ * - Short-lived, process-once arrays (just use a plain array)
29
+ * - Ordered collections (removal reorders via swap)
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const vec = StableVec.create<{ x: number; y: number }>();
34
+ * const h1 = vec.insert({ x: 1, y: 2 });
35
+ * const h2 = vec.insert({ x: 3, y: 4 });
36
+ *
37
+ * vec.get(h1); // Some({ x: 1, y: 2 })
38
+ * vec.remove(h1); // true
39
+ * vec.get(h1); // None (handle invalidated)
40
+ * vec.isValid(h1); // false
41
+ *
42
+ * // Dense iteration — no gaps
43
+ * for (const item of vec) {
44
+ * console.log(item.x, item.y);
45
+ * }
46
+ * ```
47
+ */
48
+ import type { Option } from "../core/option.js";
49
+ /**
50
+ * An opaque reference to an element in a {@link StableVec}.
51
+ *
52
+ * Handles are cheap to copy (two numbers) and safe to hold long-term.
53
+ * A handle becomes invalid when the element it points to is removed;
54
+ * subsequent `get`/`remove` calls return `None`/`false`.
55
+ */
56
+ export interface Handle {
57
+ /** Slot index in the indirection table. */
58
+ readonly index: number;
59
+ /** Generation at the time of insertion. Mismatches mean the slot was reused. */
60
+ readonly generation: number;
61
+ }
62
+ /**
63
+ * A dense, index-stable collection.
64
+ *
65
+ * Elements are stored contiguously for cache-friendly iteration. Handles
66
+ * (index + generation) provide O(1) access that survives mutations.
67
+ */
68
+ export interface StableVec<T> extends Iterable<T> {
69
+ /** Number of live elements. */
70
+ readonly length: number;
71
+ /** Number of allocated slots (including free slots available for reuse). */
72
+ readonly capacity: number;
73
+ /** Insert an element and return its stable handle. O(1) amortized. */
74
+ insert(value: T): Handle;
75
+ /**
76
+ * Remove the element referenced by `handle`. O(1).
77
+ *
78
+ * Returns `true` if the element was removed, `false` if the handle
79
+ * was already invalid (stale generation or out of range).
80
+ */
81
+ remove(handle: Handle): boolean;
82
+ /** Retrieve the element by handle. O(1). Returns `None` for stale handles. */
83
+ get(handle: Handle): Option<T>;
84
+ /** Check whether a handle still points to a live element. O(1). */
85
+ isValid(handle: Handle): boolean;
86
+ /** Remove all elements. Slots are freed for reuse. */
87
+ clear(): void;
88
+ /** Iterate over all live elements in dense order (no gaps). */
89
+ [Symbol.iterator](): Iterator<T>;
90
+ /** Iterate over (handle, value) pairs. */
91
+ entries(): Iterable<[Handle, T]>;
92
+ /**
93
+ * Apply `fn` to each live element. Faster than `for..of` because it
94
+ * avoids iterator protocol overhead.
95
+ */
96
+ forEach(fn: (value: T, handle: Handle) => void): void;
97
+ /** Return all live elements as a plain array (snapshot, not a view). */
98
+ toArray(): T[];
99
+ }
100
+ /**
101
+ * Dense, index-stable collection with O(1) insert, remove, and access.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * const vec = StableVec.create<string>();
106
+ * const h = vec.insert("hello");
107
+ * vec.get(h); // Some("hello")
108
+ * vec.remove(h);
109
+ * vec.get(h); // None
110
+ * ```
111
+ */
112
+ export declare const StableVec: {
113
+ /** Create an empty StableVec. */
114
+ readonly create: <T>() => StableVec<T>;
115
+ };
116
+ //# sourceMappingURL=stable-vec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-vec.d.ts","sourceRoot":"","sources":["../../src/data/stable-vec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD;;;;;;GAMG;AACH,MAAM,WAAW,MAAM;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAoBD;;;;;GAKG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC/C,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,sEAAsE;IACtE,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC;IAEzB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC,8EAA8E;IAC9E,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,mEAAmE;IACnE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEjC,sDAAsD;IACtD,KAAK,IAAI,IAAI,CAAC;IAEd,+DAA+D;IAC/D,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEjC,0CAA0C;IAC1C,OAAO,IAAI,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAEjC;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAEtD,wEAAwE;IACxE,OAAO,IAAI,CAAC,EAAE,CAAC;CAChB;AAgJD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;CAGxC,CAAC"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * @module stable-vec
3
+ *
4
+ * A dense, index-stable collection backed by typed arrays.
5
+ *
6
+ * Standard arrays invalidate indices when elements are removed (splice
7
+ * shifts everything after the gap). StableVec solves this by assigning
8
+ * each element a **handle** — a (index, generation) pair that remains
9
+ * valid even after other elements are inserted or removed.
10
+ *
11
+ * Internally, data is kept contiguous: removal swaps the target with the
12
+ * last element, keeping the backing store dense for cache-friendly iteration.
13
+ * A generation counter per slot detects stale handles (use-after-free).
14
+ * Freed slots are reused via an implicit free list.
15
+ *
16
+ * **Time complexities:**
17
+ * - `insert`: O(1) amortized
18
+ * - `remove`: O(1) — swap-with-last
19
+ * - `get` by handle: O(1) — one indirection + generation check
20
+ * - `iterate`: O(n) over dense data, no gaps
21
+ *
22
+ * **When to use:**
23
+ * - Long-lived collections with frequent insert/remove
24
+ * - External code holds handles that must survive mutations
25
+ * - Cache-friendly iteration matters (game loops, simulations, ECS)
26
+ *
27
+ * **When NOT to use:**
28
+ * - Short-lived, process-once arrays (just use a plain array)
29
+ * - Ordered collections (removal reorders via swap)
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const vec = StableVec.create<{ x: number; y: number }>();
34
+ * const h1 = vec.insert({ x: 1, y: 2 });
35
+ * const h2 = vec.insert({ x: 3, y: 4 });
36
+ *
37
+ * vec.get(h1); // Some({ x: 1, y: 2 })
38
+ * vec.remove(h1); // true
39
+ * vec.get(h1); // None (handle invalidated)
40
+ * vec.isValid(h1); // false
41
+ *
42
+ * // Dense iteration — no gaps
43
+ * for (const item of vec) {
44
+ * console.log(item.x, item.y);
45
+ * }
46
+ * ```
47
+ */
48
+ import { None, Some } from "../core/option.js";
49
+ // ── Factory ─────────────────────────────────────────────────
50
+ function createStableVec() {
51
+ // Dense storage: data[i] and meta[i] are paired by position.
52
+ const data = [];
53
+ const meta = [];
54
+ // Indirection table: slots[handle.index] → dataIndex + generation.
55
+ const slots = [];
56
+ // Free list: indices of slots whose data was removed and can be reused.
57
+ const freeSlots = [];
58
+ function allocSlot() {
59
+ if (freeSlots.length > 0) {
60
+ return freeSlots.pop();
61
+ }
62
+ const idx = slots.length;
63
+ slots.push({ dataIndex: -1, generation: 0 });
64
+ return idx;
65
+ }
66
+ function resolveSlot(handle) {
67
+ const slot = slots[handle.index];
68
+ if (!slot)
69
+ return undefined;
70
+ if (slot.generation !== handle.generation)
71
+ return undefined;
72
+ if (slot.dataIndex < 0)
73
+ return undefined;
74
+ return slot;
75
+ }
76
+ const vec = {
77
+ get length() {
78
+ return data.length;
79
+ },
80
+ get capacity() {
81
+ return slots.length;
82
+ },
83
+ insert(value) {
84
+ const slotIdx = allocSlot();
85
+ const slot = slots[slotIdx];
86
+ const dataIdx = data.length;
87
+ data.push(value);
88
+ meta.push({ slotIndex: slotIdx });
89
+ slot.dataIndex = dataIdx;
90
+ return { index: slotIdx, generation: slot.generation };
91
+ },
92
+ remove(handle) {
93
+ const slot = resolveSlot(handle);
94
+ if (!slot)
95
+ return false;
96
+ const removeIdx = slot.dataIndex;
97
+ const lastIdx = data.length - 1;
98
+ if (removeIdx !== lastIdx) {
99
+ // Swap with last element to keep data dense.
100
+ data[removeIdx] = data[lastIdx];
101
+ meta[removeIdx] = meta[lastIdx];
102
+ // Update the swapped element's slot to point to its new position.
103
+ const swappedSlotIdx = meta[removeIdx].slotIndex;
104
+ slots[swappedSlotIdx].dataIndex = removeIdx;
105
+ }
106
+ data.pop();
107
+ meta.pop();
108
+ // Invalidate the removed slot: bump generation, mark free.
109
+ slot.dataIndex = -1;
110
+ slot.generation++;
111
+ freeSlots.push(handle.index);
112
+ return true;
113
+ },
114
+ get(handle) {
115
+ const slot = resolveSlot(handle);
116
+ if (!slot)
117
+ return None;
118
+ const value = data[slot.dataIndex];
119
+ return value !== undefined ? Some(value) : None;
120
+ },
121
+ isValid(handle) {
122
+ return resolveSlot(handle) !== undefined;
123
+ },
124
+ clear() {
125
+ for (let i = 0; i < slots.length; i++) {
126
+ const slot = slots[i];
127
+ if (slot.dataIndex >= 0) {
128
+ slot.dataIndex = -1;
129
+ slot.generation++;
130
+ freeSlots.push(i);
131
+ }
132
+ }
133
+ data.length = 0;
134
+ meta.length = 0;
135
+ },
136
+ [Symbol.iterator]() {
137
+ let i = 0;
138
+ return {
139
+ next() {
140
+ if (i < data.length) {
141
+ return { done: false, value: data[i++] };
142
+ }
143
+ return { done: true, value: undefined };
144
+ },
145
+ };
146
+ },
147
+ *entries() {
148
+ for (let i = 0; i < data.length; i++) {
149
+ const m = meta[i];
150
+ const slot = slots[m.slotIndex];
151
+ const handle = { index: m.slotIndex, generation: slot.generation };
152
+ yield [handle, data[i]];
153
+ }
154
+ },
155
+ forEach(fn) {
156
+ for (let i = 0; i < data.length; i++) {
157
+ const m = meta[i];
158
+ const slot = slots[m.slotIndex];
159
+ fn(data[i], { index: m.slotIndex, generation: slot.generation });
160
+ }
161
+ },
162
+ toArray() {
163
+ return data.slice();
164
+ },
165
+ };
166
+ return vec;
167
+ }
168
+ // ── Public namespace ────────────────────────────────────────
169
+ /**
170
+ * Dense, index-stable collection with O(1) insert, remove, and access.
171
+ *
172
+ * @example
173
+ * ```ts
174
+ * const vec = StableVec.create<string>();
175
+ * const h = vec.insert("hello");
176
+ * vec.get(h); // Some("hello")
177
+ * vec.remove(h);
178
+ * vec.get(h); // None
179
+ * ```
180
+ */
181
+ export const StableVec = {
182
+ create: createStableVec,
183
+ };
184
+ //# sourceMappingURL=stable-vec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stable-vec.js","sourceRoot":"","sources":["../../src/data/stable-vec.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -44,9 +44,16 @@
44
44
  */
45
45
  import type { Option, OptionMatcher } from "./core/option.js";
46
46
  import type { Result, ResultMatcher } from "./core/result.js";
47
- /** Option type and constructors for nullable value handling. */
48
- export { None, Option, type OptionMatcher, Some } from "./core/option.js";
49
- /** Result type and constructors for error-as-value handling. */
47
+ /** Absent variant of Option, representing no value. */
48
+ /** Discriminated union representing a value that may or may not exist. */
49
+ /** Pattern-match arms for Option.match. */
50
+ /** Present variant constructor: wrap a value in Option. */
51
+ export { None, type NoneVariant, Option, type OptionMatcher, Some, type SomeVariant, } from "./core/option.js";
52
+ /** Create a failed Result wrapping an error value. */
53
+ /** Create a successful Result wrapping a value. */
54
+ /** Discriminated union representing success (Ok) or failure (Err). */
55
+ /** Pattern-match arms for Result.match. */
56
+ /** Execute a function in try/catch, returning Result instead of throwing. */
50
57
  export { Err, Ok, Result, type ResultMatcher, tryCatch } from "./core/result.js";
51
58
  /**
52
59
  * Universal pattern match for {@link Result} and {@link Option}.
@@ -62,111 +69,217 @@ export { Err, Ok, Result, type ResultMatcher, tryCatch } from "./core/result.js"
62
69
  */
63
70
  /** Pattern match on a Result or Option, handling each variant. */
64
71
  export declare function match<T, E, U>(value: Result<T, E>, matcher: ResultMatcher<T, E, U>): U;
72
+ /** Pattern match on an Option, handling Some and None variants. */
65
73
  export declare function match<T, U>(value: Option<T>, matcher: OptionMatcher<T, U>): U;
66
- /** In-memory cache with TTL and optional LRU eviction. */
74
+ /** In-memory cache namespace with TTL and optional LRU eviction. */
75
+ /** A cache instance with get, set, delete, and cache-aside operations. */
76
+ /** Configuration options for creating a Cache. */
67
77
  export { Cache, type CacheInstance, type CacheOptions } from "./async/cache.js";
68
78
  /** Async communication channel for producer-consumer patterns. */
69
79
  export { Channel } from "./async/channel.js";
70
- /** Circuit breaker resilience pattern for failing-fast on repeated errors. */
80
+ /** Circuit breaker namespace for protecting Tasks against cascading failures. */
81
+ /** A circuit breaker instance with protect, state, and reset operations. */
82
+ /** Configuration for a circuit breaker (thresholds and timeout). */
83
+ /** Error returned when the circuit is open and requests are rejected. */
84
+ /** The three states of a circuit breaker: closed, open, or half-open. */
71
85
  export { CircuitBreaker, type CircuitBreakerInstance, type CircuitBreakerPolicy, CircuitOpen, type CircuitState, } from "./async/circuit-breaker.js";
72
- /** Cron-scheduled task runner with typed job callbacks. */
86
+ /** Cron-scheduled task runner namespace with start/stop lifecycle. */
87
+ /** A running cron job instance with start and stop controls. */
88
+ /** Configuration for creating a CronRunner (schedule, handler, options). */
73
89
  export { CronRunner, type CronRunnerInstance, type CronRunnerOptions, } from "./async/cron-runner.js";
74
90
  /** Reader-style dependency injection for async computations. */
75
91
  export { Env } from "./async/env.js";
76
- /** Type-safe event emitter with typed event maps. */
92
+ /** Type-safe event emitter namespace with typed event maps. */
93
+ /** A type-safe event emitter instance with on, off, and emit operations. */
77
94
  export { EventEmitter, type EventEmitterInstance } from "./async/event-emitter.js";
78
95
  /** Deferred evaluation that computes a value at most once. */
79
96
  export { Lazy } from "./async/lazy.js";
80
- /** Generic resource pool with idle timeout and health checks. */
97
+ /** Generic resource pool namespace with idle timeout and health checks. */
98
+ /** Error returned when a pool operation fails. */
99
+ /** A resource checked out from the pool with value and release handle. */
100
+ /** A resource pool instance with acquire, release, use, and drain operations. */
101
+ /** Configuration for creating a resource pool (factory, size, timeout). */
81
102
  export { Pool, PoolError, type PooledResource, type PoolInstance, type PoolOptions, } from "./async/pool.js";
82
- /** Async job queue with concurrency control. */
103
+ /** A queued job with id, data, priority, and creation timestamp. */
104
+ /** Async job queue namespace with concurrency control. */
105
+ /** A queue instance with push, pause, resume, and drain operations. */
106
+ /** Configuration for creating a Queue (concurrency, handler, options). */
83
107
  export { type Job, Queue, type QueueInstance, type QueueOptions } from "./async/queue.js";
84
- /** Token-bucket rate limiter for throttling operations. */
108
+ /** Error returned when the rate limit is exceeded. */
109
+ /** Token-bucket rate limiter namespace for throttling operations. */
110
+ /** A rate limiter instance with tryAcquire and wrap operations. */
111
+ /** Token bucket configuration (capacity, refill rate, refill interval). */
85
112
  export { RateLimited, RateLimiter, type RateLimiterInstance, type RateLimiterPolicy, } from "./async/rate-limiter.js";
86
- /** Configurable retry policy with backoff strategies. */
87
- export { Retry, type RetryPolicy } from "./async/retry.js";
88
- /** Semaphore and mutex primitives for concurrency control. */
89
- export { Mutex, type MutexInstance, Semaphore, type SemaphoreInstance } from "./async/semaphore.js";
113
+ /** Configurable retry policy namespace with backoff strategies. */
114
+ /** An immutable retry policy describing how and when to retry. */
115
+ export { Retry, type RetryPolicy, } from "./async/retry.js";
116
+ /** Mutual exclusion lock allowing only one task at a time. */
117
+ /** A mutex instance with acquire and wrap operations. */
118
+ /** Counting semaphore namespace for concurrency control. */
119
+ /** A semaphore instance with acquire, wrap, available, and pending operations. */
120
+ /** A release function returned after acquiring a semaphore permit. */
121
+ export { Mutex, type MutexInstance, type Release, Semaphore, type SemaphoreInstance, } from "./async/semaphore.js";
122
+ /** Error returned when a state machine transition is invalid. */
90
123
  /** Typed finite state machine with validated transitions. */
91
124
  export { InvalidTransition, StateMachine } from "./async/state-machine.js";
92
125
  /** Lazy async sequence with backpressure and ReadableStream bridge. */
93
126
  export { Stream } from "./async/stream.js";
94
127
  /** Lazy, composable async computation that returns Result on run. */
95
128
  export { Task } from "./async/task.js";
96
- /** Timer utilities for sleep, interval, delay, and deadline. */
129
+ /** Shared structural interface for Task-shaped values with a `.run()` method. */
130
+ /** Create a TaskLike from a run function. */
131
+ export { makeTask, type TaskLike } from "./async/task-like.js";
132
+ /** Error returned when a deadline is exceeded. */
133
+ /** Timer namespace for sleep, interval, delay, and deadline operations. */
97
134
  export { TimeoutError, Timer } from "./async/timer.js";
98
- /** HTTP client built on Task with typed error variants. */
99
- export { Client, type ClientError, type ClientInstance, type ClientOptions, type ClientResponse, HttpError, NetworkError, ParseError, } from "./client.js";
100
- /** Typed equality comparison. */
135
+ /** HTTP client namespace built on Task with typed error variants. */
136
+ /** Union of all client error types (NetworkError, HttpError, ParseError). */
137
+ /** An HTTP client instance with get, post, put, patch, delete, and request methods. */
138
+ /** Configuration for creating a Client (baseUrl, headers, fetch). */
139
+ /** A typed HTTP response wrapper with status, headers, json, and text. */
140
+ /** Server returned a non-2xx status code. */
141
+ /** Network-level failure (DNS, timeout, connection refused). */
142
+ /** Response body could not be parsed (JSON, text, etc.). */
143
+ /** Request options for the HTTP client (headers, body, signal). */
144
+ export { Client, type ClientError, type ClientInstance, type ClientOptions, type ClientRequestOptions, type ClientResponse, HttpError, NetworkError, ParseError, } from "./client.js";
145
+ /** Typed equality comparison typeclass. */
101
146
  export { Eq } from "./core/eq.js";
102
- /** Optics for immutable nested data access and updates. */
147
+ /** Lossless bidirectional transformation between two types. */
148
+ /** Total optic for reading and updating a value that always exists in the source. */
149
+ /** Partial optic for reading and updating a value that may not exist in the source. */
150
+ /** Optic focusing on a variant of a sum type via getOption and reverseGet. */
151
+ /** Optic focusing on multiple targets within a data structure. */
103
152
  export { Iso, Lens, LensOptional, Prism, Traversal } from "./core/lens.js";
104
- /** Exhaustive pattern matching with compile-time coverage. */
153
+ /** Exhaustive pattern matching builder with compile-time coverage checking. */
105
154
  export { Match } from "./core/match.js";
106
- /** Typed ordering and comparison. */
155
+ /** Typed ordering and comparison typeclass. */
107
156
  export { Ord } from "./core/ord.js";
108
- /** Left-to-right function composition and piping. */
157
+ /** Compose functions left-to-right into a new function (point-free). */
158
+ /** Pass a value through a sequence of unary functions left-to-right. */
109
159
  export { flow, pipe } from "./core/pipe.js";
110
- /** Pure state monad for threading state through computations. */
160
+ /** Pure state monad for threading state through a sequence of computations. */
111
161
  export { State } from "./core/state.js";
112
162
  /** Algebraic data type constructor with exhaustive matching. */
113
163
  export { ADT } from "./data/adt.js";
114
- /** Bidirectional codec for encoding and decoding values. */
164
+ /** Bidirectional codec namespace for encoding and decoding values. */
165
+ /** Interface describing a bidirectional codec that can decode and encode. */
115
166
  export { Codec, type CodecType } from "./data/codec.js";
116
- /** Immutable Record, List constructors and immutability check. */
167
+ /** Check whether a value is an ImmutableRecord or ImmutableList. */
168
+ /** Create an immutable list from an array of items. */
169
+ /** Create an immutable record from a plain object. */
117
170
  export { isImmutable, List, Record } from "./data/constructors.js";
118
171
  /** Recursively marks all properties as readonly. */
119
172
  export type { DeepReadonly } from "./data/internals.js";
120
- /** An immutable array with functional methods. */
173
+ /** An immutable array with functional query and update methods. */
174
+ /** Methods available on every ImmutableList instance. */
121
175
  export type { ImmutableList, ListMethods } from "./data/list.js";
122
176
  /** Non-empty list guaranteeing at least one element at the type level. */
123
177
  export { NonEmptyList } from "./data/non-empty-list.js";
124
- /** An immutable object with type-safe update methods. */
178
+ /** An immutable object with type-safe structural update methods. */
179
+ /** Methods available on every ImmutableRecord instance. */
125
180
  export type { ImmutableRecord, RecordMethods } from "./data/record.js";
126
- /** Runtime data validation with composable schemas. */
181
+ /** Runtime data validation namespace with composable schemas. */
182
+ /** Describes a validation error at a specific path. */
183
+ /** Interface for a composable validation schema that parses unknown into T. */
127
184
  export { Schema, type SchemaError, type SchemaType } from "./data/schema.js";
128
- /** Structured cloning using the web standard algorithm. */
185
+ /** Dense, index-stable collection with O(1) insert, remove, and access. */
186
+ /** Opaque reference to an element in a StableVec. */
187
+ export { type Handle, StableVec } from "./data/stable-vec.js";
188
+ /** Structured cloning namespace using the web standard algorithm. */
189
+ /** Error returned when a deep clone operation fails. */
129
190
  export { Clone, CloneError } from "./io/clone.js";
130
- /** Web standard compression and decompression streams. */
191
+ /** Web standard compression and decompression namespace. */
192
+ /** Error returned when compression or decompression fails. */
131
193
  export { Compression, CompressionError } from "./io/compression.js";
132
- /** Web standard cryptographic hashing, encryption, and random bytes. */
194
+ /** Web standard cryptographic hashing, encryption, and random bytes namespace. */
195
+ /** Error returned when a cryptographic operation fails. */
133
196
  export { Crypto, CryptoError } from "./io/crypto.js";
134
- /** Cross-runtime DNS resolution returning Result. */
135
- export { Dns, DnsError, type DnsRecord } from "./io/dns.js";
136
- /** Base64, hex, and UTF-8 encoding and decoding. */
197
+ /** Cross-runtime DNS resolution namespace returning Task. */
198
+ /** Error returned when DNS resolution fails. */
199
+ /** A resolved DNS address with IP family. */
200
+ /** DNS record type for resolution queries. */
201
+ export { Dns, DnsError, type DnsRecord, type DnsType } from "./io/dns.js";
202
+ /** Base64, hex, and UTF-8 encoding and decoding namespace. */
203
+ /** Error returned when an encoding or decoding operation fails. */
137
204
  export { Encoding, EncodingError } from "./io/encoding.js";
138
- /** Cross-runtime file read, write, append, stat, and remove. */
205
+ /** Cross-runtime file read, write, append, stat, and remove namespace. */
206
+ /** Error returned when a file system operation fails. */
207
+ /** Metadata returned by File.stat (isFile, isDirectory, size, mtime). */
139
208
  export { File, FileError, type FileStat } from "./io/file.js";
140
- /** Safe JSON parse and stringify returning Result. */
209
+ /** Safe JSON parse and stringify namespace returning Result. */
210
+ /** Error returned when JSON parse or stringify fails. */
141
211
  export { Json, JsonError } from "./io/json.js";
142
- /** Cross-runtime TCP client connections. */
212
+ /** Cross-runtime TCP client namespace. */
213
+ /** Error returned when a TCP connection or communication fails. */
214
+ /** A connected TCP socket with send, receive, and close operations. */
143
215
  export { Net, NetError, type TcpConnection } from "./io/net.js";
144
- /** Cross-runtime subprocess execution with typed results. */
216
+ /** Cross-runtime subprocess execution namespace. */
217
+ /** Error returned when subprocess execution fails. */
218
+ /** Options for subprocess execution (cwd, env, timeout, stdin). */
219
+ /** Output of a subprocess execution (exitCode, stdout, stderr). */
145
220
  export { Command, CommandError, type CommandOptions, type CommandResult } from "./io/subprocess.js";
146
- /** URL parsing and manipulation returning Result. */
221
+ /** URL parsing and manipulation namespace returning Result. */
222
+ /** Error returned when URL parsing or construction fails. */
147
223
  export { Url, UrlError } from "./io/url.js";
148
224
  /** Application lifecycle with graceful shutdown and error boundary. */
149
- export { Program } from "./program.js";
225
+ /** Configuration options for Program (teardown timeout). */
226
+ export { Program, type ProgramOptions } from "./program.js";
150
227
  /** Typed environment variable validation and access. */
151
228
  export { Config } from "./runtime/config.js";
152
229
  /** Structured logger with configurable levels and formatters. */
153
- export { Logger } from "./runtime/logger.js";
230
+ /** Configuration options for creating a Logger. */
231
+ /** Log severity levels, ordered from least to most severe. */
232
+ /** A structured log record passed to log sinks. */
233
+ /** A log sink function that receives formatted log entries. */
234
+ export { Logger, type LoggerOptions, type LogLevel, type LogRecord, type LogSink, } from "./runtime/logger.js";
154
235
  /** Cross-runtime OS information (hostname, arch, memory). */
155
236
  export { Os } from "./runtime/os.js";
156
- /** Cross-platform path manipulation, line endings, and platform detection. */
237
+ /** Line ending constants and normalization. */
238
+ /** OS-aware path manipulation without node:path dependency. */
239
+ /** Parsed path components (root, dir, base, ext, name). */
240
+ /** Runtime platform detection (isWindows, isPosix). */
157
241
  export { Eol, Path, type PathParts, Platform } from "./runtime/platform.js";
158
- /** Cross-runtime process info, cwd, env, and exit. */
159
- export { Process, ProcessError } from "./runtime/process.js";
160
- /** HTTP server with typed routing, middleware composition, and runtime adapters. */
242
+ /** Cross-runtime process info, cwd, env, args, and exit namespace. */
243
+ /** Error returned when a process operation fails. */
244
+ /** Memory usage statistics returned by Process.memoryUsage. */
245
+ export { type MemoryUsage, Process, ProcessError } from "./runtime/process.js";
246
+ /** Failed to read the request body. */
247
+ /** Request context passed to route handlers with req, url, and params. */
248
+ /** Compose multiple middleware functions into a single middleware. */
249
+ /** Extract parameter names from a route pattern literal type. */
250
+ /** A route handler that receives Context and returns Response or Task. */
251
+ /** Handler threw or returned a failed Task. */
252
+ /** Supported HTTP methods for route registration. */
253
+ /** Create an HTML response with text/html content-type. */
254
+ /** Create a JSON response with application/json content-type. */
255
+ /** Options for starting the server (port, hostname, teardown timeout). */
256
+ /** Route path matched but method is not registered for it. */
257
+ /** Middleware wrapping the next handler for cross-cutting concerns. */
258
+ /** Mapped object type with a key for each extracted route parameter. */
259
+ /** A single route definition with method, pattern, and handler. */
260
+ /** No route matched the request path. */
261
+ /** Create a redirect response (default 302). */
262
+ /** HTTP server builder with typed routing, middleware, and runtime adapters. */
263
+ /** Adapter interface for plugging in different HTTP server runtimes. */
264
+ /** Immutable builder for composing routes, middleware, and context derivers. */
265
+ /** Union of all server-related error types. */
266
+ /** Typed middleware that can extend the request context. */
267
+ /** Create a plain text response with text/plain content-type. */
161
268
  export { BodyReadError, type Context, compose, type ExtractParams, type Handler, HandlerError, type HttpMethod, html, json, type ListenOptions, MethodNotAllowed, type Middleware, type Params, type RouteDefinition, RouteNotFound, redirect, Server, type ServerAdapter, type ServerBuilder, type ServerError, type TypedMiddleware, text, } from "./server.js";
162
- /** Cron expression parser and validator. */
269
+ /** Cron expression parser and validator namespace. */
270
+ /** A validated cron expression string (5-field standard format). */
163
271
  export { Cron, type CronExpression } from "./types/cron.js";
164
- /** Type-safe duration with unit conversions. */
272
+ /** Type-safe duration namespace with unit conversions. */
165
273
  export { Duration } from "./types/duration.js";
166
274
  /** Structured error type constructor with tag-based discrimination. */
275
+ /** Callable constructor that creates tagged, immutable error instances. */
167
276
  export { ErrType, type ErrTypeConstructor } from "./types/error.js";
168
277
  /** Phantom-branded nominal type for compile-time domain safety. */
169
278
  export type { Type } from "./types/nominal.js";
170
- /** WebSocket handler routing with typed message protocols. */
171
- export { WebSocket, type WebSocketConnection, type WebSocketHandler, type WebSocketRouter, } from "./ws.js";
279
+ /** WebSocket routing and handler definitions namespace. */
280
+ /** A WebSocket connection with typed send and close operations. */
281
+ /** Event handlers for a WebSocket route (onOpen, onMessage, onClose, onError). */
282
+ /** A WebSocket route definition mapping a URL pattern to a handler. */
283
+ /** A WebSocket router that holds route definitions with pattern matching. */
284
+ export { WebSocket, type WebSocketConnection, type WebSocketHandler, type WebSocketRoute, type WebSocketRouter, } from "./ws.js";
172
285
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}