diff --git a/README.md b/README.md
index bbff3d9..3a29d07 100644
--- a/README.md
+++ b/README.md
@@ -5,26 +5,21 @@ Emphasis on correctness, performance, and IE6+ support.
## Installation
-With [npm](https://www.npmjs.org/package/crc-32):
+With a node package manager like `npm`:
```bash
-$ npm install crc-32
+$ npm i --save https://cdn.sheetjs.com/crc-32-latest/crc-32-latest.tgz
```
When installed globally, npm installs a script `crc32` that computes the
checksum for a specified file or standard input.
-
- CDN Availability (click to show)
-
-| CDN | URL |
-|-----------:|:-------------------------------------------|
-| `unpkg` | |
-| `jsDelivr` | |
-| `CDNjs` | |
-
-
+Hosted versions are available at :
+- `crc32.js` (CommonJS):
+- `crc32.mjs` (ESM):
+- `crc32c.js` (CommonJS):
+- `crc32c.mjs` (ESM):
## Integration
diff --git a/bits/01_version.js b/bits/01_version.js
index d71eb22..d5259a8 100644
--- a/bits/01_version.js
+++ b/bits/01_version.js
@@ -1 +1 @@
-CRC32.version = '1.2.2';
+CRC32.version = '1.2.3';
diff --git a/crc32.flow.js b/crc32.flow.js
index a1f890e..84c127b 100644
--- a/crc32.flow.js
+++ b/crc32.flow.js
@@ -25,7 +25,7 @@ var CRC32/*:CRC32Module*/;
/*eslint-enable */
/*jshint ignore:end */
}(function(CRC32/*:CRC32Module*/) {
-CRC32.version = '1.2.2';
+CRC32.version = '1.2.3';
/*::
type CRC32Type = number;
type ABuf = Array | Buffer | Uint8Array;
diff --git a/crc32.js b/crc32.js
index c92664a..8db6285 100644
--- a/crc32.js
+++ b/crc32.js
@@ -23,7 +23,7 @@ var CRC32;
/*eslint-enable */
/*jshint ignore:end */
}(function(CRC32) {
-CRC32.version = '1.2.2';
+CRC32.version = '1.2.3';
/*global Int32Array */
function signed_crc_table() {
var c = 0, table = new Array(256);
diff --git a/crc32.mjs b/crc32.mjs
index a10f230..f06d82d 100644
--- a/crc32.mjs
+++ b/crc32.mjs
@@ -1,7 +1,7 @@
/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */
/* vim: set ts=2: */
var CRC32 = {};
-CRC32.version = '1.2.2';
+CRC32.version = '1.2.3';
/*::
type CRC32Type = number;
type ABuf = Array | Buffer | Uint8Array;
diff --git a/crc32c.flow.js b/crc32c.flow.js
index 5e97c4a..c4712ca 100644
--- a/crc32c.flow.js
+++ b/crc32c.flow.js
@@ -25,7 +25,7 @@ var CRC32C/*:CRC32Module*/;
/*eslint-enable */
/*jshint ignore:end */
}(function(CRC32C/*:CRC32Module*/) {
-CRC32C.version = '1.2.2';
+CRC32C.version = '1.2.3';
/*::
type CRC32Type = number;
type ABuf = Array | Buffer | Uint8Array;
diff --git a/crc32c.js b/crc32c.js
index 447fc8f..e39f329 100644
--- a/crc32c.js
+++ b/crc32c.js
@@ -23,7 +23,7 @@ var CRC32C;
/*eslint-enable */
/*jshint ignore:end */
}(function(CRC32C) {
-CRC32C.version = '1.2.2';
+CRC32C.version = '1.2.3';
/*global Int32Array */
function signed_crc_table() {
var c = 0, table = new Array(256);
diff --git a/crc32c.mjs b/crc32c.mjs
index 8316f62..7ad6d3c 100644
--- a/crc32c.mjs
+++ b/crc32c.mjs
@@ -1,7 +1,7 @@
/*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */
/* vim: set ts=2: */
var CRC32C = {};
-CRC32C.version = '1.2.2';
+CRC32C.version = '1.2.3';
/*::
type CRC32Type = number;
type ABuf = Array | Buffer | Uint8Array;
diff --git a/package.json b/package.json
index 14bdd82..20acf58 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "crc-32",
- "version": "1.2.2",
+ "version": "1.2.3",
"author": "sheetjs",
"description": "Pure-JS CRC-32",
"keywords": [ "crc", "crc32", "checksum" ],