whatwg-encoding is a deprecated JavaScript package that decodes strings according to the WHATWG Encoding Standard, via a thin layer on top of iconv-lite. It is useful when you need encoding primitives compatible with the WHATWG Encoding Standard, but it has been superseded by @exodus/bytes, which jsdom now uses directly.
Project status
- Maintenance status: The upstream source is marked as archived, which strongly suggests it is not actively maintained despite intermittent repository activity (last upstream push appears to be 2025-12-28).
- Update cadence: Tagged updates appear in 2018, 2018, 2021, and then multiple in 2023 (v3.0.0 to v3.1.1 on 2023-11-07 to 2023-11-12). After v3.1.1 (2023-11-12) there are no further tagged updates shown, so the cadence looks effectively stalled relative to today (2026-09-10).
AI summary generated
Recent updates
v3.1.1
Release v3.1.1 fixes `labelToName()` so the `x-user-defined` encoding label is recognized and maps to `x-user-defined`. The code change is very small, but it also includes test/build workflow adjustments and internal data-generation logic changes.
v3.1.0
Release 3.1.0 adds support for the WhatWG encoding name "x-user-defined". The implementation adds a new decoding path in lib/whatwg-encoding.js and updates supported name handling and related tests.
Featuresv3.0.0
Release v3.0.0 primarily raises the minimum Node.js requirement to >=18, with the stated release note reflecting that breaking change. The code diff also shows a broader shift in the project’s tooling and developer workflow, including switching CI and scripts from yarn/mocha to npm/node:test and updating the dependency/lockfile setup.
Breakingv2.0.0
Release 2.0.0 raises the minimum supported Node.js version to 12 and bumps the runtime dependency iconv-lite to 0.6.3. It also updates the library to operate on Uint8Array inputs (including BOM sniffing and decoding) rather than Buffer, and refreshes the project toolchain configuration and lockfiles.
Breakingv1.0.5
Release v1.0.5 primarily updates the `iconv-lite` dependency from 0.4.23 to 0.4.24. The repository version is also bumped from 1.0.4 to 1.0.5, with corresponding changes in both `package.json` and `package-lock.json`.
v1.0.4
v1.0.4 primarily updates the runtime dependency iconv-lite from 0.4.19 to 0.4.23, as stated in the release notes. The diff also shows additional repository changes: major version bumps for several dev dependencies, and the addition of a package-lock.json file for dependency locking.
v1.0.3
Release v1.0.3 updates the dependency iconv-lite from 0.4.13 to 0.4.19, which is the only change called out in the release notes. The code diff also shows an npm script change that is not mentioned: the script named update was renamed to prepare.
v1.0.2
Release v1.0.2 updates the project to use the MIT license. No runtime or code logic changes are shown in the diff, only licensing related file and package metadata updates.
Breakingv1.0.1
Release v1.0.1 updates `labelToName` and `isSupported` to coerce their inputs to strings before processing. This prevents crashes for non-string inputs and aligns behavior so that `labelToName(undefined)` returns `null` instead of throwing.
v1.0.0
This release (v1.0.0) was extracted from jsdom and includes a slightly refactored public API. It also adds a build-time script that assembles encoding tables as JSON in advance, likely reducing runtime work.