NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #761 most downloaded on npm
tldts core primitives (internal module)
Last release 5 days ago
27 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
809 releases · first in 2019
Update upstream public suffix list #2051 (@remusao)
Update upstream public suffix list #2049 (@remusao)
One column per quarter.
tldts-experimental, tldts-icann, tldts
Update upstream public suffix list #2035 (@remusao)
tldts-experimental, tldts-icann, tldts
Update upstream public suffix list #2021 (@remusao)
tldts-experimental, tldts-icann, tldts
Update upstream public suffix list #1998 (@remusao)
Update upstream public suffix list #1996 (@remusao)
Update upstream public suffix list #1992 (@remusao)
tldts-core, tldts-experimental, tldts-icann, tldts
Bump auto from 10.46.0 to 11.1.1 #1968 ([@dependabot[bot]](https://github.com/dependabot[bot]))
tldts-experimental, tldts-icann, tldts
tldts-experimental, tldts
Update upstream public suffix list #1959 (@remusao)
Update upstream public suffix list #1952 (@remusao)
Update upstream public suffix list #1951 (@remusao)
Update upstream public suffix list #1947 (@remusao)
Update upstream public suffix list #1946 (@remusao)
Update upstream public suffix list #1945 (@remusao)
Update upstream public suffix list #1941 (@remusao)
Update upstream public suffix list #1937 (@remusao)
Update upstream public suffix list #1933 (@remusao)
Update upstream public suffix list #1912 (@remusao)
Update upstream public suffix list #1890 (@remusao)
tldts-experimental, tldts-icann, tldts
chore: replace native punycode by package to avoid deprecation #1887 (@remusao)
Update upstream public suffix list #1868 (@remusao)
Update upstream public suffix list #1857 (@remusao)
Update upstream public suffix list #1849 (@remusao)
Update upstream public suffix list #1841 (@remusao)
Update upstream public suffix list #1833 (@remusao)
Update upstream public suffix list #1828 (@remusao)
tldts-core, tldts-experimental, tldts
Update upstream public suffix list #1787 (@remusao)
Update upstream public suffix list #1744 (@remusao)
Update upstream public suffix list #1732 (@remusao)
Update upstream public suffix list #1727 (@remusao)
Update upstream public suffix list #1717 (@remusao)
masterbug: fix for https://github.com/remusao/tldts/issues/1697 #1709 (@remusao)
Update upstream public suffix list #1700 (@remusao)
Update upstream public suffix list #1698 (@remusao)
Update upstream public suffix list #1682 (@remusao)
Update upstream public suffix list #1681 (@remusao)
Update upstream public suffix list #1640 (@remusao)
tldts-core, tldts-experimental, tldts
Update upstream public suffix list #1633 (@remusao)
Update upstream public suffix list #1606 (@remusao)
tldts-core, tldts-experimental, tldts-utils, tldts
tldts-core, tldts-experimental, tldts-utils, tldts
Update upstream public suffix list #1594 (@remusao)
Extended tests and fix in wildcard matching from tldts-experimental #1593 (@remusao)
This is a breaking change because some might rely on the previous behavior to consider leading dots and underscores as invalid hostnames or domains.
Handling of leading dot(s) in input URIs and hostnames:
- expect(isValidHostname('.github.com')).to.equal(false);
+ expect(isValidHostname('.github.com')).to.equal(true);
- expect(getDomain('.github.com')).to.equal(null);
+ expect(getDomain('.github.com')).to.equal('github.com');
- expect(getDomain('.remusao.github.io')).to.equal(null);
+ expect(getDomain('.remusao.github.io')).to.equal('github.io');
Handling of leading underscores in input URIs and hostnames:
- expect(getDomain('_0f6879.bsg-1418.bryanjswift.com')).to.equal(null);
+ expect(getDomain('_0f6879.bsg-1418.bryanjswift.com')).to.equal('bryanjswift.com');
Lastly, increase test coverage using test cases found in the whatwg spec.
This is a breaking change because some might rely on the previous behavior to consider leading dots and underscores as invalid hostnames or domains.
Resolves #1534 Resolves #1523
Updated internal representation of the DAWG used to encode the public suffix list, resulting in ~5% size reduction of minified bundle for identical performance (and likely a faster parsing/loading time of the source, although I did not measure that particular aspect yet).
Migrate from deprecated tslint to eslint with TypeScript support and fix most of the issues encountered, resulting in tighter typing. Bump TypeScript to v5 as well and make sure code-base is formatted according to prettier's preset.
tldts-core, tldts-experimental, tldts
tldts-core, tldts-experimental, tldts
Update upstream public suffix list #1574 (@remusao)
Update upstream public suffix list #1566 (@remusao)
Update deprecated dep and refresh lock #1554 (@remusao)
Update upstream public suffix list #1545 (@remusao)
Update upstream public suffix list #1540 (@remusao)
Update upstream public suffix list #1538 (@remusao)
Update upstream public suffix list #1536 (@remusao)
Update upstream public suffix list #1521 (@remusao)
tldts-core, tldts-experimental, tldts
Bump json5 from 1.0.1 to 1.0.2 #1513 ([@dependabot[bot]](https://github.com/dependabot[bot]))
Update upstream public suffix list #1497 (@remusao)
Update upstream public suffix list #1489 (@remusao)
tldts-core, tldts-experimental, tldts
Update upstream public suffix list #1483 (@remusao)
Your coding agent can read these notes before it upgrades. Set up the MCP server →