Skip to Content
  • Website
Codsen
  • Home
  • Open Source
  • Articles
  • About

backOpen Source→ranges-apply→Changelog

Changelog

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

7.2.3

1 Sept 2026

🔧 Fixed

  • align range input and output types (1a13db6)
  • align ranges-apply input types (5db3a0b)
  • preserve zero insertion at index zero (b854dbc)
  • reject reversed application ranges (f89a3fd)
  • report terminal range merge progress (cfdcf84)
  • report terminal ranges-apply progress (329e080)

7.2.2

22 Aug 2026

Performance Improvements

  • optimise package hot paths and JSON editing (f3112bd)

7.2.0

19 Aug 2026

🔧 Fixed

  • make validation diagnostics safe (7b01074)
  • resolve various review findings (b60e9ee)
  • retire direct publish aliases (f98e31e)
  • validate and normalise range indexes without mutation (081dd82)

✨ Features

  • add codsen-glob and migrate glob consumers (5595a2b)
  • refresh the tooling and generate with the latest dependencies (781f802)

⏪ Reverts

  • Revert “Merge pull request #128 from codsen/release/npm-32198404552–1″ (5baeeaa), closes #128
  • Revert “Merge pull request #127 from codsen/release/npm-32194020886–1″ (5f1e94d), closes #127

7.0.0

1 Dec 2022

💥 BREAKING CHANGES

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

6.2.0

12 Aug 2022

✨ Features

  • export types (11b5fb9)

6.1.0

11 Apr 2022

✨ Features

  • export defaults and version (1107244)

6.0.0

9 Sept 2021

✨ Features

  • migrate to ES Modules (8c9d95d)

💥 BREAKING CHANGES

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

5.1.0

24 May 2021

✨ Features

  • config file based major bump blacklisting (e15f9bb)

5.0.15

11 Apr 2021

⏪ Reverts

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

5.0.3

7 Feb 2021

🔧 Fixed

  • passed ranges can be null (ed082b8)

5.0.1

28 Jan 2021

🔧 Fixed

  • add testStats to npmignore (f3c84e9)

5.0.0

23 Jan 2021

✨ Features

  • rewrite in TS and start using named exports (202b763)

💥 BREAKING CHANGES

  • previously: import rApply from ... — now import { rApply } from ...

4.0.0

28 Nov 2020

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

3.2.0

7 Sept 2020

🔧 Fixed

  • make all tests pass (d86cf1b)

✨ Features

  • discard any nulls among ranges (2a09e88)

3.1.5

26 Apr 2020

🔧 Fixed

  • harden the eslint rules set and make all tests pass (3b593b4)

3.1.0

26 Jan 2020

✨ Features

  • remove a dependency, speed up the program by 130% (b787194)

2.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

2.9.0

26 Dec 2018
  • Add 3rd input arg — progressFn (f6735e2)
  • Accept null as second input argument, instead of ranges (0c59484)
  • ranges-merge (sort + merge) is applied by default now to prevent errors on unsorted ranges (35e3c4b)

2.8.0

29 Nov 2018
  • Added third argument, progressFn — it reports progress, feeding natural numbers meaning percentage done to any function that is in the third input argument.

  • Pinned all the throws on all unit tests. “Pinning unit test throws” means we not just assert the fact that function threw, but match the throw’s error message too. This gives more assurance:

    1. When there are many cases when an algorithm can throw and generic “function threw” assertion is used, a unit test can anticipate one throw to be thrown but another was thrown. Generic “function threw” assertions would still pass, throw is throw after all. But not pinned throws:
    2. It’s easier to sort unit tests this way (order by throw ID) in a test file
    3. It’s easier to perfect the unit test coverage when throws can be easier identified.
    4. It’s faster to comprehend a number compared to a sentence. “THROW_ID_01″ is faster to comprehend than a full title (which can differ from other title by a single word). At the end of the day, being less tired means achieving more.
    const error1 = t.throws(() => {
      repl();
    });
    t.match(error1.message, /THROW_ID_01/);
    

2.7.0

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

2.6.0

29 Aug 2018
  • Now second argument, ranges array, can be null. This means, output of ranges-push classes method.current() can be fed directly into this library without even checking. If it’s null, original string will be returned.

2.5.0

16 Aug 2018
  • Now we merge all input ranges using ranges-merge because it’s necessary for algorithm and we can’t rely on user to always provide merged ranges only.

2.4.0

11 Aug 2018
  • Updated error labels
  • Updated all dependencies
  • Removed AVA ES linting rules and nyc code coverage build steps because we migrated to Babel v.7 and nyc breaks

2.3.0

18 Jun 2018
  • Renamed to ranges-apply and migrated to Bitbucket.

2.2.0

11 May 2018
  • Set up Prettier
  • 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 — 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

2.1.0

13 Feb 2018
  • Now accepts a single range as well, not only array of ranges.

2.0.0

2 Nov 2017
  • The main source now is in ES2015 modules with import/export.
  • Implemented Rollup to generate 3 flavours of this package: CommonJS, UMD and ESM module with import/export.

1.4.0

19 Sept 2017
  • 🔧 Switching to ESLint on airbnb-base preset with semicolons-off override. JS Standard is rubbish because it’s too relaxed and it’s been using half-year-old ESLint. Actually it’s even flagged as insecure by BitHound at the moment because of shell.js dependency two levels deep. ESLint itself is fine however.
  • 💥 Removed options, the third input argument. It did nothing and I was expecting to add options, but now I don’t want any. I removed the unused code related to options.

1.3.0

30 Aug 2017
  • 🔧 OK, so after replacing ES6 template strings, the lets stopped minification of emailcomb. I came up with idea to transpile the source to /es5/index.js, after publishing it should be available for consumption via require('string-replace-slices-array/es5'). Let’s see how it goes.
  • 🔧 I restored all template strings as they were in v1.1.0.
  • 🔧 Tweaked the npm scripts, so ES5 version is generated as a pre-commit step.

1.2.0

29 Aug 2017
  • 🔧 Guys, strange stuff. I was generating a production build of emailcomb and it refused to minify this library because of the first backtick in the ES6 template strings. So, I replaced them with ES5 code. Let’s see how it will go.

1.1.0

16 Aug 2017
  • 🔧 Now allowing zeros as values in ranges too. Sorry about that, the integer-checking library was not accepting zeros. Fixed now.

1.0.0

25 Jul 2017
  • First public release
back 

Copyright

All rights reserved © Roy Revelt 2026
All our open source packages are under MIT licenceopens in a new tab

Activities

🐛 See a bug? Raise an issueopens in a new tab
💘 Check out the Indiewebopens in a new tab and Libera manifestoopens in a new tab