dave caruso
5288178c86
fix(runtime): fs.cp edge cases ( #4439 )
...
* yippee
* enable cpSync tests
* much better
* that doesnt actually do anything
* lose
2023-08-31 23:04:19 -07:00
dave caruso
0a5d2a8195
feat(node:fs): add cp/cpSync/promises.cp + async copyFile ( #4340 )
...
* half working disaster code
* this
* async copyFile
* .
* its failing symlink tests
* asdfg
* asdf
* hmm
* okay i think ti works
* small edits
* fix test on linux
* i hate atomics / atomics hate me back <3
* add a message in the builtins bundler that 0.8 is needed. it breaks on older versions lol.
* fixed
* rebase
2023-08-30 18:30:06 -07:00
Jarred Sumner
ebfaa682f7
More renaming
2023-08-28 04:53:51 -07:00
Jarred Sumner
277e5c0b77
mv src/bun.js/node/syscall.zig -> src/sys.zig
2023-08-28 04:53:18 -07:00
Jarred Sumner
e2a17344dc
just kernel32 things ( #4354 )
...
* just kernel32 things
* more
* Update linux_c.zig
* Update windows_c.zig
* Add workaround
Workaround https://github.com/ziglang/zig/issues/16980
* Rename http.zig to bun_dev_http_server.zig
* Rename usages
* more
* more
* more
* thanks tigerbeetle
* Rename `JSC.Node.Syscall` -> `bun.sys`
* more
* woops
* more!
* hmm
* it says there are only 37 errors, but that's not true
* populate argv
* it says 32 errors!
* 24 errors
* fix regular build
* 12 left!
* Still 12 left!
* more
* 2 errors left...
* 1 more error
* Add link to Tigerbeetle
* Fix the remainign error
* Fix test timeout
* Update syscall.zig
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-08-28 04:39:16 -07:00
Ashcon Partovi
2a9e967fd1
More improvements to debugger support ( #4345 )
...
* More fixes for dap
* More changes
* More changes 2
* More fixes
* Fix debugger.ts
* Bun Terminal
2023-08-26 02:34:25 -07:00
Dylan Conway
097ae4e982
fix build
2023-08-24 19:05:40 -07:00
Jason
19aa9d93de
update zig to 0.11.0 ( #4233 )
...
* WIP
* backup
* more change
* json related error sovled
* number related issue solved
* revert WriterType changed before
* destroy -> free
* jsonStringify related issues solved
* fix mem.free expected []T or *[_]T, passed [*]const u8
* fix expected []T or *[_]T, passed [*:0]const u8
* fix build script
* fix build script, for real
* replace 0.11.0-dev.4006+bf827d0b5 to 0.12.0-dev.161+6a5463951
* fix build on macOS, COPYFILE.DATA -> COPYFILE_DATA
* fix the last destroy on [*]ptr issue
---------
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com >
2023-08-24 16:13:14 -07:00
Jarred Sumner
c13a27121c
Fix BigIntStats generated class
...
cc @paperdave, code generator script misses a constructor decl when this isn't true
2023-08-21 01:30:01 -07:00
Jarred Sumner
f75b949524
Fixes #1675 ( #4230 )
...
* Fixes https://github.com/oven-sh/bun/issues/1675
* Add fallback for Bun.write
* Update blob.zig
* Fix test
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-08-20 21:29:09 -07:00
Jarred Sumner
eec5bfb23a
misc non-posix fixes
2023-08-19 20:14:29 -07:00
dave caruso
26036a390b
Implement BigIntStats ( #4208 )
...
* Implement BigIntStats
* changes
* rename test
* comment
* test changes?
2023-08-18 19:59:03 -07:00
Jarred Sumner
943a664224
Remove most C API usages, add debugger pretty printers for Headers, URLSearchParams, FormData, Worker, EventTarget ( #4187 )
...
* Add pretty printers for `Headers`, `URLSearchParams`, and `FormData`
* [untested] Add way to code generate getInternalProperties
* bump
* Bump Webkit
* Ref the event loop while loaded
* wip
* checkpoint
* another checkpoint
* The code has been written
* Fixup exports
* Fix all the errors
* Fix bug
* [console.log] Fix bug when printing non-reified types missing values
* Fix loading hash table
* fix plugin
* Fix ref & unref
* auto-unref
* various fixes
* Update bun.zig
* Set toStringTag
* Delete code for macro JSX
* Delete code for `bun dev` HTTP JS
* Move Bun.serve to C++ API
* Delete JSC C API code
* ✂️ 💀 code
* Use JSC C++ for `confirm`, `Crypto`, `prompt`, `alert`
* more dead code
* Update exports.zig
* Use JSC C++ API for FFI
* Remove remaining usages
* Remove remaining usages
* Update ffi.ts
* Update InternalModuleRegistryConstants.h
* draw the rest of the owl
* Update webcore.zig
* bind it
* Fix performance regression in crypto.randomUIUD()
* Update js_parser.zig
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-08-18 19:58:03 -07:00
dave caruso
0424fd8f6e
Support Nitro ( #4098 )
...
* Add formatWithOptions
* tests and tweaks
* adjust
* changes
* hi
* add mark/measure stubs
* stuff
* allow unix absolute paths here
* typo
* rebase
* fix stats
2023-08-17 19:34:05 -07:00
Jarred Sumner
0486cea35a
bun --inspect (#4158 )
...
* Let the debugger to pause/resume the event loop
* Add initial support for Debug Adapter Protocol
* Add progress
* Update Worker.cpp
* Fix require("console") #3820 (#4073 )
* Fix #3820
* Add Module (#4074 )
* Set exports to {} in user-constructed CommonJSModuleRecords (#4076 )
* feat(bun/test): Implement "toSatisfy" & "toIncludeRepeated" (fwup) (#3651 )
* Fix merge issues
* oop
* make codegen
* Fix build issues
---------
Co-authored-by: dave caruso <me@paperdave.net >
* worker tests (#4058 )
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
* feat(bun:test) add support for test.each() and describe.each() (#4047 )
* rename callback to func
* update testscope to handle function arguments
* works
* big cleanup
* works in debug, not release
* fix memory issue & update tests
* catch & str test
* write types for each() & switch tests to ts
* rm & typo
* move some code around & support describe
* review changes
* Fix one of the astro segfaults, also fix bun init version (#4079 )
* 4->16
* add assertions
* fix version stuff
* Remove unintentional logs from #4043
* Run prettier
* Update main-worker-file.js
* Update SIMDUTF (#4078 )
* Fix constructing buffer from a UTF16 string with the Latin1 encoding. (#4086 )
Close : #3914
* Add support for `bun --revision` (#4027 )
Co-authored-by: Yash Sharma <yashsharma@Yashs-MacBook-Air.local >
* Updates
* Update __global.zig
* remove non-node node-fallbacks (#4082 )
* remove non-node node-fallbacks.
* organize the imports
* Fix test
* Sync bun-polyfills branch (#4081 )
* bun-polyfills: initial impl. & baseline refactor
* move @types/ws dep from root to /test/
* bun-types: remove ReadableStream.forEach method
(this does not exist, probably added by mistake)
* bun-polyfills: remove extraneous stream utils
* bun-polyfills: add types syncing file
* bun-polyfills: re-arrange global polyfills
* bun-polyfills: fix FileBlob streams types again
* bun-polyfills: sync all of @types/node
* bun-polyfills: typeguard all current polyfills
* bun-polyfills: fix import paths
* bun-polyfills: switch to wasm impl. of farmhash
* bun-polyfills: support default import of bun obj
* bun-polyfills: transpiler placeholder file
* bun-polyfills: loaderless import.meta polyfill
* bun-polyfills: refactor import.meta polyfill
* bun-polyfills: repl entrypoint & todo list index
* bun-types: Add null to return type of Bun.which
* bun-types: match Bun.sha with Bun.hash.SHA512_256
* bun-polyfills: new "repl" package.json script
* bun-polyfills: full refactor of toplevel hashes
* bun-polyfills: these are fixed
* bun-types: NODE_ENV is optional
* bun-polyfills: fix Bun.env types
* bun-types+polyfills: fix HeapSnapshot.version type
* bun-polyfills: fix some web streams type conflicts
* bun-polyfills: update internal FileBlob.slice
* bun-polyfills: fix subproc stdin conversions
* bun-polyfills: better internal fileblob types
* bun-polyfills: try to sync global performance type
* bun-polyfills: working zig wasm polyfills setup
* bun-polyfills: update scripts
* bun-polyfills: fix wasm file location resolution
* bun-polyfills: goodbye farmhash (replaced by zig)
* bun-polyfills: move all Bun.hash polyfills to zig
* bun-polyfills: reimpl. seeding of seeded hashes
* bun-polyfills: impl. undocumented murmur32v2
* bun-polyfills: switch zighash from jsdoc to .d.ts
* bun-types: partial fix of Hash types
* bun-polyfills: documented Hash.murmur32v2
* bun-polyfills: misc updates
* bun-polyfills: enable sourcemaps
* bun-polyfills: handle empty inputs to hash funcs
* bun-types: narrow down hash func types
* bun-polyfills: remove unnecessary bigint casts
* bun-polyfills: impl. Bun.isMainThread
* bun-polyfills: impl. Bun.sleep and fix sleepSync
* bun-polyfills: impl. indexOfLine
* bun-polyfills: impl. Bun.peek.status
* bun-types: fix hashing test
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
* Add remix guide
* Fix title
* add util.formatWithOptions (#4090 )
* Add formatWithOptions
* tests and tweaks
* adjust
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
* bun test: format description of test.each (#4092 )
* bun test: format description
* add tests for tests
* only
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
* Fixes #4062 (#4106 )
* Fixes #4062
* Update encoding.zig
* Use faster C++ impl
* Update wtf-bindings.cpp
* undo
* Fixup
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
* zig fmt
* Update remix guide
* fs.zig: create temp files with 0o700, not 0o007 (#4107 )
* Handle thundering herd of setInterval (#4109 )
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
* Fix memory leak in base64url (#4111 )
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
* run files without extensions (#4113 )
* run script without extension
* process stdio write fix
* don't check for trailing slash, var stream
* More lazily initialize these static strings
* Remove assertion
* wip
* Add --inspect flag
* Deprecate loading `node_modules.bun`
* realpath
* regenerate schema
* More
* more
* Update cli.zig
* Debugger JS loads
* have fun
* Most of the code
* Its starting to work.
* more progress
* win some, lose some
* Update dap.ts
* Async Context Tracking
* untested websocket
* Emit Console messages
* Error handling
* errors
* Make profiling work better
* [clap] CLI arguments with optional values ignore positional params
In `bun --inspect foo.js`, `foo.js` should not be the value of `--inspect`. It is a positional parameter. `--inspect=foo`
* Support multiple simultaneous clients, automatically unpause on disconnect
* regenerate
* Update Makefile
* Update WebKit
* Update cli.zig
* Update InternalModuleRegistry+createInternalModuleById.h
* BaseURL
* Update WebKit
* Add web-inspector-bun
* Update build.ts
* formatting, mostly
* Update debugger.ts
* Update InternalModuleRegistryConstants.h
* wrap
* Update test
* Update test
---------
Co-authored-by: Ashcon Partovi <ashcon@partovi.net >
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
Co-authored-by: dave caruso <me@paperdave.net >
Co-authored-by: Tiramify (A.K. Daniel) <94789999+TiranexDev@users.noreply.github.com >
Co-authored-by: Jacques <25390037+jecquas@users.noreply.github.com >
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
Co-authored-by: Ai Hoshino <ambiguous404@gmail.com >
Co-authored-by: Yash Sharma <yashosharma@gmail.com >
Co-authored-by: Yash Sharma <yashsharma@Yashs-MacBook-Air.local >
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com >
Co-authored-by: jhmaster <32803471+jhmaster2000@users.noreply.github.com >
Co-authored-by: Adhityaa Chandrasekar <github@adtac.in >
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com >
2023-08-16 19:40:20 -07:00
Ciro Spaciari
2634c64aa3
Fix prisma linux generation ( #4150 )
...
* check
* fmt + fix
* fmt
* ops
* add more targets
* more targets
* oops
* update bun lock and prisma
* manually add openssl
* targets on sqlite
2023-08-16 16:12:02 -07:00
dave caruso
78defe7a87
Fix worker event loop ref/unref + leak ( #4114 )
...
* make more tests pass
* worker changes
* fix some bugs
* remove this
* progress
* uh
* okay
* remove console log
* a
* comment assert for later
* mergable state
* remove test
* remove test
2023-08-12 13:51:03 -07:00
Jarred Sumner
c6d3b375b8
async realpath ( #4117 )
...
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-08-10 22:15:07 -07:00
Ai Hoshino
511f6bdf79
1. Check if the argument is an empty string in path.format. ( #4064 )
...
2. Avoid duplicating '/' at the beginning of the path.
Close : #4005
2023-08-08 07:03:18 -07:00
Ai Hoshino
5ce393aab8
Fix path.normalize edge case. ( #4042 )
...
Close : #4041
2023-08-07 06:44:04 -07:00
Jarred Sumner
9beccc3305
Fix thread safety issue in async fs functions file paths ( #3964 )
...
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-08-03 20:09:05 -07:00
Ai Hoshino
30dde62521
Fix the string encoding in path.extname. ( #3949 )
...
Close : #3948
2023-08-03 12:34:41 -07:00
dave caruso
c2a77cf7ec
Rewrite built-in modules to use CommonJS over ESM ( #3814 )
...
* stfdsafsd
sadffdsa
stuff
finish commonjs stuff
asdf
not done but work
not done but work
not done yet but this is how far i am
remove files
lol
update built files
uncomment everything in events lol
export default
stuff
* afdsafsd
* its not perfect but almost done
* okay
* cool
* remove temp file
* finish rebase
* revert settings.json
* a
* ch-ch-ch-ch-changes
* okay
* remove this check in release for now
* sxdcfghnjm,
* lkjhgf
* fmt
* filename can be null
* Update NodeModuleModule.h
* weee
* fmt
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-08-02 16:27:36 -07:00
Ciro Spaciari
25553e62c1
Fix path_watcher ( #3920 )
...
* fix callback and onError
* fix main watcher error return
* fixup
* rename to be more clear
2023-08-02 13:00:01 -07:00
Jarred Sumner
bd66a9a94c
Fixes #3868
...
Fixes #3868
Fixes #849
2023-07-28 17:53:12 -07:00
Ciro Spaciari
7fa71dd032
Resolve watch directories outside main thread + async iterator and symlink fixes ( #3846 )
...
* linux working pending tests with FSEvents
* add more tests, fix async iterator
* remove unnecessary check
* fix macos symlink on directories
* remove indirection layer
* todos
* fixes and some permission test
* fix opsie and make prisma test more reliable
* rebase with main
* add comptime check for macOS
* oops
* oops2
* fix symlinks cascade on FSEvents
* use JSC.WorkPool
* use withResolver, createFIFO and fix close event on async iterator
* remove unused events
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2023-07-27 19:23:54 -07:00
Jarred Sumner
007f357495
Make readFile() async ( #3850 )
...
* less leaky
* async readfile
* Update types.zig
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-27 16:55:49 -07:00
Jarred Sumner
704ee13392
Make readdir() async, fix crash in large directory trees ( #3838 )
...
* Fix unsafe GC behavior on large arrays returned by fs
* Fix crash in large arrays of strings
* async readdir
* Add tests for large number of files returned by readdir
* Move this down
* Fix encoding edgecase in path.join
* Async stat & lstat
* add test
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-27 04:27:09 -07:00
Jarred Sumner
d7aebc2222
Remove lstat call in fs.watch ( #3836 )
...
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-27 03:34:18 -07:00
Jarred Sumner
86633e0af4
Start time performance improvements to build tools ( #3797 )
...
* Make os.cpus() faster on Linux
* Fix crash
See https://github.com/ziglang/zig/issues/16540
* Handle watcher_count == 0
* Add assertion
* Clean up lifetimes of fs watcher a little
* ✂️
* Use `errdefer`
* Make the error better
* Make os.cpus() more lazy
* Please don't translate-c on the entire C standard library
* immediately closing works correctly is still bug
* ops
* fmt+fixeup
* add back verbose
* free instead of destroy
* remove destroy option for watcher tasks
* flush verbose and add debug log
* fixup files
* use log for debug
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
Co-authored-by: cirospaciari <ciro.spaciari@gmail.com >
2023-07-26 21:35:49 -07:00
Ai Hoshino
0297cb1527
fix the encoding of dirname's return value. ( #3799 )
2023-07-25 05:49:48 -07:00
Ai Hoshino
130079b558
fix some cases in the dirname function. ( #3785 )
...
Close : #3782
2023-07-25 00:41:22 -07:00
dave caruso
b17b61b8c6
fix path.format for vite build ( #3734 )
...
* fix path.format for vite
* Update path.test.js
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-22 16:45:45 -07:00
Ai Hoshino
04d19d6f6a
Fix writeFileSync when the mode is greater than 0o777. ( #3747 )
...
Close : #3740
2023-07-22 07:10:36 -07:00
dave caruso
9c85465a58
fix process.exit status code handling ( #3714 )
2023-07-20 19:16:56 -07:00
Dylan Conway
661355546a
zig upgrade ( #3667 )
...
* upgrade
* more fixes
* Bump Zig
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-18 01:20:20 -07:00
Jarred Sumner
7917ebd58f
Fixes base64url encoding for crypto ( #3654 )
...
* Fixes base64url encoding for crypto
* 🍏
* Update nodejs-apis.md
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-16 22:42:19 -07:00
Jarred Sumner
209dc981c0
Implement Workers ( #3645 )
...
* copy files
* format
* options
* Introduce `Worker`, `onmessage`, `onerror`, and `postMessage` globals
* Stub `Worker.prototype.ref` & `Worker.prototype.unref`
* Update web_worker.zig
* Worker works
* Add "mini" mode
* add wakeup
* Partially fix the keep-alive issue
* clean up refer behavior
* Implement `serialize` & `deserialize` in `bun:jsc` & add polyfill for `node:v8`
* Types & docs
* Update globals.d.ts
* Add mutex
* Fixes
---------
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-16 21:15:24 -07:00
Dylan Conway
c39c11e101
structured clone ( #3637 )
...
* copy `SerializedScriptValue`
* format
* make `SerializedScriptValue` compile
* add `transfer` option
* tests
* serialize/deserialize blobs
* tests for blobs
* serialize/deserialize file blobs
* more tests
* small cleanup
* format
* small changes + serialize offset
* slice helper
* map and set test
2023-07-14 19:37:22 -07:00
Jarred Sumner
854ddaa909
Implement throwIfNoEntry
2023-07-11 17:44:29 -07:00
Jarred Sumner
963d4311e6
Fixes #3530 ( #3587 )
...
* Fixes #3530
* Handle OOM
* Add test
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-09 22:36:24 -07:00
Jarred Sumner
aa8b832ef6
Implement process.on("beforeExit", cb) and process.on("exit", cb) ( #3576 )
...
* Support `process.on('beforeExit')` and `process.on('exit')`
* [bun:sqlite] Always call sqlite3_close on exit
* Update process.test.js
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-08 14:26:19 -07:00
Jarred Sumner
0ecdbf4793
[node:fs] read, write - support large numbers and BigInt ( #3556 )
...
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-07 00:33:43 -07:00
Ciro Spaciari
034577c9da
[fix] patch fs.watch sym link ( #3481 )
...
* oopsie
* add tests
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2023-07-03 14:08:49 -07:00
Jarred Sumner
6cae6ebafe
Make buffer.toString("base64") 4x faster ( #3486 )
...
* Add libbase64
* Add bench
* Update licensing.md
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-01 20:02:50 -07:00
Jarred Sumner
f00e2be548
Use BunString in SystemError ( #3485 )
...
* Use `BunString` in SystemError
* Use Bun::toStringRef when we will de-ref strings
* Move `napi_create_error` to C++ to support `code` being a Symbol potentially
* Update blob.zig
* Make this test less flaky
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-07-01 17:37:44 -07:00
Jarred Sumner
70a87e1181
Make node:os tmpdir more consistent with Node.js
2023-06-29 16:37:38 -07:00
Jarred Sumner
50e872fc76
Implement writev & readv ( #3419 )
...
* [node:fs] Implement `writev` and `readv`
* writev & readv tests
* cast to const type
* woops
* cast
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-06-26 11:56:53 -07:00
Jarred Sumner
f2285a6d71
Use bun.String in mkdir ( #3404 )
...
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com >
2023-06-25 17:54:55 -07:00
Jarred Sumner
15ac08474e
fixup
2023-06-25 16:40:51 -07:00