An educational pure functional programming library in TypeScript
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Release v0.1.0-alpha.14

+23 -2
+22 -1
CHANGELOG.md
··· 2 2 3 3 All notable changes to this project will be documented in this file. 4 4 5 + ## [0.1.0-alpha.14] - 2026-04-03 6 + 7 + ### Fixed 8 + 9 + - **Bracket resource leak on fiber interruption** — release handlers now run when a fiber is interrupted during async `use` phase, preventing resource leaks 10 + - **Unsafe `toResult` non-null assertion** — `invalid()` now requires at least one error (`readonly [E, ...E[]]`), eliminating the `errors[0]!` assertion that could produce `undefined` 11 + - **`matchValidation` error type** — `onInvalid` callback now receives `readonly [E, ...E[]]` matching the `Invalid` type 12 + 13 + ### Removed 14 + 15 + - **Duplicate `eachTraversal`** from bridges module — use `each()` from the traversal module instead 16 + 17 + ### Added 18 + 19 + - **35 new tests** (414 total) 20 + - Bracket + fiber interruption tests verifying release runs and exit is `Interrupted` 21 + - `yieldNow` and `fiberId` test coverage 22 + - 8 additional optics `compose` overload tests (prism+lens, prism+prism, lens+optional, optional+lens, optional+optional, lens+traversal, traversal+lens, prism+optional) 23 + - Optional algebraic law tests (getOption-set, set-getOption) 24 + - Traversal algebraic law tests (identity, composition) 25 + 5 26 ## [0.1.0-alpha.13] - 2026-03-19 6 27 7 28 ### Added ··· 12 33 - **Optional** — focus that may be absent (`getOption`, `setOptional`, `modifyOptional`, `index`) 13 34 - **Traversal** — focus on many values (`getAll`, `modifyTraversal`, `each`) 14 35 - **Type-safe `compose`** — 16 overloads enforcing composition rules (Lens+Lens=Lens, Lens+Prism=Optional, etc.) 15 - - **Bridges** — pre-built optics for Result (`okPrism`, `errPrism`), Option (`somePrism`), Validation (`validPrism`), arrays (`eachTraversal`) 36 + - **Bridges** — pre-built optics for Result (`okPrism`, `errPrism`), Option (`somePrism`), Validation (`validPrism`) 16 37 - **44 law-based tests** verifying get-set, set-get, set-set, preview-review, and review-preview laws 17 38 18 39 ## [0.1.0-alpha.12] - 2026-02-28
+1 -1
package.json
··· 1 1 { 2 2 "name": "purus-ts", 3 - "version": "0.1.0-alpha.13", 3 + "version": "0.1.0-alpha.14", 4 4 "description": "Pure TypeScript effect system with fiber-based concurrency, brands, refinements, and pattern matching", 5 5 "type": "module", 6 6 "main": "./dist/index.js",