-
Fixed bug with
https:
URLs defaulting to port80
instead of443
if no port is specified. Thanks to @dskvr for reportingThis affects comparing URLs with the default HTTPs port to URLs without it. For example, comparing
https://example.com/
tohttps://example.com:443/
or vice versa.They should be treated as equivalent but weren't due to the incorrect port being used for
https:
.
- Changed to using global URL object instead of importing. – Thanks to @brendankenny
- Added Typescript definitions. – Thanks to @danhab99 for creating
- Added SECURITY.md policy and CodeQL scanning
-
Fixed bug where if the user-agent passed to
isAllowed()
/isDisallowed()
is called "constructor" it would throw an error. -
Added support for relative URLs. This does not affect the default behavior so can safely be upgraded.
Relative matching is only allowed if both the robots.txt URL and the URLs being checked are relative.
For example:
var robots = robotsParser('/robots.txt', [ 'User-agent: *', 'Disallow: /dir/', 'Disallow: /test.html', 'Allow: /dir/test.html', 'Allow: /test.html' ].join('\n')); robots.isAllowed('/test.html', 'Sams-Bot/1.0'); // false robots.isAllowed('/dir/test.html', 'Sams-Bot/1.0'); // true robots.isDisallowed('/dir/test2.html', 'Sams-Bot/1.0'); // true
- Fixed bug that with matching wildcard patterns with some URLs – Thanks to @ckylape for reporting and fixing
- Changed matching algorithm to match Google's implementation in google/robotstxt
- Changed order of precedence to match current spec
- Fix bug that could be used to causing rule checking to take a long time – Thanks to @andeanfog
- Removed use of punycode module API's as new URL API handles it
- Improved test coverage
- Added tests for percent encoded paths and improved support
- Added
getMatchingLineNumber()
method - Fixed bug with comments on same line as directive
This release is not 100% backwards compatible as it now uses the new URL APIs which are not supported in Node < 7.
- Update code to not use deprecated URL module API's. – Thanks to @kdzwinel
- Fixed error caused by invalid URLs missing the protocol.
- Fixed bug with the "user-agent" rule being treated as case sensitive. – Thanks to @brendonboshell
- Improved test coverage. – Thanks to @schornio
- Initial release.