✨ Highlights
⚡ Over 100x performance improvement
This release finally includes performance improvements originally proposed by @gugu in #301 and #302, which were finally added in #334 in collaboration with @lupomontero and @mfdebian.
The change basically switches from an Array
to a Map
to store the rules (the parsed public suffic list) indexed by punySuffix so we no longer need to iterate over thousands of items to find a match every time.
🔧 Allow underscores in domain fragments
Underscores (_
), aka low dashes, are now allowed in domain names. This had been raised a few times in issues like #26 and #185 and fixes had been proposed by @taoyuan in #46 (the one that got merged) and @tasinet in #286.
🆙 Updates public suffix list
Updates rules to up to publicsuffix/list#03c6a36 (28 Nov 2024).
New Contributors
- @gugu made their first contribution in 23265fd (original PR #302 was closed but changes were added in #334)
- @taoyuan made their first contribution in #46
Changelog
- 06d9f02 chore(dist): Updates dist files
- 77b6efd chore(rules): Updates rules to publicsuffix/list#03c6a36
- 57214ec chore(deps): Updates depencies
- 18a6d33 doc(readme): Updates install info and tested Node.js versions
- 1fd3665 chore(dist): Updates dist files
- a096d29 chore(index): Removes unused functions internals.reverse and internals.endsWith
- 3ddd8e2 refactor(index): Parses rules directly into map
- 3365092 feat(scripts): Adds benchmark npm-script
- 9be29c2 feat(benchmark): Adds comparison to 1.13.0 to see difference in perf
- 23265fd use maps for rule search, add benchmark
- 554617c chore(dist): Updates dist files
- a52c3c8 test(data): Adds test cases for subdomains with underscores
- 1dce5f2 Allow domain name including low dash
Full Changelog: v1.13.0...v1.14.0