mrmlnc/fast-glob (fast-glob)
### [`v3.3.2`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.3.2)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.3.1...3.3.2)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.3.1...3.3.2
#### 🐛 Bug fixes
- Handle square brackets as a special character on Windows in escape functions ([#425](https://redirect.github.com/mrmlnc/fast-glob/issues/425))
- Keep escaping after brace expansion ([#422](https://redirect.github.com/mrmlnc/fast-glob/issues/422))
### [`v3.3.1`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.3.1)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.3.0...3.3.1)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.3.0...3.3.1
This release fixes a regression for cases where the `ignore` option is used with a string ([#403](https://redirect.github.com/mrmlnc/fast-glob/issues/403), [#404](https://redirect.github.com/mrmlnc/fast-glob/issues/404)).
The public interface of this package does not support a string as the value for the [`ignore` option](https://redirect.github.com/mrmlnc/fast-glob#ignore) since 2018 year ([release](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/2.0.0)).
So, in the next major release, we will reintroduce method implementations that do not involve strings in the `ignore` option.
### [`v3.3.0`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.3.0)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.12...3.3.0)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.12...3.3.0
#### 🚀 Improvements
**Method aliases**
New methods (`glob`, `globSync`, `globStream`) have been added in addition to the current methods (default import, `sync`, `stream`), which eliminate the need to rename the method when importing. In addition, an `async` alias has been added for the default import, which makes it possible to use this packet with ESM.
**Method to convert paths to globs**
A new method (`convertPathToPattern`) has been added in this release to convert a path to a pattern. The primary goal is to enable users to avoid processing Windows paths in each location where this package is used by utilities from third-party packages.
See more details in the [pull request](https://redirect.github.com/mrmlnc/fast-glob/pull/392).
#### 🐛 Bug fixes
- In the past, we mishandled patterns that contained slashes when the `baseNameMatch` option was enabled, which went against the documented behavior. ([#312](https://redirect.github.com/mrmlnc/fast-glob/issues/312))
- Several problems with matching patterns that contain brace expansion have been resolved. The primary issue solved is when the pattern has duplicate slashes after it is expanded ([#394](https://redirect.github.com/mrmlnc/fast-glob/issues/394)), or the `micromatch` package does not correctly generate a regular expression ([#365](https://redirect.github.com/mrmlnc/fast-glob/issues/365)).
- All negative patterns will now have the `dot` option enabled when matching paths. Previously, the `!**/*` patterns did not exclude hidden files (start with a dot). ([#343](https://redirect.github.com/mrmlnc/fast-glob/issues/343))
- The issue that led to duplicates in the results when overlapping or duplicate patterns were present among the patterns has been fixed. At the moment, we are only talking about leading dot. Other cases are not included. For example, running with the patterns `['./file.md', 'file.md', '*']` will now only include `file.md` once in the results. ([#190](https://redirect.github.com/mrmlnc/fast-glob/issues/190))
#### 📖 Documentation
A [clarifying note](https://redirect.github.com/mrmlnc/fast-glob/blob/master/README.md#concurrency) has been added for the `concurrency` option, which provides more detailed information about the Thread Pool utilization.
#### ⚙️ Infrastructure
- The benchmark in CI is now running on Node.js 20.
- The benchmark now uses the public package [bencho](https://redirect.github.com/mrmlnc/bencho) instead of an in-house implementation. You may want to try this solution for your packages and provide feedback.
#### 🥇 New Contributors
- [@josh-hemphill](https://redirect.github.com/josh-hemphill) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/383](https://redirect.github.com/mrmlnc/fast-glob/pull/383)
- [@mairaw](https://redirect.github.com/mairaw) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/401](https://redirect.github.com/mrmlnc/fast-glob/pull/401)
### [`v3.2.12`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.12)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.11...3.2.12)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.11...3.2.12
#### 🐛 Bug fixes
Fixed an issue introduced in `3.2.7` related to incorrect application of patterns to entries with a trailing slash when the entry is not a directory.
Before changes:
```js
fg.sync('**/!(*.md)')
// ['file.md', 'a/file.md', 'a/file.txt']
```
After fix:
```js
fg.sync('**/!(*.md)')
// ['a/file.txt']
```
Thanks [@AgentEnder](https://redirect.github.com/AgentEnder) for the issue ([#357](https://redirect.github.com/mrmlnc/fast-glob/issues/357)).
#### 🚀 Improvements
This release includes performance improvements for [the asynchronous method](https://redirect.github.com/mrmlnc/fast-glob#asynchronous). For this method we now use an [asynchronous directory traversal interface](https://redirect.github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk#walkpath-optionsorsettings-callback) instead of using a [streaming interface](https://redirect.github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk#walkstreampath-optionsorsettings). This gives up to 15% acceleration for medium and large directories. The result depends a lot on hardware.
You can find the benchmark results for this release in CI [here](https://redirect.github.com/mrmlnc/fast-glob/actions/runs/3020192816).
Here are a few of measurements on my laptop:
```js
===> Benchmark pattern "*" with 100 launches (regression, async)
===> Max stdev: 7 | Retries: 3 | Options: {}
Name Time, ms Time stdev, % Memory, MB Memory stdev, % Entries Errors Retries
--------------------- -------- ------------- ---------- --------------- ------- ------ -------
fast-glob-current.js 4.390 0.252 6.253 0.015 4 0 1
fast-glob-previous.js 5.653 0.633 6.051 0.056 4 0 1
===> Benchmark pattern "**" with 100 launches (regression, async)
===> Max stdev: 7 | Retries: 3 | Options: {}
Name Time, ms Time stdev, % Memory, MB Memory stdev, % Entries Errors Retries
--------------------- -------- ------------- ---------- --------------- ------- ------ -------
fast-glob-current.js 34.587 1.287 10.654 0.607 11835 0 1
fast-glob-previous.js 41.972 2.086 10.236 1.224 11835 0 1
```
### [`v3.2.11`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.11)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.10...3.2.11)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.10...3.2.11
#### 🐛 Bug fixes
Yeap, this is another release aimed at fixing problems with detecting brace expansions in patterns. This time, patterns like `abc/{a.txt,b.js}` was not marked as a dynamic pattern. So, now the regex has been rewritten to a generalized solution as a function to avoid future problems due to the complexity of the regular expression.
Thanks [@MurzNN](https://redirect.github.com/MurzNN) for the report of this problem ([#351](https://redirect.github.com/mrmlnc/fast-glob/issues/351)).
### [`v3.2.10`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.10)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.9...3.2.10)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.9...3.2.10
#### 🐛 Bug fixes
- Fixed a regression in `3.2.8` when the `{a,b,c}` pattern no longer considered a dynamic pattern (thanks [@amitdahan](https://redirect.github.com/amitdahan), [#347](https://redirect.github.com/mrmlnc/fast-glob/issues/347)).
#### 🥇 New Contributors
- [@amitdahan](https://redirect.github.com/amitdahan) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/348](https://redirect.github.com/mrmlnc/fast-glob/pull/348)
### [`v3.2.9`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.9)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.8...3.2.9)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.8...3.2.9
#### 🐛 Bug fixes
- Fixed a regression in `3.2.8` with invalid regular expression on older node.js versions ([#345](https://redirect.github.com/mrmlnc/fast-glob/issues/345)).
### [`v3.2.8`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.8)
[Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.7...3.2.8)
> **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.7...3.2.8
#### 🐛 Bug fixes
##### Fix directory matching with trailing slashes ([#290](https://redirect.github.com/mrmlnc/fast-glob/issues/290))
> Thanks [@Trott](https://redirect.github.com/Trott) for investigating the problem and the detailed description.
Previously the `src/*/` pattern did not work as expected (like `src/*`).
##### Double-slash in the middle of the pattern is not collapsed ([#330](https://redirect.github.com/mrmlnc/fast-glob/issues/330))
Starting from this release, patterns like `src//*` will work like similar patterns without duplicate slashes. This was done for continuity with other solutions (`glob`, `ls src//*`, python, golang, …).
##### Adjust inefficient regular expressions ([#336](https://redirect.github.com/mrmlnc/fast-glob/issues/336), [#342](https://redirect.github.com/mrmlnc/fast-glob/issues/342), [#344](https://redirect.github.com/mrmlnc/fast-glob/issues/344))
> Thanks [@Trott](https://redirect.github.com/Trott) for fixing bugs and [@XhmikosR](https://redirect.github.com/XhmikosR) for adding the [CodeQL action](https://redirect.github.com/github/codeql-action) to CI pipeline.
#### 📖 Documentation
- Some documentation improvements ([#327](https://redirect.github.com/mrmlnc/fast-glob/issues/327), thanks [@MarcelloTheArcane](https://redirect.github.com/MarcelloTheArcane)).
#### ⚙️ Infrastructure
- The [CodeQL action](https://redirect.github.com/github/codeql-action) has been added to CI pipeline ([#338](https://redirect.github.com/mrmlnc/fast-glob/issues/338), thanks [@XhmikosR](https://redirect.github.com/XhmikosR)).
#### 🥇 New Contributors
- [@MarcelloTheArcane](https://redirect.github.com/MarcelloTheArcane) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/327](https://redirect.github.com/mrmlnc/fast-glob/pull/327)
- [@Trott](https://redirect.github.com/Trott) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/336](https://redirect.github.com/mrmlnc/fast-glob/pull/336)
- [@XhmikosR](https://redirect.github.com/XhmikosR) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/338](https://redirect.github.com/mrmlnc/fast-glob/pull/338)
Configuration
📅 Schedule: Branch creation - "on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
3.2.7
->3.3.2
Release Notes
mrmlnc/fast-glob (fast-glob)
### [`v3.3.2`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.3.2) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.3.1...3.3.2) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.3.1...3.3.2 #### 🐛 Bug fixes - Handle square brackets as a special character on Windows in escape functions ([#425](https://redirect.github.com/mrmlnc/fast-glob/issues/425)) - Keep escaping after brace expansion ([#422](https://redirect.github.com/mrmlnc/fast-glob/issues/422)) ### [`v3.3.1`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.3.1) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.3.0...3.3.1) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.3.0...3.3.1 This release fixes a regression for cases where the `ignore` option is used with a string ([#403](https://redirect.github.com/mrmlnc/fast-glob/issues/403), [#404](https://redirect.github.com/mrmlnc/fast-glob/issues/404)). The public interface of this package does not support a string as the value for the [`ignore` option](https://redirect.github.com/mrmlnc/fast-glob#ignore) since 2018 year ([release](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/2.0.0)). So, in the next major release, we will reintroduce method implementations that do not involve strings in the `ignore` option. ### [`v3.3.0`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.3.0) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.12...3.3.0) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.12...3.3.0 #### 🚀 Improvements **Method aliases** New methods (`glob`, `globSync`, `globStream`) have been added in addition to the current methods (default import, `sync`, `stream`), which eliminate the need to rename the method when importing. In addition, an `async` alias has been added for the default import, which makes it possible to use this packet with ESM. **Method to convert paths to globs** A new method (`convertPathToPattern`) has been added in this release to convert a path to a pattern. The primary goal is to enable users to avoid processing Windows paths in each location where this package is used by utilities from third-party packages. See more details in the [pull request](https://redirect.github.com/mrmlnc/fast-glob/pull/392). #### 🐛 Bug fixes - In the past, we mishandled patterns that contained slashes when the `baseNameMatch` option was enabled, which went against the documented behavior. ([#312](https://redirect.github.com/mrmlnc/fast-glob/issues/312)) - Several problems with matching patterns that contain brace expansion have been resolved. The primary issue solved is when the pattern has duplicate slashes after it is expanded ([#394](https://redirect.github.com/mrmlnc/fast-glob/issues/394)), or the `micromatch` package does not correctly generate a regular expression ([#365](https://redirect.github.com/mrmlnc/fast-glob/issues/365)). - All negative patterns will now have the `dot` option enabled when matching paths. Previously, the `!**/*` patterns did not exclude hidden files (start with a dot). ([#343](https://redirect.github.com/mrmlnc/fast-glob/issues/343)) - The issue that led to duplicates in the results when overlapping or duplicate patterns were present among the patterns has been fixed. At the moment, we are only talking about leading dot. Other cases are not included. For example, running with the patterns `['./file.md', 'file.md', '*']` will now only include `file.md` once in the results. ([#190](https://redirect.github.com/mrmlnc/fast-glob/issues/190)) #### 📖 Documentation A [clarifying note](https://redirect.github.com/mrmlnc/fast-glob/blob/master/README.md#concurrency) has been added for the `concurrency` option, which provides more detailed information about the Thread Pool utilization. #### ⚙️ Infrastructure - The benchmark in CI is now running on Node.js 20. - The benchmark now uses the public package [bencho](https://redirect.github.com/mrmlnc/bencho) instead of an in-house implementation. You may want to try this solution for your packages and provide feedback. #### 🥇 New Contributors - [@josh-hemphill](https://redirect.github.com/josh-hemphill) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/383](https://redirect.github.com/mrmlnc/fast-glob/pull/383) - [@mairaw](https://redirect.github.com/mairaw) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/401](https://redirect.github.com/mrmlnc/fast-glob/pull/401) ### [`v3.2.12`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.12) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.11...3.2.12) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.11...3.2.12 #### 🐛 Bug fixes Fixed an issue introduced in `3.2.7` related to incorrect application of patterns to entries with a trailing slash when the entry is not a directory. Before changes: ```js fg.sync('**/!(*.md)') // ['file.md', 'a/file.md', 'a/file.txt'] ``` After fix: ```js fg.sync('**/!(*.md)') // ['a/file.txt'] ``` Thanks [@AgentEnder](https://redirect.github.com/AgentEnder) for the issue ([#357](https://redirect.github.com/mrmlnc/fast-glob/issues/357)). #### 🚀 Improvements This release includes performance improvements for [the asynchronous method](https://redirect.github.com/mrmlnc/fast-glob#asynchronous). For this method we now use an [asynchronous directory traversal interface](https://redirect.github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk#walkpath-optionsorsettings-callback) instead of using a [streaming interface](https://redirect.github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk#walkstreampath-optionsorsettings). This gives up to 15% acceleration for medium and large directories. The result depends a lot on hardware. You can find the benchmark results for this release in CI [here](https://redirect.github.com/mrmlnc/fast-glob/actions/runs/3020192816). Here are a few of measurements on my laptop: ```js ===> Benchmark pattern "*" with 100 launches (regression, async) ===> Max stdev: 7 | Retries: 3 | Options: {} Name Time, ms Time stdev, % Memory, MB Memory stdev, % Entries Errors Retries --------------------- -------- ------------- ---------- --------------- ------- ------ ------- fast-glob-current.js 4.390 0.252 6.253 0.015 4 0 1 fast-glob-previous.js 5.653 0.633 6.051 0.056 4 0 1 ===> Benchmark pattern "**" with 100 launches (regression, async) ===> Max stdev: 7 | Retries: 3 | Options: {} Name Time, ms Time stdev, % Memory, MB Memory stdev, % Entries Errors Retries --------------------- -------- ------------- ---------- --------------- ------- ------ ------- fast-glob-current.js 34.587 1.287 10.654 0.607 11835 0 1 fast-glob-previous.js 41.972 2.086 10.236 1.224 11835 0 1 ``` ### [`v3.2.11`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.11) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.10...3.2.11) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.10...3.2.11 #### 🐛 Bug fixes Yeap, this is another release aimed at fixing problems with detecting brace expansions in patterns. This time, patterns like `abc/{a.txt,b.js}` was not marked as a dynamic pattern. So, now the regex has been rewritten to a generalized solution as a function to avoid future problems due to the complexity of the regular expression. Thanks [@MurzNN](https://redirect.github.com/MurzNN) for the report of this problem ([#351](https://redirect.github.com/mrmlnc/fast-glob/issues/351)). ### [`v3.2.10`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.10) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.9...3.2.10) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.9...3.2.10 #### 🐛 Bug fixes - Fixed a regression in `3.2.8` when the `{a,b,c}` pattern no longer considered a dynamic pattern (thanks [@amitdahan](https://redirect.github.com/amitdahan), [#347](https://redirect.github.com/mrmlnc/fast-glob/issues/347)). #### 🥇 New Contributors - [@amitdahan](https://redirect.github.com/amitdahan) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/348](https://redirect.github.com/mrmlnc/fast-glob/pull/348) ### [`v3.2.9`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.9) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.8...3.2.9) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.8...3.2.9 #### 🐛 Bug fixes - Fixed a regression in `3.2.8` with invalid regular expression on older node.js versions ([#345](https://redirect.github.com/mrmlnc/fast-glob/issues/345)). ### [`v3.2.8`](https://redirect.github.com/mrmlnc/fast-glob/releases/tag/3.2.8) [Compare Source](https://redirect.github.com/mrmlnc/fast-glob/compare/3.2.7...3.2.8) > **Full Changelog**: https://github.com/mrmlnc/fast-glob/compare/3.2.7...3.2.8 #### 🐛 Bug fixes ##### Fix directory matching with trailing slashes ([#290](https://redirect.github.com/mrmlnc/fast-glob/issues/290)) > Thanks [@Trott](https://redirect.github.com/Trott) for investigating the problem and the detailed description. Previously the `src/*/` pattern did not work as expected (like `src/*`). ##### Double-slash in the middle of the pattern is not collapsed ([#330](https://redirect.github.com/mrmlnc/fast-glob/issues/330)) Starting from this release, patterns like `src//*` will work like similar patterns without duplicate slashes. This was done for continuity with other solutions (`glob`, `ls src//*`, python, golang, …). ##### Adjust inefficient regular expressions ([#336](https://redirect.github.com/mrmlnc/fast-glob/issues/336), [#342](https://redirect.github.com/mrmlnc/fast-glob/issues/342), [#344](https://redirect.github.com/mrmlnc/fast-glob/issues/344)) > Thanks [@Trott](https://redirect.github.com/Trott) for fixing bugs and [@XhmikosR](https://redirect.github.com/XhmikosR) for adding the [CodeQL action](https://redirect.github.com/github/codeql-action) to CI pipeline. #### 📖 Documentation - Some documentation improvements ([#327](https://redirect.github.com/mrmlnc/fast-glob/issues/327), thanks [@MarcelloTheArcane](https://redirect.github.com/MarcelloTheArcane)). #### ⚙️ Infrastructure - The [CodeQL action](https://redirect.github.com/github/codeql-action) has been added to CI pipeline ([#338](https://redirect.github.com/mrmlnc/fast-glob/issues/338), thanks [@XhmikosR](https://redirect.github.com/XhmikosR)). #### 🥇 New Contributors - [@MarcelloTheArcane](https://redirect.github.com/MarcelloTheArcane) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/327](https://redirect.github.com/mrmlnc/fast-glob/pull/327) - [@Trott](https://redirect.github.com/Trott) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/336](https://redirect.github.com/mrmlnc/fast-glob/pull/336) - [@XhmikosR](https://redirect.github.com/XhmikosR) made their first contribution in [https://github.com/mrmlnc/fast-glob/pull/338](https://redirect.github.com/mrmlnc/fast-glob/pull/338)Configuration
📅 Schedule: Branch creation - "on the first day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.