From 312c03cf06ef5731b7df24616b6c25bdcb867c54 Mon Sep 17 00:00:00 2001 From: Jordan Baker Date: Sat, 3 Oct 2026 22:10:27 -0600 Subject: [PATCH 1/2] chore(master): release 2.1.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 895bf0e..969d3db 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.0.0" + ".": "2.1.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bbbce5..f72f6f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,38 @@ # Changelog +## [2.1.0](https://github.com/hexsprite/intervaltree/compare/v2.0.0...v2.1.0) (2026-10-04) + + +### Features + +* add IntervalTree.fromJSON for exact serialize round trips ([bfe9bbe](https://github.com/hexsprite/intervaltree/commit/bfe9bbe1e439785fdb9eb4bcc61427a2709d6764)) +* export ArrayIntervalCollection as reference implementation ([c4ccdf6](https://github.com/hexsprite/intervaltree/commit/c4ccdf6b9526608dbc3cfd4e3e2e93a094da26f1)) +* **spike:** prototype gaps() free-slot query with property test ([7a1d323](https://github.com/hexsprite/intervaltree/commit/7a1d323340df631d904ff3439306f1a877f275fa)) +* widen IntervalCollection to the full API ([54cf430](https://github.com/hexsprite/intervaltree/commit/54cf43029ada01661d09296473f3960ad9e23f5b)) + + +### Bug Fixes + +* add exports map so require() resolves the cjs build ([8619f02](https://github.com/hexsprite/intervaltree/commit/8619f0205c6ffb30b2f37f26441e87143ed077f7)) +* align ArrayIntervalCollection hash and constructor with IntervalTree ([d72a67b](https://github.com/hexsprite/intervaltree/commit/d72a67b5aff1c9ae422deb8e4b4ab5627a2d8812)) +* correct chop assertion message ([05a2fd3](https://github.com/hexsprite/intervaltree/commit/05a2fd39c135004ac565382aec28547eea4a1012)) +* default invariant checks off and read flag at runtime ([ccef5d9](https://github.com/hexsprite/intervaltree/commit/ccef5d9a285bd39e61a6f4bb78b3e139119d8b84)) +* guard searchByLengthStartingAt against non-positive minLength ([e7e6639](https://github.com/hexsprite/intervaltree/commit/e7e6639a662fb9ef62fb6f9f30aa2bf94393fde7)) +* keep same-start intervals sorted by end so equals/first/last are order-independent ([29d5cad](https://github.com/hexsprite/intervaltree/commit/29d5cadd727cca74d4f7a7b8c540446a0ac0886c)) +* make empty chop ranges a no-op and validate chopAll ranges up front ([a81addd](https://github.com/hexsprite/intervaltree/commit/a81addd98932a4c4b9cae2aea8171d16341f84a1)) +* make verify() read-only and check every invariant ([fe229e1](https://github.com/hexsprite/intervaltree/commit/fe229e12a8f675619970472efe42b92d7c9430de)) +* require a gap between intervals in a clean tree ([53ab6ce](https://github.com/hexsprite/intervaltree/commit/53ab6ce03540b2c0b910b93e266e417941f1726e)) +* return the largest-end interval from last() and document canonical order ([b7ae950](https://github.com/hexsprite/intervaltree/commit/b7ae950134d73a46852d3c9d90b1656e41eb5b76)) +* sort searchByLengthStartingAt results after clipping to startingAt ([686140c](https://github.com/hexsprite/intervaltree/commit/686140c7063d555c913fe69c00d60800fee59bab)) +* stop chopAll from mutating the caller's ranges ([5875f5d](https://github.com/hexsprite/intervaltree/commit/5875f5d11c828ea7cdaf99a54f7baf0ae09cbee5)) +* verify strict ordering of left child ([a927b23](https://github.com/hexsprite/intervaltree/commit/a927b234d012dea0e75d78474daa75c1c268b849)) + + +### Performance Improvements + +* copy augmentation fields in Node.clone instead of recomputing ([6a06086](https://github.com/hexsprite/intervaltree/commit/6a06086f4954db7926556d5ae305f7d3078b3517)) +* early-exit contains() and overlaps() ([802dd09](https://github.com/hexsprite/intervaltree/commit/802dd09a91a024affb181e8e17bb757e6052f07b)) + ## [2.0.0](https://github.com/hexsprite/intervaltree/compare/v1.4.1...v2.0.0) (2026-05-13) diff --git a/package.json b/package.json index b4117c1..88657b0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "intervaltree", "type": "module", - "version": "2.0.0", + "version": "2.1.0", "description": "Interval tree for JavaScript", "author": "Jordan Baker", "license": "MIT", From 06e51b475067e8f3be49c55e93a03fdda5f0e9fb Mon Sep 17 00:00:00 2001 From: Jordan Baker Date: Sat, 3 Oct 2026 22:11:21 -0600 Subject: [PATCH 2/2] docs: edit 2.1.0 release notes Drop the gaps() spike line: gaps is not exported. Name the tree-core speedup, which landed as refactor commits and so is hidden by default. Claude-Session: https://claude.ai/code/session_01LvcQF6DarWXfPCstXTDykn --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f72f6f6..696ed2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,6 @@ * add IntervalTree.fromJSON for exact serialize round trips ([bfe9bbe](https://github.com/hexsprite/intervaltree/commit/bfe9bbe1e439785fdb9eb4bcc61427a2709d6764)) * export ArrayIntervalCollection as reference implementation ([c4ccdf6](https://github.com/hexsprite/intervaltree/commit/c4ccdf6b9526608dbc3cfd4e3e2e93a094da26f1)) -* **spike:** prototype gaps() free-slot query with property test ([7a1d323](https://github.com/hexsprite/intervaltree/commit/7a1d323340df631d904ff3439306f1a877f275fa)) * widen IntervalCollection to the full API ([54cf430](https://github.com/hexsprite/intervaltree/commit/54cf43029ada01661d09296473f3960ad9e23f5b)) @@ -32,6 +31,7 @@ * copy augmentation fields in Node.clone instead of recomputing ([6a06086](https://github.com/hexsprite/intervaltree/commit/6a06086f4954db7926556d5ae305f7d3078b3517)) * early-exit contains() and overlaps() ([802dd09](https://github.com/hexsprite/intervaltree/commit/802dd09a91a024affb181e8e17bb757e6052f07b)) +* faster add, remove, chop, chopAll, and removeEnveloped (5–12% in the bundled benchmarks): the tree core now tracks its own size and reports insert/remove results without module-level state ([03c9d74](https://github.com/hexsprite/intervaltree/commit/03c9d74)) ## [2.0.0](https://github.com/hexsprite/intervaltree/compare/v1.4.1...v2.0.0) (2026-05-13)