### What does this PR do?
Given pattern input "../." we might collapse all path components.
### How did you verify your code works?
Manually and added a test.
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Make it work with abs patterns
* add tests
* fixes
* Make all the ported fast-glob tests work for absolute path patterns, fix some stuff
* fix scan test
* remove TestBuilder in scan.test.ts
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* Make some things sync on windows
* WIP
* WIP
* remove uses to uv_default_loop
* remove a compiler warning on windows
* edfghjk
* Windows build fixes
* Fixup
* bundows
* Add quotes
* Fix --cwd arg on Windows
* comment
* move this up
* Fix some tests
* `mv` tests pass
* spawn.test passes again
* Allow .sh file extension for Windows
* Unmark failing tests
* env test pass
* windows
* Fix some tests
* Update ProcessBindingTTYWrap.cpp
* Update CMakeLists.txt
* Set tmpdir
* Make it 5s on windows
* Fixup
* Fixup
* Update ProcessBindingTTYWrap.cpp
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
* wip
* Fix a bunch of stuff
* Fix cat
* Fix shell rm windows
* Fix glob scan test on windows
* Fix rm on windows
* stuff
* make it compile on windows
* [autofix.ci] apply automated fixes
* fix compile
* Wow
* Minor changes
* Ensure handle is closed
* Regular files are not pollable on linux
* dupe the blob son
* fix mem leak stuf
* dont use O_NONBLOCK
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
* idk why that was left out
* No need for stat call, add text for broken symlinks
* tests for crashes
* Fix test
* Add some checks to limit max open file descriptors
* Update glob.zig
* Update glob.zig
* Update scan.test.ts
---------
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
* initial glob impl
* Add `Bun.globMatch`
* Glob boilerplate setup
* Experiment with Rust glob implementation
* Rust impl is slow revert
* Setup glob walking
* Basic glob walker working
* Fix segfault
* Recursive directory traversal
* Fix glob match non-ascii
* Make faster lil bit
* use arena
* ASCII fast path
* Experiment with packed codepoint cursor
Results in ~4% perf boost if the glob pattern needs to create/manipulate cursors (for example when the pattern uses braces)
* Try converting to u32 array
Made it pretty slow
* Lazily create codepoint buffer
* Different walk algorithm
* Fast path optimizations
* Add `dot` option to `Glob`
* .
* Fix some bugs
* Fix bug, clean up lil bit
* Windows fix
* Non absolute paths
* use specific version of fast-glob for benchmarks and tests
* .
* Fix some stuff
* Fix more stuff
* Add `hasPendingActivity()` to glob
* accident
* Symlinks
* fast-glob e2e tests
* remove
* woops
* Fix relative paths
* Fix absolute
* add test for `onlyFiles`
* Fix invalid surrogate pairs problem
* Rename: `match/matchSync` -> `scan/scanSync` and `matchString` -> `match`
* forgot to close cwd fd
* Update types
* Add stress test
* Port `micromatch` / `glob-match` / `globlin` tests
* fix stale reference arena thing
* stupid bug
* Add builtins to classes code generator and add `Glob.scanIter()`
* all iterables
* generate fixtures, remove from git
* fix test
* Fix
* woops on test
* Fix stuff
licenses
license
`has_pending_activity` to usize
cwd threadSafe fix atomic compile errors
`GlobWalker` own `cwd`
Fix windows path and absolute test
stuff
* Fixes
* Fix stuff
* Use Syscall.close
* Use private symbols for underlying scan functions to preevent misuse
* Update types
* Fix build for zig
* Fix tests
* Fix more tests
* Prevent these tests from GC'ing too much
* Make this benchmark work in Node and Bun
* Fix memory leak
* Add leak test
* Fix windows
* comment about arena allocator use for glob walker
* Make leak test run in separate process
* Iterator api for glob
* GlobWalker.Iterator
* fix leak test
* Remove old impl
* filter functions wip start
* stuff
* wip lockfile use glob
* glob working with lockfile
* revert lockfile changes
* Update bun.lockb
* Manually set to cwd to prevent test failing on linux CI
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>