Changelog

All notable changes to this project will be documented in this file.
See Conventional Commits opens in a new tab for commit guidelines.

9.0.0

1 Dec 2022

💥 BREAKING CHANGES

  • Minimum supported Node version is v14.18; we’re dropping v12 support

8.2.0

12 Aug 2022

Features

8.1.0

11 Apr 2022

Features

  • export defaults and version (1107244)

8.0.0

9 Sept 2021

Features

💥 BREAKING CHANGES

  • programs now are in ES Modules and won’t work with Common JS require()

7.1.0

24 May 2021

Features

  • config file based major bump blacklisting (e15f9bb)

7.0.15

11 Apr 2021

Reverts

  • Revert “chore: setup refresh” (23cf206)

7.0.1

28 Jan 2021

🔧 Fixed

  • add testStats to npmignore (f3c84e9)

7.0.0

23 Jan 2021

Features

  • rewrite in TS and start using named exports (3fdf215)

💥 BREAKING CHANGES

  • previously: import rMerge from … — now import { rMerge } from …

6.2.0

29 Nov 2020

Features

  • simplify with unary plus operator (39a9f57)

6.1.0

29 Nov 2020

Features

  • simplify with unary plus operator (39a9f57)

6.0.0

28 Nov 2020

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

5.0.0

7 Sept 2020

Features

  • discard any null ranges when merging (ae51bce)
  • return null instead of empty array (27fa708)

💥 BREAKING CHANGES

  • return null instead of empty array

4.3.0

1 Feb 2020

Features

  • remove a dependency, rebase a little (625ba18)

4.2.0

1 Jun 2019

Features

  • Tweak API to correctly interpret opts.processFn given as an empty plain object (bcedd6e)

4.1.0

17 Mar 2019

Features

  • opts.joinRangesThatTouchEdges (40cf7e6)

3.12.0

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

3.8.0

26 Dec 2018
  • Improvements against input argument mutation (924c7ae)
  • Removes ranges with no third arg with identical start and end points (707553b)

3.7.0

29 Nov 2018
  • Second input argument — progressFn is added, it will report percentage done so far. It’s used in worker setups.

3.6.0

25 Oct 2018
  • Updated all dependencies
  • Restored coveralls.io reporting
  • Restored unit test linting

3.5.0

17 Aug 2018
  • Apparently the input arguments were mutated on some cases. That’s fixed now.

3.4.0

16 Aug 2018
  • Now, ranges with identical starting and ending points with no third argument (nothing to add) will be removed. They’re futile anyway. It’s like saying at this index… and saying nothing else.

3.3.0

11 Jun 2018

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
  • Removed package-lock

3.2.0

26 May 2018
  • Set up Prettier on a custom ESLint rule set.
  • Removed package.lock and .editorconfig
  • Wired Rollup to remove comments from non-dev builds. This means we can now leave the console.logs in the source code — there’s no need to comment-out console.log statements or care about them not spilling into production. Now it’s done automatically.
  • Unit tests are pointing at ES modules build, which means that code coverage is correct now, without Babel functions being missed. This is important because now code coverage is real again and now there are no excuses not to perfect it.

3.1.0

29 Dec 2017
  • If third argument is null on any side being merged, output is always null. This will stand for explicit “no” to remove any content to be added. Sibling libraries will tap this feature.

Previously null would have been turned into a string and shown/concatenated like that which was meaningless and kindof erroneous. We never used null anyway. That’s why this is not a major semver bump but minor — it’s only a feature, an extension of the API.

3.0.0

5 Dec 2017
  • If you have two ranges where second-one completely overlaps the first-one and the first has third argument, something to insert in its place, that third argument will be discarded upon merge.

Let’s say you got these two ranges:

[
  [5, 6, “ “],
  [1, 10],
];

Previously, result would be [1, 10, ‘ ‘]. Now result will be [1, 10]. This is logical, because each range should take care to consider its vicinity. If [1, 10] came in without instructions to add something in its place, we assume this was intentional.

This change is logical and natural but I’m bumping major version just in case it breaks somebody’s unit tests.

2.0.0

4 Dec 2017
  • Rebased the source in ES Modules
  • Set up Rollup and now we are generating three builds: CommonJS, UMD and ES Modules (native code).

1.0.0

18 Sept 2017
  • First public release