# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## 4.2.1 (2026-09-06)

### Performance Improvements

- optimise package hot paths and JSON editing ([f3112bd](https://github.com/codsen/codsen/commit/f3112bd7fc0d7c9bc09312d3744c950691d72ca5))

## 4.2.0 (2026-08-19)

### Bug Fixes

- resolve various review findings ([b60e9ee](https://github.com/codsen/codsen/commit/b60e9eeb499af94685cfb87b4970fe025be1fc10))
- retire direct publish aliases ([f98e31e](https://github.com/codsen/codsen/commit/f98e31eb89bc185471225664e610b55f34fbf648))

### Features

- add codsen-glob and migrate glob consumers ([5595a2b](https://github.com/codsen/codsen/commit/5595a2b267eaa6cb60072d037aef00b7a28edd42))
- refresh the tooling and generate with the latest dependencies ([781f802](https://github.com/codsen/codsen/commit/781f802911066a82a4533b0e5a3fcbd742d0dd83))

### Performance Improvements

- stop scanning after the first matching range ([a24e0ba](https://github.com/codsen/codsen/commit/a24e0ba51c1bb2b1b5aaae05764ad95276cf7611))

### Reverts

- Revert "Merge pull request #128 from codsen/release/npm-32198404552-1" ([5baeeaa](https://github.com/codsen/codsen/commit/5baeeaaa677b86f1eaa6396cadf3aea32b06416e)), closes [#128](https://github.com/codsen/codsen/issues/128)
- Revert "Merge pull request #127 from codsen/release/npm-32194020886-1" ([5f1e94d](https://github.com/codsen/codsen/commit/5f1e94deef910ce735266b16aeee08a76de7a862)), closes [#127](https://github.com/codsen/codsen/issues/127)

## 4.0.0 (2022-12-01)

### BREAKING CHANGES

- Minimum supported Node version is v14.18; we're dropping v12 support

## 3.2.0 (2022-08-12)

### Features

- export types ([5b3c5c9](https://github.com/codsen/codsen/commit/5b3c5c98ded1ab8eb877aa4fb7567a9d63d51005))
- export types ([11b5fb9](https://github.com/codsen/codsen/commit/11b5fb936ce20e0a77c3a09806773e1cd7695c50))

## 3.1.1 (2022-04-18)

### Fixed

- tweak types ([53e36a4](https://github.com/codsen/codsen/commit/53e36a4d3fa58109493b86b8e31e6e85fde1a92a))

## 3.1.0 (2022-04-11)

### Features

- export defaults and version ([1107244](https://github.com/codsen/codsen/commit/1107244b45eff96ac1fc4ab992031ede0d10ba8c))

## 3.0.0 (2021-09-09)

### Features

- migrate to ES Modules ([8c9d95d](https://github.com/codsen/codsen/commit/8c9d95d5dea0b769c2f070397141918a4893d575))

### BREAKING CHANGES

- programs now are in ES Modules and won't work with Common JS `require()`

## 2.1.0 (2021-05-24)

### Features

- config file based major bump blacklisting ([e15f9bb](https://github.com/codsen/codsen/commit/e15f9bba1c4fd5f847ac28b3f38fa6ee633f5dca))

## 2.0.15 (2021-04-11)

### Reverts

- Revert "chore: setup refresh" ([23cf206](https://github.com/codsen/codsen/commit/23cf206970a087ff0fa04e61f94d919f59ab3881))

## 2.0.1 (2021-01-28)

### Fixed

- add `testStats` to npmignore ([f3c84e9](https://github.com/codsen/codsen/commit/f3c84e95afc5514214312f913692d85b2e12eb29))

## 2.0.0 (2021-01-23)

### Features

- rewrite in TS and start using named exports ([a716ebe](https://github.com/codsen/codsen/commit/a716ebe4d095bf9cb2c92965144dbd25206556b6))

### BREAKING CHANGES

- before: `import isIndexWithin from ...` - now `import { isIndexWithin } from ...`

## 1.16.0 (2020-11-28)

Accidental version bump during migration to SourceHut. Sorry about that.

## 1.15.0 (2020-09-24)

### Features

- add safeguards against wrong input types ([2949e4d](https://gitlab.com/codsen/codsen/commit/2949e4dbad8cac2c97996401b21fafffc83aff6e))

## 1.14.0 (2019-06-01)

### Features

- Add benchmark ([e8ad5d6](https://gitlab.com/codsen/codsen/commit/e8ad5d6))
- Rebase removing all dependencies, simplifying algorithm and making it around 85x faster ([a6fb39f](https://gitlab.com/codsen/codsen/commit/a6fb39f))

## 1.14.0 (2019-05-11)

Rebased the program to be around 84 times faster - from around 4,443 ops/sec to 396,730 ops/sec. The plain `Array.some`/`Array.find` is still around 1.4 times faster (around 490,747 ops/sec) but we perform input validation and still return a result if null is given (meaning there are no ranges) so it simplifies the code of the parent packages.

- 💥 Removed `opts.skipIncomingRangeSorting` because we're switched to simple `Array.some` now
- 💥 Removed all dependencies:
  - `lodash.isplainobject`
  - `check-types-mini`
  - `is-natural-number-string`
  - `is-natural-number`
  - `ordinal-number-suffix`
  - `ranges-sort`

## 1.13.0 (2019-01-20)

- Various documentation and setup tweaks after we migrated to monorepo
- Setup refresh: updated dependencies and all config files using automated tools

## 1.9.0 (2018-12-26)

- Now we allow null as ranges array value (2nd arg.) ([4c57155](https://gitlab.com/codsen/codsen/tree/master/packages/ranges-is-index-within/commits/4c57155))
- Setup refresh and tiny rebasing ([4e5cb2c](https://gitlab.com/codsen/codsen/tree/master/packages/ranges-is-index-within/commits/4e5cb2c))

## 1.8.0 (2018-10-25)

- Updated all dependencies
- Restored coveralls.io reporting
- Restored unit test linting

## 1.7.0 (2018-07-26)

- We now allow 2nd argument to be `null`. This will instantly yield `false` result and will not `throw`. It's because we want to avoid type checks, and Slices method `.current()` returns either ranges array or `null`. Latter would have `throw`n up until now.

## 1.6.0 (2018-06-16)

GitHub sold us out. In the meantime, we:

- Migrated to BitBucket (to host repo + perform CI) and Codacy (for code quality audit)
- Dropped BitHound (RIP) and Travis

## 1.5.0 (2018-05-11)

Setup refresh. Plus:

- Set up [Prettier](https://prettier.io)
- Removed `package.lock` and `.editorconfig`
- Wired Rollup to remove comments from non-dev builds. This means we can now leave the `console.log`s in the source code — Rollup will remove from production code.
- Unit tests are pointing at ES modules build, which means that code coverage is correct now, without Babel functions being missed

## 1.4.0 (2018-02-06)

- `opts.skipIncomingRangeSorting`

## 1.3.0 (2018-01-10)

- `opts.returnMatchedRangeInsteadOfTrue`

## 1.2.0 (2017-11-29)

- Set up Rollup and now we generate three builds: CommonJS, UMD and ES Modules.
- Rebased the source to be in ES Modules.

## 1.1.0 (2017-09-13)

- If any of the ranges has starting index bigger than ending (like `[2, 1]`), it does not make sense and program will `throw`.
- Even more unit tests. It does not matter that there's 100% coverage, the more the better, especially testing edge cases.

## 1.0.0 (2017-09-13)

- Initial release
