Releases: fb55/entities
v6.0.0
Features
- Improved bundler tree shaking by adding pure annotations by @Gravitonic in #1501
- BREAKING: Simplified deep import paths, to make entities work in old NodeJS versions by @fb55 in #1531
- If you are using deep imports, you will have to update them. Instead of importing
entities/dist/decode.js
, importentities/decode
. The same applies toescape
.
- If you are using deep imports, you will have to update them. Instead of importing
- Automated publishes by @fb55 in #1532
entities
is now available on both npm and JSR
- Enabled isolated declarations by @fb55 in #1522
Full Changelog: v5.0.0...v6.0.0
v5.0.0
What's Changed
- Improved code style (based on
eslint-plugin-unicorn
) #1496 - Upgraded toolchain (to tshy, vitest, and tsx) #1497
Breaking Changes
⚠️ BREAKING: Thelib
directory was renamed todist
in #1497. Deep imports will have to be updated.
Full Changelog: v4.5.0...v5.0.0
v4.5.0
New Features
entities
now features an EntityDecoder
class that can be used to decode entities across multiple chunks. This is needed to parse streams, and will be the foundation for entity decoding in htmlparser2
and parse5
.
For users of this library, the most welcome addition will be a new attribute decoding mode, which will ignore some entities that were previously parsed (eg. `foo=bar&=boo' will be left unchanged).
entities
' decode
functions all use the new decoder under the hood. There is a new decodeHTMLAttribute
function for attribute parsing, and some rare edge-cases where entities diverged from the HTML spec have been eliminated.
Relevant PRs
- feat(decode): Add
EntityDecoder
class by @fb55 in #1136 - fix(decode): Handle chunks for numeric entities by @fb55 in #1146
Small Changes
- Typo fixes by @styfle #1032, @Jiralite #1060, and @sandeepkambham08 #1129
- Harden GitHub Actions by @step-security-bot in #928
Full Changelog: v4.4.0...v4.5.0
v4.4.0
- Smaller encode/decode maps by @sapphi-red in #909
- The encode and decode maps are now stored more space-efficiently, saving 44% in minified bundles, and cutting the size of the installed module by 52%.
Please note that some JavaScript minifiers, such as terser, will now produce non-ASCII output. If you use entities in the browser, please make sure you are set up to ship UTF-8 to clients, or set eg. terser's ascii_only
option to false
.
Full Changelog: v4.3.1...v4.4.0
v4.3.1
v4.3.0
Features
- Added an
escape
file, which is available as an export #786 - Set the
sourceRoot
property in source maps #788- This tells tools where to get the original sources when reading source maps.
Other
- Configure TS to be stricter #787
Full Changelog: v4.2.0...v4.3.0
v4.2.0
Fixes:
- Handle edge-case with surrogate pairs in
encode
413c48b
Features:
- Export
replaceCodePoint
fromentities/lib/decode
2247ebe
Other:
v4.1.1
v4.1.0
v4.0.0
New Features:
entities
is now both an ESM and a CommonJS module (#775)entities
now has a new documentation website! (Added in 720a36d.)- Added
escapeAttribute
andescapeText
functions, implementing the escaping required by the HTML serializer algorithm (#770)
Breaking:
- The format of the decode tries has changed, leading to ~20% space savings when loaded. The format is described in detail at https://github.com/fb55/entities/blob/master/scripts/trie/README.md. Relevant PRs:
- Moved the base maps out of the bundle (#772) 0af5d6d
- We now use a smaller map for encoding entities, see #771
Docs:
- docs(readme): Add FAQ about strict decoding c2e2c93
- docs(readme): Add Features section, plus small improvements 3f66dd6
- docs(readme): Add FAQ section 14f1732
Refactors: