Fix suport for globstars at the start of patterns in braces - #150
Open
xuanduc987 wants to merge 1 commit into
Open
Fix suport for globstars at the start of patterns in braces#150xuanduc987 wants to merge 1 commit into
xuanduc987 wants to merge 1 commit into
Conversation
prisis
added a commit
to visulima/visulima
that referenced
this pull request
Apr 18, 2026
Ships six new exports built on tinyglobby, is-glob, glob-parent and picomatch — all bundled as devDependencies so @visulima/fs keeps a clean runtime dep list. - glob / globSync: async + sync file matching - isGlob: detect whether a string looks like a glob pattern - globParent: extract the static parent dir of a pattern - match / matcher: picomatch-backed path matching, with a wrapper that shields Array.filter callers from picomatch's returnObject second-arg footgun Each helper is also exposed via a dedicated subpath (./glob, ./glob-parent, ./is-glob, ./match) for tree-shaking. Pinned upstream patches (patches/README.md tracks each hunk): - picomatch: constants.UNIGNORE + onIgnore-can-rescue, plus open PR micromatch/picomatch#150 (brace globstars) - tinyglobby: negated-ignore patterns, issue #188 fix (negated extglobs at arbitrary depth), and issue #143 perf guard (skip fdir exclude for trivial `**` patterns) Docs in docs/api.mdx cover signatures, options (adapted from the tinyglobby documentation with attribution), and negated-ignore examples. Bench in __bench__/glob.bench.ts compares against fast-glob, globby, node-glob and node:fs.glob. 553/553 tests pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
prisis
pushed a commit
to visulima/visulima
that referenced
this pull request
Apr 21, 2026
…fs [5.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.8...@visulima/fs@5.0.0-alpha.9) (2026-04-21) ### Features * **fs:** add glob, isGlob, globParent, match helpers ([f0f0a2f](f0f0a2f)), closes [micromatch/picomatch#150](micromatch/picomatch#150) [#188](#188) [#143](#143) * **fs:** add TOML, JSONC, JSON5, INI support with style preservation ([f07446c](f07446c)) ### Bug Fixes * **fs:** disable isolated declarations to unblock Windows CI ([e510ddf](e510ddf)) * **fs:** drop undefined retry fields from rm options ([c937df3](c937df3)) ### Miscellaneous Chores * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](c3d0931)) * fixed jsr.json ([5d85e51](5d85e51)) * **fs:** apply formatter and lint fixes ([6bd7a2d](6bd7a2d)) * **fs:** apply formatter and lint fixes ([f59a388](f59a388)) * **fs:** apply pending changes ([91490a8](91490a8)) * **fs:** apply pending lint and source updates ([9d1cf79](9d1cf79)) * **fs:** enforce curly braces and apply lint fixes ([b77fb0b](b77fb0b)) * lock update ([4c82df0](4c82df0)) ### Continuous Integration * disable isolatedDeclarationTransformer ([d5845d8](d5845d8)) ### Dependencies * **@visulima/error:** upgraded to 6.0.0-alpha.10
prisis
pushed a commit
to visulima/visulima
that referenced
this pull request
Jul 3, 2026
https://github.com/visulima/visulima/compare/@visulima/fs@4.1.0...@visulima/fs@5.0.0) (2026-07-03) ### ⚠ BREAKING CHANGES * change min node version to 22.13 ### Features * **fs:** add glob, isGlob, globParent, match helpers ([f0f0a2f](f0f0a2f)), closes [micromatch/picomatch#150](micromatch/picomatch#150) [#188](#188) [#143](#143) * **fs:** add TOML, JSONC, JSON5, INI support with style preservation ([f07446c](f07446c)) * **fs:** include __bench__ in eslint tsconfig ([90ca264](90ca264)) * **web:** auto-generate packages page from workspace metadata ([623e520](623e520)) ### Bug Fixes * add new package image, fixed readme rendering on npm, fixed building of packages ([b790ba2](b790ba2)) * **filesystem:** resolve eslint issues in fs, path, and find-cache-dir ([59ad5e3](59ad5e3)) * **fs:** 2 bug fixes + 1 perf ([2fde6e6](2fde6e6)) * **fs:** disable isolated declarations to unblock Windows CI ([e510ddf](e510ddf)) * **fs:** drop undefined retry fields from rm options ([c937df3](c937df3)) * **fs:** fix walk symlinks, read/write/remove semantics, add copy ([d3d0070](d3d0070)) * **fs:** narrow walk directory type and drop unsupported parseJson generic ([2f709ba](2f709ba)) * **fs:** normalize file:// URL names via path's toPath in find-up ([124b2ce](124b2ce)) * **fs:** prevent walk/walkSync from crashing on symlinks pointing to files ([e6338b0](e6338b0)) * **fs:** properly fix eslint errors in code ([da36de3](da36de3)) * **fs:** relax no-unsafe-* rules and remove stale disable comments ([d49d900](d49d900)) * **fs:** remove remaining eslint suppressions with proper code fixes ([cede286](cede286)) * **fs:** resolve eslint errors ([817fd4d](817fd4d)) * **fs:** update package files ([be82cef](be82cef)) * **fs:** update packem to 2.0.0-alpha.54 ([017eb8b](017eb8b)) * **fs:** use workspace:* for internal [@visulima](https://github.com/visulima) deps ([419339e](419339e)) * **pail,fs:** bind logger.raw and inline picomatch options ([e8b20d2](e8b20d2)) * Remove JSR configuration generation script and generated jsr.json files ([#616](#616)) ([533744b](533744b)) * **storage-client:** percent-encode user fields in defaultFingerprint ([7c78a0f](7c78a0f)) * update Node.js engine version requirement to >=22.13 in multiple package.json files for improved compatibility ([b828e9a](b828e9a)) * update package OG images across multiple packages ([f08e4dd](f08e4dd)) * **vis:** stop Windows test hangs; start fallow dead-code cleanup ([e87ca70](e87ca70)) * **web:** improve build setup with incremental stats caching and prod install ([fe33e75](fe33e75)) ### Performance Improvements * **fs:** share walk entry accessors, disable keepNames ([7fbae0b](7fbae0b)) ### Documentation * **object,redact,colorize,path,fs:** add comprehensive Fumadocs documentation ([19c3840](19c3840)) * prettier-format agent instructions ([71b6414](71b6414)) ### Styles * cs fixes ([2a960bb](2a960bb)) ### Miscellaneous Chores * add fallow code-intelligence across all packages ([a3b4821](a3b4821)) * apply eslint + prettier autofixes across packages ([c1bb784](c1bb784)) * apply safe prettier and eslint formatting ([05120af](05120af)) * bump engines.node to ^22.14.0 || >=24.10.0 ([c3d0931](c3d0931)) * **ci-stability:** green CI across vis, native, lint, tests, attw ([#651](#651)) ([d4eb684](d4eb684)) * cs fixes ([#659](#659)) ([61f8912](61f8912)) * **filesystem:** remove empty dependency objects from package.json ([76ffc54](76ffc54)) * **filesystem:** update dependencies ([d1a4591](d1a4591)) * fixed jsr.json ([5d85e51](5d85e51)) * fixed project.json names and schema path ([964722f](964722f)) * **fs:** add tsconfig.eslint.json for type-aware linting ([701b2cb](701b2cb)) * **fs:** apply formatter and lint fixes ([6bd7a2d](6bd7a2d)) * **fs:** apply formatter and lint fixes ([f59a388](f59a388)) * **fs:** apply pending changes ([91490a8](91490a8)) * **fs:** apply pending lint and source updates ([9d1cf79](9d1cf79)) * **fs:** apply prettier and eslint formatting sweep ([6e442f3](6e442f3)) * **fs:** apply prettier and eslint quote-style auto-fix ([cc5525e](cc5525e)) * **fs:** apply prettier formatting ([29bc3ed](29bc3ed)) * **fs:** apply prettier formatting across src and tests ([03409d7](03409d7)) * **fs:** bump bench glob and globby to latest majors ([9f9fe58](9f9fe58)) * **fs:** enforce curly braces and apply lint fixes ([b77fb0b](b77fb0b)) * **fs:** housekeeping cleanup ([95e8643](95e8643)) * **fs:** migrate .prettierrc.cjs to prettier.config.js ([fa37870](fa37870)) * **fs:** migrate deps to pnpm catalogs ([02ac1ae](02ac1ae)) * **fs:** update dependencies ([2f21870](2f21870)) * **fs:** update dependencies ([5b63f2b](5b63f2b)) * **fs:** update dependencies ([05c4ca6](05c4ca6)) * **fs:** upgrade packem to 2.0.0-alpha.76 ([3dfa709](3dfa709)) * jsr.json update and lock file ([73fce38](73fce38)) * lock update ([4c82df0](4c82df0)) * moved all packages into groups ([0615e9d](0615e9d)) * re-sort workspace package.json files via vis sort-package-json ([f625696](f625696)) * **release:** @visulima/fs@5.0.0-alpha.1 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.1](https://github.com/visulima/visulima/compare/@visulima/fs@4.1.0...@visulima/fs@5.0.0-alpha.1) (2025-12-07) ([fe6efd0](fe6efd0)) * **release:** @visulima/fs@5.0.0-alpha.10 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.10](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.9...@visulima/fs@5.0.0-alpha.10) (2026-04-21) ([0c30975](0c30975)) * **release:** @visulima/fs@5.0.0-alpha.11 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.11](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.10...@visulima/fs@5.0.0-alpha.11) (2026-04-21) ([ac2b595](ac2b595)) * **release:** @visulima/fs@5.0.0-alpha.12 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.12](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.11...@visulima/fs@5.0.0-alpha.12) (2026-04-22) ([7f0eb48](7f0eb48)) * **release:** @visulima/fs@5.0.0-alpha.13 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.13](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.12...@visulima/fs@5.0.0-alpha.13) (2026-05-04) ([e5cdb76](e5cdb76)) * **release:** @visulima/fs@5.0.0-alpha.14 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.14](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.13...@visulima/fs@5.0.0-alpha.14) (2026-05-06) ([24ad220](24ad220)) * **release:** @visulima/fs@5.0.0-alpha.15 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.15](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.14...@visulima/fs@5.0.0-alpha.15) (2026-05-06) ([a17462e](a17462e)) * **release:** @visulima/fs@5.0.0-alpha.16 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.16](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.15...@visulima/fs@5.0.0-alpha.16) (2026-05-07) ([e85753d](e85753d)) * **release:** @visulima/fs@5.0.0-alpha.17 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.17](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.16...@visulima/fs@5.0.0-alpha.17) (2026-05-07) ([1c78b3e](1c78b3e)) * **release:** @visulima/fs@5.0.0-alpha.18 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.18](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.17...@visulima/fs@5.0.0-alpha.18) (2026-05-10) ([71dcf53](71dcf53)) * **release:** @visulima/fs@5.0.0-alpha.19 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.19](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.18...@visulima/fs@5.0.0-alpha.19) (2026-05-10) ([976cb1b](976cb1b)) * **release:** @visulima/fs@5.0.0-alpha.2 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.2](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.1...@visulima/fs@5.0.0-alpha.2) (2025-12-11) ([e5a83ea](e5a83ea)) * **release:** @visulima/fs@5.0.0-alpha.20 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.20](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.19...@visulima/fs@5.0.0-alpha.20) (2026-05-11) ([80ddc9c](80ddc9c)) * **release:** @visulima/fs@5.0.0-alpha.21 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.21](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.20...@visulima/fs@5.0.0-alpha.21) (2026-05-11) ([5da30a4](5da30a4)) * **release:** @visulima/fs@5.0.0-alpha.22 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.22](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.21...@visulima/fs@5.0.0-alpha.22) (2026-05-14) ([bffff8a](bffff8a)) * **release:** @visulima/fs@5.0.0-alpha.23 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.23](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.22...@visulima/fs@5.0.0-alpha.23) (2026-05-16) ([c94bf94](c94bf94)) * **release:** @visulima/fs@5.0.0-alpha.24 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.24](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.23...@visulima/fs@5.0.0-alpha.24) (2026-05-19) ([d9998bd](d9998bd)) * **release:** @visulima/fs@5.0.0-alpha.25 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.25](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.24...@visulima/fs@5.0.0-alpha.25) (2026-05-20) ([8dde93f](8dde93f)) * **release:** @visulima/fs@5.0.0-alpha.26 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.26](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.25...@visulima/fs@5.0.0-alpha.26) (2026-05-26) ([a1168eb](a1168eb)) * **release:** @visulima/fs@5.0.0-alpha.27 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.27](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.26...@visulima/fs@5.0.0-alpha.27) (2026-05-26) ([ba59301](ba59301)) * **release:** @visulima/fs@5.0.0-alpha.28 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.28](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.27...@visulima/fs@5.0.0-alpha.28) (2026-05-27) ([34b1a06](34b1a06)) * **release:** @visulima/fs@5.0.0-alpha.29 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.29](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.28...@visulima/fs@5.0.0-alpha.29) (2026-06-02) ([069d936](069d936)) * **release:** @visulima/fs@5.0.0-alpha.3 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.3](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.2...@visulima/fs@5.0.0-alpha.3) (2025-12-27) ([b322cdc](b322cdc)) * **release:** @visulima/fs@5.0.0-alpha.30 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.30](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.29...@visulima/fs@5.0.0-alpha.30) (2026-06-04) ([3bc7c3e](3bc7c3e)) * **release:** @visulima/fs@5.0.0-alpha.31 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.31](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.30...@visulima/fs@5.0.0-alpha.31) (2026-06-04) ([0e8ed0f](0e8ed0f)) * **release:** @visulima/fs@5.0.0-alpha.32 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.32](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.31...@visulima/fs@5.0.0-alpha.32) (2026-06-13) ([ab53856](ab53856)) * **release:** @visulima/fs@5.0.0-alpha.33 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.33](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.32...@visulima/fs@5.0.0-alpha.33) (2026-06-30) ([65aeb52](65aeb52)) * **release:** @visulima/fs@5.0.0-alpha.4 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.4](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.3...@visulima/fs@5.0.0-alpha.4) (2026-03-06) ([19a7e58](19a7e58)) * **release:** @visulima/fs@5.0.0-alpha.5 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.5](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.4...@visulima/fs@5.0.0-alpha.5) (2026-03-26) ([efe61b7](efe61b7)) * **release:** @visulima/fs@5.0.0-alpha.6 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.6](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.5...@visulima/fs@5.0.0-alpha.6) (2026-03-26) ([cb69642](cb69642)) * **release:** @visulima/fs@5.0.0-alpha.7 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.7](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.6...@visulima/fs@5.0.0-alpha.7) (2026-04-08) ([0764b69](0764b69)) * **release:** @visulima/fs@5.0.0-alpha.8 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.8](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.7...@visulima/fs@5.0.0-alpha.8) (2026-04-15) ([f4d569c](f4d569c)) * **release:** @visulima/fs@5.0.0-alpha.9 [skip ci]\n\n## @visulima/fs [5.0.0-alpha.9](https://github.com/visulima/visulima/compare/@visulima/fs@5.0.0-alpha.8...@visulima/fs@5.0.0-alpha.9) (2026-04-21) ([bdbb15d](bdbb15d)) * **repo:** sort package.json keys across all packages ([e1fd9ab](e1fd9ab)) * simplify pnpm-workspace packages list ([7cab221](7cab221)) * sorted package.json ([b47c545](b47c545)) * update @anolilab/semantic-release-pnpm and @anolilab/semantic-release-preset to versions 3.2.2 and 12.1.2 across multiple package.json files for improved compatibility ([3921626](3921626)) * update dependencies across multiple packages to improve compatibility and performance, including upgrading `@anolilab/semantic-release-pnpm` and `@anolilab/semantic-release-preset` to versions 3.2.0 and 12.1.0 respectively, and updating `react`, `react-dom`, and `next` versions to 19.2.1 and 16.0.7 in various package.json files ([aee8fcd](aee8fcd)) * update homepage URLs to visulima.com/packages/ format ([be42968](be42968)) * update lock file maintenance ([d83e716](d83e716)) * update the jsr.json ([864ab7e](864ab7e)) * visulima website ([#591](#591)) ([59ab2e2](59ab2e2)) * year update ([47f4105](47f4105)) ### Code Refactoring * **fs-bench:** move fixture creation to pretest:bench + idempotent ([767dc11](767dc11)) ### Tests * **fs:** cover ini-preserve rewrites, sanitize fallbacks, json5 hooks, walk symlinks, and move/remove options ([6e61c3a](6e61c3a)) * **fs:** expect ENOENT (not EPERM) for readJson on a missing file ([7ccb840](7ccb840)) * improve coverage across packages ([91bd6d3](91bd6d3)) * repair cerebro, fs, colorize bench CI runs ([03b530e](03b530e)) * **repo:** add dist runtime + types integration tests ([32ee300](32ee300)) ### Build System * **deps:** update fs dependencies ([f30e540](f30e540)) * regenerate bundled-license manifests and types ordering ([af26588](af26588)) ### Continuous Integration * disable isolatedDeclarationTransformer ([d5845d8](d5845d8)) * **fallow:** make fallow:health advisory (--report-only) ([d57148e](d57148e)) * **fs-bench:** skip fixture postinstall on windows ([906bfd4](906bfd4)) * integrate codspeed for benchmark tracking ([e758f3d](e758f3d)) ### Dependencies * **@visulima/path:** upgraded to 3.0.0 * **@visulima/error:** upgraded to 6.0.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #115