- Require node 20 or 22 and higher
- No default export, only named exports.
- Recursive descent parser for extglob, allowing correct support for arbitrarily nested extglob expressions
- Bump required Node.js version
- Add
escape()
method - Add
unescape()
method - Add
Minimatch.hasMagic()
method
- Add support for posix character classes in a unicode-aware way.
- Add
windowsNoMagicRoot
option
- Add
optimizationLevel
configuration option, and revert the default back to the 6.2 style minimal optimizations, making the advanced transforms introduced in 7.0 opt-in. Also, process provided file paths in the same way in optimizationLevel:2 mode, so most things that matched with optimizationLevel 1 or 0 should match with level 2 as well. However, level 1 is the default, out of an abundance of caution.
- Preprocess patterns to simplify complicated patterns and reduce
out
..
pattern portions where possible. Note that this means a pattern likea/b/../*
will be equivalent toa/*
, and will not match the stringa/b/../c
. If this causes problems, it can be addressed in a patch release by resolving..
portions in the test string.
- Add nocaseMagicOnly flag
-
Handle UNC paths on Windows
This adds some slightly modified behavior when a pattern or path starts with
//
on Windows.- In the case of
//?/<drive letter>:/...
, the?
is treated as a literal character, rather than a wildcard. That is,//?/c:
will not match//x/c:
. - UNC patterns starting with
//?/<drive letter>:/
will match file paths starting with<drive letter>:
if the drive letters match case-insensitively. - File paths starting with
//?/<drive letter>:/
will match file patterns starting with<drive letter>:
if the drive letters match case-insensitively.
- In the case of
-
Add
{preserveMultipleSlashes:true}
option to suppress the behavior where multiple consecutive/
characters would be effectively coerced into a single path portion separator.
- hybrid module supporting both
require()
andimport
- exported types
- use windowsPathNoEscape/allowWindowsEscape opts
- make character classes more faithful to bash glob behavior
- fix handling of escapes
- treat invalid character classes as non-matching pattern rather than escaped literals
- brace-expansion: ignore only blocks that begins with $
- Expect exclusively forward slash as path sep, same as node-glob
- makeRe: globstar should match zero+ path portions
- Fix bug with escaped '@' in patterns
- treat
nocase:true
as always having magic - expose GLOBSTAR marker
- Update to modern JS syntax
- Add
allowWindowsEscape
option
- Added basic redos protection
- Handle unfinished
!(
extglob patterns - Add
partial: true
option