Compare commits

...

8057 Commits

Author SHA1 Message Date
Zack Radisic
8a3154098c Run zig fmt 2024-02-12 17:41:31 -06:00
Georgijs
a80b3569b4 disable quiet logs when BUN_DEBUG_LOG is set to 0 (#8866) 2024-02-12 15:20:38 -08:00
argosphil
8b5cac1ea1 chore: use shell-independent globbing in bun run fmt:zig (#8861)
* fix: use shell-independent globbing in bun run fmt:zig

* Erase experimental creature escaped from @paperdave's lab.

See https://github.com/oven-sh/bun/pull/8861#discussion_r1485747297
2024-02-12 14:51:39 -08:00
John-David Dalton
96e7227087 feat: Add win32 path.toNamespacedPath and align rest of node:path with Node (#8469) 2024-02-12 14:27:26 -08:00
Dale Seo
f88855da4f docs: non-null assertion is needed on document.getElementById (#8540) 2024-02-11 20:10:17 -08:00
Ujjwal gupta
19cb3ab6ff fix: ws.publish() not working (#8855)
* fix: ws.publish() not working

* fixes
2024-02-11 13:56:06 -08:00
argosphil
862d35d832 fix: bun test -t (#8845) 2024-02-11 08:39:27 -08:00
argosphil
a0bcd0f946 Fix expect().toBeGreaterThan() not throwing when ANSI is disabled (#8838) 2024-02-10 14:00:16 -08:00
guest271314
2264bb3d04 Substitute js/ for test/js/ (404) (#8808) 2024-02-10 10:44:22 -08:00
Ciro Spaciari
3e1231deb4 fix(crypto) fix KeyObjectkey handling (#8824)
* ref/deref buffer

* Clean up this code

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-02-09 21:14:35 -08:00
dave caruso
dfcac563bc fix error message in bun.serve (#8828)
* fix error message in bun.serve

* ok
2024-02-09 17:24:46 -08:00
Ciro Spaciari
90fd322b5c fix timer tests (#8804) 2024-02-09 14:00:47 -08:00
Zack Radisic
f77b217abf Correct shell docs for $.escape() 2024-02-09 11:41:59 -06:00
Risu
7c2be6a877 Fix bun-types/index.d.ts (#8802) 2024-02-09 08:46:42 -08:00
Dylan Conway
a3c3dad351 wrap (#8812) 2024-02-09 03:42:03 -08:00
Travis Cooper
98b438d0a4 Update bunfig.md (#8807) 2024-02-09 01:54:00 -08:00
cirospaciari
58d22b063c Unmark tests that are now passing on Windows 2024-02-08 23:02:32 -03:00
Ciro Spaciari
8cd1db9cda [windows] fix crypto (#8797)
* fix password

* refactor

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-02-08 18:00:22 -08:00
dave caruso
2d7df726fd fix: get bun build working on window (#8712)
* work on bundler

* a

* YAAAAYYAYAYAYYAYA

* get some more bundler tests working

* Update src/bundler/bundle_v2.zig

* rev

* ok

* i converted the cmakelists into LF

* personal review

* we didnt win

* okey they pass

* revert :(

* a

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-02-08 17:56:26 -08:00
Ashcon Partovi
1ccf0c2e9c Fix some errors not showing up in GitHub annotations (#8799)
* Remove dead code now that `expect()` can be used outside of tests

* Fix some errors not being rendered to GitHub annotations

* [autofix.ci] apply automated fixes

* Update jest.zig

Try `execCallback`

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-08 17:52:58 -08:00
cirospaciari
db85e04ade Unmark tests that are now passing on Windows 2024-02-08 22:19:31 -03:00
Ciro Spaciari
c2936b205d [windows] fix(fetch) file:///, keepalive and tests on Windows (#8784)
* fix file:/// on windows

* skip fifo test

* fix keepalive

* fixes

* avoid std.os.getcwd on POSIX
2024-02-08 17:11:06 -08:00
dave caruso
8680641c23 make process.test.js pass (#8798) 2024-02-08 16:54:09 -08:00
Ciro Spaciari
e77db8ebac [windows] fix which (#8791)
* fix which

* [autofix.ci] apply automated fixes

* refactor

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-08 15:44:56 -08:00
Steven Roussey
dfbedd6a10 fix: flaky test (#8796)
This often fails in CI (and on my machine) non-deterministically.

The 1ms + the 5000 is likely setting up a race condition in tasks/microtasks. Just changing it to to +10ms instead of +1ms is enough.
2024-02-08 15:17:14 -08:00
Ashcon Partovi
8624a86eba Unmark tests that are now passing on Windows 2024-02-08 13:42:13 -08:00
Georgijs
bfc6091faf correctly unblock all signals (#8792) 2024-02-08 12:09:33 -08:00
Joe
9d0a88ab82 docs: quick note on dependencies for C++ (#8772)
* quick note on dependencies for C++

* note Ubuntu C++ standard lib issue and anchor link to troubleshooting

* clarify ubuntu distros
2024-02-08 11:18:37 -08:00
Jarred Sumner
2f8f77eeb7 Ignore panic in reload (#8778)
* Ignore panic in reload

* Use

* Update c-bindings.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-02-08 00:29:08 -08:00
Steven Roussey
7b6e0f7164 fix: Increase max depth of expect diffs (#8771)
Fix Issue #6519
2024-02-07 16:07:20 -08:00
Ciro Spaciari
5df59cb02b [windows] fix(fs.watch) (#8746)
* clean fixes

* [autofix.ci] apply automated fixes

* more tests passing

* EPERM instead of AccessDenied

* [autofix.ci] apply automated fixes

* fix test on windows

* cleanup

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-07 15:44:07 -08:00
Jarred Sumner
b61282e290 Fix async module mocking (#8769)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-02-07 15:40:10 -08:00
Dylan Conway
dd3227c436 fix: crash in release builds (#8773)
* zig

* unreachable

* more comment
2024-02-07 15:38:14 -08:00
Georgijs
a9a4bbcd24 remap 0.0.0.0 to localhost on windows (#8770) 2024-02-07 15:17:24 -08:00
Georgijs
55aa35ee35 Fix watch attempting to reuse ports that are not yet released by the old process (#8764)
* windows watcher start new process only after previous terminated

* simplify env setup in spawnWatcherChild
2024-02-07 15:11:28 -08:00
dave caruso
a99459ffdc fix: symlinked files as entry points do not show Bun.main (#8762) 2024-02-07 13:06:11 -08:00
Jake Gordon
08f957d33b fix glob example to be recursive as stated (#8755) 2024-02-07 12:53:28 -08:00
Georgijs
2bd4fe578e Make HTTP shutdowns more robust, speed up connection to localhost (#8730)
* http use arraylist to handle shutdowns

* on windows use wsaconnectbyname to speed up localhost connections

* use arbitrary port

* close socket on setsockopt error

* use null timeout in wsaconnectbyname

* Update src/http.zig

* fix zig compile

* update hostname on linux

* [autofix.ci] apply automated fixes

* fix getpeername failing after connecting with socket

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-07 12:19:41 -08:00
Georgijs
d672309547 c-ares dns on windows (#8737)
* c_ares dns on windows works

* handle errors

* fix invalid hostnames test
2024-02-07 16:26:53 -03:00
argosphil
e171f04ce6 Fix ref-counting of Bun.file(0) etc. (#8687) (#8741)
* Test for #8687

* Fix reference counting of Bun.file(0) etc. (#8687)

Fixes #8687.
2024-02-06 18:11:25 -08:00
Ciro Spaciari
651d5699a0 [windows] fix(fs.watchFile) (#8735)
* fix fs.watchFile

* oopsie

* fix bigint and persistent

* use repeat to make watchFile tests more reliable

* [autofix.ci] apply automated fixes

* follow the pattern

* add increment

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-06 18:10:28 -08:00
Meghan Denny
d0d4d8bf85 windows: enable more passing tests (#8711)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-02-06 16:08:49 -08:00
Ciro Spaciari
53814dda00 [windows] fix(http2) (#8734)
* fix win http2

* add includes

* cleanup

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-06 15:37:39 -08:00
Meghan Denny
d3d5c7a1d6 tidy: access env map through getter rather than direct field (#8716) 2024-02-06 11:25:45 -08:00
Jarred Sumner
972a7b7080 skip some tests 2024-02-05 19:51:08 -08:00
Jarred Sumner
e3759bbbfe Update bun-windows.yml 2024-02-05 18:46:18 -08:00
Jarred Sumner
f722236978 [windows] Make child_process.spawn not say "TODO: IPC" when IPC isn't used 2024-02-05 17:39:47 -08:00
dave caruso
e366921e90 fix(windows): make fs.symlink normalize forward slashes to backslashes (#8710)
* fix fs.symlink()

* update comment

* .

* add todo
2024-02-05 16:09:50 -08:00
Georgijs
bd2779b029 Fix --hot with empty file, make --hot faster on windows (#8708)
* reduce watcher timeout in windows, fix hot reload with empty files

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-05 14:40:18 -08:00
Ashcon Partovi
a05ef0aeb1 Remove unintentional commit
This reverts commit 23b292ac21.
2024-02-05 12:50:09 -08:00
Ashcon Partovi
264142e756 Add isWindows and related helpers to test harness 2024-02-05 12:47:52 -08:00
Ashcon Partovi
51def5f5d6 Use biome in bun-types 2024-02-05 12:22:39 -08:00
Ashcon Partovi
23b292ac21 T 2024-02-05 12:22:39 -08:00
dave caruso
48ed1dfb65 less (#8651)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-02-05 10:06:23 -08:00
Drake Semchyshyn
bd4d0d15db Update plugins.md (#8674)
Updated Custom Plugins section (Svelte) so that the import name, and the name that was used, matches each other.
2024-02-04 01:19:00 -08:00
Jarred Sumner
1f0c1c81e9 Fix test 2024-02-04 00:42:40 -08:00
Jarred Sumner
e93eb6c1ab Add event loop debug assertion for Promise.resolve() and Promise.reject() 2024-02-04 00:03:45 -08:00
Jarred Sumner
1009b07807 Implement server.unref() and server.ref() (#8675)
* Implement server.ref() and server.unref()

* Update dns_resolver.zig

* Update server.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-02-03 23:57:34 -08:00
Georgijs
1a695f13bf Async file copying on windows (#8649)
* rework and simplify file opening in windows

* fix tests

* symlink tests pass

* update error handling

* remove outdated normalization check

* fix mac build

* apply suggested fixes

* fix path tests

* remove debug print

* fix windows compile
2024-02-03 22:33:35 -08:00
Jarred Sumner
c75e768a6c Assert we drained the microtask queue since the last time we called into JavaScript (#8646)
* Add checks that we drain the microtask queue whenever we call into JavaScript

* Drain microtasks in more places

* Tweak assertions for entering/exiting the event loop

* Drain more

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-02-03 07:40:15 -08:00
Dylan Conway
7d86f9e590 fix(test): strict equals and deleted properties (#8663)
* deleted properties size

* dont need count if structure id is eql

* more test

* fix slow path

* oops forgot this
2024-02-03 06:35:13 -08:00
Dylan Conway
a8600b0878 upgrade 2024-02-03 06:20:24 -08:00
Dylan Conway
5b228256f9 method and comment 2024-02-03 04:24:20 -08:00
Dylan Conway
ba4daee7e5 fix: statement joining and tmpdir on windows (#8659)
* drive letter

* joinwithcomma bundle

* tmpdir update

* same order as os.tmpdir
2024-02-03 04:17:12 -08:00
Jarred Sumner
2c0c562d1d Fixes #4746 (#8661)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-02-03 03:38:59 -08:00
Jarred Sumner
683a03d8c7 Set a default value for Error.prepareStackTrace to align with Node (#8657)
* Set a default value for `Error.prepareStackTrace` to align with Node

* Ensure we never set negative line/column numbers in error.stack (#8656)

* fix(windows): fix macros (#8653)

* fix macro tests

* path format options

* remove failing comment

* fix buffer toString memcpy length

* Ensure we never set negative line/column numbers in error.stack

---------

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2024-02-03 02:04:58 -08:00
Dylan Conway
e0c0fe235a fix(windows): fix macros (#8653)
* fix macro tests

* path format options

* remove failing comment

* fix buffer toString memcpy length
2024-02-03 00:35:25 -08:00
Jarred Sumner
d16ac87347 Export compile_commands.json 2024-02-02 23:25:07 -08:00
Dylan Conway
5934b17f00 fix(windows): fix a few more tests (#8644)
* fix regression tests

* fix fs.test.ts bigintstats

* enable transpiler cache lol

* remove failing

* fix filesystem router

* update

* fix run-unicode test

* update comment

* add updated snapshot

* fix remaining node-module-module tests

* fixup

* [autofix.ci] apply automated fixes

* fix tty tests

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-02-02 18:58:16 -08:00
Ashcon Partovi
eedf008c80 Fix formatting not always working 2024-02-02 14:25:53 -08:00
Meghan Denny
3a6318b67c windows: fix module.paths getter causing a crash (#8633)
* windows: fix module.paths getter causing a crash

* use the buffer that was there before
2024-02-02 01:29:50 -08:00
dave caruso
647b15e4f3 fix(windows): initialize uv allocators earlier (#8631)
* uv loop is thread local

* hi

* stuff so far

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-02-02 00:18:28 -08:00
ふかねこ
625b172a71 docs: Update binary-data.md (#8635)
Binary notation ("0b") is appropriate instead of hexadecimal notation ("0x").

Sorry for the omission of the correction in this [PR](https://github.com/oven-sh/bun/pull/8619).
2024-02-02 00:16:14 -08:00
Meghan Denny
4959c7d363 remove ZigString.Slice.from .init is the exact same thing (#8632)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-02-01 20:35:47 -08:00
Meghan Denny
8808437a02 meta: remove remaining references to prettierrc.cjs (#8634) 2024-02-01 19:24:17 -08:00
Tiramify (A.K. Daniel)
330a4744de chore: fix compiling fd.zig on linux (#8630) 2024-02-01 17:31:54 -08:00
Ashcon Partovi
3a1229d03d Add mysql2 integration test (#8075) 2024-02-01 15:04:49 -08:00
Ashcon Partovi
63a9a8b015 Improve .vscode extensions, tasks, and configuration (#8511) 2024-02-01 14:55:35 -08:00
dave caruso
f73bde79c7 fix(debug): get the result for fd debug message before we close it (#8626) 2024-02-01 14:26:20 -08:00
Meghan Denny
3a7df3f6c7 windows: add more passing test (#8615) 2024-02-01 13:45:47 -08:00
dave caruso
0037dc2537 chore: update webkit 2024-02-01 13:38:09 -08:00
ふかねこ
c0fe042102 Update binary-data.md (#8619)
Binary notation ("0b") is appropriate instead of hexadecimal notation ("0x").
2024-02-01 12:38:54 -08:00
Andres Guarneros
ce1eba1954 Update quickstart.md (#8622)
Update index.ts code snippet for consistency in quickstart.md.
2024-02-01 12:38:21 -08:00
Dylan Conway
8191fbd970 fix: id instead of path (#8617)
* use id

* another path
2024-02-01 02:19:18 -08:00
Dylan Conway
2af7cdedc2 path should be dirname 2024-02-01 00:34:34 -08:00
Dylan Conway
4f98336f86 fix(windows): fix installing non-ascii paths and make normalizeBuf generic (#8608)
* comptime type normalizeStringBuf

* delete

* revert

* revert revert

* revert

* remove unused

* remove unnecessary assert

* add comment

* remove normalize, need ../

* use Output.err

* update error message

* generic T suffix

* fix windows build

* more fix build

* more fix build

* mkdiratZ

* update test

* [autofix.ci] apply automated fixes

* update snapshot again

* fix merge

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-31 22:44:23 -08:00
dave caruso
91cfd614ca fix(window): some more bin things (#8612)
* allow linking bins that do not exist.

* fix some things
2024-01-31 22:37:03 -08:00
Meghan Denny
42e4cd8408 get more bundler tests passing on windows (#8560)
* get test/bundler/bundler_naming.test.ts passing on windows

* move platformToPosixInPlace to bun.path and use the vector'd version

* only resolve rel_path if it contains '/./', most of the time './' needs to be preserved

* fix another file too

* move kernel32 extern to better location

* [autofix.ci] apply automated fixes

* use bun.path.posixToPlatformInPlace here

* rewrite this whole section to stay in utf16 and handle errors

* remove dead comments

* fix a typo

* undo these relative changes

* preserve path.pretty from getting lost

* use bun's instead of zig's resolve here

* both side of this loop need the inplace normal

* use existing generic dirname function

* make path inplace functions generic

* we might need to modify this so copy on windows

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* don't assume the prefix we get from this

* more robust path traversal

* don't mangle absolute paths

* do this bit in a loop

* this line is a u16

* dont forget to compile before pushing

* this was wrong

* look into this later

* check pointer math first since its faster

* posix syscalls support path traversal, don't do the work for them

* its already inside stable, no need to change

* used the online editor

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-31 22:29:33 -08:00
dave caruso
dbe0a4a978 do more assertions (#8610) 2024-01-31 22:14:03 -08:00
Georgijs
350cc1178a --watch and --hot on windows (#8607)
* draft impl of windows watcher

* synchronous watcher

* working standalone watcher

* in progress changes to watcher

* make watcher non-global

* prepare watcher for windows impl

* add windows watcher scaffold and clean up imports

* fix inotify

* make watch code more generic over platforms

* fix visibility

* watcher starts without error

* printing changes works

* basic windows watching works

* handle process exit from watcher

* cleanup in process cloning

* clean up logging and panic handling

* fix hot reload test on windows

* misc cleanup around watcher

* make watch test actually useful

* [autofix.ci] apply automated fixes

* remove old files

* clean up watchers

* update .gitignore

* rework windows watcher into single watcher instance watching top level project dir

* use non-strict utf16 conversion

* change to contains

* fix mac and linux compile

* add baseline in crash report (#8606)

* allow linking bins that do not exist. (#8605)

* fix linux compile

* fix linux compile (again)

* remove outdated todo

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2024-01-31 22:06:33 -08:00
Jarred Sumner
dccabd9423 Make test work better on windows 2024-01-31 22:03:52 -08:00
dave caruso
345a061d3b fix(windows): make process.env case-insensitive (#8578)
* yay!!!!!!

* [autofix.ci] apply automated fixes

* ok

* do not use reflect here

* ok

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-31 21:52:50 -08:00
3λiȯ+
690346b30b docs: Fix typo in code example for Transpiler.transformSync (#8553)
* Docs: Fix typo in code example for transformSync

* Remove await since transformSync is synchronous

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-31 21:18:57 -08:00
huseeiin
16b7b94aea Update bun.d.ts (#8595)
Add `string | ArrayBuffer` to compressing/uncompression functions
2024-01-31 21:13:12 -08:00
Meghan Denny
fcf0047763 windows: pass ws.test.ts (#8611) 2024-01-31 21:08:19 -08:00
dave caruso
af1a124831 allow linking bins that do not exist. (#8605) 2024-01-31 19:08:50 -08:00
dave caruso
f5754e3c19 add baseline in crash report (#8606) 2024-01-31 18:13:39 -08:00
Joe
4e09f8ef8f Issue-6526 - clarify web docs for the use of .only() (#8600)
* Update writing.md

clarify the use of `.only()`

* Update test.d.ts

Small clarification in JSDoc
2024-01-31 14:12:26 -08:00
Luke Ingalls
1969204fa5 docs: remove outdated callout (#8584)
seems like this is already patched https://github.com/oven-sh/bun/issues/5394
2024-01-31 00:08:26 -08:00
dave caruso
2d9db9b28f fix napi-rs libraries on windows (#8583)
* yay

* a

* ok

* typo

* un-CRLFify these files
2024-01-30 20:21:52 -08:00
dave caruso
0333c7b0bf Fix "__dirname" on windows (#8579) 2024-01-30 16:17:32 -08:00
Dylan Conway
82829c5925 fix crash 2024-01-30 13:44:00 -08:00
dave caruso
8fdb46cb91 ok 2024-01-30 10:04:06 -08:00
vinnichase
0aba51230c dx: create symlink on every execution (#8568)
Symlink is not created on first setup.
2024-01-30 09:41:18 -08:00
Dylan Conway
ca801a35fe fix(windows): fix win32 errors (#8569)
* translate eexist

* use SystemErrno translation

* update
2024-01-30 06:49:59 -08:00
vinnichase
692fb220a4 Update launch.json to use ${workspaceFolder}/build/bun-debug (#8570) 2024-01-29 22:38:43 -08:00
dave caruso
cf1c849e4a fix(windows): more reliable extracting (#8567)
* finally

* a

* Update src/install/extract_tarball.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* fix compilation

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-29 20:03:02 -08:00
Jarred Sumner
2eede4f435 Fixes #8555 (#8566)
* Fixes #8555

* Make this closer to what npm does

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-29 17:52:08 -08:00
dave caruso
4989ef88b8 docs: mark PerformanceEntry and friends as implemented (#8466)
* docs: mark PerformanceEntry and friends as implemented

* Update docs/runtime/nodejs-apis.md

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-29 15:49:06 -08:00
Jarred Sumner
9fa26e6a09 Close more file descriptors in bun --watch (#8533)
* Close more file descriptors in `bun --watch`

* Reset signals

* Add comment

* Update bun.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-29 15:48:26 -08:00
Jarred Sumner
413aaaff33 [bun:sqlite] Support multiple statements in db.run() (#8541)
* [bun:sqlite] Support multiple statements in db.run()

* Update sqlite.test.js

* Update JSSQLStatement.cpp

* Another test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-29 15:17:51 -08:00
Dylan Conway
c538bf87d1 fix(windows): transpiler cache and other test fixes (#8471)
* umask

* process args

* update reportError.test.ts

* file exists

* transpiler cache

* back to const

* remove failing comments

* [autofix.ci] apply automated fixes

* update comment

* debug assert and remmove branch

* oops

* escape

* path sep

* seekTo

* disable

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-29 15:17:23 -08:00
dave caruso
1e9b44adda internal: report all failing tests to our internal feed (#8563)
* yeah

* oop

* yeahh
2024-01-29 15:17:14 -08:00
dave caruso
3046b0ee39 feat(windows): allow open and Bun.file() with /dev/null (#8499)
* DEV NULL

* oops

* ok
2024-01-29 11:08:09 -08:00
dave caruso
01d41838c5 fix(builtin-bundler): do not replace globals when extending classes (#8557)
* fix(builtin-bundler): do not replace globals when extending classes

* format
2024-01-29 11:07:39 -08:00
dave caruso
bc7e7027e4 windows: some random things (#8521)
* swaggin

* fix(bun_shim_impl): support exe names that are shorter than four characters

* hi

* a
2024-01-29 10:50:24 -08:00
João V. Farias
eaea6dea54 chore(build): adjust arch/manjaro linux auto detect to include artix (#8510) 2024-01-29 09:41:58 -08:00
Jarred Sumner
d0b759f784 Remove references to bun-types 2024-01-29 08:10:14 -08:00
Dale Seo
dbfc62e288 docs: include .jsx (#8542) 2024-01-28 10:00:54 -08:00
Yahya Jirari
34ae040d95 docs: remove unnecessary await in lines() example (#8537) 2024-01-28 06:36:29 -08:00
Ben Limmer
3caa846988 docs: expect.extend is implemented (#8525) 2024-01-27 20:39:46 -08:00
Dylan Conway
5a0ae3c256 not on windows 2024-01-27 07:32:06 -08:00
Dylan Conway
568f87eb8f fix(windows): bun link, unlink, and fix tests in test/cli/install (#8517)
* link and unlink

* valid git dependency cache path

* windows global link

* not git

* update some tests

* update more tests

* update

* update log

* fix snapshots

* more tests

* fix bun pm ls

* make it possible to delete cache dir

* normalize

* fix bun-create tests

* update bun-remove tests

* silent

* bun-run update

* update more tests

* update more

* update

* [autofix.ci] apply automated fixes

* update simdutf for getFdPath

* update test

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-27 04:22:04 -08:00
dave caruso
968c21d80a feat(windows): support bun build --compile (#8503)
* alright

* were winning

* WAOOOOOO
2024-01-26 20:56:08 -08:00
dave caruso
6faeef6dc2 Workaround https://github.com/microsoft/terminal/issues/16606 (#8506)
Fixes #8504
2024-01-26 20:55:48 -08:00
Georgijs
08c9511acc [windows] nodefs (#8509)
* 100 passing fs tests

* 111 fs tests passing

* 114 passing fs tests

* 115 passing (TODO: fix path normalization for windows ntCreateFile

* all fs tests passing

* [autofix.ci] apply automated fixes

* make windows path norm smarter, fix tests

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-26 20:07:33 -08:00
Meghan Denny
1644f341f9 windows: setInterval.test.js is passing now (#8508) 2024-01-26 14:11:03 -08:00
nullun
17fc1e7be1 chore: Remove trailing whitespace (#8502) 2024-01-26 07:25:45 -08:00
Jarred Sumner
7492b3a203 [windows] Remove no longer failing tests from being marked as failing 2024-01-25 21:59:11 -08:00
Jarred Sumner
681baedab2 Track hasInstallScript and libc in NPM registry api (#8495)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-25 20:38:20 -08:00
Jarred Sumner
c7c3ae381b Make this test less flaky on Windows 2024-01-25 20:37:41 -08:00
Jarred Sumner
7543da0bb3 Always normalize the carriage returns in the bundler tests 2024-01-25 20:27:58 -08:00
dave caruso
83ac4f0c33 windows: fix bun plugin (#8485)
* plugins work now

* real

* Update src/js/builtins/BundlerPlugin.ts

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-25 19:34:51 -08:00
Jarred Sumner
3c42dfd42b [internal] Tweak jsonc formatting 2024-01-25 19:19:32 -08:00
Jarred Sumner
e3188c918a use Biome to format Bun's codebase instead of Prettier (#8494)
* Ignore

* Create biome.json

* Ignore

* biome

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-25 19:15:26 -08:00
Jarred Sumner
045672cf67 Force \n instead of \r\n on Windows CI 2024-01-25 19:05:47 -08:00
Dale Seo
345ed18454 fix: mock() should work with no arguments (#8492) 2024-01-25 17:06:36 -08:00
Jarred Sumner
5462ca01fd Typo 2024-01-25 16:33:07 -08:00
Jarred Sumner
4bfd8a8cef Make this test less flaky on Windows 2024-01-25 16:30:25 -08:00
Jarred Sumner
a2a12b5802 Make this test less flaky on Windows 2024-01-25 15:09:32 -08:00
Jarred Sumner
b6c1dc1fa8 Use native AbortController & AbortSignal when abort-controller is loaded (#8489)
* Nationalize `abort-controller`

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-25 15:01:29 -08:00
Jarred Sumner
f4f8bb377a Make this test less flaky on Windows 2024-01-25 14:53:20 -08:00
Jarred Sumner
5c21695db6 Bump + ci autofix (#8490)
* Bump

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-25 13:58:59 -08:00
Adam Dimitry Enzo Ambrosino
2c16b204ff Fix type definition for Array.fromAsync (#8486) 2024-01-25 10:32:47 -07:00
dave caruso
20f7fd5b08 fix(windows): do not use GetTempPath2W (#8477) 2024-01-25 08:13:36 -08:00
dave caruso
c9a7d24538 windows(install): add bun_shim (support bin linking, bin shebangs, etc) (#8265)
* shim v1 TODO

* fix BunXShimData

* wip

* put a little bit of the sa u c e on it

* wow

* wat

* a

* swag

* swag

* allllllllllllright

* Update src/install/bin.zig

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* swag

* swag

* finis

* fix submodules

* ok

* omg it works again

* silly

* ok

* OK

* update laucnh jsn

* swaaaaaaaaaaaaag

* remove debug

---------

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-25 07:38:55 -08:00
Jarred Sumner
108cae5189 Disable dead code elimination when code coverage is enabled (#8473)
This should hopefully make source mappings more accurate

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-25 05:31:44 -08:00
dave caruso
358be9e727 docs: update the windows build documentation and list it on the docs site 2024-01-25 04:15:41 -08:00
Jarred Sumner
2a6388d50b Silence log when ENOTCONN
When using sendfile() to stream, if the user aborted the request it may appear as `ENOTCONN`, which we were logging to the terminal. We really shouldn't be logging anything here, but it's a little unclear what kind of error to emit. It's not a fatal error.
2024-01-25 01:03:29 -08:00
Jarred Sumner
aa901a22c2 Update types.zig 2024-01-24 23:11:58 -08:00
Jarred Sumner
562495b878 [windows] Mark as known failing 2024-01-24 23:11:55 -08:00
Jarred Sumner
875728da83 [windows] Make more things panic 2024-01-24 22:47:40 -08:00
Jarred Sumner
47e7e004b1 Remove @known-failing-on-windows for tests which are no longer failing on windows 2024-01-24 21:03:32 -08:00
Georgijs
80bd3254cc fix argv parsing on windows (#8458)
* fix argv parsing on windows

* directly use zig stdlib

* remove debug comments, fix double deinit

* change bun.argv() to return slices, not null-terminated pointers

* fix test on windows to escape file paths correctly

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-24 20:54:01 -08:00
Jonathan Deiss
0bf8a25d50 Clarifies bun shebang in bunx documentation (#8437)
* Update bunx.md

* better phrasing of shebang
2024-01-24 19:59:56 -08:00
Meghan Denny
effb8f189b windows: fix some websocket tests (#8433)
* windows: fix some websocket tests

* this file should work now, report any errors

* make this change later

* add back running this with node

* add as const to these

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-24 19:40:59 -08:00
Johann
7eeefc1497 chore(password): fix sha256 typo (#8461) 2024-01-24 19:27:29 -08:00
Georgijs
025a5ba140 fix sys.dup on windows and make console-iterator work (#8463)
* fix sys.dup on windows and make console-iterator work

* fix(windows): fix console async iterator to not include the \r

* fix kill on windows again. and report the right errno

---------

Co-authored-by: dave caruso <me@paperdave.net>
2024-01-24 19:25:45 -08:00
Ashcon Partovi
885d705d55 Fix bun-types version being incorrect 2024-01-24 15:21:10 -07:00
dave caruso
3447bc2ed3 fixy 2024-01-24 03:16:23 -08:00
Jarred Sumner
f1f861fd74 [windows] Fix panic in server 2024-01-24 02:20:29 -08:00
dave caruso
58ba802ca6 ci(windows): install the profile build 2024-01-24 02:12:16 -08:00
Zachary Huang
73f3b92dc9 fix(ci): fix MacOS build when OpenSSL is also installed (#7759)
Co-authored-by: dave caruso <me@paperdave.net>
2024-01-24 01:44:04 -08:00
dave caruso
eeb10f3f7d fix(windows): fix node:url pathFromFileURL and fileURLFromPath and file url tests (#8442)
* yay for file urls

* swag

* oops

* merge conf

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-24 01:19:47 -08:00
dave caruso
8544f8ae68 ci(windows): debug info in the binaries + ship a version on github (#8443)
* debug info yaaaaaaaaaaaaaaaaaay

* fix the build
2024-01-24 01:16:17 -08:00
Jarred Sumner
9f5ce53544 Normalize another newline 2024-01-23 23:44:38 -08:00
Jarred Sumner
82b6a42a3c Normalize more paths 2024-01-23 20:48:48 -08:00
Jarred Sumner
0974479655 Normalize slashes 2024-01-23 20:47:37 -08:00
Jarred Sumner
918e1878a5 Normalize newlines 2024-01-23 20:45:37 -08:00
Jarred Sumner
17deafd05f Add TypeScript issue template 2024-01-23 20:39:08 -08:00
Dylan Conway
b7ae984ca1 fix(windows): update some bundler tests (#8440)
* replace invalid path character

* windows paths
2024-01-23 20:23:01 -08:00
Jarred Sumner
e848c3f226 Get Bun.write tests to pass on Windows and bun:sqlite tests to pass (#8393)
* Move ReadFile and WriteFile to separate file

* Use libuv for Bun.write()

* Update windows_event_loop.zig

* build

* Get bun-write tests to pass. Implement Bun.write with two files.

* UPdate

* Update

* Update failing test list

* update

* More

* More

* More

* More

* Mark the rest

* ok

* oops

* Update bun-write.test.js

* Update blob.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Dave Caruso <me@paperdave.net>
Co-authored-by: Georgijs Vilums <georgijs.vilums@gmail.com>
2024-01-23 20:03:56 -08:00
Dylan Conway
cd3de9c788 fix(windows): fix text-decoder.test.js (#8436)
* use with_errors

* remove comment

* use correct index
2024-01-23 19:28:54 -08:00
dave caruso
945ad77bce window: fix runtime.js build process (#8438)
Co-authored-by: Georgijs Vilums <georgijs.vilums@gmail.com>
2024-01-23 19:27:57 -08:00
Chen Yufei
04a99deb0e copy_file: ioctl_ficlone EACCES, EPERM as not supported. (#8425)
ioctl_ficlone may return EPERM (in LXC container), EACCESS (in Android).
Those error should be taken as ficlone being not supported instead of
error.

Refer to this coreutils bug report https://bugs.gnu.org/62404
2024-01-23 18:24:54 -08:00
Ciro Spaciari
cff5dc0ee8 fix close on spawn and watch (#8426)
* fix close on spawn and watch

* add check closed, and fixes

* fix subprocess close
2024-01-23 18:09:13 -08:00
Dylan Conway
77ccf77e35 Revert "Revert "fix(windows): a bunch of install test fixes"" (#8431)
* keep cache dir path, use correct buffer

* make it work more better

* more working

* more fix

* more update

* more fix

* fix test

* update

* fix

* update pointers

---------

Co-authored-by: dave caruso <me@paperdave.net>
2024-01-23 18:00:18 -08:00
DidaS
864a726249 Improve bun-types (#8195) 2024-01-23 13:51:45 -07:00
Jarred Sumner
1407683f95 Revert "fix(windows): a bunch of install test fixes" (#8408) 2024-01-23 06:38:13 -08:00
dave caruso
1f928e9b6e goddamn (#8405) 2024-01-23 06:37:14 -08:00
Dylan Conway
e0cf77c660 fix(windows): a bunch of install test fixes (#8402)
* keep cache dir path, use correct buffer

* make it work more better

* more working

* more fix

* more update

* more fix

* fix test

* update tests

* comment and fix test

* one more fix

* fix build

---------

Co-authored-by: dave caruso <me@paperdave.net>
2024-01-23 06:36:53 -08:00
dave caruso
07a685bd3d feat(windows): implement the rest of node:os (#8399)
* feat(windows): implement os.networkInterfaces

* we are cooking (os tests almost pass)

* os

* fix version struct

* oops

* [autofix.ci] apply automated fixes

* fix the submodules

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-23 05:06:51 -08:00
dave caruso
80ad8d57f2 windows: fix a path resolution case (#8392)
* fix resolving certain filepaths

* extra

* swag

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-22 21:53:34 -08:00
Jarred Sumner
41b45599c6 Delete some dead code (#8391)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-22 21:06:13 -08:00
Ciro Spaciari
416e896c63 [windows] Implement fs.watch on Windows (#8379)
* implement fs watch

* fix unref

* fixes

* actually use bun.New

* fix destroy, use another buffer for joinPath, remove Win prefix

* oopsie
2024-01-22 20:29:46 -08:00
Dylan Conway
2d1e0dc240 trim correctly (#8388)
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-22 19:57:20 -08:00
Meghan Denny
c52e7c57d2 add another launch config for windows bun test (#8389) 2024-01-22 19:45:39 -08:00
Georgijs
c4a60f9059 fix to enqueue bundler tasks in correct event loop (#8386)
* fix to enqueue bundler tasks in correct event loop

* fix posix build

---------

Co-authored-by: Georgijs Vilums <georgijs@bun.sh>
2024-01-22 19:45:24 -08:00
Dale Seo
15fe30ac41 docs: remove unncessary use of async in bun test examples (#8341) 2024-01-22 17:57:02 -08:00
Dale Seo
a014f1c566 docs: correct imports (#8380) 2024-01-22 17:14:55 -08:00
Jarred Sumner
73b0b35a42 Make the dev-server test more reliable 2024-01-22 17:09:47 -08:00
Georgijs
75524d0ae3 Fix eqlComptimeCheckLenWithKnownType (#8377)
* fix some env tests

* fix and simplify comptime string equality

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-22 16:41:30 -08:00
John-David Dalton
c21dc25a65 Change type for expect().toThrow(unknown) (#8373) 2024-01-22 13:27:25 -07:00
Georgijs Vilums
3bc0f90a7c skip invalid stringWidth test 2024-01-22 12:25:49 -08:00
Jarred Sumner
eaa1cd5553 Add shell-spawn microbenchmark 2024-01-22 03:23:47 -08:00
Jarred Sumner
6019665d4b Fixes #8276 (#8346)
* Fixes #8276

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-21 20:25:00 -08:00
Jarred Sumner
b7b0e28b10 Rename bun.zig to BunObject.zig (#8344)
* Rename `bun.zig` to `BunObject.zig`

* Rename `bun.classes.ts` to `BunObject.classes.ts`

* Update references to `bun.zig`

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-21 19:55:24 -08:00
moznion
c577c64aa7 docs: add description how to parse the CLI ARGV by the built-in parseArg (#8345)
Signed-off-by: moznion <moznion@mail.moznion.net>
2024-01-21 19:54:49 -08:00
Jarred Sumner
1560a866fe Skip stringWidth tests for now 2024-01-21 19:25:57 -08:00
Dale Seo
5b9e1e5708 docs: fix a typo (#8338) 2024-01-21 17:17:55 -08:00
Jarred Sumner
353f724a9c Update bun.d.ts 2024-01-21 06:11:49 -08:00
Jarred Sumner
a8ff7be642 Disable Bun.stringWidth until failing test case passes 2024-01-21 06:10:07 -08:00
Jarred Sumner
af67ee77a0 Bump 2024-01-21 04:48:55 -08:00
Jarred Sumner
b82656d9fc Introduce Bun.stringWidth (#8327)
* Introduce `Bun.stringWidth`

* [autofix.ci] apply automated fixes

* Update utils.md

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-21 04:47:36 -08:00
Jarred Sumner
7b9201a0fc Fixup 2024-01-21 04:23:18 -08:00
Jarred Sumner
627d60c6c7 Fix crash in fs.readFile
We were default-initializing the vm pointer to undefined
2024-01-21 04:19:33 -08:00
Jarred Sumner
c00f0787f0 [types][bun:sqlite] Make SQLiteError a class instead of an interface 2024-01-21 03:57:38 -08:00
Jarred Sumner
3ca0fcb67a [node:vm] Add missing createScript function 2024-01-21 03:57:17 -08:00
Jarred Sumner
43107f48fa Add onLongTimeout callback for WebSocket (#8323)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-21 03:49:28 -08:00
Dylan Conway
b1273e53d8 windows(install): fix linking workspaces and file: dependencies (#8289)
* install workspaces with junctions

* fix #8272

* symlink auto type

* fix file: dependencies

* a better fix

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-20 23:00:29 -08:00
Jarred Sumner
10e57fdc1e windows pipes (#8230)
* spawn sync investigation, pipe closed before uv_read_start is called

* oopsie

* win rusage

* oopsie

* Fix some things

* readable stream now works without FIFO like solution

* blob, ArrayBuffer, Buffer stdin now works

* remove unused

* add UVStreamSink

* update headers.j

* more bindings

* now works yay

* fix rusage on windows

* oops

* fix rare data

* win getUserName

* [autofix.ci] apply automated fixes

* fix build

* oopsie

* fix linux/macos

* exit code fix

* fix kill for win

* disable Bun__crashReportDumpStackTrace on Windows

* remove windows stack dump in report.zig and increase windows test timeout

* condition instead of assertion

* remove IPC again

* fix blob writer when not using TTY

* bump windows tests time again

* bump time again so we see how much we need (this is probably too much)

---------

Co-authored-by: cirospaciari <ciro.spaciai@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciari@gmail.com>
2024-01-20 22:58:01 -08:00
Bjön Limell
fad3db84f0 (docs) Fixed color in node compat (#8299)
`node:module` was green, when it should be yellow.
2024-01-20 22:54:30 -08:00
Dylan Conway
fccab2f0da fix(node:child_process): fix crash with ipc (#8319)
* make sure `onLongTimeout` doesn't happen

* add `onLongTimeout` handler
2024-01-20 22:53:16 -08:00
Dylan Conway
885f9372f4 fix(transpiler): loose equality folding bugfix (#8317)
* fix #8311

* fix `bigint` comparison

* cleanup

* couple tests

* fix `"-0" == 0`

* Update transpiler.test.js

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-20 22:52:53 -08:00
Hanaasagi
509a2c5a69 fix: fix the invalid free pointer in toStringWithBytes. (#8322)
Close: #8264
2024-01-20 22:26:58 -08:00
Meghan Denny
b433beb016 8096 isnt 8kb, 8192 is (#8296)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-19 23:16:11 -08:00
Dylan Conway
c71bad205c Update shell.md 2024-01-19 22:15:23 -08:00
Dylan Conway
d4794bbac8 Update shell.md 2024-01-19 20:05:22 -08:00
Dylan Conway
6fa35839c3 remove .only, update shell.md 2024-01-19 19:59:06 -08:00
Jarred Sumner
35d551c174 Fix passing undefined to $().cwd() and $().env() 2024-01-19 19:55:26 -08:00
Jarred Sumner
4674ee16a1 Simplify $.escape 2024-01-19 19:55:26 -08:00
Jarred Sumner
ce2ef65122 Small docs tweaks for shell 2024-01-19 19:55:26 -08:00
Dylan Conway
0d88dcb0fa Update shell.md 2024-01-19 19:21:26 -08:00
Jarred Sumner
15f727dc2f Update shell.md 2024-01-19 19:05:54 -08:00
Jarred Sumner
dcfec52b11 Update nav.ts 2024-01-19 18:55:29 -08:00
Meghan Denny
7ca4ca8972 copy_file: this TODO is no longer a compiler bug (#8294)
* copy_file: this TODO is no longer a compiler bug

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-19 18:45:59 -08:00
Dylan Conway
76ed8d8086 fix(install): remove invalid bin symlinks (#8293)
* handle invalid bin symlink

* test
2024-01-19 18:37:03 -08:00
Jarred Sumner
1f126cd91a Fix benchmark in node 2024-01-19 18:36:00 -08:00
Jarred Sumner
5e520884cd Add to docs 2024-01-19 18:35:46 -08:00
Max Milton
1c5b318207 feat: Carry over node isIPv4/isIPv6 performance improvements (#8271)
Copy over the `isIPv4`/`isIPv6` performance improvements from
<https://github.com/nodejs/node/pull/49568>.
2024-01-19 17:31:52 -08:00
Zack Radisic
1b1760a9c9 feat: Bun shell (#7748)
* bring in shell impl

* add `$` to global bun scope

* Expose shell parse func on debug mode

* Expose lex tokens and add tests

* refactor parser to have better ast

* assigns and export

* pipeline kinda working

* Decouple Subprocess spawning code from JS stuff

* Subprocess works!

* Conditional execution

* Support JS objects in template expression

* More complete redirection

* Properly drain stdin/stdout/stderr and fix crash from deallocating JSC memory

* Return errors in parser

* Support command substitution

* wip brace expansion stuff

* Rearrange some files

* expansion wip

* Brace expansion working

* wip brace expansion

* refactor brace algorithm

* wip brace expansion on shell

* fix brace expansion

* Working nested brace expansion!

* brace expansion in shell variable assignment only set the last expanded

* stuff

* Small little perf things

* benchmark and test and stuff

* stuff

* fix nested braces but its also kinda broken

* attempt to fix complicated nested braces

* test

* Use fast tokenized algorithm for non nested braces, use parsed algorithm for nested braces

* fix nested braces one and for all

* small stuff

* Not sure if that made a difference

* revert that

* good speed optimization

* rip

* Environment variables, builtin/native shell cmds

* Fix tests

* Support `cd`, `pwd`, add boilerplate for glob expansion

* Support `which`

* Support `rm`

* wip

* wip

* escaping and abstract shell char iterator

* strpool unicode

* Brace expansion support unicode, disallow invalid surrogates in shell script

* shell choose ascii or unicode lexer depending on input

* fix bugs write tests

* kinda start async stuff

* HOLY SHIT big refactor of Subprocess

woops forget to commit this

...and this

* HOLY MOLY it works

* Refactor some stuff, start eval word expansion

* interpret all the nodes

* stuff

* stuff

* stuff

* kind of works but doesnt

* Buffered output works

* no need to heap allocate autosizer

* Fix bug

* Fix some stuff

* unprotect

* move out dummy shell thing

* Bring back assignments

* create expansion state so it can be non blocking for expansions that need IO (glob, cmd subst)

* glob back in action

* Setup builtin non blocking IO commands and implement export

big issue is control flow is really fcked up here need to fix that

* make Cmd state machine use a loop so control flow is a bit more clear

* rename stuff

* move that

* Implement the echo builtin again

* implement cd again but non blocking io

* Fix ls and use proper write function to prevent blockign writes

* Implement which

* holy moly big port std.fs.deleteTree

* fix compile errors

* Okay that works

* rm works thatsnice

* damn

* split it out

* rm async implementation

* fix rm bug for nested

* Work on files as well

* prevent root from being deleted

* rm error handling

* oops

* pwd and fix some script exec bug

* Implement `mv`

* stub out mv to work accross filesystems

* move it around

* woops

* boilerplate for ls and options

* more boilerplate

* stuff

* that got lost in merge

* upgrade shell stuff zig 0.12.0-dev.1828+225fe6ddb

* Implement basic ls

* smol cleanup

* Fix stream, response redirect stdin

* No longer need spawn to be abstract

* Custom promise

* move around some stuff

* shell promise returns shell output

* make tht work for builtins

* refactor IO abstractions to work with JS or mini event loop

* woops

* scaffolding for refactor

* refactor builtins to make event loop refactor easier

* Fix parsing edge case on assignments, fix expansion on cmd assignments

* change subproc to work with any event loop

* Finish refactoring subproc

* move global abstraction out

* big refactor boys

* holy moly: integrate into cli and fix allll the compile errors

* okay works in bun run now

* actually tick the event loop lol

* Fix more stuff

* Support comments

* Fix some tests

* delete that

* Properly report errors when failing to spawn command

* fix a whole bunch of tests

* fix a whole bunch of tests again

* .

* Fix rm

* Fix some exit code bugs, write force rm from deno, fix ls stderr

* fix `rm -d`

* fix `rm -d`

* Fix boolean logic

* error on subshells (e.g. `true && (echo hi && echo lol)`)

* Move out shell state from interpreter struct

* Cmd substitution supports arbitrary script, not just a single cmd

* Some escaping/quotation tests

* Fix stuff add more tests:

- cmd substitution quotations
- escape backticks in single quots

* ALOT of stuff:

- fix proper subshell inheritance of env for cmd subst
- fix: was wrong, assignments don't run in subshell in conditionals
- fix lexing chained vars `$VAR$VAR`
- more tests

* Fix subtle bugs

* Fix crazy redirect to arraybuffer bug

* more crazy echo edgecases

* Proper lexer errors instead of just panicking lol

* yoops

* Proper parsing errors

* Errors for bun run shell script

* Fix redirecting to file

* More test fix bugs yay

* Fix redirect on builtins

* Open redirection fds with O_TRUNC

* Fix lexing invalid variables and add ability to change cwd from JS api

* yoops

* Fix `.cwd()`

* `$PWD` and fix redirection bugs

* `$PWD` and fix redirection bugs

* Get rid of  some `FIXME`s

* throw errors in some places instead of panicking

* Print some errors to stderr

* Get rid of some more panics again

* Handle errors on glob

* pwd test

* `.env()`

* copy-on-write abstraction

* Reference counted env strings + fix some tests

* deinit cwd

* Put commands into a pipeline properly

* deinit Expansion and Assigns properly

* comments

* Comments

* Make it compile

* Update types

* [autofix.ci] apply automated fixes

* Only one WaiterThread

* Fix lifetimes and clean up interface

* Update shell.ts

* Add lazy test

* Remove some dead code

* Update shell.zig

* Fix memory leak

* Fix crash with empty braces

* [autofix.ci] apply automated fixes

* Linux build + bun.sh

* Update subproc.zig

* Update interpreter.zig

* Update interpreter.zig

* Fix some stuff that broke

* Fix Windows compile errors

* Fix some fd leaks

* Fix ls

* Fix a bunch of stuff

* Fix quiet

* Update leak tests fix rm bug

* More reproducible tests

* [autofix.ci] apply automated fixes

* more mem leak tests

* [autofix.ci] apply automated fixes

* Fix merge conflict

* Fix test not actually using temp directory

* Update bunshell.test.ts

* Shell instance

* Capture async context

* Increase test timeouts

* [autofix.ci] apply automated fixes

* Escape

* [autofix.ci] apply automated fixes

* Fix crash

* Add more methods

* [autofix.ci] apply automated fixes

* Fix leak

* Treat file(path) blobs as a file path string

* Create bunshell-file.test.ts

* Support Blob input

* Fix leak + organize imports

* doc

* Update shell.md

* Update shell.md

* Update shell.md

* Update shell.md

* Update CMakeLists.txt

* Fix segfault by cloning error path so it's not freed by arena

* deinit ShellErr

* Delete dead code

* fix really stupid segfault

* don't deinit shell ls task in event loop

* Fix ls bug

* Fix tests

* make truly lazy

* allow more things in the shell substitution and escape whitespace

* Fix newline and exit when finishing shell in `bun run`

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-19 17:30:57 -08:00
Lukas Kastern
751ff68268 feat: Add async support to Bun.serve onError (#8233)
* WIP

* Support not immediately fullfilled promises

* Typo

* Add tests

* Fix test

* Rename test

* Remove file

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-19 16:01:09 -03:00
Jarred Sumner
3c785c88fb Fix issue with perf_hooks in canary (#8279)
* Update perf_hooks.ts

* Update perf_hooks.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-19 05:22:06 -08:00
Dylan Conway
8efa01bd62 fix(bun:test): toContain and toContainEqual string fix (#8270)
* update toContain, toContainEqual, and tests

* fix build, use cursor

* `strings.indexOf` and `jsType` once
2024-01-18 20:13:57 -08:00
Ashcon Partovi
e17709a2d3 Fix bun --inspect with fully-qualified URL (#8267) 2024-01-18 18:32:51 -08:00
Alexandre Seo
c50400e186 Fix bug in string handling in toContain and return undefined in all matchers (#7692)
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
Co-authored-by: John-David Dalton <john.david.dalton@gmail.com>
2024-01-18 14:14:16 -08:00
guest271314
ff965af067 Update comment to include "except a built-in" (#8251)
build.module() throws for "buffer"

 9 |   setup(build) {
10 |     build.module(
         ^
error: module() cannot be used to override builtin module "buffer"
2024-01-18 03:29:10 -08:00
Jarred Sumner
48d642e9e0 Add a note about timeouts and max payload size 2024-01-18 03:14:03 -08:00
Jarred Sumner
e197b7c3a0 Fix crash in socket (#8241)
* Fix crash in socket

* Fix Socket timeout issue

* Add test for socket timeout

* Update socket.test.ts

* Fix linux tests

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-18 02:19:58 -08:00
Jarred Sumner
95e466628b Add a note about reading directories 2024-01-17 22:16:34 -08:00
dave caruso
41dda11802 fix: upgrade_command compilation error 2024-01-17 22:08:02 -08:00
dave caruso
8ba332b43a fix(windows): Implement bun.sys.renameat on Windows and fix crash during bun upgrade (#8242)
* fix #7989

* doc

* oops
2024-01-17 22:01:53 -08:00
Michael H
52894121ea bun run: "package.json scripts" at bottom (#8224)
* `bun run`: put "package.json" scripts at bottom & better errors

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-17 18:18:40 -08:00
Jarred Sumner
a5e83189df Stub more of perf_hooks (#8239)
* Stub more of perf_hooks

* Update perf_hooks.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-17 17:41:47 -08:00
dave caruso
405e2d1517 windows: implement os.hostname (#8223)
* windows: implement os.hostname

* oops

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-17 17:33:02 -08:00
Meghan Denny
483b73c4bf absorb bun.fdcast into FileDescriptor and remove (#8240) 2024-01-17 17:32:03 -08:00
Cena Kopahi
cb97baed22 Update docs for @types/bun (#8160)
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
2024-01-16 23:26:50 -07:00
Jarred Sumner
01df0e6ef0 Fix prettier 2024-01-16 20:20:30 -08:00
dave caruso
08aa40c570 fix windows CI (use -MD again) (#8220)
* chore: upgrade webkit again

* fix submodules
2024-01-16 19:26:32 -08:00
dave caruso
82fcb38005 fix(windows): support utf16-le files in the bundler and in Bun.file (#8219)
* support utf16-le files

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-16 17:15:16 -08:00
Jarred Sumner
fc80683256 In fs.ReadStream, use $isObject to check options (#8218)
* In fs.ReadStream, use `$isObject` to check if function or object rather than typeof options === "object"

* Update fs.js

* Add test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-16 16:41:24 -08:00
Jarred Sumner
54be1d7705 Fix decimal -> integer conversion bug in process.exit & process.exitCode (#8216)
* Fix process.exit to allow numbers which were previously decimals

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-16 16:19:33 -08:00
Emre Cakiroglu
7eed9d893e fix: handle encoding deconstruction in node:fs (#8212) 2024-01-16 15:56:02 -08:00
Yusup Hambali
e77f9036e0 Fix title in dataview-to-string guide (#8209) 2024-01-16 15:27:38 -08:00
Lukas Kastern
5a6ef045aa fix: Hang when recursively logging via ConsoleObject.messageWithTypeAndLevel (#8213)
* Avoid deadlock in messageWithTypeAndLevel by adding a recursion counter

* Add test for recursive logs

* Do not rely on output of console-recursive.test.js

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-16 15:26:23 -08:00
Aarav Juneja
9350f6bc0b fix: match node's path.parse on dotfiles. (#8142)
* Fix #8090

* Fix bug from modification order.
2024-01-16 14:12:18 -08:00
dave caruso
4ccf6fb284 chore: fix building mimalloc debug with valgrind support (#8199)
* fix valgrind mimalloc

* thens
2024-01-16 00:06:10 -08:00
Jarred Sumner
83f2432da6 Update prettier (#8198)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-15 23:47:13 -08:00
Jarred Sumner
f673a84c75 Update nodejs-apis.md 2024-01-15 23:46:12 -08:00
Jarred Sumner
51680dbfdc Update nodejs-apis.md 2024-01-15 23:45:10 -08:00
Jarred Sumner
1aa36e27cb Update nodejs-apis.md 2024-01-15 23:44:09 -08:00
Jarred Sumner
e6285a1cc8 Update nodejs-apis.md 2024-01-15 23:43:52 -08:00
Meghan Denny
a064ae71ad make node:fs/promises.open return a FileHandle and expose fdatasync (#8141)
* make node:fs/promises.open return a FileHandle and expose fdatasync

* node_fs: add fn spacing

* fix this assert usage too

* move primordial preservation higher

* use expect().toBe() instead of assert

* ensure top level node:fs/promises functions always receive fd's as a number

* add needed fixture

* [autofix.ci] apply automated fixes

* this was the wrong fix for a different thing
will look into it later

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-15 23:20:20 -08:00
dave caruso
f9e78c419f feat: Implement using keyword (explicit resource management) (#8151)
* port 'initial support for using declarations'

1:1 port of this commit:

56a3e01244

* port 'initial support for await using declarations'

1:1 port of this commit:
1634a0b5ad

* fix cmake config for local jsc

* add global defines for symbols

* begin porting lowering implementation

based off of
https://github.com/evanw/esbuild/pull/3192

* [autofix.ci] apply automated fixes

* add some fun webkit scripts

* fix the minification bug

* refactor runtime_js, etc

* rename test file

* finished yapping

* silly silyl

* Update src/bundler.zig

* ok

* a

* Fix crash

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-15 23:14:41 -08:00
Jarred Sumner
0fb864e0ca Bump WebKit 2024-01-15 20:28:05 -08:00
Jarred Sumner
a4da0acb0e Document additions to import.meta 2024-01-15 19:53:49 -08:00
Jarred Sumner
f47def8515 Update run_command.zig 2024-01-15 19:50:05 -08:00
Jarred Sumner
14398ae27e Upgrade to Node.js v21.6.0 2024-01-15 19:50:05 -08:00
Jarred Sumner
64d351b102 Upgrade to SQLite v3.45.0 (#8196)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-15 19:45:14 -08:00
Meghan Denny
6b577a3970 implement events.on (#8190)
* exit event loop if there's unhandled errors

* move FixedQueue to a special package

* require(events) is also EventEmitter

* implement events.on

* move fixed_queue to internal and make it lazy in node:events

* use better Promise intrinsics

* move $shared to internal/shared

* make test not dependent on cwd
2024-01-15 18:54:37 -08:00
Lukas Kastern
a159850cce fix: Bun.serve logging error when fetch returns rejected promise (#8169)
* Handle rejected promise returned from onResponse

* Add test

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-15 18:26:08 -08:00
Jarred Sumner
87eedc29d5 Move the standalone executable page 2024-01-15 18:13:28 -08:00
Lukas Kastern
124392ee98 fix: Report error and close event when creating WebSocket fails (#8186)
* Defer websocket error/close when websocket client is null

* Rename test

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-15 18:08:34 -08:00
Jarred Sumner
e5421c56b1 feat: Support import db from './my.db' with {type: "sqlite"} (#8178)
* Support SQLite imports

* Docs

* Update executables.md

* Update loaders.md

* Update js_parser.zig

* Update loaders.md

* Update CMakeLists.txt

* Update Module.ts

* JSC got rid of `$trunc`?

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-15 17:56:02 -08:00
Lukas Kastern
407f42718c Only integrate loop us_loop once (#8187) 2024-01-15 17:37:21 -08:00
Jarred Sumner
a36355cefb Some Windows tweaks (#8118)
* Some windows tweaks

* Make this pub

* Update bundle_v2.zig

* Fix woopsie

* Make this error better

* Add assertion for using allocator for HTTP client from another thread.

* Do fewer copies in readdir()

* Fix crash/failing tests

* Update tests

* Fix windows build

* Update loop.c

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-15 17:33:33 -08:00
Ashcon Partovi
2d21567271 Update debugger things (#8180)
* T

* Update Debug Adapter Protocol

* Update JSC and V8 debugger protocols

* Update inspector-frontend

* Fix empty keys not being printed in `console.log`

* Add `bun --inspect` tests and fix edge cases

* bun install --exact
2024-01-15 17:00:29 -08:00
Jarred Sumner
611b296a6a Fixes #8170 2024-01-14 21:01:51 -08:00
Jarred Sumner
317998fdd6 Make toBunString increment the reference count (#8146)
* Make `toBunString` increment the reference count

* Fix WASI

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-14 05:36:31 -08:00
Jarred Sumner
ab40b0e054 Fix file descriptor leak in ipc (#8165)
* Fix file descriptor leak in ipc

* Do not assume sequential file descriptors

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-14 02:57:44 -08:00
Jarred Sumner
2c3dc5176b Upgrade uWebSockets & usockets (#8164)
* Upgrade uWebSockets & usockets

* Update HttpRouter.h

* Defensively prevent sending to blocking sockets

* Add test for receiving large amounts of data

* Large data optimization

* Update loop.c

* Avoid extra system call before entering event loop

* Update internal.h

* 1 less pointer lookup

* Fix error

* Update socket-huge-fixture.js

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-14 02:04:30 -08:00
dave caruso
5fc4538477 windows: support bun:ffi (#8114)
* compile tcc

* initial linking

* ffi and stuff

* swag

* wala

* Update settings.json

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-13 19:14:29 -08:00
Meghan Denny
be0896e204 remove while loops where a for would be more efficient (#8131)
* remove while loops where a for would be more efficient

* this needs to be a stack copy

* this can use the better loop

* this was translated wrong

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-13 19:13:54 -08:00
Jarred Sumner
56f1e5a362 Hide some noisy stack frames (#8148)
* Hide some noisy stack frames

* Update javascript.zig

* Add `asyncModuleEvaluation` to the list

* Sort

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-13 19:11:01 -08:00
Jarred Sumner
702da52312 Fix rawMode regression (#8163)
* Fix rawMode regression

* arg0

* Update ProcessBindingTTYWrap.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-13 19:10:33 -08:00
Jarred Sumner
2a8956a268 Use one isosubspace for all generated constructors (#8162)
* Use one Isosubspace for constructors

* Update generate-classes.ts

* Update generate-classes.ts

* Update generate-classes.ts

* Update generate-classes.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-13 18:50:09 -08:00
Jarred Sumner
86b1aa02b3 Update CMakeLists.txt 2024-01-13 00:57:45 -08:00
Meghan Denny
065eae5a95 tidy: use std.mem.zeroes instead of loop or memset (#8138)
* use std.mem.zeroes instead of loop or memset

* Update src/bun.js/api/bun.zig

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-12 23:56:51 -08:00
Meghan Denny
9fa13aec09 fix signalNumberToNameMap assignment for SIGINFO (#8132) 2024-01-12 23:53:35 -08:00
Jarred Sumner
3e703c4c76 For build scripts, symlink zig.exe to zig on posix (#8147)
* Add `zig.exe` as a symlink of `zig` on posix

* Update scripts/download-zig.sh

Co-authored-by: dave caruso <me@paperdave.net>

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2024-01-12 23:52:07 -08:00
Jarred Sumner
01453be2d1 Move function from a header to a .cpp file 2024-01-12 23:48:14 -08:00
Jarred Sumner
9b32516bcb Implement tty_wrap in process.binding (#8130)
* Implement `tty_wrap` in process.binding

Fixes #4694

* [autofix.ci] apply automated fixes

* Rename some things

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-12 23:31:18 -08:00
Jarred Sumner
7e787d2a5a Move console methods from exports.zig to ConsoleObject.zig (#8145)
* ZigConsoleClient -> ConsoleObject

* Rename more

* Rename more

* ZigConsoleClientFormatter -> ConsoleObject

* More renaming

* Wire up console.profile?

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-12 23:15:36 -08:00
dave caruso
b7a32b87ab fix(bundler): improve external require transpilation on all targets (#8057)
* fix(build): do not emit import.meta.require for browsers/node.js

* update test snapshots

* sweep

* prefer require ref instead of `import.meta.require`

* remove option i did not use

* stuff

* remove rewrite_require_resolve

* ok

* ok

* wooooo

* [autofix.ci] apply automated fixes

* fix bugs

* ok

* [autofix.ci] apply automated fixes

* OOOOOPPPPPPPPPPPPS

* fix Bun.Transpiler regressions

* fix(bundler): make --splitting ensure --outdir

* fix final

* oops

* [autofix.ci] apply automated fixes

* use require.resolve

* revert but ... it no longer crashes there

* ok

* [autofix.ci] apply automated fixes

* fix fetch test

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2024-01-12 22:15:51 -08:00
Meghan Denny
0491ff4186 tidy: remove some redundant bun.toFD calls (#8136)
* remove some redundant bun.toFD calls

* windows fix
2024-01-12 19:46:56 -08:00
Meghan Denny
943c72c8a1 allow StringOrTinyString to hold 31 bytes (#8134) 2024-01-12 19:43:50 -08:00
Meghan Denny
cb6f4b9f4d tidy: remove if(false) dead block (#8129)
* remove if(false) dead block

* remove if (true) {...}

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2024-01-12 18:18:19 -08:00
Meghan Denny
45bd2264e3 more small undefined fixes (#8133) 2024-01-12 18:17:53 -08:00
Meghan Denny
8733748eb6 remove bun.assertDefined, comparing against undefined is UB (#8137) 2024-01-12 18:16:04 -08:00
Kaio Duarte
66fa317390 fix(node:url): handle url with missing host on url.parse (#8126)
* fix(node:url): handle url with missing host on `url.parse`

* lazy load punycode module

* use URL class

* add comment and also extra sanity check tests

* extra test

---------

Co-authored-by: dave caruso <me@paperdave.net>
2024-01-12 18:11:10 -08:00
Dylan Conway
ef0e96a2b2 fix(install): add warning and skip patched packages (#8143)
* add warning and skip patched packages

* also overrides

* comment
2024-01-12 18:03:30 -08:00
Meghan Denny
b0d326dfb9 zig_backend stage1 doesnt exist anymore (#8140) 2024-01-12 17:44:03 -08:00
Meghan Denny
517d5ecde9 remove more big endian handling (#8139) 2024-01-12 17:43:30 -08:00
dave caruso
072f2f15ea ci: run windows tests and also run them concurrently (#7758) 2024-01-12 17:02:20 -08:00
Georgijs
0cd7fa1a63 fix(webkit:performance): correctly track size of measures map (#8128)
Co-authored-by: Georgijs Vilums <georgijs@bun.sh>
2024-01-12 14:58:05 -08:00
Ashcon Partovi
2fe0f90d36 Fix loose comparisons and incorrect tag length in semver (#8108) 2024-01-12 15:31:58 -07:00
Jarred Sumner
0783b4bf0e Implement import.meta.{dirname, filename} for Node.js compatibility (#8127)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-12 14:26:50 -08:00
Kaio Duarte
4f96bc416b fix(bun-install): gracefully handle missing package removal (#8091)
* fix(bun-install): gracefully handle missing package removal

* update bun remove test
2024-01-12 14:08:58 -08:00
hugo-syn
f43ecd8aa2 chore: Fix multiple typos (#8121) 2024-01-12 14:07:40 -08:00
Ashcon Partovi
31db26b054 Fix error when null/undefined is passed to stdio in spawn/spawnSync (#8110)
* Fix error when null/undefined is passed to stdio in spawn/spawnSync

* Change conditional
2024-01-12 14:05:55 -08:00
Aayush
f5675284c7 fix(docs): prisma not installed as dev dependency (#8119) 2024-01-12 03:23:47 -08:00
Dylan Conway
98d253d9bb fix(install): incremental support for windows (#7991)
* update for windows

* use correct sizes

* mode

* fchmod and correct error checking

* some progress

* walker_skippable.zig for windows

* no segfault

* comptime only

* normalize

* create files in .bin

* bun.sys.write

* string formatters in bun.fmt, diriterator enum

* isAllASCII comptime

* update more

* some cleanup

* fix 1

* fix 2

* simlink

* cast

* remove normalize

* to zig err

* update fchmod

* fixup

* fix running bin files

* --bun for running binaries

* --bun for scripts

* remove binary linking

* update

* remove todo

* todos

* fix

* simlink

* cast

* more cast
2024-01-11 22:00:47 -08:00
Meghan Denny
9846383b01 all: make bun.FileDescriptor a unique type (#8022)
* all: make bun.FileDescriptor a unique type

# Conflicts:
#	src/bun.js/api/bun/socket.zig
#	src/bun.js/api/bun/spawn.zig
#	src/deps/uws.zig

* need this change too

* convert another bun.FD.asDir call

* more fixes + linux

* fix this size

* accidentally flipped these fd numbers

* more fixes + windows

# Conflicts:
#	src/deps/uws.zig

* dont include type name in serialization

* add another TODO

* resolve review comments

* address more pr comments

* build fixes post-rebase

* another rebase fix

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-11 19:59:48 -08:00
Dylan Conway
fbe4ed206a More bun install hoisting tests (#8112)
* hoisting tests

* more comments on hoistDependency

* fix test
2024-01-11 16:57:24 -08:00
Erik
15263664b6 fix: #7932 (#8038)
* updating package with child peerDependency doesn't keep old version

* [autofix.ci] apply automated fixes

* fixed TODO test

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-11 16:38:39 -08:00
Ciro Spaciari
4611b84352 incremental(windows) add TransmitFile and some fixes for fetch, h2 and http (#8089)
* fix win header decoding zig issue

* fix libuv file read lifecycle

* upload working without sendfile (yet)

* undo

* oops uncoment expect

* add TransmitFile aka sendfile on windows

* cleanup

* [autofix.ci] apply automated fixes

---------

Co-authored-by: cirospaciari <ciro.spaciai@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-11 16:38:13 -08:00
hugo-syn
922ff08a80 chore: Fix multiple typos (#8105) 2024-01-11 16:37:36 -08:00
Jarred Sumner
4c933f733b Fixes #7001 (#7861)
* Fixes #7001

* One more test

* Use `disturbed`

* [autofix.ci] apply automated fixes

* Fix failing test

* Test is no longer todo!

* Make bodyUsed work too

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-11 16:25:26 -08:00
Ciro Spaciari
f1c3e87a06 incremental(windows) setTimeout, setInterval and setImmediate should work (#8101)
* fix compilation and types for FD option using usockets

* comment

* clarify HOST_MAME_MAX on windows

* use libuv for timers on windows

* [autofix.ci] apply automated fixes

* fix linux build

---------

Co-authored-by: cirospaciari <ciro.spaciai@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-11 15:09:40 -08:00
Jarred Sumner
0bfe3760f6 Remove musl libraries from trusted dependencies because bun doesn't support musl yet 2024-01-10 21:13:20 -08:00
Ashcon Partovi
68bc548dce Fix 'Not a string or buffer' from zlibBufferSync (#8085)
* Fix 'Not a string or buffer' from zlibBufferSync

* Use `Buffer2`
2024-01-10 15:13:53 -08:00
Dylan Conway
7d4cef53a8 construct package paths without getFdPath for lifecycle scripts (#8056)
* use abs paths instead of getFdPath for lifecycle scripts

* fix aliased packages

* oops

* logs

* remove assert
2024-01-09 23:30:41 -08:00
Jarred Sumner
b400b36ca5 Bump! 2024-01-09 15:40:28 -08:00
Hanaasagi
36d4f09d28 fix(socket): fix 0.0.0.0 binding address (#7366)
* fix(socket): fix `0.0.0.0` binding address
Close: #7355

* test

* test

---------

Co-authored-by: dave caruso <me@paperdave.net>
2024-01-09 13:48:56 -08:00
Jarred Sumner
e77e1c1a58 perf: 5% - 10% faster new Headers(object) & new URLSearchParams(object) (#8028)
* 5%-10% faster `new Headers(object)`

* Add another test

* Remove extra parentheses

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-09 13:45:45 -08:00
Aarvin R
6e1ef49ad4 fix #8067 plugin fileapis (#8068)
- use Bun.file() instead of readFileSync
2024-01-09 13:00:31 -08:00
Jarred Sumner
2daade39a9 Don't close the file descriptor since close_range will get it anyway 2024-01-09 03:33:58 -08:00
Jarred Sumner
ae78441b25 Fixes #8010 (#8064)
* Don't use posix_spawn on Linux

* Make it work

* Avoid closing inherited file descriptors

* Hopefully fix test failures

* Reset close-on-exec flag

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-09 03:11:31 -08:00
Kainoa Kanter
fb8b47b2db chore: sort default-trusted-dependencies.txt (#7837)
* chore: sort default-trusted-dependencies.txt

* remove old trusted deps
2024-01-08 20:36:39 -08:00
Markus Ekholm
9a0dadad24 feat: implemented assert.doesNotMatch (#8008)
* implemented assert.doesNotMatch

* fixed assert.match and assert.doesNotMatch tests and ensure it throws when actual is not a string

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-08 17:31:54 -08:00
Archaeopteryx
f27fc77b3b docs: add missing comma in examples (#8018) 2024-01-08 16:21:44 -08:00
Lino Le Van
88fcfa4461 chore: fix typos in js_parser.zig (#7804)
* chore: fix typos in js_parser.zig

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Lino Le Van <linolevan@Linos-MacBook-Air.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-08 15:22:30 -08:00
John-David Dalton
9d56ea4880 Add icu4c to macOS install dependencies section (#8050) 2024-01-08 14:48:16 -08:00
karmabadger
b488734c50 docs: Update dev env instructions for Fedora (#8014)
* Update contributing.md

Added documentation for the installation of the perl Math::BigInt module

* Update contributing.md

merged the fedora perl math bigint module with the other dependencies
2024-01-08 14:42:06 -08:00
Jarred Sumner
8f975ec8ec Faster Buffer.concat, fixes #8034 (#8039)
* Faster, safer `Buffer.concat`

* Use wrappers when creating `Buffer` in C++

* Bun.concatArrayBuffers small optimization

* Add comment

* Add tests

* Ignore empty buffers

* Add assertion

* Update buffer-concat.mjs

* Update buffer-concat.mjs

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-08 14:37:18 -08:00
Pramit Sharma
1aee55524a Update hash-a-password.md (#8048)
Fixed a possible typo and improved grammar and conciseness throughout
2024-01-08 12:59:15 -07:00
Jake Gordon
8805e6150a Remove rogue word in doc (#8047) 2024-01-08 12:42:01 -07:00
huseeiin
237b5eded6 Update to-json.md (#8046)
better title
2024-01-08 11:56:30 -07:00
Jarred Sumner
437faa9444 Tweaks to lifecycle script enqueue (#8037)
* Tweaks to lifecycle script enqueue

* Use helper

* Use `bun.openDir`

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-07 21:05:11 -08:00
Jarred Sumner
e65bab75bc Fixes #8010 (#8025)
* Fixes #8010

* Update install.zig

* Copy the metahash when cleaning the lockfile

* Save more, but error less

* Change copy when there are no more dependencies

* Tweak some tests

* Update bun-add.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-07 06:16:31 -08:00
Jarred Sumner
d985e4db65 Use SQLiteError in a test 2024-01-07 03:11:40 -08:00
Jarred Sumner
9a267db105 [bun:sqlite] Ban new SQLiteError() 2024-01-07 01:42:27 -08:00
Jarred Sumner
06c530ba2e Fix crash when exiting bun test (#8026)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-07 00:02:08 -08:00
Jarred Sumner
a1e742734a Fixes #5178 (#8023)
* Fixes #5178

* Update comment

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-06 18:47:13 -08:00
Jarred Sumner
0dc6108bd3 Make PerformanceEntry use 40% less memory (#8016)
* Make PerformanceEntry use 40% less memory

* slightly faster create array of elements

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-06 16:05:03 -08:00
Georgijs
ecdde88670 implement PerformanceObserver and friends (#8011)
* implement PerformanceObserver, PerformanceMeasure, PerformanceMark and friends

* add PerformanceObserver test, clean up other performance tests

* [autofix.ci] apply automated fixes

* Small cleanup

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-05 22:39:29 -08:00
Lucas Coratger
2fd85ef0e6 fix: params in help menu for commands update and install (#7998)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-05 22:27:16 -08:00
guest271314
a774f92757 Fix using two const result=... in same script (#8013)
const result = await ... 
for (const result of result.outputs) {... 

throws

const result = await Bun.build({
                         ^
ReferenceError: Cannot access uninitialized variable.
2024-01-05 22:26:33 -08:00
hborchardt
eb84ebf974 Fix multiple partial consume from BufferList (#8007)
* Add test for multiple partial consume from BufferList

This shows the problem indicated in #7385

* Fix multiple partial consume from BufferList

The JSUint8Array::possiblySharedBuffer() returns the backing array,
not taking into account the byteOffset that indicates the start of
the data in the backing array. This means that when creating an array
with the same backing array, the current byteOffset needs to be added
to the start of the new slice.

This led to consume() returning the same data when repeatedly consuming
small numbers of bytes from the BufferList.
2024-01-05 22:25:01 -08:00
Lucas Coratger
bfe8afd674 feat: add toContainAnyKeys (#7946)
* feat: add toContainAnyKeys

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-05 21:21:12 -08:00
dave caruso
e8179adcbb chore: clarify my comments (#8006) 2024-01-05 21:19:57 -08:00
karmabadger
515ce30a85 docs: Update contributing.md (#8012)
Adding ruby to dependencies installation for macOS and Fedora
2024-01-05 21:17:19 -08:00
Ciarán
97f8c92cf4 feat(build): adjust arch linux auto detect to include manjaro (#7912) 2024-01-05 17:26:10 -08:00
sitiom
d4d6ef9e89 docs: Add Scoop installation reference for Windows (#7882)
* Add Scoop installation for Windows

* Update installation.md

* update powershell/cmd

irm is used because on certain installs of Windows 10 iwr does not work because of something related to Internet Explorer. haha~

---------

Co-authored-by: dave caruso <me@paperdave.net>
2024-01-05 10:26:40 -08:00
Meghan Denny
fa7e4bce27 node:child_process: support defining extra pipes (#7958)
* node:child_process: support defining extra pipes

* unneeded

* lazily load node:fs

* use $isJSArray instead of ArrayIsArray

* remove std.log call

* don't close child fd we don't own

* close child fd's in parent

* add Subprocess.stdio getter that aligns with ChildProcess.stdio fd's

* [autofix.ci] apply automated fixes

* use ArrayList instead of BoundedArray for stdio_pipes

* fix stream primordials

* dont use unreachable for syscalls

* this file was testing Bun.spawn not child_process.spawn

* skip ipc for now

* ensure the socketpair is created non-blocking on non-mac posix

* allow creating a node:net.Socket from an fd via node:net.connect

* node:stream tidy

* node:child_process: use net.Socket for stdio instead of fs streams

* try again

* fix Socket eager loading

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-05 00:38:08 -08:00
Meghan Denny
89ec2fcb35 fix replacing node:module._resolveFilename not passing the parent module (#7993)
* fix replacing node:module._resolveFilename

* add a test
2024-01-05 00:36:07 -08:00
Meghan Denny
39ab26a663 node:readline: move up when decoder is instantiated (#7994) 2024-01-05 00:26:22 -08:00
Ciarán
e103b53c86 docs(test/writing.md): Add documentation for test.each (#7983) 2024-01-04 17:10:08 -08:00
Moris Kramer
ee85bbc0a3 Update simple.md (#7987)
* Update simple.md

* Update docs/guides/http/simple.md

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-04 16:59:01 -08:00
Jarred Sumner
0103dd56ab Update guide 2024-01-04 16:53:22 -08:00
Lucas Coratger
5d6c68122c feat: add toContainKeys (#7945)
* feat: add toContainKeys

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-04 15:16:07 -08:00
Jarred Sumner
47acee5d87 Fix webpack test, fix errors in Worker (#7980)
* Update subprocess.zig

* Fix logging errors in Worker

* Update webpack.test.ts

* Update webpack.test.ts

* 😪

* Fix `self` setter

* Set IsImmutablePrototypeExoticObject and make globalThis.self = work

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-04 02:57:43 -08:00
asomethings
54d762531a fix: properly transform http method to uppercase (#7982)
* fix: http method uppercase transformation using wrong length

* feat: add test case for method uppercase
2024-01-04 02:54:59 -08:00
Jarred Sumner
e5bd7fcb8f Add brotli test (#7976)
* Add brotli test

* Check if we can use brotli

* vendor brotli

* Update .gitattributes

* Brotli is now always available

* Update licensing.md

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-03 21:57:19 -08:00
Meghan Denny
f30689256d tidy: use Arguments.slice() (#7978)
* use Arguments.slice()

* slice should be *const

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-03 16:59:44 -08:00
Meghan Denny
50c1f37230 make the tracy callstack depth configurable (#7979) 2024-01-03 16:33:34 -08:00
Meghan Denny
80ebcbf3d8 no big endian (#7974) 2024-01-03 14:52:50 -08:00
Meghan Denny
6345add18a dont use custom DeclEnum impl (#7975) 2024-01-03 14:52:29 -08:00
Otger Rogla
2946bacbbd feat(worker_threads) support argv and execArgv options (#7962)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2024-01-03 14:23:39 -08:00
Otger Rogla
7fa2cf3f61 fix(console.table): fixes for character width breaking the layout (#7966) 2024-01-03 14:22:30 -08:00
Meghan Denny
aa388e6762 vscode: set zig path to local one (#7973) 2024-01-03 14:19:31 -08:00
Jarred Sumner
5a2ad792a0 Try larger runners (#7972)
* Try larger runners

* Update bun-mac-aarch64.yml

* Update bun-mac-aarch64.yml

* Update bun-mac-aarch64.yml

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-03 14:18:39 -08:00
Jarred Sumner
69c85dbe17 Hardcode bun version 2024-01-03 14:10:15 -08:00
Jarred Sumner
71d9199270 Try to make fs.watch tests less flaky (#7909)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-03 13:05:10 -03:00
Jarred Sumner
6b3e1af25d Fix linter warnings in bun:sqlite (#7960)
* [bun:sqlite] Don't call memcpy on a 0 length value or nullptr

* [bun:sqlite] Add missing flags argument

* Make this a reference I guess

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-02 23:27:53 -08:00
Lucas Coratger
9f8ee7c8f7 feat: add toBeEmptyObject (#7772)
* feat: add toBeEmptyObject

* fix: feedbacks

* fix: feedbacks

* fix: feedbacks

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-01-02 17:11:57 -08:00
Meghan Denny
233622d6bb node:child_process: remove require destructure (#7949) 2024-01-02 17:03:50 -08:00
Jarred Sumner
837cbd60d5 Fix crash in WebSocket client when handshaking fails or when the HTTP response is invalid (#7933)
* Fix double-free in websocket client

* Update test

* Fix null pointer dereference

* Fix missing protect() / unprotect() call

* More careful checks

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-01 18:08:08 -08:00
Jarred Sumner
9d6c0649a4 Fix potential uninitialized memory access when loading CommonJS modules 2024-01-01 17:37:07 -08:00
Jarred Sumner
693a00dc5b Make file uploads use less memory on Linux (#7938)
* Add Linux memfd file upload memory optimization

* various build fixes

* cleanup

* Update blob.zig

* Update base.zig

* Add COW test

* Update blob.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2024-01-01 00:07:26 -08:00
Lucas Coratger
1f9ce68348 feat: add toContainKey (#7773)
* feat: add toContainKey

* feat: add hasOwnProperty to bindings

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-31 15:29:53 -08:00
Jarred Sumner
492b2d5b76 Implement Brotli support in fetch() (#7839)
* Implement Brotli support in fetch()

* Use @panic

* Update src/http.zig

Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>

* Update src/http.zig

Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>

* Fix redirect logic

* Allow extremely long redirect URLs

* Update fetch.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
2023-12-31 06:19:08 -08:00
Kaio Duarte
8eebfd8e22 fix: add ws properties to BunWebSocketMocked prototype (#7898)
* add ws properties to BunWebSocketMocked prototype

* add tests for Server class

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-31 02:42:58 -08:00
Jarred Sumner
1d684e0d4f Tweak formatting of console.table (#7927)
* Tweak alignment of console.table

* " " empty string instead of "#"

* Fix assertion failure

* Only get the length when necessary

* Avoid stale copies

* Add `asUTF8` helper to `bun.String`

* Cautiously handle recursion

* Further tweaks to output

* output

* Add native implementation of `getStringWidth`

* [autofix.ci] apply automated fixes

* If its not a string then quote it by default

* Add snapshot for headers

* Make it easier to debug when a builtin throws an exception

* This must be hoisted

* Fix bugs in `getStringWidth`

* Update getStringWidth.test.ts

* Eager load it

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-31 02:38:52 -08:00
Jarred Sumner
14c60eca94 Fix crash that can occur due to invalid UTF-8 (#7926)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-30 17:52:52 -08:00
Jarred Sumner
6eab178790 Add OpenSSL v1.1.0 to process.versions.openssl (#7924)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-29 21:36:41 -08:00
Ciarán
32ca195f60 docs(test/writing.md): update matchers to indicate support for arrayContaining, closeTo, objectContaining (#7800) 2023-12-29 21:35:34 -08:00
Michael H
c381816c57 Clean Trusted Dependencies (#7857)
* clean

* add back node version ones
2023-12-29 20:46:56 -08:00
Jarred Sumner
ae8f2a3afb Windows Build Fixes (#7923)
* Windows Build Fixes

* windows

* Update event_loop.zig

* Update bindings.zig

* Update event_loop.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-29 20:39:23 -08:00
Ciro Spaciari
25441ede20 fix(bun.serve) avoid double ending chunk (#7897)
* avoid double ending chunk

* re-format

* Ensure we run tests on bun-uws changes

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-29 20:35:32 -08:00
Jarred Sumner
a0c8ee31a1 Bump version number 2023-12-29 18:38:18 -08:00
Jarred Sumner
135039b137 Better errors for bun:sqlite (#7906)
* Better errors for bun:sqlite

* Add `byteOffset`

* Add `code` property

* Fix error

* Update test

* Add a couple more tests for errors

* Add file with sqlite error codes

* Report extra memory from `sqlite3_stmt`

* Add polyfills for macOS x64

* Use -1 when unavailable

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-29 18:37:16 -08:00
Jarred Sumner
05f14c8d6a Add setMayBePrototype where it should be added (#7922)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-29 18:26:33 -08:00
Otger Rogla
15755a0246 feat: implement console.table (#7866)
* feat: implement console.table

* console.table minor changes

* fix console.log for arrays after console.table changes
2023-12-29 18:04:49 -08:00
Jeroen
b6cadf387b docs(bundler): update CLI command in index.md for bun build with publicPath (#7916)
* docs(bundler): update CLI command in index.md for bun build with publicPath

* Update docs/bundler/index.md

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-29 15:26:35 -08:00
Jarred Sumner
b011fd2567 Fixes https://x.com/jeroendotdot/status/1740651288239460384?s=46&t=0Uhw6mmGT650_9M2pXUsCw (#7910)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-29 15:26:06 -08:00
Lucas Coratger
5e72a27a76 feat: add toBeObject (#7770)
* feat: add toBeObject

* fix: feedbacks

* [autofix.ci] apply automated fixes

* feat: add more information on error message

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-29 12:37:02 -08:00
Meghan Denny
9ef7b304d9 misc: use compileError instead of unreachable for comptime-known switches (#7905) 2023-12-29 02:07:17 -08:00
Meghan Denny
38d5a5fe9a tidy: bun.zig: remove switch on literal (#7907) 2023-12-29 02:06:56 -08:00
Jarred Sumner
43b99021f8 Fix flaky timeout test 2023-12-29 01:29:40 -08:00
Jarred Sumner
8a34b8f6f8 Add flags for Valgrind build 2023-12-29 00:25:02 -08:00
Jarred Sumner
70f344101b Revert " feat(server): add server backlog parameter (#7822)" (#7908)
This reverts commit 411094b82d.
2023-12-28 23:44:27 -08:00
Jarred Sumner
a3a6b894c5 [bun:sqlite] Cache the structure and call the destructor (#7904)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-28 21:33:55 -08:00
Meghan Denny
a5bf1216d1 cli: resolve TODO filing upstream issue (#7903) 2023-12-28 20:11:51 -08:00
Jarred Sumner
ae5f1b0168 Fix crash with latin1 supplemental characters in bun:sqlite query (#7902)
* Fix crash with latin1 supplemental characters in bun:sqlite queries

* Make it run from any dir

* Fix comment

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-28 20:00:58 -08:00
Jarred Sumner
20690403da Fixes #7868 (#7884)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-28 17:53:11 -08:00
Jarred Sumner
903a202473 Support Blob in CryptoHasher (#7878)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-28 16:33:18 -08:00
Kaio Duarte
14bc121dc8 Compare error name and message on Bun.deepEquals and assert.deepStrictEqual (#7867)
* check error name and message on Bun.deepEquals

* add tests

* add test with subclass of Error
2023-12-28 16:32:49 -08:00
Oleg Sevruk
eac3bda895 Update bun-create.md (#7889)
Typo. Correct the 8th item in the hidden section “How to create buns”
2023-12-28 16:30:29 -08:00
Aarvin R
0a7bbcb9a6 finish docs for env quotes (#7895)
- added template literal backticks to sentence
- added example of quotes in .env files
2023-12-28 16:17:16 -08:00
Aarvin R
107015fd48 fix example syntax for plugins (#7894)
- updated docs/runtime/plugins.md to use plugin()
- update docs/runtime/plugins.md to use "loaded" instead of "registered" for clarity
2023-12-28 16:14:56 -08:00
Malthe Borch
813afe6c53 Add 'listening' boolean property to 'net:Server' (#7658)
* Add 'listening' boolean property to 'net:Server'

* Convert to getter

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-28 14:20:41 -03:00
Hanaasagi
411094b82d feat(server): add server backlog parameter (#7822)
* feat(server): add server backlog parameter

* add some tests

* Apply suggestions from code review

Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>

* fix test

* chore: fix style

---------

Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
2023-12-28 14:19:20 -03:00
Jarred Sumner
1f90608d66 Fixes #7827 (#7858)
* Fixes #7827

* Add some assertions and errors

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-27 20:22:44 -08:00
Xiliang Chen
2b09347dc6 fix toMatchSnapshot signature (#7880) 2023-12-27 20:16:05 -08:00
Meghan Denny
f02ef8fb35 script/setup.sh: don't hardcode search for pkg-config (#7871) 2023-12-27 18:35:09 -08:00
Meghan Denny
da13884295 inspect: print 'call' property in objects (#7874)
functions have separate code path now
2023-12-27 18:34:52 -08:00
Meghan Denny
8a39c02e7a bun.js bindings: tidy with inline range (#7875) 2023-12-27 18:34:18 -08:00
Meghan Denny
bfc065c5cc bun.js bindings: remove redundant as-bitcast-as (#7876) 2023-12-27 18:33:56 -08:00
Meghan Denny
93c081f351 scripts/setup.sh: don't check for zig since it installs zig later (#7870)
* scripts/setup.sh: don't check for zig since it installs zig later

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-27 16:26:46 -07:00
Ciarán
4a66091491 Fixes #7740: Change "Duplicate dependency" to warn instead of error (#7766)
* fix(#7740): change 'Duplicate dependency' to be warning instead of error

* chore(07740.test.ts): clean up test

* [autofix.ci] apply automated fixes

* fix(src/logger.zig): increment warnings instead of errors in addRangeWarningFmtWithNotes()

* chore(07740.test.ts): simplify package.json to avoid increasing test times

* chore(bun-install.test.ts): update test to expect 'warn' instead of 'error'

* chore(07740.test.ts): fix formatting

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-27 00:53:02 -08:00
johnpyp
d1dcf5ccf7 doc: improve Bun.Glob api docs (#7859)
* doc: improve Bun.Glob api docs

* Update docs/api/glob.md

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-26 22:20:25 -08:00
Ciro Spaciari
f8159f1b36 fix(fetch) Fix fetch redirect (#7847)
* clean socket instance before closing on redirect

* fetch redirect test

* fix flask test

* oops
2023-12-26 17:37:41 -08:00
cirospaciari
1a370eb483 revert 2023-12-26 11:33:30 -03:00
cirospaciari
f12ff9d1e5 clean client ref from socket before close 2023-12-26 11:22:12 -03:00
Jarred Sumner
4d6219eda4 Revert "whitelist nuxt (#7840)"
This reverts commit a3630dde2e.

`nuxt` does not list any scripts in their package.json
2023-12-25 23:39:57 -08:00
Larry Williamson
a3630dde2e whitelist nuxt (#7840) 2023-12-25 23:27:56 -08:00
Ryan
c6ba32b850 Add purescript and spago to default-trusted-dependencies.txt (#7838)
These are two important packages for purescript development, purescript is the language (including a binary file that must be installed), and spago is the purescript package manager (also including a binary file that must be installed).
2023-12-25 22:58:32 -08:00
Omar
05984d405f Whitelist Railway CLI (#7832)
https://railway.app

Railway CLI is used to deploy Railway services. The CLI npm package requires running postinstall scripts.

9de89415f0/package.json (L17)
2023-12-25 20:32:16 -05:00
thunfisch987
696a5a28c9 Update docs/typescript.md (#7825) 2023-12-25 09:22:29 -07:00
Jarred Sumner
b399deebdd 15% faster crypto.randomUUID (#7824)
* Fixes #7811

* [autofix.ci] apply automated fixes

* Update src/bun.js/webcore.zig

Co-authored-by: Markus Staab <maggus.staab@googlemail.com>

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Markus Staab <maggus.staab@googlemail.com>
2023-12-25 01:25:35 -08:00
xxxhussein
39ea8cbfea Update installation.md (#7817)
npm states that their name should be written as "npm" in lowercase rather than "NPM" or "Npm" etc.
2023-12-24 19:52:38 -08:00
Jarred Sumner
09d51486e9 Enable forceConsistentCasingInFileNames in bun init 2023-12-24 06:18:25 -08:00
Jarred Sumner
ead3bdf947 Make the tsconfig.json used in bun init sloppier 2023-12-24 06:16:44 -08:00
Arnaud Barré
6077ace528 Update init template & TS documentation (#7813)
* Update init template & TS documentation

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-24 06:13:53 -08:00
Jarred Sumner
a119e8d636 fs.readFile & fs.writeFile encoding + simplify string handling + fix memory leak (#7797)
* Simplify string handling code

* add extra + external

* Update fs.test.ts

* Bump

* woopsie

* prettier

* Rename stats() to resourceUsage()

* Fix leak

* Fix more leaks

* Setup malloc heap breakdown

* Thread safety

* Fix bug when creating buffer from utf-16 string

cc @dylan-conway

* Use global allocator

* More new

* Update fs.test.ts

* Update setTimeout.test.js

* Fix UAF in HTMLRewriter

* More bun.new

* Remove logs

* Un-skip test which no longer is flaky

* Even more `bun.new`

* Fix memory leak in HTMLRewriter.

Fixes #2325

* Don't accept Buffer for now

* Fix issue with node-fetch polyfill

* Don't destruct the response value too soon

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-24 06:10:46 -08:00
vitalspace
72eb607e21 FIx "Inconsistent script not found error message" (#7799) 2023-12-23 01:37:58 -08:00
Ciro Spaciari
26325aca95 fix(setTimeout) fix high CPU usage (#7792)
* fix timers CPU usage

* add stats to subprocess

* fix issue number

* add ResourceUsage

* better names on ResourceUsage

* add wait4 for macOS

* better names 2

* add types

* change comments style

* BigInt
2023-12-22 16:59:00 -08:00
Risu
98242fa10d Add node:test to Node.js compatibility docs (#7779) 2023-12-22 09:21:35 -08:00
Dylan Conway
906f86d6fd always set name (#7783) 2023-12-21 23:46:32 -08:00
Omar
9fdd1068da whitelist lightningcss-cli (#7782)
lightningcss is a popular css library with over 0.5 million weekly downloads. It also offers a cli tool that requires postinstall script to run.

https://www.npmjs.com/package/lightningcss
https://www.npmjs.com/package/lightningcss-cli?activeTab=code
2023-12-21 23:42:57 -08:00
Jarred Sumner
7e59f287a1 Fix bug in bun upgrade --canary (#7777)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-21 20:18:02 -08:00
Jarred Sumner
56df6a9888 Bump! 2023-12-21 18:29:16 -08:00
Jarred Sumner
ada49eb96d Update setInterval-leak-fixture.js 2023-12-21 18:21:00 -08:00
Jarred Sumner
c5436c09ab Fix setInterval regression (#7776)
* Fix setInterval regression

* Add some comments

* Add another test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-21 18:00:24 -08:00
Jarred Sumner
a93f467a74 NAPI fixes (#7765)
* napi fixes

* Make bcrypt work

* Always return this

* Fixes #7685

* [autofix.ci] apply automated fixes

* Update napi.cpp

* Make it clearer what this is doing

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-21 15:55:58 -08:00
Ashcon Partovi
cd55401eba Fix flaky tests 2023-12-21 08:14:43 -08:00
SirHyperNova
0f8bcfdc53 Remove "not production ready" from WebSocket (#7760) 2023-12-20 23:31:48 -08:00
Jarred Sumner
2428da9354 Fix formatting error 2023-12-20 21:18:19 -08:00
Jarred Sumner
65e11c48b6 Fix hashing consistency issue (#7757)
* Fix color issue in `bun test`

* Fix hashing consistentcy issue

* Fix Windows build failure

* Update types.zig

* Fix build

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-20 20:57:20 -08:00
dave caruso
6b549ee592 fix: random improvements to bun.String (#7695)
* make bun.String.createUninitialized harder to mess up

* remove toJSConst

* Update src/bun.js/bindings/BunString.cpp

* ok

* aaaaaaaa

* fix ucs2 encoding oopsies

* a

* [autofix.ci] apply automated fixes

* fix baseline build

* hello

* remove commented code

* aaa

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-20 19:18:32 -08:00
Jarred Sumner
5b538fb076 Fix Windows build failure 2023-12-20 19:09:53 -08:00
Vlad Sirenko
7e511f55de 4415 es5 class http.Server (#7705) 2023-12-20 15:55:30 -08:00
Jarred Sumner
c271c6c38e perf: More efficient setTimeout and setInterval (#7715)
* Use timer heap for `setTimeout`

* Further efficiency improvement to timers

* Fix assertion

* Make this test less flaky?

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-20 15:13:23 -08:00
dave caruso
00955c712e fix: crash in bun init by renaming string function to be more consistant (#7746) 2023-12-20 13:44:53 -08:00
dave caruso
00e745ec2c fix(windows): use path normalizer in bun run index.ts (#7723)
* cleanup stuff

* hi

* fix building on posix

* a

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-20 13:42:09 -08:00
Alex Martin
6ee812d63d Handle holey arrays console log edge case (#7751)
", " was only being written when appropriate before "empty item", and not
"N x empty items".
2023-12-20 13:36:28 -08:00
Jarred Sumner
a623e7c702 Fixes #7736 (#7752)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-20 00:57:16 -08:00
Jarred Sumner
59a0e885d9 Make large stdio in Bun.spawnSync efficient on Linux (#7733)
* Use memfd in spawnSync when possible

* Make it work

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-19 20:25:31 -08:00
Dylan Conway
3f1c39ad0b fix(install): lifecycle script verbose logging and a couple bug fixes (#7726)
* trim trailing slash, always create temp node-gyp

* verbose lifecycle scripts

* move node_modules from other package managers to subdirectory

* fix merge

* remove for another branch

* Update bun-install-registry.test.ts

* Update bun-install-registry.test.ts

* inherit mac only

* Update src/install/lifecycle_script_runner.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* cache directory created when ensuring temp node-gyp

* fix merge

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-19 19:39:33 -08:00
dave caruso
39d062cf3c feat: print the longest postinstall if it took more than 500ms (#7719)
* print the longest postinstall if it took more than 500ms

* build error

* make newlines print right

* fix tests

* sdfafdsa

* i hope this is it
2023-12-19 17:51:39 -08:00
dave caruso
92901eb6e0 fix: change how exit codes and signals are printed (#7674)
* change how exit codes and signals are printed

* second iteration of this

* [autofix.ci] apply automated fixes

* dasfsa

* Fix Linux Build

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-19 16:55:15 -08:00
dave caruso
ab68aa5a8e dx(win): fix codegen.ps1 on 2023-12-19 13:29:31 -08:00
Supachai Kheawjuy
3f131c0411 docs(api): typo Diffie Hellman in http.md (#7744) 2023-12-19 11:17:11 -08:00
Supachai Kheawjuy
db60c92e25 docs(bundler): remove unused callout tag in index.md (#7742) 2023-12-19 10:20:14 -08:00
Bjön Limell
1730cfbbbf docs: fixed Bun.gunzip (#7738) 2023-12-19 09:14:47 -08:00
Supachai Kheawjuy
45a499912b docs(guides/process): change file extension from tsx to ts in stdin.md (#7737) 2023-12-19 08:44:34 -08:00
Jarred Sumner
61f92d9e5f fix(install): fix false positive "lockfile is frozen" when using bun install --production (#7713)
* More lkogs

Add more logs for `--verbose`

* Fixes #5792

This makes `--frozen-lockfile` use a hash of all the resolved package versions that were installed, instead of the more permissive logic used to decide whether or not to re-run the install

* Fix debug assertion failure in `bun install --production`

* Update src/install/install.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-19 00:56:21 -08:00
Spencer Smith
3baaa28f93 Update index.md (#7727) 2023-12-18 22:23:31 -08:00
Dylan Conway
b88324db31 chore: upgrade webkit (#7720)
* update

* alwaysInline

* update webkit commit

* update webkit tag

* remove webkit_url

* check for exception and update webkit commit

* update webkit tag
2023-12-18 20:54:04 -08:00
Dylan Conway
dc19541719 update bun.zig 2023-12-18 20:15:02 -08:00
Jarred Sumner
2d2f3c4e50 fix: Tweaks to syntax highlighter (#7711)
* [syntax highlighter] Highlight `from` and `as` in `import`. Don't bold function calls or identifiers

* Update bun.zig

* Update bun.zig

* Update src/bun.zig

Co-authored-by: dave caruso <me@paperdave.net>

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-12-18 18:32:45 -08:00
dave caruso
f3ce571a29 fix: parsing error from "a<b>" as typescript (#7722) 2023-12-18 18:24:04 -08:00
dave caruso
1a2643520b fix(bundler): handle direct eval better (#7693)
* fix(bundler): handle  direct eval better

* error message
2023-12-18 14:41:04 -08:00
Colin McDonnell
31c17a1bb3 Better types (#7670)
* Rewrite bun-types to include @types/node

* Incorporate new commits

* Update bun.lockb

* [autofix.ci] apply automated fixes

* Update readme, add back webkit

* Updates

* BunJS -> Bun

* Switch init to @types/bun

* [autofix.ci] apply automated fixes

* Tweaks

* Revert docs changes

* Fix bugs

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-18 13:27:48 -08:00
Jarred Sumner
a1a4178c3f Fix next build integration test 2023-12-18 01:21:00 -08:00
Jarred Sumner
7ac5bdc9dd Fix flaky test 2023-12-18 01:11:36 -08:00
Jarred Sumner
506c165860 Fix napi tests 2023-12-18 00:03:45 -08:00
Jarred Sumner
6fc29b6412 Recommend the .start() method 2023-12-17 23:18:41 -08:00
Jarred Sumner
b6f60680f6 Remove protobuf.js from default trusted dependencies list
The postinstall script will never print anything, since it does not exit with a non-zero exit code.

Therefore, this warning will never have an impact

Therefore, it should not be allowed to increase how long it takes to install your packages

4436cc748c/scripts/postinstall.js
2023-12-17 00:10:49 -08:00
Jarred Sumner
1f71ad5661 Fixes #7694
Verified it now calls the function the correct number of times
2023-12-16 23:47:57 -08:00
dave caruso
cbb477cbe2 perf: make Bun.peek 90x faster on pending promises, 1.5x on resolved (#7697)
* perf: make peek() 90x faster on pending promises, 1.5x faster on resolved promises

* more bench

* test edits
2023-12-16 17:36:08 -08:00
dave caruso
369e3022e4 chore: upgrade zig to 0.12.0-dev.1828+225fe6ddb (#7671)
* chore: upgrade zig to 0.12.0-dev.1828+225fe6ddb

* open as iterable

* fix building identifier cache

* fix windows build

* fix linux build

* fix linux build
2023-12-16 00:14:15 -08:00
Ciro Spaciari
925a94ffe6 test(grpc-js) update certs for macOS (#7678)
* update certs

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-15 20:40:04 -08:00
Jarred Sumner
ca89087684 feat: Make using await inside a non-async function have a helpful error message (#7690)
* Update fs.test.ts

* Make using `await` inside a non-async function have a good error

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-15 18:04:40 -08:00
dave caruso
9e47ceac87 ci: attempt to fix linux-aarch64 ci (#7691)
* experiment with this

* rerun on changed
2023-12-15 17:45:10 -08:00
dave caruso
4098dd0df5 chore: fix the commit of WebKit
bump to "657558d4d4c9c33f41b9670e72d96a5a39fe546e" which has some
windows-specific fixes, as well as fixes linux-arm64 debug build,
and adds the debug windows build.
2023-12-15 16:41:45 -08:00
dave caruso
c3b1333ae8 ci: fix windows release action 2023-12-15 16:41:45 -08:00
Vincent Lechemin
f88e5d128c Fix file descriptor leak in readdir (#7688) 2023-12-15 16:39:40 -08:00
Jarred Sumner
4d7c66066b fix: Resolve specifiers passed to mock.module (#7673)
* Mention module mocks in docs

* [autofix.ci] apply automated fixes

* Fix relative file paths that do not exist

* add test for file: URL

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-15 14:41:56 -08:00
Scott Trinh
3872f7a5b7 Use EdgeQL for expression for bulk insert in seed.ts (#7686)
* Use EdgeQL `for` expression for bulk insert in seed.ts

Perhaps this was a JavaScript for loop before to make it a little easier to grok for non-EdgeDB users. However, hopefully this is easier enough to understand that people can still follow the example even if they do not know EdgeQL.

* Fix small typo in assignment
2023-12-15 14:13:02 -08:00
dave caruso
6443c26a4a fix node_env regression (#7666) 2023-12-15 16:51:26 -03:00
Jarred Sumner
c2cd7402a0 Upgrade from SQLite v3.38.5 to v3.44.2 (#7668)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-14 20:03:29 -08:00
Ashcon Partovi
fbcb622335 Implement expect().toContainEqual() (#6589)
* Support `expect().toBeValidDate()`

* Support `expect().toContainEqual()`

Also fixes a bug where `expect(new Set()).toContain()` would not work

* Update expect.zig

* docs

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-14 17:11:14 -08:00
Mathias Wulff
fc733fe89c Use stderr for info about how to open inspector (#7270)
* Use stderr for info about how to open inspector

* Write to stderr without red colors
2023-12-14 17:07:46 -08:00
dave caruso
441612917d windows: more windows stuff (#6938)
* fix(win/upgrade): do not show powershell expand-archive info while upgrading

* start working bun run

* experiment: `bun.new`

* you can now bun run

* Update src/install/install.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* Update src/install/install.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* stuff

* fix stuff

* fix this

* farther but not really

* sadfs

* path hell

not sure how much worse or better this makes things. its a mess. windows path handlign is a mess aaaaaaaaaaaaaaaa

* path.resolve bs

* remove old build system stuff from pr

* a

* fix some path.parse/join cases

* path closer not perfect

* normalize and join tests tests  done

* paths

* implement path.relative

* ,

* stuff

* assert

* fix compile

* hate

* the code isnt great

* stuff

* housekeeping for build system

* blah

* explain windows sitaution in docs

* some progress? not much though

* zig compiler crashes here

* fix

* yippee

* ok

* a

* ala wala

* fix builds on stuff

* clean

* the tests now run

* a

* aa

* dedupe uv event loop

* fix fs test accuracy

* stuff

* [autofix.ci] apply automated fixes

* huge updat e

* [autofix.ci] apply automated fixes

* url

* [autofix.ci] apply automated fixes

* start windows spawnSync

* [autofix.ci] apply automated fixes

* add --webkit for update submodules

* add better err message for `bun setup`

* fix unix platform build

* .

* [autofix.ci] apply automated fixes

* un-upgrade libarchive

* z

* asdfghj

* wrk

* todo -> panic

* ok

* a

* [autofix.ci] apply automated fixes

* fix build scripts l ol

* dfghj

* fa

* [autofix.ci] apply automated fixes

* aaaa

* a

* l

* [autofix.ci] apply automated fixes

* more logs

* [autofix.ci] apply automated fixes

* j

* fix init_command

* CORE DUMP HELL

* i swear im being pranked by the github actions gods

* fadsjkfdshjkhjkdfsahjkdfshjksdafjkhhjkfdsahfsdkjhfsdjkahf

* thanks IAS

* this is the correct fix

* personal review

* ddisablbe these

* revisions!

* ok

* fix submodule

* stuff

* fix libarchive

* [autofix.ci] apply automated fixes

* stuff

* [autofix.ci] apply automated fixes

* a

* fix addressToJS on windows

* make dns async again

* dx: add flag to update submodules ps1 to clone webkit

* dns error case for libuv

* dx improvements on windows

* newline

* obvious fix

* install steps

* extra note

* fix fs test

* Update building-windows.md

* fix builtins bundler to support \r\n line endnigs

* better

* some windows stuff

* a

* a

* a

* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

* [autofix.ci] apply automated fixes

* bunfile text works

* fix build on the mac

* hellooooooooooo

* install steps

* ci for baseline?

* fix

* aaa

* wow

* install script revamp

* bug

* OK

* ok

* aaaaaaaaaaaaaa

* okay

* fix the node test runner lol

* fix napi stuff

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciai@gmail.com>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2023-12-14 16:56:33 -08:00
Osmose
adcad39e1d Update install.dryRun docs to be accurate. (#7275)
The previous line appeared to be copied from `install.optional`.
2023-12-14 15:44:13 -08:00
Jarred Sumner
453a270b2e linker ld scripts expect unmangled names 2023-12-14 14:25:18 -08:00
Jarred Sumner
fe5e19da59 Implement v8::Isolate::TryGetCurrent, v8::Isolate::GetCurrent, v8::Isolate::GetCurrentContext, stub node::AddEnvironmentCleanupHook & node:: RemoveEnvironmentCleanupHook (#7665)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-14 13:46:38 -08:00
Vlad Sirenko
19e80771ac http convert es5 class (#7485)
* http convert es5 class

* remove additional object with private fields

* add comment to http method
2023-12-14 03:03:30 -08:00
Dylan Conway
36c316a24a fix(install) make sure node-gyp is available during lifecycle scripts (#7622)
* bunx node-gyp

* add test

* create temp node-gyp when used in script

* windows reminder

* closer?

* Update bunx_command.zig

* append fake node to end of path

* Update install.zig

* correct temp node-gyp dir, always append parent `node_modules/.bin` dir

* make sure temp node-gyp doesnt run itself

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-13 23:19:37 -08:00
James Anderson
c0ccdccbeb fix(resolver): wildcard tsconfig path not including suffix (#7612)
* fix(resolver): wildcard tsconfig path not including suffix

* different approach
2023-12-13 23:19:20 -08:00
dave caruso
1fc9b56936 feat(test): rejects.toThrow and resolves.toThrow (#7652) 2023-12-13 23:18:17 -08:00
dave caruso
8ec405facc fix(build): add a missing / in a fallback path route (#7653) 2023-12-13 23:12:25 -08:00
dave caruso
beedb28e38 fix: stuff i forgot to push (#7651)
* i forgot

* a
2023-12-13 22:41:37 -08:00
BaboonKing
1aaf63efc4 fix(types): add "webcrypto" to "node:crypto" (#7580)
* fix(types):  add "webcrypto" to "node:crypto"

* chore(types): remove wrong version flag as jsdoc
2023-12-13 22:15:00 -08:00
Jarred Sumner
0bce2b46ca Fixes #7641 2023-12-13 22:04:05 -08:00
dave caruso
c8305df5c2 fix(runtime): make process.stdin work (fix vite create on linux) (#7650)
* a

* make fds cached

* fghjfdsaa

* dsfafsa

* 😭
2023-12-13 21:52:37 -08:00
dave caruso
9787ea91f2 fix(node): always use .RunCommand when binary is named node (#7615)
* make the cli act more like node when the binary is named node

* mmmmmmmmmmm review comments

* whatever

* fix test

* am stupid am stupid

* sure
2023-12-13 21:43:05 -08:00
Hanaasagi
a648ed9e6a chore: fix build (#7648) 2023-12-13 18:56:51 -08:00
chocolateboy
ab95e2189f Prevent shell-option changes leaking out of the bash-completion script (#7646)
- save and restore `globstar` rather than leaving it unset
  - don't change `extglob` as it's already defined and required by
    bash-completion
2023-12-13 17:32:53 -08:00
Andrew Shoener
dc0736d61d Clarify dead code elimination (#7639) 2023-12-13 17:31:50 -08:00
dave caruso
5029fc8564 fix: do not inline process.env during bun run and bun test (#7614)
* env stuff

* ok

* undo

* remove unused param

* resolve review comment

* dupe

* it compiles now i promise
2023-12-13 06:05:03 -08:00
Jarred Sumner
38c6575dc8 Fix incorrect pipe reading code for lifecycle scripts, add basic ioctl_ficlone support (#7628)
* Move code for lifecycle scripts into a separate file

* Fix slow & incorrect pipe reading code used for bun install lifecycle scripts

* Fix crash in IPC due to calling on_socket_long_timeout when its a null ptr

* Only try to get the node path one time

* Fix incorrect glob pattern for rebuilding Zig files

@paperdave doing `**/**/**` does not work

* Implement basic support for ioctl_ficlone

* lowercase these

* intcast

* This is backwards

* Fix "waiting for tasks" spam

* Update install.zig

* Add helper

* Update install.zig

* Address PR feedback

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-13 06:03:21 -08:00
Dylan Conway
efb2cb5871 get auto and prefer from install expr (#7624) 2023-12-13 03:11:03 -08:00
pacexy
9fc12a1244 Fix install.exact does not work (#7603)
* fix

* fix
2023-12-13 01:24:05 -08:00
Jarred Sumner
900eec71fa Bump 2023-12-12 17:35:36 -08:00
Jarred Sumner
4fec7f84c8 Run libc atexit callbacks 2023-12-12 17:34:19 -08:00
Dylan Conway
5787350243 add sharp 2023-12-12 13:38:43 -08:00
Imamuzzaki Abu Salam
35ba928430 test: init sharp integration test (#7481)
* test: init sharp integration test

* Update sharp integration tests and package.json

* Delete unnecessary files and dependencies

* refactor sharp dir with path.join import.meta.dir

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>

* Update dependencies and fix image resizing

* Remove trustedDependencies from package.json

---------

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2023-12-12 13:35:13 -08:00
Jarred Sumner
7ec64c2cc8 Update lifecycle.md 2023-12-12 02:36:48 -08:00
Jarred Sumner
5e60861c34 Disable this warning 2023-12-12 02:32:48 -08:00
Jarred Sumner
39b66ded08 Bump 2023-12-12 02:31:36 -08:00
dave caruso
a2f595d352 fix: better error message for bun install fs permission errors (#7550)
* remove `prettyWarn`, add easy print utils, clarify a package.json loading error

* error when node_modules isnt writable

* hmm

* fix instal

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-12 00:18:05 -08:00
Dylan Conway
d163351f3e fix(install): fix semver sorting with prereleases (#7588)
* compare number with string correctly

* Update semver.zig

* invalidate cache

* seconds
2023-12-11 22:29:22 -08:00
Dylan Conway
351e47355a add default trustedDependencies and run lifecycle scripts during installation (#7132)
* [install] allow parallel execution of `postinstall` scripts

- fixes spurious exit code 42 from `spawn()`

* postinstall to a pipe

* feat(install): include top 500 packages as defaults for postinstall

* windows newline handling*

*i did not test it

* stuff

* cool

* a

* fix merge

* set `has_trusted_dependencies`

* fix a bunch of tests

* fix merge

* remove `PackageManager`

* remove commented code

* change to function

* Update lockfile.zig

* run scripts if added to `trustedDependencies` after install

* packages without `resolved` properties

* node-gyp scripts

* node-gyp script in the root

* another test

* git deps run prepare scripts

* fix merge

* run lifecycle scripts during installation

* Update lockfile.zig

* always increment

* 🏗️

* update tests

* tickWIthoutIdle

* const uws

* loop forwards through trees

* single buffer bitset list

* tag.isGit

* windows path separators

* `bun.sys.read` and enable/disable buffering

* fix test and waiter thread

* waiter thread and tests

* Update bun-install-registry.test.ts

* workspace exclude `preprepare` and `postprepare`

* Create esbuild.test.ts

* make sure length is the same

* remove deferred binlinks, add estrella test

* test with another version

* address some comments

* remove .verdaccio-db.json

* ooops

* fix build

* use `pid` to wait

* dont register pid_poll when using waiter thread

* stress test

* free

* fix failing tests

* fix linux crash, snapshot stress test

* oops

* concurrent scripts

* activate as soon as possible

* test

* delete stress test packages

* remove unused packages

* comment stress test and maybe fix segfault

* delete snapshot

* fix assertion

* use cpu_count * 2 for default concurrent scripts

* gear emoji

* add --concurrent-scripts to docs

* more docs

---------

Co-authored-by: alexlamsl <alexlamsl@gmail.com>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Dylan Conway <33744874+MilesWright7@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-11 22:08:25 -08:00
hustLer2k
83ed65c687 Add -h as alias to --help (#7519)
* feat: add -h as alias to --help

* fix: remove redundant -h flag check

* fix: remove unneeded -h equality tests
2023-12-11 16:27:17 -08:00
hustLer2k
ab85b2a2a0 test: Migration tests fixes (#7393)
* use lockfile path passed as an argument instead of a literal string

* clean up tmp folders in migrate.test

---------

Co-authored-by: Alex See <alexsee@Alexs-MacBook-Air.local>
2023-12-11 16:07:20 -08:00
hustLer2k
6a63224f86 fix(node:fs): interpret string options as encoding in Readable constructor and fs.createReadStream (#7516)
* fix: match Readable constructor and createReadStream to node api

* remove typo from node-stream.test.js

Co-authored-by: Aaron Silvas <aaronsilvas@gmail.com>

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Aaron Silvas <aaronsilvas@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-11 16:06:29 -08:00
Dale Seo
c9e98db258 docs: remove unncessary empty line (#7581) 2023-12-11 14:54:18 -08:00
Jarred Sumner
351810e5bc Switch to std.sort.pdq from std.sort.block (#7574)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-10 19:49:21 -08:00
Nick Reilingh
3aabe58180 bun-types: add recursive option to readdir/Sync (#7568) 2023-12-10 19:48:54 -08:00
Jarred Sumner
800fb12906 Handle holey arrays in console.log, don't omit length property, cleanup logLevel option (#7557)
* Add `fromJS` helper method to `ComptimeStringMap` and `logLevel` parsing better

* Handle holey arrays

* Update console-log.expected.txt

* More tests

* Add TODO

* More fixture

* [autofix.ci] apply automated fixes

* Update bindings.cpp

* Cleanup some spacing

* update

* Handle externals in `bun build` from package.json "imports"

* Prevent recursion in Web Worker

* Fix failing test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-10 04:33:25 -08:00
Bin Xin
7541f4ce4f fix: jsx key after spread (#7464)
* fix: jsx key after spread

* feat: configurable logLevel
2023-12-09 22:49:39 -08:00
Jarred Sumner
402f3353ac Make some regexes lazy 2023-12-09 22:37:25 -08:00
Jarred Sumner
73b0426596 Fixes #7400 2023-12-09 22:17:08 -08:00
Jarred Sumner
54f1f4635e Fixes #7554 2023-12-09 21:59:27 -08:00
Jarred Sumner
300d17f223 Slightly refactor Bun.file().text() control flow (#7535)
* Clean up control flow in Bun.file().* file reader

* Preallocate large files on Linux

* remove `this.wrote` field

* push

* doesnt work yet

* Create if not exists

* Fix for macOS

* Update blob.zig

* Slightly clean up this test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-09 21:47:40 -08:00
Otger Rogla
ce63023553 fix: re-enable util.parseArgs with memory fixes (#7460)
* Fix parseArgs issues and reenable it

* Minor changes to parseArgs

* Another minor change to parseArgs

* Add exception handling to JSValue putMayBeIndex
2023-12-08 17:43:40 -08:00
dfa
59f9d2fe70 fix: Unconditionally reset stack on Bun.deepEquals exit (#7542)
* Unconditionally reset stack on deepEqual exit

* [autofix.ci] apply automated fixes

---------

Co-authored-by: evan <Evan Bergeron>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-08 17:32:27 -08:00
dave caruso
aaa827f90e fix(node:module): allow file url strings in createRequire (#7533)
* fix(node:module): allow file url strings in createRequire

* add a non-happy path test :)
2023-12-08 16:32:35 -08:00
Brady Madden
c84be8c48b fix: ws onmessage callback to return data within an object (#7529) 2023-12-07 19:05:23 -08:00
Dale Seo
1d45c1c412 docs: remove unncessary phrase (#7532) 2023-12-07 18:48:08 -08:00
Jarred Sumner
653e2934fe Fixes #7503 (#7511)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-07 02:19:11 -08:00
dave caruso
798f548607 fix(resolver): allow builtins to be imported via subpath imports (#7505)
* fix(resolver): allow builtins to be imported via subpath imports

* [autofix.ci] apply automated fixes

* Fix target

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-07 01:51:21 -08:00
dave caruso
1337bb6923 fix(create): make bun create @ org work (#7498) 2023-12-07 00:57:31 -08:00
dave caruso
b6775e2df7 fix(upgrade): print a better message on NixOS (#7489) 2023-12-07 00:56:36 -08:00
Jarred Sumner
4519f97661 Don't call read() with an empty buffer (#7509)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-07 00:55:34 -08:00
Hanaasagi
dfd4b01a97 fix(jest): fix segfault when passing jest.fn into another jest.fn (#7507)
Close: #5900
2023-12-07 00:41:31 -08:00
dave caruso
1bf540efcf feat: allow "bun:test" utilities at runtime (#7486)
* feat: allow "bun:test" utilities at runtime

* fsdafdsafd

* yippee
2023-12-06 22:09:43 -08:00
Jarred Sumner
b1c8ae97ff Rewrite IO for Bun.file() (#7470)
* WIP rewrite IO for Bun.file()

* It seems to work on macOS

* Update ffi.zig

* Handle many more cases

* Clarify this more

* More comments

* [autofix.ci] apply automated fixes

* Add empty

* Make it work in epoll

* fetch fixes + tests fmt

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciari@gmail.com>
2023-12-06 18:10:06 -08:00
Jérôme Benoit
6a5995e27d test(worker): refactor worker tests (#6732)
* test(worker): refactor worker tests

+ constify variables
+ typing
+ untangle web worker from worker_threads tests
+ cleanup variables namespace

no functional changes on tests

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: move worker_threads related code to node/worker_threads

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: move worker tests into workers directory

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* refactor: report upstream changes

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* refactor: report upstream change

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* fix: address review comments

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* chore: fix submodule

---------

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-12-06 17:06:11 -08:00
dave caruso
24ca605832 feat(test): run any test file by passing it as a path (#7483)
* feat(test): allow file paths to test specific files.

* [autofix.ci] apply automated fixes

* be less stupid about what files the CI runs as tests

* aa

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-06 08:52:12 -08:00
dave caruso
ad4b98b287 perf: make napi_create_object 2.5x faster (#7475)
* Faster napi

* Reduce number of headers exposed for JSStringDecoder

* Add missing header

* test: this test was meant to be marked as TODO

* revert the string decoder garbage

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-06 00:30:51 -08:00
Sylvain
fd1d4b4e5a Fix small typo in update.md (#7477)
* Fix small typo in update.md

* Update update.md

---------

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
2023-12-05 21:12:55 -08:00
Vlad Sirenko
f0e0c6d5df fix: improve compatibility of http.ServerResponse (#4431) 2023-12-05 16:15:16 -08:00
dave caruso
b77480758f Fix bug with syntax highlighter (#7474)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-05 15:53:44 -08:00
Dylan Conway
93d9b20974 increase (#7476) 2023-12-05 15:53:05 -08:00
Imamuzzaki Abu Salam
f303bcd997 docs: update misleading clonefile information (#7388)
* docs: update misleading `clonefile` information

* Fix macOS exception in cache module
2023-12-05 14:35:19 -08:00
dave caruso
62e1389e17 test: import describe properly
@Jarred-Sumner you forgot to import describe. this is casusing test failures on all PRs.
2023-12-05 14:22:28 -08:00
Anner Visser
b952ef8ad9 Base prelease build stage on base instead of on install (#7289)
There is no reason to have the entire install stage for the
prerelease stage. Instead use the base as base and copy
in the relevent files (which already happened)
2023-12-04 17:06:46 -08:00
Aaron Silvas
ec6339c25a Fix for building lambda runtime zip files (#7446) 2023-12-04 09:44:26 -08:00
Max Kayander
2ff788f463 Update typedarray-to-string.md (#7453) 2023-12-04 09:43:42 -08:00
Jarred Sumner
df17598026 Allow expect.extend in preload, remove "expect must be called in a test" error (#7430)
* Allow `expect.extend` in preload, remove "expect must be called in a test" error

* Bump

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-03 22:31:56 -08:00
Michael H
298a60419b Fix bun create help script (#7450)
* remove unnessary escape + fix bold

* ...
2023-12-03 22:31:36 -08:00
Jarred Sumner
2f83f32582 Update websockets.md 2023-12-02 09:30:58 -08:00
Jarred Sumner
b3bdf22ebb Handle EXDEV when saving lockfile (#7419)
* Handle `EXDEV` when saving lockfile

* Update fs.zig

* Update c.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-02 08:00:35 -08:00
Jarred Sumner
d45f2dae15 Disable usage of O_TMPFILE for now 2023-12-02 06:54:33 -08:00
Jarred Sumner
67c7769ddb Make some warnings errors (#7417)
* Make some warnings errors

* Modifying CMake should trigger a rebuild...

* bring this back + fix tmpfile issue

* Add assertion + fix error

* use cast

* Handle EEXIST

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-02 06:03:14 -08:00
Jarred Sumner
03298cba70 Disable parseArgs implementation until https://github.com/oven-sh/bun/pull/7310#issuecomment-1837135393 is addressed 2023-12-02 04:29:13 -08:00
Jarred Sumner
3963d2de64 Rename async asymmetric matchers 2023-12-02 03:50:30 -08:00
Jarred Sumner
b2bf3f0dcf Handle stack overflow in binary expressions in JS Parser (#7414)
* Fix stack overflow in large files

* Add test for stack overflow

* wip

* Disable cache in debug build

* Remove our extra `captureStackTrace` call

* Update RuntimeTranspilerCache.zig

* Update RuntimeTranspilerCache.zig

* Fix issues with integer environment variables

* Add missing ref

* Add missing null check

* Update bindings.cpp

* Update transpiler-cache.test.ts

* Add version check

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-12-02 03:46:25 -08:00
dave caruso
ffe447ba5a fix(standalone): runtime dynamic imports now transpile correctly. (#7404)
* fix issue in compile

* add tests

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-02 00:42:34 -08:00
Jay Bell
7389f1b108 fix(lockfile): print yarn lockfile aliases deps with quotes (#7409)
* fix(lockfile): print yarn lockfile aliases deps with quotes

* Update src/install/lockfile.zig

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-12-02 00:42:21 -08:00
Hanaasagi
7538c20afe fix(worker): fix SIGSEGV when terminating a Worker (#7411)
Close: #7209
2023-12-02 00:39:26 -08:00
Dylan Conway
ed02691f8b Remove line truncation in logger (#7413)
* Update logger.zig

* less out of bounds
2023-12-02 00:06:02 -08:00
Ashcon Partovi
dae985ab3c Fix Location header not being cloned from Response.redirect() (#7402)
* Fix `Location` header not being cloned from `Response.redirect()`

* Fix was something else
2023-12-01 16:35:28 -08:00
Jarred Sumner
52e1c2de08 feat: syntax highlight stack traces + overall visual improvements (#7335)
* Parse stack trace string

* Syntax highlight error messages

* Fix off-by-one

* Undo changes to populateStackTrace

* Highlight more things

* Add a way to write tests for it

* Create highlight-cat.ts

* Bump

* fix: off by ones

* feat: add function highlighting to these errors

* revisions

* undo

* l

* fix webkit submodule

* imo this looks worse

* [autofix.ci] apply automated fixes

* fix off by one <3

* fix more situations

* ch changes

* ok

* [autofix.ci] apply automated fixes

* fix this

* fix snapshot

* ok

* mark test as todo

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-01 14:02:08 -08:00
Jarred Sumner
0c532eac7b Make tsc --help 2x faster (#7365) 2023-12-01 22:56:40 +01:00
Jarred Sumner
70e57a7da0 Fixes #4876 (#7391) 2023-12-01 22:54:40 +01:00
Dylan Conway
fdece8611a Update thread_pool.zig (#7389)
* Update thread_pool.zig

* default stack size

* fix assertion
2023-12-01 02:07:13 -08:00
Zack Radisic
1147c70881 Glob fixes + optimization (#7344)
* 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>
2023-11-30 19:18:55 -08:00
mimikun
3c97f568a7 Fix typos (#7378) 2023-11-30 18:36:44 -08:00
Dylan Conway
310d0c5646 oopsies 2023-11-30 18:16:47 -08:00
Dylan Conway
d79fa7ac1a remove bun.parseargs and update docs 2023-11-30 18:04:48 -08:00
Ciro Spaciari
906ba8b2a0 fix(WebSocket) improve WebSocket Client (#7371)
* improvements

* autobahn tests

* add all tests

* check if docker is active move autobahn to a new file

* fix non SIMD UTF8 validation

* use no trim to catch utf8 issues

* fix extended payload fragmentation

* fmt

* Update src/string_immutable.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-30 18:00:41 -08:00
Dylan Conway
54df5c032d createEmptyObjectWithNullPrototype 2023-11-30 16:48:53 -08:00
Otger Rogla
70039ff038 feat(parseArgs): Native implementation of parseArgs from node:util (#7310)
* Native implementation of parseArgs from node:util

* small change to validators + added some docs
2023-11-30 16:34:44 -08:00
Otger Rogla
90654143bb feat(test): expect.extend and asymmetric matcher improvements (#7319)
* bun-test expect.extend and asymmetric matcher improvements

* [autofix.ci] apply automated fixes

* Changes to expect.extend and asymmetric matchers

* expect-extend: remove global custom matchers registry

* test custom matchers: better way of storing matcher func

* made expect.arrayContaining/objectMatching reject non-arrays/non-objects

* [autofix.ci] apply automated fixes

* fixes for test changes

* create 1 wrapping function instead of 2 per each custom matcher

* fix expect.extend error messages and support for async matchers

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-29 23:20:25 -08:00
liqiang
bc114fb9d3 fix console.timeLog (#7089)
* fix console.timeLog

* fix console.timeLog can log arguments

* console timeLog test use bunEnv

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>

* fix console timeLog test

* Update console.timeLog

Co-authored-by: dave caruso <me@paperdave.net>

* Update test/js/web/console/console-timeLog.js

Co-authored-by: Radhi Rasho <54078496+RadhiRasho@users.noreply.github.com>

* Update console-timeLog.js

* fix console-timeLog.js test

* fix timeLog tests due to trailing comma PR

---------

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Radhi Rasho <54078496+RadhiRasho@users.noreply.github.com>
2023-11-29 20:07:03 -08:00
dave caruso
f3727f00dc allow migrating from npm lockfile v2 (#6695)
* allow lockfile version 2

* force save lockfile

* add migration from npm lockfilev2 test (#7370)

Co-authored-by: Alex See <alexsee@Alexs-MacBook-Air.local>

* [autofix.ci] apply automated fixes

---------

Co-authored-by: hustLer2k <61846786+hustLer2k@users.noreply.github.com>
Co-authored-by: Alex See <alexsee@Alexs-MacBook-Air.local>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-29 20:06:44 -08:00
Jarred Sumner
6389a6e24f fix: reduce noise in stack traces (#7307)
* Mark require as private

* [autofix.ci] apply automated fixes

* fix(runtime): clean up cjs + stack trace stuff

- CJS wrapper is like 200x simpler to understand. it is also 1-10% faster
- Make a few more things hidden in stack tracess. This only affects release build.

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-11-29 18:03:29 -08:00
Brian Knight
851b19ee0e Fix imports in run-tests example (#7368)
Adds `describe` to the import statement in a run tests example. Without this, the example does not run properly and returns an error.
2023-11-29 18:00:15 -08:00
Nick Reilingh
ebae02a08b Update file-io.md: BunFile.stream() doesn't return promise (#7372)
According to my lsp, `.stream()` returns a ReadableStream directly instead of a promise.
2023-11-29 13:44:31 -08:00
dave caruso
809266fc7a dx: clarify zig version error 2023-11-29 11:21:50 -08:00
Joey Wendt
98885279eb Fix scripts/download-zig.sh (#7364)
* fix: scripts/download-zig.sh file is not gzipped

* fix: scripts/download-zig.sh Linux x86_64 arch var
2023-11-29 00:52:59 -08:00
hustLer2k
666e615889 feat(console): Use trailing commas when printing multiline JS objects (#7334)
* feat: use trailing commas when printing multi-line objects

* test: update console-log.expected.txt to include trailing commas

* test: update a couple tests to match new object output with trailing commas

* [autofix.ci] apply automated fixes

---------

Co-authored-by: Alex See <alexsee@Alexs-MacBook-Air.local>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-28 13:28:37 -08:00
Adrien Brault
0b99b01b0e fix: printf invalid option in download-zig (#7351) 2023-11-28 13:27:19 -08:00
Adrien Brault
eb98b61201 docs: fix macos clang-16 PATH command (#7350)
Even though I had run the export, `bun setup` was erroring with:
```
$ ./scripts/setup.sh
setup error: LLVM 16 is required. Detected CXX as '/usr/bin/clang++'
error: script "setup" exited with code 1 (SIGHUP)
```

Running `export PATH="$(brew --prefix llvm@16)/bin:$PATH"` fixed the error
2023-11-28 13:26:53 -08:00
Jérôme Benoit
a043497fb4 fix(worker_threads): do not terminate worker at parentPort closing (#7238)
* fix(worker_threads): do not crash worker at parentPort closing

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* doc: add TODO comment as per review request

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

---------

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
2023-11-28 11:44:01 -08:00
Sukka
f5115835da dx: fix auto install zig script (#7348) 2023-11-27 20:34:12 -08:00
Alexandre Seo
34881922c8 fix(transpiler): error when parsing keys with hyphen in some JSON files (#7316)
* Quote export aliases with hyphens when converting jsons to modules

* Add test

* Handle quotes in printer and not in bundler

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-27 20:03:53 -08:00
Jérôme Benoit
44b9960113 fix(worker_threads): make onmessageerror setter work (#7237)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
2023-11-27 19:32:24 -08:00
Bin Xin
713d72703d feat(transpiler): add jsx spread children support (#7294)
* feat: jsx spread children

* test: spread children
2023-11-27 19:30:59 -08:00
dave caruso
383a615d21 dx: automatically install and update zig (#7305)
* dx: automatically install and update zig

* update repo

* ensure system zig compiler in ci

* a

* b

* good

* i am stupid

* why did this happen

* fix installer
2023-11-27 17:27:01 -08:00
Jarred Sumner
6ee42f7719 Fixes #7324 (#7330)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-27 12:12:55 -08:00
James Anderson
1840de3661 feat(test): toHaveBeenNthCalledWith + improve some fail messages (#7320)
* feat(test): `toHaveBeenNthCalledWith` + improve some fail messages

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-26 15:59:44 -08:00
Steven Almeroth
6aa1319fd9 fix typo (#7327) 2023-11-26 15:59:19 -08:00
Jarred Sumner
6a7b1a3208 Clean up lifetime handling for napi_create_string_utf16 (#7311)
* Clean up lifetime handling for `napi_create_string_utf16` and `napi_create_string_latin1`

* Fix `napi_create_arraybuffer`

* Update globals.d.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-26 15:59:03 -08:00
Jarred Sumner
5c23d670a3 Fix bug with readable streams that have been detached (#7308)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-26 02:11:42 -08:00
Jarred Sumner
22818e6806 Fix assertion failure when Worker is shutting down 2023-11-25 02:15:53 -08:00
Michael H
0abe3745d2 Add import.meta.env to bun-types (#7309)
* Add `import.meta.env` to `bun-types`

* add type to codeblock
2023-11-24 22:04:20 -08:00
DidaS
ea0ffde991 Update docs (#7193) 2023-11-24 21:25:37 -08:00
Sam
194294f5b5 fix(node:fs): fix fs.promises.opendir not having a path property (#7292)
Closes #4995
2023-11-24 19:11:45 -08:00
Jarred Sumner
7f10622a84 Implement recursive option in fs.readdir (#7296)
* Implement `fs.readdir(path, {recursive: true})` and `fs.readdirSync(path, {recursive: true})`

* Update node_fs.zig

* FIx memory leak in error code

* Add fail test

* Update readdir.mjs

* Update bun.zig

* Update readdir.mjs

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-24 19:08:07 -08:00
Jarred Sumner
a71a9e3447 Fix warning 2023-11-24 18:49:59 -08:00
Ciro Spaciari
53ee2d77b2 fix(crypto) oneshot Sign and Verify (#7256)
* WIP

* native oneshot sign

* add native verify

* fallback rsa to non-native

* WIP der dsaEncoding

* pass encoding

* RSA-PSS padding and saltLength

* oopies

* improve RSA-PSS support

* accepts hash identifiers like nodejs and add options.hashAlgorithm support

* fix string check

* tests

* define hash for ECDSA

* fix compilation
2023-11-24 18:43:17 -08:00
WingLim
3d58437fc8 fix(Response): single Content-Range in http response (#7199)
* fix: only write header if not exist

If user set header by himself, then we not write duplicate header.

* feat: add test to check header

* chore: format code
2023-11-24 18:29:52 -08:00
Michael H
6517252153 Environment Variables (#7306)
* Environment variables

* .
2023-11-24 18:25:34 -08:00
James Anderson
5f86b839b4 feat(test): toHaveBeenCalledWith and toHaveBeenLastCalledWith (#7277) 2023-11-24 18:24:21 -08:00
Jarred Sumner
5692f82aaf Delete bun_dev_http_server.zig (#7283)
* Rename http_client_async -> http

* Delete bun_dev_http_server.zig

* update these

* [uws] Add method for getting SO_ERROR

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-24 18:21:56 -08:00
Dylan Conway
93714292bf require bun:test (#7276) 2023-11-23 01:12:03 -08:00
Jarred Sumner
0766fb5ae8 Fix assertion failure in mocks 2023-11-23 00:54:12 -08:00
Dylan Conway
e83a9132d5 fix duplicate workspace bug (#7281)
* fix duplicate workspace dependency bug

* dedupe workspace names from package json

* more tests

* Update bun-install-registry.test.ts

* make sure workspace path entry is assigned

* Update bun-install-registry.test.ts

* Update bun-install-registry.test.ts
2023-11-22 22:18:27 -08:00
Jarred Sumner
bc4146295f Update nav.ts 2023-11-22 16:13:41 -08:00
Jarred Sumner
d8be3e51b4 Support glob.scan(string) (#7279)
* Support `glob.scan(string)`

* Create glob.md

* Update glob.md

* fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-22 16:12:28 -08:00
Zack Radisic
6ba4e950cc Add Bun.Glob (#6861)
* 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>
2023-11-22 14:26:09 -08:00
Jarred Sumner
81067477dc Load *.{m,c}ts{x} last in node_modules (#7259)
* Load `.{m,c}ts{x}` last in node_modules

* feat(console.log): Print className for an object if present (#6508)

* feat(console-log): fix className not printed for objects that are instances of classes

Uses getClassName native method instead of getName

* test(console-log): objects with class names are printed correctly

* test(esbuild): add class name to log message

* Fix failing `which` test (#7258)

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

* Make test less flaky

* Get it working and add test

* Handle relative paths

* Add comment

* Consolidate + add test

* Bump

* Fix getObjectName

* Update dir_info.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Jibran Kalia <jibran.kalia@gmail.com>
2023-11-22 14:11:35 -08:00
Jarred Sumner
d8ca6ca699 Make test less flaky 2023-11-21 18:56:14 -08:00
Jarred Sumner
05ef3329c4 Fix failing which test (#7258)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-21 18:10:21 -08:00
Jibran Kalia
ab93f9f74e feat(console.log): Print className for an object if present (#6508)
* feat(console-log): fix className not printed for objects that are instances of classes

Uses getClassName native method instead of getName

* test(console-log): objects with class names are printed correctly

* test(esbuild): add class name to log message
2023-11-21 17:39:00 -08:00
Dylan Conway
8db407e9a7 make tmpdir more random (#7243)
* make tmpdir more random

* 100
2023-11-21 14:29:35 -08:00
Dylan Conway
5eb6f83251 fix test :( 2023-11-21 12:34:36 -08:00
Jarred Sumner
1b8d7d5cb1 Update base64 library (#7220)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-20 15:12:31 -08:00
Jarred Sumner
bf32d36e4c Cleanup how build errors are displayed slightly (#7223)
* Cleanup error formatting a little

* Add error for using import statement with CommonJS-only features

* Update js_ast.zig

* Further tweaks to formatting, also print error.cause

* Add some snapshot tests for errors

* Make these snapshot tests

* Ignore mimalloc warnings

* Update error message parsing in bundling tests

* Increase timeout on the test

* Update expectBundled.ts

* Update test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-20 15:07:13 -08:00
Anton Golub
e9661c2953 fix(process): enable SIGKILL and SIGSTOP mappings (#7172)
* fix: enable SIGKILL -> 9 mapping

* fix: enable SIGSTOP -> 18 mapping
2023-11-20 14:11:46 -08:00
Jérôme Benoit
0b66fd643e fix: test for make presence in the buildsystem (#7234)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
2023-11-20 09:12:24 -08:00
Liz
778bad9dfd fix(Bun.serve): return EACCESS when we don't have perms (#7191)
* fix(Bun.serve): return EACCESS when we don't have perms

The error reported to js land when listening fails was always the same,
this adds a second one for EACCESS when we are not the super user.

Fixes: https://github.com/oven-sh/bun/issues/7187

* fix: adjust code to be only ran on linuz

* fix: correct typo

* fix: remove comment since its linux only now
2023-11-19 10:38:33 -08:00
Jarred Sumner
ef8b9efaa4 Fixes #7201 2023-11-18 22:24:49 -08:00
Jarred Sumner
864d59f822 Add missing JSC debug build flag 2023-11-18 21:04:45 -08:00
Dylan Conway
f5bf67bd1b choose correct resolved package for peer dependencies (#7192)
* fix sometimes failing install test

* loop to make sure it happens
2023-11-17 19:15:47 -08:00
Ashcon Partovi
075c09401a Output verbose logs when running in Github Action with debug mode (#7183) 2023-11-17 18:19:29 -08:00
Ciro Spaciari
c23579d66c feat(http2) Client Support (#6761)
* init

* WIP fix post data/refactor

* make it compile again

* more things

* undo padding and continue + fix posting + update lshpack

* re-add fixes

* really simple tests + fixes

* add aborted event

* fix trailers

* add getDefaultSettings, getPackedSettings and getUnpackedSettings

* fix + fmt

* fixes

* fix enablePush o be boolean

* fix sendTrailers

* fmt

* fix goaway, fix some error messages

* oops

* revert some changes

* more reverts

* WIP

* get CMAKE building lspack + ping behavior

* remove files that should not be added anymore

* remove old out files

* remove old file

* fix header reduce

* bunch of fixes

* fix socket unref

* fix abort signal, rebase and fmt

* socket unref tests

* oops re-add cmake

* fix stream state

* more tests and fixes

* fixes and ping tests

* lshpack in Dockerfile

* just copy lshpack

* oops

* fix end

* wantTrailers

* encode/decode fixes + grpc

* channel credentials test

* rebase

* support h2c

* fix h2c

* fix h2c connect event + h2c tests

* 'copy ls-hpack

* ls-hpack build sh

* oops

* changing CMake + Docker

* add ps1 build for ls-hpack fix clean

* optimizations + fixes

* remove protect/unprotect from handlers

* more consistent errors

* fix error code

* oops

* add goaway tests

* oops uncoment tests

* better errors more tests

* add broken priority frame

* better memory leak, some fixes and less flask tests

* zig update .Big -> .big

* closer threshold + h2 fix

* remove log

* test should not be flask

* increase timeout on leak memory test

* windows build

* less flasky

* always 127.0.0.1

* [autofix.ci] apply automated fixes

* remove .call and use primordials

* apply socket fix

* fix win-build

* should properly mark inactive

* postgres fix

* increase deadline

* test tests

* high light deadline timeouts

* event loop test

* make memory leak test faster

* use buffer on payload test

* check for socket.data before use

* reduce iterations to see if timeout on mac intel

* fix assertions

* avoid localhost and simplify things

* refactor memory leak test

* Update src/js/node/tls.js

* fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciai@gmail.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-17 18:14:54 -08:00
Jarred Sumner
6c200c089c Tweak napi PR (#7177)
* Fix assertion failure

* Fix the test

* Fix assertion failure

* Update bun.lockb

* Add node-gyp

* Update CMakeLists.txt

* Update napi.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-17 17:00:44 -08:00
Mike Dotty
3eb086f5fa fix(dx): Stop swallowing errors from create_hash_table during the build (#7110)
* Stop swallowing errors from create_hash_table during the build

If src/codegen/create_hash_table can't be run due to some reason
(e.g. due to missing Math::BigInt Perl module) the build continues
but fails later, during bindings compilation, because the generated
files are empty.

Fix it by handling the failure to run create_hash_table properly.

Closes #7074

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-17 13:45:32 -08:00
DidaS
fbff18a723 fix(types): Change Bun.serve types to allow void when using websockets (#7160)
* `Response` -> `any`

* Revert previous commit & allow void in ws fetch

* Added type test to check if you can upgrade connection without returning

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-17 05:34:05 -08:00
Olivier Guimbal
6e7014c91b Fix napi_get_value_string_utf8 to match node (#7175)
* fix napi_get_value_string_utf8 to match node
closes #6949

* [autofix.ci] apply automated fixes

* Update test/napi/napi.test.ts

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* Update test/napi/napi.test.ts

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-17 05:27:58 -08:00
Jarred Sumner
711ea1604b Set umask once (#7176)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-17 05:08:25 -08:00
Jarred Sumner
538a243453 Bump! 2023-11-17 04:12:08 -08:00
Dylan Conway
8be492c080 fix require transpile (#7170)
* bounds checks

* do this all the time

cc @paperdave

* use length of string

* ttest

* min

* can't prefix if length isn't at least equal

* substring

* Update pretty_format.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-17 04:10:50 -08:00
jhmaster
6c7a0e5a79 node:util core-js compat. fix (#7101)
* node:util: fix compatibility issue with corejs
2023-11-17 09:10:32 -03:00
Jarred Sumner
f4d14c02c7 Implement process.report.getReport() (#7171)
* Prevent assertion failure

* Implement process.report.getReport()

* Update process.test.js

* }

* Update BunProcess.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-17 03:35:35 -08:00
Dylan Conway
3ca2d8ae5e ensure .bin folder is created before linking binaries (#7166)
* bin might need to be created after iterating node_modules

* Update bun-install-registry.test.ts

* test this functionality in a few more tests

* fix a test

* another test

* revert

* more test
2023-11-16 23:54:49 -08:00
Jarred Sumner
c23aed993f Update pull_request_template.md 2023-11-16 23:52:27 -08:00
Jarred Sumner
11e07caaa4 Update pull_request_template.md 2023-11-16 23:52:19 -08:00
Jarred Sumner
e4de49df2a Update pull_request_template.md 2023-11-16 23:51:28 -08:00
Jarred Sumner
47e1fbe468 Update pull_request_template.md 2023-11-16 23:50:09 -08:00
Jarred Sumner
8353ba7857 Update pull_request_template.md 2023-11-16 23:50:02 -08:00
HK-SHAO
606c80b049 Fix the TypeError of isValidTLSArray for http (https://github.com/oven-sh/bun/issues/7153) (#7154) 2023-11-16 23:41:19 -08:00
Jarred Sumner
d1436e3ecc Support Object.create in Stats within node:fs (#7168)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-16 23:39:10 -08:00
Jarred Sumner
7e0e007e3e Fix bug where with statements do not trigger CommonJS (#7167)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-16 23:37:22 -08:00
Ashcon Partovi
2e74f7f079 Properly handle errors from posix_spawn (#7163) 2023-11-16 21:02:13 -08:00
Jarred Sumner
2c81c2a13f Fix crash due to isEmpty check checking only size and not capacity 2023-11-16 19:37:14 -08:00
Jarred Sumner
d9a0fd4f59 Don't allocate new "require" and "resolve" strings in CJS modules (#7162)
* Don't allocate new `"require"` and `"resolve"` strings in every CommonJS module

* Use builtinNames more

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-16 15:10:27 -08:00
Mathias Wulff
d1ec8f86f3 Add license to bun-types (#7149) 2023-11-16 09:18:46 -08:00
Dylan Conway
85c997513d node modules bin directory fix (#7151)
* place binaries in `.bin` of package node_modules

* test

* fix tests
2023-11-15 22:44:44 -08:00
Mike Dotty
904134cc75 Handle whitespace in no_proxy environment variable (#7072)
De facto standard format of no_proxy enivronment
variable allows whitespace around the host names.
Make it work.

Closes #6339
2023-11-15 21:55:31 -08:00
Alex Kwiatkowski
15e4f1bad3 fix typo in help menu (#7150) 2023-11-15 21:19:38 -08:00
Jarred Sumner
09b8b6b468 Bump! 2023-11-15 19:41:00 -08:00
Jarred Sumner
4dfc7feae0 Reorder the flags 2023-11-15 19:17:10 -08:00
Jarred Sumner
77e6b946f4 Support using bultin functions in macros (#7113)
* `zig fmt`

* Support using macros in builtins

* Make fetch work a little better in macros

* Delete a bunch of code

* Update macro-test.test.ts

* Update macro-test.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-15 18:25:27 -08:00
Colin McDonnell
31814934f3 CLI flags (#6395)
* WIP

* WIP

* Improve helptext

* WIP

* WIP

* WIP

* WIP

* Clean up, implement warn_on_unrecognized_flag

* Fix struct

* Tweaks

* Fix bunx test

* Address reviews

* Init and create

* Updates

* bunx

* Tweaks

* Lockfile

* tweak

* tweak

* tweak

* tweak

* Remove comments

* Add back origin and port

* Remove logging

* Updates

* fmt

* fix rebasing mistakes

* bruh

* expose node builtins for -e

* add tests and fix it on windows

* a

* lol

* okay

* finish things up

* Update src/deps/zig-clap/clap/streaming.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

---------

Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-15 18:15:10 -08:00
Jarred Sumner
b43a8b54cf Implement expect.unreachable(msg?: string | Error) (#7131)
* Implement `expect.unreachable`

* UIse expect.unreachable() in some tests

* Use more unreachable

* More unreachable

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-15 16:14:13 -08:00
Pierre-Mike
a165306fd9 Update gitignore-for-init removing duplicate .cache pattern (#7133)
'.cache' pattern is defined more than once
2023-11-15 09:19:12 -08:00
Hanaasagi
056d45cf6b fix(install): fix the case that package scope contains tilde. (#7049)
* fix(install): fix the case that package name contains tilde.
Close: #7045

* add tests

* emm, let me know why test failed

* overwrite registry config

* check more chars

* remove $
2023-11-15 01:31:31 -08:00
Dylan Conway
46955e95ef migration without resolved properties (#7123)
* packages without `resolved` properties

* test

* free more

* find registry scope
2023-11-14 23:17:59 -08:00
Jarred Sumner
e6e4ffb4ae Fixes #6789 (#7129)
* `zig fmt`

* Fixes #6879

* Update bun-test.d.ts

* More tests

* Bump WebKit

* [autofix.ci] apply automated fixes

* woops

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-14 21:00:28 -08:00
Jarred Sumner
5946e13e27 Fixes #7035 2023-11-14 20:18:04 -08:00
Anton Golub
8f3e278ab9 Add stubs for zlib.brotli* (#7096) 2023-11-14 08:52:42 -08:00
Ashcon Partovi
547ed6d74d Add workflow that fixes PRs that do not match formatting (#7098) 2023-11-14 08:51:19 -08:00
Jarred Sumner
d4adcb3ccf Update zig version (#7103)
* Update zig version

* Update Dockerfile

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-14 02:34:18 -08:00
Jarred Sumner
d4628992d8 Fixes #6929 (#7059)
* Fixes #6929

* TIL macOS symbols are case insensitive

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-14 02:14:11 -08:00
Jarred Sumner
24b4b2c16d Remove unnecessary unprotect() call causing assertion failure 2023-11-14 02:06:40 -08:00
Jarred Sumner
35bac672bb Make globalThis.crypto.subtle = 123 do nothing 2023-11-14 01:46:46 -08:00
Jarred Sumner
d649f69404 Add a test for expect() no arguments called repeatedly 2023-11-14 01:32:16 -08:00
Jarred Sumner
7ce5061343 Make a test less flaky 2023-11-14 01:20:41 -08:00
Jarred Sumner
20d9e25ae2 Fix hang introduced in #6991 (#7104)
This causes keep-alive to be disabled for HTTP status codes that do not support bodies, leading to many HTTP client hangs.

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-14 01:14:56 -08:00
Jarred Sumner
89c76f2b45 Fixes #6604 2023-11-14 00:55:19 -08:00
Jarred Sumner
a9a68c3143 Allow a longer timeout in this potentially flaky test 2023-11-13 22:25:13 -08:00
Jarred Sumner
d1c1c8fb5f Fix flaky test 2023-11-13 22:16:34 -08:00
Jarred Sumner
4228ecea98 [Guides] Suggest actions/checkout@v4 2023-11-13 22:15:36 -08:00
Jarred Sumner
909a821d3d [CI] Disable assertions build for now 2023-11-13 22:15:13 -08:00
Jarred Sumner
7a4e0158d6 Lots of stuff (#7027)
* Use debug mode by default

* Enable build with assertions enabled

* Update cli.zig

* Update bun-linux-build.yml

* Fixes

* Fix `ASSERT_ENABLED`

* try this

* Update Dockerfile

* mimalloc debug

* Update CMakeLists.txt

* `Bun.deepMatch` - fix assertion failures

cc @dylan-conway, looks like we need to use `putDirectMayBeIndex` and check for `isCell` more carefully.

* Object.create support in code generator and callbacks wrapper

* Remove unused file

* zig upgrade

* zls

* Fix various errors

* Support `BuiltinAccessor` in create_hash_table script

* Fix assertion failure in `process.mainModule`

* Fix assertion failure in `onerror`

* Fix assertion failure when creating a Worker

* Fix asssertion failure when loading lots of files in bun test

* Fix assertion failure when termating a `Worker`

* Add helper for converting BunString to a WTFString

* Fix assertion failure in notifyNeedTermination

* Add more debug logs in `bun test`

* Fix compiler warning in usockets

* Fix assertion failure with `Worker` termination (another)

* Fix assertion failure in `coerceToInt64`

* Fix assertion failure in `BroadcastChannel`

* Fix assertion failure in `Headers.prototype.getAll`

* Fixes #7067

* Add heap analyzer label for CommonJS modules

* Fix assertion failure in module.require && module.require.resolve

* Remove unused code

* Fix assertion failure in debugger

* Fix crash in debugger

* Fix assertion failures in bun:sqlite

* Bump zig

* Bump WebKit

* Fix assertion failure in JSPromise::reject && JSInternalPromise::reject

* Fix assertion failure in ReadableStream::cancel

* Fix assertion failure in AsyncContextFrame::create

* Fix assertion failure in bun:sqlite

* Fix assertion failure in mocks

* Fix assertion failure in ServerWebSocket.close

* Fix assertion failure in N-API with subclasses

* [napi] Make promises cheaper

* undo

* Don't check for exceptions in ObjectInitializationScope

* Add separate entry point for test runner that doesn't generate code

* Don't deref builtin code

* Fix preload test

* Fix assertion failure in memoryUsage()

* Fix preload test, part 2

* Ensure that the env map for a Worker is empty after it is used

* The pointer for the Arena allocator used in parsing should not change

* Terminate thread on exit

* Start to implement scriptExecutionStatus

* Update worker.test.ts

* Fix Dirent.name setter

* Update settings.json

* Fix assertion failure in node:http

* Use correct value for `JSFinalObject::maxInlineCapacity`

* JSFinalObject::maxInlineCapacity x2

* Don't strip when assertions are enabled

* Make `m_wasTerminated` atomic

* Preserve directives in the transpiler

cc @ctjlewis

* Workaround assertion failure in ServerWebSocket.sendBinary and ServerWebSocket.sendText

* windows

* Buffer lockfile serialization in-memory

* PR feedback

* PR feedback

* PR feedback

* Windows

* quotes

* Update CMakeLists.txt

* Update bun-linux-build.yml

* Update bun-linux-build.yml

* Move this code to BunString.cpp

* Update BunString.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-13 22:10:09 -08:00
Zack Kollar
228bfbd24a Install the deps from test during the setup.sh script (#7047) 2023-11-13 17:26:57 -08:00
Ashcon Partovi
45e1bc3a21 Revert "Stop swallowing errors from create_hash_table during the build (#7086)" (#7097)
This reverts commit e1489d4fe3.
2023-11-13 14:42:25 -08:00
Mike Dotty
e1489d4fe3 Stop swallowing errors from create_hash_table during the build (#7086)
If src/codegen/create_hash_table can't be run due to some reason
(e.g. due to missing Math::BigInt Perl module) the build continues
but fails later, during bindings compilation, because the generated
files are empty.

Fix it by handling the failure to run create_hash_table properly.

Closes #7074
2023-11-13 13:46:20 -08:00
Ciro Spaciari
273f612c77 fix(async_hooks) fix disable and disable test (#7090)
* fix disable

* test should fail on exception

* oops
2023-11-13 13:21:27 -08:00
Otger Rogla
a82b2b2d04 support import.meta.env (#7094) 2023-11-13 12:37:20 -08:00
Shah Bakhteyar Haider
bf767b53d7 Update CI/CD guide (#7050)
* Update CI/CD guide

The guide at https://bun.sh/guides/runtime/cicd shows an outdated example for specifying a version of Bun.
It currently shows "version" and it should be updated to "bun-version".

* Add more examples in CI/CD guide
2023-11-13 09:54:03 -08:00
Juan A
1db1941577 Remove bad escaping from .gitignore in bun init (#7056)
Closes #7036
2023-11-13 09:37:42 -08:00
Mike Dotty
49f86c87b4 Refresh dependencies in contribution guide (#7087)
- move dependencies installation to the front, as the next steps
  depend on them
- add missing xz-utils, which, libicu-devel to the dependencies

Closes #7076
Closes #7077
2023-11-13 09:33:57 -08:00
cdfzo
346e27083f Fix typo in bundler docs (#7085) 2023-11-13 02:43:13 -08:00
Jarred Sumner
6d666da4b9 Update schema after env file change (#7061)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-11 21:08:08 -08:00
Jarred Sumner
feca0c2647 Delete unused files (#7060)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-11 21:07:56 -08:00
Jarred Sumner
bf806602d8 Update .gitattributes 2023-11-11 19:55:27 -08:00
Jarred Sumner
e3ab7408c9 Update .gitattributes 2023-11-11 19:39:56 -08:00
Jarred Sumner
c49a5a7d7d When getting properties, treat undefined the same as though the property was not defined (#7048)
It works this way in JS.

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-11 05:06:24 -08:00
Otger Rogla
450397a277 Fix fetch response skipping body if no content-length (#6932) (#6991)
* Fix fetch response skipping body if no content-length (#6932)

* Fix timeout on status 1xx/204/304 without content-length, tests changes

* Fix test that was wrong

* fix fetch response without content-length not disabling keep-alive

---------

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
2023-11-11 02:22:05 -08:00
Antonin CLAUZIER
f63eba952e Fixes output path for build command (#7026) 2023-11-11 02:13:23 -08:00
Otger Rogla
eaa9ba99fa add support for --env-file arg to bun run to load custom env files (#7032) 2023-11-11 02:10:47 -08:00
Ashcon Partovi
f0cbc79d8b Implement server.url (#7043)
* Implement `server.url`

* Fix memory leak
2023-11-10 23:00:27 -08:00
Lorenzo Donadio
01e0136d7c fixed small typo in allow_in_out_variance_annotations (#7030) 2023-11-10 15:17:08 -08:00
Joseph Yu
520845217e Fix toBeNaN's misleading JSDoc comment (#7019) 2023-11-10 11:25:08 -08:00
Brett Goulder
42d8a0b44b Fix util.formatWithOptions typings. (#7002) 2023-11-10 03:29:02 -08:00
Meghan Denny
84414f8fe8 fix fs.read being passed to util.promisify (#6999)
* fix fs.read being passed to util.promisify

* Update test/js/node/fs/fs.test.ts

* Update test/js/node/fs/fs.test.ts

* Update src/js/node/fs.js

* Fix write, add more tests, clean up the code

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-09 20:00:41 -08:00
Ciro Spaciari
046d197519 fix asyncLocalStorage disabled (#7015) 2023-11-09 17:51:49 -08:00
Dylan Conway
1250655ddb check for empty in JSValue.jsType (#7000)
* check for empty

* better comment

* move empty check to before `jsType()`

* Update src/bun.js/test/jest.zig

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-09 14:17:22 -08:00
dave caruso
29b1a4f61b fix(ffi): fix ffi with large uint32_t values (#7009)
* fix(ffi): fix ffi with large uint32_t values

* clean up
2023-11-09 12:02:20 -08:00
Ciro Spaciari
2d5698c719 fix(node-fetch) Set-Cookie key on node-fetch.raw() should be set-cookie instead of Set-Cookie to match nodejs behavior (#7011)
* fix set-cookie header name

* add test

* fix test

* fix test to match nodejs behavior

* oops
2023-11-09 11:59:20 -08:00
Meghan Denny
c08e8a76ef don't pass script flags to pre- or post- scripts (#6997) 2023-11-08 17:44:15 -08:00
MuhibAhmed
03298eb8dd Update edgedb.md (#6985)
Small fix
2023-11-08 04:41:12 -08:00
Jarred Sumner
a86a57e1b8 Update semver.md 2023-11-08 04:40:07 -08:00
Jarred Sumner
45f2eac44c Add a doc on Bun.semver 2023-11-08 04:32:29 -08:00
Jarred Sumner
b05e753c9f Add microbenchmark for Bun.semver 2023-11-08 04:03:48 -08:00
Dylan Conway
f7f6233ea8 fix semver edge cases and buffer used for prerelease comparisons (#6981)
* use different buf for group and manifest versions

* tests

* tests for installs that should fail

* allow `<=<prerelease-version`

* `Bun.semver.satisfies`

* one

* stringify

* symbol tests

* deinit

* arena

* more tests

* fix test

* version always on the left

* `Bun.semver.order`

* handle more edge cases, more tests

* whitespace

* more
2023-11-08 03:36:17 -08:00
Jarred Sumner
6d5c513195 Fixes #6200 (#6983)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-08 03:28:57 -08:00
Jarred Sumner
131b96bbba Fix debug build crash 2023-11-07 23:26:22 -08:00
Jarred Sumner
b7587b76e0 Revert "fix: correctly prepend system path to relative urls on pathToFileURL (#6472)"
This reverts commit 8130d9f3e1.

This fixes https://github.com/oven-sh/bun/issues/6953
2023-11-07 19:04:25 -08:00
Jarred Sumner
ee43932189 Update CMakeLists.txt 2023-11-07 19:02:32 -08:00
Jarred Sumner
9082193568 Add missing raw method to node-fetch polyfill (#6976)
* Add missing `raw` method to node-fetch polyfill

* Update node-fetch.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-07 16:58:48 -08:00
Jarred Sumner
b52e503ce4 Fixes #6973 (#6975)
Fixes #6973

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-07 16:42:25 -08:00
cirospaciari
e581f732d7 callback instead of trhowing 2023-11-08 00:21:24 +01:00
cirospaciari
c939ec1544 change sinon version to match jsonwebtoken tests 2023-11-08 00:21:24 +01:00
cirospaciari
a2f2ed5411 less flasky test utils 2023-11-08 00:21:24 +01:00
cirospaciari
55f636ffb8 fix reference error 2023-11-08 00:21:24 +01:00
cirospaciari
cbba20804e revert 2023-11-08 00:19:49 +01:00
cirospaciari
91c2edc0f2 really fix 2023-11-08 00:19:49 +01:00
cirospaciari
09a4d864da better test name 2023-11-08 00:19:49 +01:00
cirospaciari
11e7937c3c cleanup 2023-11-08 00:19:49 +01:00
cirospaciari
22a7e3a310 clean read before handshake 2023-11-08 00:19:49 +01:00
Jarred Sumner
4fbde727d2 Revert d1244c8b1f
This fixes #6954 and adds a test. `DOMAttribute` ensures the `this` value of getters are always set.
2023-11-07 04:22:44 -08:00
Jarred Sumner
990ca9cb9d the real fix 2023-11-07 13:19:58 +01:00
Jarred Sumner
21e32c042e Speculative fix for #6951 2023-11-07 13:19:58 +01:00
Dylan Conway
d85bd49d87 remove error 2023-11-07 07:55:01 +01:00
Dylan Conway
c0853959c2 cleanup tests 2023-11-07 07:55:01 +01:00
Dylan Conway
fef7920b17 Revert "split('||'), fix up tests"
This reverts commit 5fd09153cd.
2023-11-07 07:55:01 +01:00
Dylan Conway
b5a04827e1 split('||'), fix up tests 2023-11-07 07:55:01 +01:00
Dylan Conway
bb5d6fff77 count might be zero for alias 2023-11-07 07:55:01 +01:00
Dylan Conway
8d3a0ddd47 another test 2023-11-07 07:55:01 +01:00
Dylan Conway
75aa963fef test for invalid version 2023-11-07 07:55:01 +01:00
Dylan Conway
b0126b5962 remove &, mark skip tests as todo 2023-11-07 07:55:01 +01:00
Dylan Conway
a7251047b7 allow no spaces 2023-11-07 07:55:01 +01:00
Dylan Conway
2f301e8404 skip tags in version ranges 2023-11-07 07:55:01 +01:00
Jarred Sumner
3fae8933e5 Bump 2023-11-06 21:41:47 -08:00
Jarred Sumner
c3a7b574c8 Update sys.zig (#6942)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-06 18:05:46 -08:00
Paul Baumgart
fa25d60df8 fix: remove stray semicolon that causes sqlite3_compileoption_used to always return true on Mac (#6941) 2023-11-06 16:52:40 -08:00
Liz
8130d9f3e1 fix: correctly prepend system path to relative urls on pathToFileURL (#6472)
* fix: correctly prepend system path to relative urls on `pathToFileURL`

The `pathToFileURL` was not handling the case that when a relative link is passed,
it should convert it to a absolute url and prepend the top_folder,
or otherwise described, resolve the path before creating the url.

This does that by calling into buns Path api and using its `resolve` function.

Theres the detail that i used preprocessor directives to determine whether
we are on windows because there does not seam to be a easy way to get that
at runtime in the `BunObject.cpp` file.

Fixes: https://github.com/oven-sh/bun/issues/6456

* fix: add issue id to test name

* fix: implement changes requested in review

* style: fix styling

* Update src/bun.js/bindings/BunObject.cpp

* Update src/bun.js/bindings/BunObject.cpp

* Update src/bun.js/bindings/BunObject.cpp

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-06 13:57:25 -08:00
Jarred Sumner
3ba9647858 Fix a couple bugs with node:http (#6924)
* Update to latest SIMDUTF

* Fix issue with `Headers.toJSON` having an incorrect size set with set-cookie header

* [node:http] Fix `undefined` when multiple Set-Cookie headers are sent

* Count UTF8 byteLength for headers

This is not necessary, just being cautious.

* Update http-hello.node.mjs

* Be 100% sure the test isn't caching anything

* move this up

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-06 03:51:49 -08:00
Jarred Sumner
c77c6ea53e Update settings.json 2023-11-05 03:35:20 -08:00
Jarred Sumner
98f20170a3 Add more tests for Bun.spawn lifecycle and address edgecase (#6904)
* FIxup spawn ref / unref

* Fix test failures

* Add test for #3480

* windows

* 🪟

* Skip on linux

* Fix test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-05 00:00:19 -07:00
Jarred Sumner
e954bce301 Fix test 2023-11-04 16:19:38 -07:00
Jarred Sumner
8554683297 Fix build 2023-11-04 16:11:42 -07:00
Dylan Conway
5d1a7d8d5a Spawn ref count (#6890)
* fix(Bun.spawn): Fix integer overflow from unref()

* rewite

* has disable flag

* tests

* packed

* remove comments

* make tests more smarter

* unref

* another test

* kevent timeout 0

* possibly fix MacOS x64 baseline action

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-11-04 15:21:37 -07:00
dave caruso
39101d16c3 fix: baseline+linux arm64 builds (#6873)
* Fix the linux aarch64 workflow.

* sanity check

* do not set march to native

* fix windows compile error

* enable verbose

* fix baseline builds

* fix windows build canary flags

* use a real windows runner

* w
2023-11-03 21:35:52 -07:00
Jarred Sumner
e7a83ad70e Fix edgecase from eeb3f7be18 (#6870)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-03 02:58:57 -07:00
Dylan Conway
142cdf1714 more install tests (#6867)
* some tests

* Apply suggestions from code review

* Update src/install/install.zig

* `zig fmt`

* Update install.zig

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-11-03 02:37:03 -07:00
Jarred Sumner
2d4011b22f Fix clang warnings in usockets
cc @cirospaciari
2023-11-02 23:53:09 -07:00
Dylan Conway
eeb3f7be18 fix jsx key parse and visit order (#6866)
* jsx key parse and visit order

* only use index

* fix underflow

* oops

* tests
2023-11-02 22:56:40 -07:00
dave caruso
12272bb527 ci: publish workflow to gh releases 2023-11-02 22:47:49 -07:00
dave caruso
4403c40755 chore: build and publish canary windows builds (#6834)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-11-02 22:40:00 -07:00
Dylan Conway
2a405f691e fix #6831 (#6859)
* latin1 zigstring

* skip check
2023-11-02 15:55:54 -07:00
Jarred Sumner
75393e02b8 Fix assertion 2023-11-02 15:46:18 -07:00
Jarred Sumner
e646853d7a Fix assertion failure 2023-11-02 15:15:16 -07:00
Liz
3912f4d064 fix(build): add option and auto detect for arch linux (#6835)
* fix(build): add option and auto detect for arch linux

This adds a option and a automatic routine for decting arch linux,
where the path for libatomic is a bit special.

* fix: don't statically link if not needed
2023-10-31 23:21:45 -07:00
dave caruso
53d1acb0a5 chore: build system improvements (#6811)
* build system improvements

* public the secret download link

* typo

* i think i fixed it

* fix ci

* un-bump the cmake version
2023-10-31 17:25:13 -07:00
マルコメ
23d2c4c8e4 workflows(bun-mac-x64.yml): Fix typo "bun-obj-darwin-x6" (#6819) 2023-10-31 09:47:16 -07:00
Anton Golub
732650d6a4 fix: provide nodejs compat for dns methods wrapped with util.promisify (#6748)
* fix: add nodejs compat for dns methods wrapping with util.promisify

* fix: use single symbol for util.promisify.custom

* style: linting
2023-10-30 23:54:48 -07:00
Jarred Sumner
b29d68bbaf Fix memory leak in require (#6790)
* Fix memory leak in require() and add test

* Mark fixtures as generated code

* Add optimization for large files

* Fix small memory leak

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-30 23:54:02 -07:00
Kerem Kat
715be35764 Fix 6281 (#6809)
* throw an error when `Script` is called without new

fix https://github.com/oven-sh/bun/issues/6281

* fix typo in `File` without constructor error

fix https://github.com/oven-sh/bun/issues/6281
2023-10-30 23:05:32 -07:00
Dylan Conway
e259056bd8 peer dependency and semver prerelease bug fixes (#6814)
* `order` and `satisfy` prerelease numbers

* remove sorter

* use existing package for peer dep if possible

* fix test, remove loop

* count workspace versions, compare each part of prerelease

* other peer dependencies

* use existing packages if possible

* don't install peer more than once

* fix update tests
2023-10-30 23:04:47 -07:00
Kerem Kat
68146d0544 Fix minify-whitespace case undefined (#6808)
Print a space before `undefined` in `printUndefined`.

fix https://github.com/oven-sh/bun/issues/6750
2023-10-30 16:15:45 -07:00
Dylan Conway
7e09c7ca1e format 2023-10-30 16:09:34 -07:00
Ciro Spaciari
4d780837ac fix(fetch) (#6672)
* fix fetch

* oops

* revert

* fix checkServerIdentity

* check dns len

* use same checks on wsclient and fetch, fix tests

* more tests and more fixes

* fix node-http flask test

* orelse

* fix requestCert

* more fixes, but no data receiving

* fix pause on connect behavior on TLS

* WS Client + rejectUnauthorized progress

* move test to the right place

* more test

* oops

* oops 2

* fmt

* cleanup

* WIP: handle handshake properly on uWS

* handle rejectUnauthorized in uWS

* fmt

* duplicated test

* fix leak

* add rejectUnauthorized option in WS types

* fix merge

* fix merge2
2023-10-30 12:56:31 -07:00
IAS
cbc5ca770b fix: Macro segmentation faults (#6756)
* Fix for seg faults when using macros

* Update src/js_ast.zig to reflect review suggestions

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* add test for checking non-zero exitcodes under macros. regression, issue 3830

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-10-30 12:36:38 -07:00
Jarred Sumner
2972cfadfb More resilient test for fetch body memory leak (#6794)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-30 12:35:55 -07:00
Jarred Sumner
6be17538e7 Fix flaky test 2023-10-30 02:01:29 -07:00
Liz
e5ccce1e89 feat(console): add printer for mapiterator (#6778)
* feat(console): add printer for mapiterator

MapIterator was not supported in printing, libraries like discordjs make big use of maps and
so i think supporting them would be a good idea.

* fix: snake case var

* fix: add tests for log and add setiterator printer
2023-10-30 01:29:25 -07:00
Rohit Kaushal
08fdbb3c7d [docs] fix ws/pubsub; closed ws don't publish to topic (#6739) 2023-10-30 00:07:50 -07:00
Hanaasagi
8880bf1026 fix(node:buffer): fix Buffer.readUintBE (#6770)
Close: #6759
2023-10-30 00:07:27 -07:00
Ross Martin
d7cb7884c3 Update contributing.md (#6787)
Adding ruby as a dev dependency to Arch list
2023-10-29 18:07:00 -07:00
Samuel Batista
bb19677ae4 docs(contributing) add ruby dependency (#6788)
Don't know why ruby is required to build bun, but without it `bun setup` fails.
2023-10-29 18:06:40 -07:00
Smoothieewastaken
a7a74b73f2 docs: spelling of necessarily (#6772) 2023-10-29 06:34:54 -07:00
perpetualsquid
e4394ef5cc Fixed broken link in deflatesync section (#6774)
* Fixed broken link in deflatesync section

* fixed link

* fixed link
2023-10-29 06:34:35 -07:00
Omar
e4e811d0a7 fix: remove extra parenthesis (#6775) 2023-10-29 06:34:19 -07:00
Jarred Sumner
6851a57ebd Update nodejs-apis.md 2023-10-28 20:17:20 -07:00
dave caruso
3b25c8637b dx: Fix setup script and contributing docs (#6752)
* Updated Dependencies Script

* demo

* fix submodule hell!!!

* lol

* attmept 2

* install nasm in ci

* setup sh 1

* yeah

* better zlib building

* codegen stuff

* attempt 2 at bun codegen ci

* o

* deps improvements

* generaet part of compile-cpp-only.ps1

* restore these

* good enough for Unix

* remove libuv submodule lol

* pass over docs
2023-10-28 04:46:56 -07:00
Jarred Sumner
d1244c8b1f Remove unnecessary DOMAttribute annotation
Preparation for https://github.com/WebKit/WebKit/pull/19606
2023-10-27 22:00:29 -07:00
Rohan Mayya
d1a7bb4a69 add cache and main (#6679) 2023-10-27 11:26:59 -07:00
Darshan Sen
a0bd8365da docs: fix setup.sh path in contributing.md (#6745)
It was added in https://github.com/oven-sh/bun/pull/4410. The `src`
directory is not supposed to be a part of the path.

Signed-off-by: Darshan Sen <raisinten@gmail.com>
2023-10-27 04:08:37 -07:00
Jarred Sumner
16a0801058 Format cmakelists + increase stack size 2023-10-27 04:01:06 -07:00
Jarred Sumner
c4156376d9 Fix debug log 2023-10-27 04:01:05 -07:00
dave caruso
4ff54139b7 fix(ci): typo 2023-10-27 03:20:44 -07:00
Jarred Sumner
8d2e0725e7 Fix fallback to copyfile 2023-10-27 02:36:10 -07:00
Jarred Sumner
700f932ddf Fix warning 2023-10-27 02:20:51 -07:00
Jarred Sumner
7485c7c7cb feat: Windows + CMake Build System (#4410)
* Prepare for windows event loop

* More progress

* Update libuv.zig

* wip

* Make compiling each dependency a shell script

* Bump mimalloc

* Add the build scripts

* Update settings.json

* Fix a bunch of compiler warnings

* Remove more warnings

* more warnings

* cmake works

* Update JSSQLStatement.h

* put it in the zig file

* Fix usockets warnings

* Fixup

* Fix one of the compiler errors

* chunk

* draw the rest of the owl

* theres more

* Rename Process -> BunProcess

Works around a Windows issue

* Add musl polyfill for memmem on Windows

* More

* 12 mb

* Fix getenvZ

* fix variosu issues

* Add fast-ish path for bun install on Windows

* Update windows.zig

* Update windows.zig

* Fix build issue

* it works

* hmmm

* Rename file

* Fixups

* Update wtf-bindings.cpp

* Update src/bun.js/bindings/headers-handwritten.h

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>

* further!

* more

* Update .gitignore

* hm

* quite a lot of fixes

* Update CMakeLists.txt

* zig fmt

* Many more things are starting to work.

* reb

* regenaret

* Update JSSink.h

* fixup

* fetch works

* Bun.serve() and much of the event loop works now

* Make require() work

* bun install progress

* more things work

* use less std.os

* Fixes

* small fixes

* Bump

* Bummp

* Undo that change

* We have to bump the version of Debian because libarchive has a higher minimum requirement

* ok

* some clenaup

* windows

* Update bun.zig

* fixup

* avoid duplicate symbols

* avoid undefined symbols

* bump

* Remove issue template for install

It's not used, and use the bug issue instead.

* Add types for cp and cpSync

* Add types for watchFile and unwatchFile

* Add bun-types to 'bun fmt' script

* Update nodejs compat docs cp/cpSync/watchFile/unwatchFile (#4525)

* feat(fetch) rejectUnauthorized and checkServerIdentity (#4514)

* enable root certs on fetch

* rebase

* fix lookup

* some fixes and improvements

* fmt

* more fixes

* more fixes

* check detached onHandshake

* fix promise case

* fix cert non-Native

* add fetch tls tests

* more one test

* churn

* Update feature_flags.zig

* Update response.zig

* Revert "avoid undefined symbols"

This reverts commit ca835b726f.

* Revert "avoid duplicate symbols"

This reverts commit 4ac6ca8700.

* Update feature_flags.zig

* Set permissions

* more

* Update mimalloc

* Fix sqlite test failures

* Fix some test failures

* Make sure we remove libusockets is removed

* hm

* [dave]: fix webcrypto crash

* bump

* Update index.ts

* windows zig compiles

* cmake on mac works

* progress

* yay

* bun run build

* fix

* ok

* oops

* asdfasfdafdsafda

* fghjkl

* git ignore

* wow

* Process -> BunProcess

* hmm

* blah

* finalize merge

* now it only has linker errors on mac

* sdfadsf

* g

* getting farther

* sxdcvbnmk,

* adfhjskfjdhkas

* a

* fgh

* update build dot zig

* asdfg

* theoretical -DCANARY flag we can use

* asdf

* cool

* okay

* colorterm

* New build workflow

* Fix script

* Use sudo

* More sudo

* Tweak dependencies

* Another sudo attempt

* Tweak script

* 16.0 -> 16

* Tweak script

* Tweak script

* Tweak script

* Tweak script

* Tweak script

* bun install

* ssh into github actions

* add more to ssh

* Fix postinstal

* Skip llvm

* New dockerfile

* Build

* More changes to Dockerfile

* chaos chaos chaos

* okay

* a

* more cmake nonsense

* add unified sources code (does not work)

* stuff

* prepare for CI builds

* ok

* yay

* yeah

* make this more stable simply by trying again if it fails, 5 times, then lose. it fixes the stability issue i was running into L O L

* messing with ci

* x

* a

* clean dependencies before build

* oops

* this is not going to work but its closer

* not gonna work either

* a

* a

* did i do it

* a

* a

* work around weird fs+Bun.build issues

* properly pass debug flag correctly

* idk im sorry

* lose

* maybe

* run the tests please

* a

* fix zlib script

* a

* hi

* prevent stupid ci issue

* i totally didnt leave in a syntax error on cmakelists

* a

* lol

* relax

* 😭

* a

* SO SILLY

* 😡 one line mistake

* one character diff

* fix linking symbols missing

* work on dependency scripts

* does this work now?

* fix mac build

* a

* bump!

* woops

* add macos baseline build

* .

* fix sqlite and also enable $assert/$debug support in builtin functions

* okay

* oops

* zig upgrade lol

* Merge

* Fix spawn test issue

* Set a timeout

* yeah

* etc

* mi

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: Birk Skyum <74932975+birkskyum@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-10-27 01:51:56 -07:00
Jarred Sumner
46a337cbc8 Fix running Bun.spawn on Vercel and GCP (#6724)
* Fix running `Bun.spawn` on Vercel and GCP

* Update subprocess.zig

* Deflake test

* Update spawn-streaming-stdout.test.ts

* Fix tests + cleanup

* Fix hang

* Handle edgecase

* Update subprocess.zig

* Update subprocess.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-27 00:03:03 -07:00
Colin McDonnell
58d9a0d770 Add EdgeDB guide 2023-10-26 17:28:57 -07:00
Liz
8f42d8c2dd fix: emit close on stdin stream end (#6720)
* fix: emit close on stdin stream end

We where not emitting the `close` event when done reading stdin data.
It took me way too long to find this but i kept searching in zig/cpp code of the stream implementations...

Fixes: https://github.com/oven-sh/bun/issues/6713

* fix: don't emit close twice
2023-10-26 17:00:37 -07:00
Hanaasagi
b5fb980145 fix(requestIP): fix type cast from binary to text format for IPv4. (#6725)
* fix(requestIP): fix type cast from binary to text format for IPv4.
Close: #6668

* use ares_inet_ntop
2023-10-26 12:31:53 -03:00
Jarred Sumner
2b8aae05d1 Add test for custom thenables in AsyncLocalStorage and fix flaky test and make expect(fn).toThrow drain unhandled promise rejections (#6701)
* Copy Node.js test for async-local-storage thenables

* Fix flaky test

* Make expect(fn).toThrow() more reliable

* Fix setImmediate order

* Support restoring mocked modules with spyOn

* Fix vm test

* Fix more tests

* alright

* Upgrade WebKit

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-25 22:35:14 -07:00
Susheel Thapa
2327737b14 docs: fixed typo in guides, install and runtime folder (#6718) 2023-10-25 18:27:05 -07:00
Pierre CM
58ce044607 fix cli create from local template (#6670)
* fix #4766

* fix cli create command for local folders

* zig fmt

* rm comment
2023-10-25 16:54:36 -07:00
Jasper Kelder
85bde43c2f fix bun add drizzle to bun add drizzle-orm (#6703) 2023-10-25 12:55:16 -07:00
Colin McDonnell
4fb5ab0ca8 Update drizzle guide 2023-10-25 12:52:15 -07:00
Colin McDonnell
c275cecfd1 Updates to drizzle 2023-10-25 12:16:59 -07:00
Jarred Sumner
6a2768f247 Implement mock.module in bun:test (#6685)
* Implement Module Mocks

* Update javascript.zig

* Add test for spyOn + ESM namespace

* Bump WebKit

* Bump WebKit

* Drain microtasks at end of test executions

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-25 02:59:47 -07:00
Jarred Sumner
7bcf60324a Fix setTimeout(() => {}, 0) and align setImmediate behavior with Node.js (#6674)
* Fix setTimeout(() => {}, 0)

* Align `setImmediate` with Node.js

* Update event_loop.zig

* Update test

* use Bun.sleep

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-25 02:59:29 -07:00
dave caruso
c700a70872 fix(runtime): remove env variable limit (#6697)
* fix env limit

* test
2023-10-24 20:11:06 -07:00
Colin McDonnell
ce4e1894f6 Remove unnecessary line 2023-10-24 18:48:07 -07:00
Colin McDonnell
f60167c015 Add Drizzle guide (#6698)
* Add drizzle guide

* Add Drizzle guide

* Tweak
2023-10-24 18:28:39 -07:00
Dylan Conway
042a6cdbce Update worker_threads.test.ts 2023-10-24 17:07:48 -07:00
Jérôme Benoit
85a0d71c52 fix(worker_threads): off by one on threadId (#6671)
* fix(worker_threads): off by one on threadId

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: refine worker_threads threadId consistency test

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: improve worker_threads tests

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: fix worker_threads threadId consistency test

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: simplify worker_threads threadId consistency test

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: refine worker_threads threadId consistency test

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>

* refactor: cleanup import on worker_threads tests

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: switch worker_threads worker to TS

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: revert wrong refactoring

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: format

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: port worker_threads worker to ESM

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: cleanup worker_threads test

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: improve worker_threads coverage

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>

---------

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
2023-10-24 17:05:22 -07:00
Dylan Conway
fa1bbec023 Update bun-install.test.ts 2023-10-24 13:18:51 -07:00
nxzq
1496681297 Update workspaces.md (#6673) 2023-10-23 23:16:42 -07:00
Liz
3906d17165 add new repo (#6676) 2023-10-23 23:16:13 -07:00
Yam Borodetsky
f297b95436 docs: fix react.md typos (#6656)
* docs: fix react.md typos

* docs: fix one more typo
2023-10-23 13:48:45 -07:00
Jarred Sumner
fafd9368f5 Backport uWS & usockets changes (#6649)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-22 13:44:08 -07:00
Ai Hoshino
1836ecd2ed fix(node:buffer): fix Buffer.write stuck (#6651) 2023-10-22 13:42:05 -07:00
Jarred Sumner
4cdaabd433 Dump as json 2023-10-21 16:27:11 -07:00
Jarred Sumner
4a74a46780 Add require builtins snippet 2023-10-21 16:18:18 -07:00
Dylan Conway
b62c010e95 fix bun link in workspace package (#6631)
* link workspace package

* add test

* more complete test
2023-10-20 22:38:46 -07:00
Pedro Nogueira
074534b292 revert: back the test/README.md file (#6626)
Co-authored-by: pedromdsn <pedromdsn@hotmail.com>
2023-10-20 16:38:06 -07:00
Dylan Conway
b0393fba62 Update InternalModuleRegistryConstants.h 2023-10-20 14:15:05 -07:00
Dmitry Nourell
7166fe10b5 Fixes IV calculation for AES-GCM mode (#6590)
* fix(crypto): fix the error in IV calculation for AES-GCM mode

* chore(crypto): add basic unit tests for Cipher & Decipher
2023-10-20 14:01:58 -07:00
chandi Langecker
2890ad53c4 fix(napi): incorrect refCount with napi_wrap() (#6598)
while trying to get [`node-usb`](https://github.com/node-usb/node-usb) running with bun, it always failed because close() is only allowed when there are no open references.

7e0182df8c/src/node_usb.h (L39-L41)
```c++
    inline void ref(){ refs_ = Ref();}
    inline void unref(){ refs_ = Unref();}
    inline bool canClose(){return refs_ == 0;}
```

`Ref()` and `Unref()` are both called once, with node.js resulting in `refs_ == 0` (which is expected), but with bun `refs_ == 1`.

I've made this small script to reproduce the bug:
https://github.com/alangecker/bun-ref-bug/blob/main/binding.cc
```
run with bun 1.0.6:
 - refcount: 2 (expected: 1)
run with node 20.8.1:
 - refcount: 1 (expected: 1)
```

during a long debugging journey I found out, that buns `NapiRef::ref()` is also just called once (as expected), but within `napi_wrap()` the `NapiRef` gets initialized already with the refCount set to 1

378385ba60/src/bun.js/bindings/napi.cpp (L669)
```c++
extern "C" napi_status napi_wrap(napi_env env,
    napi_value js_object,
    void* native_object,
    napi_finalize finalize_cb,
    void* finalize_hint,
    napi_ref* result)
{
    // [...]
    auto* ref = new NapiRef(globalObject, 1);
    // [...]
}
```

After changing it to `new NapiRef(globalObject, 0)` it got the expected behavior / same as with node.js and node-usb works.
as far as I understand it, a `NapiRef`` with refCount=0 should then be weak instead of strong, which is why I have changed this too.
2023-10-20 13:02:35 -07:00
Paula Burghelea
01e3474600 Update quickstart.md - removed the part for editing compilerOptions… (#6620)
* Update quickstart.md - removed the part for editing `compilerOptions` in `tsconfig.json`

The line is already added to `compilerOptions` in `tsconfig.json` so there is no need to edit the file.

    "types": [
      "bun-types" // add Bun global
    ]

This was already added when the project initialized it seems.

* Typescript section

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-20 11:26:19 -07:00
Jarred Sumner
756eee087a Sort list of dependencies and fix test (#6616)
* fix findBestMatch so it finds the best match and not the first match

* update complex-workspaces to include lines-and-columns ^1.1.6

* PR feedback

* PR feedback

* This test doesn't reproduce the original issue

* Support pre release versions the same way

* Add a test that reproduces the original issue

* Sort the list of package versions before serializing to disk

* Remove test that didnt reproduce it

* Fix the count

* Fix 0 and 1 and sorting order

* Fix assertions and ordering

---------

Co-authored-by: Dylan Greene <dgreene@medallia.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-20 03:55:40 -07:00
Dylan Conway
4b2cdc4fc1 respect optional peer dependencies and update docs (#6615)
* update docs

* optional peer dependencies

* rename offset variable name, cache invalidation time

* Update install.zig

* install more peer dependencies
2023-10-20 03:27:10 -07:00
Dylan Greene
184528e4eb fix findBestMatch so it finds the best match and not the first match (#6611)
* fix findBestMatch so it finds the best match and not the first match

* update complex-workspaces to include lines-and-columns ^1.1.6

* PR feedback

* PR feedback
2023-10-20 02:18:37 -07:00
Jarred Sumner
8cf7d6157a Fix missing function names in console.log and Bun.inspect (#6612)
* Fix missing function names in Bun.inspect

* Fix failing tests

* Handle @@toStringTag

* Update bindings.cpp

* Revert breaking changes to snapshots until a minor version

* Fix test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-19 22:38:05 -07:00
Vladimir Vlach
68324daf78 String response for lambda function - no need to strinfigy string (#6208) 2023-10-19 22:27:36 -07:00
Liz
66debb1ce4 fix: support custom file type in Bun.file (#6512)
* fix: support custom file type in Bun.file

In the docs it seamed to suggest this is something supported,
it seamed to be only supported in JSDOMFiles or blob.
This Adds the 2 properties `type` and `lastModified` to be supported on `Bun.file`

Fixes: https://github.com/oven-sh/bun/issues/6507

* fix: implement changes requested in review

Add changes requested in the review and add a test for a non standard
mimetype
2023-10-19 22:26:27 -07:00
Ashcon Partovi
d5d9fc4684 Fix websocket upgrade (#6564)
* Remove ancient changelog

* Fix `Host` header excluding port in WebSocket upgrade

* `byteSlice()`

* Revert `byteSlice()`
2023-10-19 22:24:45 -07:00
Liz
f6b694ee2c fix(install): dont replace git urls when already present (#6607)
* fix: dont replace git urls when already present

* fix: set request e_string

* test: add test for git url duplication
2023-10-19 21:28:59 -07:00
Dylan Conway
bb623196a3 fix install add (#6609)
* fix add package

* update test

* initWithCLI once

* skip searching for workspaces if package json was created
2023-10-19 19:17:38 -07:00
nygma
e9948f1291 Add append content to a file guide (#6581)
* Add append content guide

Resolve #6559

* Update guide

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-19 17:29:31 -07:00
Jarred Sumner
378385ba60 Bump Zig 2023-10-19 00:19:21 -07:00
Ai Hoshino
ef5930e8bc fix(serve): When IPv6 is not enabled, attempt to bind to IPv4 address under the same hostname. (#6533)
* fix(serve): When IPv6 configuration is incorrect, attempt to bind to IPv4 address under the same hostname.
Close: #5315

* fix review

* fix review again

---------

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2023-10-18 17:40:26 -07:00
Ai Hoshino
0173571b19 fix(node:buffer): fix the behavior of totalLength in Buffer.concat (#6574)
* fix(node:buffer): fix the behavior of `totalLength` in `Buffer.concat`
Close: #6570
Close: #3639

* fix buffer totalLength type

---------

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
2023-10-18 14:30:53 -07:00
Dawid Sowa
35259c0c1d fix: change --no-scripts to --ignore-scripts (#6587) 2023-10-18 14:00:04 -07:00
Mountain/\Ash
e7cba822e4 fix: online docs moved (#6579) 2023-10-18 12:57:46 -07:00
Kevin Latka
0d34e7a141 Fix minimum kernel version in docs (#6153)
* Fix minimum kernel version in docs

* Update install.md

* Update install.md

* Update install.md

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-18 11:49:09 -07:00
Dylan Conway
aedc8c0ead build-id++ 2023-10-18 11:02:44 -07:00
Liz
9c0cd5c030 fix(web): stub performance.getEntriesByName (#6542) 2023-10-18 10:04:45 -07:00
Dylan Conway
2f10398c74 update root package variable 2023-10-17 23:10:10 -07:00
Ashcon Partovi
49ef5bccec Fix missing {port: 0} causing flaky test 2023-10-17 21:23:13 -07:00
Dylan Conway
dcbcf9803a test changes in usockets in ci 2023-10-17 19:38:13 -07:00
Pierre CM
e731eff382 fix #4766 (#6563) 2023-10-17 16:56:27 -07:00
Dylan Conway
a57d7ecb5b Update ZigGeneratedClasses.cpp 2023-10-17 16:46:31 -07:00
Dylan Conway
d187563d36 use npm alias in dependencies (#6545)
* aliased package in dependencies

* other buf

* make sure version works

* make sure overrides don't override alias

* tests

* update

* comments
2023-10-17 16:34:03 -07:00
Ai Hoshino
e91436e524 fix(node:http): fix server.address() (#6442)
Closes #6413, #5850
2023-10-17 13:18:14 -07:00
Aral Roca Gomez
bbc2e96090 docs: fix ws.publish (#6558)
In this example there is no server variable in the context, and here it makes more sense to use ws.publish. It is explained below that once the serve is done, the server.publish can be used.
2023-10-17 09:23:10 -07:00
Mikhail
f53eb7cd59 perf(bun-types): remove needless some call (#6550) 2023-10-17 08:59:05 -07:00
dave caruso
98d19fa624 fix(runtime): make some things more stable (partial jsc debug build) (#5881)
* make our debug assertions work

* install bun-webkit-debug

* more progress

* ok

* progress...

* more debug build stuff

* ok

* a

* asdfghjkl

* fix(runtime): fix bad assertion failure in JSBufferList

* ok

* stuff

* upgrade webkit

* Update src/bun.js/bindings/JSDOMWrapperCache.h

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* fix message for colin's changes

* okay

* fix cjs prototype

* implement mainModule

* i think this fixes it all

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-10-16 21:22:43 -07:00
dave caruso
a3958190e8 fix(runtime): improve IPC reliability + organization pass on that code (#6475)
* dfghj

* Handle messages that did not finish

* tidy

* ok

* a

* Merge remote-tracking branch 'origin/main' into dave/ipc-fixes

* test failures

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-10-16 20:01:24 -07:00
Mikhail
6504bfef74 Simplify getting Set of extentions (#4975) 2023-10-16 17:16:10 -07:00
Ashcon Partovi
220cb0eb94 Fix formatting 2023-10-16 17:11:04 -07:00
Igor Shapiro
01e04e3341 fix(test): when tests run with --only the nested describe blocks `.on… (#5616) 2023-10-16 16:33:02 -07:00
Yannik Schröder
0853e19f53 perf(node:events): optimize emit(...) function (#5485) 2023-10-16 16:18:40 -07:00
Liz
a9b8e3ecc8 fix: don't remove content-encoding header from header table (#5743)
Closes #5668
2023-10-16 16:11:44 -07:00
Hugo Galan
bec6161dce fix(sqlite) Insert .all() does not return an array #5872 (#5946)
* fixing #5872

* removing useless comment
2023-10-16 16:08:58 -07:00
Ashcon Partovi
8c580e6764 Fix formatting 2023-10-16 16:02:11 -07:00
Chris Toshok
c5354951ba Fix Response.statusText (#6151) 2023-10-16 15:57:16 -07:00
Nicolae-Rares Ailincai
f1658e2e58 fix-subprocess-argument-missing (#6407)
* fix-subprocess-argument-missing

* fix-tests

* nitpick, these should === not just be undefined

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-10-16 15:31:14 -07:00
Voldemat
90d7f33522 Add type parameter to expect (#6128) 2023-10-16 15:24:56 -07:00
Jérôme Benoit
d9c0273421 fix(node:worker_threads): ensure threadId property is exposed on worker_threads instance (#6521)
* fix: ensure threadId property is exposed on worker_threads instance

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* fix: rename lazy worker_threads module properties

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* fix: add getter for threadId

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: improve worker_threads UTs

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: fix lazy loading

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: fix worker_threads test

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>

* fix: return the worker threadId

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>

* test: refine worker_threads expectation on threadId

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>

---------

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
2023-10-16 15:19:38 -07:00
Ashcon Partovi
d65b1fd80b Fix use before define bug in sqlite
Fixes #6481
2023-10-16 15:14:15 -07:00
João Alisson
7becb5ec74 fix(jest): fix toStrictEqual on same URLs (#6528)
Fixes #6492
2023-10-16 15:14:15 -07:00
Ashcon Partovi
c3f5baa091 Fix toHaveBeenCalled having wrong error signature
Fixes #6527
2023-10-16 15:14:15 -07:00
Ashcon Partovi
800ad150ff Fix formatting 2023-10-16 15:14:15 -07:00
Ashcon Partovi
5608e59270 Add reusePort to Bun.serve types 2023-10-16 15:14:15 -07:00
Ashcon Partovi
e31ed84b1b Fix request.url having incorrect port
Fixes #6443
2023-10-16 15:14:15 -07:00
Ashcon Partovi
548b1d02f2 Remove uWebSockets header from Bun.serve responses 2023-10-16 15:14:15 -07:00
Ashcon Partovi
f63955a01f Rename some tests 2023-10-16 15:14:15 -07:00
Ashcon Partovi
2996ef7156 Fix #6467 2023-10-16 15:14:15 -07:00
Dylan Conway
2b1f3438e6 Update InternalModuleRegistryConstants.h 2023-10-16 14:21:39 -07:00
Colin McDonnell
2a8f3a3b4e Development -> Contributing (#6538)
Co-authored-by: Colin McDonnell <colin@KennyM1.local>
2023-10-16 16:11:03 -04:00
Ciro Spaciari
a87aa2fafe fix(net/tls) fix pg hang on end + hanging on query (#6487)
* fix pg hang on end + hanging on query

* remove dummy function

* fix node-stream

* add test

* fix test

* return error in test

* fix test use once instead of on

* fix OOM

* generated

* 💅

* 💅
2023-10-14 16:16:49 -07:00
Dylan Conway
9b5e66453b fix installing dependencies that match workspace versions (#6494)
* check if dependency matches workspace version

* test

* Update lockfile.zig

* set resolution to workspace package id
2023-10-13 20:37:48 -07:00
Dylan Conway
46f978838d fix lockfile struct padding (#6495)
* integrity padding

* error message for bytes at end of struct
2023-10-13 20:37:06 -07:00
Nicolae-Rares Ailincai
21576589c6 Guide to containerize a bun application using Docker (#6478)
* docker.md

* use-debian

* Updates

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-13 18:03:32 -07:00
Jarred Sumner
d7062eb367 [node:dns] Fix unnecessary array creation + prettier 2023-10-13 17:57:43 -07:00
João Alisson
851dc9aadc fix(node): dns lookup deprecated behavior (#6391)
Co-authored-by: alisson <alisson@Ubuntu.myguest.virtualbox.org>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-10-13 17:52:57 -07:00
Ai Hoshino
d08e112d41 fix(error): correct the path field in syscall error message. (#6370)
* fix(error): correct the `path` field in syscall error message.
Close: #6336

* fix pathlike union case
2023-10-13 17:51:36 -07:00
Ashcon Partovi
77d7e47019 Fix dns.lookup returning wrong address for family (#6474)
* Fix #6452

* Fix formatting
2023-10-13 17:47:05 -07:00
Dylan Conway
1bad64bc5e Update settings.json 2023-10-13 16:29:06 -07:00
Nicolae-Rares Ailincai
0794767291 Adds systemd guide to run a bun application as a daemon (#6451)
* systemd-guide

* remove-root-from-example

* add-more-description

* Updates

* Updates

* Updates

* Update

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-13 11:14:57 -07:00
Clay Curry
d7c8a58453 fix obvious typo in CONTRIBUTING.md (#6479)
Co-authored-by: Clay Curry <me@claycurry.com>
2023-10-13 09:33:44 -07:00
Colin McDonnell
4fab8fee21 Update descriptions 2023-10-12 23:19:53 -07:00
Colin McDonnell
3f2df4526e Fix links 2023-10-12 23:17:51 -07:00
Colin McDonnell
d6d4ead438 Tweaks to pm docs 2023-10-12 23:08:52 -07:00
Colin McDonnell
4e67862753 Add overrides/resolutions docs (#6476) 2023-10-12 23:05:20 -07:00
dave caruso
584e6dd1c2 Upgrade zig to 0.12.0-dev.888+130227491 (#6471)
* update build.zig

* save

* works?

* better workaround

* fix install

* Fix compiler crash
2023-10-12 19:38:33 -07:00
Dylan Conway
4bb753295d use a different package 2023-10-12 19:35:00 -07:00
Dylan Conway
892593c73b fix install test 2023-10-12 15:17:03 -07:00
Dylan Conway
691cf338c2 fix editing package json when adding github dependency (#6432)
* fix package name added to package json

* check for github tag

* remove alloc

* some tests

* fix test
2023-10-12 15:02:05 -07:00
Colin McDonnell
beb746e5ea Update installation.md 2023-10-12 14:12:53 -07:00
Colin McDonnell
89faee2522 Update installation.md 2023-10-12 13:43:45 -07:00
dave caruso
969da088f5 fix(install): re-evaluate overrides when removed 2023-10-12 02:03:02 -07:00
Luna
c50be68790 chore: add missing ending quote (#6436) 2023-10-12 01:00:27 -07:00
dave caruso
2fbb95142a feat(install): support npm overrides/yarn resolutions, one level deep only (#6435)
* disable zig fmt on generated ResolvedSourceTag.zig

* overrides

* it works

* ok

* a

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-10-12 00:44:15 -07:00
Dylan Conway
755e16d962 fix #6416 (#6430)
* make sure latest is checked after prerelease

* test and fix

* test for when latest matches prerelease
2023-10-11 20:41:12 -07:00
Jarred Sumner
b1063edf3e Bump WebKit 2023-10-11 20:04:15 -07:00
Jarred Sumner
edb4cbac2b Bump! 2023-10-11 19:05:52 -07:00
Dylan Conway
a59a69e21b Update JSCUSocketsLoopIntegration.cpp 2023-10-11 15:26:55 -07:00
Colin McDonnell
4c9e009971 Update installation.md 2023-10-11 14:31:39 -07:00
h2210316651
4531cf18c2 Docs : Added instructions to run bun apps in daemon (PM2) to address … (#5931)
* Docs : Added instructions to run bun apps in daemon (PM2) to address issue #4734

Added instructions to set bun as pm2 interpreter to extend same functionality as node.js apps.

* Add pm2 guide

* Add pm2 file

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-11 14:22:43 -07:00
Ashcon Partovi
31bda68f24 Update bun-release.yml 2023-10-11 12:05:16 -07:00
dave caruso
1bf28e0d77 feat(install): automatically migrate package-lock.json to bun.lockb (#6352)
* work so far

* stuff

* a

* basics work

* stuff

* yoo

* build lockfile

* correct

* f

* a

* install fixture havent tested

* i made it worse

* lol

* be more reasonable

* make the test easier to pass because bun install doesn't handle obscure lockfile edge cases :/

* a

* works now

* ok

* a

* a

* cool

* nah

* fix stuff

* l

* a

* idfk

* LAME

* prettier errors

* does this fix tests?

* Add more safety checks to Integrity

* Add another check

* More careful lifetime handling

* Fix linux debugger issue

* a

* tmp dir and snapshot test

---------

Co-authored-by: Jarred SUmner <jarred@jarredsumner.com>
2023-10-11 02:27:07 -07:00
Jarred Sumner
6a17ebe669 Update nodejs-apis.md 2023-10-11 01:59:56 -07:00
Arden Sinclair
39446ebdb8 Fix lifecycle scripts not running on reinstallation (#6376)
* Include trusted dependencies in lockfile

* Add a remote dependency to lifecycle script test
2023-10-10 21:13:42 -07:00
Elad Bezalel
c2c3b0d4a9 feat(test): implement toEqualIgnoringWhitespace (#6293)
* feat(test): implement `toEqualIgnoringWhitespace`

* equality check in matcher & incorrect arg error
2023-10-10 20:27:19 -07:00
saurabh
9a90d90966 fix: form data content type (#6380)
* fix: form data content type

* fix: condition if no extension for file
2023-10-10 20:08:32 -07:00
Dylan Conway
05781dd91e make peer dependencies install by default (#6396)
* peer dependencies

* default true

* add test

* cleanup

* some tests

* skip peer deps if they are non optional

* remove debug print, fix build

* iterate peer dependencies
2023-10-10 20:05:58 -07:00
Aaron Dewes
a6a474a83f Add File to binary data TOC (#6025) 2023-10-10 16:47:35 -07:00
cyfung1031
44dd744f0a docs: rearranged cli/runtime related sections (#6275)
* docs: rearranged cli/runtime related sections

* docs: update README.md for the updated docs path

* Updates

* Rearrange

* Rearrange

* Add files

* readme

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-10 16:34:35 -07:00
Ashcon Partovi
df4ec8aaad Update inspector-protocol 2023-10-10 16:14:46 -07:00
Ashcon Partovi
0348b169d6 Update debug-adapter-protocol 2023-10-10 16:14:46 -07:00
Vasilis Themelis
54dbf3ba21 Add missing ws declarations (#6307) 2023-10-10 15:39:20 -07:00
Clément P
5f09a4dd0a Update vite.md (#6399)
remove outdated information
2023-10-10 15:36:28 -07:00
Nicolae-Rares Ailincai
e58e85cd5c Documentation for the IPC of Bun.spawn (#6400)
* doc/ipc.md

* update/spawn.md

* improved-documentation-and-added-send-type

* Updates

* Updates

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-10-10 15:35:05 -07:00
Ciro Spaciari
6301778a58 fix(AbortSignal/fetch) fix AbortSignal.timeout, fetch lock behavior and fetch errors (#6390)
* fix abort signal and fetch error

* fix fetch error and lock behavior
2023-10-09 19:56:48 -07:00
Ashcon Partovi
3667b93871 Fix npm tag for canary bun-types, again 2023-10-09 12:14:26 -07:00
otterDeveloper
0a8aab6b23 Add Fedora build instructions to development.md (#6359) 2023-10-09 11:52:16 -07:00
babar
6a73f2b1e7 added commands (#6314)
added commands to install unzip package and to check Linux kernel version
2023-10-09 11:51:41 -07:00
TPLJ
99a78f8540 Update README.md (#6291)
fixed some minor documentation.
2023-10-09 11:50:08 -07:00
Michael Di Prisco
8d4b296bd2 docs: fixing a couple typos (#6331) 2023-10-09 11:48:07 -07:00
Liz
a9e1792607 fix: support uint8 exit code range (#6303)
The exit code support is between 0-255 and not only in the signed positive range
(0-127).
Node.js does not seam to throw on a bigger integer and just wraps around,
but throwing a error is a good approach and makes the behaviour more defined.

This allows the range to be 0-255

Fixes: https://github.com/oven-sh/bun/issues/6284
2023-10-09 11:47:38 -07:00
2hu
0965e6ddfd Fix array variables preview in debugger (#6379) 2023-10-09 11:47:00 -07:00
Ciro Spaciari
35109160ca feat(KeyObject) (#5940)
* oops

* createSecretKey but weird error

* use the right prototype, do not add a function called export lol

* HMAC JWT export + base64 fix

* Fix Equals, Fix Get KeySize, add complete export RSA

* fix RSA export

* add EC exports

* X25519 and ED25519 export + fixes

* fix default exports

* better asymmetricKeyType

* fix private exports

* fix symmetricKeySize

* createPublicKey validations + refactor

* jwt + der fixes

* oopsies

* add PEM into createPublicKey

* cleanup

* WIP

* bunch of fixes

* public from private + private OKP

* encrypted keys fixes

* oops

* fix clear tls error, add some support to jwk and other formats on publicEncrypt/publicDecrypt

* more fixes and tests working

* more fixes more tests

* more clear hmac errors

* more tests and fixes

* add generateKeyPair

* more tests passing, some skips

* fix EC key from private

* fix OKP JWK

* nodejs ignores ext and key_ops on KeyObject.exports

* add EC sign verify test

* some fixes

* add crypto.generateKeyPairSync(type, options)

* more fixes and more tests

* fix hmac tests

* jsonwebtoken tests

* oops

* oops2

* generated files

* revert package.json

* vm tests

* todos instead of failues

* toBunString -> toString

* undo simdutf

* improvements

* unlikely

* cleanup

* cleanup 2

* oops

* move _generateKeyPairSync checks to native
2023-10-07 15:22:45 -07:00
Jarred Sumner
bb9933fa7e Exclude more files 2023-10-07 14:15:53 -07:00
Jarred Sumner
673f6fc634 Exclude more files 2023-10-07 14:14:42 -07:00
Jarred Sumner
09663a5558 Update settings.json 2023-10-07 14:11:39 -07:00
Jarred Sumner
66b15a8df6 Update settings.json 2023-10-07 14:10:54 -07:00
Dylan Conway
96aa9c0a38 fix a couple install tests 2023-10-06 22:06:28 -07:00
Dylan Conway
46736d5ecb format 2023-10-06 22:02:55 -07:00
Jarred Sumner
25cf4016d3 Fix memory leak in fetch() (#6350)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-06 20:14:44 -07:00
Silver
48635fd910 [types] allow onLoad plugin callbacks to return undefined (#6346)
Returning undefined simply falls through to the next plugin, or to the default loader.
This is defined by esbuild, and supported by Bun, but the types don't reflect it properly.
2023-10-06 19:22:38 -07:00
Paul Nodet
456d6be022 docs: file.stream() is not a promise (#6337) 2023-10-06 03:26:42 -07:00
Colin McDonnell
16cf1fe5f3 Generate compat docs (wip) 2023-10-05 17:19:33 -07:00
Ai Hoshino
e0e9bc16bf fix(serve): fix close_connection behaviour in endWithoutBody (#6315)
Close: #6031
2023-10-05 20:43:58 -03:00
Filip Skokan
30b8993edd WebCryptoAPI: remove JWK "EdDSA" alg checks (#6294) 2023-10-05 20:43:42 -03:00
Justin "J.R." Hill
5c37d5293c test(bun install): cover http(s) non-github case (#6190) 2023-10-05 16:12:07 -07:00
Colin McDonnell
323ae0f2a3 Update Node.js compat docs (#6282)
* Update nodejs-apis

* No commas

* Updates
2023-10-05 16:03:21 -07:00
Jake Boone
7ef4cd26ac Use singular nouns when appropriate on install messages (#2543)
* Use singular nouns when appropriate on install messages

* Fix one more pluralization

* Fix bun-add tests for "1 package installed"

* Fix bun install/remove/update tests for "1 package installed"
2023-10-05 15:59:02 -07:00
Dylan Conway
df1b0c4332 fix printing latest available version 2023-10-05 11:30:52 -07:00
Dylan Conway
4a2e1574e4 fix semver and repository host bugs (#6312)
* releases before prereleases

* handle different repo hosts

* remove log

* Update bun-install.test.ts

* test for `bun add`

* gitlab test

* use comptime hash map, another test case

* don't need length

* bump timeout, use tld

* infer git dependencies for https and ssh
2023-10-04 22:46:21 -07:00
Dylan Conway
5a315f4df0 fix another os test failure 2023-10-04 22:45:11 -07:00
Dylan Conway
f0a914ea8d fix os test failure 2023-10-04 22:27:28 -07:00
Dylan Conway
d4a458a95b generated 2023-10-04 21:40:02 -07:00
Jarred Sumner
5c8233515a Fix query property of url object (#6274)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-04 21:31:29 -07:00
Gavin John
c5c7934ebc Update preload documentation to make applicability to plugins more obvious (#6298) 2023-10-04 21:29:54 -07:00
Jarred Sumner
b0ffe68675 Create AbortSignal without JS (#6278)
* Create `AbortSignal` without JS

* Don't leak

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-04 21:29:35 -07:00
Colin McDonnell
5da79a8366 Closes #6309 (#6310) 2023-10-04 21:28:23 -07:00
Jarred Sumner
ff88510e5f Bump! 2023-10-04 21:19:33 -07:00
Colin McDonnell
df9461ecc5 Update tsconfigs 2023-10-03 23:16:55 -07:00
Dylan Conway
98e9e9b112 Upgrade webkit (#6277)
* `reportExtraMemoryAllocated` parameters changed

* bump webkit

* Update Dockerfile

* format
2023-10-03 19:56:33 -07:00
Ashcon Partovi
9308e1bf09 Support bun run --if-present (#6248)
* Support --if-present
Closes #5670

* More robust tests, handle more cases
2023-10-03 17:39:45 -07:00
Andrey Smirnov
aa8ccce952 compat: Buffer: allow optional positional arguments to be undefined (#4911)
* fix `Buffer` compat with Node.js: compare

* fix `Buffer` compat with Node.js: copy
2023-10-03 15:30:04 -07:00
Dylan Conway
ffe6bb0b7f fix decorator tests 2023-10-03 13:50:36 -07:00
Ai Hoshino
b7982ac131 fix(blob): Add the current offset to the new blob. (#6259)
Close: #6252
2023-10-03 12:03:57 -07:00
Ashcon Partovi
60e7ae9aee Remove old package 2023-10-03 12:02:28 -07:00
Ashcon Partovi
86e4f72f00 Fix permissions for Github Actions 2023-10-03 12:02:15 -07:00
axel escalada
0ca9a7889a Fix bunx command for github package #5974 (#6042)
* fix bunx command for github package

* refactor fmt package to use it when the path is seted

* use labeled block to assign const instead of use 'undefined'
2023-10-03 11:49:24 -07:00
WingLim
476fa4deda feat(encoding): support BOM detection with test passed (#6074) 2023-10-03 10:28:59 -07:00
JS Park
4f1710d2d6 docs: update typescript.md (#6222)
Fix inconsistent results from `bun init`.
2023-10-03 09:12:37 -07:00
John Beene
1acc8191f5 Docs: Update context.md (#6256)
Use token from cookies, not from ws.data
2023-10-03 09:11:52 -07:00
Mathias Wulff
0ee04261b9 Add license information to package.json (#6255) 2023-10-03 09:11:02 -07:00
Dylan Conway
745b6b94ee Store workspace package versions (#6258)
* Store workspace package versions in the lockfile

* more logging

* wip

* keep information from workspace name array and cache

* hash key

* remove cache, compare workspaces with initially loaded

* uncomment sort

* remove comments

* remove allocation

* package json

* test `bun add <package>` without workspace prefix

* Update test/cli/install/bun-install.test.ts

Co-authored-by: Markus Staab <maggus.staab@googlemail.com>

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Markus Staab <maggus.staab@googlemail.com>
2023-10-03 02:17:21 -07:00
Colin McDonnell
47651f321a Update ws example 2023-10-02 19:02:27 -07:00
Jarred Sumner
b444c0b98d Set fetch timeout to 5 minutes (#6217)
* Increase timeouts

* Update uws.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-02 18:01:59 -07:00
Ashcon Partovi
15880308b7 Fix bun install reading Github API from wrong environment variable (#6247)
* Fix `bun install` reading Github API from wrong environment variable

* Update src/install/install.zig

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-10-02 18:00:17 -07:00
Jarred Sumner
89bb526e14 Warn at start when using AVX build of Bun without AVX support (#6242)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-02 17:59:38 -07:00
Colin McDonnell
63a00791fa Update development and document env var expansion 2023-10-02 17:52:29 -07:00
Cícero Santos
a6af1c89b9 Update development.md (#6221) 2023-10-02 15:18:55 -07:00
Colin McDonnell
08bf8b8ad1 Add Bun.TOML to types (#6161) 2023-10-02 15:18:29 -07:00
Colin McDonnell
0c3c57cc35 Add dns.reverse and dns.getServers to types 2023-10-02 14:11:55 -07:00
Ashcon Partovi
237a5ada47 Fix npm tag for canary bun-types 2023-10-02 13:56:14 -07:00
Corné Dorrestijn
0a2d490bf8 Added the fileExtensions field to file-system-router.md (#6231) 2023-10-02 02:42:17 -07:00
Jarred Sumner
ea956e58e9 more logging 2023-10-02 02:38:47 -07:00
Jarred Sumner
46b5069c40 Slightly reduce number of open file descriptors in bun install (#6219)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-10-01 16:55:05 -07:00
Ai Hoshino
f7618aba20 fix(node:process): fix return value of process.kill (#6207) 2023-10-01 12:55:38 -07:00
Jarred Sumner
e020ecec15 Fix bug causing "Connection Refused" errors (#6206)
* Loop through the return values of getaddrinfo

* Remove incorrect assertion

* Remove extra check

* Remove extra check

* Update bsd.c

* More consistent

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-30 22:59:42 -07:00
Jarred Sumner
8775d37559 Fix regression 2023-09-30 17:16:06 -07:00
Jarred Sumner
54d25b8f6b Update cp.test.ts 2023-09-30 17:09:27 -07:00
Jarred Sumner
960922bba9 Add title 2023-09-30 17:09:12 -07:00
Jarred Sumner
c21be13be4 tweak github actions (#6195)
* Discord comments

* better

* better

* actions

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-30 02:50:38 -07:00
Jarred Sumner
c0b758ad45 Bump 2023-09-29 23:44:57 -07:00
Jarred Sumner
d65fdb6035 Fix hang in bun install (#6192)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-29 20:45:51 -07:00
Jarred Sumner
a97847a494 Implement virtual module support in Bun.plugin (#6167)
* Add support for `build.module` in `Bun.plugin`

* Another test

* Update docs

* Update isBuiltinModule.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2023-09-29 16:34:20 -07:00
dave caruso
eddb0078b5 fix(runtime): followup for server.requestIP (#6185)
* fix(runtime): followup for `server.requestIP`

* oops

* yeah

* sure

* Update src/deps/libuwsockets.cpp

* Update Dockerfile

* lol

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-29 16:17:54 -07:00
Liz
fa7d7bd1e4 fix: don't set default request method when creating a Request (#6154)
In the case of creating a Request with the parameters `(Request, object)`,
there was a bug that method and headers are set from the default created by
the init rather then the already present value from the request param.
This is because for a to me unknown reason the order in which the parameters
are processed is reversed.

This fixes that by adding a check which stops the defaults from being set,
unless they are explicitly passed.

Fixes: https://github.com/oven-sh/bun/issues/6144
2023-09-29 16:13:49 -07:00
dave caruso
72bdd380af add Socket.prototype; lol (#5945) 2023-09-29 15:42:06 -07:00
dave caruso
10bee33909 fix(resolver): support encoded file urls (#5766)
* start working on this

* it works now

* better implementation imo

* yippee

* more tests and better unrefing

* fix leak?
2023-09-29 14:58:39 -07:00
dave caruso
6afa78120a feat(runtime): implement server.requestIp + node:http socket.address() (#6165)
* [server] requestIp and AnyRequestContext
Changed Request.uws_request to the new AnyRequestContext. This
allows grabbing the IP from a Request. Unfinished.

* [server] basic `requestIp` implementation

Currently using uws's requestIpAsText, which always returns a ipv6
string. We should return a `SocketAddress` object to the user instead,
which will contain the formatted address string and what type it is.
We'll have to use requestIpAsBinary and parse that ourselves.

* TypeScript docs, use `bun.String`, return `undefined` instead of `null`
if we can't get the ip.

* binary address formatting

* uws getRemoteAddress binding

* remove dead code

* working

* final touches

* I will abide by the results of this poll.

---------

Co-authored-by: Parzival-3141 <29632054+Parzival-3141@users.noreply.github.com>
2023-09-29 03:39:26 -07:00
Jarred Sumner
6514dcf4cb Fixes #6053 (#6162)
Fixes #6053

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-29 00:03:58 -07:00
Jarred Sumner
d3caf37b49 Upgrade to latest Node.js version (#6158)
* Upgrade to latest reported Node.js version

* Upgrade

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-28 23:20:26 -07:00
Devin Johw
315125c43a docs (runtime): the order of checking files when using bare impoort (#5919) 2023-09-28 22:13:52 -07:00
Dylan Conway
f6fbf86910 fix decorator tests 2023-09-28 19:18:36 -07:00
axel escalada
e1117c6ae5 Add local tarball install #5812 (#6118)
* check if the value passed for add command is a local tarball and install it, test for local tarball

* use bunExe()

* use absolute path to copy tarball

* fmt ts
2023-09-28 19:07:51 -07:00
Jarred Sumner
4bdec01619 Reduce memory usage of HTTP server (#6135)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-28 19:06:04 -07:00
dave caruso
2e8d9d4607 Revert WebKit submodule to where it should be 2023-09-28 18:01:14 -07:00
Colin McDonnell
640b0b4df9 Improve docs 2023-09-28 14:14:44 -07:00
Alba Silvente Fuentes
16be721d8a docs: update image astro.md (#6149) 2023-09-28 12:52:00 -07:00
Colin McDonnell
26794680dd Update prisma 2023-09-28 11:32:46 -07:00
Colin McDonnell
5fedc8bd6c Revert "Update prisma guide"
This reverts commit e62fef6765.
2023-09-28 11:31:47 -07:00
Colin McDonnell
e62fef6765 Update prisma guide 2023-09-28 11:27:08 -07:00
dave caruso
387f1260c9 Get Next.js Pages Router to work (#6095)
* hell

* make it so bun-debug-src

* teag

* wild

* yippee

* fas

* fix async hooks assertions

* yap

* yeah that's wild

* aa

* a

* increase time allowed

* so trivial
2023-09-28 03:53:24 -07:00
jhmaster
e60b3607c1 Complete rework of the majority of node:util, primarily util.inspect (#4493)
* 1st revision of new util.inspect impl. (not done)

* fix util.types.isArrayBuffer

* fix some utl tests and bugs

* fix node:tty missing primordials

* fix utl stackoverflow handling & some tests

* narrow down diff. context test

* util.inspect indirect circulars optimization

* temp workaround for buggy is...Function checks

* impl. Map/Set/Iterator entries inspection

* fix bigint & symbol objects inspection

* error inspection fixes

* misc util tests stuff

* inline getExternalValue stub

* leftovers

* util.inspect promise internals

* run bun fmt

* commit make js changes

* cut out unnecessary utl files

* reorganize utl folder structure

* remove browserify buffer check

* Try to revert git messing up uws somehow

This reverts commit 2c27e16e7d.

* commit src/js/out files again

* redo this edit too

* refresh js/out files

* Removed uws submodule

* tidy up

* unused primordials

* run fmt

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-09-27 23:51:49 -07:00
Dylan Conway
31d96a1b7f fix typescript metadata for import identifiers (#6130)
* handle import identifiers

* a test

* handle dot case
2023-09-27 23:37:53 -07:00
Dylan Conway
3ee09bfe79 update snapshots 2023-09-27 22:35:06 -07:00
jhmaster
3d37684253 deadCodeElimination toggle for Bun.Transpiler (#5932)
* add Bun.Transpiler DCE option

* mark DCE toggle experimental + tests

* full (hopefully) DCE toggle

* update DCE toggle tests

* add DCE option to types

* run fmt

* Removed uws submodule
2023-09-27 19:26:03 -07:00
Dylan Conway
06a82b7725 real fix was #5679 (#6123) 2023-09-27 19:23:28 -07:00
Justin "J.R." Hill
1d6d639352 fix(bun install): Handle vercel and github tarball path dependencies (#6122)
* fix(bun install): Handle vercel and github tarball path dependencies

* test(bun install): test tarball path with when

* Simplify github tarball detection

---------

Co-authored-by: bun <noreply@oven.sh>
2023-09-27 19:22:50 -07:00
Daniel Amemba
7cd1dc2817 Update run.md (#6099)
Changed the verb form from ignores to ignored.
2023-09-27 17:44:38 -07:00
Justin "J.R." Hill
57d1ae234c Update developer arch install steps for llvm and clang (#6120)
`llvm` and `clang` are both at v16

`llvm16` and `clang16` are AUR packages https://aur.archlinux.org/packages/llvm16 https://aur.archlinux.org/packages/clang16 and need extra steps to setup
2023-09-27 17:41:06 -07:00
Liz
8608b5286a fix: implement correct behaviour for urls with blob: scheme (#5825)
* fix: implement correct behaviour for urls with blob: scheme

Urls using the blob scheme can have special behaviour if their origin itself
is a url.
This fixes that by parsing the subdomain and if valid and the schemes(protocols)
are valid returns its origin.
Ive used node.js here a lot to make sure its behaviour is copied 1:1 and enabled
the automated tests for it.

Fixes https://github.com/oven-sh/bun/issues/5805

* fix: subUrl can be const, we are not modifying it

* style: add spaces after `if` keyword
2023-09-27 16:15:45 -07:00
Brennan Kinney
a5f76e690a fix: Docker - Apply workaround with RUN to symlink bunx (#6100)
Using `RUN --mount`, we can run the command with the build stage files overlayed for the `ln` and `which` commands.

`/bin` is a symlink to `/usr/bin`, both seem required to work correctly.
2023-09-27 09:49:33 -07:00
Ai Hoshino
a0081f9e29 fix(node:fs): fix fs.exists callback parameters (#6097)
Close: #6073
2023-09-27 03:40:45 -07:00
Dylan Conway
4d2b442a33 Update bun-install.test.ts 2023-09-26 22:19:33 -07:00
Dylan Conway
0268807be2 fix workspace dependency install (#6092)
* handle `*`

* test

* always use the package name

* more tests

* install dependency in each
2023-09-26 21:53:14 -07:00
Ashcon Partovi
f354a29683 Remove one of the tags 2023-09-26 20:07:27 -07:00
Ashcon Partovi
e5b62bf074 Fix docker tags 2023-09-26 20:01:39 -07:00
Ashcon Partovi
e05d190e6a Fix plain tag not releasing 2023-09-26 19:50:12 -07:00
Liz
d7b43f8ea1 fix: support console.dir options object correctly (#6059)
* fix: support console,dir options object correctly

`console.dir` can be passed a second argument which is a object of options.
This implements that logic with the currently supported properties: `depth`
and `colors`.
I used node as a reference for implementation details.

Fixes: https://github.com/oven-sh/bun/issues/6039

* style: format zig file

* fix: implement changes from review

Implements changes requested from review, like adding
more test cases and refactoring code style.
2023-09-26 19:47:37 -07:00
Ciro Spaciari
648d5aecf3 fix server end of stream, fix fetch not streaming without content-length or chunked encoding, fix case when stream do not return a promise on pull (#6086) 2023-09-26 19:31:20 -07:00
Ashcon Partovi
dc55492698 Add Docker section to docs 2023-09-26 19:30:00 -07:00
Ashcon Partovi
2b2927dedc Fix latest tag 2023-09-26 19:22:38 -07:00
Ashcon Partovi
500c52af62 Add is-latest flag to manual release 2023-09-26 19:18:24 -07:00
Ashcon Partovi
c1deec3c16 Use ln -s instead of ln due to image size 2023-09-26 19:05:39 -07:00
Ashcon Partovi
fbbf184b1d Fix homebrew 2023-09-26 18:57:32 -07:00
Ashcon Partovi
e127c520a9 Better bun-release workflow 2023-09-26 18:51:57 -07:00
Ashcon Partovi
80195557c9 Fix alpine image for arm64 2023-09-26 17:59:38 -07:00
Ashcon Partovi
9e26485b04 Fix docker release tag 2023-09-26 17:40:17 -07:00
Ashcon Partovi
5cf29df066 Fix debian-slim docker workflow 2023-09-26 17:12:26 -07:00
Ashcon Partovi
1bf36cf123 Fix github workflow permissions 2023-09-26 17:08:11 -07:00
Brennan Kinney
d060474f3a fix: Docker - Include bunx symlink in distroless variant (#6090) 2023-09-26 17:06:44 -07:00
Ashcon Partovi
fae646da3b Remove latest tag from canary Docker workflow 2023-09-26 16:38:44 -07:00
Ashcon Partovi
298515c368 Improve Docker images (#5771)
* Improve Docker images

* Add alpine and distroless images

* Update docker workflow
2023-09-26 16:35:12 -07:00
Alba Silvente Fuentes
2a14d9e5c9 Update astro.md to v3 (#6070) 2023-09-26 16:13:59 -07:00
0xflotus
549d01a4d6 docs: fixed small error (#6077) 2023-09-26 16:13:27 -07:00
Dylan Conway
aec0d35f9b no this value (#6063) 2023-09-25 23:27:55 -07:00
Colin McDonnell
b5c80d9476 Better typings for test.each() 2023-09-25 20:01:34 -07:00
Jarred Sumner
17fa9378e9 Drain microtasks at end of abort() if called into JS (#6036)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-25 16:09:37 -07:00
Jarred Sumner
6cde1d3b89 Add Module._extensions (#5998)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-25 16:09:09 -07:00
Jarred Sumner
6d842e7dcb Make error message for new URL(invalid) better (#6032)
* Make error message for `new URL(invalid)` better

Thanks to @karlcow https://github.com/WebKit/WebKit/pull/13802

* redact

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-25 16:07:33 -07:00
Colin McDonnell
9d9fcbbdeb Update docs 2023-09-25 15:22:12 -07:00
Vlad
cd09bb0e9b Add fs.statfs{Sync} to missing fs apis (#6030) 2023-09-25 10:55:55 -07:00
axel escalada
bbc70d2b73 Fix create command with template prefixed with @ char #6007 (#6013)
* fix create command with template prefixed with @ char

* add typescript test for create command

* format test
2023-09-25 05:22:47 -07:00
Ai Hoshino
3eca2c7fee fix c-string sentinel (#6026) 2023-09-25 05:19:33 -07:00
Jarred Sumner
af0cb893b5 Add microbenchmark for symbol-based private variables 2023-09-25 03:27:38 -07:00
Jarred Sumner
7027493196 Update nodejs-apis.md 2023-09-25 00:39:53 -07:00
Jarred Sumner
bd4523798f Clarify 2023-09-24 23:47:20 -07:00
Jarred Sumner
6326eb4246 Add buggy note 2023-09-24 21:28:33 -07:00
Jarred Sumner
96411580c1 Do not use removefileat() (#6001)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-24 18:27:55 -07:00
Jarred Sumner
3f463786a5 Correctly fix #5888 (#6000)
* Update our MultiArrayList

* More consistent CI

* Fix serialization issue

* Update bun.lockb

* Update bun.lockb

* fixup

* Fix `Bin{}`

* `bun update` should not cache the manifest

* Make bun install tests more consistent

* This differs by platform evidently

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-24 17:43:59 -07:00
Jeroen van Rensen
43f092807b Update writing.md - Remove duplicate code snippet (#5966) 2023-09-24 08:50:18 -07:00
cyfung1031
b8817ab188 Update README.md (#5989) 2023-09-24 08:49:57 -07:00
asrar
ef7f679edf Fix link to vitejs (#5959) 2023-09-24 08:49:14 -07:00
Jarred Sumner
57010cc448 Avoid using std.net.Address.parse (#5950)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-24 03:17:19 -07:00
Jarred Sumner
b6a4161cc5 Fixes #5985 (#5986)
* Fixes #5985

* Update confirm-fixture.js

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-24 03:16:51 -07:00
Ai Hoshino
a5908e9f27 fix(lockfile): ensure all bytes of union are initialized before serialization. (#5957) 2023-09-23 20:09:45 -07:00
Moritz Eck
72f9017b21 docs: update link to templates in remix guide (#5965) 2023-09-23 09:56:37 -07:00
Sony AK
93f1d91083 Update installation.md (#5968)
* Update installation.md

Adding notes for users that currently use canary version and want to  switch back to stable version.

* Upadte

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-23 09:56:03 -07:00
Jarred Sumner
ec0e931e9f Bump! 2023-09-22 21:26:59 -07:00
Jarred Sumner
a229cfd3c6 Make this function inline 2023-09-22 21:26:35 -07:00
Dylan Conway
966b636e5d isBinary (#5944) 2023-09-22 19:48:36 -07:00
Dylan Conway
ee93f1b88c [install] fix GitHub dependency bugs (#5941)
* handle branches with slashes

* handle empty repo string
2023-09-22 18:41:55 -07:00
Colin McDonnell
ffd21e98e7 Remove bun dev stuff from create_command (#5939) 2023-09-22 18:41:05 -07:00
Kilian von Pflugk
a3db02832e use the correct channel name for feedback (#5899) 2023-09-22 18:40:37 -07:00
Ai Hoshino
1445775d64 fix(runtime): exclude unevaluated module in require.cache (#5903)
Close: #5898
2023-09-22 18:40:06 -07:00
Colin McDonnell
feefaf00d7 Update workspaces.md 2023-09-22 16:42:23 -07:00
dave caruso
25e69c71e7 Implement module.parent (#5889)
* Make module.parent work

* yay

* oops

* yay
2023-09-21 22:09:55 -07:00
Dylan Conway
9d5459221f fix #5865 (#5890)
* make sure types are the same

* tests
2023-09-21 21:02:34 -07:00
dave caruso
341c1c1804 disable child_process execArgv + fix crash in cli parsing (#5843)
* stuff

* stuff

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-21 20:37:32 -07:00
Colin McDonnell
b218c40a5d Hide env elapsed time when loglevel=info (#5882)
* Hide env elapsed time when loglevel=info

* Updates

* Update

* Fix test
2023-09-21 20:07:25 -07:00
Dylan Conway
09d6e8553b ref and deinit (#5883)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-21 20:02:51 -07:00
Imamuzzaki Abu Salam
0502c134e8 docs: add await to all Bun.build() call (#5885) 2023-09-21 19:08:57 -07:00
Jarred Sumner
e34ff61339 Don't use arena in node:fs (#5863)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-21 18:59:01 -07:00
Igor Shapiro
8684a59029 chore(git): ignore .envrc file (#5873) 2023-09-21 18:44:59 -07:00
Liz
b297fabd17 fix: correctly pass the encrypted(bool) property on "Socket" for express.js (#5878)
* fix: correctly pass the encrypted property on "Socket" for express.js

Express relies on this for setting the requests protocol.
Since this is on a dummy object, a property is simply set with the actual value.
Which seams okay as a workaround.

* chore: add generated files

* chore: add test

* refactor: set property directly rather then through a getter
2023-09-21 18:44:05 -07:00
dave caruso
b05e10cd8b fix(node:fs): use the right copyFile constants (#5874) 2023-09-21 18:42:49 -07:00
Ai Hoshino
92a5d845ae chore: Update ZSH completions (#4428) 2023-09-21 17:43:01 -07:00
Colin McDonnell
030407c52e Update completions list 2023-09-21 17:32:19 -07:00
Colin McDonnell
cfc56dafeb Update install docs 2023-09-21 15:17:16 -07:00
Colin McDonnell
b011f94250 Update test script 2023-09-21 12:55:27 -07:00
Colin McDonnell
66cdb077ad Add docs for extending process.env 2023-09-21 12:35:41 -07:00
Dylan Conway
4a1573e007 decorator metadata defaults and rest args 2023-09-21 12:20:53 -07:00
Jarred Sumner
0b4a34bbd6 Fix test failures (#5862)
* Fix test failures

* Fixes #5851

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-21 07:56:44 -07:00
Jarred Sumner
d1e9b33cac On Linux, respect memory limit from cgroups (#5849)
* Implement `process.constrainedMemory()`

* Add a comment

* Handle max

* Missing header

* We can use WTF::ramSize now

* Update WebKit

* Update ZigGlobalObject.cpp

* WebKit

* ✂️

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-21 07:25:18 -07:00
Jarred Sumner
abfc10afeb Revert "feat(encoding): support BOM detection (#5550)"
This reverts commit 5f66b4e729.

This caused test failures in text-encoder. cc @WingLim
2023-09-21 07:10:07 -07:00
Jarred Sumner
a18ef053a4 Don't await plugins 2023-09-21 06:16:31 -07:00
Jarred Sumner
6abc9af472 Add another test 2023-09-21 06:04:58 -07:00
Jarred Sumner
e1cf08b3a6 Fixes #5859 2023-09-21 05:48:40 -07:00
Jarred Sumner
28f3453466 Regenerate builtins 2023-09-21 02:59:50 -07:00
Aaron Dewes
9c45487763 Fix make jsc on Linux (#4779)
* Fix `make jsc` on Linux

Previously, it failed with `/usr/bin/bash: Line 3: -DUSE_BUN_JSC_ADDITIONS=ON: Command not found`.

* Update Makefile

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-21 02:10:54 -07:00
Jarred Sumner
01d2cb5d98 Prettier 2023-09-21 00:51:48 -07:00
Liz
2664dfad9b fix: add check to sqlite extension loading logic (#5773)
The sqlite3 logic to dynamically load extensions can be disabled to save space,
which macos does by default.
sqlite3 provides a api to check for these compile time settings at runtime,
we can use that to throw a js error rather then crashing.
It is worth noting though that the api to check for these settings at runtime
itself can be disabled through SQLITE_OMIT_COMPILEOPTION_DIAGS but this seams
to be a edge case.
2023-09-20 23:43:21 -07:00
Jibran Kalia
e0c5debc57 fix(console.log): change default depth from 8 to 2 (#5839)
This make it as the same default depth in Node.
Source: 480ab8c3a4/doc/api/console.md (L285)
2023-09-20 23:42:44 -07:00
Jarred Sumner
e160223627 In http client, use .toOwnedSlice() instead of potentially re-using the WTFString here 2023-09-20 23:40:42 -07:00
Ai Hoshino
b00588e98c fix(fetch): fix redirect in relative path location. (#5781)
* fix(fetch): fix redirect in relative path location.

* fix utf-8 encoding

* use server.reload

* check buf size

* add RedirectURLTooLong test
2023-09-20 23:34:00 -07:00
dave caruso
ac19c7c62e remove /test.js and git ignore it - sorry 2023-09-20 20:30:15 -07:00
saurabh
539eec85db docs(project): development fix Arch install-dependencies command (#5270)
sudo is required to run pacman if not root user
2023-09-20 20:11:13 -07:00
dave caruso
b7951511a3 fix(run): interpret extensionless files as typescript (#5711)
* test

* gadsgsagdsa

* add better err msg

* r

* oops

* ok
2023-09-20 19:48:46 -07:00
Ciro Spaciari
b65862e23b fix(ffi) fix size limit for dlopen (#5516)
* fix size limit

* 63

* throw error

* ffi.test.js

* add macos tests

* oops
2023-09-20 18:50:10 -07:00
WingLim
5f66b4e729 feat(encoding): support BOM detection (#5550)
* fix(encoding): export `getIgnoreBOM`

* feat(encoding): support ignoreBOM

* fix(encoding): not replace BOM to 0xFFFD

* chore: use strict equal
2023-09-20 18:44:05 -07:00
Ai Hoshino
7319142fd8 feat(node:dns): implement dns.lookupService (#5613)
* feat(node:dns): implement dns.lookupService
Close: #4347

* fix flags

* add `getSockaddr`

* fix sockaddr size

* flaky test
2023-09-20 18:43:08 -07:00
dave caruso
365fc0d39d implement Module.prototype._compile (#5840) 2023-09-20 18:31:57 -07:00
dave caruso
34d191be67 feat(runtime): implement console._stdout (#5842)
* implement console._stdout

* nonenum
2023-09-20 18:28:07 -07:00
Colin McDonnell
5c6d7760a5 Improve types for test.each, describe.each (#5838)
* Improve types for each

* more

* remove
2023-09-20 17:43:08 -07:00
Ashcon Partovi
3c7b9353e1 Fix rendering of bun.lockb in vscode extension 2023-09-20 17:39:33 -07:00
Ashcon Partovi
64a717ab33 Run bun fmt 2023-09-20 17:24:09 -07:00
Colin McDonnell
bbff5b7735 Update quickstart 2023-09-20 16:32:51 -07:00
Colin McDonnell
2e06dbaffe Update prisma guide 2023-09-20 15:42:03 -07:00
Colin McDonnell
19151bb1d2 Update env doc 2023-09-20 13:04:03 -07:00
Colin McDonnell
f8343f25b8 Clarify hot mode 2023-09-20 13:04:02 -07:00
Jonah Snider
67defd95af [bun install] Add -E as alias of --exact (#5104)
* [bun install] Add `-E` as alias of `--exact`

* Add test for -E flag
2023-09-20 11:14:55 -07:00
Lucas Coratger
aa3355dc82 feat: switch disableTelemetry to bunfig (#5690)
* feat: switch disableTelemetry to bunfig

* feat: zig fmt

* revert: the env variable and invert the logic of telemetry

---------

Co-authored-by: MrPalixir <73360179+MrPalixir@users.noreply.github.com>
2023-09-20 10:13:31 -07:00
LongYinan
8c612adcdb Treat undefined value as empty in expect.toThrow (#5788)
Fix: https://github.com/napi-rs/napi-rs/blob/main/examples/napi/__tests__/test.framework.js#L16-L19
2023-09-20 10:11:41 -07:00
JeremyFunk
711a2bcdd1 Fix various bugs in vscode extension (#5772)
* Fix bugs

* Fix bugs

* Revert "Fix bugs"

This reverts commit 608639eb22.
2023-09-20 10:09:51 -07:00
Dylan Conway
689b28455c add emitDecoratorMetadata (#5777)
* some progess

* needs more tests

* make tests easier to debug

* get metadata for constructor arg decorators

* fix some things

* merge `emitDecoratorMetadata` option

* remove `^`

* bundler tests and get option from tsconfig earlier

* remove spaces

* fix tests
2023-09-20 08:10:03 -07:00
Ai Hoshino
4439f16155 fix(doc): correct server.reload (#5799) 2023-09-20 08:08:11 -07:00
Jarred Sumner
ff7f642099 Call Error.prepareStackTrace on new Error().stack (#5802)
* Always call `Error.prepareStackTrace`

* Support node:vm

* Remove this

* Handle more cases

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-20 05:52:59 -07:00
Jarred Sumner
1456c72648 Fixes #5800
Fixes #5800
2023-09-20 04:33:38 -07:00
Jarred Sumner
5d09a06100 Fix path used in bunx (#5785)
* Fix path used in bunx

* Add test

* Use a different package

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-20 01:00:29 -07:00
ggobbe
4a0eb19038 Fix RedirectURLTooLong errors (#5786)
The URL to download the manifest for Artifact Registry in Google
is larger than 4092 bytes.

cf. issue #4748
2023-09-20 00:18:47 -07:00
Jarred Sumner
edee1e3d04 Show when a newer version is available in the install screen (#5780)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-19 23:03:11 -07:00
Colin McDonnell
e2fb524993 Fix broken links 2023-09-19 22:42:54 -07:00
Sanyam Kamat
ee33d5ced4 docs: add Qwik guide (#4810) 2023-09-19 21:54:45 -07:00
h2210316651
53fd9ff4bf Updated modules.md to address issue #5420 (#5456)
* Update modules.md

Updated docs to address `The ES modules aren't always asynchronous. #5420` Issue. 
- Included an elaborate explanation citing the difference between CommonJS and ES Modules, 
- Added a summary

* Tweaks

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-19 21:39:22 -07:00
Ahmad Addel
e3558b626c add warning to Ensure correct placement of the '--watch' flag (#5447)
* Update run.md

* remove the wrong command example

* Tweak

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-19 21:34:26 -07:00
Jarred Sumner
5defdf3e28 Fixes #5769 (#5775)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-19 18:16:51 -07:00
Ciro Spaciari
f8d7f50cdb some fix (#5762) 2023-09-19 17:20:50 -07:00
WingLim
ddb1189b2d fix(cli): bun pm cache rm command not work (#4571)
* fix(cli): rm arg is in positionals[1]

* chore(cli): add cache remove test

* chore: remvoe unnecessary join

* chore: run formatter

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-09-19 16:54:54 -07:00
Colin McDonnell
4fce34854b Doc updates (#5759)
* WIP

* WIP
2023-09-19 16:31:38 -07:00
Colin McDonnell
615beee1ae More improvements to azure guide 2023-09-19 13:48:59 -07:00
Colin McDonnell
ef98a1b761 Improve formatting again 2023-09-19 13:38:00 -07:00
sum117
8709fd7855 docs(development): typo which would lead to wrong llvm installation (#5513) 2023-09-19 13:35:37 -07:00
Colin McDonnell
ebc7b037ed Update azure guide 2023-09-19 13:31:31 -07:00
Weyert de Boer
f4e7f6db7c docs: update node compability (#5562) 2023-09-19 13:26:50 -07:00
Kilian von Pflugk
f6eaf4bc78 remind users of the latest version (#5597)
Reduce Bug reports for fixed issues.
2023-09-19 13:26:23 -07:00
Andrey Gurtovoy
fc14902f73 Added react installation to react.md (#5620)
* Update react.md

Added install react part

* Updates

* Updates

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-19 13:25:13 -07:00
Brooks Lybrand
d362a8b9ec docs: Update Remix guide (#5702)
* Update Remix guide

* Update callout

* Update docs/guides/ecosystem/remix.md

Co-authored-by: Michael Jackson <michael@jackson.us>

* update

* Add link to remix

---------

Co-authored-by: Michael Jackson <michael@jackson.us>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-19 12:39:23 -07:00
Jarred Sumner
8677ae9fb1 Get artifactory to work (#5744)
* Get artifactory to work

* Cleanup url normalization a ltitle more

* Clean up tests

* prettier

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-19 08:01:47 -07:00
Jarred Sumner
66d490d109 Align fetch() redirect behavior with spec (#5729)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-19 05:51:05 -07:00
Jarred Sumner
19fc8ecba2 Fixes #3712 (#5730)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-19 05:50:23 -07:00
Jarred Sumner
ed9e64805f Delete long-broken package which is causing confusion 2023-09-19 04:33:58 -07:00
Jarred Sumner
8ca691693f Delete extremely out of date docs 2023-09-19 04:32:45 -07:00
Jarred Sumner
4b5dcc8a6a Make bun install --verbose more verbose (#5726)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-19 03:58:55 -07:00
Jarred Sumner
d2328285f9 Update azure-artifacts.md 2023-09-19 00:13:52 -07:00
Jarred Sumner
346f8e9c94 Update azure-artifacts.md 2023-09-18 23:52:42 -07:00
Jarred Sumner
b34da183bd Update azure-artifacts.md 2023-09-18 23:50:37 -07:00
Jarred Sumner
db1263662c Update azure-artifacts.md 2023-09-18 23:49:42 -07:00
Jarred Sumner
63afadcb91 Update azure-artifacts.md 2023-09-18 23:46:42 -07:00
Jarred Sumner
8b690aaf0d Update azure-artifacts.md 2023-09-18 23:43:06 -07:00
Jarred Sumner
9b7fb8b0f3 Update azure-artifacts.md 2023-09-18 23:42:34 -07:00
Jarred Sumner
cc54b62fac Encode slashes in package names in the registry manifest request (#5716)
* Encode slashes in package names in the registry manifest request

Co-Authored-By: Max Brosnahan <1177034+gingermusketeer@users.noreply.github.com>

* Update dummy.registry.ts

* Fix tests

* Add guide for Azure Artifacts

* Update azure-artifacts.md

* Update azure-artifacts.md

* Typo

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Max Brosnahan <1177034+gingermusketeer@users.noreply.github.com>
2023-09-18 23:27:02 -07:00
Jarred Sumner
9d3f60d44e Prettier 2023-09-18 21:30:17 -07:00
Rui He
b453ec38d6 add navigator type definition (#5444) 2023-09-18 20:23:18 -07:00
Julian
1b949d4f5a bun run fix missing script error on empty file (#5025)
* Fix empty file not found bug

* Add tests

* fix test

---------

Co-authored-by: Jeremy Funk <jeremy@kombo.dev>
Co-authored-by: dave caruso <me@paperdave.net>
2023-09-18 20:14:32 -07:00
Liz
0647216687 fix: provide empty string to 0 length process environment variables (#5679)
* fix: provide empty string to len 0 process env vars

For process loaded env vars, its a bug to give them the literal value '""'
if the provided length is 0.

* fix: add test and remove unneeded branch

Removes the redundant branch for empty env vars and adds a test for the
process specific case.

* fix: remove empty_string_value

Removes the constant in favor of using the empty values or passing the
literal "".

* style: format env.test.ts
2023-09-18 18:14:29 -07:00
Nithin K Joy
6df837cff1 updated llvm version from 15 to 16 in makefile (#5696) 2023-09-18 17:34:57 -07:00
Liz
c55b2c56a4 fix: remove unneeded branch in toJSONWithBytes (#5684)
This branch resulted in the same the same statement so having the branch,
is not needed
2023-09-18 17:34:39 -07:00
dave caruso
eb1dc7eede fix(runtime/node): Allow new Buffer.alloc() + Upgrade WebKit (#5699)
* make bufferconstructor a static hash table

* chore: Upgrade WebKit to 4d995edbc44062b251be638818edcd88d7d14dd7

* make it constructable now

* fix comment

* yippee

* update CI workflows
2023-09-18 17:33:58 -07:00
Jarred Sumner
79dd196edd Implement node_api_create_external_string_latin1 and node_api_create_external_string_utf16 (#5675)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-18 17:31:26 -07:00
dave caruso
333e217c32 feat(runtime): Implement console.Console (#5448)
* prototype

* asdfg

* It works!

* okay its done now fr

* self review

* ok

* fix

* fix test

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-18 16:29:56 -07:00
dave caruso
f77df12894 Fix HTTP listen behavior being non-compliant with node (#5689)
* Fix HTTP listen behavior being non-compliant with node

* Add error code for address in use

* use SystemError

---------

Co-authored-by: SuperAuguste <19855629+SuperAuguste@users.noreply.github.com>
2023-09-18 14:57:48 -07:00
Hamed Zakery Miab
8f8ab301b4 change circles for color-blinds (#5594) 2023-09-18 10:31:53 -07:00
Kilian von Pflugk
0800f7017c docs: add missing options from bun init (#5638) 2023-09-18 10:28:57 -07:00
Rauny
8c1c2a0d9d fix(docs): update formatting (#5685) 2023-09-18 10:26:25 -07:00
Ai Hoshino
bab9889601 fix(config): support for registry url without trailing slash (#5662)
* fix(config): support for registry URLs without trailing slash
Close: #4589, #5368

* Update src/bunfig.zig

* Update src/bunfig.zig

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-18 04:32:02 -07:00
Jarred Sumner
b27b04690b In bun:sqlite, make sure we set the number tag correctly when creating the JSValue (#5655)
* Make sure we set the number tag correctly when returning values from SQLite

* Add DOMJIT test

* Update JSSQLStatement.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-18 03:01:19 -07:00
WingLim
c7de270bbb feat(test): Implement arrayContaining (#5572)
* feat(test): implement `arrayContaining`

* feat: early return when expectedArray is empty

* feat: add test for toEqual

* chore: use `JSC::isArray`

* chore: use getIndex for performance

* fix: use deepEqual

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-18 02:59:09 -07:00
Jibran Kalia
c66d4a724b feat(console.log): Print annonymus when class name is unknown (#5595)
This matches the functionality in Node.
2023-09-18 00:33:07 -07:00
Reagan
9acc081c3a Remove hardcoded references to zig in Makefile (#5660) 2023-09-18 00:32:20 -07:00
Jarred Sumner
630bbfca91 Add a way to disable the GC timer (#5656)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-18 00:11:18 -07:00
Jarred Sumner
57e38e8312 Fix assertion failure in debug builds 2023-09-17 19:41:51 -07:00
Jarred Sumner
ffa88a1f81 Fix make headers 2023-09-17 19:41:33 -07:00
Quentin
2a6fdc2298 Fix a 'app.server' is possibly 'null'. error (#5626) 2023-09-17 18:18:18 -07:00
Jarred Sumner
bca88b67e3 Workaround #5604 (#5615)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-17 17:38:03 -07:00
Cilooth
c6899940ab Added .DS_Store to gitignore-for-init (#5628) 2023-09-17 17:34:35 -07:00
Shinichi Katayama
639a12f59f Fix ZLS commit hash in the document (#5510)
* Fix ZLS commit hash in the document

* Remove ZLS section from the doc
2023-09-17 09:13:30 -07:00
pan93412
25aa51dfc4 fix(install): Return NotSupported when errno == XDEV (#5610) 2023-09-17 09:09:57 -07:00
JeremyFunk
c6b25adeea Implement VSCode tasks for bun (#5529)
* Fix VSCode extension configuration documentation

* Fix config descriptions

* Fix typo

* Implement bun.lockb highlighter

* Update style

* Improve styling

* Revert bunlock change

* Implement bun tasks

* Revert change

* Package json codelens

* Fixes

* Refactor
2023-09-17 08:59:01 -07:00
Jarred Sumner
0404d09cc7 Bump minimum macOS version 2023-09-16 23:45:09 -07:00
Jarred Sumner
f5b37fa0b0 Use a better error label 2023-09-16 22:53:23 -07:00
Ciro Spaciari
4e0c589562 fix(child_process) unref next tick so exit/close event can be fired before application exits (#5481)
* unref next tick so exit callback can be called

* fmt + test

* oops

* add ref_count

* update pending

* comment and fix
2023-09-16 22:44:13 -07:00
WingLim
a098c6e5f6 feat(encoding): TextDecoder support undefined (#5387)
* feat(encoding): TextDecoder support undefined

* chore: format test file
2023-09-16 22:41:52 -07:00
Ciro Spaciari
383d5b55d6 fix(fetch) handle 100 continue (#5496)
* handle 100 continue

* move comment

* cleanup

* fmt
2023-09-16 21:55:41 -07:00
Ethan Steere
80e1f32ca1 Update tsconfig-paths.md (#5593)
Change string:string mapping in the docs to match the expected string:array[string] mapping. 

See: https://www.typescriptlang.org/tsconfig#paths
2023-09-16 21:44:02 -07:00
Vilsol
eca93d4257 docs: fix typo in lockflie nav (#5576)
Looks like someone shifted their hand a bit to the right.

Changes `ytrr` to `tree`
2023-09-16 21:43:43 -07:00
Jarred Sumner
77781e2fa1 Make this error message clearer (#5603)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-16 21:32:52 -07:00
MrPalixir
0a318ecca1 fix: node compatibility with empty path string (#4693)
Co-authored-by: MrPalixir <73360179+MrPalixir@users.noreply.github.com>
2023-09-16 18:51:18 -07:00
Max Karou
08426962fa fix: failing array-buffer.test-d.ts test (#5580) 2023-09-16 12:07:01 -07:00
Max Karou
7f45866d76 fix: ArrayBufferConstructor type signature (#5579) 2023-09-16 11:19:36 -07:00
Bruce Denham
5e6490d905 Update workspaces.md to reflect "workspace:*" syntax (#5555) 2023-09-16 10:21:42 -07:00
Dylan Conway
b651b16fdd webkit upgrade (#5535)
* update files

* Update cold-jsc-start.cpp

* bump webkit
2023-09-16 00:44:07 -07:00
Dylan Conway
caa192480c mark binding 2023-09-15 23:39:36 -07:00
Jarred Sumner
6d8056554e Update build-id 2023-09-15 22:22:39 -07:00
David Hewitt
43c463f078 fix(node/fs.watch): Check first char before trimming event filenames (#5505)
* Add failing test

* fix(node/fs.watch): Don't lose first char in event

* run prettier
2023-09-15 21:21:15 -07:00
David Hewitt
787281ee5e fix(bundler): Add a space before minified require (#5521)
Fixes #5501
2023-09-15 21:19:49 -07:00
Ciro Spaciari
cb057e61ba fix(request) handle undefined/null/empty signal on request (#5503)
* handle undefined/null/empty signal on request

* better approach
2023-09-15 21:19:26 -07:00
Ciro Spaciari
b54e3f3c04 fix(corking) uncork if needed (#5525)
* fix size limit

* uncork if needed instead of terminating

* undo unrelated changes
2023-09-15 21:18:57 -07:00
Sony AK
7f2e40af46 Update development.md (#5531)
Fix to version 16 on docs
2023-09-15 20:28:52 -07:00
Dylan Conway
d976b22c95 Update InternalModuleRegistryConstants.h 2023-09-15 16:00:59 -07:00
Zong
575a85a3fd docs(runtime): fix some typo. (#5451) 2023-09-15 14:10:04 -07:00
JeremyFunk
8eabb4d1d5 Improve rending of lockfiles in VSCode extension (#4652)
* Fix VSCode extension configuration documentation

* Fix config descriptions

* Fix typo

* Implement bun.lockb highlighter

* Update style

* Improve styling

* Revert bunlock change
2023-09-15 13:25:44 -07:00
Jarred Sumner
99a92465f3 Add Permission 2023-09-15 09:54:58 -07:00
Jarred Sumner
37edd5a6e3 Add missing visitors
cc @paperdave
2023-09-15 08:24:35 -07:00
dave caruso
29b22175bf feat(runtime): add process.binding uv/natives/config + make global object properties lazy (#5355)
* binding uv

* we did that

* some more bindings

* fix doc

* fix uv

* yo

* static hash table nonsense <3

* huge refactor to the global object i am not ready for merge conflicts

* it works part 3

* lose

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-15 08:22:06 -07:00
Jarred Sumner
75697890ce Rename this file 2023-09-15 07:10:30 -07:00
Jarred Sumner
7662f99ee0 Update README.md 2023-09-15 07:09:48 -07:00
Jarred Sumner
1e99419127 Set permissions 2023-09-15 07:09:06 -07:00
Jarred Sumner
cd1846a414 Update build-id 2023-09-15 07:04:38 -07:00
Jarred Sumner
a39b0d86a0 Fixes #5465 (#5468)
* Fixes #5465

Fixes #5465

* Update tty.js

* Update InternalModuleRegistryConstants.h

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-15 06:53:39 -07:00
Jarred Sumner
6cc5872765 Fixes #5461 (#5467)
* Fixes #5461

* Update runtime-transpiler.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-15 06:04:34 -07:00
Jarred Sumner
898962770e Implement URL.canParse (#5463)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-15 05:36:06 -07:00
Ai Hoshino
7d0db82bb3 fix(proxy): allow empty string http_proxy env. (#5464)
Close: #5380
2023-09-15 05:24:03 -07:00
Jarred Sumner
4b00144211 Revert "decode regex if needed (#5167)"
This reverts commit 32664df254.
2023-09-15 05:07:22 -07:00
Jarred Sumner
92f2d9ab27 Does not fix #4622 (#5452)
* Fixes #4622

* cleanup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-15 04:23:37 -07:00
Jarred Sumner
56c471a005 Make bun run --silent omit "error: "..." exited with code 1 (#5459)
* Make --silent behave as expected

* Make the "tsconfig.json extends" error a debug level

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-15 04:21:43 -07:00
Jarred Sumner
20f61b2369 Fix test 2023-09-15 04:10:05 -07:00
Jarred Sumner
9168be4f15 Add missing "size" getter to URLSearchParams prototype 2023-09-15 03:50:03 -07:00
Dylan Conway
d26addeca1 dup and close file descriptors (#5341)
* track one shot fds

* dup fd

* skip for rearm on mac

* dup if fd

* cleanup

* force unregister on close

* deinitForceUnregister

* test

* add prompts

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-15 01:39:42 -07:00
Dylan Conway
f84fbd6e3e remove convertToASCIILowercase 2023-09-15 00:45:47 -07:00
Jarred Sumner
f2a8575e4d Reduce log level for loading tsconfig.json extends message 2023-09-15 00:15:22 -07:00
Dylan Conway
29a6ece6c6 next bun.lockb 2023-09-15 00:03:21 -07:00
Dylan Conway
9c44ec1b0d next 2023-09-15 00:02:39 -07:00
Sony AK
819a1fde28 Update docs/quickstart.md (#5425)
* Update quickstart.md

Update quickstart.md

* Update quickstart.md

Update quickstart.md
2023-09-15 00:01:05 -07:00
Colin McDonnell
31fec8f704 Clean up run.md 2023-09-14 23:44:19 -07:00
Jarred Sumner
c5e8271cdc [build] --force on git submodule update 2023-09-14 23:27:37 -07:00
Ciro Spaciari
da7db2230f fix(nitro) fix sourcemaps and JSSink closing (#5422)
* fix JSSink progress on sourcemap checking

* fix sourcemaps

* update JSSink fix

* undo + tests

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-14 23:25:01 -07:00
Dylan Conway
94e9f8bdca fix http set cookie headers (#5428)
* allow multiple set-cookie values

* make it work for `getHeader`

* move `getHeader` to cpp

* remove set-cookie check

* move `setHeader` to cpp

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-14 23:03:20 -07:00
Jarred Sumner
2e6898470e fix dockerfile (#5439)
* fixup docker

* Update Dockerfile

* Update Dockerfile

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-14 22:23:10 -07:00
Dylan Conway
d606958f11 thread 2023-09-14 21:43:58 -07:00
Jarred Sumner
ced69d3818 async-ify all node:fs functions (#5360)
* async all node:fs functions

* draw the rest of the owl

* LLVM & Clang 16

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-14 21:26:37 -07:00
Colin McDonnell
b262b0153a Clean up bunfig.md 2023-09-14 21:25:57 -07:00
Colin McDonnell
75e68e356b Mention dotenv 2023-09-14 21:09:14 -07:00
Colin McDonnell
31691e3898 Fix links 2023-09-14 21:02:52 -07:00
Colin McDonnell
332141a6f2 Rework bunfig docs 2023-09-14 20:54:53 -07:00
Dylan Conway
308237752a v8 date parser tests (#5332)
* Create v8-date-parser.test.js

* one more test

* add permalinks and enable parser in bun

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-14 19:43:11 -07:00
dave caruso
e8d58f24af fix(runtime): emit node:net connect error event vs throw (#5336)
* fix(runtime): emit `node:net` connect error event vs throw

* oops

* finally

* ok

* we are good
2023-09-14 17:30:30 -07:00
Colin McDonnell
07b10bbc16 Clean up trustedDependencies guide 2023-09-14 17:28:11 -07:00
Dylan Conway
969b0cf539 remove tsconfig warning 2023-09-14 17:10:32 -07:00
Nang Chan
23b1276ee2 fix warnings during bun run publish-layer (#5419)
- add missing package @oclif/plugin-plugins to resolved warning: could not find package.json with { type: 'dev',
2023-09-14 15:47:44 -07:00
Colin McDonnell
a983ec713f Improve run.md 2023-09-14 15:30:14 -07:00
DuGlaser
a31d69bf93 fix(docs): Fix the text that bun run --bun is the same as bun (#4647)
* fix(docs): Fix the text that `bun run --bun` is the same as `bun`

* Updates

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-14 15:19:37 -07:00
Dylan Greene
f3fe4508ae docs - Add "workspace:*" to workspace docs. (#5379)
* add workspace:* to docs

* Updates

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-14 15:04:26 -07:00
Colin McDonnell
96a1d5382f Improve docs 2023-09-14 14:51:42 -07:00
Dylan Conway
e923e23270 oops 2023-09-14 14:38:46 -07:00
Dylan Conway
f815ffa467 bump webkit 2023-09-14 14:01:33 -07:00
Chris Boette
6e1472b9f8 Fix typo in HTTPThread name. (#5376) 2023-09-14 09:09:22 -07:00
Jarred Sumner
92e95c86dd Always get latest version when @tag is explicitly passed (#5346) 2023-09-14 00:48:18 -07:00
Nathan Hammond
8ae9aeea6b Remove the ability to configure lockfile. (#5335) 2023-09-13 22:32:03 -07:00
Colin McDonnell
4ebed280dc Fix helptext for bun update 2023-09-13 22:01:31 -07:00
Soheil Nazari
b31d76b03d Update nuxt.md (#4452)
* Update nuxt.md

* --bun

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-13 22:00:31 -07:00
Twan L
0a5e44cd39 Update simple.md (#4881)
I have removed the / before ${server.port} because it its incorrect and I replaced the localhost to ${server.hostname}

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-13 22:00:05 -07:00
kryparnold
49a44eef0f Update nextjs.md (#4905) 2023-09-13 21:59:16 -07:00
Ciro Spaciari
fa2ef0972b fix(Bun.serve) fix buffering edge case (#5152)
* fix buffering clean

* fix resolveMaybeNeedsTrailingSlash and try to fix ci/cd error

* fix resolveMaybeNeedsTrailingSlash and try to fix ci/cd error

* oops

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-13 21:48:30 -07:00
dave caruso
9976e3f528 fix(runtime): make most globals configurable/deletable, allow resuming the console iterator (#5216)
* Fix #5177

* Fix #5175

* make most globals deletable/overridable

* not done

* cool

* a

* done

* fix test

* oops

* yippee
2023-09-13 21:39:36 -07:00
Colin McDonnell
fbafbd3394 Reorganize Intro section 2023-09-13 21:36:35 -07:00
Colin McDonnell
66c0401426 Make TypeScript instructions easier to find 2023-09-13 21:22:41 -07:00
Colin McDonnell
631c826866 Use Bun global 2023-09-13 21:22:41 -07:00
Mordy Tikotzky
088bea026e Fix bug with multiline string in CRLF terminated files (#4893) (#5318)
* Fix bug with multiline string in CRLF terminated files (#4893)

* add test for #4893
2023-09-13 21:05:02 -07:00
dave caruso
503c808929 test (#5244) 2023-09-13 20:54:46 -07:00
Jacques Desmarais
0927624608 fix link to "local template" (#5115) 2023-09-13 20:50:58 -07:00
miccou
cf834964a6 modules documentation didn't have correct import example (#5225) 2023-09-13 20:50:21 -07:00
Colin McDonnell
6ac70a6dd2 Use bun create everywhere 2023-09-13 20:47:36 -07:00
Madhurjya Roy
a8cef7ae75 doc(guides): update sveltekit guide (#5285)
* doc(guides): update sveltekit guide

Use `bun create svelte` instead of `bunx create-svelte`. 

This is to bring the documentation at par with the SvelteKit official doc to [create a project](https://kit.svelte.dev/docs/creating-a-project).

* Update text instructions for sveltekit.md
2023-09-13 20:45:37 -07:00
Colin McDonnell
c99caccdb2 More docs & helptext cleanup (#5229)
* wip

* Flesh out resolution docs

* Polish

* More

* WIP

* WIP

* WIP

* Document --watch
2023-09-13 20:43:39 -07:00
Colin McDonnell
22f14129e5 Fix mock example 2023-09-13 20:42:10 -07:00
Ciro Spaciari
d37602f316 fix(BunFile.slice) fix slice when length is greater than the size (#5186)
* check the limits for file, when slicing

* check eof

* undo test
2023-09-13 19:49:43 -07:00
Patrick Klitzke
cb52556bd1 fix(doc): Add "compilerOptions" to bun-types README.md (#5325)
Reading the documentation on bun-types it was not clear to me that the tsconfig.ts needs to look like this:

```
{
  "compilerOptions": {
    "types": ["bun-types"]
  }
}
```

So i added the "compilerOptions" information.
2023-09-13 19:27:49 -07:00
Ai Hoshino
03d9bcd440 fix(node:dns): fix the crash. (#5200) 2023-09-13 17:43:10 -07:00
Ciro Spaciari
972a6f29cc fix(console.log) fix printing long custom format (#5164)
* avoid overflow

* Update src/bun.js/bindings/exports.zig

* add mongodb inspect test

* bun db test

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-13 17:41:47 -07:00
WingLim
932fa35f99 feat(nodejs): implement os.availableParallelism (#5109)
* feat(nodejs): implement `os.availableParallelism`

* chore: do not throw error as same as node

* refactor: use `navigator.hardwareConcurrency`
2023-09-13 17:41:09 -07:00
Jarred Sumner
9c9f4ed6ad Make --watch instant (#5236)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-13 17:31:59 -07:00
dave caruso
4f8edb825f fix(runtime): require cache should not include unevaluated ESM modules. (#5233) 2023-09-13 16:57:59 -07:00
James Gordo
cb01cb0d4a Fixed api & cli docs typo. (#5262)
* Fixed api & cli docs typo.

* Fix

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-13 16:36:11 -07:00
Steven
64033f11cc chore(docs): include missing links to Node.js APIs (#5281)
These links make it easy to click and jump to another section.
2023-09-13 14:08:28 -07:00
wing
1c570b41bc docs(guide): fix expect assertion example in guide for spyOn (#5294)
Fixes example with `spyOn` and assertions. The example failed because the spied function would be called once but the expectation asserted 0 calls.
2023-09-13 14:08:09 -07:00
Andrew Brown
500bd15fb5 add uninstall instructions (#5311)
it's always good to have uninstall instructions as well as install, and I couldn't find them anywhere else on the site.

IMO, this gives users a little more confidence to try new tools out, as they know it's easily reversible.

I'm not familiar with how to uninstall with Docker, so would appreciate some help there.

We could possibly add a note for "bash" on how to remove Bun from the `$PATH`.
2023-09-13 14:07:43 -07:00
Guilherme J. Tramontina
687e31dc3a docs: update lockfile diff instructions (#5275) 2023-09-13 10:27:32 -07:00
David Hewitt
c3455c0cee fix(node/fetch): Make data URL fetch consistent with node (#5126) 2023-09-13 05:35:39 -07:00
iidebyo
9101774593 avoid inserting extraneous"accept-encoding" header (#5057)
* add no extraneous accept-encoding header test

* ensure fetch honors no decompress opt

* fix format on test/js/node/http/node-http.test.ts
2023-09-13 02:02:25 -07:00
Zong
9a0ea00705 docs(runtime): fix plugins loader extensions typo (#5250) 2023-09-13 02:00:11 -07:00
Gareth Jones
ec6b75ff54 chore: make comment grammatically correct (#5140) 2023-09-13 01:56:19 -07:00
Colin McDonnell
a18e3ff451 Add informative message on 'bun create react' (#5248) 2023-09-13 01:48:42 -07:00
Zong
eeb790a2f1 docs(runtime): fix jsx FragmentFactory output example (#5243) 2023-09-13 01:47:54 -07:00
amt8u
878b473085 file.exists() needs to be awaited to get the value (#5061) 2023-09-13 01:41:18 -07:00
Antonin CLAUZIER
6161c201e1 Update discordjs.md (#5227) 2023-09-13 01:38:17 -07:00
Dylan Conway
32664df254 decode regex if needed (#5167)
* decode regex if non-ascii

* make it comptime

* add test

* use `bun.BabyList(u16)`
2023-09-13 01:26:18 -07:00
Nathan Hammond
15f7bacb8b Correct the configuration file names. (#5234) 2023-09-13 01:19:15 -07:00
Colin McDonnell
473513db7e Update tsconfig.json for bun init 2023-09-12 23:53:28 -07:00
cfal
75b5c71540 js/node/stream.js: call write() callback when encoding is not provided (#4841)
* js/node/stream.js: call write() callback when encoding is not provided

* js/out/InternalModuleRegistryConstants.h: update
2023-09-12 22:21:58 -07:00
Gordon Goldbach
c9c62f37e5 docs: Made bun-types install as dev dependency in example (#5120) 2023-09-12 22:04:39 -07:00
Colin McDonnell
18b521d9b8 Various docs (#5201)
* Updates

* Improve jest guide

* Improve
2023-09-12 21:51:49 -07:00
Southpaw
534fd30dbd Use git's --global flag for lockfile diffs instead of manually modifying config files (#5143) 2023-09-12 21:51:07 -07:00
Jonathan Neal
3b2c0941e4 docs: fix typo in import.meta.resolve (#5146) 2023-09-12 19:14:26 -07:00
Nazeel
8d3829114e Update hot.md (#4990) 2023-09-12 18:54:23 -07:00
Tom Redman
5f9c30b717 Update simple.md (#4997)
Remove errant slash preventing the correct console log
2023-09-12 18:53:55 -07:00
xnacly
c55574b4d3 fix typo and grammar errors (#5046) 2023-09-12 18:53:23 -07:00
mi4uu
2f27e24778 clang and llvm on arch install v16, update to use v15 (#5069) 2023-09-12 18:52:30 -07:00
Diogo Goncalves
b910db74be Add missing full stop on nodejs-apis.md (#5072) 2023-09-12 18:51:15 -07:00
Toby
b37cb98a6e udate README.md (#5127)
update path
2023-09-12 18:50:50 -07:00
Samuel Rigaud
263382103f docs: fix typos (#5151) 2023-09-12 18:50:05 -07:00
Thomas Rupprecht
8777c3f72c fix lifecycle docu (#5159) 2023-09-12 18:49:19 -07:00
Colin McDonnell
996491f719 Clean up Modules doc 2023-09-12 16:54:07 -07:00
Colin McDonnell
12c2da0ebf Create SECURITY.md 2023-09-12 16:53:59 -07:00
Dylan Conway
a3166457d3 Update node-dns.test.js 2023-09-12 16:50:11 -07:00
Mitchell K
b1bd93bffc fix(bun-lambda) Fix API Gateway V1 events and expand on Lambda documentation (#5161)
* Fix issues with using V1 API Gateway events with Bun Lambda Layer.

* Remove aws-lambda as it is not needed
2023-09-12 14:59:19 -07:00
James Gordo
4c113d1866 Fixed Websocket Compression Example. (#5087)
* Passed message variable to ws.send() method.

* Passed message variable to ws.send() method.
2023-09-12 08:30:23 -07:00
ped
f9d2e687f5 Fix typo in http file upload example (#5088) 2023-09-12 08:30:06 -07:00
Jarred Sumner
31aec4ebe3 Fix bug with bun build --compile (#5102)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-12 07:07:07 -07:00
Jarred Sumner
b432006e43 Clean up some edgecases with posix_spawn usage (#5079)
* Check that the pid matches

* Fixup EINTR check

* Remove extra slashes

* fixup

* fixup

* != 0

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-12 06:34:20 -07:00
Alex Lam S.L
015f0a6e9a fix up with prettier (#5092) 2023-09-12 05:53:55 -07:00
David Hewitt
07a6443a80 fix(node/path): Prevent memory corruption in parse (#5083)
* Add failing test for issue #4954

* fix(node/path): Return results with toValueGC
2023-09-12 05:05:00 -07:00
Jarred Sumner
6e4f746ace Fix some bugs blocking Turborepo from using bun run (#5071)
* Clean up some error handling when loading `tsconfig.json`

* [bun run] don't parse tsconfig.json for package.json scripts

* Make this error message better

* Bump

* Don't print build errors twice

* Handle quotes in error messages a little better

* Add a couple tests

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-12 03:35:29 -07:00
Ai Hoshino
b5a3bed7f2 fix(JSC): copy string in toJSStringValueGC (#5067) 2023-09-12 03:08:42 -07:00
Ciro Spaciari
8615b8ad6b add NODE_TLS_REJECT_UNAUTHORIZED (#4829) 2023-09-11 21:52:31 -07:00
Eric Bidelman
4992839232 Update gzip.md (#5041)
typo
2023-09-11 21:47:35 -07:00
Colin McDonnell
03b8e9d5cf fix formatting in sveltekit guide 2023-09-11 20:12:48 -07:00
Ai Hoshino
f267c1d097 fix(path): Fix edge case in path.relative (#4811)
Close: #4789
2023-09-11 17:53:43 -07:00
Ai Hoshino
c4507a5db3 Fix Buffer.from to handle double-byte hex encoding strings (#4933)
Close: #4919
2023-09-11 17:27:12 -07:00
Ciro Spaciari
c9a0ea96cd fix(BunFile) .slice offset on macOS (#4991)
* fix offset

* simplify error
2023-09-11 17:19:43 -07:00
Dylan Conway
ca461f9e83 fix loading env from .env.production and friends (#4630)
* reload conditional vars

* test

* change `get` and `put` methods

* dont clone empty env variables
2023-09-11 17:19:21 -07:00
Colin McDonnell
9c4765f616 Update benchmark readme 2023-09-11 16:53:34 -07:00
Justin "J.R." Hill
e091290748 fix(bun-lambda): Don't drop arguments in console.log(...) (#4992)
Closes #4826
2023-09-11 12:39:56 -07:00
Ben Jervis
350403663e Fix error message typo in js_ast.zig (#4937) 2023-09-11 11:03:45 -07:00
Dylan Conway
895f3824b5 update test 2023-09-11 10:43:33 -07:00
Diogo Goncalves
58e69ef9f4 Remove unnecessary backticks in quickstart doc page (#4927) 2023-09-11 08:54:22 -07:00
Vladimir Pesterev
decad91d24 Fixed inconsistent log messages in the Quickstart guide (#4942)
Looks like it is just a typo and needs to be fixed.

Signed-off-by: Vladimir Pesterev <8786922+pesterev@users.noreply.github.com>
2023-09-11 08:53:54 -07:00
Yonathan Benolol
ea56182c5a Update http.js - Fix Methods Fallback naming (#4948) 2023-09-11 08:51:35 -07:00
Matthew Yu
9d6a8ee79d Fix punctuation (#4870) 2023-09-11 08:50:39 -07:00
fehnomenal
b55b511f68 Make detect-libc package match the upstream api (#4910) 2023-09-11 08:49:57 -07:00
Krzysztof Szala
49b9306dce fix: changes wrong command name in the tests chapter (#4965)
This PR fixes the command name for running tests flagged with `.only`
2023-09-11 08:48:53 -07:00
Krystian Pracuk
2956ed4289 added .idea to .gitignore (#4951) 2023-09-11 08:48:26 -07:00
Jarred Sumner
51d3d43822 Support named imports for json & toml files at runtime (#4783)
* Support named exports in json imports

* Support named imports for `*.json` files

* Remove stale comments

* Don't export arrays as non-default

* Add test for default exports

* Don't break webpack

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-10 23:15:35 -07:00
Jarred Sumner
edea4f095a Fixes #4588 (#4804)
* Fixes #4588

* typo

* fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-09-10 21:40:46 -07:00
Diogo Goncalves
07c88435e0 Replace unnecessary '' wih "` in code snippets (#4792) 2023-09-10 11:34:04 -07:00
Jeroen van Rensen
7121c1d6ab Update modules.md - Explain case-insensitivity (#4782) 2023-09-10 11:33:39 -07:00
Ed Knowles
60dc76676c docs: remove duplicate sentence from debugger (#4807) 2023-09-10 11:33:04 -07:00
toneyzhen
f64b504bae Update todo-tests.md (#4771) 2023-09-10 11:32:31 -07:00
Vyacheslav Kulik
97153c5a5f Add compatibility page link to index.md (#4809)
Add a link to compatibility page (https://bun.sh/docs/runtime/nodejs-apis) to its reference in index.md, so it's easier to reach out to.
2023-09-10 11:30:46 -07:00
Tom Sherman
d48ff53e4e docs: Update Bun.write(path, Response) example to be clear that it writes the body (#4802) 2023-09-10 05:06:25 -07:00
WingLim
afcbed218c fix(bindings): add missing binding (#4682) 2023-09-10 02:58:10 -07:00
Rinku Chaudhari
682406c42c docs: fix spelling (#4763) 2023-09-09 22:40:56 -07:00
Richard
6fe40f383a Fix mongoose ecosystem guid (#4740)
Fix missing method declaration on schema and Schema database name from Kitten to Animal
2023-09-09 19:05:13 -07:00
thunfisch987
e2d327881c fix(docs); typo on Nuxt guide page (#4745) 2023-09-09 19:04:05 -07:00
Robert Soriano
4280f74429 docs: fix wasi-js link (#4741) 2023-09-09 19:03:46 -07:00
Chris Hutchinson
8139a20c9f fix: remove from bun-server.test.ts test case (#4709) 2023-09-09 19:03:28 -07:00
akumarujon
620f6c51ce fix typo (#4639) 2023-09-09 14:46:41 -07:00
Ashcon Partovi
ffe4f561a3 Fix listen() using unix socket if argument is a valid port (#4620)
* Fix listen() using unix socket if argument is a valid port

Fixes #4582

* Add test
2023-09-08 16:27:44 -07:00
Ana Margarida Silva
c896792c37 fix(docs): connect websocket client repeated documentation (#4615) 2023-09-08 14:22:28 -07:00
Colin McDonnell
088491cb59 Add extension guide 2023-09-08 13:49:12 -07:00
xxxhussein
f27ef667c7 Delete docs/ecosystem/buchta.md (#4536)
Delete buchta.md since its development is discontinued by LowByteFox: https://twitter.com/LowByteFox/status/1694025965452636612
2023-09-08 13:21:41 -07:00
Arjunkumar
7d9820d478 Update mongoose.md (#4534) 2023-09-08 13:20:07 -07:00
Ethan Steere
b5da5168bf Update Svelte Kit Docs (#4541)
* Update Svelte Kit Docs

I added some guidance about how to build for production. Still WIP since I would like to add a more complete deployment guide.

* Formatting

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-09-08 13:19:53 -07:00
rajatdua
61569fab80 docs(template.md): spelling (#4614) 2023-09-08 13:19:33 -07:00
Frederik De Bleser
0887825f54 Fix code typo in transpiler.md (#4604)
There are some extra closing brackets at the end of the `scanImports` example. These cause a syntax error ("Unterminated string literal")
2023-09-08 12:10:17 -07:00
Colin McDonnell
6d02b18680 Remove await plugin 2023-09-08 11:42:27 -07:00
Vitor Dino
1b8c6f266f docs: fix --backend options list on cache.md (#4599)
`symlink` wasn’t an item, it appeared the same as `copyfile`
2023-09-08 11:19:29 -07:00
Dan Fabulich
989dd92ea8 Move "Importing CJS from CJS" back out of low-level details section (#4600)
This section appears to have been accidentally moved into the low-level details section in 5424ea3403.

This fixes the example in the low-level details section, because the "Importing CJS from CJS" section is not the example code that the low-level details section is intended to provide.
2023-09-08 11:18:52 -07:00
Colin McDonnell
9e3cabc540 Remove community-templates 2023-09-08 10:55:16 -07:00
Ondrej Brablc
3170cf08ba Make the link to application clickable in the terminal (#4544)
Terminals like iTerm require valid URL to make them clickable. Adding a space to make it valid. Similar problem is on https://bun.sh/, where protocol is missing.
2023-09-08 09:33:35 -07:00
Samual Norman
182d3f1567 Fix Bun.CryptoHasher missing argument in docs (#4585) 2023-09-08 09:32:36 -07:00
Tiramify (A.K. Daniel)
189f0f7c36 Update development.md (#4578) 2023-09-08 09:32:15 -07:00
Ashcon Partovi
a05a1780c1 Fix bun-types 2023-09-08 08:29:59 -07:00
Jarred Sumner
822a00c4d5 Fix a couple important bugs (#4560) 2023-09-07 21:07:00 -08:00
Adam
f6a621f36a Fix typo in sveltekit.md (#4550) 2023-09-07 13:11:09 -07:00
dave caruso
5b9d8b87c4 Bump version to Bun 1.0.0 (#4543)
* hi

* Update Version to 1.0.0

* 2

---------

Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
2023-09-07 10:57:46 -07:00
Colin McDonnell
a7c3bc8a5a Fix markdown 2023-09-07 10:12:52 -07:00
Colin McDonnell
5424ea3403 Doc updates for v1.0 (#4485)
* Remove v0.x messages

* Add windows section to Installatino

* update

* update

* Update

* Comment out windows
2023-09-07 10:09:09 -07:00
dave caruso
4b63ced72d fix(cli): final touches for 1.0 (#4538)
* better

* cli

* remove submodule

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-07 09:04:21 -07:00
Ciro Spaciari
c8883a39a5 fix(fetch) closeAndFail instead of close (#4537)
* closeAndFail instead of close

* use constant

* add some protection

* dont deinit

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-07 08:34:13 -07:00
dave caruso
36e5a072a9 revert (#4539)
* Revert "remove native events from streams"

This reverts commit e063a47a53.

* finish revert

* remove accidental submodule

* dfghj
2023-09-07 07:45:00 -07:00
dave caruso
57a06745a4 Progress for Next.js (#4468)
* L

* ipc

* asdfghjkl

* dfghjk

* it works!

* types

* patches for next.js

* sdfghj

* wsdfgn,./

* this

* yolo

* okay loser

* asdfghjk

* add some more APIs

* MESS

* sdfghjkl

* remove native events from streams

* stuff

* remove lazy(primordials) test

* debugging

* okay

* less fake extensions object

* fix `Buffer.toString()` args logic

* fix deserialize

* make tests work

* add test for `Buffer.toString` args

* Update server.zig

* remove test

* update test

* Update spawn-streaming-stdin.test.ts

* fix linux build

* Update fs.test.ts

* cli message improvements

* dfshaj

* Fix fs.watch bug maybe?

* remove

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2023-09-07 04:58:44 -07:00
Ciro Spaciari
4360ec83b4 feat(fetch) rejectUnauthorized and checkServerIdentity (#4514)
* enable root certs on fetch

* rebase

* fix lookup

* some fixes and improvements

* fmt

* more fixes

* more fixes

* check detached onHandshake

* fix promise case

* fix cert non-Native

* add fetch tls tests

* more one test
2023-09-06 22:23:24 -07:00
Birk Skyum
3b9829f171 Update nodejs compat docs cp/cpSync/watchFile/unwatchFile (#4525) 2023-09-06 14:04:07 -07:00
Ashcon Partovi
849a2cdfae Add bun-types to 'bun fmt' script 2023-09-06 10:03:12 -07:00
Ashcon Partovi
77f1f2480d Add types for watchFile and unwatchFile 2023-09-06 10:02:48 -07:00
Ashcon Partovi
5e074209c6 Add types for cp and cpSync 2023-09-06 09:58:00 -07:00
Ashcon Partovi
0c2675c8d3 Remove issue template for install
It's not used, and use the bug issue instead.
2023-09-06 09:37:39 -07:00
dave caruso
a79440f0c3 fix(runtime): fix events.once not working (#4520) 2023-09-06 07:13:05 -07:00
Dylan Conway
daaac7792c allocate task for ThreadSafeFunction (#4513)
* create thread safe function task

* Update napi.zig

* Update napi.zig
2023-09-06 02:04:00 -07:00
Derrick Farris
7c82dc86ba Update development.md (#4480)
Remove comment about removed `BUN_OVERRIDE_MODULE_PATH` env var
2023-09-05 20:28:39 -07:00
Ciro Spaciari
125880af7d update root certs (#4499) 2023-09-05 20:28:20 -07:00
Dylan Conway
70a5cfe908 fix text decode trim (#4495)
* remove trim

* separate function

* a test

* trim when `stream` is true

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-05 17:53:31 -07:00
Jarred Sumner
1bd5b245b8 Align process.nextTick execution order with Node (#4409)
* Align `process.nextTick` execution order with Node

* some tests

* formatting

* fixups

* fix the test failures

* simplify the logic here

* push it up

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-09-05 17:52:57 -07:00
dave caruso
acfd028e8f feat(runtime): Implement fs.watchFile (#4467)
* really lame prototype

* uses threads but badly

* it works i guess

* unwatchFile but lame

* it works

* test

* a

* aomitcs

* fix unwatching race condition

* use hasPendingActivity and GC stuff better

* test

* revert this
2023-09-05 17:41:39 -07:00
dave caruso
6f8a393492 fix(node:net): emit close event on connection error (#4336)
* emit close event on connection error

* re-review

* add test
2023-09-05 16:59:40 -07:00
Ciro Spaciari
6e50dd210f fix(fetch) always use readable stream if it is available (#4503)
* always use readable stream if it is available

* use bun sleep

* fix tests

* rm uws dep
2023-09-05 15:22:09 -07:00
Ciro Spaciari
d268097ded fix SSL proxy tunneling on fetch (#4510) 2023-09-05 15:21:34 -07:00
dave caruso
1e998c1bf2 fix(install): ensure all lockfile structs do not have undefined padding (#4401)
* padding sucks

* this assertion is already done elsewhere

* remove test. will be covered alex's pr i believe?

* fix webkit submodule

* fix uws submodule
2023-09-05 14:25:19 -07:00
Alex Lam S.L
bc2b55fdee fix checkout/build failure due to src/deps/uws (#4505) 2023-09-05 19:16:11 +03:00
Dylan Conway
7dae4db52a fix ipv6 localhost fetch (#4498)
* `node` null for localhost getaddrinfo

* more test
2023-09-05 06:12:54 -07:00
Alex Lam S.L
bcab2f9a0e minor rebuild diffs (#4486) 2023-09-05 14:49:07 +03:00
Jason
a85bd5d083 fix dup syscall on Windows (#4496) 2023-09-05 01:33:30 -07:00
Dylan Conway
f73f77d0de no need to chmod (#4490) 2023-09-04 17:16:37 -08:00
Ciro Spaciari
f1afd58338 fix zlib deflate on fetch (#4483)
* fix zlib deflate on fetch

* mention issue on test

* more tests

* oops
2023-09-04 17:37:47 -07:00
Ai Hoshino
5f34c44ec6 chore: fix typo (#4476)
Close: #4377
2023-09-04 12:35:08 -07:00
Ciro Spaciari
2d80f94eda fix(HTMLRewriter) buffer response before transform (#4418)
* html rewriter response buffering

* pipe the data when marked as used

* fix empty response

* add some fetch tests

* deinit parent stream

* fix decompression

* keep byte_reader alive

* update builds

* remove nonsense

* was not nonsense after all

* protect tmp ret value from GC, fix readable strong ref deinit/init

* fmt

* if we detach the stream we cannot update the fetch stream

* detach checking source

* more tests, progress with javascript and Direct sink

* drop support for pure readable stream for now

* more fixes

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-04 12:26:49 -07:00
Dylan Conway
18767906db initialize JSC for macros from cli 2023-09-03 20:49:06 -07:00
Ai Hoshino
f1b109d5dd fix(syscall): fix handling syscall errno (#4461)
* fix(syscall): fix handling syscall errno
Close: #4198

* remove unused code

* add more tests

* remove unused code
2023-09-03 17:30:30 -07:00
dave caruso
5c43744bce workaround a zig bug (#4440) 2023-09-02 01:39:39 -07:00
Karl Böhlmark
db2faf7c5b docs: fix http simple example log statement (#4320)
Co-authored-by: Karl Böhlmark <karl.bohlmark@netinsight.net>
2023-09-01 23:49:50 -07:00
Jorge Jiménez
bd690bb2b5 Fix typo (#4445)
Replace
`key: [Bun.file('./key1.pem'), Bun.file('./key2.pem']`
with
`key: [Bun.file('./key1.pem'), Bun.file('./key2.pem')]`
2023-09-01 23:49:09 -07:00
Dylan Conway
900f38d144 keep export star as (#4451) 2023-09-01 22:32:27 -07:00
Colin McDonnell
4920f458bc bun-vscode 0.0.8 2023-09-01 22:16:54 -07:00
Colin McDonnell
48cf9dddcb Update commands 2023-09-01 21:35:34 -07:00
Dylan Conway
0019073c8a fix Bun.serve with tls and Bun.file (#4450)
* check sendfile ctx

* add test

* undo blob check

* undo undo and add assert
2023-09-01 20:10:54 -07:00
Dylan Conway
45edb7bcf7 exclusive max 2023-09-01 20:09:45 -07:00
Ashcon Partovi
f0f91a2a31 Fix debug console from appears on start 2023-09-01 19:34:57 -07:00
Ashcon Partovi
94a4cda713 Add configuration options to extension 2023-09-01 18:56:25 -07:00
Ashcon Partovi
eeb683d977 Fix run button starting cwd at / 2023-09-01 15:35:14 -07:00
dave caruso
0fd0ad993b fix(runtime): fix dns_resolver crash (#4435)
* fix incorrect c pointer

* format

* lets go

* random other test case fixed

* hanassagi patch

* Update dns_resolver.zig

* Revert "Update dns_resolver.zig"

This reverts commit 53eb338048.

* See if the tests pass

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-09-01 15:27:59 -07:00
Ashcon Partovi
27de8bbf7b Fix background color 2023-09-01 13:55:19 -07:00
Ashcon Partovi
6bdf24c8ef Allow older versions of VSCode 2023-09-01 13:49:52 -07:00
Ashcon Partovi
57caea5ae7 Fix README for extension 2023-09-01 13:40:48 -07:00
Ashcon Partovi
fe3be666bc Update VSCode extension 2023-09-01 13:34:29 -07:00
Ashcon Partovi
2b421be06f Fix breakpoint on entry for extension 2023-09-01 10:19:14 -07:00
Ashcon Partovi
1ff8155c28 Add Bun.canReload event to inspector 2023-09-01 00:33:33 -07:00
Ashcon Partovi
40d749b480 JavaScript Debug Terminal == Bun Terminal 2023-08-31 23:19:04 -07:00
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
Dylan Conway
6ae4dd808b only set initial debugger breakpoint once (#4441)
* unset `set_breakpoint_on_first_line` on reload

* move to `module_loader.zig`
2023-08-31 23:03:44 -07:00
Ashcon Partovi
b07bb3ce17 Make breakpoints faster in VSCode extension 2023-08-31 21:42:11 -07:00
Julian
59edbe645c bun install correctly join dependency URLs (#4421)
* use WTF to join registry strings

* show dependency error messages, better join error

We actually report errors when enqueuing dependencies now. I also made
the join URLs error message read better. It'd be cleaner to handle it
all in one place, but there's currently no way to propagate the data up.

* starting on registry URL tests

* added more registry URL tests

* [install] prevent optional/peer deps from failing builds

Couldn't get the peer dependency test to work, but the code is there.

* ran prettier

* changed error note to use realname, updated tests

* ran prettier again...
2023-08-31 17:36:03 -07:00
Dylan Conway
fef70f2473 get name if not provided in FormData.append (#4434)
* get file name from blob if not provided

* add test

* another test

* format
2023-08-31 17:33:08 -07:00
Ashcon Partovi
bd7262f037 Fix vscode debug terminal 2023-08-31 00:18:59 -07:00
Jarred Sumner
10c8013ef2 Create cp-r.mjs 2023-08-30 22:18:04 -07:00
Jarred Sumner
82d26dd9bd Add bench 2023-08-30 21:00:44 -07:00
Ai Hoshino
9334fbe9b4 fix(install): resolve semver matching with pre-release tags. (#4412)
Close: #4398
2023-08-30 18:49:09 -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
Dylan Conway
89f24e66ff add life cycle scripts to lockfile metahash (#4420)
* add life cycle scripts to lockfile metahash

* Update lockfile.zig
2023-08-30 18:29:08 -07:00
Alex Lam S.L
037463fc48 [install] fix stale root life-cycle script in lockfile (#4411)
fixes #4319
2023-08-30 17:35:28 -07:00
Dylan Conway
04215e2f3a reset tty at exit (#4419) 2023-08-30 16:38:25 -07:00
Alex Lam S.L
c19714aff7 minor rebuild diffs (#4416) 2023-08-30 14:48:30 -07:00
Ciro Spaciari
908018a4df fix(http/https) disable decompress on http/https client (#4399)
* disable decompress on http/https module

* make js again
2023-08-30 13:50:09 -03:00
Jarred Sumner
f24ca39004 Fix bug in util/types.{isGeneratorFunction,isAsyncFunction} 2023-08-30 00:19:39 -07:00
Jarred Sumner
e3dc5b6b4c reset signal handlers in Bun.spawn (#4405)
* see if this fixes it

* We don't need this

* Remove extra flag

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-30 00:16:08 -07:00
Ashcon Partovi
f2553d2454 More support for DAP (#4380)
* Fix reconnect with --watch

* Support setVariable

* Support setExpression

* Support watch variables

* Conditional and hit breakpoints

* Support exceptionInfo

* Support goto and gotoTargets

* Support completions

* Support both a URL and UNIX inspector at the same time

* Fix url

* WIP, add timeouts to figure out issue

* Fix messages being dropped from debugger.ts

* Progress

* Fix breakpoints and ref-event-loop

* More fixes

* Fix exit

* Make hovers better

* Fix --hot
2023-08-29 23:44:39 -07:00
Jarred Sumner
c028b206bc Fix assertion failure in spawn-related tests (#4400)
* Clean up some of the event loop code

* Support timeouts

* Defer freeing FilePoll

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-29 21:17:56 -07:00
dave caruso
a846852818 fix(node-fetch): use stream.Readable instead of web streams (#4394)
* fix blobFrom

* fix(node-fetch): use stream.Readable instead of web streams

* uncomment

* comment why
2023-08-29 19:45:16 -07:00
Ai Hoshino
3f4bc625ff parse unix socket path param in http.server (#4390) 2023-08-29 19:39:12 -07:00
Jarred Sumner
5d84ef7780 Rename uws_event_loop to event_loop_handle 2023-08-29 15:31:06 -07:00
Jarred Sumner
a77ed151af [git] Normalize line endings 2023-08-29 15:30:07 -07:00
Jarred Sumner
cf151a256c Enforce unix line endings in git 2023-08-29 15:29:09 -07:00
Dylan Conway
de58e9d583 emit open and call close callback (#4384) 2023-08-29 09:44:45 -07:00
Dylan Conway
07d8623976 fix #4356 (#4386) 2023-08-29 01:49:12 -07:00
Ai Hoshino
c53372c9f3 feat(node:dns): implement dns.reverse. (#4332)
* feat(node:dns): implement `dns.reverse`.
Close: #4299

* fix dns reverse for ipv6

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-08-28 20:10:33 -07:00
Dylan Conway
d1c2d6b25c use options.fd if provided for fs.Read/WriteStream (#4378)
* use `options.fd` over path

* tests

* fix `@clack/prompts`

* == null
2023-08-28 20:08:08 -07:00
Colin McDonnell
a2aad40171 docs: use table tag 2023-08-28 13:05:23 -07:00
Colin McDonnell
177e02b304 docs: hot reloading with Bun.serve 2023-08-28 12:55:22 -07:00
Colin McDonnell
726f8aa3ef Update nuxi output 2023-08-28 12:24:51 -07:00
Prabhat Sachdeva
d3626287bd remove uws from .gitmodules (#4374) 2023-08-28 10:39:45 -07:00
Jarred Sumner
a2ddfe6913 Bring uSockets & uWebSockets forks into Bun's repository (#4372)
* Move uWebSockets and uSockets forks into Bun's repository

* Update Makefile

* Update settings.json

* Update libuwsockets.cpp

* Remove backends we won't be using

* Update bindings.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-28 08:38:30 -07:00
Ciro Spaciari
6e4a1f2918 make pending_response and metdata life cycle more clear and make fetch more reliable (#4331)
* make pending_response and metdata life cycle more clear

* typo

* WIP: memory investigation

* check zlib and fix zlib

* use state allocator for metadata

* remove postBodyProcess

* undo some test things

* fix race condition

* fix removing compressed header

* some extra checks

* remove arenas on zlib and comment repoter.assert because of toOwnedSliceZ

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-08-28 07:21:46 -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
Ai Hoshino
efe987e8d1 Fix some edge cases in the env param of spawn. (#4364)
Close: #4362
2023-08-27 23:58:31 -07:00
Jarred Sumner
ed5dc5bbf9 @electroid's dap changes (#4367)
* Rework terminal, launch is still WIP

* Use the proper Terminal profile API

* More changes

* progress

---------

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
2023-08-27 09:03:15 -07:00
Jarred Sumner
36f9d2291c Workaround zig wasm bug 2023-08-26 21:09:08 -07:00
Jarred Sumner
9e653e610c Update WebKit 2023-08-26 03:10:16 -07:00
Jarred Sumner
f16d729c76 Set the timezone in spawn (#4337)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-26 02:35:10 -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
Ai Hoshino
910daeff27 Fix the crash when importing a module that does not exist. (#4348)
Close: #4240
2023-08-26 01:14:40 -07:00
Jarred Sumner
e1dacf88d0 don't get too excited but there are at least hundreds of compiler errors when you run this command 2023-08-25 22:05:02 -07:00
Jarred Sumner
d72763dc29 bump! 2023-08-25 21:54:16 -07:00
Jarred Sumner
d98a93c318 Automatically hot reload Bun.serve() (#4344)
* Automatically hot reload Bun.serve()

* Update doc

* Update example

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-25 21:08:41 -07:00
Colin McDonnell
f70bb2497b Fix link 2023-08-25 12:50:13 -07:00
Colin McDonnell
d62b0c3652 Readability tweaks 2023-08-25 12:47:47 -07:00
Jarred Sumner
21b2d5c3a5 Update executables.md 2023-08-25 04:45:41 -07:00
Jarred Sumner
10815a7d43 Update executables.md 2023-08-25 04:33:54 -07:00
Jarred Sumner
f839640c17 Update executables.md 2023-08-25 04:32:20 -07:00
Jarred Sumner
557e912d9a Fix assertion failure with sourcemaps in multi-threaded transpiler (#4321)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-25 04:00:54 -07:00
Jarred Sumner
1e75a978e5 Skip disabled test 2023-08-25 04:00:23 -07:00
Jarred Sumner
95e8c24db1 Update WebKit 2023-08-25 03:56:44 -07:00
Jarred Sumner
755f41fe2a [Inspector] Get firefox to work 2023-08-25 03:56:39 -07:00
Jarred Sumner
9aabe4eea1 Upgrade peechy 2023-08-25 01:43:25 -07:00
Jarred Sumner
90f3bf2796 Update http.md 2023-08-24 23:05:27 -07:00
Jarred Sumner
16b4bf341a Disable minifying "str".length until https://github.com/oven-sh/bun/issues/4217 is fixed 2023-08-24 23:00:53 -07:00
Ashcon Partovi
1480889205 Improved support for debug-adapter-protocol (#4186)
* Improve support for \`debug-adapter-protocol\`

* More improvements, fix formatting in debug console

* Fix attaching

* Prepare for source maps

* Start of source map support, breakpoints work

* Source map support

* add some package.jsons

* wip

* Update package.json

* More fixes

* Make source maps safer if exception occurs

* Check bun version if it fails

* Fix console.log formatting

* Fix source maps partly

* More source map fixes

* Prepare for extension

* watch mode with dap

* Improve preview code

* Prepare for extension 2

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-24 22:53:34 -07:00
Jarred Sumner
f269432d90 Listen on a unix domain socket with Bun.serve() (#4311)
* Update response.zig

* Comment this out for now

* Support unix domain socket in Bun.serve()

* Add test

* add types

* Update JSFetchHeaders.cpp

* comment this test out

* tls unix web socket serve options

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-08-24 22:49:58 -07:00
Colin McDonnell
73b3fb7b0f Add guides for test runner (#4308) 2023-08-24 22:28:07 -07:00
Ashcon Partovi
2bcbafe7d3 Fix debugger not updating after reload with --hot 2023-08-24 20:09:32 -07:00
Colin McDonnell
f7f734788c Update tsconfig.base.json 2023-08-24 19:54:03 -07:00
Colin McDonnell
2cd1d59387 Update toml import type test 2023-08-24 19:52:53 -07:00
Colin McDonnell
b70210a005 Use noEmit 2023-08-24 19:51:14 -07:00
Code Hz
b9c2309c8a Remove conflict option in tsconfig-for-init.json (#4284)
fix https://github.com/oven-sh/bun/issues/4283
2023-08-24 19:41:23 -07:00
Jarred Sumner
43c4da8c9a Update build-id 2023-08-24 19:39:54 -07:00
Jarred Sumner
8a48e8bb0b Report extra memory more (#4289)
* Report memory allocated in fetch

* Memory size reporting to `Headers`

* Fixup memory reporting allocator

* Make these tests do more

* cleanup some of this

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-24 19:39:00 -07:00
Dylan Conway
097ae4e982 fix build 2023-08-24 19:05:40 -07:00
Alex Lam S.L
213f5bef9d [install] fix stale life-cycle scripts from lockfile (#4307)
fixes #4269
2023-08-24 17:18:51 -07:00
Alex Lam S.L
e115638cba [install] fix crash when installing package that uses loose semver pre-release (#4302)
- also fix parsing of `1.2.3pre+build`

fixes #4266
2023-08-24 17:17:48 -07:00
Ai Hoshino
6e57556fad Fix(node:http): fix URL formatting when using a proxy. (#4297)
Close: #4295
2023-08-24 17:17:18 -07:00
Ai Hoshino
339d2c7f19 Make the server not crash if an error occurs in dev build. (#4300)
Close: #4298
2023-08-24 17:16:51 -07:00
Jarred Sumner
d2bef4fbea Don't inline require/import errors at runtime (#4306)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-24 17:03:05 -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
jhmaster
55eb4ffe8f Update bun-polyfills & bun-wasm (#4246)
* automate Bun.version & revision polyfills

* polyfill Bun.gc

* bun:jsc module initial polyfills

* update peechy schema

* bun-polyfills: fix some project configs

* bun-wasm: lots of fixes

* bun-polyfills: Bun.Transpiler impl.

* revision hash update
2023-08-24 14:39:28 -07:00
Jarred Sumner
a051a6f620 Fix performance regression in reading from the request body (#4291)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-24 14:36:39 -07:00
Jarred Sumner
9c68abdb8d wip (#4282)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-24 01:32:22 -07:00
Jarred Sumner
ad326b7734 [Inspector] Fix bug with sourcemaps including internal metadata bytes 2023-08-23 22:22:55 -07:00
Colin McDonnell
aa08c35c06 Add Debugger docs and a couple guides (#4281)
* Add debugger docs. Add guides.

* Add files
2023-08-23 18:15:21 -07:00
dave caruso
20d42dfaa3 Fix <const T>() => (#4278) 2023-08-23 17:22:54 -07:00
VietnamecDevelopment
3556fa3b1e Update globals.d.ts (#4276) 2023-08-23 16:25:05 -07:00
Code Hz
5e07fd4fbc Fix ffi type (#4265)
* add readonly so it works with as const

* split ffi type infer to args and returns

* add JSCallback to FFITypeToArgsType

* add read functions

* simplify FFITypeOrString

* fix cstring type

* fix pointer type test

* fix readonly

* add unknown handling

* trigger action

* use Parameters

* add read type test

* add other read function to tests
2023-08-23 15:56:46 -07:00
Jarred Sumner
c60385716b Bunch of streams fixes (#4251)
* Update WebKit

* Don't do async hooks things when async hooks are not enabled

* Smarter scheduling of event loop tasks with the http server

* less exciting approach

* Bump WebKit

* Another approach

* Fix body-stream tests

* Fixes #1886

* Fix UAF in fetch body streaming

* Missing from commit

* Fix leak

* Fix the other leak

* Fix test

* Fix crash

* missing duperef

* Make this code clearer

* Ignore empty chunks

* Fixes #3969

* Delete flaky test

* Update bun-linux-build.yml

* Fix memory issue

* fix result body, and .done status before the last callback, dont touch headers after sent once

* refactor HTTPClientResult

* less flasky corrupted test

* oops

* fix mutex invalid state

* fix onProgressUpdate deinit/unlock

* fix onProgressUpdate deinit/unlock

* oops

* remove verbose

* fix posible null use

* avoid http null

* metadata can still be used onReject after toResponse

* dont leak task.http

* fix flask tests

* less flask close tests

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciari@gmail.com>
2023-08-23 14:05:05 -07:00
Quentin
f3266ff436 docs: remove broken DNS link which is also not present in the official docs (#4268) 2023-08-23 10:36:26 -07:00
xxxhussein
b01764b31e Fix more types. (#4273) 2023-08-23 10:35:51 -07:00
Jozef Steinhübl
851763174e ask for bun --revision instead bun -v (#4256) 2023-08-23 00:42:33 -07:00
dave caruso
8518fbb573 fix yield (#4264) 2023-08-22 21:54:59 -07:00
Colin McDonnell
d86084dd8e Fix Bun.inspect types 2023-08-22 14:28:01 -07:00
dave caruso
52802a4c55 fix fsevents and stub for qwikcity (#4247)
* fix test

* ok

* cm

* EE

* remove the hack we didnt need
2023-08-21 23:39:56 -07:00
Dylan Conway
44e4d5852a fix stdin stream unref and resuming (#4250)
* fix stream unref and resuming stream

* fix `child-process-stdio` test
2023-08-21 23:39:41 -07:00
Colin McDonnell
3a45f2c71b Docs and types for v0.8.0 (#4199)
* Improve test documentation

* Update nodejs compat docs with tty

* Add debugger guide

* Document Bun.inspect.custom, improve bun test nav

* Address reviews

* Update Bun.file types

* Add Nuxt guide

* Add tty types
2023-08-21 21:34:03 -07:00
Jarred Sumner
9eeb7bdbff Bun v0.8 2023-08-21 21:26:45 -07:00
Jarred Sumner
ed14b64e65 Make the code generator less duplicative 2023-08-21 21:24:49 -07:00
Jarred Sumner
bca1bcf29c import errors have code set to ERR_MODULE_NOT_FOUND and require errors have code set to MODULE_NOT_FOUND (#4244)
* ResolveMessage

* Fix it

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-21 21:11:27 -07:00
Ciro Spaciari
9027484ae1 fetch(stream) add stream support for compressed and uncompressed data (#4127)
* streams non compressed data in 64kb chunks (at least)

* fmt

* wip remove pause

* fix default streaming and buffering

* fix atomic lags

* fix size

* make chunked encoding work again (WIP streaming chunked)

* WIP: chunked encoding streaming

* fix end of streamings

* working streaming + compression

* add fixes + tests

* fmt + fix proxy

* fix oopsies

* codegen after merge

* fmt + fixes

* more fixes

* more fixes and logs

* avoid double free

* check empty before pop

* check empty on pop

* fix copy to real when complete

* remove unnecessary logs

* better has_schedule_callback swap, body locked size helper, remove isEmpty from unbounded_queue pop

* fix response ref, fix body_size

* add deflate support, fix error throw, add more tests

* codegen after merge

* remove logs, add connection close test

* fix macOS build

* fix redirect error option

* make body_size more clear

* support new Reponse(response)

* toString DOMWrapper objects properly instead of supporting response in Response constructor

* ignore headers with no name, add more tests

* oops

* handle transform with fetch

* add gz image stream test

* remove duplicate test

* fix missing chunk on macOS under pressure

* oops include all OS

* some fixes

* compare buffers instead of sizes

* refactor err.err and protect it
2023-08-21 20:30:34 -07:00
dave caruso
91eacade97 Fix inquirer (#4245) 2023-08-21 19:32:41 -07:00
Jarred Sumner
6a02edef5d Update module_loader.zig 2023-08-21 19:04:18 -07:00
Ai Hoshino
a61953bbfd Fix(bundler): allow generating exe file in nested path. (#4226)
* Fix(bundler): allow generating binary file in nested path.
Close: #4195

* Add read flag for fd.

* refactor
2023-08-21 18:22:37 -07:00
Colin McDonnell
f629365cb7 Fix typo 2023-08-21 17:48:48 -07:00
dave caruso
cdace9bffb Fix crypto.EC constructor (#4242)
* Fix EC constructor

* make js
2023-08-21 16:40:25 -07:00
dave caruso
664119841a Implement napi_ref_threadsafe_function (#4156)
* Implement napi_ref_threadsafe_function

* work on this

* i hate event loops

* little better

* clean
2023-08-21 16:26:07 -07:00
dave caruso
397182b400 feat: Implement Bun.inspect.custom (#4243)
* add Bun.inspect.custom

* test

* Add Types
2023-08-21 16:25:37 -07:00
Jarred Sumner
752e59f23c Fixes #4089 (#4105)
* Fixes #4089

* Update bindings.cpp

* address PR feedback

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-21 16:25:23 -07:00
Jarred Sumner
def5a85d90 40x faster .toString('hex') (#4237)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-21 08:31:17 -07:00
Jarred Sumner
1b8f569792 Fix memory leak in buffer.toString("hex") (#4235)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-21 03:31:33 -07:00
xxxhussein
183b818462 Update README.md (#4232)
Fix typo in README.md
2023-08-21 01:32:08 -07:00
Jarred Sumner
9cf868fef4 Add missing header change 2023-08-21 01:30:45 -07:00
Jarred Sumner
ed803f7d1c Add LazyProperty 2023-08-21 01:30:13 -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
8c23e77e99 Regenerate 2023-08-21 01:29:15 -07:00
Jarred Sumner
c99a9ba33a Implement File 2023-08-21 01:29:06 -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
3de9ce5f30 Implement --inspect-brk (#4222)
* Implement `--inspect-brk`

* Bump WebKit

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-20 19:34:33 -07:00
Jarred Sumner
65280853ac Fix test failures from 3a9a6c63a (#4231)
cc @Hanaasagi

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-20 19:22:55 -07:00
Ai Hoshino
3a9a6c63ac Fix(bundler): use different alias mappings based on the target. (#4163)
* Fix(bundler): use different alias mappings based on the target.
Close: #3844

* chore: reduce duplicated code.

* chore: split to two separate ComptimeStringMap.
2023-08-20 01:52:17 -07:00
Jarred Sumner
360acf5a80 Update BunDebugger.cpp 2023-08-19 22:11:48 -07:00
Jarred Sumner
d432dad666 Introduce bun --inspect-wait
This waits for the inspector to connect before beginning execution
2023-08-19 22:07:35 -07:00
Jarred Sumner
eec5bfb23a misc non-posix fixes 2023-08-19 20:14:29 -07:00
Jarred Sumner
53c755467b Update lockfile.md 2023-08-19 19:10:20 -07:00
Jarred Sumner
039404800f Update lockfile.md 2023-08-19 19:09:10 -07:00
Jarred Sumner
3c4b689050 Update lockfile.md 2023-08-19 19:08:17 -07:00
Omar
394dd86797 Update Dockerfile-distroless (#4210) 2023-08-19 18:48:59 -07:00
Jarred Sumner
62bde005b2 Fix symbol visibility 2023-08-19 18:48:07 -07:00
Jarred Sumner
19054ebc35 [napi] Implement node_api_create_syntax_error, node_api_symbol_for, node_api_throw_syntax_error
These were marked as experimental
2023-08-19 18:34:56 -07:00
Jarred Sumner
507761b463 Fix crash impacting sharp & resvg (#4221)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-19 18:17:16 -07:00
Jarred Sumner
196620183f Fixes #172 (#4220)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-19 17:46:59 -07:00
Jarred Sumner
86ad015147 Add inline sourcemaps when --inspect is enabled (#4213)
* Add inline sourcemaps when --inspect is enabled

* Add some assertions

* Update javascript.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-19 00:20:23 -07:00
Dylan Conway
db09ed15fd tty ReadStream, WriteStream, and readline rawmode (#4179)
* tty `WriteStream`, `ReadStream`, and rawmode

* tests

* refactor prototypes

* fix failing test

* fix test and library usage

* more merge

* fix child_process test

* create pseudo terminal for tty tests

* match node logic

* handle invalid tty

* close descriptors

* move tests to another process

* fix test again

* fix test on linux
2023-08-19 00:11:24 -07:00
Jarred Sumner
bf517d9f8e Fix make headers (again) 2023-08-18 22:14:38 -07:00
Jarred Sumner
e9b684c972 Add HTMLRewriter microbnechmark 2023-08-18 22:14:24 -07:00
Jarred Sumner
e8f0ed3beb Fix make headers 2023-08-18 22:09:27 -07:00
Jarred Sumner
3ca7fde363 prettier 2023-08-18 20:41:54 -07:00
Brúnó Salomon
c2ec47ff32 feat: add self-closing & can-have-content (#4206) 2023-08-18 19:59:23 -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
Dylan Conway
d0664f8377 fix --bail test 2023-08-18 14:51:55 -07:00
dave caruso
6fd0043f6b Add util.inspect.custom support to util.inspect/Bun.inspect/console.log (#4194)
* start work on util.inspect.custom

* asdf

* finish util inspect custom inspect

* inspect

* fix tests

* revert

* tidy

* revert

* oops

* test

* fix issues
2023-08-17 20:56:52 -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
Colin McDonnell
cfbd1373e2 Update Astro guide 2023-08-17 18:38:10 -07:00
dave caruso
f74585ff01 Allow IncomingRequest.req to be overwritten. (#4154)
* Allow IncomingRequest.req to be overwritten.

* add test

* fix test

* yoo
2023-08-17 14:57:43 -07:00
Ai Hoshino
b2f8ef4dff Fix(node:fs): add buffer parameter in fs.read callback. (#4191)
Close: #4178
2023-08-17 14:27:33 -07:00
Brúnó Salomon
b0e76a965d refactor: move HTMLRewriter to c++ bindings (#4193) 2023-08-17 14:25:09 -07:00
Colin McDonnell
cfce38858f Fix description for executables page 2023-08-17 14:07:36 -07:00
Colin McDonnell
540740c129 Add Astro guide (#4110) 2023-08-17 12:51:45 -07:00
xxxhussein
b1356718ad correct guide's bunfig example option (#4192) 2023-08-17 12:13:16 -07:00
Colin McDonnell
b9b50e39d6 Fix broken link 2023-08-16 22:58:36 -07:00
Jarred Sumner
6c3dabd84e Fix leaking .ptr (#4181)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-16 22:10:01 -07:00
Colin McDonnell
d4438e9496 Add solidstart guide (#4182) 2023-08-16 21:30:37 -07:00
Colin McDonnell
56d591b903 Add sveltekit guide (#4180) 2023-08-16 20:52:49 -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
Dylan Conway
af23dab833 Create domjit.test.ts (#4173) 2023-08-15 22:13:13 -07:00
Dylan Conway
9efeef2e24 res.then 2023-08-15 21:51:43 -07:00
dave caruso
67a8b75183 fix this page (#4172) 2023-08-15 19:02:46 -07:00
Dylan Conway
bdaa712357 disable domjit for Buffer.alloc 2023-08-15 19:00:02 -07:00
dave caruso
b682e5bf59 Fix event loop issue with Bun.connect (#4157)
* Fix event loop issue with Bun.connect

* sorry

* add test and fix another edge case
2023-08-15 18:09:11 -07:00
Dylan Conway
17c348ed0a fix make headers 2023-08-15 14:56:21 -07:00
Dylan Conway
f05a38757a fix build 2023-08-15 14:33:45 -07:00
Ai Hoshino
553a471cdf chore: fix method name typo (#4162) 2023-08-15 08:11:11 -07:00
dave caruso
1a6a52314f fix importing too long of strings (#4155) 2023-08-15 01:56:37 -07:00
dave caruso
47450ed12c Make builtins' source origin use a valid url (#4152)
* Make source origin use a valid url

* disable minifyWhiteSpace

* the change
2023-08-14 20:28:18 -07:00
Colin McDonnell
eab7b4c3ea Small docs change 2023-08-14 12:08:33 -07:00
dave caruso
0329061f15 fix makefile (#4148) 2023-08-13 20:43:44 -07:00
Revenity
1e96cbfb02 Update Stric guides (#4137) 2023-08-12 20:03:41 -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
Ai Hoshino
b94433ce86 Fix using uninitialized variable when formatting config_path. (#4129)
Close: #4128
2023-08-11 22:14:08 -07:00
Jarred Sumner
ca26780b27 Deprecate loading node_modules.bun (#4131)
* Deprecate loading `node_modules.bun`

* realpath

* regenerate schema

* More

* more

* Update cli.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-11 22:13:46 -07:00
jhmaster
117cee5ca5 bun-wasm fixes & improvements (#4126)
* automate Bun.version & revision polyfills

* polyfill Bun.gc

* bun:jsc module initial polyfills

* fixes & improvements to bun-wasm
2023-08-11 18:20:21 -07:00
Jarred Sumner
43ebffedcd Support TypeScript's export type * as Foo from 'bar' (#4125)
* [TypeScript] Support `export type * as Foo from 'bar'`

* Update js_parser.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-11 18:06:48 -07:00
Jarred Sumner
ccb9daf7a4 Fix wasm build 2023-08-11 16:24:29 -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
Jarred Sumner
4731a460a2 Remove assertion 2023-08-10 19:58:59 -07:00
Jarred Sumner
99af827f25 More lazily initialize these static strings 2023-08-10 19:56:02 -07:00
Dylan Conway
a6ec7fe9b1 don't check for trailing slash, var stream 2023-08-10 19:06:51 -07:00
Dylan Conway
513a6d0df3 run files without extensions (#4113)
* run script without extension

* process stdio write fix
2023-08-10 19:00:06 -07:00
Jarred Sumner
115704b27b Fix memory leak in base64url (#4111)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-10 16:43:19 -07:00
Jarred Sumner
85b81624dc Handle thundering herd of setInterval (#4109)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-10 15:25:52 -07:00
Adhityaa Chandrasekar
cf12d80f5e fs.zig: create temp files with 0o700, not 0o007 (#4107) 2023-08-10 14:00:13 -07:00
Colin McDonnell
58e74eadb5 Update remix guide 2023-08-10 13:54:17 -07:00
Jarred Sumner
be05b93f39 zig fmt 2023-08-10 13:32:37 -07:00
Jarred Sumner
e25833d009 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>
2023-08-10 13:32:04 -07:00
Jacques
e65535cc05 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>
2023-08-10 13:29:53 -07:00
dave caruso
74f9fabd01 add util.formatWithOptions (#4090)
* Add formatWithOptions

* tests and tweaks

* adjust

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-08-10 13:09:03 -07:00
Colin McDonnell
8d207925d7 Fix title 2023-08-10 12:37:14 -07:00
Colin McDonnell
e0569ac47a Add remix guide 2023-08-10 12:36:54 -07:00
jhmaster
40befd8770 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>
2023-08-10 12:17:39 -07:00
Jarred Sumner
6718950a39 Fix test 2023-08-10 12:08:05 -07:00
dave caruso
68ac8c12c2 remove non-node node-fallbacks (#4082)
* remove non-node node-fallbacks.

* organize the imports
2023-08-10 11:57:37 -07:00
Jarred Sumner
28d1676d50 Update __global.zig 2023-08-09 16:50:00 -07:00
Colin McDonnell
883c4d8778 Updates 2023-08-09 13:47:32 -07:00
Yash Sharma
8717303a80 Add support for bun --revision (#4027)
Co-authored-by: Yash Sharma <yashsharma@Yashs-MacBook-Air.local>
2023-08-09 10:43:04 -07:00
Ai Hoshino
385d440694 Fix constructing buffer from a UTF16 string with the Latin1 encoding. (#4086)
Close: #3914
2023-08-09 09:45:50 -07:00
Jarred Sumner
b3019270c9 Update SIMDUTF (#4078) 2023-08-09 09:14:51 -07:00
Jarred Sumner
5d7c77aab0 Update main-worker-file.js 2023-08-08 23:02:45 -07:00
Jarred Sumner
2c70837ae7 Run prettier 2023-08-08 23:01:03 -07:00
Jarred Sumner
bed7ff7dd0 Remove unintentional logs from #4043 2023-08-08 22:59:40 -07:00
dave caruso
450b066cb8 Fix one of the astro segfaults, also fix bun init version (#4079)
* 4->16

* add assertions

* fix version stuff
2023-08-08 22:27:18 -07:00
Jacques
63f58f4026 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
2023-08-08 22:25:32 -07:00
dave caruso
009fe18fa2 worker tests (#4058)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-08-08 22:19:46 -07:00
Tiramify (A.K. Daniel)
40d00a961e 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>
2023-08-08 22:14:30 -07:00
dave caruso
1941dbbd71 Set exports to {} in user-constructed CommonJSModuleRecords (#4076) 2023-08-08 19:37:36 -07:00
dave caruso
320cdcf97e Fix require("console") #3820 (#4073)
* Fix #3820

* Add Module (#4074)
2023-08-08 18:23:33 -07:00
Dylan Conway
454407003e Update Worker.cpp 2023-08-08 15:08:16 -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
Jarred Sumner
320ee6b6b7 import bun (#4055)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-08 01:42:44 -07:00
Jarred Sumner
38df5b146f Enable Headers.prototype.getSetCookie
Fixes #4057
2023-08-08 01:18:36 -07:00
Jarred Sumner
25c91aecab Remove printf 2023-08-08 00:31:46 -07:00
dave caruso
5497accbdb Add env option for node:worker_threads (#4052)
* almost works

* env stuff

* test fixes

* wtfmove

* ok

* ok

* ref by default

* it now does the ref stuff by default

* cool
2023-08-07 23:58:38 -07:00
jhmaster
182e600eb7 Fix Bun.hash functions (#4054)
* fix `Bun.hash` functions to behave as expected

* update Bun.hash tests
* properly test the returned hash
* include murmur32v2

* update Bun.hash docs

* run fmt
2023-08-07 23:30:05 -07:00
Dylan Conway
cb873cc081 fix worker.ref() 2023-08-07 22:40:32 -07:00
Jarred Sumner
330d19e344 add bun update to help menu 2023-08-07 21:14:42 -07:00
Dylan Conway
2fe6a965af implement fetching data urls (#4000)
* fetch data urls

* `byteSlice`

* deinit slice

* allocate `mime_type` string if needed

* `content_type_allocated` and uncomment tests

* `str_`

* createAtom and slice decode result
2023-08-07 20:15:53 -07:00
Alex Lam S.L
a32097aa9f implement bun update (#4046)
- analogous to `npm update`
- `bun update <name>` to refresh specified package under `package.json`
- `bun update` to refresh all package to latest versions
2023-08-07 20:11:32 -07:00
Dylan Conway
1239c9460a fix iterating headers with set-cookie (#4048)
* fix iterating headers with `set-cookie`

* a test

* move work to `HTTPHeaderMap::set`

* append set-cookie after sort

* remove compare function
2023-08-07 19:32:23 -07:00
Jarred Sumner
f2f227720b WASM test analyzer (#4043)
* wasm

* WASM test scanner

* Update Makefile

* Update Makefile

* Configurable heap limit

* slightly better error

* Update js_parser.zig

* Update path.test.js

* Update node.mjs

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-07 18:51:16 -07:00
Colin McDonnell
0b183beb51 Improve plugin docs 2023-08-07 14:02:43 -07:00
Ai Hoshino
5ce393aab8 Fix path.normalize edge case. (#4042)
Close: #4041
2023-08-07 06:44:04 -07:00
Jarred Sumner
00a907c7de Fixes #4001 (#4034)
* Avoid a utf8 conversion in isDetached

* Fixes #4001

* hit the long url codepath

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 22:49:10 -07:00
Jarred Sumner
0665733b03 Fixes #4029 and fixes #4022 (#4032)
* Fixes #4029 and Fixes #4022

Fixes #4029

Fixes #4022

* Add test for all the fetches

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 20:39:40 -07:00
Jarred Sumner
70c3371b14 Fixes #4010 (#4031)
* Fixes #4010

* Update websocket_http_client.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 19:30:06 -07:00
Jarred Sumner
0b2be88bac Update build-id 2023-08-06 18:07:15 -07:00
Jarred Sumner
8297fb0d2f Bind require.resolve() (#4030)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 18:06:18 -07:00
Jarred Sumner
04925bb94c Fixes #4020 2023-08-06 17:57:44 -07:00
Yash Sharma
3185ca2d95 Running missing scripts exits with non-0 (#4026)
Co-authored-by: Yash Sharma <yashsharma@Yashs-MacBook-Air.local>
2023-08-06 17:43:24 -07:00
Alex Lam S.L
b93f304c06 [install] handle bun add of existing peerDependencies correctly (#4028) 2023-08-06 17:42:08 -07:00
Jarred Sumner
a9b3d58353 fix nan 2023-08-06 07:55:22 -07:00
Jarred Sumner
cf48379921 Update coverage.md 2023-08-06 07:48:06 -07:00
Jarred Sumner
f8026df821 Update lol-html 2023-08-06 07:35:29 -07:00
Jarred Sumner
fa4e5d033e Fixes #3129 (#4018)
* Fixes #3129

* add CloseEvent

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 07:35:07 -07:00
Jarred Sumner
1462445419 Code coverage for bun test (#3975)
* WIP code coverage initial commit

* almost works

* one approach

* Code Coverage

* Update WebKit

* it works but is not yet accurate

* skip double ascii check

* wrapper

* it works but i'm not sure what to do about blocks

* hide blocks for now

* Update ZigSourceProvider.cpp

* Create coverage.md

* Update nav.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 06:30:23 -07:00
Ai Hoshino
ecdf2ffa6c feat: impl dns.getServers (#3982)
* feat: impl `dns.getServers`
Close: #3981

* check return value of `ares_inet_ntop`
2023-08-06 06:16:54 -07:00
dave caruso
cd0774cd89 Implement --test-name-pattern (#3998)
* Fix end not being emitted all the time

* stuff

* Implement -t

* Undo js_printer changes

* Undo http changes

* Update InternalModuleRegistryConstants.h

* Delete unrelated test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-06 06:13:39 -07:00
Ai Hoshino
cf8650937a Fix(cli/init): support subpath entrypoint. (#4002) 2023-08-05 04:48:22 -07:00
dave caruso
3803d39840 Remove Bun.plugin transpiler hook, encourage usage of --preload instead (#3987)
* Remove Bun.plugin transpiler hook

* one missing case
2023-08-05 04:42:30 -07:00
Colin McDonnell
78081cbb40 Support --dev/-D and support more flags on bun install (#3989) 2023-08-04 20:41:16 -07:00
Dylan Conway
6bdee80cfc fix macro string escaping (#3967)
* handle macro escaping

* remove printer

* use `js_lexer.decodeEscapeSequences`
2023-08-04 19:34:09 -07:00
Jarred Sumner
637a38f394 Fixes #3991
Fixes #3991
2023-08-04 18:54:08 -07:00
Alex Lam S.L
190ba6b743 [install] handle workspace:* correctly (#3994)
- parse as path so it works on unversioned workspaces
- fix missed storage of workspace version

fixes #3985
2023-08-04 18:21:13 -07:00
Jarred Sumner
e2c526708a Update import-meta.md 2023-08-04 17:40:11 -07:00
Jarred Sumner
f06f178862 Fix incorrect docs 2023-08-04 17:38:17 -07:00
Alex Lam S.L
8275b8ccd2 [types] fix blob.json() (#3995) 2023-08-04 17:30:38 -07:00
dave caruso
d196aa2de6 FFI typo (#3973)
* FFI typo

* add tests

* it was a newline
2023-08-04 16:08:50 -07:00
Yifei Wang
bdbc21ff7b Buffer.copy should ignore out-of-range sourceEnd (#3971) 2023-08-04 16:08:25 -07:00
Alex Lam S.L
ff315a3bf2 [install] store resolved workspace path in lockfile (#3974)
- resolve cwd consistently
- speed up package diff
- update `test/bun.lockb`

fixes #3685
fixes #3958
2023-08-04 23:28:42 +03:00
Colin McDonnell
63d265780f Fix types (#3963)
* Fix types

* Add ws module

* Add *.toml module declaration

* Clean up
2023-08-04 12:56:34 -07:00
simylein
18a2e18ae1 feat(hot-clear-screen): clear terminal on hot reload (#3976)
* feat(hot-clear-screen): clear terminal on hot reload

* fix(hot-clear-screen): is now I n the correct place

* fix(hot-clear-screen): enable buffering after terminal clear
2023-08-04 04:01:10 -07:00
Jarred Sumner
76dee9312b Add microbenchmark for private properties 2023-08-03 20:14:17 -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
Jarred Sumner
717f0a2f42 Make the test better 2023-08-03 18:23:57 -07:00
Jarred Sumner
c2ebdf812b Test for Module.wrap() 2023-08-03 18:22:45 -07:00
Jarred Sumner
9ab2acced6 Implement Module.wrap() 2023-08-03 18:22:45 -07:00
Jarred Sumner
944fcebc2b Update build-id (#3940)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-03 18:15:55 -07:00
Colin McDonnell
9222316101 Update Node.js compat docs 2023-08-03 17:48:18 -07:00
Colin McDonnell
d10860d272 Add type tests 2023-08-03 17:44:18 -07:00
Colin McDonnell
76fa3076cd Add type tests, update modules.md 2023-08-03 17:41:47 -07:00
Colin McDonnell
112030481f More guides and fixing links (#3960)
* More guides

* WIP

* Updates

* Fix
2023-08-03 16:31:05 -07:00
Dylan Conway
9574db355f allow bundling builtins for browser (#3959)
* Update resolver.zig

* bundle resolve error for non-existent builtins

* tests
2023-08-03 16:27:45 -07:00
Ai Hoshino
a4d996c337 Fix edge case in path.relative. (#3952)
Close: #3924
2023-08-03 15:40:37 -07:00
Ashcon Partovi
08cf0d562a Bunch of fixes (#3516)
* Fix #3497

* Fix #3497

* Run prettier

* Fix package.json

* remove this too

* yeah

* Fix missing tests

* Use native for utf-8-validate

* Add module ID names to builtins

* Defer evaluation of ESM & CJS modules until link time

* Use builtin name for exports in plugins

* Add module IDs to builtins

* Update JSC build with new flag

* WebKit upgrade fixes

* Update WebKit

* prettier

* Upgrade WebKit

* bump

* Update once again

* Add visitAdditionalChildren, remove .fill() usage

* Update process.test.js

* Update fs.test.ts

---------

Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-03 15:31:55 -07:00
Alex Lam S.L
9a2c3dea88 [install] fix stale bun.lockb on workspaces (#3945)
- handle workspaces under `--production` correctly
- fix `Makefile`
2023-08-03 12:37:29 -07:00
Ai Hoshino
2c9ff9584a Minor optimization: Avoid extra copying when the chunk has only one element. (#3946)
* Optimize the case where there is only one chunk.

* add generated code
2023-08-03 12:35:04 -07:00
Ai Hoshino
30dde62521 Fix the string encoding in path.extname. (#3949)
Close: #3948
2023-08-03 12:34:41 -07:00
Jarred Sumner
928816bef0 SvelteKit compatibility hack 2023-08-02 21:07:39 -07:00
dave caruso
f17655b2eb typo (#3941) 2023-08-02 20:43:39 -07:00
Ashcon Partovi
9f2dcb064d Fix formatting 2023-08-02 19:02:54 -07:00
dave caruso
6c176cb243 Dave/removedeprecation (#3938)
* hide deprecated stuff

* this edit

* hi
2023-08-02 18:57:11 -07:00
dave caruso
e83058cfe7 Fix http write (#3939)
* Fix encoding problem when uploading a binary file.
Close: #3116

* use BufferList

* Finish rebase

---------

Co-authored-by: Hanaasagi <ambiguous404@gmail.com>
2023-08-02 18:56:41 -07:00
dave caruso
aaaaf744a8 Remove module and browser conditions (#3935)
* fix astro compiler

* clean this up

* Update options.zig

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2023-08-02 18:46:57 -07:00
Jarred Sumner
207c7eb509 Implement node:worker_threads (#3923)
* Start to implement `worker_threads`

* more

* more!!

* more

* Update bundle_v2.zig

* delete outdated tests

* `receiveMessageOnPort`

* props test and export default

* fix merge

* not implemented tests

* individual imports

* `receiveMessageOnPort` tests

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2023-08-02 18:12:12 -07:00
Ashcon Partovi
505e77c2d0 Implement node:diagnostics_channel (#3934)
* Add types for `node:async_hooks`

* Implement \`node:diagnostics_channel\`
2023-08-02 18:04:24 -07:00
Jarred Sumner
ef6d25a48f Fix 2023-08-02 17:55:42 -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
Jarred Sumner
7656b4b17e Fixes #3931 (#3933)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-08-02 16:16:22 -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
Vaughan Rouesnel
4f39d5b54a Update streams.md (#3926) 2023-08-02 12:59:21 -07:00
Ciro Spaciari
d9f162ff95 clean declare structs (#3929) 2023-08-02 12:58:44 -07:00
Dylan Conway
9bbac35fd0 close BroadcastChannel in tests 2023-08-01 19:12:30 -07:00
Ciro Spaciari
eba27540b0 Fix some flaky tests (#3919)
* fix some flask tests

* fix condition on prisma test

* oops
2023-08-01 19:06:08 -07:00
Ciro Spaciari
9cb3f3386e Fix expanding on .env files (#3918)
* fix expanding

* refactor locks

* bound checks

* fix comment

* one more test

* oops
2023-08-01 19:04:05 -07:00
Dylan Conway
6c40d6f2f5 add BroadcastChannel (#3922)
* copy and format

* update `SerializedScriptValue.cpp`

* use `expect().fail()` in message channel tests

* rename `BroadcastChannelIdentifier.h`

* copy registries

* progress and tests

* cleanup

* worker and broadcast channel test

* `BroadcastChannel` ref and unref

* `MessagePort` ref, unref, and hasRef

* remove `SecurityContext.cpp/h`

* add types
2023-08-01 18:40:02 -07:00
Dylan Conway
0ced5520e6 Update worker.test.ts 2023-08-01 18:05:11 -07:00
Jarred Sumner
8aa5892f70 Update types 2023-08-01 16:44:16 -07:00
Jarred Sumner
bd2563ef4c Update JSWorker.cpp 2023-08-01 16:43:48 -07:00
Jarred Sumner
214dc039e0 Implement Worker.prototype.threadId 2023-08-01 16:42:49 -07:00
Emilio Sánchez
e2b39d0807 Fix prisma.md typo (#3921) 2023-08-01 12:03:53 -07:00
Vlad Sirenko
7a8f57c4e5 throw error if node module does not exist (#3913) 2023-07-31 19:41:41 -07:00
Colin McDonnell
8589ba2f17 Update stricjs 2023-07-31 17:07:01 -07:00
Colin McDonnell
dd8fdd87dc Switch table to headings in Nodejs compat page 2023-07-31 16:39:09 -07:00
Colin McDonnell
7b8df184b3 Add env guides 2023-07-31 14:24:08 -07:00
Colin McDonnell
90991da908 Update titles, add Workspaces guide 2023-07-31 13:57:17 -07:00
Colin McDonnell
404b90badc Add ecosystem guides (#3847)
* Add ecosystem guides

* Update titles

* Rename stric

* Add unlink and fetch guides

* Add formdata guide

* Tweak title

* Moar
2023-07-31 12:20:23 -07:00
Jarred Sumner
67599f97ad More logging 2023-07-31 06:50:55 -07:00
Jarred Sumner
8b715dee5b Fixes #1669 2023-07-31 06:39:19 -07:00
Jarred Sumner
f2983e50b7 Add a test for TransformStream 2023-07-31 06:17:56 -07:00
Jarred Sumner
e47a448434 Fixes #2935 2023-07-31 06:03:31 -07:00
xxxhussein
de5890ff20 Update arraybuffer-to-buffer.md (#3906)
Fix title. This page shows how to convert an ArrayBuffer to a Buffer, not a Uint8Array
2023-07-31 04:00:21 -07:00
Jarred Sumner
aae92c76a6 Fix incorrect function 2023-07-31 01:33:39 -07:00
Jarred Sumner
9ecae59bbb Fix memory leak in response.clone(), further reduce memory usage of Request & Response (#3902)
* Atomize respsone.url & response.statusText

* Fix warning

* Atomize Request & Response URLs when possible

* Fix memory leak in response.clone()

bun/bench/snippets on  jarred/atomize
❯ mem bun --smol request-response-clone.mjs
cpu: Apple M1 Max
runtime: bun 0.7.2 (arm64-darwin)

benchmark             time (avg)             (min … max)       p75       p99      p995
-------------------------------------------------------- -----------------------------
req.clone().url     77.3 ns/iter  (40.35 ns … 222.64 ns)  91.53 ns 128.11 ns 172.78 ns
resp.clone().url  162.43 ns/iter    (116 ns … 337.77 ns)  177.4 ns 232.38 ns 262.65 ns

Peak memory usage: 60 MB

bun/bench/snippets on  jarred/atomize
❯ mem bun-0.7.1 --smol request-response-clone.mjs
cpu: Apple M1 Max
runtime: bun 0.7.1 (arm64-darwin)

benchmark             time (avg)             (min … max)       p75       p99      p995
-------------------------------------------------------- -----------------------------
req.clone().url   115.85 ns/iter  (80.35 ns … 247.39 ns) 128.19 ns 181.93 ns 207.23 ns
resp.clone().url  252.32 ns/iter  (202.6 ns … 351.07 ns) 266.56 ns 325.88 ns 334.73 ns

Peak memory usage: 1179 MB

* Update tests

* Update js_ast.zig

* Update test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-30 23:51:43 -07:00
audothomas
2ea7290172 FIx Uint8Array to a ReadableStream code snippet (#3895) 2023-07-30 17:53:22 -07:00
Jarred Sumner
092ada6d2f Micro-optimize LineOffsetTable.generate
5.00 ms  100.0%	0 s	 	bun (81023)
2.00 ms   40.0%	2.00 ms	 	 WTF::HashTableAddResult<WTF::HashTableIterator<WTF::HashTable<WTF::Packed<WTF::StringImpl*>, WTF::Packed<WTF::StringImpl*>, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Packed<WTF::StringImpl*>>, WTF::HashTraits<WTF::Packed<WTF::StringImpl*>>, WTF::HashTraits<WTF::Packed<WTF::StringImpl*>>>, WTF::Packed<WTF::StringImpl*>, WTF::Packed<WTF::StringImpl*>, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Packed<WTF::StringImpl*>>, WTF::HashTraits<WTF::Packed<WTF::StringImpl*>>, WTF::HashTraits<WTF::Packed<WTF::StringImpl*>>>> WTF::HashTable<WTF::Packed<WTF::StringImpl*>, WTF::Packed<WTF::StringImpl*>, WTF::IdentityExtractor, WTF::DefaultHash<WTF::Packed<WTF::StringImpl*>>, WTF::HashTraits<WTF::Packed<WTF::StringImpl*>>, WTF::HashTraits<WTF::Packed<WTF::StringImpl*>>>::addPassingHashCode<WTF::HashSetTranslatorAdapter<WTF::BufferFromStaticDataTranslator<unsigned char>>, WTF::HashTranslatorCharBuffer<unsigned char> const&, WTF::HashTranslatorCharBuffer<unsigned char> const&>(WTF::HashTranslatorCharBuffer<unsigned char> const&, WTF::HashTranslatorCharBuffer<unsigned char> const&)
2.00 ms   40.0%	2.00 ms	 	 heap.StackFallbackAllocator(1024).free
2.00 ms   40.0%	0 s	 	  em.Allocator.rawFree
2.00 ms   40.0%	0 s	 	   em.Allocator.log2a
2.00 ms   40.0%	0 s	 	    em.Allocator.free__anon_1330765
2.00 ms   40.0%	0 s	 	     em.Allocator.resize__anon_1069235
2.00 ms   40.0%	0 s	 	      array_list.ArrayListAligned(i32,null).toOwnedSlice
2023-07-30 08:27:31 -07:00
Jarred Sumner
e636f1b026 skip flay test 2023-07-30 08:26:41 -07:00
Jarred Sumner
54a2d89bd2 Support bun . to run the entry point (#3891)
* Support `bun .`

* Fix tests

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-30 07:54:17 -07:00
Tiramify (A.K. Daniel)
0ea59b4c93 Update install.md (#3890) 2023-07-30 06:41:51 -07:00
Jarred Sumner
b0d3ea5a43 Fix issue with file loader (#3889)
* Fix issue with file loader

* Update jest-extended.test.js

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-30 05:59:54 -07:00
Jarred Sumner
a9dc5d51e3 Fixes #3884 2023-07-30 04:04:06 -07:00
Jarred Sumner
749194378a Bump 2023-07-30 04:04:06 -07:00
Jarred Sumner
794e657eb2 remove unnecessary move 2023-07-30 04:04:06 -07:00
Jarred Sumner
1db119ec11 Fix memory leak (#3887)
* Fix memory leak

* Remove an extra copy

* Further fixes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-30 02:03:32 -07:00
Ai Hoshino
413fd28120 Fix coredump when reading an empty file(node:stream:createReadStream) (#3882)
* Fix coredump when reading an empty file.
Close: #3607

* It seems that the fd is closed when `auto_close` is true.
2023-07-30 01:18:13 -07:00
Tiramify (A.K. Daniel)
40a9ba6340 Improv. (#3885) 2023-07-30 01:17:02 -07:00
Jarred Sumner
681be10294 Make bun:jsc memoryUsage more accurate (#3876)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-29 06:18:51 -07:00
0xflotus
dccf82b1c6 docs: fixed small errors (#3879)
* Update cache.md

* Update index.md

* Update macros.md

* Update writing.md
2023-07-29 03:58:45 -07:00
0xflotus
5563be99d3 fix: small error (#3878) 2023-07-29 03:32:24 -07:00
Jhorman Tito
bcb6dc7806 typo spawn.md (#3875) 2023-07-29 00:35:13 -07:00
Jarred Sumner
dae2928620 Update nodejs-apis.md 2023-07-28 23:58:59 -07:00
Jarred Sumner
05ef9ec141 Update nodejs-apis.md 2023-07-28 23:57:02 -07:00
Jarred Sumner
53cc4df191 Defer task destruction 2023-07-28 20:34:57 -07:00
Jarred Sumner
05716ff39b Stat largefile test (#3870)
* Add test for stat on a large file

* Update fs.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-28 18:55:04 -07:00
Jarred Sumner
4f914cbfe8 Ignore when printing to stdout errors (#3869)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-28 18:53:44 -07:00
Jarred Sumner
da7c1d84e9 Fix bug with /path/to/absolute/bun.lockb 2023-07-28 18:52:04 -07:00
Dylan Conway
aebec5b329 markBinding 2023-07-28 18:07:28 -07:00
Dylan Conway
c68d9ae634 optional parameter 2023-07-28 18:04:00 -07:00
Jarred Sumner
bd66a9a94c Fixes #3868
Fixes #3868
Fixes #849
2023-07-28 17:53:12 -07:00
Jarred Sumner
1490cdc4ff Fix assertion failure and possible infinite loop when printing as yarn lock files 2023-07-28 17:40:05 -07:00
Jarred Sumner
97009a49bd Mark broken test as todo 2023-07-28 16:59:46 -07:00
Dylan Conway
d432448ac8 fix types and add message channel/port gc test 2023-07-28 16:55:49 -07:00
Dylan Conway
d614fdfaac MessageChannel and MessagePort (#3860)
* copy and format

* copy

* copy

* cleanup

* some tests

* spellcheck

* add types

* don't lock getting contextId

* array buffer test
2023-07-28 16:44:28 -07:00
Jarred Sumner
0a4e476a7c mark tests as todo 2023-07-28 16:24:22 -07:00
Vlad Sirenko
9078b1286d add fork to child_process (#3851)
* add fork to child_process

* fix export

* add test to child_process method `fork`

* fmt fork

* remove only from test
2023-07-28 16:00:43 -07:00
Tiramify (A.K. Daniel)
242d8655d8 feat(bun/test): Impl. expect().pass() & expect().fail() (#3843)
* Impl. pass & fail

* fix

* fix 2

* smol
2023-07-28 15:46:44 -07:00
Ai Hoshino
9b91e3c1a2 fix the chunk boundary (node:stream:createReadStream) (#3853)
* fix the slice boundary.
Close: #3668

* Add more boundary test case.

* fix end is 0.
2023-07-28 15:44:33 -07:00
Jarred Sumner
7a1ebec26f Support file: URLs in fetch (#3858)
* Support file: URLs in `fetch`

* Update url.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-28 15:44:05 -07:00
Ciro Spaciari
e7c80b90b8 fix(tls) exposes native canonicalizeIP and fix rootCertificates (#3866)
* exposes native canonicalizeIP

* remove unintended duplicate

* add tests

* add tests for debug builds

* add rootCertificates test and fix len

* just randomize test ids on prisma

* remove work around and bump usockets with the actual fix

* fix case

* bump uws
2023-07-28 15:43:15 -07:00
Jarred Sumner
e110ccf84d Fixes #3795 (#3856)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-28 01:33:00 -07:00
Jarred Sumner
c2a744f0cc Add todo
cc @cirospaciari
2023-07-28 00:34:54 -07:00
Jarred Sumner
38168f3c85 Update pull_request_template.md 2023-07-28 00:17:47 -07:00
Jarred Sumner
cbaab23f6d Update pull_request_template.md 2023-07-28 00:17:26 -07:00
Jarred Sumner
3e5beb1279 Fix bug with // @bun annotation in main thread (#3855)
* Uncomment test

* Fix bug with // @bun + async transpiler

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-27 22:30:10 -07:00
Jarred Sumner
70b9bf743c Add Bun.isMainThread 2023-07-27 22:28:28 -07:00
Jarred Sumner
f3153fbee9 Uncomment test 2023-07-27 20:46:25 -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
52f39d728f Update pull_request_template.md 2023-07-27 18:12:11 -07:00
Jarred Sumner
73eb59019a Update pull_request_template.md 2023-07-27 18:11:28 -07:00
Jarred Sumner
3b24305b7c Update pull_request_template.md 2023-07-27 18:10:49 -07:00
Jarred Sumner
1304779826 Update pull_request_template.md 2023-07-27 18:03:44 -07:00
Jarred Sumner
65d0884361 Update pull_request_template.md 2023-07-27 18:01:01 -07:00
Jarred Sumner
16fdc074ca Update pull_request_template.md 2023-07-27 18:00:03 -07:00
Jarred Sumner
6b35fd847f Create pull_request_template.md 2023-07-27 17:56:11 -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
16a7224ce5 Fix hot reloading in canary (#3848)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-27 15:52:52 -07:00
Jarred Sumner
7c44773f38 Outdated copy 2023-07-27 15:22:53 -07:00
Jarred Sumner
85895bd248 Use putDirectIndex instead of initializeIndex (#3839)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-27 14:45:32 -07:00
Luigi Pinca
6c2ec2868f Remove no longer needed flag from benchmark documentation (#3845)
`Deno.serve()` was stabilized in version 1.35.0.
2023-07-27 13:27:54 -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
dc0d767f27 Enable Promise.withResolvers()
https://github.com/tc39/proposal-promise-with-resolvers

Thanks @dcrousso
2023-07-26 23:52:57 -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
Jarred Sumner
ec2cf38ad8 [fetch] Ignore invalid Content-Encoding header (#3834)
Fixes #3802

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-26 20:24:36 -07:00
Colin McDonnell
34fd4df646 Fix broken anchors 2023-07-26 17:11:15 -07:00
Jarred Sumner
a6d54e5949 Update macro-test.test.ts 2023-07-26 16:56:26 -07:00
Jarred Sumner
664ccec7d3 Disable concurrent transpiler in macros 2023-07-26 16:54:36 -07:00
Dylan Conway
1a558ef753 fix decorator and declare (#3828)
* return the prop if there are decorators

* test and comment
2023-07-26 16:31:08 -07:00
Jarred Sumner
f3200ac0ca Don't hoist bun plugin in concurrent transpiler 2023-07-26 16:06:04 -07:00
Jarred Sumner
011b50589c Concurrent Transpiler (#3816)
* Concurrent Transpiler

* Fix bug with some improts and add jsc alias

* Some comments

* Fix crash

* Update module_loader.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-26 15:36:05 -07:00
Alex Lam S.L
06503663b1 [install] handle workspace:[alias@]range (#3819) 2023-07-26 15:35:47 -07:00
Colin McDonnell
4c89c60867 Add files (#3826) 2023-07-26 14:59:39 -07:00
Colin McDonnell
6bfee02301 Fix typo 2023-07-25 12:27:27 -07:00
Ai Hoshino
0297cb1527 fix the encoding of dirname's return value. (#3799) 2023-07-25 05:49:48 -07:00
Jarred Sumner
4209703b35 Make this other name better 2023-07-25 02:08:51 -07:00
Jarred Sumner
8edeb617a8 Make this name better 2023-07-25 02:08:23 -07:00
Ai Hoshino
130079b558 fix some cases in the dirname function. (#3785)
Close: #3782
2023-07-25 00:41:22 -07:00
Jarred Sumner
8356830727 Trace printing at runtime 2023-07-24 22:00:43 -07:00
Jarred Sumner
5edb756533 Trace module resolution 2023-07-24 21:59:50 -07:00
Jarred Sumner
e402159df1 test gardening 2023-07-24 19:36:53 -07:00
dave caruso
8a0152e129 Merge import.meta.require and require to be the same thing (#3732)
* Merge import.meta.require and require to be the same thing

* support `require` and BunPlugin (runtime plugin)

* plugins

* unused code

* revert launch.json
2023-07-24 19:32:04 -07:00
Jarred Sumner
1f1d0bfcfb Make this test less flaky 2023-07-24 19:18:07 -07:00
Jarred Sumner
4ebf858f43 Less flaky 2023-07-24 19:14:41 -07:00
Jarred Sumner
90ce74a43e Skip test 2023-07-24 19:13:25 -07:00
Jarred Sumner
e1a59d355a slow test is allowed to be slow 2023-07-24 19:11:53 -07:00
Dylan Conway
e154763e4d fix rope string push (#3796)
* push to next next

* couple more tests

* end
2023-07-24 19:08:56 -07:00
Jarred Sumner
ac10a1b633 move this to troubleshooting 2023-07-24 17:16:34 -07:00
Alex Lam S.L
961312eab0 [install] fix workspace override of aliased npm dependency (#3784) 2023-07-24 17:01:43 -07:00
Jarred Sumner
6ca50526d7 bun:sqlite gets 10% faster (#3780)
* bun:sqlite gets 10% faster

❯ bun-debug bun.js # After
[0.03ms] ".env"
cpu: Apple M1 Max
runtime: bun 0.7.1_debug (arm64-darwin)

benchmark                        time (avg)             (min … max)       p75       p99      p995
------------------------------------------------------------------- -----------------------------
SELECT * FROM "Order"         13.65 ms/iter   (12.79 ms … 15.41 ms)  13.69 ms  15.41 ms  15.41 ms
SELECT * FROM "Product"       31.02 µs/iter    (27.08 µs … 1.33 ms)  30.33 µs  42.33 µs  45.25 µs
SELECT * FROM "OrderDetail"   140.2 ms/iter (127.97 ms … 172.31 ms) 144.02 ms 172.31 ms 172.31 ms

bun/bench/sqlite on  jarred/faster-sqlite took 5s
❯ bun bun.js # Before
[0.52ms] ".env"
cpu: Apple M1 Max
runtime: bun 0.7.1 (arm64-darwin)

benchmark                        time (avg)             (min … max)       p75       p99      p995
------------------------------------------------------------------- -----------------------------
SELECT * FROM "Order"         15.44 ms/iter   (14.36 ms … 17.94 ms)  15.59 ms  17.94 ms  17.94 ms
SELECT * FROM "Product"       36.89 µs/iter    (31.54 µs … 3.18 ms)  37.25 µs  49.75 µs  54.88 µs
SELECT * FROM "OrderDetail"  156.63 ms/iter (151.68 ms … 175.93 ms) 157.63 ms 175.93 ms 175.93 ms

* Handle empty just incase

* GCDeferral scope is unnecessary

* Make this code more careful

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-24 17:01:21 -07:00
Colin McDonnell
31976f6af1 Update install method order 2023-07-24 14:40:13 -07:00
Jarred Sumner
967ccb5d50 Upgrade WebKit (#3777)
* Upgrade to latest WebKit

* Upgrade WebKit

* hm

* Fix failing tests

* Delete utf8-encoding-fixture.bin.cmp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-23 22:37:48 -07:00
Alex Lam S.L
d8135e85ca more tests for #3754 (#3774) 2023-07-23 21:19:10 -07:00
Jarred Sumner
b02f097f4d Fix bugs with connecting to localhost (#3758)
* Fix bugs with connecting to localhost

* Update uws

* More logs

* Allow not setting a hostname

* Make server.hostname & server.protocol faster

* Fixup

* normalize listening host

* Fix test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-23 05:13:48 -07:00
Jarred Sumner
4e852918a3 Raise redirect limit in bundler 2023-07-23 03:59:43 -07:00
Jarred Sumner
c76516fa38 Fixes #3764 2023-07-23 03:58:10 -07:00
Alexander Trefz
ce77266cc5 Update nodejs-apis.md (#3762)
`structuredClone` is implemented as of v0.7
2023-07-23 03:40:46 -07:00
Artur Androsovych
ce9bba9dd5 Update development.md (#3718)
* Update `development.md`

* Update `development.md`
2023-07-22 22:24:59 -07:00
Jarred Sumner
e2e44661c2 Explicitly ref/unref blobs before extracting the value (#3755)
* Explicitly ref/unref blobs before extracting the value

* ✂️

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-22 22:20:10 -07:00
Jarred Sumner
601fd3ead5 in Bun.write(), defer creating the Promise until we're just about to schedule the task 2023-07-22 20:49:35 -07:00
Alex Lam S.L
07e08b086a [install] improve workspace substitution of npm dependencies (#3754)
- respect semver ranges
2023-07-22 20:05:24 -07:00
Jarred Sumner
53eb126898 ref() before creating the JSPromise 2023-07-22 19:56:39 -07:00
Jarred Sumner
6809d08a90 Make zig build obj fail a little later when src/runtime.out.js or src/fallback/out.js doesn't exist 2023-07-22 19:35:00 -07:00
Jarred Sumner
6402967b6d bump! 2023-07-22 17:08:31 -07:00
Jarred Sumner
bfaf095c2e Fixes https://discord.com/channels/876711213126520882/1131175053409656833/1131175053409656833
@tr1ckydev this fixes the issue you ran into, see the diff for an example usage of a Bun.plugin that makes a network request on import.
2023-07-22 16:59:54 -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
Jarred Sumner
27c88c8046 Fixes #3753 2023-07-22 16:42:17 -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
Jarred Sumner
3418feb2e9 Fixes #3744 2023-07-22 04:33:54 -07:00
Jarred Sumner
c6a3467625 Unified event loop (#3741)
* Unified event loop

* Update WebKit, add test for es-module-lexer

* Update README.md

* Use async wasm

* Explicitly set whether concurrenttask should be deinit'd

* Update package.json

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-22 04:31:58 -07:00
Jarred Sumner
636cec03e1 Use WebKit's URL parser in fetch() and bun install (#3730)
* Use WebKit's URL parser in fetch() and `bun install`

* Allocate less memory

* Fix test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-21 23:27:28 -07:00
Ai Hoshino
1ecd9f8a18 handle latin1 in Bun__encoding__toString. (#3739)
Close: #3738
2023-07-21 22:01:26 -07:00
Dylan Conway
2323f5d08d fix #3716 (#3733)
* don't break on comments for process env variables

* break for `\r` and `\n`

* don't parse process env vars
2023-07-21 20:33:15 -07:00
Alex Lam S.L
311dffc690 improve test (#3731)
- minor build diffs
2023-07-22 02:42:30 +03:00
Ciro Spaciari
c4f062dbf4 clean tables before testing (#3721)
* clean tables before testing

* typo
2023-07-21 16:13:04 -07:00
Vaughan Rouesnel
7ac94e5b4c Typo in loaders.md (#3728) 2023-07-21 15:43:34 -07:00
Dylan Conway
aa1ad7f009 string escape edgecase (#3717)
* fix edgecase when joining rope strings with backtick

* bonus bugfix in ts decorator

* Update transpiler.test.js

* Fix test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-07-21 01:35:06 -07:00
Dylan Conway
21bb3b2bdd fix isFIFO (#3715)
* check poll ref flags

* Update WebCoreJSBuiltins.cpp
2023-07-21 00:18:15 -07:00
Jarred Sumner
cd49615e2c fix flaky test
@paperdave we must always use `bunEnv` in the `env` to ensure that the color settings and other stuff doesn't cause bun to produce extraneous stdout input when using console.log

Additionally, the console.log was left in (which is okay)
2023-07-20 21:45:05 -07:00
Jarred Sumner
eb37794a3b Bump 2023-07-20 21:34:42 -07:00
Jarred Sumner
da298635ef Bump 2023-07-20 21:22:49 -07:00
Dylan Conway
218958dbd1 Update async_hooks.node.test.ts 2023-07-20 21:13:11 -07:00
Jarred Sumner
1c6e464a68 bump 2023-07-20 21:08:42 -07:00
dave caruso
9c85465a58 fix process.exit status code handling (#3714) 2023-07-20 19:16:56 -07:00
Jarred Sumner
2eb79afb2a Update sqlite.md 2023-07-20 18:14:34 -07:00
dave caruso
020cf46346 Fix builtins again (#3713) 2023-07-20 17:33:40 -07:00
dave caruso
134c97a282 fix directory caching with workaround (#3710)
* ok

* test
2023-07-20 16:44:43 -07:00
dave caruso
e2c11c4856 fix process.binding (#3711) 2023-07-20 16:25:02 -07:00
Dylan Conway
9ad330d917 Update process.test.js 2023-07-20 15:32:20 -07:00
Jarred Sumner
ef89f03de6 Update text-decoder.test.js 2023-07-20 15:26:06 -07:00
Julian
c383c6cd81 Pass constructor arguments to TextDecoder (#3692)
* Make TextDecoder constructor use options parameter

The constructor now actually sets TextDecoder properties using the
options parameter.

* Defer decoder allocation to end of constructor

* Verify types of TextDecoder options

* TextDecoder throw TypeError on failure

* Tidying
2023-07-20 14:50:54 -07:00
Dylan Conway
68b4a64569 resolveRopeIfNeeded (#3708) 2023-07-20 14:50:23 -07:00
Dylan Conway
8e12999917 set _preload_modules to empty array (#3709) 2023-07-20 14:50:13 -07:00
Jarred Sumner
73e44e16ea Update Dockerfile 2023-07-20 14:49:57 -07:00
Ciro Spaciari
99da0ae54b fix start delay on Worker (#3707)
* fix start delay on Worker

* fmt

* add delay test
2023-07-20 14:49:10 -07:00
Colin McDonnell
4686f5395e Add number types for FFI (#3706) 2023-07-20 11:52:45 -07:00
Jarred Sumner
2dc90f3908 Update worker.test-d.ts 2023-07-19 23:59:37 -07:00
Colin McDonnell
53ad9b922f Docs & types for 0.7 (#3665)
* Docs & types for 0.7

* Tweak

* Update

* Tweaks

* Tweak

* Tweaks

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-07-19 23:59:15 -07:00
Jarred Sumner
0b365781a8 Bump version to Bun v0.7.0 2023-07-19 23:57:41 -07:00
Jarred Sumner
dd46c11273 Support streams in response.formData() & request.formData, introduce Bun.readableStreamToFormData() (#3697)
* codegen

* FormData.from

* Fixes #3225

* Introduce `Bun.readableStreamToFormData`

* Update bun.d.ts

* Add examples

* add

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-19 23:12:06 -07:00
Jarred Sumner
8a13e02473 Fixes #3670 (#3698)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-19 23:04:07 -07:00
Jarred Sumner
ed8be46a7b Inlinebun object from workers 2023-07-19 22:53:28 -07:00
dave caruso
36866c4d79 Fix vite (#3694)
* Fix ServerWebSocket.readyState

* Add create_hash_table to our repo

* Fix #3216
2023-07-19 19:28:53 -07:00
dave caruso
dd58508684 Fix browser bundled string_decoder (#3693)
* Fix #3660

* doc fix
2023-07-19 17:37:20 -07:00
dave caruso
9b6dc49575 Implement AsyncLocalStorage (#3089)
* work to get async local storage working.

* a

* a

* everything but queueMicrotask

* sdfghj

* .

* finish

* tests

* test

* ok

* done

* im so stupid

* Upgrade WebKit

* refactor

* refactor

* changes requested

* oops

* cool

* fix runInAsyncScope
2023-07-19 17:20:00 -07:00
Jarred Sumner
723e9d1ea7 Fix make headers 2023-07-19 16:05:43 -07:00
Ciro Spaciari
f63398ffe4 update root certificates and add tls.rootCertificates (#3688)
* implement tls.rootCertificates

* add test

* bump uws/usockets

* bump uws + .len on certs
2023-07-19 16:02:29 -07:00
Ciro Spaciari
2fbf73535c fix createDecipheriv (#3680)
* fix createDecipheriv

* fix createDecipheriv iv and password validations
2023-07-19 16:01:36 -07:00
dave caruso
ebbbd63ed6 fix #3681 (#3690) 2023-07-19 15:58:07 -07:00
Dylan Conway
bc28ec39cf set did_panic flag (#3687) 2023-07-19 15:39:15 -07:00
Ciro Spaciari
568cadb51e move constants module to cpp (#3683) 2023-07-19 15:39:02 -07:00
Dylan Conway
0dbcb84cbe fix make headers 2023-07-19 15:26:14 -07:00
Jarred Sumner
d74d95d9ab Better error for workspace dependency not found (#3678) 2023-07-20 00:08:52 +03:00
Jarred Sumner
a59ddb131e Fix crash in postMessage that repro'd after ~100,000 messages 2023-07-18 23:09:39 -07:00
Jarred Sumner
8bd2b784a2 more progress on fixing gc issue 2023-07-18 20:49:11 -07:00
Dylan Conway
f494e1b50d add padding bytes 2023-07-18 16:30:58 -07:00
Ciro Spaciari
112f01ca61 feature(constants) add constants/node:constants module and tests(prisma) use prima 5.0.0 + use same connection for postgres, add prisma mssql (disabled for now) (#3672)
* use prima 5.0.0 + use same connection for postgres

* change mongodb test URL

* constants module + mssql prisma test (disabled)
2023-07-18 16:09:18 -07:00
Ciro Spaciari
49231b2cb9 patch checkServerIdentity (#3671) 2023-07-18 16:03:05 -07:00
Jarred Sumner
0179ebcb8c Update workers.md 2023-07-18 05:00:09 -07:00
Alex Lam S.L
1790357021 [jest] execute lifecycle hooks on empty blocks (#3663)
fixes #3494
2023-07-18 04:54:24 -07:00
Jarred Sumner
105919d7ae Clarify 2023-07-18 04:51:29 -07:00
Jarred Sumner
777ee4ecec Fixes #3669 2023-07-18 04:35:04 -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
71f1aa1802 Enable postgres prisma test 2023-07-17 23:17:06 -07:00
Jarred Sumner
eaff66b098 Emit writeBarrier in napi_module_register 2023-07-17 23:07:09 -07:00
Jarred Sumner
b760d1da30 Fix potential crash in process.dlopen() 2023-07-17 23:02:33 -07:00
Jarred Sumner
728c8fdcdb Implement process.{stdout, stderr}.{columns, rows, getWindowSize} 2023-07-17 21:21:43 -07:00
Ciro Spaciari
13b54fbdb8 [tls] General compatibility improvements (#3596)
* wip

* subjectaltname

* more progress

* bindings

* fmt

* getCert/getPeerCertificate

* fix checkServerIdentity

* fix checkServerIdentity

* add a lot of TLSSocket functions

* getEphemeralKeyInfo fix and comment

* add alternative for getEphemeralKeyInfo

* add get session and set session

* fix isSessionReused

* get back the raw data for MSSQL

* fixeup

* fixup getSession + tests

* fix doc + fmt

* getFinished/getPeerFinished

* codegen

* fixup

* revert webkit

* more fixes

* ssl helper + revert test oops

* asserts
2023-07-17 19:39:09 -07:00
Dylan Conway
9273e29f0e package json main field extension order (#3664) 2023-07-17 19:26:33 -07:00
Alex Lam S.L
9f031b3642 [install] handle duplicated workspace declarations gracefully (#3662)
fixes #3644
2023-07-17 16:06:31 -07:00
Colin McDonnell
ca3b7fa3c9 Clean up worker docs 2023-07-17 13:10:22 -07:00
Colin McDonnell
8a176913d8 Tweak test docs 2023-07-17 11:42:13 -07:00
Alex Lam S.L
570a44d73a workaround readable-stream compatibility (#3626)
- update `bun link` tests
- update `tests/bun.lockb`
- drop unused import in test
2023-07-17 20:05:01 +03:00
Jarred SUmner
5218a33fb6 Fix flaky process test 2023-07-17 04:51:26 -07:00
Jarred Sumner
58824ea743 Fix test with incorrect text 2023-07-17 04:44:56 -07:00
Jarred Sumner
99de971359 Fix incorrect name 2023-07-17 04:21:00 -07:00
Jarred Sumner
55b5aa3571 Fix speculative crashes in console.log(formData) and console.log(headers) 2023-07-17 04:18:43 -07:00
Jarred Sumner
6ca20424d6 Fix crash in console.log(urlSearchParams) on a URLSearchParams object with a lot of keys 2023-07-17 04:18:43 -07:00
Jarred Sumner
36a25c3580 Fix memory leak in await new Response(latin1String).arrayBuffer() and await Response.json(obj).json() (#3656)
❯ mem bun --smol response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)

benchmark                                                        time (avg)             (min … max)       p75       p99      p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1)    12.9 µs/iter      (625 ns … 4.18 ms)      1 µs 567.17 µs 711.79 µs
new Response().arrayBuffer() (new string each call, utf16)    12.85 µs/iter     (1.67 µs … 1.56 ms)   2.17 µs 462.75 µs 621.13 µs
new Response().arrayBuffer() (existing string, latin1)         6.53 µs/iter     (6.21 µs … 7.07 µs)   6.64 µs   7.07 µs   7.07 µs

Peak memory usage: 49 MB

bun on  jarred/memory-leak-fix took 2s
❯ mem bun response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)

benchmark                                                        time (avg)             (min … max)       p75       p99      p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1)     1.2 µs/iter     (1.04 µs … 1.42 µs)   1.22 µs   1.42 µs   1.42 µs
new Response().arrayBuffer() (new string each call, utf16)     2.74 µs/iter     (2.42 µs … 6.37 µs)   2.68 µs   6.37 µs   6.37 µs
new Response().arrayBuffer() (existing string, latin1)       746.37 ns/iter   (643.82 ns … 1.04 µs) 776.11 ns   1.04 µs   1.04 µs

Peak memory usage: 104 MB

bun on  jarred/memory-leak-fix took 2s
❯ mem ~/.bun/bin/bun response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)

benchmark                                                        time (avg)             (min … max)       p75       p99      p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1)    1.69 µs/iter      (1.56 µs … 2.1 µs)   1.73 µs    2.1 µs    2.1 µs
new Response().arrayBuffer() (new string each call, utf16)     2.65 µs/iter     (2.47 µs … 3.17 µs)   2.69 µs   3.17 µs   3.17 µs
new Response().arrayBuffer() (existing string, latin1)       667.67 ns/iter   (547.67 ns … 1.28 µs) 694.21 ns   1.28 µs   1.28 µs

Peak memory usage: 2735 MB

bun on  jarred/memory-leak-fix took 2s
❯ mem ~/.bun/bin/bun --smol response-arrayBuffer.mjs
cpu: Apple M1 Max
runtime: bun 0.6.15 (arm64-darwin)

benchmark                                                        time (avg)             (min … max)       p75       p99      p995
--------------------------------------------------------------------------------------------------- -----------------------------
new Response().arrayBuffer() (new string each call, latin1)   13.51 µs/iter       (541 ns … 3.2 ms)   1.92 µs 553.42 µs 709.92 µs
new Response().arrayBuffer() (new string each call, utf16)    13.07 µs/iter     (1.71 µs … 3.43 ms)   2.13 µs 451.21 µs 651.67 µs
new Response().arrayBuffer() (existing string, latin1)         6.25 µs/iter     (5.79 µs … 6.81 µs)    6.4 µs   6.81 µs   6.81 µs

Peak memory usage: 292 MB

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-17 04:15:13 -07:00
Jarred Sumner
13b5d9d4de 20% faster deserialize (#3655)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-17 02:22:00 -07:00
Jarred Sumner
fa4db1de42 Document --smol 2023-07-16 23:24:00 -07:00
Jarred Sumner
2a02f3d669 Add --smol to bunfig 2023-07-16 23:23:33 -07:00
Jarred Sumner
75213aad37 Document serialize/deserialize 2023-07-16 23:16:54 -07:00
Jarred Sumner
5856639833 Add serialize snippet 2023-07-16 23:16:38 -07:00
Jarred Sumner
edeb3b48e8 Fix test 2023-07-16 22:46:06 -07:00
Jarred Sumner
3613429dc3 Update workers.md 2023-07-16 22:43:38 -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
a86d00c672 Update nav.ts 2023-07-16 21:43:22 -07:00
Jarred Sumner
d5c51092c8 rename 2023-07-16 21:40:07 -07:00
Jarred Sumner
6a234e6fce Add structuredClone microbenchmark 2023-07-16 21:17:55 -07:00
Jarred Sumner
dc766eb18a Add --smol flag 2023-07-16 21:17:47 -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
Jarred Sumner
7fc392b182 Support napi_wrap in constructors (#3614)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-16 20:32:33 -07:00
Jarred Sumner
6baa08313c Fixes #3641 (#3643)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-16 20:32:18 -07:00
Jiri Spac
131ed06020 docs: add one missing line in typescript.md (#3650) 2023-07-16 20:31:54 -07:00
Dylan Conway
e546e4064c structuredClone types 2023-07-14 19:49:15 -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
Colin McDonnell
2551210426 Update docs 2023-07-14 11:33:07 -07:00
Colin McDonnell
43abf2629f Remove fdatasync from types 2023-07-13 17:48:46 -07:00
Colin McDonnell
325147261f Update docs/types for process (#3631)
* Update docs/types for process

* Tweaks

* Tweaks

* Fix types
2023-07-13 17:40:46 -07:00
Tiramify (A.K. Daniel)
044b09afc2 Impl. fix (#3630) 2023-07-13 14:29:24 -07:00
Ashcon Partovi
9eb8eea2a8 Implement ping(), pong(), terminate() for WebSocket client and server (#3257) 2023-07-13 09:39:43 -07:00
Jarred Sumner
04b4157232 Fixes #3629 2023-07-13 02:57:25 -07:00
Jarred Sumner
a02a79e26c Bump WebKit 2023-07-12 20:48:52 -07:00
dave caruso
ae0a724981 Improve our internal typedefs (#3608)
* types

* some more

* yeah

* i think that fixes it

* oop
2023-07-12 15:21:55 -07:00
Tiramify (A.K. Daniel)
0631f87866 feat(bun/test): Implement "bail" option for "bun test" (#3253)
* Implement bun test --bail

* Fixes

* move printSummary() (more readable)

* Fixes 2

* idk why it got deleted

* Fixes 3

* fmt this better

* Update test_command.zig

* Fix "0 files"

* track number of files so bailing out early prints the right number

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-07-12 13:41:46 -07:00
Jarred Sumner
4e1a81231c Update build-id 2023-07-12 01:37:08 -07:00
Jarred Sumner
b566573977 Fix another crash in Error.captureStackTrace (#3611)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-11 21:01:35 -07:00
Jarred SUmner
666feb3b7e Fix crash on linux when throwing SystemError from C++ 2023-07-11 20:52:10 -07:00
Jarred Sumner
5ea32a976e Update process.test.js 2023-07-11 19:49:41 -07:00
Jarred Sumner
34b0e7a2bb Update ZigGlobalObject.cpp 2023-07-11 19:06:49 -07:00
Jarred Sumner
c5f2280489 Implement process.kill and process._kill 2023-07-11 19:06:01 -07:00
Jarred Sumner
a686b3bfc1 Fixes #3595 2023-07-11 19:00:51 -07:00
dave caruso
a1fb289c96 typo (#3610) 2023-07-11 18:50:34 -07:00
Dylan Conway
8ca2194a37 fix #3597 (#3609)
* fix #3597

* Update http.ts

* initialize to true
2023-07-11 18:49:35 -07:00
Jarred Sumner
03904f73cc Merge branch 'jarred/throw-if' 2023-07-11 17:48:52 -07:00
Jarred Sumner
2106e1d7f6 Tests 2023-07-11 17:48:13 -07:00
Jarred Sumner
854ddaa909 Implement throwIfNoEntry 2023-07-11 17:44:29 -07:00
Colin McDonnell
609f81a746 Add npmrc note 2023-07-11 15:32:52 -07:00
Jarred Sumner
fd4c8fb871 Merge branch 'jarred/fix-http-compression' 2023-07-11 13:09:37 -07:00
Jarred Sumner
bab58b7541 Avoid Object.getPrototypeOf 2023-07-11 13:07:03 -07:00
Dylan Conway
5c8726d602 process signal events (#3569)
* signal events

* simple tests

* ignore SIGSTOP

* better tests

* use `EventEmitter`

* use `Bun__getDefaultGlobal`

* progress

* don't use 'Bun__getDefaultGlobal`

* fix tests

* remove signals from map

* update tests

* don't overwrite event emitter methods

* avoid two lookups

* use `std::once`

* releaseEarly()

* Remove signal handler after use

* Update call-raise.js

* Create process-signal-handler.fixture.js

* Don't register duplicates

* Add missing lock

* another test

* update test

* revert some changes

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-11 12:48:46 -07:00
Dylan Conway
ae7bc37e94 fix iterating stack trace (#3600)
* `i + 1` and remove `defer`

* a test

* fix test
2023-07-11 12:48:32 -07:00
dave caruso
31ab56d362 Fix: console.log with class constructors (#3602)
* Fix console.log with class constructors

* oops

* fix it

* lol

* fix test
2023-07-11 12:48:19 -07:00
simylein
4b333b2d35 docs(sqlite): database prepare types reflect runtime (#3599)
* docs(sqlite): database prepare types reflect runtime

* Update sqlite.d.ts

---------

Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
2023-07-11 09:09:06 -07:00
Hanaasagi
c4c5eb2d32 use Object.getPrototypeOf 2023-07-11 21:31:49 +09:00
Ai Hoshino
e7afae305c Merge branch 'main' into fix-http 2023-07-11 19:35:11 +08:00
Hanaasagi
17031936c8 small fix, check if the method has been reassigned. 2023-07-11 20:32:09 +09:00
dave caruso
b2c576bba2 fix "readable" event being emitted incorrectly (#3475)
* fix "readable" event being emitted incorrectly

* fix impl and add test

* changes

* asdfghj

* esm
2023-07-10 18:25:20 -07:00
Ciro Spaciari
4af4b508a1 feat(crypto) add getCurves (#3598)
* add getCurves

* add nodefallbacks

* update docs

* oops
2023-07-10 17:14:37 -07:00
Hanaasagi
0c2df4ae01 ignore check 2023-07-10 22:33:07 +09:00
Ai Hoshino
cc0d920018 Merge branch 'main' into fix-http 2023-07-10 21:12:00 +08:00
Hanaasagi
438d54f186 add tests 2023-07-10 22:04:39 +09:00
Hanaasagi
c6e1135548 call writeHead before send headers
Close: #3585
2023-07-10 21:35:10 +09:00
Jarred Sumner
ec11170311 Fixes #3588 (#3590)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-10 02:21:03 -07:00
Jarred Sumner
538bcef731 Update globals.d.ts 2023-07-10 01:33:46 -07:00
Jarred Sumner
93b0e94410 trim node:stream a little 2023-07-10 01:26:02 -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
2f5e4fffe9 Implement process.memoryUsage() and process.cpuUsage() (#3586)
* Implement process.memoryUsage() and process.cpuUsage()

* Avoid mi_process_info

* Update bench

* Update Process.cpp

* fixup

* More tests + linux fixup

* Skip it for now since it seems less accurate

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-09 21:50:19 -07:00
Jarred Sumner
ca42c820d2 Implement nearly all of process object methods and properties (#3581)
* Add special case

* Make process object load faster

* Fix openStdin

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-09 16:33:49 -07:00
Ai Hoshino
565d1689e9 fix metadata bits of uuid (randomUUID()) (#3583)
* fix uuid version
Close: https://github.com/oven-sh/bun/issues/3575

* add unittest

* small fix

* avoid unnecessary copying
2023-07-09 07:20:52 -07:00
Jarred Sumner
59570fe237 Handle case with TS decorators and export default anonymous class (#3578)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-08 17:41: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
fa632c3331 Fix bug with decorators not being generated in export default class (#3577)
* Fix bug with decorators not being generated in `export default class`

* Update decorator-export-default-class-fixture.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-08 04:00:55 -07:00
Jarred Sumner
5846ad00ed Add assertion 2023-07-07 22:01:58 -07:00
Jarred Sumner
e26d3821ce Update settings.json 2023-07-07 22:01:43 -07:00
Jarred Sumner
fceacea37c Unmark as TODO 2023-07-07 22:01:02 -07:00
Jarred Sumner
52b7962dae Use BunString in JSBundlerPlugin (#3557)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-07 21:20:30 -07:00
Jarred Sumner
386d8b7836 Update test 2023-07-07 21:20:16 -07:00
Jarred Sumner
67ee498861 Fix potential coercion issue (#3558)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-07 20:12:39 -07:00
Artur Androsovych
42eacaf3a9 Update installation guide in development.md (#3532)
* Update installation guide in `development.md`

* Updates

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-07-07 16:24:07 -07:00
Ai Hoshino
c0cf7b4501 fix decoding invalid UTF-8 input (#3563)
* fix decoding invalid UTF-8 input
Close: https://github.com/oven-sh/bun/issues/3562

* add unittest
2023-07-07 15:10:49 -07:00
Colin McDonnell
affd06d05c Update types, partially fix typecheck (#3551)
* Update types

* Remove caret
2023-07-07 15:10:33 -07:00
Jarred Sumner
7ab8d832fb Add obscure HTTP methods (#3553)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-07 00:38:18 -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
Jarred Sumner
284aaec3cd Remove unnecessary @setRuntimeSafety(false) 2023-07-06 23:50:32 -07:00
Dylan Conway
9bebb7f03d add [dir] to default 2023-07-06 20:51:41 -07:00
Jarred Sumner
5c0a5646cd Update list 2023-07-06 17:11:01 -07:00
Jarred Sumner
4d2c86fd5c Add util.toUSVString 2023-07-06 17:08:01 -07:00
Jarred Sumner
d905dbe214 Minify zlib because its huge 2023-07-06 16:50:03 -07:00
Jarred Sumner
038ca83004 Add missing export in url 2023-07-06 16:49:41 -07:00
Colin McDonnell
d377265b67 Update trustedDeps doc 2023-07-06 15:44:48 -07:00
Colin McDonnell
a415f482db Update trustedDeps doc 2023-07-06 15:33:49 -07:00
Ciro Spaciari
954b6fcaf3 refactor (#3543) 2023-07-06 13:55:27 -07:00
Dylan Conway
abe095dd1e fixes #3544 (#3549) 2023-07-06 13:55:00 -07:00
Colin McDonnell
109ebc14fd Various docs updates (#3437)
* Various docs updates

* Add mocks page

* Fix make

* WebKit instructions

* Update instructions

* Updates

* Update nodejs compat table

* Document trusted deps

* Tweak trustedDependencies docs

* Document --exact

* Update test docs

* Tweaks

* Boring

* Remove redundant j

* Undo makefile changes

* Undo makefile changes

* Update page title

* Regen

* Undo changes
2023-07-06 13:02:29 -07:00
Ciro Spaciari
95ddfcc437 fix query without slash (#3547) 2023-07-06 12:01:16 -07:00
Jarred Sumner
ee57935260 Fixes #3537 (#3539)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-06 00:06:43 -07:00
Dylan Conway
6bf8f6f9f2 don't unwrap react below version 18.0.0 (#3538)
* don't unwrap react below version 18

* empty string

* also `react-dom`
2023-07-05 22:23:32 -07:00
Ciro Spaciari
8869bac411 fix callbacks on release version (#3531) 2023-07-05 22:22:56 -07:00
Dylan Conway
f61d9ef476 Update websocket_http_client.zig 2023-07-05 12:45:20 -07:00
Jarred Sumner
3aaec120e7 Fixes #3512 (#3526)
* Fixes #3512

* Fix `clearTimeout` and `clearInterval` not cancelling jobs same-tick

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-05 03:46:10 -07:00
Jarred Sumner
c864976da6 Fixes #3515 (#3523)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-05 01:21:35 -07:00
Jarred Sumner
a7f5a91cfb Fixes #3520 (#3522)
* Fixes #3520

* Update html_rewriter.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-05 00:08:59 -07:00
Ciro Spaciari
75816aa3ab add envs on tests (#3518)
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-07-05 00:08:49 -07:00
Jarred Sumner
cac7dcdc76 Update build-id 2023-07-04 16:59:33 -07:00
Jarred Sumner
9c374eac96 Fix build determinism issue (thanks to @alexlamsl)
cc @dylan-conway this was the cause
2023-07-04 16:59:03 -07:00
Jarred Sumner
b2e28f133e boop 2023-07-04 16:57:46 -07:00
Ciro Spaciari
3a93ddfab3 use sengrid account on nodemailer test (#3517) 2023-07-04 15:41:37 -07:00
Ciro Spaciari
979e999403 [tls] fix servername (#3513)
* fix servername

* add postgres tls tests

* update test packages

* add basic CRUD test
2023-07-04 15:40:26 -07:00
Ai Hoshino
c2755f770c Add alias for readBigUInt64BE ... (#3514)
* Add alias for `readBigUInt64BE` ...
Close: https://github.com/oven-sh/bun/issues/3338

* add some tests for `readBigUint64BE` alias

* format code
2023-07-04 15:38:44 -07:00
Jarred Sumner
31f7f9e2dc reduce count 2023-07-04 04:15:22 -07:00
Jarred Sumner
491e8f7e00 bump 2023-07-04 04:14:06 -07:00
Jarred Sumner
bb96aa5156 Fix crash 2023-07-04 04:07:35 -07:00
Jarred Sumner
f49a308d2c Create readfile-not-found.mjs 2023-07-04 03:48:10 -07:00
Alex Lam S.L
3d0ffc48cb [install] fix run-time module loading (#3510)
- fix version buffer confusion
- improve workaround to handle cached modules

fixes #3507
2023-07-04 02:09:58 -07:00
Jarred Sumner
bc7b5165be less flaky 2023-07-04 01:51:09 -07:00
Jarred Sumner
a76b07a802 cleanup 2023-07-04 01:18:13 -07:00
Jarred SUmner
33bc507f74 Fix napi 2023-07-04 01:04:18 -07:00
Jarred Sumner
3345a7fc3c Allow zero length WebSocket client & server messages (#3488)
* Allow zero length WebSocket client & server messages

* Add test

* Clean this up a little

* Clean up these tests a little

* Hopefully fix the test failure in release build

* Don't copy into the receive buffer

* Less flaky

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-03 20:53:41 -07:00
Jarred Sumner
b26b0d886c Fix napi bug 2023-07-03 15:57:10 -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
424717a973 Fixes #3317 2023-07-03 13:47:37 -07:00
Jarred Sumner
e5f93ddf55 Update lifecycle.md 2023-07-03 13:46:20 -07:00
Jarred Sumner
983039a18a Fixes #3508 2023-07-03 13:16:57 -07:00
Ciro Spaciari
a7a01bd52f [tls] add socket parameter, setServername and ALPNprotocols support (#3457)
* add socket parameter support

* refactor #socket

* add test and more fixs

* some fixes

* bump uws

* handlers fix

* more fixes

* fix node net and node tls tests

* fix duplicate port

* fix deinit on CallbackJobs

* cleanup

* add setImmediate repro

* add test to setImmediate

* this is necessary?

* fix prependOnce on native listener

* try to findout the error on nodemailer CI

* show error message

* Update bun.lockb

* prettier

* Use exact versions of packages

* add alpnProtocol support

* update

* emit error when connect fails on net.Socket

* format

* fix _write and cleanup

* fixup

* fix connect, add alpn test

* fix socket.io

* add socket parameter to TLSSocket

* add TLSSocket socket first parameter

* fixup and _start

* remove flask tests

* fmt

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-03 12:19:50 -07:00
Jarred Sumner
48d726bfd0 Update time.md 2023-07-02 23:48:31 -07:00
Jarred Sumner
12a342b6c0 Update time.md 2023-07-02 23:47:48 -07:00
Jarred Sumner
1206352b4a Update time.md 2023-07-02 23:46:08 -07:00
Jarred Sumner
9da9bac30c Update time.md 2023-07-02 23:18:58 -07:00
Jarred Sumner
cd243f40ee Update time.md 2023-07-02 23:10:50 -07:00
Jarred Sumner
000417731b Add time doc 2023-07-02 23:07:33 -07:00
Jarred Sumner
c77518ff93 Update writing.md 2023-07-02 22:57:24 -07:00
Jarred Sumner
f0a795b568 Stub out useFakeTimers and useRealTimers 2023-07-02 22:42:13 -07:00
Jarred Sumner
aa38e51afb Support mocking new Date() & Date.now() in bun:test (#3501)
* Support changing the time

* Bump WebKit

* Update bun.lockb

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-02 22:09:50 -07:00
dave caruso
c21fadf9bc set content-length 0 in some cases (#3503) 2023-07-02 20:24:15 -07:00
Jarred Sumner
0db31c2b43 Fixes #3499 2023-07-02 20:18:21 -07:00
Jarred Sumner
3a0a423bce Add comment 2023-07-02 20:17:25 -07:00
Jarred Sumner
eb90ce50c3 Use fast path for Base64 in btoa (#3504)
* Use fast path for Base64 in `atob`

* Fix utf16, crash on linux

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-02 20:16:52 -07:00
Jarred Sumner
c3f8593f8c [node:buffer] Implement isUtf8 and isAscii (#3498)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-02 18:06:21 -07:00
dave caruso
4cbda049e9 fix zero length env var (#3496) 2023-07-02 10:12:31 -07:00
Jarred Sumner
69396aae01 Fixes #3495 2023-07-02 10:09:52 -07:00
Jarred Sumner
b05879e9e2 Fixes #3489 (#3490)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-02 01:06:40 -07:00
Jarred Sumner
8001038376 Use exact versions in tests 2023-07-01 22:43:59 -07:00
Jarred Sumner
c7cc618376 Fix leak in fd (#3487)
* Fix file descriptor leak

* Skip unnecessary clone

* Don't break --hot

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-01 21:58:06 -07:00
Jarred Sumner
9fecb3dfb9 Bump 2023-07-01 21:10:55 -07:00
Jarred Sumner
617226e584 Make this test less flaky 2023-07-01 21:10:43 -07:00
Jarred Sumner
c72c82b970 Make this test less flaky 2023-07-01 21:08:26 -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
a2cca6e292 Update WebCoreJSBuiltins.cpp 2023-07-01 18:31:38 -07:00
Jarred Sumner
01d3b130a9 Update build-id 2023-07-01 17:44:40 -07:00
Jarred Sumner
af46a8ded1 Make this test less flaky 2023-07-01 17:38:19 -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
a4fe433db7 Slight fixup 2023-07-01 17:09:59 -07:00
Jarred Sumner
f3833376e7 small cleanup 2023-07-01 17:07:37 -07:00
Ai Hoshino
4720fa1207 [WIP]Fix calling Buffer.toString with (offset, length, encoding) (#3467)
* Allow `toString` to be called with `(offset, length, encoding)`.
Close: #3085

* handle undefined value

* add tests for buffer.xxxSlice

* fix parameters

* fix offset and length
2023-07-01 17:01:52 -07:00
Jarred Sumner
df10252979 Make HTTP Request struct use 8 bytes less memory (#3483)
* Make HTTP Request struct use 8 bytes less memory

* Update server.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-07-01 14:40:05 -07:00
Dylan Conway
c033d55c47 skip private class fields (#3484) 2023-07-01 14:38:38 -07:00
Jarred Sumner
c794ea7ea7 Add test 2023-07-01 13:31:12 -07:00
Alex Lam S.L
02f707f231 [jest] fix lifecycle hook execution order (#3461)
* [jest] fix lifecycle hook execution order

* strip `std.debug.assert()` from release build
2023-07-01 11:44:04 -07:00
dave caruso
d356cd5d48 implement perf_hooks.constants (#3476) 2023-06-30 14:58:38 -07:00
Stijn Van Hulle
b83faf8018 fix: export ClientRequest and OutgoingMessage as part of the node:http package (#3470) 2023-06-30 10:04:46 -07:00
Alex Lam S.L
2a73d3c793 [install] handle workspace: specifier correctly (#3474)
fixes #3430
2023-06-30 10:03:53 -07:00
Jarred Sumner
039bbc68ad Add missing "prependListener" function 2023-06-29 21:24:55 -07:00
dave caruso
b9460087e3 Fixes node:http and node:stream so ytdl-core works. (#3452)
* fix crash in readablestate

* make node:https request+get actually use https

* use a native readablestream in IncomingMessage

* tweaks

* fix abort crash

* emit close by default

* remove abort. this isnt a real function

* add validate functions, fixup some other requested changes. not done yet

* Update WebCoreJSBuiltins.cpp

* Update JSReadableState.cpp

* Add some missing exports

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-29 20:36:18 -07:00
Jarred Sumner
c42a00f9df Fixes #3462 (#3465)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-29 20:14:12 -07:00
Dylan Conway
76b9cae259 handle multiple redirects 2023-06-29 17:19:16 -07:00
Jarred Sumner
70a87e1181 Make node:os tmpdir more consistent with Node.js 2023-06-29 16:37:38 -07:00
Dylan Conway
7af757d104 add setters for Agent properties (#3460)
* make `Agent` properties public

* back to private, added setters

* change properties to public
2023-06-29 15:47:00 -07:00
Dylan Conway
9c66fdc703 [bundler] avoid printing unnecessary declarations (#3456)
* skip declarations without values

* tests

* deoptimize cjs when decls are needed
2023-06-29 14:51:24 -07:00
dave caruso
fec0d15c4f cant believe i missed this (#3453) 2023-06-29 08:53:44 -07:00
Jarred Sumner
853e377159 Revert "[jest] fix lifecycle hook execution order (#3447)" (#3455)
This reverts commit 182e8aa139.
2023-06-29 08:30:21 -07:00
Jarred Sumner
8984c81961 Prevent integer overflow 2023-06-28 21:57:31 -07:00
Jarred Sumner
c6f6db95ff Ref the strings 2023-06-28 21:56:45 -07:00
Jarred Sumner
8b2c72300c Another test 2023-06-28 21:56:26 -07:00
Jarred Sumner
8481f2922f Add GC test for errors 2023-06-28 21:45:16 -07:00
Jarred Sumner
68e6fe00a4 Use bun.String for ZigException (#3451)
* Use `bun.String` for `ZigException`

* woopsie

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-28 21:11:06 -07:00
Dylan Conway
3258bed1c0 use main field over module for runtime (#3448)
* use main field over module for runtime

* move flag to `Resolver`

* set `prefer_module_field` in `initWithModuleGraph`
2023-06-28 19:28:53 -07:00
Jarred Sumner
32d9abcc03 Fix bad test 2023-06-28 19:20:41 -07:00
dave caruso
0cee640199 export resolve6 from dns/promises (#3450) 2023-06-28 17:45:18 -07:00
Alex Lam S.L
182e8aa139 [jest] fix lifecycle hook execution order (#3447) 2023-06-28 16:27:15 -07:00
Jarred Sumner
945093ee7e bump! 2023-06-28 16:22:46 -07:00
Jarred Sumner
086ca176be Make these tests do more 2023-06-28 16:19:58 -07:00
Jarred Sumner
292647bd53 Introduce await Bun.file(path).exists() (#3446)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-28 16:09:08 -07:00
Jarred Sumner
42ded70336 [node:http] Stub _implicitHeader fn 2023-06-28 13:55:58 -07:00
Jarred Sumner
3d5573921e Error.prototype.stack gets sourcemapped stacktraces and introduce Error.appendStackTrace (#3441)
* Fix potential crash when reading sourcemapped stack traces

* Format & sourcemap Error.prototype.stack

* prevent double sourcemapping

* Introduce Error.appendStackTrace

* Fix source url

* hide private stack traces in non-debug builds

* fixes #3443

* Bump WebKit

* Fix test failure in vm.test

* Support new() & add test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-28 13:53:09 -07:00
Jarred Sumner
43752ec3f0 Fix assertion failure in escapeHTML with UTF-16 text (#3436)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-28 11:27:31 -07:00
Silas Rech
e6e3d9e368 Fix .randomInt() export (#3438) 2023-06-28 11:27:02 -07:00
Alex Lam S.L
0de5bb22af [install] workaround run-time module loading issue (#3432) 2023-06-28 01:20:59 -07:00
Dylan Conway
f670c0fc18 don't overwrite __esModule 2023-06-27 18:23:56 -07:00
Dylan Conway
09994d6067 add __esModule 2023-06-27 17:34:31 -07:00
Benjamin Ryan
f81d084f5c [bun:sqlite] enable FTS5 on linux build (#3431)
* [bun:sqlite] enable FTS5 on linux build

* prettier
2023-06-27 17:27:06 -07:00
Jarred Sumner
940c9a8185 Fix some checks 2023-06-27 16:16:47 -07:00
Dylan Conway
28d7507a5d add todo comment 2023-06-27 14:55:13 -07:00
Jarred Sumner
4f34d48029 getIfPropertyExists is safer than getDirect (#3391)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-27 13:42:25 -07:00
Dylan Conway
c78aa5a60f fix macros 2023-06-27 13:23:01 -07:00
Revenity
7ba4ae11c9 Update Stric page in Ecosystem (#3399) 2023-06-27 12:37:57 -07:00
Jarred Sumner
5376b5b5d6 Add builtin exports list 2023-06-27 10:29:22 -07:00
Ashcon Partovi
3ec6c9e4fb Fix docker tag on release 2023-06-27 09:10:43 -07:00
Jarred Sumner
2eb885c1d8 Regenerate 2023-06-27 08:24:35 -07:00
Ai Hoshino
1c46d88728 Fix node:util.callbackify (#3428)
* remove the incorrect parameters
Close: https://github.com/oven-sh/bun/issues/3424

* fix error code

* add callbackify tests

* fix function type

* ensure `done` is called when error occurred
2023-06-27 08:23:25 -07:00
Jarred Sumner
d220d9ee5a Update NodeModuleModule.cpp 2023-06-27 08:21:04 -07:00
Jarred Sumner
e77f593b76 Update build-id 2023-06-27 08:14:34 -07:00
Alex Lam S.L
b305309e64 minor build diffs (#3427) 2023-06-27 14:05:59 +03:00
Jarred Sumner
c96f3b303b Fix default export of "module" module 2023-06-26 20:39:15 -07:00
dave caruso
ecb0bd39b6 fix #3412 (#3422) 2023-06-26 19:27:12 -07:00
Dylan Conway
4e4cae0fc3 webpack test and add empty prototype prop to module (#3421) 2023-06-26 19:16:59 -07:00
Jarred Sumner
4be15cff02 Tweak the ramSize setting because /= 1024 is causing CI to fail on arm64 when there's only 8 GB of ram 2023-06-26 19:07:54 -07:00
Jarred Sumner
f839cf1ce3 Update crypto.mjs 2023-06-26 19:07:54 -07:00
Jarred Sumner
1e6a41b5cf change the text from "error" to "warn" 2023-06-26 19:07:54 -07:00
Dylan Conway
1ed1723a2f Update bundle_v2.zig (#3420) 2023-06-26 19:00:55 -07:00
Peter Weinberg
7a0b1656c7 docs: add troubleshooting section to installation page (#3389)
* docs: add troubleshooting section to installation page

* Add note for unzip

* Update msg in install.sh

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-06-26 18:25:33 -07:00
Jarred Sumner
28f27f733b [bun install] Implement --exact flag (#3409)
* [bun install] Implement `--exact` flag

* Rename to --save-exact

* Rename --exact to --save-exact

* Update bun-add.test.ts

* We're going with --exact as the flag name

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-26 15:51:57 -07:00
Jarred Sumner
a5100ad380 Fix .rejects 2023-06-26 15:49:26 -07:00
Silas Rech
16598555f1 .randomInt() support (#3357)
* Add initial .randomInt() fallback

* Add basic .randomInt() test

* Attempt creating a native implementation

* Switch to JSC.wrapWithHasContainer

* Switch to .jsNumberFromUint64(), it seems like using just .jsNumber() causes the number to overflow in some cases

* Regenerate out folder after rebasing
2023-06-26 15:35:48 -07:00
Jarred Sumner
a732999da5 Runtime support for __esModule annotations (#3393)
* Runtime support for `__esModule` annotations

* Ignore `__esModule` annotation when `"type": "module"` is set

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-26 12:49:20 -07:00
Dylan Conway
6d01e6e367 test moved to node-module-module.test.js 2023-06-26 12:09:18 -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
Alex Lam S.L
318879d174 [install] support trustedDependencies (#3288)
* [install] support trustedDependencies

closes #2073

* use `strings.indexOfChar()`

* use hashes instead of strings

* utilise `inline else`
2023-06-26 11:55:26 -07:00
Dylan Conway
ec3ed67bc9 implement _nodeModulePaths and require.main.paths (#3411)
* tests in progress

* add `require.main.paths`, add every dir up to root

* remove imports
2023-06-26 08:12:37 -07:00
Jarred Sumner
76626ac54b Fix test failures in import.meta (#3403)
* Fix test failures in import.meta

* regenerate

* Use bound functions for `import.meta.require` and `import.meta.require.resolve` and `Module.createRequire`

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-25 19:48:56 -07:00
Jarred Sumner
116bcf4245 Fixes #3334 (#3401)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-25 18:49:16 -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
e682ffb61c Update schema.zig 2023-06-25 17:54:21 -07:00
Jarred Sumner
9ebb25427a remove very old stuff 2023-06-25 17:51:24 -07:00
Jarred Sumner
66195ffeed Update WebKit 2023-06-25 17:50:12 -07:00
Brúnó Salomon
662335d81a chore: update lol-html version (#3356)
* chore: update lol-html version

* add tests

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-06-25 16:48:03 -07:00
Tiago Teixeira
d8817c2d32 Add support for install with --frozen-lockfile (#3365)
* Add support for install with --frozen-lockfile

* Add test

* Add test for frozenLockfile in config file
2023-06-25 16:43:39 -07:00
Jarred Sumner
15ac08474e fixup 2023-06-25 16:40:51 -07:00
Jarred Sumner
fdfbb18531 Support reading embedded files in compiled executables (#3405)
* Support reading embedded files in compiled executables

* 💅

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-25 16:32:27 -07:00
Ciro Spaciari
3ed28f2828 [fs.watch] fix reference/deinit (#3396)
* fix js reference

* fix close  oops

* refactor + hasPendingActivity

* fmt

* fix race conditions

* fixup

* add test calling close on error event

* fix close inside close + test

* cleanup
2023-06-25 16:16:25 -07:00
Ai Hoshino
fcf9f0a7ee Fix the parameters of WriteStream constructor. (#3402)
* Fix the parameters of the `WriteStream` constructor.
Close: https://github.com/oven-sh/bun/issues/3395

* test append mode in `createWriteStream`

* fix lint

* wait first stream finished
2023-06-25 16:15:56 -07:00
Alex Lam S.L
33903ea892 [install] fix hang in bun install --production (#3406) 2023-06-26 01:43:58 +03:00
Jarred Sumner
5bd94b8f47 Add process.mainModule 2023-06-25 11:43:54 -07:00
Jarred Sumner
aa5432e162 FIx launch.json cwd 2023-06-25 11:33:13 -07:00
Jarred Sumner
c4c714f10b Speculative fix for regression causing a hang with install --production (#3400)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-25 04:52:43 -07:00
Jarred Sumner
f8abd167d8 Revert "make these strings lazy"
This reverts commit 777f98bd10.
2023-06-25 04:17:07 -07:00
Jarred Sumner
777f98bd10 make these strings lazy 2023-06-25 03:32:10 -07:00
Jarred Sumner
30798c7078 Make timeout longer 2023-06-25 03:32:10 -07:00
Jarred Sumner
bc7719fc28 Reliability bugfix for WebSocket (#3394)
* Rewrite elementLengthLatin1IntoUTF8

* Update SIMDUTF

* Make `elementLengthLatin1IntoUTF8` faster

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-25 02:58:49 -07:00
Jarred Sumner
ff63555143 Rewrite Bun's runtime CommonJS loader (#3379)
* wip changes for CommonJS

* this rewrite is almost complete

* even more code

* wip

* Remove usages of `import.meta.require` from builtins

* Remove usages of require

* Regenerate

* ✂️ builtin rewrite commonjs in printer

* Use lazy custom getters for import.meta

* fixups

* Remove depd

* ugh

* still crashing

* fixup undici

* comment out import.meta.require.resolve temporarily

not a real solution but it stops the crashes

* Redo import.meta.primordials

* Builtins now have a `builtin://` protocol in source origin

* Seems to work?

* Finsih getting rid of primordials

* switcharoo

* No more function

* just one more bug

* Update launch.json

* Implement `require.main`

* ✂️

* Bump WebKit

* Fixup import cycles

* Fixup improt cycles

* export more things

* Implement `createCommonJSModule` builtin

* More exports

* regenerate

* i broke some stuff

* some of these tests work now

* We lost the encoding

* Sort of fix zlib

* Sort of fix util

* Update events.js

* bump

* bump

* bump

* Fix missing export in fs

* fix some bugs with builtin esm modules (stream, worker_threads, events). its not perfect yet.

* fix some other internal module bugs

* oops

* fix some extra require default stuff

* uncomment this file but it crsahes on my machine

* tidy code here

* fixup tls exports

* make simdutf happier

* Add hasPrefix binding

* Add test for `require.main`

* Fix CommonJS evaluation order race condition

* Make node:http load faster

* Add missing exports to tls.js

* Use the getter

* Regenerate builtins

* Fix assertion failure in Bun.write()

* revamp dotEnv parser (#3347)

- fixes `strings.indexOfAny()`
- fixes OOB array access

fixes #411
fixes #2823
fixes #3042

* fix tests for `expect()` (#3384)

- extend test job time-out for `darwin-aarch64`

* `expect().resolves` and `expect().rejects` (#3318)

* Move expect and snapshots to their own files

* expect().resolves and expect().rejects

* Fix promise being added to unhandled rejection list

* Handle timeouts in expect(<promise>)

* wip merge

* Fix merge issue

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

* fixup min/memcopy (#3388)

* Fix crash in builtins

* Don't attempt to evaluate modules with no source code

* Update WebCoreJSBuiltins.cpp

* Update WebCoreJSBuiltins.cpp

* Update WebCoreJSBuiltins.cpp

* Fix crash

* cleanup

* Fix test

cc @paperdave

* Fixup Undici

* Fix issue in node:http

* Create util-deprecate.mjs

* Fix several bugs

* Use the identifier

* Support error.code in `util.deprecate`

* make the CJs loader slightly more resilient

* Update WebCoreJSBuiltins.cpp

* Fix macros

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: Alex Lam S.L <alexlamsl@gmail.com>
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
2023-06-24 06:02:16 -07:00
Ciro Spaciari
069b42a7cc [feat] fs.watch (#3249)
* initial support

* add types

* fix comment

* fix types

* bigfix up

* more fixes

* fix some encoding support for watch

* fix rename event

* fixup

* fix latin1

* add fs_events, still failing some tests

* fixuup

* remove unecesary check

* readd tests ops

* this is necessary? just testing CI/CD weird errors

* just use dupe here

* cleanup and fix deinit

* fix zig upgrade
2023-06-23 23:24:34 -07:00
dave caruso
ceec1afec2 Add vi.spyOn and clean up some mock function binding calls (#3376)
* Add vi.spyOn and clean up some binding calls

* add vi.restoreAllMocks

* remove junk file

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-06-23 23:24:05 -07:00
dave caruso
5ae8e5d773 Make node-fallbacks build as esm not cjs / Fix node-fetch (#3377)
* Make node-fallbacks build as esm not cjs.

* fix stuff
2023-06-23 23:23:39 -07:00
Ciro Spaciari
4ff920c915 fixup min/memcopy (#3388) 2023-06-23 18:19:00 -07:00
Ashcon Partovi
217501e180 expect().resolves and expect().rejects (#3318)
* Move expect and snapshots to their own files

* expect().resolves and expect().rejects

* Fix promise being added to unhandled rejection list

* Handle timeouts in expect(<promise>)

* wip merge

* Fix merge issue

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-22 22:27:00 -07:00
Alex Lam S.L
ae4b65c52e fix tests for expect() (#3384)
- extend test job time-out for `darwin-aarch64`
2023-06-22 20:13:26 -07:00
Alex Lam S.L
ca1fe3c602 revamp dotEnv parser (#3347)
- fixes `strings.indexOfAny()`
- fixes OOB array access

fixes #411
fixes #2823
fixes #3042
2023-06-22 17:05:54 -07:00
Jarred Sumner
4a13a53058 CommonJS bun build cannot use import.meta (#3378)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-22 01:06:50 -07:00
Dylan Conway
5fa13625a1 upgrade zig to v0.11.0-dev.3737+9eb008717 (#3374)
* progress

* finish `@memset/@memcpy` update

* Update build.zig

* change `@enumToInt` to `@intFromEnum` and friends

* update zig versions

* it was 1

* add link to issue

* add `compileError` reminder

* fix merge

* format

* upgrade to llvm 16

* Revert "upgrade to llvm 16"

This reverts commit cc930ceb1c.

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-21 23:38:18 -07:00
Jarred Sumner
bfb322d618 Revert "Update Github action runners"
This reverts commit 69f558db8e.
2023-06-21 19:52:53 -07:00
dave caruso
43865a3e29 finish implementing JSMockFunction prototype + lots of expect test organizing (#3304)
* mock tests

* fix mistake

* stuff

* partially implement mock return promises

* lot of housecleaning on jest tests

* document / rename internalFields in jsmockfunction

* finish implementing JSMockFunction prototype

* cleanup

* more progress

* everything is done

* remove demo.test.js

* finish rebase

* requested changes

* fix compile error
2023-06-21 12:59:56 -07:00
Andreas Pfurtscheller
b691212c6e Update module resolution order docs (#3372)
If I'm reading and interpreting [these lines](69f558db8e/src/options.zig (L605-L627)) correct, the module resolution order [in the current docs](https://bun.sh/docs/runtime/modules#resolution) is outdated.

This change will fix the order.
2023-06-21 12:08:05 -07:00
Ashcon Partovi
69f558db8e Update Github action runners 2023-06-21 11:14:41 -07:00
Jarred Sumner
9befbf02f1 Update WebKit 2023-06-20 21:32:19 -07:00
Jarred Sumner
f81c7f10f6 Fix crash with .env files that are exactly 159 bytes long (#3369)
* Fix crash with .env files that are exactly 158 bytes and a newline character

* Update env_loader.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-20 21:17:32 -07:00
Jarred Sumner
b9c950bfb7 Improve error message for error.DependencyLoop (#3368)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-20 19:29:47 -07:00
Dylan Conway
6a1fbef8fd record jsx factory symbols in classic mode (#3360)
* record jsx factory symbols

* merge factory/fragment when more than one part

* update test

* use existing functions, use, `memberListToComponentsIfDifferent`

* missing file

* fix defaults
2023-06-20 19:29:20 -07:00
Dylan Conway
5006435234 enable asymmetric matchers in expect.toEqual, expect.toStrictEqual, and expect.toHaveProperty (#3367)
* add asymmetric matchers to `deepEquals`

* fix comparison of a few jstypes

* clean up and tests

* fix merge

* improve `expect.any` for primitives
2023-06-20 19:06:58 -07:00
Colin McDonnell
adb451eec6 Docs for DOM testing and FileSink (#3330)
* Update websocket docs & jsdoc

* Add info about user-specific data in ws

* Document FileSink

* Docs for happydom test

* Updates
2023-06-20 18:57:37 -07:00
Jarred Sumner
62639081c1 [JSTranspiler] Make scan and scanImports more careful with GC 2023-06-20 18:55:14 -07:00
Jarred Sumner
570ef07170 woops 2023-06-20 18:06:28 -07:00
Jarred Sumner
83d7ec728f Clone SourceOrigin string 2023-06-20 17:12:47 -07:00
Jarred Sumner
9f301e13c5 Cleanup fs.utimesSync (#3363)
* Fix UB in fs.utimesSync when passing a number with an integer greater than i32

* Fix make headers

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-20 00:31:07 -07:00
Jarred Sumner
f1b1dbf5cd prettier 2023-06-20 00:02:14 -07:00
Keyhan Vakil
bdbb637b3d implement more of V8's stack trace API (#3359)
- fix source map positions for getLineNumber / getColumnNumber
- fix return value getting coerced to a string
- implement CallFrame.p.toString
- add tests for getFunction, getThis, isConstructor, isNative, toString,
  getLineNumber, getColumnNumber

still not implemented:
- isPromiseAll/getPromiseIndex
- getEvalOrigin
- getScriptHash
- getPosition
- getEnclosingColumnNumber/getEnclosingLineNumber
- isAsync
- accessing Error.stack should call prepareStackTrace

still broken:
- isEval: often returns false when it should return true
- isToplevel: often returns true when it should return false

Refs: https://v8.dev/docs/stack-trace-api
Refs: v8/src/objects/call-site-info.cc
Fixes: https://github.com/oven-sh/bun/issues/2883
2023-06-19 23:28:40 -07:00
Tiramify (A.K. Daniel)
e9e0e05156 feat(bun/test): Impl. "toBeArray", "toBeArrayOfSize" & "toBeTypeOf" (#3316)
* Implement toBeArray, toBeArrayOfSize, toBeTypeOf

* fix typos/variable names

* Add testcases for regex and dates

* little fix

* i didn't paste that...
2023-06-19 22:39:44 -07:00
Jarred Sumner
7d94a49ef4 Fix bug that breaks bunx prisma init when node is not installed (#3362)
* tweak cjs

* Handle more cases, add a test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-19 22:34:22 -07:00
Jarred Sumner
cbd6d24d34 Move this code up a bit 2023-06-19 00:33:14 -07:00
Jarred Sumner
b951c1f89e Press the secret "use less RAM" button 2023-06-18 23:30:01 -07:00
Jarred Sumner
b78b2a3031 Update esbuild-test.js 2023-06-18 21:57:52 -07:00
Jarred Sumner
7dcf8b2186 Make the esbuild integration test more thorough 2023-06-18 21:57:40 -07:00
Jarred Sumner
8a5b8f1fca Make more tests fail 2023-06-18 21:07:38 -07:00
Jarred Sumner
8ad9e5755d Add missing ucs2 alias 2023-06-18 21:05:05 -07:00
Jarred Sumner
fdb7940c4e Fix a bunch of bugs (#3352)
* Fix a bunch of bugs

* undo that one

* Fix crash in readdir()

* woops

* woops

* Add comment

* ✂️

* Make `readlink()` and `realpath` use much less memory

* Update BunString.cpp

* woopsie

* Unnecessary

* Don't commit these

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-18 10:47:42 -07:00
Alex Lam S.L
873f615358 minor build diffs (#3349) 2023-06-18 03:45:41 -07:00
Ciro Spaciari
b2af1984ed [eventsource] SSE Client (#3074)
* fix flush

* remove logs

* add HTTP/1.1 eventsource

* fix parse spec

* multiple data in one event

* get lastEventId for reconnection

* fix parsing add reconnect

* fix reconnection retry

* add retry option

* move eventsource to builtins

* remove duplicate interface on globals.d.ts

* move test to TS

* fmt

* allow no Content-Length or Transfer Encoding

* udpate builtins

* hardcoded

* merge

* revert /src/out

* updated

* Update .gitignore

* Make the tests fail

* Cleanup EventSource getter

* fixup

* fixup TS

* fmt

* update builtins

* fix tests

* Clear existing timeouts

* Add `ref` and `unref` methods

* Use `super` to make prototype pollution slightly harder

* Reduce test timeout

* Regenerate builtins

* prettier + ref/unref

* Outdated

* forgot to commit this

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-17 20:54:50 -07:00
Tiramify (A.K. Daniel)
065713aeca Add types for toBeOdd & toBeEven (#3344) 2023-06-17 14:05:28 -07:00
Luigi Pinca
68c092aef2 Set the publishToSelf option to true (#3343)
All messages sent by the clients are expected to be received by all
clients. Without the `publishToSelf` option a message is not sent back
to the sender and the benchmark hangs.
2023-06-17 14:05:11 -07:00
Dylan Conway
9b8054ae11 don't remove const if referenced before declaration (#3337) 2023-06-16 21:11:57 -07:00
Jarred Sumner
0591c6b4bb Fix make headers jun 15 edition 2023-06-15 23:00:57 -07:00
Kabir Goel
4a22fcd93c Fix typo in run.md (#3331) 2023-06-15 15:03:46 -07:00
Jarred Sumner
dc06caccaa Tweak CommonJS output (#3320)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-15 01:18:23 -07:00
Ciro Spaciari
e6d4b3a89a [Bun.serve] fix Bun.serve argument check (#3314)
* fixup checks

* throw when tls is not a object also fix socket

* fix error message

* null or undefined on tls option in Bun.serve or sockets should not throw

* add tests

* fix tests and socket validation

* remove unnecessary check

* add listen tests
2023-06-14 19:29:36 -07:00
Jarred Sumner
0f131a976e Update build-id 2023-06-14 08:37:33 -07:00
Jarred Sumner
7f535a20a2 Workaround issue with module.require = 2023-06-14 08:35:51 -07:00
Jarred Sumner
bac7526c03 Make Bun.argv the same as process.argv (#3310)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-14 04:01:28 -07:00
Jarred Sumner
c2a83f87d8 Remove redudant put 2023-06-14 03:25:43 -07:00
Jarred Sumner
333b3f6beb Prepare to support webkit debug build assertions 2023-06-14 03:24:39 -07:00
dave caruso
b7ff3b0745 document Bun.argv in typedefs (#3302) 2023-06-14 01:48:51 -07:00
Colin McDonnell
a1bb79f440 mock type changes (#3305)
* Update mock types and set bun-types@latest in bun init

* Remove mockfn methods from toplevel mock

* Remove comments
2023-06-13 22:28:31 -07:00
xxxhussein
171ba6327d fix TS5096 (#3256) 2023-06-13 17:42:29 -07:00
Jarred Sumner
2ab797ff75 lol 2023-06-13 10:54:51 -07:00
Jarred Sumner
bdb1b7124a Fix crash in CJS (#3294)
* Fix crash in CJS

* Add std.heap.ArenaAllocator

* Use our arena allocator

* Reduce JS parser memory usage and make HMR faster

* Write some comments

* fix test failure & clean up this code

* Update javascript.zig

* make arena usage safer

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-13 09:15:05 -07:00
Jarred Sumner
b93bdbb124 Add test 2023-06-13 07:29:02 -07:00
Alex Lam S.L
c8d06f04d3 workaround quote escape issues for bun run (#3290)
fixes #53
2023-06-13 05:38:10 -07:00
Dylan Conway
067a0235e4 handle unwrapping require in any expression (#3292) 2023-06-12 21:43:45 -07:00
Jarred Sumner
dbb2416542 Make mocks use FunctionPrototype (#3291)
* Make mocks use FunctionPrototype

* Fix static methods

* Fix types

* Update JSMockFunction.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-12 19:55:07 -07:00
dave caruso
51c093e24e typo in readline (#3286) 2023-06-12 07:41:54 -07:00
Keyhan Vakil
50a18b6bac doc: minor fixes (#3278)
* `bun link` only modifies `package.json` when `--save` is passed.
* clang-15 is a separate package from llvm-15.
2023-06-11 09:26:46 -07:00
Keyhan Vakil
9a8d9b5e91 add --save argument to install (#3277) 2023-06-11 07:10:55 -07:00
Jarred Sumner
ef65f3c305 Support using WTF::StringImpl from Zig (#3279)
* Fix `make headers`

* [JS parser] Fix bug with printing non-ascii import paths in ascii mode

* Introduce `bun.String`

* Add test for non-ascii imports & entry points

* Add comment

* Fix build issue

* Support HTTP server

* Make it print the same

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-11 05:26:37 -07:00
Jarred Sumner
02eafd5019 Make cold bun install use 2x less memory (#3271)
* Make cold `bun install` use 2x less memory

In this benchmark: https://github.com/orogene/orogene/blob/main/BENCHMARKS.md

This brings us from around 2.7 GB to 1.2 GB of memory

* Address comments

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-10 15:38:09 -07:00
Luigi Pinca
04cd6a82b8 Fix benchmark (#3276) 2023-06-10 11:39:26 -07:00
Jarred Sumner
a2ec2ea397 Fixes #3250 (#3269)
* Fixes #3250

We must call `EVP_MD_CTX_cleanup` because `EVP_MD_CTX` containers pointers inside to allocated memory

* Fix leak

* Update sha.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-10 02:26:48 -07:00
paperluigis
f51878a8ec Fix wording and code example in docs for Bun.sleepSync (#3270) 2023-06-10 01:03:30 -07:00
Alex Lam S.L
f18423cf45 [install] fix lockfile fallback for life cycle scripts (#3265) 2023-06-09 21:02:37 -07:00
Dylan Conway
68b9731db2 Update writing.md (#3264) 2023-06-09 19:46:29 -07:00
Dylan Conway
76cf465cc2 toMatchObject and some asymmetric matchers (#3260)
* `toMatchObject` progress

* add `expect.stringContaining()`

* add `expect.stringMatching()`

* print asymmetric matchers

* cleanup

* return before printing if constructor value isn't there

* move matcher logic to cpp

* pretty format and tests

* fix formatting for snapshots

* format `stringContaining` and `stringMatching` like jest

* better test

* remove commented tests

* remove old property matcher code

* add types

* make sure all props are matched in arrays

* add `Bun.deepMatch`
2023-06-09 19:26:36 -07:00
Jarred Sumner
0f018ea215 Fixes #3206 (#3262)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-09 18:22:32 -07:00
Colin McDonnell
a8dc41cd9f Fix jest.fn type 2023-06-09 18:08:36 -07:00
Alex Lam S.L
dbcaa02d89 [install] fix life cycle scripts execution (#3235)
[install] fix life cycle scripts execution
- scripts from dependencies did not run during re-installation
- `bun.lockb` now contains data on life cycle scripts
- handle prior lockfile format by reading missing info from every `package.json`
- suppress spurious log output from tests
2023-06-10 03:30:43 +03:00
Colin McDonnell
e6b1574046 Clean up types 2023-06-09 17:23:06 -07:00
Colin McDonnell
5df26a6a9b Improve types for mocks (#3261)
* Add jest.fn to types

* Fix type-tests
2023-06-09 17:10:19 -07:00
Colin McDonnell
fc3331628e Clean up comments in types 2023-06-09 16:45:41 -07:00
Colin McDonnell
0ec70119f2 Add types for mocks 2023-06-09 16:44:29 -07:00
Jarred Sumner
bf518222d4 Implement mocks in bun:test (#3252)
* wip

* wip

* most of the code for mocks in bun:test

* finishing up

* Implement `toHaveBeenCalled` and `toHaveBeenCalledTimes(1)`

* Test

* visit

* results, not returnValues

* exact

* Update jest.zig

* A couple more tests

* Add jest.fn

* support resetting mocks

* Implement spyOn

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-09 16:38:06 -07:00
ytakhs
6565bd89d5 Fix to retain a newline after removing a package (#3231) 2023-06-09 08:42:38 -07:00
Ashcon Partovi
99485bec4c Fix tests that pass but generate annotation 2023-06-09 05:53:23 -07:00
Ashcon Partovi
0eb5103642 Fix missing JSC.markBinding 2023-06-09 05:40:44 -07:00
James Liu
edd03341b1 docs: add missing right parenthesis in example code (#3245)
add missing right parenthesis in example code in `HTTP server` section
2023-06-09 05:20:37 -07:00
Alex Lam S.L
1d2f06b37e replace sudo usage in GitHub Actions (#3254) 2023-06-09 11:33:22 +03:00
dave caruso
870e5ac1dc improve stream types (#3240) 2023-06-07 14:45:14 -07:00
Jarred Sumner
7e296a1adc [breaking][bun:sqlite] .values() returns [] instead of null for queries returning 0 results (#3219)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-06 23:52:23 -07:00
Jarred Sumner
b9a705f84b add buffer label (#3220)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-06 23:51:05 -07:00
Colin McDonnell
d265ed80d2 Docs for Bun.password and ws publish (#3227)
* Update websocket docs & jsdoc

* Document Bun.password

* Update hash encoding docs

* Fix typos

* Add info about user-specific data in ws

* Update outdated websocket jsdoc

* Replace usages of req.url

* Remove log
2023-06-06 23:50:43 -07:00
dave caruso
fa3cfd34cb yeah (#3229) 2023-06-06 23:48:13 -07:00
Colin McDonnell
bcd67c3455 Bun.passwordSync -> Bun.password.{method}Sync (#3228)
* Bun.passwordSync -> Bun.password.{method}Sync

* Update jsdoc

* Updates
2023-06-06 23:44:40 -07:00
Jarred Sumner
ec71e7afe4 Rename bun-link-lld-debug to link 2023-06-05 18:14:44 -07:00
dave caruso
17bca62df1 add a test for lodash-es (#3217)
* add bundling tests for lodash-es

* add isBuffer tests
2023-06-05 17:38:03 -07:00
Jarred Sumner
0c11762c31 [node:vm] Fix crash when new ArrayBuffer() is returned 2023-06-05 17:17:48 -07:00
Dylan Conway
fe7d5357d8 allow v flag in regexp literal (#3213)
* add v to possible regexp flags

* alphabetical
2023-06-05 13:33:02 -07:00
Dylan Conway
568f170e12 [transpiler] Fix new length for raw template contents (#3215)
* use correct length for raw template contents

* tests for raw template contents
2023-06-05 12:55:56 -07:00
Jarred Sumner
c87d65856c [Inspector] Introduce inspector: true in Bun.serve()
This exposes the WebKit inspector debugger protocol over WebSockets at the endpoint `/bun:inspect` when `Bun.serve()`.

To enable, pass:
```js
Bun.serve({inspector: true, development: true, fetch(req){ /* rest of params *... });
```

Both `development` and `inspector` must be true, as this is very security sensitive to expose publicly.
2023-06-05 04:31:13 -07:00
Jarred Sumner
9b996e702e Implement Bun.password and Bun.passwordSync (#3204)
* Implement `Bun.password.{verify, hash}` and `Bun.passwordSync.{verify, hash}`

* flip the booleans

* delete unused

* Add `cost` for `"bcrypt"`, add `"memoryCost"` and `"timeCost'` for argon2, use SHA512

* Update bun.zig

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-04 18:20:04 -07:00
Dylan Conway
2cb1376a93 removeAllListeners return this (#3208)
* return this in `removeAllListeners`

* move `UNUSED_PARAM` for used params
2023-06-04 18:19:41 -07:00
Jarred Sumner
1f3da24fe0 [Transpiler] Fix normalizing \r\n in template string literals (#3209) 2023-06-04 18:07:38 -07:00
Jarred Sumner
c4e31551f3 Update .gitattributes 2023-06-03 17:44:28 -07:00
dave caruso
52d11ce845 Add test case (#3186) 2023-06-03 16:38:49 -07:00
dave caruso
7d8b6d487b make hardcoded -> make esm + document needing bun to build bun (#3188) 2023-06-03 16:38:33 -07:00
Jarred Sumner
583c6d3644 Bump 2023-06-03 16:37:53 -07:00
Ciro Spaciari
aabb0b77ce [tests] prisma tests (#3197) 2023-06-03 15:04:19 -07:00
Jarred Sumner
59d7c47e3f Fix crash with path parse in win32 (#3187)
* Update CommonJSModuleRecord.cpp

* smaller

* [node:path] Fix crash, mark TODO

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-03 00:14:27 -07:00
Dylan Conway
21bc3a9c39 [bundler] fix json imports, undo some todos 2023-06-02 22:44:19 -07:00
dave caruso
cfd73cec81 fixes with hardcoded modules (#3182)
* fixes with hardcoded modules

* add make hardcoded to make dev

* adjust this message

* remove debugging logs

* this

* restore2
2023-06-02 21:36:05 -07:00
Dylan Conway
3e437a6ae0 check package name length in shouldUnwrapRequire() (#3183)
* make sure length is equal

* add and use `indexEqualAny`
2023-06-02 20:45:48 -07:00
Dylan Conway
d8e7436db0 use NODE_ENV for react-jsx or react-jsxdev (#3184) 2023-06-02 20:35:00 -07:00
dave caruso
f798a0cfe8 fix readableStreamToArrayBuffer (#3181)
* fix discord.js again

* remove one of the async hooks warnings

* clarify hardcoded modules docs
2023-06-02 19:03:16 -07:00
Ciro Spaciari
51846d0277 [napi] some fixes for prisma (#3176)
* patch create object, so it can be used on wrap

* cleanup

* cleanup

* dont override napiRef

* make wrap strong ref

* workaround tests

* remove work around
2023-06-02 17:56:16 -07:00
Colin McDonnell
c4f237572d Update macro/test docs (#3180)
* Add test and fix plugin type

* Update docs and config pages
2023-06-02 17:43:51 -07:00
Dylan Conway
e20e695775 continue if import is standalone (#3178) 2023-06-02 17:07:16 -07:00
Jarred Sumner
132ab63a32 Add comment 2023-06-02 16:39:16 -07:00
Ashcon Partovi
bfd315fc72 Support NO_COLOR environment variable (#3055) 2023-06-02 14:24:16 -07:00
Jarred Sumner
72c2123e07 Maybe we don't need to do this anymore? (#3169) 2023-06-02 14:22:39 -07:00
Colin McDonnell
1f7d62bfd5 Support NodeJS.ProcessEnv 2023-06-02 12:49:31 -07:00
Jozef Steinhübl
4d1c900cac types: expose Bun.Env (#3111)
* expose Bun.Env

* export bun.Env

* fix: use import instead namespace access

* fix(child_process): use import

* tests(env): use module instead namespace
2023-06-02 12:48:19 -07:00
Jarred Sumner
97c522517c Fixes #3161 (#3174)
* Fixes #3161

* Fix the error message

* woops

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-02 04:01:25 -07:00
Ashcon Partovi
4c6245b2e5 Add concurrency to workflows, enable cancel-in-progress 2023-06-01 18:38:40 -07:00
Ashcon Partovi
b21a58e564 Fix github annotation when using inspect() (#3166) 2023-06-01 18:25:06 -07:00
dave caruso
4df1d37ddc Bundle and minify .exports.js files. (#3036)
* move all exports.js into src/js

* finalize the sort of this

* and it works

* add test.ts to gitignore

* okay

* convert some to ts just to show

* finish up

* fixup makefile

* minify syntax in dev

* finish rebase

* dont minify all modules

* merge

* finish rebase merge

* flaky test that hangs
2023-06-01 18:16:47 -07:00
Ashcon Partovi
03ffd1c732 Disable typecheck workflow for now 2023-06-01 18:04:45 -07:00
Jarred Sumner
3e84f18cc0 Implement __dirname and __filename, allow direct eval in CommonJS (#3164)
* Implement `__dirname` and `__filename`, allow direct eval in CommonJS

* Fixup dirname and add test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-01 18:04:09 -07:00
Jarred Sumner
42606d6aed Rename ptr to _unsafe_ptr_do_not_use (#3163)
* Rename `ptr` to `_unsafe_ptr_do_not_use`

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-06-01 18:02:41 -07:00
Derrick Farris
c366b62160 Update macros.md (#3165)
Fix a repeated "for"
2023-06-01 17:25:28 -07:00
dave caruso
42d8b7183c random fixes that help vite/sveltekit (#3140)
* existsSync with invalid paths should return false

* partially support file urls (does not do percent encoding)

* add utf16 support for Path.isAbsoluteString

* Update src/resolver/resolver.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* fixups

* revert

* prettier format

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-06-01 16:48:37 -07:00
Ciro Spaciari
f9809f0044 [napi] fix thread safe function callback (#3162)
* fixup

* add debug log message to event loop unexpected tag

* fix fmt
2023-06-01 15:19:06 -07:00
dave caruso
4378ef8e97 mark currently known test fails as .todo (#3052)
* start this

* commit

* mark all failing tests as todo

* fasdfad

* bundler tests

* tests

* adjust failing tests to todo

* comment out some more tests

* png as test
2023-06-01 14:37:35 -07:00
dave caruso
2c1694f63b Fix streams breaking on reverted EventEmitter / Make Discord.js work (#2913)
* Revert "Revert "use a lazyily initialized stream for `node:crypto` `createHash` (#2652)""

This reverts commit 613bb4822e.

* Revert "Revert "implement `node:events` in javascript (#2604)""

This reverts commit a4d0a1961a.

* oops

* fix entrypoints stuff

* fix hash copy

* use native events for node streams and crypto

* requested changes

* oops

* make discord.js work

* fix webkit hash

* headers tojson
2023-06-01 14:31:36 -07:00
Jarred Sumner
ae277a0dec Update build-id 2023-06-01 13:58:50 -07:00
Dylan Conway
473b219a37 only add cjs export name if it is assigned (#3159) 2023-06-01 13:57:51 -07:00
Noah Chase
be1833898e fix typo in documentation ("the today" -> "today") (#3160) 2023-06-01 13:34:09 -07:00
Jozef Steinhübl
a64da8f0cb ci: dont run builds in forks (#3156) 2023-06-01 12:35:26 -07:00
Dylan Conway
689434e012 don't rewrite module.exports if assign target is update or replace (#3147)
* don't rewrite `module.exports` if assign target is `update` or `replace`

* missing `is_delete_target`, check de-opt before rewriting
2023-05-31 23:51:32 -07:00
Jarred Sumner
a73a4d1e0b Fix test failure due to cloudflare changing dns ttl 2023-05-31 23:19:32 -07:00
Jarred Sumner
457f325773 slightly clean up this test 2023-05-31 23:18:58 -07:00
Jarred Sumner
5f80681295 [TCP] Ensure we keep the handlers functions alive when an error callback needs to be called
This can cause test failures due to GC'ing the handlers when we are *just* about to call them.
2023-05-31 23:17:18 -07:00
Jarred Sumner
fdcfcce9e7 Clean-up some option parsing in Bun.spawn 2023-05-31 23:15:21 -07:00
Jarred Sumner
1ca70b855c Update launch.json 2023-05-31 23:13:50 -07:00
Ashcon Partovi
e632941c52 Small improvements to bun test (#3071)
* Change status icon for skipped tests from "-" to "»"

* Show file path instead of filename in `bun test`

* Emit collapsable logs when running `bun test` in Github Actions

https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines

* Add fallback for test icons when emojis are not available

* Only check for GITHUB_ACTIONS when running `bun test`

* Emit error annotations when running `bun test` in Github Actions

https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-error-message

* Remove ANSI output from Github annotation, it doesn't work

* Remove outdated code from internal test runner

* Add GithubActionFormatter to handle cases where error name or message is already ANSI

* Fix formatting of test

* Fix #3070

* Implement `bun test --run-todo`

By default, `test.todo()` is no longer run, unless `--run-todo` is specified.

* Fix test that relies on test.todo() being run

* Support vitest-style test options

* Disable GITHUB_ACTION in test harness

* Add types for TestOptions

* Fix bug where test.skip() actually ran

* Implement `test.skipIf()` and `describe.skipIf()`

* Implement `test.runIf()`

* Move DiffFormatter to its own file

* Fix bug where Bun.inspect() would emit a Github annotation

* Introduce `bun test --only`, rename `--run-todo` to `--todo`

* Implement `test.if()`, `describe.if()`, and other test fixes

* Remove unwanted files from last commit

* Fix last reference to --run-todo

* Fix memory issues with printing github actions text

* Update bindings.zig

* Fix bug with `test.only()`

* Remove debug test

* Make the github annotations better

* Improve .vscode/launch.json

* Implement `expect().toBeNil()`

* Remove .only() from test

* Implement toBeBoolean(), toBeTrue(), toBeFalse()

* Add lots of matchers
* toBeNil()
* toBeBoolean()
* toBeTrue()
* toBeFalse()
* toBeNumber()
* toBeInteger()
* toBeFinite()
* toBePositive()
* toBeNegative()
* toBeWithin()
* toBeSymbol()
* toBeFunction()
* toBeDate()
* toBeString()
* toInclude()
* toStartWith()
* toEndWith()

* Fix #3135

* Reduce verbosity of test

* Fix snapshot bug

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-31 23:12:04 -07:00
Colin McDonnell
176fade220 Remove bun-macro-relay and update docs (#3145)
* Update macro docs

* Remove bun-macro-relay
2023-05-31 19:51:08 -07:00
Jarred Sumner
110d0752f3 Add "macro" package.json exports condition 2023-05-31 19:01:59 -07:00
Ciro Spaciari
e24d579a32 isolated version of Path compatible with nodejs (#3143) 2023-05-31 18:20:50 -07:00
Mike Roelens
a7c7128cd7 Fix typo in macro docs (#3144) 2023-05-31 18:15:49 -07:00
Jarred Sumner
4c01454376 Make uploading files with fetch()fast (#3125)
* Make file uploads fast

* Add benchmark

* Update README.md

* defaults

* print

* prettier

* smaller

* fix(path) fix parse behavior (#3134)

* Add macro docs (#3139)

* Add macro doc

* Updates

* Tweaks

* Update doc

* Update macro serialization doc

* Update macro doc

* `--no-macros` flag, disable macros in node_modules

* invert base/filename internally (#3141)

* always false

* Fix broken test

* Add a test sendfile() test with large file

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-05-31 17:20:30 -07:00
Dylan Conway
611f1d0e24 set optional_chain instead of optional_start (#3142) 2023-05-31 16:13:24 -07:00
Ciro Spaciari
52c6609792 invert base/filename internally (#3141) 2023-05-31 15:13:37 -07:00
Jarred Sumner
7057cb1982 --no-macros flag, disable macros in node_modules 2023-05-31 15:05:49 -07:00
Colin McDonnell
68c1568075 Update macro doc 2023-05-31 13:58:38 -07:00
Colin McDonnell
4b34a7ce2a Update macro serialization doc 2023-05-31 13:43:08 -07:00
Colin McDonnell
b284e09ce5 Update doc 2023-05-31 13:35:11 -07:00
Colin McDonnell
8f55f05871 Add macro docs (#3139)
* Add macro doc

* Updates

* Tweaks
2023-05-31 13:34:35 -07:00
Ciro Spaciari
58fcb60831 fix(path) fix parse behavior (#3134) 2023-05-31 12:07:52 -07:00
Jarred Sumner
557aac6a34 Support FormData & file uploads in fetch body (#3123)
* Fixes #2264

* fixup

* Don't leak HTTP headers

* Include the mime type. It's cleaner

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-31 00:43:59 -07:00
Jarred Sumner
0aab11a95d always clone these 2023-05-30 19:39:12 -07:00
Jarred Sumner
7376ae6980 Update modules.md 2023-05-30 15:52:21 -07:00
Jarred Sumner
148c6e7551 Fix wasi 2023-05-30 15:41:27 -07:00
Jarred Sumner
b0c38a3c15 Update ZigGeneratedClasses.h 2023-05-30 13:13:42 -07:00
Jarred Sumner
756e15f6e2 Add another comment 2023-05-30 02:53:28 -07:00
Jarred Sumner
10be26f011 [CommonJS] Handle this better 2023-05-30 02:51:50 -07:00
Jarred Sumner
12a0e2bfdd Fixes #3115 2023-05-30 02:51:27 -07:00
Jarred Sumner
481f916f3f More comments 2023-05-30 00:30:47 -07:00
Jarred Sumner
85565d95d5 Add a comment 2023-05-30 00:26:30 -07:00
Jarred Sumner
fdbf8a5184 Handle Object.defineProperty(module, "exports", {get: getter}) 2023-05-30 00:24:18 -07:00
Jarred Sumner
8e911d38c4 Bump 2023-05-30 00:19:15 -07:00
Jarred Sumner
052df7d48c Cleanup CommonJS changes (#3112)
* Add more GC in test

* Fix handling of functions and re-assignments in CommonJS

* Increase timeout

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-29 21:01:39 -07:00
Jarred Sumner
5990a9528f Rename this file so we know what it is 2023-05-29 19:58:40 -07:00
Jarred Sumner
aa6801d5df Update index.md 2023-05-29 12:22:13 -07:00
Jarred Sumner
d0185925ff Update modules.md 2023-05-29 12:15:33 -07:00
Colin McDonnell
9b6913e1a6 More/better docs for JSX, utils, binary data, streams, hashing, bun test, Bun.serve (#3005)
* WIP

* Updates

* Document deepEquals

* WIP

* Update typeS

* Update TLS docs for Bun.serve

* Update types for tls

* Draft binary data page. Add Streams page.

* Update test runner docs

* Add hashing, flesh out utils

* Grammar

* Update types

* Fix

* Add import.meta docs

* Tee
2023-05-29 11:49:51 -07:00
Jarred Sumner
e2de1f5c13 Natively support CommonJS at runtime (#3104)
* Natively support CommonJS at runtime

* cleanup how getters are handled, add fast path

* more consistent with node

* use * As

* Remove thrown modules on exception

* Handle exception better

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-29 11:23:10 -07:00
Jarred Sumner
2b04ef4fae Convert module.exports = { foo: 'bar'} to ESM in bun build (#3103)
* Convert `module.exports = { foo: 'bar'}` to ESM in `bun build`

* De-opt for `module.exports = {}`

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-28 21:02:51 -07:00
Jarred Sumner
8dfd3dbdbc Add query string to express integration test 2023-05-28 13:30:25 -07:00
Ciro Spaciari
63e2d78e76 [node:net] fix createConnection options passing (#3101)
* fixup createConnection

* fix comment

* fixup comment

* also fix it on tls
2023-05-28 13:20:32 -07:00
Jarred Sumner
1388ec0d60 Fixes #2356 (#3098) 2023-05-27 23:33:47 -07:00
Tiramify (A.K. Daniel)
4ba3ed512a Implement process.env.npm_lifecycle_event (#3097)
* Update run_command.zig

* Update env.test.ts

* Add files via upload

* Update run-process-env.test.ts

* Update env.test.ts

* Update harness.ts
2023-05-27 20:43:08 -07:00
Jarred Sumner
f870f97a94 Fixes #3091 (#3092)
* Fixes #3091

* Update build-id

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-27 00:21:54 -07:00
Jarred Sumner
7094997eec Fix crash in Server.prototype.fetch() helper function
cc @cirospaciari, if you use `mimalloc-debug` it catches things like this
2023-05-26 21:18:31 -07:00
Jarred Sumner
79907fe84c Add more debug safety checks 2023-05-26 21:17:10 -07:00
Ashcon Partovi
1a30b4fe29 Implement expect().toBeEmpty() (#3060)
* Implement `expect().toBeEmpty()`

* Fix formatting on test

* Finish up expect().toBeEmpty()

* Update expect.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-26 19:24:20 -07:00
Jarred Sumner
4298f36fc9 fixup 2023-05-26 16:29:44 -07:00
Jarred Sumner
3a0735e164 Pretty formatter for Headers & URLSearchParams (#3081)
* Pretty formatter for `Headers` & `URLSearchParams`

* cleanup

* console.log on Headers, FormData, URLSearchParams will always quote the keys now

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-26 16:28:09 -07:00
Ciro Spaciari
42125b4351 [fetch] change response allocator (#3086)
* change allocator

* cleanup
2023-05-26 15:07:03 -07:00
Jarred Sumner
0f2a79b9c1 Fix crash in test.todo + remove JSC C API usages in bun:test (#3079)
* Fix crash in test.todo

* remove usages of JSC C API in bun:test

* Remove additional JSC-C API usages

* fix `make headers`

* URLSearchParams.length

* FormData length

* URLSearchParams length

* Fix `make headers`

* very fancy length

* Fix bug with exceptions being ignored sometimes

* Add tests for extension toHaveLength

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-26 03:32:28 -07:00
Dylan Conway
62f05ec103 avoid using null value 2023-05-25 23:07:18 -07:00
Jiri Spac
1f7ad0cc37 add a bit more info on Elysia (#3062) 2023-05-25 22:04:07 -07:00
Alex Lam S.L
4c566f56c1 [install] fix .bin linking (#3067)
- causes intermittent `bun install` failures on `bun-types`
2023-05-25 21:58:30 -07:00
Dylan Conway
b395836080 jsx runtime from env (#3076)
* use `NODE_ENV` for jsx mode

* check env after `configureRouter`

* get `NODE_ENV` from `options.production`
2023-05-25 21:39:01 -07:00
Dylan Conway
801881dd7d update jsx test for classic runtime 2023-05-25 20:54:39 -07:00
Jarred Sumner
7b4bba787d prettier 2023-05-25 18:14:01 -07:00
Ciro Spaciari
e95f9c6daa [stream] fix flush (#3073)
* fix flush

* remove logs
2023-05-25 16:41:00 -07:00
Jarred Sumner
50bad43dbe Remove paragraph that has incorrect information in the docs 2023-05-25 16:16:16 -07:00
Dialga
48997eaeba Update sqlite.md (#3063)
fix serialize example
2023-05-25 10:14:29 -07:00
Jarred Sumner
f02561530f Bump 2023-05-24 19:54:00 -07:00
Jarred Sumner
88d9bac5ec Support with { type: "macro"} in bun build (#3059)
* [bun macro] Support `assert { type: "macro" }` and `with {type: "macro"}`

* [bun macro] Pass through input as arguments instead of a JSNode

* Fix hang when loading many entry points simultaneously with macros

* do not clone

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-24 19:37:57 -07:00
Jarred Sumner
63740a382b Load .env.test, set NODE_ENV=test in bun test, load .env.{test,production,development}.local (#3037)
* Support `.env.test` & `.env.{test,production,development}.local`

* Fix bug preventing inlining of process.env.NODE_ENV by default

* Update env_loader.zig

* add env tests

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: dave caruso <me@paperdave.net>
2023-05-24 18:52:50 -07:00
Ciro Spaciari
ed1f62ffff [server.fetch] call when using Request object (#3051)
* patch server.fetch

* add tests and fix types
2023-05-24 18:52:13 -07:00
Dylan Conway
4972934189 fix setting jsxImportSource, jsxFactory, and jsxFragmentFactory (#3057)
* default automatic, merge jsx flags from multiple tsconfigs

* use entire package name

* some tests

* more tests
2023-05-24 18:33:28 -07:00
Jarred Sumner
d73bce058a don't do MMD in CI 2023-05-24 18:31:33 -07:00
Ciro Spaciari
10c018df8e [bun:FileSystemRouter] add more validations on parameters (#3053)
* add validations and allow relative path on  dir

* remove unneed things

* add origin/dir validation tests

* remove workaround

* add back relative path resolution
2023-05-24 16:36:20 -07:00
Jarred Sumner
29969bc130 Add comment 2023-05-24 15:45:39 -07:00
Jarred Sumner
1ea74238cd Remove that field 2023-05-24 15:44:22 -07:00
Jarred Sumner
3361814cab Fix string check 2023-05-24 15:44:02 -07:00
Jarred Sumner
cc84c689ea Fixes #3031 (#3041)
* Fixes #3031

* Leave original input in there

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-24 12:02:33 -07:00
Jarred Sumner
b3d5f37598 Implement require.cache (#3045)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-24 12:01:59 -07:00
Alex Lam S.L
31c967206a extend test time-outs (#3048)
- avoid intermittent failures due to network latencies
2023-05-24 08:33:18 -07:00
Ashcon Partovi
c3d402ce47 Implement bun test --timeout (#3040)
You can change the default per-test timeout in `bun test`:
 > bun test --timeout 10

The default timeout is 5000.
2023-05-23 22:33:32 -07:00
Kruithne
d9bdfcf131 Fix incorrect URL in loaders.md (#3025) 2023-05-23 18:08:24 -07:00
Jarred Sumner
6074d4e378 workaround 2023-05-23 18:07:23 -07:00
Jarred Sumner
57d341f390 too noisy 2023-05-23 16:57:02 -07:00
Bill Mill
bf759b62c6 Add pkg-config as a build requirement (#3027)
Without pkg-config, the libarchive build fails in autogen.sh[1]

1: https://github.com/libarchive/libarchive/issues/742
2023-05-23 16:06:35 -07:00
dave caruso
5b0fea7093 fix bun init and update node vm docs (#3014) 2023-05-23 15:02:39 -07:00
Dylan Conway
21002ed405 check if key from exports can be printed as an identifier (#3032)
* check if key can be printed as an identifier

* possibly escape
2023-05-23 14:56:03 -07:00
Ashcon Partovi
2a669a657a Support test.todo() in ecosystem runner 2023-05-23 13:39:58 -07:00
Jarred Sumner
f71eb39b14 [bun:test] Don't schedule the GC aggressively on every file
We already run the GC automatically whenever heap size grows, so this is mostly unnecessary

In one benchmark, this is an 83% performance improvement at a cost of 9% more memory
2023-05-23 00:44:56 -07:00
Jarred Sumner
de185bdc05 Skip failing tests 2023-05-23 00:42:02 -07:00
Jarred Sumner
1e3476ee08 [bun:test] Fix async/done-based test.todo (#3015)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-23 00:40:41 -07:00
Jarred Sumner
5b38c55c3d Support setting a timezone with process.env.TZ and Bun.env.TZ (#3018)
* Support setting a timezone via `process.env.TZ`

* Implement `setTimeZone` in `bun:jsc` module

* [breaking] `bun:test` now defaults to `Etc/UTC` timezone

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-23 00:40:12 -07:00
dave caruso
83e7b9e198 fix extra/ArbitraryModuleNamespaceIdentifiers2 (#3016)
* fix extra/ArbitraryModuleNamespaceIdentifiers2

* remove assert
2023-05-22 20:59:25 -07:00
Jarred Sumner
879fd45ea2 Update .prettierignore 2023-05-22 20:10:00 -07:00
dave caruso
e5501551f4 add some connect test and type changes (#3013) 2023-05-22 19:48:07 -07:00
Ciro Spaciari
e57dcdfcf1 fix marking requestCert (#3012) 2023-05-22 19:44:32 -07:00
Jarred Sumner
5cfa5edd63 [node:http] Fix return type for getHeader() (#3007)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-22 19:44:21 -07:00
dave caruso
fc40c690ea Write out builtins with TypeScript + Minify them (#2999)
* start work drafting how builtins will work

* work on ts builtin

* builtins stuff so far

* builtins

* done for today

* continue work

* working on it

* bindings so far

* well, it builds. doesnt run

* IT RUNS

* still lots of ts errors but it is functional

* sloppy mode
2023-05-22 18:51:05 -07:00
Ciro Spaciari
23d42dc237 443 should default to https when no protocol is informed (#3008) 2023-05-22 17:58:32 -07:00
Jarred Sumner
e869fc092f [node:buffer] Add missing inspect function
cc @paperdave
2023-05-22 13:53:24 -07:00
Jarred Sumner
2a6a5cf6d9 [node:vm] Accept undefined in createContext 2023-05-22 13:53:24 -07:00
Ciro Spaciari
eebf44c709 fixup (#3001) 2023-05-22 13:07:51 -07:00
Jarred Sumner
05e98ed5d1 Skip test 2023-05-22 12:29:22 -07:00
Jarred Sumner
b71fa2b6d7 Skip more tests 2023-05-22 12:29:15 -07:00
Jarred Sumner
82e762fe2f [breaking] ServerWebSocket.publish no longer publishes to self by default
This changes `publishToSelf` to be `false` by default instead of `true`.

This is a breaking change because it means that `ws.publish("foo", "bar")` will exclude `ws` from the list of websockets to broadcast.

We are making this change because many people asked for this and were confused by the status quo - that `w.publish` publishes to self.
2023-05-22 12:29:10 -07:00
Jarred Sumner
a5acf7bfa0 [ServerWebSocket] binaryType now defaults to "nodebuffer"
Previously, this defaulted to "uint8array", so this shouldn't be a breaking change unless you make use of `.slice()` in which case it will now be a reference to the same ArrayBuffer rather than a clone.

The rationale for this change is most usages of Uint8Array on the server need a little more than just the bytes. Many npm packages expect Buffer rather than Uint8Array. Directly returning it for binary websocket messages is faster than creating another one.
2023-05-22 11:46:39 -07:00
Dylan Conway
3de350b24d only merge if kind is var 2023-05-22 11:33:01 -07:00
dave caruso
2e54601a2d document arch linux workaround, see #2664 (#2997) 2023-05-22 10:10:04 -07:00
Jarred Sumner
1f0dfacc0d Fix memory leak in fetch(url) (#2989)
* Fix memory leak in `fetch(url)`

* Bump those numbers up

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-22 10:09:30 -07:00
Jarred Sumner
7e17a91a1c Update WebKit 2023-05-22 10:08:33 -07:00
Jarred Sumner
3cbb1a429c Skip hanging tests 2023-05-21 23:28:02 -07:00
Jarred Sumner
8b3952baf9 Fix test 2023-05-21 21:31:38 -07:00
Jarred Sumner
24e0c269d2 [internal] Even more logging 2023-05-21 21:30:05 -07:00
Jarred Sumner
9f935c4683 [internal] Use HiveArray instead of bespoke memory allocator in Bun.serve()
No performance or memory usage change

Just removing some duplicate code
2023-05-21 21:29:17 -07:00
Jarred Sumner
3c57911b59 Fix assertion failure 2023-05-21 21:27:33 -07:00
Jarred Sumner
1a2a52b3f3 oopsie 2023-05-21 20:13:40 -07:00
Ciro Spaciari
fd21243efd WS send with callback (#2986)
* WS send with callback

* add opts.compress support

* fmt

* compress is the only option we care

* add ws client options

* only change ws client when using blob

* fmt

* fix errors

* fixup

* fixup

* fmt
2023-05-21 19:36:42 -07:00
Jarred Sumner
d90f7c7bf6 [Bun.serve] Support "nodebuffer" binaryType in ServerWebSocket 2023-05-21 19:20:40 -07:00
Jarred Sumner
91c9bd9dcc [WebSocket] Implement "nodebuffer" binaryType 2023-05-21 18:34:00 -07:00
Jarred Sumner
7d682c0fe7 [ws client] Make it a little more type safe 2023-05-21 15:23:02 -07:00
Jarred Sumner
b6007a860e [internal] Add more debug logs for uws 2023-05-21 14:30:36 -07:00
Jarred Sumner
eb3765ef93 [internal] Add a 0 byte to EOF read files as a precaution 2023-05-21 14:30:17 -07:00
Jarred Sumner
b33f20d51b [internal] Make AbortSIgnal usage slightly safer 2023-05-21 14:29:02 -07:00
Jarred Sumner
1e307e7690 Add extra flag just to be sure 2023-05-21 14:28:09 -07:00
Jarred Sumner
6e6d34eca7 [internal] Fix potential missing callbacks in AbortSignal 2023-05-21 14:00:32 -07:00
Jarred Sumner
9834cba762 Add node:vm types 2023-05-21 12:41:15 -07:00
Ciro Spaciari
3870f674f9 fix(tls.connect) fix SNI on tls sockets and also servername (mongodb) (#2934)
* fixes SNI on tls sockets and also servername

* 💅

* 💅

* add support for https and wss

* fix bun types

* support Bun.file on ca, key and cert

* 💅

* add setTimeout (makes fastify run)

* fix httpVersion

* fix WebSocketServer and add listen event

* fix ws exports and http listening

* fix default import

* bump uws

* add nodebuffer compatibility

* fix drain and allow more passing tests to run

* fix enqueud messages

* default to arraybuffer

* fix constructor binaryType

* fmt

* fixup

* skip some tests

* skip more

* skip fault tests

* reuse encoder instance

* fix handshake WS Client

* temporary revert handshake fix

* fix handshake

* disable all socket.io test temp

* fixup

* add back socket.io tests

* use node_fs to read cert, ca and key on server.zig

* throw the error returned by NodeFS

* 💅
2023-05-21 09:50:53 -07:00
Jarred Sumner
12b34c6258 Add watch mode page 2023-05-21 01:29:57 -07:00
Jarred Sumner
34af34db9f Update extending.md 2023-05-21 01:21:13 -07:00
Jarred Sumner
a29ee9f9a2 Update extending.md 2023-05-21 01:20:21 -07:00
Jarred Sumner
7ad1fc4f8f Update extending.md 2023-05-21 01:18:43 -07:00
Jarred Sumner
40ee435a4b More documentation 2023-05-21 01:17:21 -07:00
Jarred Sumner
ae8fc25b58 Update extending.md 2023-05-21 00:57:44 -07:00
Jarred Sumner
ef9555b9e1 Update extending.md 2023-05-21 00:56:13 -07:00
Jarred Sumner
3c2ac63d6e Update extending.md 2023-05-21 00:56:05 -07:00
Jarred Sumner
fdd5d49fe3 Update extending.md 2023-05-21 00:55:03 -07:00
Jarred Sumner
b27f4ceb9c Update extending.md 2023-05-21 00:53:50 -07:00
Jarred Sumner
1888c2df22 Update extending.md 2023-05-21 00:53:00 -07:00
Jarred Sumner
08043c5274 Update extending.md 2023-05-21 00:50:25 -07:00
Jarred Sumner
40de6d8cda Update extending.md 2023-05-21 00:49:55 -07:00
Jarred Sumner
d5c9e5ee79 Add --preload docs 2023-05-21 00:48:25 -07:00
Jarred Sumner
def8824bc2 Upgrade WebKit (#2980)
* [internal] Show the file path to the calling function from JS

* [internal] Make `JSC.NewFunction` more type safe

* Upgrade WebKit

* Finish

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-21 00:20:04 -07:00
Jarred Sumner
5a38c4bc0a Fixes #2976 2023-05-20 23:46:46 -07:00
Jarred Sumner
7a91d40a24 [bun:test] Add tests for --preload with beforeAll, afterAll, afterEach, beforeEach 2023-05-20 23:22:58 -07:00
Jarred Sumner
b16ddd95d9 [bun:test] preload now supports beforeAll, beforeEach, afterAll, afterEach hooks
Towards #198
2023-05-20 23:22:12 -07:00
Jarred Sumner
76e92abc7e Fix missing arg 2023-05-20 22:57:05 -07:00
Jarred Sumner
db062a7c30 [bun:jsc] Rewrite describe -> jscDescribe to not confuse them in autocomplete 2023-05-20 22:56:53 -07:00
Jarred Sumner
5959418605 Bun.inspect gets a max depth of 32 2023-05-20 22:02:09 -07:00
Jarred Sumner
ee40d9c3b4 [bun:test] Make forEachPropertyOrdered behave closer to forEachProperty
When diffing, we were missing some properties due to not calling getters and other types of properties

This led to situations where Bun.deepEquals would report false and then display no difference

This aligns the behavior closer to forEachProperty

cc @dylan-conway please let me know if this is going to break anything
2023-05-20 22:02:09 -07:00
Jarred Sumner
cd28c2cd2b [console.log] Set depth limit to 8
Towards #198
2023-05-20 22:02:09 -07:00
Jarred Sumner
50bb4749af [internal] Make JSC.NewFunction more type safe 2023-05-20 22:02:09 -07:00
Jarred Sumner
ff4df6b600 [internal] Show the file path to the calling function from JS 2023-05-20 22:02:09 -07:00
Degreat
0e97f91f9f Implement test.todo (#2961)
* Implement `test.todo`

* remove skip condition

* Allow callbacks in .todo

* Add descriptive comment

* Log todos

* Include tests in title

* edit test.todo tests

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-05-20 22:03:55 -04:00
Jarred Sumner
367f3a9c81 [bun:test] Fix bug where indexed properties would print "undefined" in diffs 2023-05-20 17:14:48 -07:00
Jarred Sumner
89e87a9050 [bun:test] Fix bug where indexed properties would print "undefined" in diffs 2023-05-20 17:12:50 -07:00
Jarred Sumner
7cf674a253 Support test timeouts in bun:test (#2969)
* [bun:test] Support timeouts in `test`

* make this test more resilient

* ✂️

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-20 17:04:51 -07:00
Jarred Sumner
e453b0e7c1 smol 2023-05-19 22:41:37 -07:00
e3dio
1973975ce0 fix #2964 (#2965) 2023-05-19 20:44:59 -07:00
Jarred Sumner
4db3d793cf console.log changes (#2966)
* [breaking] Don't quote property names of identifiers in console.log

* Make UTF-16 strings green

* always quote for jest

* update tests

* Update this

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-19 19:50:06 -07:00
Jarred Sumner
0b6a32269f ensure unused variable is not eliminated 2023-05-19 19:36:27 -07:00
Jarred Sumner
a3841a7de9 Fix failing node:vm tests 2023-05-19 19:35:05 -07:00
Ashcon Partovi
386ac374d5 Add tests for node:vm 2023-05-19 18:40:01 -07:00
Dylan Conway
9306103949 make sure key is added to args (#2968) 2023-05-19 18:22:54 -07:00
Jarred Sumner
12d841a3f5 [node:vm] Fix crash in syntax error in runinThisContext 2023-05-19 18:21:42 -07:00
Jarred Sumner
deeccb0dc4 [node:vm] Handle exceptions in runInThisContext and runInContext 2023-05-19 17:08:20 -07:00
Dylan Conway
aa34529b5b resolve rope string for multipart template (#2963)
* resolve rope for multipart template

* fix tests

* clone template part if it is `e_string` and folded

* clone string only

* don't clone data again
2023-05-19 16:04:38 -07:00
e3dio
4101eeabde update docs hot.md (#2954)
* Update hot.md

* Update hot.md
2023-05-19 15:23:24 -07:00
dave caruso
0036c3d8f5 Add tests for --compile tests (#2901)
* add compile test support

* add react ssr test

* add tests

* Fix flaky compile test

@paperdave we can't pass a non-zero port or it will be flaky

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-19 12:18:14 -07:00
Jarred Sumner
bf0f5c9b3d Make node-fetch polyfill better (#2962)
* Make `node-fetch` polyfill better

* fixup

* Test using localhost

* Add comment

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-19 12:12:54 -07:00
Jarred Sumner
9b28d2009d Add snippet for node:vm 2023-05-19 12:12:13 -07:00
Jarred Sumner
f910d791f9 [node:vm] Make vm.runInThisContext 10x faster 2023-05-19 11:18:11 -07:00
Zbyszek Tenerowicz
d6223c7f73 Fix typo (#2959) 2023-05-19 12:53:00 -04:00
Dylan Conway
c3233f1b21 set node_allocator for sourcemap joiner (#2953) 2023-05-18 19:39:31 -07:00
Jarred Sumner
a3e53b025e Make node:vm 12x faster 2023-05-18 19:27:02 -07:00
Jarred Sumner
f862ae4050 [node:vm] Propagate global properties defined on the new context object 2023-05-18 18:45:13 -07:00
Jarred Sumner
958f5f8b99 clang-format 2023-05-18 18:37:53 -07:00
Silver
ac64eb420d Implement node:vm (#2785)
* feat: begin implementing node:vm Script object

* refactor: clean up and address review comments

* refactor: rename Script to VMModuleScript

* fix: expose VMModuleScript.prototype

also oops I forgot to commit the new files last time

* feat(vm): Implement contexts and scripts

* feat(vm): implement globalThis

* feat(vm): expose node:vm module with global helper functions

* refactor(vm): rename VMModuleScript to NodeVMScript

* feat: implement script options

* doc: add TODOs for runIn*Context options
2023-05-18 16:45:18 -07:00
Jarred Sumner
b76974a2a8 Fixes #2924 2023-05-18 14:41:50 -07:00
Jarred Sumner
5bec0252a0 handle when cwd is not writable, attempt to use tmp dir explicitly
Fixes https://github.com/oven-sh/bun/issues/2944
2023-05-18 14:21:19 -07:00
Jarred Sumner
f7f0acbcd3 Bump 2023-05-18 13:41:16 -07:00
Jarred Sumner
f3a1a3bb2b Fixes #2946 (#2949)
* Fixes #2946

* Update string_mutable.zig

* Fixes #2948

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-18 13:27:05 -07:00
Jarred Sumner
755c0d62c4 Fixes #2942 (#2947)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-18 12:35:34 -07:00
Degreat
228ca3269a Implement expect().toBeCloseTo() (#2870) 2023-05-18 11:32:31 -07:00
Dylan Conway
621232c197 use raw template contents for tagged templates (#2937)
* use raw template contents when tagged

* use union for template contents

* pointer to cooked contents

* raw if suffix

* fix and don't skip test
2023-05-18 10:52:34 -07:00
Jarred Sumner
642b3978a6 Fixes #2928 (#2939)
* Fixes #2928

* another case

* Fix console.log with utf-16 string mismatched quotes

* Fix issue with json

* Even more cases

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-18 10:38:50 -07:00
Jarred Sumner
17c258eb34 Update fs.test.ts 2023-05-17 20:51:38 -07:00
Jarred Sumner
aacbef3cf9 Mention setting target to "node" or "bun" when a ResolveMessage occurs for a Node.js builtin 2023-05-17 20:29:35 -07:00
Jarred Sumner
4f7198f780 Fixes https://github.com/oven-sh/bun/issues/2931 2023-05-17 20:19:31 -07:00
Jarred Sumner
21086c3a78 Update benchmarking.md 2023-05-17 18:52:29 -07:00
Jarred Sumner
206b85e5db Support static string values in our class bindings generator 2023-05-17 18:52:23 -07:00
Jarred Sumner
25447426f1 Make BuildError and ResolveError use C++ instead of JSC C API
Fixes memory leak with private data never being cleared
Fixes a case where a ResolveError could actually be a BuildError
2023-05-17 18:51:50 -07:00
Jarred Sumner
67f543daa7 Update json-parse-stringify.mjs 2023-05-17 12:25:19 -07:00
Jarred Sumner
6c847f638f microbenchmark for json.parse / stringify 2023-05-17 12:12:42 -07:00
Jarred Sumner
8d90d79587 Bump 2023-05-17 12:06:43 -07:00
Jarred Sumner
59adc6cb78 Merge branch 'jarred/webkit-upgrade-may-17' 2023-05-17 11:36:24 -07:00
Jarred Sumner
bff465a2a2 Finish bumping 2023-05-17 11:34:37 -07:00
Bryce Kalow
fb7fb0a537 fix: bun-plugin-server-components name (#2919) 2023-05-17 11:04:40 -07:00
dave caruso
f1b16cd36a do not fail bundles on warnings (#2920) 2023-05-17 10:25:56 -07:00
Jarred Sumner
84fd6a514a Do the WebKit upgrade 2023-05-17 09:55:24 -07:00
Dylan Conway
bf1216021e resolve rope before pushing to previous string (#2909) 2023-05-16 17:19:56 -07:00
Harry Yep
2f4162e692 fix: broken link (#2897) 2023-05-16 17:08:45 -07:00
dave caruso
ad20b13985 Fix segfault on passing undefined to bun.build (#2902) 2023-05-16 17:08:00 -07:00
Dylan Conway
1ad8c54c90 fix asset naming output paths (#2904)
* rename to `src_path` and `dest_path`, use `dest_path` for output

* format

* option for compile
2023-05-16 17:07:40 -07:00
Jarred Sumner
78229da760 Bump 2023-05-16 11:44:03 -07:00
Jarred Sumner
3adadffc0e Fixes #2895 2023-05-16 11:43:09 -07:00
Colin McDonnell
366eba78f0 Tweaks to bundler docs (#2867)
* WIP

* Fix typo

* Updates

* Document --compile

* Add bundler benchmark

* Remove esbuild

* Add bench to docs

* Add buttons

* Updates
2023-05-16 10:47:00 -07:00
Jarred Sumner
60bc804c58 Bump 2023-05-16 09:31:04 -07:00
Jarred Sumner
65237b3054 Update run-cjs.test.ts 2023-05-16 08:52:14 -07:00
dave caruso
c842f5bfe3 Fix running commonjs modules as entry point (#2885)
* fix cjs run issue

* use a primordial

* fix behavior

* fix it again

* fix tste
2023-05-16 08:49:35 -07:00
Ciro Spaciari
fe74c948cd feat(WebSocketServer) WebSocketServer wrapper + socket.io initial support (#2880)
* WebSocketServer wrapper + socket.io initial support

* fix up backpressure

* fix up backpressure

* fix http address

* add socket.io tests

* add closing tests

* add connection state recovery tests for socket.io

* add handshake test

* add middeware tests for socket.io

* added socket.io socket middleware tests

* add more socket.io test comment/skip  hang tests

* add pending package for tests

* add server attachment servers for socket.io

* add utility-methods tests for socket.io

* rename

* rename

* add messaging-many socket.io tests

* add namespaces tests to socket.io

* skip some tests

* fmt

* add packages to general package.json
2023-05-16 08:48:17 -07:00
Dylan Conway
9c85483a81 handle printing missing expressions and add tests (#2872)
* handle missing expressions and add tests

* minify missing expression blocks in parser
2023-05-15 21:50:44 -07:00
dave caruso
29572737ab bundler testing (#2886)
* bundler testing

* add requireVarThenExport test

* work towards adding more esbuild tests

* tests

* remove this file
2023-05-15 21:18:52 -07:00
dave caruso
dce4a15e69 Change the debug id suffix to hex encoded "bun!bun!" (#2890) 2023-05-15 21:15:32 -07:00
Colin McDonnell
a52715597a Add plugins for yaml & RSC (#2888)
* WIP

* WIP

* Add yaml plugin

* Publish v0.0.1

* Updates

* Start RSC plugin - not finished

* Add readme

* Updates

* Add shell dirs for a few other plugins
2023-05-15 20:37:03 -07:00
Jarred Sumner
b2a750e186 remove incorrect comment 2023-05-15 10:55:35 -07:00
Jarred Sumner
dd11f02a45 [bun build] builds w/ sourcemaps get 15% faster
parallelize quoting source contents
2023-05-15 08:49:54 -07:00
Jarred Sumner
1088a22802 Add TODO 2023-05-15 06:33:20 -07:00
Jarred Sumner
9076a981e8 Set files with #! as executable 2023-05-15 06:31:21 -07:00
Jarred Sumner
8eaf30c022 [bun build] Automatically set target to bun when a hashbang is provided 2023-05-15 06:30:55 -07:00
Jarred Sumner
0a879be328 [bun build --compile] Avoid creating holes 2023-05-15 05:57:46 -07:00
Jarred Sumner
ddb6de2fe6 [bun build --compile] Add some retry logic for opening the files 2023-05-15 05:57:27 -07:00
Jarred Sumner
8a68f3aa71 Remove unused dockerfile 2023-05-15 05:19:24 -07:00
Jarred Sumner
386eec31ac More error message cleanup 2023-05-15 05:17:15 -07:00
Jarred Sumner
9c19383843 Fix crash when importing a file with an unknown extension 2023-05-15 04:35:59 -07:00
Jarred Sumner
47d2e2cb19 Make bun build --compile a little more resilient, output better errors, and clean up files 2023-05-15 04:35:21 -07:00
Jarred Sumner
4d751db27a More DCE 2023-05-15 02:36:43 -07:00
Jarred Sumner
4ec2ed4f6c Fix broken test 2023-05-15 01:56:59 -07:00
Jarred Sumner
e7e4030299 Fix bug with req.url set incorrectly (#2881)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-15 01:52:51 -07:00
Jarred Sumner
d3a72a1254 Set more things to const 2023-05-15 00:00:13 -07:00
Jarred Sumner
44417e9d1e github actions doesn't like SSH submodules 2023-05-14 23:51:24 -07:00
Jarred Sumner
9acf854f5b Workaround https://github.com/ziglang/zig/issues/15715 2023-05-14 23:38:55 -07:00
Jarred Sumner
8cce69e7c2 wip 2023-05-14 23:14:45 -07:00
Jarred Sumner
a425376c3d Fix process.argv with standalone 2023-05-14 23:09:19 -07:00
Jarred Sumner
c367408233 a little less inline 2023-05-14 21:15:35 -07:00
Jarred Sumner
328d09129a Fix scope chain bug 2023-05-14 20:56:06 -07:00
Ciro Spaciari
e096a03e3e fix(spawn) add Uint8Array support for stdout (#2866)
* add array_buffer support for stdout

* fix comment

* fix param name on baby_list

* keep test names consistent

* add more test cases
2023-05-14 10:22:02 -07:00
Ciro Spaciari
bf9e40d5b4 feat(Timer.refresh) add refresh support on Timer (#2874)
* add refresh support on Timer

* fix this return

* add refresh setTimeout tests

* fix tests and add setInterval test

* use setCached for arguments and callback

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-05-14 10:18:56 -07:00
Jarred Sumner
2a66229b0f fixup 2023-05-14 06:31:17 -07:00
Jarred Sumner
688637d835 fix flags 2023-05-14 06:30:47 -07:00
Jarred Sumner
893f70fee4 Single-file standalone Bun executables (#2879)
* Add LIEF

* Compile LIEF

* Implement support for embedding files on macOS

* proof of concept

* Add zstd

* Implement runtime support

* Move some code around

* Update .gitmodules

* Upgrade zig

https://github.com/ziglang/zig/pull/15278

* leftover

* leftover

* delete dead code

* Fix extname

* Revert "Upgrade zig"

This reverts commit dd968f30bf.

* Revert "leftover"

This reverts commit 7664de7686.

* Revert "leftover"

This reverts commit 498005be06.

* various fixes

* it works!

* leftover

* Make `zig build` a little faster

* give up on code signing support

* Support Linux & macOS

* Finish removing LIEF

* few more

* Add zstd to list of deps

* make it pretty

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-14 06:13:39 -07:00
dave caruso
7f25aa9e08 windows path compatibility (#2869)
* winndows path compatibility

* change * to "star" and fix import

---------

Co-authored-by: cirospaciari <ciro.spaciari@gmail.com>
2023-05-12 17:39:28 -03:00
Ciro Spaciari
f48f48795b proper stub for sockets (#2868) 2023-05-12 09:27:17 -07:00
Jarred Sumner
8f3b648602 finish #2864 2023-05-12 08:53:23 -07:00
Dylan Conway
5f897589fc disable sloppy mode block level functions when not bundling (#2864)
* enable only during bundling

* add `willUseNumberRenamer()`
2023-05-12 08:32:24 -07:00
Dylan Conway
4d5d0d075a root bundle option (#2859)
* handle multiple output files and `[dir]`

* get the realpath of `root_dir`

* duplicate output paths

* add `rootdir` to `JSBundler`

* use realpath of input file

* add tests for naming and root

---------

Co-authored-by: Dave Caruso <me@paperdave.net>
2023-05-12 07:33:07 -07:00
Jarred Sumner
c815716899 [bundler] Don't wait on sourcmaps that don't exist 2023-05-12 07:28:56 -07:00
Jarred Sumner
6f0f506e95 [bundler] De-optimize import defaultIdentifier from './foo.cjs' 2023-05-12 07:28:40 -07:00
Jarred Sumner
da10cd6010 [bundler] Empty ESM gets undefined, empty CJS gets {} 2023-05-12 07:27:53 -07:00
Jarred Sumner
a46d3162ae Fix importstar_ts/ReExportTypeOnlyFileES6 2023-05-12 07:27:25 -07:00
Jarred Sumner
02a8f99629 sort more 2023-05-12 07:27:15 -07:00
Jarred Sumner
20f1057a7d Fix a couple tests 2023-05-12 07:27:09 -07:00
Jarred Sumner
f6bbfb16fd Add a couple tests 2023-05-12 07:27:03 -07:00
Jarred Sumner
b5c70814e5 handle errors + sort things 2023-05-12 07:21:57 -07:00
Jarred Sumner
8340b98352 [bundler] Disable export star redirect code size optimization 2023-05-12 07:14:48 -07:00
Jarred Sumner
d2e09ce519 [bundler] Fix export * from ./my-cjs-file.cjs' 2023-05-12 04:11:21 -07:00
Jarred Sumner
1e450dbcab [bundler] Implement export * from code size optimization 2023-05-12 04:11:21 -07:00
Jarred Sumner
231da81528 [bundler] Fix --transpile --outfile 2023-05-12 04:11:21 -07:00
Ciro Spaciari
6070e135e9 fix proxy status return (#2860) 2023-05-12 08:06:17 -03:00
Ciro Spaciari
f8c840aec7 fix large stdout output (#2850)
* fix large stdout output

* remove skip from #2674 for testing

* add big stdout test using spawnSync

* add bunEnv on big stdout test
2023-05-12 08:05:46 -03:00
Jarred Sumner
273ccbc241 [bundler] Fix bug with export default TypeScriptType 2023-05-12 02:02:35 -07:00
Jarred Sumner
3f01e2a519 alphabetize 2023-05-12 01:49:17 -07:00
Jarred Sumner
b0908b7b13 Fix test 2023-05-12 01:49:07 -07:00
Jarred Sumner
5b3e18e028 Fix regression 2023-05-12 01:49:00 -07:00
Jarred Sumner
155110a03a Fix our tree shaking optimization 2023-05-11 23:19:21 -07:00
Jarred Sumner
3bb5c45385 Fix require() on a converted file 2023-05-11 23:18:36 -07:00
Jarred Sumner
e785b0872a Fix tree shaking flag 2023-05-11 23:17:06 -07:00
Jarred Sumner
99cce67d61 enable tree shaking 2023-05-11 21:40:47 -07:00
dave caruso
4381204cdb oops (#2863)
* oops

* oops part 2
2023-05-11 21:25:03 -07:00
Jarred Sumner
0cee7c028a woops 2023-05-11 20:05:46 -07:00
Jarred Sumner
bfcc0b8960 handle module.exports.foo = class {} in the entry point in the runtime
Related to https://github.com/oven-sh/bun/issues/2862, but does not fix it
2023-05-11 20:01:10 -07:00
dave caruso
dfd0f3e252 Allow reading config from within plugins, and partially implement esbuild initialOptions (#2861)
* Implement plugin build.config and initialOptions

* update types

* default initialoptions entrypoints
2023-05-11 22:58:41 -04:00
Jarred Sumner
136b50c746 formatting 2023-05-11 19:31:55 -07:00
Jarred Sumner
5bb42c81e4 give up on this optimization so we can ship 2023-05-11 19:31:39 -07:00
Jarred Sumner
a008e49a40 forgot to commit this 2023-05-11 15:14:43 -07:00
Jarred Sumner
56b8458c62 call stop before emit 2023-05-11 15:10:40 -07:00
Jarred Sumner
7141e19a10 fixup 2023-05-11 15:10:06 -07:00
Jarred Sumner
5c08200b18 [node:http] handle errors generated by fetch 2023-05-11 15:09:30 -07:00
Jarred Sumner
d67bdb7e9b [node:http] Fix close() to accept a callback and implement closeAllConnections 2023-05-11 15:09:14 -07:00
Jarred Sumner
77eb61a1fe Fix OutputKind, add "use client" and "use server" 2023-05-11 15:08:18 -07:00
dave caruso
6a163cf933 bundler tests and improve Bun.build return type (#2833)
* importstar_ts

* tests

* run acorn test suite

* bench tweaks

* test

* bun.build tests very incomplete

* remove dataurl and base64 loaders from tests since they dont work yet

* tests

* stuff

* stuff

* add errors and array of blobs

* work so far

* docs

* requested changes

* fix overwrite docs

* remove this file
2023-05-11 14:42:54 -07:00
Dylan Conway
02cad591f8 fix child process tests (#2584)
* always handle exit on next tick

* emit spawn immediately
2023-05-11 14:39:44 -07:00
Ciro Spaciari
3530cfac68 fix redirect: \'manual\' and setTimeout on node:http request (#2848) 2023-05-11 14:25:21 -07:00
Ciro Spaciari
bc7d0adcf9 fix(fs) mkdtemp and mkdtempSync errors (#2851)
* fix mkdtemp

* fmt

* fix errno
2023-05-11 14:23:33 -07:00
Ciro Spaciari
d032b73b10 add tests for ws.close (#2844)
* add tests for ws.close

* add timeout on ws.close tests
2023-05-11 02:30:48 -07:00
Ciro Spaciari
9c166a1bdf add support for { all: true } option on dns.lookup (#2846) 2023-05-11 02:30:20 -07:00
Jarred Sumner
e125ed2aa3 Report timings for failing tests too 2023-05-11 01:16:46 -07:00
Jarred Sumner
5ffee9477c [bun test] Add timings to successful tests 2023-05-11 00:55:41 -07:00
Degreat
4b79b37a99 Implement describe.skip (#2836)
* Implement describe.skip

* Add more tests to cover hooks
2023-05-10 23:57:30 -07:00
Ciro Spaciari
f9831e1f6f feat(fetch) add redirect: 'error' support (#2845)
* add redirect: 'error' support

* fix typo

* fix typo

* refactor FetchRedirect enum

* fix FetchRedirect

* updated
2023-05-10 23:55:39 -07:00
Dylan Conway
8f4a5903ab make sure vars can be hoisted in catch scope (#2847) 2023-05-10 23:55:27 -07:00
Jarred Sumner
0e5f0940ee serialize 2023-05-10 23:30:30 -07:00
Jarred Sumner
9d3a95ed96 Add version 2023-05-10 23:03:37 -07:00
Jarred Sumner
2abfa84db7 Implement the benchmark snippet runner minus the sqlite serialization step 2023-05-10 22:50:56 -07:00
Dylan Conway
53fe8d61e7 object empty ast 2023-05-10 21:53:38 -07:00
Jarred Sumner
e1c6adc737 Prepare to run these automatically 2023-05-10 21:37:08 -07:00
Jarred Sumner
5e0eedccb0 Fix test failure in scope order verification 2023-05-10 20:07:12 -07:00
Jarred Sumner
06a03df9a6 Fix assertion 2023-05-10 17:59:55 -07:00
Jarred Sumner
ed5dd3fee1 Fix incorrect assertion 2023-05-10 17:50:02 -07:00
Jarred Sumner
96dc0471ff Clean-up 85b4be5f71
- We don't need to make `Bun__fetch` exported in every C++ header file
- We shouldn't return JSObjectRef, its an unnecessary wrapper
- The version of `fetch` on the Bun global should be non-configurable so that it is safe for anyone who wants to use that without a user-modifiable one
2023-05-10 16:55:13 -07:00
Ciro Spaciari
85b4be5f71 fix(fetch) fix fetch inheritance (#2842)
* patch fetch function inheritance

* fmt

* fix reserveCapacity and number of arguments for fetch

* change Bun.fetch to use Fetch.jsFunction

* merge Fetch.jsFunction and Fetch.call

* remove commented code
2023-05-10 16:38:52 -07:00
Ciro Spaciari
643aa27a03 fix closing WS with code and reason (#2843) 2023-05-10 14:37:29 -07:00
Dylan Conway
e7d4f5fb16 use member from parent scope when hoisting (#2840) 2023-05-10 13:12:16 -07:00
Alex Lam S.L
5fd838b9e4 bun add from root folder when call within workspaces (#2841)
- ignore invalid `package.json` from parent directories
- `echo` new lines from `make` targets correctly
2023-05-10 17:22:01 +03:00
Jarred Sumner
5b2c3fe440 clarify the types more 2023-05-10 05:08:22 -07:00
Jarred Sumner
53a198f2f7 Update test 2023-05-10 04:22:03 -07:00
Jarred Sumner
982dc0b441 Implement BuildArtifact 2023-05-10 04:21:53 -07:00
Dylan Conway
1f8c60123d fix catch scope var declarations (#2839)
* use `catch_binding` kind and report errors

* make hash optional
2023-05-09 23:52:40 -07:00
Alex Lam S.L
4ccca13001 [install] operator on root package of workspaces (#2834)
- parse `bunfig.toml` from same directory as `package.json`
- handle `--cwd` correctly

fixes #2592
2023-05-10 08:26:29 +03:00
Jarred Sumner
1e8b9258b2 Expose bindings for Map 2023-05-09 21:47:18 -07:00
Jarred Sumner
c7c5dc1438 Add name property 2023-05-09 21:44:05 -07:00
Jarred Sumner
a5b3056c76 Fix extra semicolon 2023-05-09 21:41:05 -07:00
Jarred Sumner
e8989f9a60 Fix make headers (May 9th 2023 edition) 2023-05-09 21:05:33 -07:00
Jarred Sumner
4346f6afc0 RSC 2023-05-09 20:38:26 -07:00
Dylan Conway
38e72a528d code splitting option 2023-05-09 20:38:02 -07:00
Dylan Conway
eb2510170f resolve rope string before returning (#2838) 2023-05-09 20:33:26 -07:00
Dylan Conway
1d72bbe96c space before label (#2837) 2023-05-09 20:27:20 -07:00
Dylan Conway
a47e2c6021 add WebAssemblyInstance and WebAssemblyGCObject js types (#2835)
* add `WebAssemblyInstance` and `WebAssemblyGCObject`

* update c api
2023-05-09 18:37:50 -07:00
Jarred Sumner
5a18d24a96 Re-run builtins generator 2023-05-09 16:17:42 -07:00
Jarred Sumner
d1dd7a7ebb Add a comment 2023-05-09 15:40:51 -07:00
Jarred Sumner
65eb6db7fa Fix a memory leak in module resolution 2023-05-09 15:29:32 -07:00
Jarred Sumner
ce3c7d2961 bun build --transform should not run the module resolver 2023-05-09 15:27:04 -07:00
Jarred Sumner
ff1edca9ee Fix regression with bun test not recursively scanning the directory tree 2023-05-09 14:56:39 -07:00
Jarred Sumner
ffd48dc7a7 fix tracy i think 2023-05-09 14:32:26 -07:00
Dylan Conway
b3dc14ef0f don't replace with there isn't a star (#2825) 2023-05-09 14:20:46 -07:00
dave caruso
22b801bb89 fix #2820 (#2832) 2023-05-09 14:20:12 -07:00
Dylan Conway
c35518e6d6 Fixes #2807
we will look at the minify tests for uglifyjs too
2023-05-08 23:39:02 -07:00
Dylan Conway
232a25b77f add the class name to the current scope 2023-05-08 23:34:36 -07:00
Dylan Conway
e74207650b Fix bug with float minification 2023-05-08 23:07:14 -07:00
Dylan Conway
aa85d7af92 Fix incorrect fd usage 2023-05-08 22:54:25 -07:00
Jarred Sumner
0b52f9210a Add a couple helpers 2023-05-08 22:36:52 -07:00
Jarred Sumner
69ea6fd54f Fix memory issues with loader and define in JSBundler 2023-05-08 22:35:13 -07:00
Jarred Sumner
73b0d8a51c Make the enum serializer more flexible 2023-05-08 22:34:01 -07:00
Jarred Sumner
b874d0b387 ✂️ dead code 2023-05-08 22:32:04 -07:00
dave caruso
5e366872f6 implement build api define and loaders (#2805)
* parse error logs

* clean up types

* remove --jsx-production. use NODE_ENV instead

* add define to js api

* add loaders to js api

* fixups

* sourcemap

* typo fix

* remove label, comment dir just for now

* test tweaks

* test work

* make optional enums actually optional.
allows `sourcemap: undefined`

* overload host ram test

* string tests

* tests

* test for 2815

* requested changes

* sort this list

* remove this test file now that it passes

* oops

* add --format

* finish ts tests

* doc typos related to define and loader
2023-05-08 21:55:21 -07:00
Jarred Sumner
1a411e201b Add some comments 2023-05-08 21:32:17 -07:00
Jarred Sumner
4a2d89d865 ✂️ some dead code 2023-05-08 21:29:19 -07:00
Jarred Sumner
e422c849d5 Fix bug in Bun.build() where it wouldn't pick up changes to directories on rebuilds (#2824)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-08 21:14:56 -07:00
Ciro Spaciari
c6c21eeba7 added some improvements on server (#2803)
* added some improvements on server

* undo unintended change

* clean data handler before end calls

* refactor

* make ctx.resp nullable

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-05-08 14:10:40 -07:00
Jarred Sumner
14597dbcdc Don't leak file handles 2023-05-08 02:43:17 -07:00
Jarred Sumner
f9d6a61676 [fs] Add an extra byte to files we read 2023-05-08 01:45:10 -07:00
Jarred Sumner
3f895085a0 [fs] More logging 2023-05-08 01:44:50 -07:00
Jarred Sumner
81e4203efe [bundler] Make module resolution single-threaded 2023-05-08 01:44:08 -07:00
Jarred Sumner
db44f41dd0 Possibly fix the linux perf issue 2023-05-07 23:53:45 -07:00
Jarred Sumner
56bd410044 Reduce over-allocation 2023-05-07 23:52:05 -07:00
Jarred Sumner
35685bbc86 Reduce the size of the JS AST to attempt to resolve the linux performance issue 2023-05-07 22:33:59 -07:00
Jarred Sumner
af1cd23b8c Add tracy (#2817)
* Add tracy

* RTLD

* Linux needs LD_PRELOAD

* More tracing

* Inline this

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-05-07 21:08:32 -07:00
Jarred Sumner
d3ae9ac7ce experiment to try to fix linux bundler perf regression 2023-05-07 01:51:05 -07:00
Jarred Sumner
1fbfaa5ca1 Use dwarf v4 2023-05-07 01:50:20 -07:00
Jarred Sumner
243847f992 Add alignment feature flag 2023-05-07 01:04:38 -07:00
Jarred Sumner
25eecc3e07 Add latin1 identifier fast path 2023-05-06 23:36:37 -07:00
Jarred Sumner
0e1b934e27 Fix overflow 2023-05-06 19:52:46 -07:00
Jarred Sumner
2aa4fba99d 💅 2023-05-06 19:09:14 -07:00
Jarred Sumner
cf4d13dcc0 Fixes #2811 2023-05-06 19:06:52 -07:00
Jarred Sumner
4708835ae6 [minifier] Rewrite equality check logic 2023-05-06 18:23:37 -07:00
Jarred Sumner
8975717bc3 Fix several transpiler tests 2023-05-06 18:20:19 -07:00
Jarred Sumner
5327940132 Fixes https://github.com/oven-sh/bun/issues/2810 2023-05-06 18:16:21 -07:00
Jarred Sumner
54d5f59f09 Cleanup some of the log-related code 2023-05-06 16:32:29 -07:00
Jarred Sumner
46a0a4d984 [Bun.build] Add error when an onResolve plugin returns a namespace which has no loader 2023-05-06 16:32:06 -07:00
Jarred Sumner
70e850bf76 fix crash when there are lots of build errors 2023-05-06 16:31:46 -07:00
Jarred Sumner
d4b35d9ae6 Fix make headers 2023-05-06 13:19:41 -07:00
Jarred Sumner
f523b2187a Fix make headers 2023-05-06 13:19:23 -07:00
Jarred Sumner
41a59d0d03 Fix a memory leak 2023-05-06 13:19:11 -07:00
Jarred Sumner
9c9425bc8c Another .isFile() 2023-05-06 13:18:38 -07:00
Jarred Sumner
01ce690a01 Clone the logs more 2023-05-06 13:18:13 -07:00
Jarred Sumner
1da75791da Use isFile() helper 2023-05-06 12:52:55 -07:00
Jarred Sumner
3bc02e48ca Comment out buchta from docs
The repo is archived, so it should not appear in our docs
2023-05-06 12:41:03 -07:00
Jarred Sumner
9d7ecf7909 [misctools] Add cold jsc start test 2023-05-05 20:01:26 -07:00
Jarred Sumner
31cb49a026 [ci] Fix broken test runner
cc @Electroid we need `@actions/core` to be installed in node_modules
2023-05-05 18:34:43 -07:00
Jarred Sumner
f95a81e05d [napi] Fix crash in napi_create_external_buffer
This impacted LightningCSS when garbage collection ran. cc @devongovett
2023-05-05 17:16:47 -07:00
Jarred Sumner
c3d512f27e Fix valgrind tracking flag 2023-05-05 15:48:27 -07:00
Jarred Sumner
9a09f9f532 Fix bug where the Bun.file() returned by Bun.build() would have an incorrect path 2023-05-05 15:48:26 -07:00
Jarred Sumner
3a01316707 Cleanup how some of the server components stuff works 2023-05-05 15:48:26 -07:00
Kruithne
e00017f7b8 Add missing JSON API to Web APIs page (#2799)
* Add missing JSON API to Web APIs page

Unless I'm missing something obvious, it appears that Bun has the JSON API (`stringify`/`parse`) but is not listed anywhere in the documentation.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON

* Include JSON in global docs
2023-05-05 12:54:54 -07:00
Colin McDonnell
386639a4c5 Start esbuild migration guide. More docs. (#2787)
* Bundler docs updates. Start esbuild migration guide.

* Updates

* Add JS API comp

* Tweaks

* Updates

* Updates

* Updates
2023-05-05 12:53:38 -07:00
Dylan Conway
d9386a68a4 fix source map line offsets (#2791)
* find codepoint at `i`

* fix allocator usage

* missing comment

* switch to `Cursor` iterator
2023-05-04 22:44:02 -07:00
Jarred Sumner
945d069290 Add UNLIKELY 2023-05-04 17:09:59 -07:00
Jarred Sumner
7cb1404511 Revert "Add setNoDelay"
This reverts commit 8b6dd0c7e1.
2023-05-04 17:09:24 -07:00
Jarred Sumner
8e4f777d35 Throw error on non-file url 2023-05-04 17:09:10 -07:00
Jarred Sumner
8b6dd0c7e1 Add setNoDelay 2023-05-04 17:09:10 -07:00
Ashcon Partovi
c43c1b50ff Add no-op for ClientRequest.{setNoDelay,setTimeout} 2023-05-04 16:09:45 -07:00
Ashcon Partovi
1574ac7896 Only checkout test folder for ecosystem tests 2023-05-04 15:55:12 -07:00
Ashcon Partovi
a66137bdce Actually fix the git clone URL 2023-05-04 15:36:56 -07:00
Ashcon Partovi
b2abf82494 Use HTTPS instead of SSH for git clone in ecosystem tests 2023-05-04 15:35:58 -07:00
Ashcon Partovi
d68786909c Fix working directory of GitHub action 2023-05-04 15:33:33 -07:00
Ashcon Partovi
1183dd1a3f Add initial ecosystem tests (#2801)
* Add initial ecosystem tests

* Run ecosystem tests every morning, after canary release
2023-05-04 15:27:12 -07:00
Dylan Conway
8e18229d5d parse and visit catch body scope (#2796) 2023-05-04 08:21:33 -07:00
Jarred Sumner
243dfc177a Fix code splitting for server components 2023-05-03 23:48:18 -07:00
Jarred Sumner
f114e88bee Clean up edgecase causing plugins to be called too many times 2023-05-03 15:35:11 -07:00
Jarred Sumner
2d0eaf9842 Fix broken test 2023-05-03 15:32:15 -07:00
Jarred Sumner
101f0ee6ba re-enable our CJS optimization 2023-05-03 10:35:55 -07:00
Jarred Sumner
9b5caf7467 Implement synthetic default export 2023-05-03 00:55:06 -07:00
Jarred Sumner
b2a50671ab add deoptimization 2023-05-02 23:03:39 -07:00
Dylan Conway
ca776326cf entry_point_kinds only at source_index 2023-05-02 22:16:46 -07:00
Jarred Sumner
1346293619 Add missing function 2023-05-02 22:12:56 -07:00
Jarred Sumner
bc4a8bf595 Small refactor 2023-05-02 22:02:19 -07:00
Jarred Sumner
2bc449656e Visit the runtime 2023-05-02 22:02:19 -07:00
Jarred Sumner
6a74651eb4 Add helper fn 2023-05-02 22:02:19 -07:00
Dylan Conway
755874a9ea Fix checking for dynamic exports (#2792)
* only look at import records for the current source index

* skip `source_index` when it is invalid

* iterate `export_star_records` at `source_index`

* comment
2023-05-02 21:57:57 -07:00
Jarred Sumner
082bc62589 alignment 2023-05-02 19:57:44 -07:00
Jarred Sumner
2250f7a0c0 Add __ulock_wait2 polyfill
cc @kzc
2023-05-02 18:33:03 -07:00
Jarred Sumner
fe52627dea fix spacing 2023-05-02 11:58:24 -07:00
Jarred Sumner
6bdc158e9c Use pretty 2023-05-02 11:58:14 -07:00
Jarred Sumner
7a699c1ac2 Fix a couple spltiting bugs 2023-05-01 22:23:07 -07:00
Jarred Sumner
c5df4e9477 Compress let f; f=123 => let f = 123; 2023-05-01 21:00:51 -07:00
Jarred Sumner
b3c7d0ea23 Small improvement to minifier 2023-05-01 21:00:31 -07:00
Jarred Sumner
1af4e1dce1 Fixes #2783 2023-05-01 16:55:50 -07:00
Jarred Sumner
5d8027cd5a Fix test 2023-05-01 16:55:11 -07:00
Jarred Sumner
69b767fadc Update bundle_v2.zig 2023-05-01 15:24:10 -07:00
Jarred Sumner
44fbd7719e Fix some splitting bugs 2023-05-01 15:04:46 -07:00
Jarred Sumner
0b2422b1f3 Fix another crash 2023-05-01 13:01:30 -07:00
Jarred Sumner
331a3cec8c Fix crash 2023-05-01 12:24:28 -07:00
Revenity
c2a223802b Add StricJS to ecosystem (#2747)
* Create stric.md

* Update nav.ts

* Update stric.md

Add codetabs for ArrowJS

* Update stric.md

* Update stric.md
2023-05-01 10:37:39 -07:00
Ashcon Partovi
c19c522744 Fix error links in markdown summary 2023-05-01 09:01:41 -07:00
Ashcon Partovi
1fc8639177 Condense errors in test runner script 2023-05-01 08:48:40 -07:00
Jarred Sumner
fe57932dfb Add missing type for sqlite (#2764)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-30 23:36:32 -07:00
Will Richards 2
59b3556fab Bun Test matchers even/odd. Also, .toContains fix and truthy (#2754)
* bun test matcher tests for even/odd, few more truthy tests, and fix for contains empty string

* implementation of even/odd matchers

* didn't add the codegen bindings

* linted
2023-04-30 23:36:08 -07:00
Jarred Sumner
8b53b3ed88 FIx esm -> cjs require interop with converted CJS
TODO: make `default` namespace object for these not load the entire wrapper
2023-04-30 23:17:25 -07:00
Jarred Sumner
c0a1c76edb Fix garbled line text in some errors 2023-04-30 23:16:23 -07:00
Jarred Sumner
f26fef1010 Update options.zig 2023-04-30 22:41:07 -07:00
Jarred Sumner
f8b0730231 Fix missing imports in DCE tests 2023-04-30 22:34:23 -07:00
Jarred Sumner
fe14b7244d Fix missing "default" export condition 2023-04-30 22:34:13 -07:00
Dylan Conway
0490bd3d2e Implement source maps (#2770)
* wip

* Begin computing source map tables

* source map progress

* external source maps

* fix merge

* remove `@as` coercion

* inline source maps and output source map shifts

* fix `codeWithSourceMapShifts()` after merge

* remove second call to `findReachableFiles()`

* use `worker.allocator`, remove comment

* don't reuse memory for source and sourceContents

* don't reuse `quote_buf`

* fix writing to stdout

* Add comment

* Don't include a sourcemap if the text was empty

* Make the parser faster

* +16% faster sourcemap generation

@dylan-conway I'll need you to look this over to make sure I didn't mess anything up

Though it currently doesn't generate the offsets in the right order...

* 30% performance improvement to Bun.build()

* Print `debugId` in source maps

cc @mitsuhiko @notzeeg

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-30 22:09:40 -07:00
dave caruso
137dc6e19f test default condition (#2776) 2023-04-30 21:16:32 -07:00
Alex Lam S.L
c05a6744bb [install] handle devDependencies of local folders (#2781)
fixes #2653
2023-05-01 06:41:33 +03:00
Jarred Sumner
f54fbaf3ba prevent crash 2023-04-30 09:50:37 -07:00
Alex Lam S.L
dd03a4f95d [install] handle repeated install of GitHub dependency correctly (#2780)
fixes #2602
2023-04-30 09:45:08 -07:00
Jarred Sumner
4be3548829 add to symbols.txt 2023-04-30 00:55:09 -07:00
Jarred Sumner
c3dc64d468 Fix a load order issue 2023-04-29 21:37:04 -07:00
Jarred Sumner
bd1f9d8370 Fix some runtime issues caused by bundler 2023-04-29 21:14:21 -07:00
Jarred Sumner
0cb090f118 Fix garbled text in errors 2023-04-29 19:42:47 -07:00
Jarred Sumner
5fb014876b Fix plugin namespaces always being set to "flie" 2023-04-29 19:42:38 -07:00
Jarred Sumner
e7ff65ce2c [Transpiler] Fix crash in scanImports when the text is empty 2023-04-29 18:59:22 -07:00
Jarred Sumner
e321e1c5f8 Fix debug mode crash with trailing slash in import specifier 2023-04-29 18:58:43 -07:00
Jarred Sumner
737822b2ba Put transpiler tests in a separate folder 2023-04-29 18:47:52 -07:00
Jarred Sumner
9a929ff873 Update bun.zig 2023-04-29 18:16:57 -07:00
Jarred Sumner
3b6fb37497 Clean up args parsing with --loader 2023-04-29 18:12:55 -07:00
Jarred Sumner
229f5f7770 Export 4 missing napi symbols on macOS 2023-04-29 16:04:08 -07:00
dave caruso
96e113f41c bundler tests: rest of default.test.ts and starting jsx tests (#2765) 2023-04-28 21:08:48 -07:00
Jarred Sumner
bc0c0f7d20 fix several memory issues related to plugins 2023-04-28 18:59:12 -07:00
Jarred Sumner
98583972df cargo cult some code from JSC 2023-04-28 18:57:00 -07:00
Jarred Sumner
994c715700 Fix race condition 2023-04-28 17:46:43 -07:00
Jarred Sumner
e3a0c4e06d Update bun-test.yml 2023-04-28 17:12:01 -07:00
Jarred Sumner
bc43d33be9 move this 2023-04-28 17:10:24 -07:00
Jarred Sumner
73d499ed22 Add a comment 2023-04-28 17:02:12 -07:00
Ashcon Partovi
912ae8d2b5 Improve test runner markdown 2023-04-28 14:58:16 -07:00
Jarred Sumner
26d81fc5ba [resolver] Propagate module type from package.json "exports" when possible 2023-04-28 14:21:18 -07:00
Jarred Sumner
396416a91f Fix crash with invalid input in fetch() 2023-04-28 13:54:22 -07:00
Ciro Spaciari
4515a6373e Improves Body.Value life cycle and Signal life cycle on server.zig (#2752)
* reestruct request body value and signal

* revert react-hello-world

* fix constructInto and test

* fmt

* fix body nullable

* Request can outlive RequestContext

* fmt

* BodyValue is now HiveRef

* hasDecl for Ref and HiveRef

* fix deinit call on Ref/HiveRef

* adds InlineBlob

* fix Bun.inspect when using InlineBlob

* revert InlineBlob

* Fix mimalloc-debug

* Add TODO note

* fix: make node:crypto Hash.copy work correctly (#2761)

This commit will also:
- add a CryptoHasher.copy function
- make CryptoHasher.digest reset the hasher so it can be reused

Resolves #2651

* 💅

* address unicode issue (#2763)

* Fix an oopsie

* Another oopsie

* use inline for

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

* Request can outlive RequestContext

* fmt

* garantee to have the abort signnal attached to the server before abort the client on bun-server test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Silver <14016168+silversquirl@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-04-28 13:40:44 -07:00
Jarred Sumner
c383638ddd Use global allocator tsconfig.json 2023-04-28 10:35:50 -07:00
Ashcon Partovi
af02b75f79 Use setup-bun instead 2023-04-28 10:13:36 -07:00
Ashcon Partovi
a06e90eec3 Fix path of bun in workflow, try 3 2023-04-28 09:58:56 -07:00
Ashcon Partovi
35d470d98a Fix path of bun in workflow, try 2 2023-04-28 09:54:31 -07:00
Ashcon Partovi
05abe8eabe Fix path of bun in workflow 2023-04-28 09:52:15 -07:00
Ashcon Partovi
48671b77be Use GITHUB_PATH instead of cp 2023-04-28 09:44:44 -07:00
Ashcon Partovi
b7c13f2ccc Maybe fix test runner on macOS 2023-04-28 09:41:36 -07:00
Ashcon Partovi
64b9967fe6 Improve test workflow 2023-04-28 09:35:44 -07:00
Ashcon Partovi
ef894c57cf Fix typo in runner 2023-04-28 09:17:06 -07:00
Ashcon Partovi
5734889cc7 Use bun x instead of bunx 2023-04-28 09:13:14 -07:00
Ashcon Partovi
59daabb6e7 Fix manual test workflow 2023-04-28 09:11:55 -07:00
Ashcon Partovi
36df170348 Use Node.js APIs for test runner 2023-04-28 09:07:48 -07:00
Ashcon Partovi
6cf4cabab1 New test runner with better Github integration 2023-04-28 08:42:25 -07:00
Colin McDonnell
1483d73c3a Bundler docs updates + support for naming string (#2767)
* Bundler docs updates

* Remove comments

* Updates

* Fix bunx usages

* Add info about metafile
2023-04-28 08:35:20 -07:00
Jarred Sumner
52c50e3737 address unicode issue (#2763)
* Fix an oopsie

* Another oopsie

* use inline for

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-27 08:37:37 -07:00
Jarred Sumner
3ee22065f0 💅 2023-04-27 07:51:30 -07:00
Silver
0060e49923 fix: make node:crypto Hash.copy work correctly (#2761)
This commit will also:
- add a CryptoHasher.copy function
- make CryptoHasher.digest reset the hasher so it can be reused

Resolves #2651
2023-04-27 07:45:32 -07:00
Jarred Sumner
87921520e4 Add TODO note 2023-04-27 05:35:11 -07:00
Jarred Sumner
73467a5736 Fix mimalloc-debug 2023-04-27 05:35:11 -07:00
B. Burt
5a8a418ef4 Remove extra word in docs/index.md (#2758) 2023-04-27 04:00:35 -07:00
Jarred Sumner
df59fe2843 Implement outdir in Bun.build 2023-04-27 03:45:49 -07:00
Jarred Sumner
990f53f986 Don't preallocate unless its profitable 2023-04-27 03:45:09 -07:00
Jarred Sumner
9383333799 Add microbenchmark 2023-04-27 03:44:23 -07:00
Jarred Sumner
4558ea712a very slightly faster open() and writeFileSync() (#2759)
* Make open() slightly faster on macOS

* Support using `writeFileSync` from native code

* Add `openat$NOCANCEL` symbol

* fixups for linux

* do benchmark

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-27 03:35:46 -07:00
Jarred Sumner
f1c1f556a3 more esbuild compat 2023-04-26 22:36:56 -07:00
Jarred Sumner
6142f6eb61 Wrap some things in minify_syntax flag 2023-04-26 22:32:48 -07:00
Jarred Sumner
316a75005b Inline spreads of array literals 2023-04-26 22:32:31 -07:00
dave caruso
5b76ee769e bundler tests! (#2741)
* bundler tests!

* tests
2023-04-26 21:57:49 -07:00
Silver
3a203abc10 Use Ninja to build mimalloc and gitignore test/bun.lockb (#2750)
* build: use ninja to build mimalloc

This is both faster than make, and ensures the same generator is
always used, even when CMAKE_GENERATOR exists in the environment.

* chore: gitignore test/bun.lockb
2023-04-26 21:57:25 -07:00
Dylan Conway
75e3546f3a ensure super() is not merged with adjacent statements (#2757)
* ensure `super()` is not merged with adjacent statements

* add TODO
2023-04-26 21:46:35 -07:00
Jarred Sumner
6c6118e210 Fixes #2746 (#2748)
* Fixes #2746

* add test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-26 21:07:40 -07:00
dave caruso
55c05c0a1f fix (#2756) 2023-04-26 20:45:27 -07:00
dave caruso
7d7748f69f docs hotfix (#2755) 2023-04-26 20:27:24 -07:00
Colin McDonnell
8ba13f273c Add bundler documentation (#2753)
* WIP

* WIP

* WIP

* Document API

* Updates

* Polish bundler docs

* Tweaks

* Tweak
2023-04-26 20:07:30 -07:00
Colin McDonnell
68ab71eb13 Basic types for Bun.build (#2713)
* Basic types for Bun.build

* Tweaks

* Updates
2023-04-26 14:54:05 -07:00
Jarred Sumner
ab447e4ff7 Implement file loader in Bun.build (#2745)
* Update bundle_v2.zig

* Implement `file` loader

* Hash in parallel

* Implement `publicPath`

* simplify

* Update bundle_v2.zig

* Implement `#!`

* Remove unnecessary optional

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-26 07:22:29 -07:00
Jarred Sumner
149f097ffd Update outdated help 2023-04-25 22:21:40 -07:00
Jarred Sumner
3e374c0ee4 Fix assertion failure
reproduces if building Three.js 10 times in runtime
2023-04-25 22:21:24 -07:00
Jarred Sumner
f42663ce9a Avoid unnecessary copies 2023-04-25 22:11:15 -07:00
Jarred Sumner
c48f7e2663 Fix error with --jsx-production in runtime 2023-04-25 22:10:59 -07:00
dave caruso
0846a4fa80 bundler tests, testing plugins (#2740)
* add cjs2esm stuff

* tests

* plugin testing
2023-04-25 19:13:39 -07:00
Jarred Sumner
2256d43a32 now it works 2023-04-25 08:19:40 -07:00
Jarred Sumner
947634c9ed typo 2023-04-25 07:57:00 -07:00
Jarred Sumner
126885e1fe Implement onResolve plugins in Bun.build(), support multiple onLoad and onResolve plugins (#2739)
* its 2023

* WIP `onResolve` plugins

* more progress

* it compiles

* Lots of small fixes

* Seems to work excluding entry points

* Update BundlerPluginBuiltins.cpp

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-25 07:27:18 -07:00
Jarred Sumner
5353d41014 Fixes #2738 2023-04-25 07:25:00 -07:00
Alex Lam S.L
460563ee89 fix make setup (#2731)
- minor clean-ups
2023-04-25 15:13:57 +03:00
Jarred Sumner
3c4f0920b9 Log HTTP requests and responses by default when log level is debug or verbose 2023-04-25 04:01:26 -07:00
Alex Lam S.L
6e16bb67eb [install] fix bun add on non-aliased dependency (#2728) 2023-04-24 17:56:43 -07:00
Jarred Sumner
e9e7645048 In bun run, rewrite usages of npx to bun x instead of bunx to workaround missing symlink 2023-04-24 17:55:34 -07:00
dave caruso
f2112fc0de Continue bundler tests (#2691)
* start refine + skipping some packagejson tests

* some more tests

* stuff

* tests for minify branch

* pkgjson

* add minify/MergeAdjacentVars

* add test for #2699

* more tests!

* more tests

* finish splitting tests

* all but 2 import star tests are good

* test
2023-04-24 14:12:21 -07:00
Jarred Sumner
923ac39c0b Support plugins in Bun.build (#2720)
* wip

* Implement `onLoad` plugins

* Support exceptions and async `onLoad` plugins

* Fix filtering

* Handle empty files

* Fix JSON loader

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-24 14:11:59 -07:00
Plecra
98209b8e10 Reduce friction for building with npm (#2723)
This was the only dependency on bun that I encountered while building the
project, and the change to the gitignore ensures that it's easy to
make changes after an npm based build
2023-04-24 04:23:38 -07:00
Jarred Sumner
4b24bb464c Make Bun.build more reliable (#2718)
* One possible implementation to make `Bun.build` work better

* Pass allocator in

* Make our temporary buffers a little safer

* rename

* Fix memory corruption in symbol table

* Add support for deferred idle events in ThreadPool

* Free more memory

* Use a global allocator FS cache

* more `inline`

* Make duping keys optional in StringMap

* Close file handles more often

* Update router.zig

* wip possibly delete this commit

* Fix memory issues and reduce memory usage

* > 0.8

* Switch to AsyncIO.Waker and fix memory leak in JSBundleCompletionTask

* We don't need to clone this actually

* Fix error

* Format

* Fixup

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-22 19:44:23 -07:00
Jarred Sumner
7d6b5f5358 Fix minify: true not applying to identifiers 2023-04-21 18:03:27 -07:00
Jarred Sumner
9423693a6e [breaking] In Bun.Transpiler, don't wrap CommonJS modules in export default 2023-04-21 18:03:07 -07:00
Jarred Sumner
8b9462fde5 Add minify option to Bun.Transpiler 2023-04-21 18:02:29 -07:00
Colin McDonnell
caa90ba98e Update TS docs for bun-types changes (#2590)
* Update TS docs for bun-types changes

* Update typescript, remove extends guidance

* Updates

* Tweaks

* Tweaks
2023-04-21 11:35:42 -07:00
Colin McDonnell
55d50565a5 Add tsconfig.json to bun-types (#2587)
* Add tsconfig.json to bun-types. Document 'extends' pattern.

* Updates

* Update bun init to use extends:bun-types

* Update type:module recommendation

* Add note about transpilation. Closes #2553

* Make typescript a peer dep

* Revert changes to docs

* Revert tsconfig extends

* Update readme

* FMC

* Undo changed
2023-04-21 11:34:05 -07:00
Jarred Sumner
dc55e11714 Keep the node crypt otest 2023-04-21 07:25:51 -07:00
Jarred Sumner
613bb4822e Revert "use a lazyily initialized stream for node:crypto createHash (#2652)"
This reverts commit 3a2fd65f20.
2023-04-21 07:18:32 -07:00
Jarred Sumner
a4d0a1961a Revert "implement node:events in javascript (#2604)"
This reverts commit 96a2ed1040.
2023-04-21 07:16:23 -07:00
Jarred Sumner
143ccdbeb6 Fix order 2023-04-21 05:10:03 -07:00
Jarred Sumner
b98f90fc6e Bun.build() partial implementation 2023-04-21 01:04:55 -07:00
Jarred Sumner
281b810664 slightly better minified 2023-04-21 01:04:06 -07:00
Jarred Sumner
ffdac249ae Add comment 2023-04-21 00:52:31 -07:00
Jarred Sumner
541d16f8be Fix bug with merging adjacent vars 2023-04-20 23:57:44 -07:00
Emmanuel Vazquez
b609f9be28 chore(docs): add xcode runtime install to docs (#2706) 2023-04-20 20:03:12 -07:00
Jarred Sumner
b473a0022d Fix whitespace edgecase with export * from 2023-04-20 19:51:20 -07:00
Dylan Conway
94cd68d7a6 append if the previous part is not UTF8 (#2705) 2023-04-20 16:35:01 -07:00
Jarred Sumner
6d5378566a Fix template string folding test
@paperdave --minify-syntax now causes `true` to print as `!0` and `false` to print as `!1`

`undefined` is now `void 0`
2023-04-20 05:44:50 -07:00
Jarred Sumner
c33df9e99f Increase timeouts :( 2023-04-20 05:40:20 -07:00
Jarred Sumner
4dc0364201 Update runner.node.mjs 2023-04-20 05:40:11 -07:00
Jarred Sumner
aa4d47fe2d Improve error message when failing to read a file 2023-04-20 05:30:35 -07:00
Jarred Sumner
3a68ca775f Fix bug with invalid character at the end of comment path 2023-04-20 05:24:29 -07:00
Dylan Conway
d78ecc76c8 Symbol minification (#2695)
* minify

* Update renamer.zig

* --minify-whitespace

* Speed up minification a little

* handle private names

* 5% faster minification

* use helper function

* fix nested scope slots

* `bun build --minify` gets another +8% faster

* print semicolons afterwards

* print semicolon after checking error

* after all error checking

* Delete code for generating legacy bundes

* remove extra whitespace around if statements

* print space before import identifier

* Use `@constCast`

* Make `S.Local#decls` use `BabyList(Decl)`

* Add `fromSlice` helper to `BabyList`

* Remove unnecessary optional chains

* minify `undefined, true, false`

* Another @constCast

* Implement merge adjacent local var

* Support --minify in `bun build --transform`

* skip comments when counting character frequencies

* Don't wrap commonjs with --transform on (unless targeting bun)

* Support --minify in the runtime

* Fix edgecase with import * as

* don't infinite loop

* --trnasform shouldn't mess with require

* Only track comments when minifying

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-20 05:23:12 -07:00
Dylan Conway
9e7bfdec8c with body can be an expression 2023-04-20 01:03:38 -07:00
flakey5
f0dd5b8a43 Fix typo in benchmarking docs (#2702) 2023-04-19 19:16:45 -07:00
Jarred Sumner
ea47ed0ee5 Fix broken autocomplete 2023-04-19 00:01:27 -07:00
Alex Lam S.L
36f9fd607a fix make setup (#2693)
- properly reset `JSC_BASE_DIR` after installing `bun-webkit`
2023-04-19 04:55:00 +03:00
dave caruso
96a2ed1040 implement node:events in javascript (#2604)
* initial event emitter reimplementation

* implement most of node:events. tests passing

* work on emitter

* fix importing node:events

* work on event emitter tests

* event work

* event work

* event stuff and experimenting with a lazy createHash

* cleanup crypto stuff i had on this branch

* finish event stuff up

* fix error monitor

* validate listeners are functions

* changes requested
2023-04-18 14:59:51 -07:00
dave caruso
76deb51c29 clarify file io docs (#2689) 2023-04-18 11:09:41 -07:00
Dylan Conway
5712fbd5b9 use properties length instead of capacity (#2687) 2023-04-18 04:13:04 -07:00
Jarred Sumner
b5b4356d52 Prepare for JavaScript Bundler API 2023-04-18 01:01:48 -07:00
Jarred Sumner
d1de291b2a Fix the extremely annoying ./ requirement in bun build 2023-04-18 01:01:31 -07:00
Jarred Sumner
af96e8fcdd Remove spin loop in bun build 2023-04-17 23:03:58 -07:00
Jarred Sumner
9e1745ee1f Fixes #2676 2023-04-17 20:07:08 -07:00
Jarred Sumner
05cb5bb659 Make bun dev CLI flags only show in --help for bun dev --help
This impacts:

--disable-bun.js
--disable-react-fast-refresh
--bunfile <STR>
--server-bunfile <STR>
--public-dir <STR>
--disable-hmr
--use <STR>
2023-04-17 19:20:39 -07:00
Jarred Sumner
dec5b07782 Fix template string folding bug 2023-04-17 18:01:38 -07:00
Jarred Sumner
b758779c49 Fix missing should_fold_typescript_constant_expressions 2023-04-17 17:33:21 -07:00
Jarred Sumner
3a63fe457d Fix DCE bug with new Foo() when pure without arguments 2023-04-17 17:16:57 -07:00
Dylan Conway
a17624942e make sure with is parsed as a block (#2680) 2023-04-17 15:54:02 -07:00
Dylan Conway
1ce60275d0 fix typescript decorators with index and number keys (#2677)
* handle index property key case

* non-method number property

* tests for property keys
2023-04-17 15:26:18 -07:00
Simon Legner
93a43c8fc1 docs: fix code block (#2662) 2023-04-17 13:01:08 -07:00
Jarred Sumner
bffe5e820b more 2023-04-17 08:01:03 -07:00
Jarred Sumner
983d9428a6 Get axios working (#2673)
* Revive node:http tests

* Fix a couple bugs in node:http

* possibly breaking: use `"browser"` exports condition last

* Make URL validation error better

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-17 07:13:01 -07:00
Jarred Sumner
fc539c278e cleanup 2023-04-17 05:47:20 -07:00
Jarred Sumner
d19005aa76 Fix access of inactive union field 2023-04-17 05:46:44 -07:00
Jarred Sumner
d2c64300f6 Fixup options parsing 2023-04-17 05:46:29 -07:00
Jarred Sumner
4cb739a8c5 enable minify syntax by default in the runtime 2023-04-17 03:56:52 -07:00
Jarred Sumner
01a03bcce4 Prepare for Bun.build 2023-04-17 03:56:38 -07:00
Jarred Sumner
6b758c809f Fix dynamic require() 2023-04-17 03:45:54 -07:00
Jarred Sumner
746940d21e Fixes #2634 2023-04-17 01:20:38 -07:00
Jarred Sumner
07b4b4ced0 Don't record named exports for deoptimized CJS 2023-04-17 01:18:05 -07:00
Jarred Sumner
e624dd6d4d Deoptimize CJS more 2023-04-17 00:54:03 -07:00
Jarred Sumner
ed2f24e409 Update bun.zig 2023-04-17 00:34:54 -07:00
Jarred Sumner
c650b0b848 bun build should write to stdout instead of stderr
@paperdave this probably breaks all your tests
2023-04-17 00:34:49 -07:00
Jarred Sumner
0514f59288 DCE for some global constructor calls 2023-04-17 00:32:21 -07:00
Jarred Sumner
5a8cfd8390 Deoptimize CJS -> ESM transform on computed property access of exports object
Example:
```js
for (var k in constants) {
    exports[k] = constants[k];
}
```
2023-04-17 00:30:40 -07:00
Jarred Sumner
a2d5e7c570 Update bundle_v2.zig 2023-04-16 23:42:45 -07:00
Jarred Sumner
af0a4c5638 Mark builtins as external for node and bun 2023-04-16 22:48:32 -07:00
Jarred Sumner
eec1a07907 Attempt to automatically handle some cyclical import issues with ESM
Fixes https://github.com/kysely-org/kysely/issues/412
2023-04-16 22:20:22 -07:00
Jarred Sumner
30b0d006fe Fix for ReferenceError: Cannot access uninitialized variable. 2023-04-16 21:49:33 -07:00
Jarred Sumner
413ce0c7a5 Add some comments 2023-04-16 21:04:07 -07:00
Jarred Sumner
c916a55ead Lazily wrap 2023-04-16 20:15:47 -07:00
Jarred Sumner
31319c0177 Add temporary fix 2023-04-16 19:31:45 -07:00
Jarred Sumner
255a805e00 Fix some edgecases with CJS -> ESM unwrapping 2023-04-16 19:31:45 -07:00
dave caruso
eff48cd95c more bundler tests (#2670)
* tests!

* run formatters
2023-04-16 18:57:56 -07:00
Jarred Sumner
338565eea4 Fix test 2023-04-16 07:33:30 -07:00
Jozef Steinhübl
264f3b91b6 fix: replace unknown link with bun docs (#2669) 2023-04-16 07:13:08 -07:00
Jarred Sumner
06dab241ef Unwrap, but we broke code splitting 2023-04-16 06:51:07 -07:00
Jarred Sumner
29cacb7da7 Update cli.zig 2023-04-16 01:56:37 -07:00
Jarred Sumner
e05cc8db90 prepare for unwrapping 2023-04-16 01:56:14 -07:00
Jarred Sumner
09357f55f9 Fix bugs with loading jsxDEV when it should be jsx or vice versa 2023-04-16 01:31:01 -07:00
Jarred Sumner
33049fa6fd Rename E.Require -> E.RequireString and E.RequireOrRequireResolve -> E.RequireResolveString 2023-04-16 01:30:01 -07:00
Jarred Sumner
be5d21a4f1 Delete some legacy bundling code 2023-04-15 18:45:29 -07:00
dave caruso
2dc3f4e030 more work on bundler tests (#2667)
* Fix `make dev` reusing old .o file

* more bundler tests

* document capture

* bundler tests

* bundler tests

* bundler tests

* finish up

* remove bad thing to merge on main
2023-04-15 18:28:21 -07:00
Colin McDonnell
1a7c3cdf3b Add .txt loader docs 2023-04-15 11:52:39 -07:00
Will Richards 2
f1f7369897 toBeFalsy expect counter and test scope check (#2661) 2023-04-15 08:52:46 -07:00
Jarred Sumner
4b3c483cd4 Handle more cases in length 2023-04-15 05:17:37 -07:00
Jarred Sumner
df88b998d6 Mostly implement cross-module constant inlining, but disable it
There are some test failures
2023-04-15 05:17:12 -07:00
Jarred Sumner
b687c3ab88 Implement template string folding
@paperdave can you help write tests for this if not already covered?

example:
```js
if (
  `${1}-${2}-${3}-${null}-${undefined}-${true}-${false}` === "1-2-3-null-undefined-true-false"
) {
  if (
    "\uD83D\uDE0B \uD83D\uDCCB \uD83D\uDC4C".length === 8 &&
    "😋📋👌".length === 6
  ) {
    console.log(`such fold. very inline. wow.`);
  }
}
```
2023-04-15 05:15:46 -07:00
Jarred Sumner
d4436f278c Fix failing to log error with --transform 2023-04-15 02:41:32 -07:00
Jarred Sumner
530f5ef82c Add error for assigning to a constant 2023-04-15 02:32:11 -07:00
Jarred Sumner
9e5efe61a3 Add unset function 2023-04-15 02:31:01 -07:00
Jarred Sumner
82b2c5221b Update bun.zig 2023-04-14 23:09:20 -07:00
Jarred Sumner
e977bfb5a7 Implement --transform CLI flag 2023-04-14 23:09:14 -07:00
Jarred Sumner
81e11ae586 Include the error return trace 2023-04-14 23:08:29 -07:00
Jarred Sumner
0d248568f6 Fix string concat 2023-04-14 23:08:17 -07:00
Jarred Sumner
96d522a7db +6 more passing tests 2023-04-14 22:09:48 -07:00
Jarred Sumner
b4989a316b Support importing .txt files as strings (#2660)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-14 17:45:16 -07:00
Jarred Sumner
8b897e1a6b Fix bug with mjs 2023-04-14 04:16:38 -07:00
Kruithne
730074b75d [nit] minor typo in tcp.md (#2657) 2023-04-14 04:00:02 -07:00
Jarred Sumner
f6a4516d66 Upgrade Zig (#2656)
* Upgrade Zig

* Don't add `d` files in github actions

* Revert "Don't add `d` files in github actions"

This reverts commit 446e2dd674.

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-14 03:58:38 -07:00
Jarred Sumner
6c69c2b364 Implement @bun annotation 2023-04-14 03:44:41 -07:00
Jarred Sumner
ba057e50c3 Update bun.zig 2023-04-14 03:12:40 -07:00
Jarred Sumner
1e6dcef0c5 fixup pragma parsing 2023-04-14 03:12:33 -07:00
Jarred Sumner
889462a891 Support @jsx, @jsxRuntime, @jsxImportSource, and @jsxFragment pragmas (#2655)
* Support parsing @pragma comments

* Support `@jsx`, `@jsxRuntime`, `@jsxImportSource`, `@jsxFragment`

* Fix bug where NODE_ENV would be development in certain places and production in others

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-14 01:49:29 -07:00
dave caruso
3a2fd65f20 use a lazyily initialized stream for node:crypto createHash (#2652)
* lazy hash

* finish up crypto stuff

* remove lockfiles

* ok

* add pipe test

* update this lockfile

* remove unrelated crypto benchmark from this file
2023-04-13 21:55:01 -07:00
Colin McDonnell
267a38f6fc Remove Bun.dns docs 2023-04-13 18:32:22 -07:00
Colin McDonnell
011e157cac Docs restructuring (#2638)
* Restructure

* Update nav

* Reorg

* Reshuffle ecosystem pages

* Split up runtime/runtime

* Back to runtime/index

* Fix issue

* Split up runtime/index

* Add Writing Tests page

* Prettier matcher table

* More updates
2023-04-13 18:26:45 -07:00
Jarred Sumner
0cc56e8efc Update default.test.ts 2023-04-13 18:02:49 -07:00
Jarred Sumner
54ef58db48 Fix default/ReExportDefaultExternalES6 2023-04-13 18:00:39 -07:00
Dylan Conway
476ab24081 fix ambiguous import (#2654)
* check all files before

* better error/warning

* update todo
2023-04-13 17:41:07 -07:00
Jarred Sumner
8a2545a172 Fix default/ReExportCommonJSAsES6 2023-04-13 17:00:24 -07:00
Jarred Sumner
e9016415bc Only set is_web_browser_navigation in debug mode server 2023-04-13 16:33:11 -07:00
Dylan Conway
242aa0be12 Update import-meta.test.js 2023-04-13 16:03:11 -07:00
Ciro Spaciari
041231d7ca fix node-net-test hang (#2649)
* fix tests

* fix fmt

* fix fmt
2023-04-13 15:14:58 -07:00
Ciro Spaciari
bee743fd61 fix(server) fixes UAF of uWS headers (#2648)
* fixes UAF of uWS headers

* fix transfer encoding condition
2023-04-13 15:14:34 -07:00
Jarred Sumner
d7a8037899 Fixes #2645 2023-04-13 14:42:35 -07:00
Nilan Marktanner
d226a054ae Update development.md (#2647) 2023-04-13 09:07:44 -07:00
Jarred Sumner
aeb3bb949b Upgrade WebKit (#2643)
* Missing export

* Regenerate builtins

* Fix crash in require()

* Various breaking JSC changes

* hopefully speed up C++ compilation a little

* Skip failing test fo rnow

* Update WebKit

* Add a comment

* Fix error in postinstall

* Update WebKit

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-13 04:11:12 -07:00
Dylan Conway
db15a23a63 import file path and fix disabled browser require (#2642)
* print disabled `require`

* bundle file paths

* update tests
2023-04-13 00:20:59 -07:00
dave caruso
1cc4eb0e3f fix expectBundled precheck (#2641) 2023-04-12 19:30:55 -07:00
Dylan Conway
a03ee18262 fix bundling many entry points (#2640)
* fix going out of bounds when length is over 8

* remove
2023-04-12 19:25:39 -07:00
Ciro Spaciari
108c54134c fix types and add more reliable tests (#2621) 2023-04-12 18:41:40 -07:00
dave caruso
73216b10ce bundler tests (#2635) 2023-04-12 18:41:04 -07:00
Dylan Conway
ff5c522712 bundler bug fixes (#2637)
* append import to outer wrapper prefix

* print space

* require text loader

* import empty esm and cjs

* add text to schema
2023-04-12 18:40:21 -07:00
hiroki osame
14f87156a2 fix(fs): remove readfile (#2630) 2023-04-12 18:40:02 -07:00
Dylan Conway
d8d4abb58e don't increment i if escaped (#2639) 2023-04-12 17:42:56 -07:00
Dylan Conway
4b9b648f8a could include /private/ on macos 2023-04-12 15:22:04 -07:00
dave caruso
519f9aac80 finish refining bundler tests (#2623)
* bundler tests

* test refining, 257/847

* bundler tests, 298/849

* more bundler tests

* finish dce
2023-04-11 18:18:49 -07:00
Ryan Morey
a744f5369d Update development.md (#2625)
* Update development.md

adds the `bash` language specifier to `which clang-15` so that when you click the copy button, it doesn't include the `$`

* Update development.md

* Update development.md

* Update development.md
2023-04-11 13:19:24 -07:00
hiroki osame
14c6023e15 docs: remove dev container section (#2610) 2023-04-11 01:52:54 -07:00
Ciro Spaciari
f91dc8c0d3 always safe deinit socket context (#2611) 2023-04-10 15:05:16 -07:00
Dylan Conway
f4ab79d6bb add original name to list (#2613) 2023-04-10 15:03:27 -07:00
Jarred Sumner
373248ce9c Implement TOML & JSON support in Bun's new bundler (#2609)
* Implement JSON & TOML support in the bundler

* Fix failing to bind namespace imports

* Support namespace exports better

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-10 06:35:41 -07:00
Jarred Sumner
5c37d0f2a5 Parse import attributes
https://github.com/tc39/proposal-import-attributes#import-attributes
2023-04-09 07:49:08 -07:00
Jarred Sumner
7bd6a1f86d Remove usages of void{} in favor of {}
See https://github.com/ziglang/zig/issues/15213
2023-04-09 05:39:05 -07:00
Jarred Sumner
1e717dd941 Add some test coverage for instantiation expressions
Related to #2203
2023-04-09 05:07:44 -07:00
Jarred Sumner
e9d6a4042f Fix another case with instantiation expressions
Related to #2203
2023-04-09 05:07:28 -07:00
Jarred Sumner
c97cb4ec1e Lower for-in variable initializers 2023-04-09 05:07:07 -07:00
Jarred Sumner
21acc50d88 Fixes #2594 (#2600)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-09 03:43:04 -07:00
Jarred Sumner
b34f0da499 Fixes #2599 2023-04-09 03:18:26 -07:00
Jarred Sumner
eb18101d84 Update TypeScript parsing to 5.0 (#2593)
* update syntax

* seems to work, needs tests

* This test wasn't supposed to be added

* Many bugfixes to TypeScript parser

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-09 03:16:11 -07:00
dave caruso
2117723642 Fix callout tag on development docs (#2595)
* fix callout tag on development docs

* add notes on cmakeconfig.h

* Update Makefile
2023-04-08 20:05:05 -07:00
dave caruso
461ae27d31 Rewrite Developer Docs, Improve DX for new users, moving away from Devcontainer (#2588)
* new docs starting point. missing alot of information

* very experimental idea: make setup

* run on ubuntu 20

* builds on ubuntu 20 (wsl) now

* add release instructions

* add valgrind note from jarred/new-bundler branch, just in case it gets lost when rebasing

* changes requested
2023-04-08 02:23:11 -07:00
Jarred Sumner
ba7a8a9cb5 Fix node: prefix when --platform=node 2023-04-07 23:15:19 -07:00
Jarred Sumner
c764543af5 Fix sort 2023-04-07 22:33:33 -07:00
Jarred Sumner
60fc80d4c4 Workaround crash
https://github.com/ziglang/zig/issues/15204
2023-04-07 22:12:19 -07:00
Jarred Sumner
6362414d65 Bun gets a new bundler (#2312)
* alright now just gotta try running it

* fix a gajillion compiler errors

* even more code

* okay i fixed more errors

* wip

* Update launch.json

* Update string_builder.zig

* `fast_debug_build_mode` makes debug build 2x faster

* Update bundle_v2.zig

* more code!

* It bundles!

* Rename `Bun.Transpiler` to `Bun.Bundler`

* `import()` expressions almost work

* wip attempt to get import() expr to work

* Bundle namespace imports

* Attempt to fix the issue with import() unsuccessfully

* consider current working directory when resolving relative paths (#2313)

* consider current working directory when resolving relative paths

fixes #2298

* comment test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

* support `expect().toThrow(/pattern/)` (#2314)

- fix time-zone-dependent test failure

* fix missing `Blob` error messages on Linux (#2315)

* fix & clean up tests (#2318)

- skip flaky tests when running as `root`
- use `expect().toThrow()`
- clean up temporary files after tests

* feat(tty): add some `tty.WriteStream` methods to `process.{stdout, stderr}` (#2320)

* feat(stdio): add some `tty.WriteStream` methods

* chore(builtins): add process builtin gen'd code

* Fix docker install command

* `bun test` on macOS in GitHub Actions (#2322)

* Fixes #2323

* throw invalid parameter errors in `crypto.scryptSync` (#2331)

* throw invalid parameter errors

* remove comptime, add empty buffer function

* remove error_name comptime

* Add reference documentation for bun:test (#2327)

* Reorganize tests (#2332)

* Fix html-rewriter.test.js

* fix the wrong thing being incremented in hmr example (#2334)

* Add more test harness

* Improve Benchmarking page, small fixes (#2339)

* Improve benchmarking page

* WIP

* Add typescript instructions to hot

* Document preload in Plugins. Fix loader in plugin types.

* Fix typo

* Fix links

* run prettier

* Document openInEditor

* improve `Buffer` compatibility with Node.js (#2341)

* improve `Buffer` compatibility with Node.js

* use `memmove()`
allow `encoding` to be `undefined`

* run `bun test` after macOS builds (#2343)

* "binary" is an alias of "latin1"

Fixes https://github.com/oven-sh/bun/issues/2110

* More spec compliant `Blob.prototype.type` (#2340)

* Make `Blob.prototype. type` more spec compliant

* Add a few more checks for isNumber()

* Fix `make headers`

* Safer JSValue.isString()

* More tests for blob.slice

* Make `Blob.prototype.type` more spec compliant

* Add isASCII check

* Fix types

* Fix failing type test

* Update blob.zig

* Update blob.zig

* Fix .eql check on empty values

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

* Fix bug in test runner

* Support `import()` expressions

* Implement `require()`

* clean up bit_set.zig slightly

* Move some things around

* misc cleanup

* Cleanup some things

* Fix a lot of stuff

* Fix `module.exports.fn = fn;` in ESM entry point

* Fix crash due when printing file

* Fix issue with class names

* Fix issue with `export default identifier`

* Update js_parser.zig

* optimization: inline single-property object acceses and arrays

* Fix undefined memory in renamed symbols list

* Handle call target

* wip

* Inline it

* Fix undefined memory issue when reclaiming blocks in ast

* Halt linking on any parse errors

* alias

* Rename `enable_bundling` to `enable_legacy_bundling`

* Workaround anonymous struct literal zig bug

* Use slower approach (without bitset) because it doesn't break after 8 symbols

* Fix incorrectly-renaming statically defined symbols

* Handle more edgecases in our bit_set fork

* Reduce number of allocations for `define`

* Do not rename unbound symbols

* Clean up dot defines a little more

* Make the generated names prettier

* Workaround runtime symbol missing issue

* Fail the build on errors

* Support export * from

* Support `--outfile`

* partially fix renaming

* fanicer symbol renaming impl

* misc, extremely revertible cleanup

* Fix up some bugs with symbol renaming

* formatting

* Update launch.json

* Parse `__PURE__` comments

* clean up simd code for pure comments

* changes to merge

* workaround runtime issue

* Fix issue with `export * as` not propagating correctly

* Make all top-level declarations `var` when bundling

* Fix missing prefix

* Fix assigning to stack copy

* Fix missing runtime symbol

* Fix bug with namespace exports

* Dramatically reduce allocations

* Update launch.json

* Add missing flags

* Update js_parser.zig

* small cleanup

* Make the export name better

* Fix unnecessary `var foo = foo`

* Implement CommonJS -> ESM conversion

* Implement module redirects

* Port esbuild bundler tests for new bundler (#2380)

* started porting esbuild tests

* clean up test names and api before moving on

* port tests using a program i wrote

* replace todo generated comment

* fix generated tests not including some files

* work on tests

* [github web editor] add define, external, inject, minifySyntax, minifyWhitespace options.

* get most of the todo comments out of the way, but expectBundled does not handle most of the cases

* continue working on esbuild tests

* use test.skip for unsupported tests

* Fixups for test runner

* Hoist imports & exports

* Fix test

* Hoist classes

* bundler test refining, 51/835

* Fix runtime require

* bundler test refining, 81/835

* bundler test refining, 93/835

* Make the test work in any timezone

* feat(expect): update toBeInstanceOf (#2396)

* feat: update instanceof binding

* fix: according to PR comments

* Rename `expectObjectTypeCount` to `expectMaxObjectTypeCount`

* Fix socket tests with connection errors (#2403)

* release pending activity with connection error handler

* unref poll_ref

* remove trailing comma

* Organize Dockerfiles for official status

* Remove test Dockerfile

* Remove old Docker workflow

* Feat(test): add toMatch (#2404)

* Fix various fetch/response/request tests (#2416)

* fix most fetch tests, skip a few

* fastGet, toValueGC, and invalid init

* bigint unreachable, range error, log process as process

* remove extra fetch_headers

* remove js_type parameter, check isObject()

* throw invalid mime type error, use enum literal

* switch back to promise rejection

* RangeError pascal case

* Fix several bugs (#2418)

* utf16 codepoint with replacement character

* Fix test failure with `TextEncoder("ascii')`

* Add missing type

* Fix Response.prototype.bodyUsed and Request.prototype.bodyUsed

* Fix bug with scrypt error not clearing

* Update server.zig

* oopsie

* 💅

* docs: Use correct url in the 'Issues' link in README header (#2420)

* Fix crash when rendering error page and the server or network is slow

* [fetch] Make the default body value `null` when unspecified

This is better aligned with the fetch spec

* Make node-net tests less flaky

* [node:net] Fix issue with `listen` callback firing before it's listening

* Always clear timers in node test harness

* Fix out of bounds access

Repro'd in Buffer tests

* Update UWS

cc @cirospaciari

* Make this test more thorough

* Hanging abort test

* 0 length body is a null stream

* Several bug fixes (#2427)

* Fix test

* Fix segfault when unexpected type is passed in `expect().toThrow`

* Fix issues with request constructor

* Don't bother cloning headers when its empty

* woops

* more tests

* fix incorrect test

* Make the fetch error messages better

* Update response.zig

* Fix test that failed on macOS

* Fix test

* Remove extra hash table lookups

* Support running dummy registry directly

cc @alexlamsl

* Update test

* Update test

* fixup

* Workaround crash in test runner

* Fixup test

* Fixup test

* Update os.test.js

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>

* Remove usages of port numbers in tests

* Set -O2 and -fno-rtti

* Remove -g

* Prevent undefined memory access

* [bun test] Implement `--rerun-each` flag to run each test N times

* Reduce number of module scopes created

* add some extra abort checks into streams (#2430)

* add some checks to avoid UAF

* avoid multiple calls to finalize if endFromJS is called more than once

* fix no-op comment

* mark as requested_end on abort

* remove requested_end from abort

* remove unnecessary check (#2432)

* Fix bug with scoped aliased dependencies in bun install on macOS

* remove `addLog`, remove `--prominent-compile-errors`

* Finish the upgrade

* Optional chaining flag

* Implement same_target_becomes_destructuring optimization

* bundler test refining, 109/835

* Reset bindings

* Support multiple entry points

* Implement `--entry-names` flag

* Use a tempdir with a better name

* prettier

* Log file name

* Update js_parser.zig

* Mark all bun builtins as external

* Make resolve errors actually errors

* Update bundler_default.test.ts

* Fix `await import(foo)`

* WIP react server components

* Do more stuff at runtime

* ✂️

* Support automatic JSX imports

* Use a module cache for now

* Update tsconfig.base.json

* Fix ThisOutsideFunctionNotRenamed

* woopsie

* moar cpu

* clamp it

* fixup

* Add a bunch of assertions

* Bun uses automatic runtime by default

* Parse Import Attributes

* Add a note about Valgrind

* Update developing.md

* Fix up code splitting for React Server Components

* Implement client component manifest

* Fix crash with --react-server-components and no client components

* Backport 4d31e3c917

* Update launch.json

* Fix for latest zig

* Workaround bug with ?[]const string

Occasionally saw alignment errors in this code

Workaround https://github.com/ziglang/zig/issues/15085

related: https://github.com/ziglang/zig/pull/15089

* switch to regular slice

* Avoid initializing named_imports and named_exports as undefined

* Reduce usages of `undefined`

* Add more assertions

* --watch wip

* Update javascript.zig

* Possibly fix the race condition

* Faster `do`

* bump allocator

* Reduce the size of `Symbol` slightly

* Alphabetically sort runtime import symbols, for determinism

* Prepare for code splitting

* handle overlapping stdout

* pure

* clean up some things

* Fix bug with `$$typeof`

* Address CommonJS -> ESM hoisting bug

* Support `"use server"` in manifest

* Implement `"use server"`

* Fix importing bun builtins when bundling

* Make `commonjs_to_esm` a feature flag, fix some splitting bugs

* ✂️

* fixme remove this

* Fix crash in longestCommonPath

* Chunking! Just need to do import paths now.

* Import paths work...now trying to figure out how to make runtime symbols work

* add workaround

* Replace `bun bun` with `bun build`

* Fix crash with dual package hazard

* Fix many CommonJS <> ESM interop bugs

* Support package.json `"sideEffects"`

also skip loading unnecessary package.json data in `bun run`

* add a not good --watch implementation

* bundler test refining, 140/831

* remove accidentally committed file

* do not return status code 1 on successful bundles

* bundler test refining, 159/830

* pass exit code to exitOrWatch

* clean up help menu

-remove two spaces to line up bun build
-moved all <r> tags to the end of the text they are colorizing
-moved other colors to the start of the text they colorize
-removed unneeded <r> tags, keeping only one at the start of the block

* importstar is fully ported

* wip

* you can run code in this branch now

* Disable this transform

* organize and document bundler tests

* Fix double import

* Fix sloppy mode function declarations

* Disable our CommonJS transform for now

* add `assertNotPresent` to make splitting cases easier

* Bump!

* Update bun.d.ts

* use import.meta.require in runtime code

* Disable this again

* Fix dirname

* Fix ESM -> CJS wrapper

* 💅

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Alex Lam S.L <alexlamsl@gmail.com>
Co-authored-by: Derrick Farris <mr.dcfarris@gmail.com>
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com>
Co-authored-by: pfg <pfg@pfg.pw>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
Co-authored-by: dave caruso <me@paperdave.net>
Co-authored-by: zhiyuan <32867472+zhiyuang@users.noreply.github.com>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
Co-authored-by: Kamil Ogórek <kamil.ogorek@gmail.com>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
2023-04-07 20:08:01 -07:00
Ashcon Partovi
c0c5f07218 Fix trailing slash bug in upload script 2023-04-07 16:05:47 -07:00
Ashcon Partovi
0a91dd9f71 Fix environment variables in workflow 2023-04-07 15:42:41 -07:00
Ashcon Partovi
bed56ab406 Upload releases to S3 2023-04-07 15:38:38 -07:00
Jake Boone
4978a6b74d Add TSConfig object type to TranspilerOptions interface (#2545) 2023-04-07 15:16:21 -07:00
hiroki osame
35b279a4bb chore: simplify prettier command and cache (#2589) 2023-04-07 09:11:23 -07:00
Colin McDonnell
c8e09f563f FileBlob -> BunFile, add BunFile.lastModified (#2581)
* Improve BunPlugin types

* FileBlob -> BunFile

* Update Bun.env types. Fixes #2481

* Add lastModified to BunFile
2023-04-07 04:03:06 -07:00
Ciro Spaciari
6baedd27bc feat(tls.Server) basic support (cert, key, rejectUnauthorized, requestCert, ca) #2412 (#2552)
* cherry picked

* add StringOrBuffer parameter

* Format and adds types

* update uws

* fix tests

* more types

* fix typing

* add timeouts, clean some stuff

* move tests to describe

* fixes SSL hostname when Host is provided

* cleanup on tests

* change 127.0.0.1 to 0.0.0.0

* try another listening parameter

* test timings and update uws

* remove unnecessary comment

* move listening event around

* always await Bun.connect

* do not fail if the tests already passed when using Bun.connect

* regenerate classes

* undo generated classes

* generate classes

* fix merge

---------

Co-authored-by: cirospaciari <cirospaciari@MiWiFi-RA82-srv.cirospaciari>
2023-04-07 04:02:05 -07:00
Jarred Sumner
5465a3980a Proactively add these to the list 2023-04-06 19:30:50 -07:00
Jarred Sumner
b6bd7e24d7 Bump 2023-04-06 19:30:38 -07:00
dave caruso
e4e81bc49e fix: export constants from fs/promises (#2567)
* fix: export `constants` from `fs/promises`

* fix type tests

* third time's the charm fixing the typedef

* run fmt

* remove injected constant from fs, re-exporting from fs/promises
2023-04-06 15:55:23 -07:00
dave caruso
b8aca35b76 docs: add a section on uninstalling bun (#2560) 2023-04-06 15:12:59 -07:00
Jozef Steinhübl
68670eeb7b docs(cli/bunx): add notice (#2574)
* docs(cli/bunx): add notice bunx alias bun x

* docs: grammar
2023-04-06 15:09:20 -07:00
Dylan Conway
2b170c9d13 Fix toEqual when the second array has extra array holes (#2580)
* iterate through remaining indexes, keep prop identifier

* tests

* format
2023-04-06 14:49:07 -07:00
Zhongwei Yao
1d138057cb Add last modify field "mtime" for FileBlob (#1431) (#2491)
* Add lastModified field for FileBlob (#1431)

lastModified value is epoch timestamp in millisecond unit.

* update according to review comment.
2023-04-06 14:01:49 -07:00
dave caruso
f788519263 bun-types: infer strict Subprocess from Bun.spawn() options, part 2 (#2573) 2023-04-06 13:59:06 -07:00
Dylan Conway
8a73c2a453 cache needs to update, move to another process (#2578) 2023-04-06 13:58:01 -07:00
hiroki osame
21978dabe5 fix(ws): export Server (#2575) 2023-04-06 04:18:17 -07:00
hiroki osame
aa4c4a9b22 docs(CONTRIBUTING): referece development guide (#2576) 2023-04-06 04:18:02 -07:00
dave caruso
569d4940bb rebase (#1501) 2023-04-05 19:15:06 -07:00
Colin McDonnell
4af78c7d5a Update typecheck (#2572)
* Update typecheck

* Test ci

* Test ci

* Prettify files
2023-04-05 18:31:13 -07:00
Jarred Sumner
cfb1c661d5 prepend 2023-04-05 18:29:41 -07:00
Jake Boone
864302a634 Add tests for bun test with preload scripts (#2566)
* Use zsh-compatible syntax in cowsay example

zsh interprets the string !" differently than bash or sh, but we can use single quotes in all of them. See https://unix.stackexchange.com/a/497335/548905.

* Add tests for bun:test with preload scripts

* Look at `stderr` in `bun test --preload` tests
2023-04-05 18:28:41 -07:00
Jarred Sumner
b50f3d3f6f Disable buffering when we clear terminal
hopefully fixes an issue reported in Discord
2023-04-05 18:27:43 -07:00
Jarred Sumner
65d646bc68 Prettier 2023-04-05 18:27:02 -07:00
Ciro Spaciari
d8c467be42 fix(fetch.proxy) fix proxy authentication (#2554)
* fix proxy authentication

* add auth tests

* remove unused
2023-04-05 17:48:18 -07:00
hiroki osame
fd680d6c1d fix: build warnings (#2562) 2023-04-05 17:38:47 -07:00
Lawlzer
f7d0eee0ac In Documentation, move --watch before the script name (#2569)
Related message by Jarred: https://discord.com/channels/876711213126520882/876711213126520885/1093286199369682944
If you put `--watch` after the script name, it will not work.
2023-04-05 15:02:08 -07:00
Dylan Conway
ac092a1e04 fix deepEquals with array holes and accessors (#2557)
* `deepEqual` handles slow array indexes

* another test

* oops

* remove bad test

* compare indexes in non-strict mode

* more tests
2023-04-05 13:39:51 -07:00
hiroki osame
fd5bb6b201 fix: modules to have null prototype (#2561) 2023-04-05 00:31:58 -07:00
Jarred Sumner
d8360ab3cf 🕐 🕑 🕒 2023-04-04 16:50:03 -07:00
Jarred Sumner
a369fc8c89 Implement import.meta.main (#2556)
* Implement `import.meta.main`

* Update main-test-1.js

* Update fs.test.ts

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-04 16:49:33 -07:00
Jarred Sumner
54d6f95f43 Dylan/fix some failing tests (#2544)
* handle `umask()` invalid arguments

* move `bktree-fast` to test root, fix postinstall

* fix fs test

* could be baseline

* handle different timezones

* accidentally deleted tests

* fix hang in `AbortSignal.timeout`

* bring abort tests back

* Revert "bring abort tests back"

This reverts commit 0ff2ad5bf4.

* bunx node-gyp

* bun x

* fix typecheck

* test

* Update inspect.test.js

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2023-04-04 16:47:57 -07:00
Colin McDonnell
76adc5be8a Add npm benchmark (#2555)
* Add install bench

* Update scripts and readme

* remove lockfiles

* Format bench

* Add dev instructions
2023-04-04 16:26:40 -07:00
Jarred Sumner
f3ab445c3f Use absolute paths more 2023-04-03 18:12:51 -07:00
Jarred Sumner
ae849528b8 Fix test failure 2023-04-03 18:11:14 -07:00
Colin McDonnell
6a66fffd39 Add rfcs under docs dir 2023-04-03 17:06:40 -07:00
Alex Lam S.L
9b0f12883c [install] reduce parallel HTTP requests under heavy load (#2536)
* [install] reduce parallel HTTP requests under heavy load

* make `max_simultaneous_requests` atomic
2023-04-02 22:32:19 -07:00
Jarred Sumner
fcd8b82864 Add stubs for missing node builtins (#2534)
* Stub `node:v8`

* Stub `node:trace_events`

* Stub `node:repl`

* Stub `node:inspector`

* Stub `node:http2`

* Stub `node:diagnostics_channel`

* Stub `node:dgram`

* Stub `node:cluster`

* Link stubs

* cleanup

* Clean up the test

* Implement `node:vm` stub

* Cleanup `v8` module stub

* Add missing `promises` export to node:stream

* Implement `node:stream/promise`

* Implement `node:assert/strict`

* cleanup

* better errors

* Increaase timeout

* Update inspector.exports.js

* Make the version consistent

* Implement `process.binding("constants")`

* Update runner.node.mjs

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-04-01 21:13:27 -07:00
Jake Boone
63d138b046 Update NodeJS LTS version in run_command.zig (#2533) 2023-04-01 17:49:56 -07:00
Dylan Conway
8904398619 remove debug symbols (#2527) 2023-03-31 19:20:11 -07:00
Alex Lam S.L
685e298146 report timed-out test as failure (#2523) 2023-03-31 07:14:55 -07:00
Alex Lam S.L
74cacffb0c [install] fix stale pointer with tarball URLs (#2520)
* [install] fix stale pointer with tarball URLs

fixes #2512

* `alloc()` & `free()` instead of fixed-size buffer
2023-03-30 21:54:56 -07:00
Alex Lam S.L
977446ef3c [install] fix re-install of git dependency (#2519)
- add tests for re-install of npm alias & GitHub URL
2023-03-30 19:50:23 -07:00
Dylan Conway
1fa7c1f79e Generate dependency files in make bindings (#2510)
* generate dependency files, include in makefile

* move `make webcrypto` to `make bindings`

* update more references to `make webcrypto`

* remove `-lwebcrypto`
2023-03-30 19:34:20 -07:00
Alex Lam S.L
758daa7367 [install] fix re-run of tarball URL from lockfile (#2507) 2023-03-29 20:38:19 -07:00
Adrien Zinger
95cb2b2ac2 Fix date format (#2422) (#2474)
* Fix date format (#2422)

* Add unit tests for #2422
2023-03-29 17:41:11 -07:00
Colin McDonnell
b0e0853360 Update vscode auto save mention 2023-03-29 17:27:13 -07:00
Colin McDonnell
f16995910a Update vscode auto save mention 2023-03-29 17:26:52 -07:00
Colin McDonnell
b2f3dbfd43 Typo 2023-03-29 17:12:06 -07:00
Niles Salter
9f07073074 Fix some lockfile creation issues (#2506) 2023-03-29 17:10:44 -07:00
Colin McDonnell
546f78a49e Update --watch docs 2023-03-29 17:02:16 -07:00
Jarred Sumner
767fdfbb97 Fixes #2499 (#2501)
* Fixes #2499

* This needs to be quoted

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-29 09:37:15 -03:00
Jarred Sumner
f0def8c770 Add doc on watch mode (#2502)
* Add doc on watch mode

* Update hot.md

* Update hot.md

* More words

* Update hot.md

* Update hot.md

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-28 23:26:43 -07:00
Jarred Sumner
786475ff58 bun --watch and bun test --watch (#2500)
* --watch wip

* Upgrade for latest zig

* Implement `bun --watch`

* Implement `bun test --watch`

* Auto restart on crash in --watch

* 🕐 🕑 🕒 🕞

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-28 21:28:35 -07:00
Jarred Sumner
b76384351c More bug fixes (#2486)
* readline_promises test fix

* fix `escapeHTML` for baseline builds

* fs test fixes, use `tmpdir()`

* add paths for `resolve.test.js`

* isError with toString symbol and error prototype

* comment about `toString`

* skip async macro transform

* test cleanup, skip stack format test

* readline undo and redo fix

* capture error from readline keypress

* Update tcp-server.test.ts

* use `removefileat` for recursive rmdir

* use strong for `signal.reason`

* initialize `m_flags`

* directory with file fs test

* recursive option

* import expect

* could be less than

* move abort signal tests to another process

* fix typecheck

---------

Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2023-03-28 18:23:50 -07:00
Alex Lam S.L
0a91490226 [install] support tarball URLs (#2497)
closes #2448
2023-03-28 13:45:00 -07:00
Ashcon Partovi
93585291f9 Sign canary release before Docker release 2023-03-28 12:06:22 -07:00
Ashcon Partovi
de46ad23e5 Fix BUN_VERSION in bun-release 2023-03-28 12:03:25 -07:00
Ashcon Partovi
f455845a0a Fix BUN_VERSION in bun-release-canary 2023-03-28 12:01:06 -07:00
Andres Beltran
d5418052b1 Remove extra 's' on keep (#2498) 2023-03-28 09:37:46 -07:00
Jarred Sumner
cfceb26edd Fix for latest zig (#2495)
* Fix for latest zig

* Revert "Use PATH instead of sudo to install bun for testing (#2460)"

This reverts commit 5fd406ca2f.

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-27 18:22:13 -07:00
Ciro Spaciari
b2d90f07ba fix https default port on http.request (#2490)
* fix https default port on http.request

* Update http.exports.js
2023-03-26 22:45:52 -05:00
Alex Lam S.L
319efe9c7b [install] fix tests (#2488)
- avoid creating spurious directories next to test scripts
2023-03-25 21:51:03 -07:00
Jarred Sumner
52d27659a2 Fixes #2462 (#2463) 2023-03-23 15:49:42 +02:00
Derrick Farris
732c5e7fa9 test(undici): rm external http reqs from tests (#2459)
* test(undici): rm external http reqs from tests

* cleanup(http-test-server): remove finished TODOs

* test(undici): fix server type, remove type:module to fix typings in test dir

* test(undici): make the typings better

* test(undici): fix typo
2023-03-22 21:22:31 -07:00
Josh Soref
5fd406ca2f Use PATH instead of sudo to install bun for testing (#2460) 2023-03-22 21:21:57 -07:00
Dylan Conway
31c2fea74a A couple bug fixes (#2458)
* fix valid status code range

* update path

* highwatermark option

* throw DOMException

* remove extra transpiler output

* more transpiler tests

* comment

* get index not quickly

* replace with `getDirectIndex`

* update abort test

* throw out of range status code

* promisify test fix

* move stdio test instance files

* working crypto tests

* allow duplicate set-cookie headers

* different formatting

* revert, fix will be in different pr

* it is called

* use min buffer size

* fix url tests

* null origin for other protocols

* remove overload

* add very large file test

* await

* coerce to int64

* 64

* no cast

* add todo blob url tests

* use `tryConvertToInt52`
2023-03-22 18:09:51 -07:00
Colin McDonnell
a5f92224b5 Fix types (#2453)
* WIP

* WIP

* WIP

* WIP

* Improve typechecking in type files

* Fix typechecking

* Update

* Update submodule

* CI for typechecking

* Add ci

* Update commands

* Format after build

* Dont use bunx

* Rename job

* Use nodemodules prettier

* Update workflow

* Use symlink

* Debug

* Debug

* Clean up and rename jobs
2023-03-22 15:01:01 -07:00
Jarred Sumner
2bdaa81b1c Upgrade Mimalloc 2023-03-21 23:32:04 -07:00
Jarred Sumner
8b92469d42 Update build-id 2023-03-21 21:52:43 -07:00
Jarred Sumner
5915ab19fe Don't use function from bundler branch 2023-03-21 21:52:11 -07:00
Jarred Sumner
58a5c2a3aa Fix possible crash with export namespace ns { export class F {} } 2023-03-21 21:44:42 -07:00
Joker_
f3a91339fc Update sqlite.md (#2452)
Fix benchmark source pointing to wrong URL.
2023-03-21 18:51:31 -07:00
Igor Shevchenko
54b62aad05 Fix typo (#2446)
- fixed typo in the month name
2023-03-21 10:14:21 -07:00
Ján Gajdoš
15f23d70d6 docs: Buchta Docs Page (#2378)
* Idea: Buchta Docs Page

* Tweaks

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-03-20 21:32:20 -07:00
Colin McDonnell
42eff1d917 Add test-d files for eventemitter 2023-03-20 20:39:57 -07:00
Gaurish Sethia
02e5c5f795 Make event emitter type-safe (#2414)
* Add filePath property on MatchedRoute

* Fix #1880 #851

* Fix #1972 as well

* FMC

* Bump querystring-es3

* fix querystring status

* Fix typos in docs

* Make event-emitter by default type-safe

* Remove Makefile.save

* Resolve merge conflict

* Tweaks

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-03-20 20:32:28 -07:00
John Reilly
2503b3409e docs: update moduleResolution to bundler (#2429)
* docs: update moduleResolution to bundler

* docs: bundler as well

* Updates

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-03-20 19:51:24 -07:00
jq170727
6539f66642 "bun-create" example "postinstall"→"preinstall" (#2441)
"postinstall" is listed twice in the example for the "bun-create" section of package.json.
Based on the context and content of the echo commands I believe the intent is that the
first "postinstall" should be "preinstall".  This change corrects this.
2023-03-20 17:49:55 -07:00
Jackson Kearl
4dd4bab7b9 Support directories in ZSH run completions (#2425)
* Support scripts in dirs in zsh run completions

* add back wasm support
2023-03-20 11:27:39 -07:00
jq170727
035183eb12 Fix example for "bun pm ls" (#2440) 2023-03-20 11:26:22 -07:00
Jarred Sumner
aaef99ab68 Update install.md 2023-03-20 06:20:16 -07:00
Jarred Sumner
1a25af5e3d Implement simple workspaces glob support in bun install (#2435)
* [bun install] Implement `packages/*`-style globs

* Fix incorrect assertion

* 💅

* remove extraneous console.log

* Fix pointer to stack memory

* Add a test with a scoped package name from a glob workspace

* Fixup

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-20 05:57:23 -07:00
Jarred Sumner
343721627e Finish the upgrade 2023-03-19 23:03:08 -07:00
Dylan Conway
6e0e140f2f remove addLog, remove --prominent-compile-errors 2023-03-19 23:03:00 -07:00
Jarred Sumner
0edd8d262d Fix bug with scoped aliased dependencies in bun install on macOS 2023-03-19 20:58:27 -07:00
Ciro Spaciari
76622e41d6 remove unnecessary check (#2432) 2023-03-19 20:09:13 -07:00
Ciro Spaciari
7aa297012b add some extra abort checks into streams (#2430)
* add some checks to avoid UAF

* avoid multiple calls to finalize if endFromJS is called more than once

* fix no-op comment

* mark as requested_end on abort

* remove requested_end from abort
2023-03-19 19:42:45 -07:00
Jarred Sumner
9443cca1bb Reduce number of module scopes created 2023-03-19 19:09:16 -07:00
Jarred Sumner
a83c5c996f [bun test] Implement --rerun-each flag to run each test N times 2023-03-19 19:07:56 -07:00
Jarred Sumner
b053dffca7 Prevent undefined memory access 2023-03-19 19:06:52 -07:00
Jarred Sumner
cb1b881746 Remove -g 2023-03-19 18:11:38 -07:00
Jarred Sumner
9679cdb12c Set -O2 and -fno-rtti 2023-03-19 18:08:46 -07:00
Jarred Sumner
9ce18245d1 Remove usages of port numbers in tests 2023-03-19 16:51:13 -07:00
Jarred Sumner
5a23d17620 Several bug fixes (#2427)
* Fix test

* Fix segfault when unexpected type is passed in `expect().toThrow`

* Fix issues with request constructor

* Don't bother cloning headers when its empty

* woops

* more tests

* fix incorrect test

* Make the fetch error messages better

* Update response.zig

* Fix test that failed on macOS

* Fix test

* Remove extra hash table lookups

* Support running dummy registry directly

cc @alexlamsl

* Update test

* Update test

* fixup

* Workaround crash in test runner

* Fixup test

* Fixup test

* Update os.test.js

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-19 14:08:20 -07:00
Jarred Sumner
8f02ef8294 0 length body is a null stream 2023-03-18 18:03:05 -07:00
Jarred Sumner
e41e884747 Hanging abort test 2023-03-18 17:55:05 -07:00
Jarred Sumner
1b7423412a Make this test more thorough 2023-03-18 16:58:15 -07:00
Jarred Sumner
41c4a66e4a Update UWS
cc @cirospaciari
2023-03-18 16:58:04 -07:00
Jarred Sumner
7216bfe016 Fix out of bounds access
Repro'd in Buffer tests
2023-03-18 16:57:55 -07:00
Jarred Sumner
1c85e94977 Always clear timers in node test harness 2023-03-18 16:36:40 -07:00
Jarred Sumner
25097cd632 [node:net] Fix issue with listen callback firing before it's listening 2023-03-18 16:36:19 -07:00
Jarred Sumner
d9711c64eb Make node-net tests less flaky 2023-03-18 16:35:49 -07:00
Jarred Sumner
96fcecdcc9 [fetch] Make the default body value null when unspecified
This is better aligned with the fetch spec
2023-03-18 16:15:21 -07:00
Jarred Sumner
12c4ed89e3 Fix crash when rendering error page and the server or network is slow 2023-03-18 15:53:19 -07:00
Kamil Ogórek
f1cfa5dfeb docs: Use correct url in the 'Issues' link in README header (#2420) 2023-03-18 03:10:31 -07:00
Dylan Conway
dd9ebe9c50 💅 2023-03-18 00:57:38 -07:00
Dylan Conway
a9c41c67e6 Fix several bugs (#2418)
* utf16 codepoint with replacement character

* Fix test failure with `TextEncoder("ascii')`

* Add missing type

* Fix Response.prototype.bodyUsed and Request.prototype.bodyUsed

* Fix bug with scrypt error not clearing

* Update server.zig

* oopsie
2023-03-18 00:55:05 -07:00
Dylan Conway
1d4cc63154 Fix various fetch/response/request tests (#2416)
* fix most fetch tests, skip a few

* fastGet, toValueGC, and invalid init

* bigint unreachable, range error, log process as process

* remove extra fetch_headers

* remove js_type parameter, check isObject()

* throw invalid mime type error, use enum literal

* switch back to promise rejection

* RangeError pascal case
2023-03-17 17:14:39 -07:00
zhiyuan
c5f2b42649 Feat(test): add toMatch (#2404) 2023-03-17 03:49:41 -07:00
Ashcon Partovi
37293cb26a Remove old Docker workflow 2023-03-16 15:51:54 -07:00
Ashcon Partovi
57255ad565 Remove test Dockerfile 2023-03-16 15:50:28 -07:00
Ashcon Partovi
2dd99a37fd Organize Dockerfiles for official status 2023-03-16 15:49:41 -07:00
Dylan Conway
baf8787fa4 remove trailing comma 2023-03-15 22:06:28 -07:00
Dylan Conway
d5ef247b3b Fix socket tests with connection errors (#2403)
* release pending activity with connection error handler

* unref poll_ref
2023-03-15 22:01:58 -07:00
Jarred Sumner
b66df90b49 Rename expectObjectTypeCount to expectMaxObjectTypeCount 2023-03-15 22:00:53 -07:00
zhiyuan
0befd9ad85 feat(expect): update toBeInstanceOf (#2396)
* feat: update instanceof binding

* fix: according to PR comments
2023-03-15 20:04:55 -07:00
Jarred Sumner
79a05d50ad Make the test work in any timezone 2023-03-15 19:59:09 -07:00
Jarred Sumner
9a5f78fa3b Fixes #2399 2023-03-15 19:18:56 -07:00
Alex Lam S.L
47865fe82a fix gc-related flaky test failures (#2402) 2023-03-15 18:51:22 -07:00
Ashcon Partovi
480567a5af Remove nested tests from harness 2023-03-15 17:45:24 -07:00
Ashcon Partovi
976ef92473 Improve reliability of generated tests 2023-03-15 17:34:23 -07:00
Jarred Sumner
abd34abf08 some test matchers 2023-03-15 16:50:05 -07:00
Dylan Conway
1f811980c3 fix gc import from harness 2023-03-15 16:48:02 -07:00
Jarred Sumner
654ba5b671 Case sensitive 2023-03-15 16:47:40 -07:00
Jarred Sumner
babbfc6404 fix fixture 2023-03-15 16:47:08 -07:00
Jarred Sumner
86891a5d12 ✂️ 2023-03-15 16:43:32 -07:00
Jarred Sumner
9b321c3b06 Make this test more reliable 2023-03-15 16:41:23 -07:00
Jarred Sumner
cb5b08b22e Fix broken import path in test 2023-03-15 15:39:38 -07:00
Dylan Conway
a4741f6fe1 add tsconfig and update path (#2401) 2023-03-15 15:18:31 -07:00
Ciro Spaciari
ac970146b4 allows Bun.serve to listen on IPV6 (#2400) 2023-03-15 14:30:31 -07:00
Alex Lam S.L
acd361855a [install] sanitise against malformed bun.lockb (#2397)
* [install] sanitise against malformed `bun.lockb`

fixes #2392

* fix `prettier` checks in unrelated files
2023-03-15 08:49:52 -07:00
Dylan Conway
b6ec31ba4b don't delete bun-snapshots 2023-03-14 18:33:10 -07:00
Dylan Conway
62acc096f5 test added snapshots in new process 2023-03-14 18:09:36 -07:00
Jarred Sumner
7baaf2065a Update child_process-node.test.js 2023-03-14 18:07:58 -07:00
Dylan Conway
0f434f9457 generate jest snapshots manually 2023-03-14 17:33:32 -07:00
Jarred Sumner
d0522bb6a7 Condense snapshot output 2023-03-14 17:18:09 -07:00
Jarred Sumner
9b066ac6b1 Fix failing test 2023-03-14 17:17:43 -07:00
Dylan Conway
7fcbffa19a calculated class name after name prop 2023-03-14 17:03:52 -07:00
Ashcon Partovi
fc11894235 Skip some more irrelevant tests 2023-03-14 16:52:13 -07:00
Dylan Conway
4792abdb7f Implement toMatchSnapshot() (#2294)
* buggy snapshot

* error output for failed snapshot

* missing first

* hints

* open dir once, better cleanup

* update flag

* truncate on update

* object and class snapshot formatting

* array formatting

* no function name, single item is empty array

* string objects, maps, sets, promise

* avoid using invalid memory

* handle number objects

* handle extending `Number`

* boolean objects

* snapshot tests and test updates

* snapshot format for buffers

* safer snapshot parsing

* property matchers setup

* strings and tests

* generate classes with empty prototype

* optional `propertyMatchers` parameter

* new test folder structure

* strings.eqlLong

* globalObject.throwPretty() and expect.any tests

* add updateSnapshot flag to help

* move snapshot format out of `printErrorlikeObject`

* empty object snapshot format

* separate typed array, remove trailing comma

* use `isCell`, object trailing commas

* handle unicode

* todo for primitive constructors

* switch to `JSC.Node.Syscall.open` and `JSC.Maybe`

* use js parser for snapshot files

* deinit ast, log parse error

* copy/paste most of `exports.ZigConsoleClient`

* remove snapshot option

* remove ordered properties option

* remove snapshot format option from `exports.zig`

* remove extra newlines

* change mode

* update test runner output

* escape backticks faster

* `bunx jest` in temp dir

* remove buffered writer

* add `toMatchSnapshot` to types

* cleanup, switch to `pread`

* cli `--update` flag

* `--update-snapshots`

* remove string object format
2023-03-14 16:50:59 -07:00
Jarred Sumner
76b875e414 Update .prettierignore 2023-03-14 16:42:49 -07:00
Jarred Sumner
eb9e3e9aec Update harness.ts 2023-03-14 16:42:26 -07:00
Ashcon Partovi
851fd039da Ignore irrelevant tests in encoding.test.ts 2023-03-14 16:37:32 -07:00
Jarred Sumner
e1921ff8c5 Fix node test harness 2023-03-14 15:59:55 -07:00
Jarred Sumner
2b5139aa46 Add missing export 2023-03-14 15:58:00 -07:00
Ashcon Partovi
d1d2d842d5 Move tobeInstanceOf() tests to expect.test.ts 2023-03-14 12:19:24 -07:00
Ashcon Partovi
5d89efedec Add tests for AbortSignal, AbortController 2023-03-14 11:54:16 -07:00
Jarred Sumner
80f3bc64ed Fix incorrect test folder 2023-03-14 08:49:03 -07:00
Jarred Sumner
e613b501e2 Fix missing constants export in zlib 2023-03-14 08:49:03 -07:00
zhiyuan
6d50b90070 feat: add toBeInstanceOf matcher in expect (#2389) 2023-03-14 08:30:50 -07:00
Jarred Sumner
27f5012f50 Fix node:https being readonly 2023-03-14 08:16:53 -07:00
Josh Soref
ba994c52b8 Markdown (#2383)
* Fix test/README.md reference

* Apply markdown links
2023-03-14 08:13:47 -07:00
Jarred Sumner
4c38798142 Fix text formatting in .remoteAddress in ServerWebSocket and Socket
Fixes #2387
2023-03-14 07:44:54 -07:00
Ashcon Partovi
f63c26208a Better test coverage for Request and Response 2023-03-13 17:13:24 -07:00
Ciro Spaciari
ac9f8c0e93 feat(net.createServer) and adds socket.connect IPC support (#2337)
* added net.Server

* fix fmt

* fix cast and move test

* fix node-net.tests.ts but breaks server data receive

* fix end and close only emitting when data or pipe was added

* fix socket starting paused

* add echo test

* fix fmt

* fix fmt

* on close if the socket is paused, keep paused until the user resumes it to match node behavior

* resume on connect

* fix getConnections, error on close, make _Handler private and create symbols for SocketServerHandlers

* add path support (IPC)

* fix unix domains support, add connect unix tests

* fix unix socket tests

* emit listening and listening error on next tick

* fix connection flask test

* try fix connect error on macos test

* merge connection and drop tests

* added exclusive option

* fix socket.zig fmt

* fix validation for options and add test for it

* pass prettier fmt
2023-03-13 16:42:35 -07:00
Miles Johnson
8d320d1373 Add install with proto examples. (#2361) 2023-03-13 13:47:57 -07:00
dave caruso
21f9fc828f fix require.resolve with an empty options object #2370 (#2371)
* fix #2370 and import-meta test

* edit test to not allow transpiler optimization
2023-03-12 03:43:32 -07:00
Nicholas
8c91278a00 Update comparison matchers compatibility in docs (#2366) 2023-03-11 08:33:46 -08:00
Haris Sulaiman
d61e90d558 Update file-system-router.md (#2365) 2023-03-11 01:28:33 -08:00
noahmarro
a4fdc1e0d5 removed JSON trailing comma (#2364) 2023-03-11 00:13:00 -08:00
Fran Zekan
cc7d2cf343 Fix link in globals.md (#2362) 2023-03-10 16:47:33 -08:00
Ashcon Partovi
d7e067902f Add more tests for Headers 2023-03-09 12:34:11 -08:00
Ashcon Partovi
c5e76f8bfe Remove websocket test because it's not substantial 2023-03-08 15:37:42 -08:00
Ashcon Partovi
ebb42bb67b Add so many more tests, it's not even funny 2023-03-08 15:36:16 -08:00
Derrick Farris
42edcaae8c fix(node:child_process): fix missing primordial StringPrototypeSlice (#2352) 2023-03-08 14:04:21 -08:00
Ashcon Partovi
ab02ab25b1 Improve test harness 2023-03-08 11:38:09 -08:00
buu
deb7a2b192 docs(react): add the missing props.message to <Component /> (#2347) 2023-03-08 08:16:06 -08:00
Jarred Sumner
0fd9b2421e Fix bug in test runner 2023-03-08 00:18:52 -08:00
Jarred Sumner
f22336b5b5 More spec compliant Blob.prototype.type (#2340)
* Make `Blob.prototype. type` more spec compliant

* Add a few more checks for isNumber()

* Fix `make headers`

* Safer JSValue.isString()

* More tests for blob.slice

* Make `Blob.prototype.type` more spec compliant

* Add isASCII check

* Fix types

* Fix failing type test

* Update blob.zig

* Update blob.zig

* Fix .eql check on empty values

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-08 00:18:14 -08:00
Jarred Sumner
e16053c39e "binary" is an alias of "latin1"
Fixes https://github.com/oven-sh/bun/issues/2110
2023-03-07 22:59:29 -08:00
Alex Lam S.L
e389b6ef19 run bun test after macOS builds (#2343) 2023-03-07 22:30:53 -08:00
Alex Lam S.L
28346e4a39 improve Buffer compatibility with Node.js (#2341)
* improve `Buffer` compatibility with Node.js

* use `memmove()`
allow `encoding` to be `undefined`
2023-03-07 22:29:29 -08:00
Colin McDonnell
95b59ea0ef Document openInEditor 2023-03-07 21:05:44 -08:00
Jarred Sumner
24e90726fd run prettier 2023-03-07 18:44:12 -08:00
Colin McDonnell
cac4012a7e Fix links 2023-03-07 18:43:15 -08:00
Colin McDonnell
6505e5c3a4 Fix typo 2023-03-07 18:07:53 -08:00
Colin McDonnell
9bf4d9b8a2 Improve Benchmarking page, small fixes (#2339)
* Improve benchmarking page

* WIP

* Add typescript instructions to hot

* Document preload in Plugins. Fix loader in plugin types.
2023-03-07 17:44:05 -08:00
Ashcon Partovi
1d2b0bbc98 Add more test harness 2023-03-07 17:02:43 -08:00
pfg
45ddf321b1 fix the wrong thing being incremented in hmr example (#2334) 2023-03-07 13:11:54 -08:00
Ashcon Partovi
e84ff1d8b7 Fix html-rewriter.test.js 2023-03-07 12:28:16 -08:00
Ashcon Partovi
f7e4eb8369 Reorganize tests (#2332) 2023-03-07 12:22:34 -08:00
Ashcon Partovi
36275a44ce Add reference documentation for bun:test (#2327) 2023-03-06 22:50:11 -08:00
Dylan Conway
68e58605b6 throw invalid parameter errors in crypto.scryptSync (#2331)
* throw invalid parameter errors

* remove comptime, add empty buffer function

* remove error_name comptime
2023-03-06 20:00:50 -08:00
Jarred Sumner
0a9cb0e13a Fixes #2323 2023-03-06 19:22:52 -08:00
Alex Lam S.L
b211fb1298 bun test on macOS in GitHub Actions (#2322) 2023-03-06 15:22:42 -08:00
Ashcon Partovi
7f715e15cc Fix docker install command 2023-03-06 14:05:43 -08:00
Derrick Farris
a512bdad8d feat(tty): add some tty.WriteStream methods to process.{stdout, stderr} (#2320)
* feat(stdio): add some `tty.WriteStream` methods

* chore(builtins): add process builtin gen'd code
2023-03-06 13:09:52 -08:00
Alex Lam S.L
3e1d368a27 fix & clean up tests (#2318)
- skip flaky tests when running as `root`
- use `expect().toThrow()`
- clean up temporary files after tests
2023-03-06 12:09:44 -08:00
Alex Lam S.L
993fed51c1 fix missing Blob error messages on Linux (#2315) 2023-03-05 22:45:27 -08:00
Alex Lam S.L
d4bd156d9d support expect().toThrow(/pattern/) (#2314)
- fix time-zone-dependent test failure
2023-03-06 03:33:38 +02:00
Alex Lam S.L
c7bfb3aa3a consider current working directory when resolving relative paths (#2313)
* consider current working directory when resolving relative paths

fixes #2298

* comment test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-05 08:54:00 -08:00
Jarred Sumner
7273713158 Update out of date doc 2023-03-05 08:31:56 -08:00
Alex Lam S.L
67422785cc [install] fix connection error detection (#2307) 2023-03-05 08:09:17 -08:00
Jarred Sumner
42f6b35a5b Test action comment (#2310)
* test

* Update bun-linux-build.yml

* fixup

* Update bun-linux-build.yml

* Use outputs

* set id

* Update bun-linux-build.yml

* Update runner.node.mjs

* Update runner.node.mjs

* wip (will revert)

* Update runner.node.mjs

* Update runner.node.mjs

* Update runner.node.mjs

* Update runner.node.mjs

* Update bun-linux-build.yml

* Update bun-linux-build.yml

* works well enough for now

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-05 00:21:00 -08:00
Jarred Sumner
665486dab8 Run tests 2023-03-04 19:22:20 -08:00
Jarred Sumner
a7cdd49244 Artifact version 2023-03-04 19:01:42 -08:00
Jarred Sumner
0b4e7179b5 dump failing tests to disk 2023-03-04 18:58:10 -08:00
Jarred Sumner
c34b92d16b Update runner.node.mjs 2023-03-04 18:39:40 -08:00
Jarred Sumner
339b811b48 Update runner.node.mjs 2023-03-04 18:36:14 -08:00
Jarred Sumner
adf8bae23c Update runner.node.mjs 2023-03-04 18:32:27 -08:00
Jarred Sumner
03997086ea Update runner.node.mjs 2023-03-04 18:22:48 -08:00
Jarred Sumner
cbfe17d95a Update runner.node.mjs 2023-03-04 18:18:15 -08:00
Jarred Sumner
f915abf3be Update run-test-manually.yml 2023-03-04 18:15:35 -08:00
Jarred Sumner
c6b0e45a52 Update run-test-manually.yml 2023-03-04 18:14:25 -08:00
Jarred Sumner
571ba8ef3f Add node runner 2023-03-04 18:11:54 -08:00
Jarred Sumner
9963e1c3d8 Update runner.ts 2023-03-04 17:52:13 -08:00
Jarred Sumner
9e2f6ef1be chdir 2023-03-04 17:45:50 -08:00
Jarred Sumner
1843a37ebb oops 2023-03-04 17:38:44 -08:00
Jarred Sumner
f333a0c243 Update run-test-manually.yml 2023-03-04 17:35:18 -08:00
Jarred Sumner
ffdc8a19d1 fixup 2023-03-04 17:31:59 -08:00
Jarred Sumner
c1c8d6356f Update run-test-manually.yml 2023-03-04 17:26:24 -08:00
Jarred Sumner
7a8a887d4b Update run-test-manually.yml 2023-03-04 17:25:42 -08:00
Jarred Sumner
5ca4778746 Update run-test-manually.yml 2023-03-04 17:24:41 -08:00
Jarred Sumner
28b80e6433 Update run-test-manually.yml 2023-03-04 17:23:09 -08:00
Jarred Sumner
dcc46b2862 Rename packages/bun-test to packages/bun-internal-test 2023-03-04 17:21:25 -08:00
Jarred Sumner
e4bd4d134d Update run-test-manually.yml 2023-03-04 17:18:39 -08:00
Jarred Sumner
cfa21dc9d0 Update run-test-manually.yml 2023-03-04 17:18:15 -08:00
Jarred Sumner
7dde3d4974 Update run-test-manually.yml 2023-03-04 17:17:18 -08:00
Jarred Sumner
5c6cbb0283 Update run-test-manually.yml 2023-03-04 17:16:30 -08:00
Jarred Sumner
6a1667a5f4 Add a manual test running action 2023-03-04 17:15:54 -08:00
Jarred Sumner
d77bd35556 Delete broken CI action 2023-03-04 17:01:36 -08:00
aab
ddb6624ad1 docs: Fix invalid default port on bun-types docs (#2300) 2023-03-04 06:01:39 -08:00
aab
0eeac32ef4 docs(websocket): change server port on example to default port (#2301)
Current example will fail without explicitly configure the server to use port 8080. Hence, replacing it with default port (3000).
2023-03-04 06:01:04 -08:00
Alex Lam S.L
31447fdc19 [install] use latest tagged version if in range (#2302) 2023-03-04 06:00:38 -08:00
Fran Zekan
8e1d2a5af9 fix(bunx): can't resolve executable for scoped packages (#2293)
Fixes #2292
2023-03-04 14:56:25 +02:00
Derrick Farris
3626845051 fix(node:http): match Node headers casing (lowercase only) (#2288)
* fix(node:http): match Node headers casing (lowercase only)

* fix(JSFetchHeaders): `WTFMove` the ascii string
2023-03-03 21:08:26 -08:00
Jarred Sumner
d8d23f2594 Update Dockerfile 2023-03-03 19:03:47 -08:00
Jarred Sumner
122e6a8860 Update bindings.zig 2023-03-03 18:59:20 -08:00
Jarred Sumner
9f132ea241 BigInt64Array and BigUint64Array are typed arrays too
Fixes #2296
2023-03-03 18:51:52 -08:00
Fran Zekan
7c367ff687 fix(bunx): Show usage when calling bunx without arguments (#2295)
* Make sure to return a helpful error message if no args are passed to bunx

* Add tests for bunx without args
2023-03-03 17:49:32 -08:00
Colin McDonnell
0f8f484e21 Improve types for node:http (#2284)
* Document node:http

* Fix test

* Fix default

* Fix default
2023-03-03 14:24:12 -08:00
Hannes Käufler
7e5dddd2fa Fix broken async test example (#2291) 2023-03-03 12:41:36 -08:00
Jarred Sumner
838b37eed0 Update react-dom-render.bun.js 2023-03-03 04:45:33 -08:00
Jarred Sumner
1f10e25bd9 react-dom/server@next 2023-03-03 04:26:30 -08:00
zhiyuan
18178b4e48 Fix http server req url (#2285)
* fix: http url add search query

* fix: add tests
2023-03-03 02:45:34 -08:00
aab
3456831b82 docs: Fix variable name in transpiler API docs (#2281) 2023-03-02 21:49:12 -08:00
zhiyuan
6a1701fedd Fix update zls version in devcontainer (#2280)
* fix: update zls version for new zig

* fix: rm outdated vscode extension

---------

Co-authored-by: Zhiyuan Guo <zhiyuan.guo@shopee.com>
2023-03-02 19:53:37 -08:00
Jarred Sumner
3318ccfb4a Update Makefile 2023-03-02 19:11:41 -08:00
Jarred Sumner
9388b3f825 Add a zig fmt action (#2277)
* Add a zig fmt action

* add failing file

* Setup prettier better

* Update prettier-fmt.yml

* Fail on error

* Update prettier-fmt.yml

* boop

* boop2

* tar.gz

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* boop

* Update prettier-fmt.yml

* tag

* newlines

* multiline

* fixup

* Update zig-fmt.yml

* update it

* fixup

* both

* w

* Update prettier-fmt.yml

* prettier all the things

* Update package.json

* zig fmt

*  

* bump

* .

* quotes

* fix prettier ignore

* once more

* Update prettier-fmt.yml

* Update fallback.ts

* consistentcy

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-02 19:02:10 -08:00
Colin McDonnell
b469e50351 Add fs/promises tests and migrate fs.test.js to TypeScript (#2279) 2023-03-02 17:36:47 -08:00
Ciro Spaciari
27c3579118 fix(os.tmpdir()) strip trailing slash on *unix machines (#2276)
* fix(os.tmpdir()) strip trailing slash on *unix machines

* make use of strings.withoutTrailingSlash(dir);
2023-03-02 17:33:25 -08:00
Colin McDonnell
3852a52601 Add separate bun-types release CI (#2275)
* Release on every commit

* Remove bun-types publish from bun-release-canary

* Undo formatting changes
2023-03-02 15:34:36 -08:00
Jarred Sumner
1ba007831d Ensure prettier knows where to look 2023-03-02 15:12:00 -08:00
Alex Lam S.L
c0a49e405e add tests for scoped dependency aliasing (#2271) 2023-03-02 13:30:20 -08:00
Ciro Spaciari
78762e8305 fix tmp dir in fetch.tests.js (#2270) 2023-03-02 12:54:59 -08:00
u9g
57fcf8f9ba Remake typings for FFI dlopen/linkSymbols + introduce Pointer type (#2227)
* Give dlopen & linkSymbols typings for exported functions

* Fix lookup table

* Fully change over to Pointer + fix examples

* add back header for typings

* Fix tsc errors

* Run formatter on ffi.d.ts

* Revert args/return type change

* Add type tests for ffi

---------

Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-03-02 12:24:43 -08:00
Ciro Spaciari
c81043bf5e put AbortSignal in WebCore namespace (#2267) 2023-03-02 11:49:32 -08:00
Ciro Spaciari
156c1d4bec only free sink after promises solves (#2268) 2023-03-02 11:48:11 -08:00
Justin Whear
20930849ce Fix Bun.sleepSync to actually use milliseconds (#2242)
* Fix Bun.sleep/sleepSync to actually use milliseconds

`Bun.sleepSync` was accidentally treating its argument as seconds rather than milliseconds as the docs stated.  This is a breaking change in that the function now behaves as documented.  Fixed relevant tests.

* sleepSync: add more argument checking, tests
2023-03-02 09:00:20 -08:00
Derrick Farris
efdf647460 fix(bindings): mark JSCInitialize (#2265) 2023-03-01 22:41:20 -08:00
Colin McDonnell
167de9091a Add page descriptions (#2260)
* Add page descriptions

* Update bun install

* Description tweaks

* Tweaks
2023-03-01 21:45:49 -08:00
Ciro Spaciari
1be834b073 fix bun server segfault with abortsignal (#2261)
* removed redundant tests, fixed server segfault

* fix onRejectStream, safer unassign signal

* fix abort Bun.serve signal.addEventListener on async

* move ctx.signal null check up

* keep original behavior of streams onAborted
2023-03-01 21:40:11 -08:00
Derrick Farris
b9137dbdc8 fix(node:http): match Node http.request() GET/HEAD w/ body (#2262) 2023-03-01 21:28:21 -08:00
Jarred Sumner
706a3e8169 Add a test for https request in node:http 2023-03-01 19:31:16 -08:00
Derrick Farris
7c81d97684 fix(node:http/https): fix passing URL objs to http.request(#2253) (#2258)
* fix(node:http/https): fix passing `URL` objs to `http.request`(#2253)

* fix(node:http): hoist debug env var

* fix(node:http): make body `undefined` when falsy
2023-03-01 18:11:38 -08:00
Jarred Sumner
6bc075e377 Revert "Update clap (#2238)"
This reverts commit 7b9a17f9d7.
2023-03-01 16:17:47 -08:00
Jarred Sumner
ba0706939d Revert "Add -D, --dev flags for bun install (#2240)"
This reverts commit ec20fae57f.
2023-03-01 16:15:55 -08:00
Ashcon Partovi
6e512eda0d Use GitHub action ID instead of SHA for test workflow 2023-03-01 16:07:27 -08:00
Ciro Spaciari
1227a7b995 avoids segfault after aborted onReject in Bun.serve streams (#2256)
* avoids segfault after aborted on reject

* silence err on handleRejectStream after aborted
2023-03-01 15:47:04 -08:00
Ashcon Partovi
ef56961007 Run tests in CI for bun-linux-aarch64 2023-03-01 14:31:56 -08:00
Jarred Sumner
ff51a253e2 Revert spawnSync change
cc @FireTheFox
2023-03-01 14:12:59 -08:00
Jarred Sumner
ee6f54180a Update bindings.zig 2023-03-01 14:12:59 -08:00
Ciro Spaciari
cf8568ccff fix deinit behavior when connection is aborted using ResponseStream and abort event behavior (#2252)
* fix deinit behavior when connection is aborted using ResponseStream

* fix abort handling on stream, and get better tests

* avoid segfault by trying to deinit 2x when aborted

* make tests more reliable

* more reliable onResolveStream after aborted

* add test case for not firing the abort signal
2023-03-01 13:15:52 -08:00
Ciro Spaciari
56ca48ece8 fix Bun.file.arrayBuffer() segmentation fault on empty file #2248 (#2249)
* fix Bun.file.arrayBuffer() segmentation fault on empty file #2248

* cleanner this.iotask check
2023-03-01 13:07:21 -08:00
Colin McDonnell
530cf4caf8 Fix async in sqlite 2023-03-01 12:27:14 -08:00
Justin Whear
9a7333dd5e Forces a specific libdir for c-ares (#2241)
The c-ares build expects lib/libcares.a to exist after cmake, but on my system it was being generated in lib64.  This simply sets the cmake variable so that the target ends up where we expect.
2023-02-28 23:35:04 -08:00
Jarred Sumner
88b5cda109 Make Bun.gc(true) more aggressive 2023-02-28 21:56:28 -08:00
Jarred Sumner
45704a55dc Expose JSC::Options via BUN_JSC_ prefix
Example usage:

BUN_JSC_logGC=1 bun file.js
2023-02-28 21:56:28 -08:00
Jarred Sumner
714b8d10e0 fixup 2023-02-28 21:56:28 -08:00
Colin McDonnell
931f23d360 Fix typecheck 2023-02-28 19:47:46 -08:00
Derrick Farris
1da8045ce4 Fix incorrect Bun version in docs (#2236) 2023-02-28 17:55:18 -08:00
Ciro Spaciari
e512be8c18 just some comments fix (#2237) 2023-02-28 16:56:12 -08:00
Justin Whear
ec20fae57f Add -D, --dev flags for bun install (#2240)
* remove vendored clap

* Update to latest zig-clap

Major changes:
* Instead of vendoring zig-clap and adding changes, this uses Hejsil/zig-clap directly as a submodule
* `cli.zig` and related files have been updated to use new API (no more `flag()` or `option()`)
* A workaround for the Run and Auto commands has been implemented that allows us to use the official upstream

Minor change:
* `-i` now has the long option `--install-fallback`; I didn't spend much time thinking about this name, so suggestions weclome.

* add --development and --optional to bun install

* Add support for `-D`, `--dev` in bun install, fix `--save`
2023-02-28 16:39:06 -08:00
Colin McDonnell
fd19d01583 Document punning 2023-02-28 16:10:51 -08:00
Colin McDonnell
1826abbc65 Add deploy hook workflow 2023-02-28 15:52:15 -08:00
Justin Whear
7b9a17f9d7 Update clap (#2238)
* remove vendored clap

* Update to latest zig-clap

Major changes:
* Instead of vendoring zig-clap and adding changes, this uses Hejsil/zig-clap directly as a submodule
* `cli.zig` and related files have been updated to use new API (no more `flag()` or `option()`)
* A workaround for the Run and Auto commands has been implemented that allows us to use the official upstream

Minor change:
* `-i` now has the long option `--install-fallback`; I didn't spend much time thinking about this name, so suggestions weclome.

* deinit jsBundleArgs
2023-02-28 13:49:05 -08:00
Jarred Sumner
bd91aa8c25 Don't tick the event loop in spawnSync 2023-02-28 00:12:32 -08:00
Jarred Sumner
31389b4906 Make response.body null only when user explicitly passes null/undefined 2023-02-28 00:12:32 -08:00
Jarred Sumner
d93d1013a6 Add back the tests 2023-02-28 00:12:32 -08:00
Jarred Sumner
12d6db0cad Add explicit Null tag to Body
This reverts commit e538bb31ad.
2023-02-28 00:12:32 -08:00
Jarred Sumner
ec7929b251 Implement preload support (like node -r except in a config file) (#2231)
* Update Makefile

* Introduce `preload`

* Add a test

* Support entry points

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-02-28 00:01:21 -08:00
maor-benami
590219966e Update file-io.md (#2230)
should `notreal.type` reflect the overridden value?
2023-02-27 21:08:27 -08:00
maor-benami
0a340d1920 Update file-io.md (#2229)
duplicated word
2023-02-27 21:07:35 -08:00
Jarred Sumner
56488d54d0 Add some more functions to sha bench 2023-02-27 18:30:42 -08:00
Derrick Farris
ae35f17a99 fix(bun:sqlite): fix sqliteDb.run(' ') throwing not an error (#2226) 2023-02-27 18:29:00 -08:00
Ciro Spaciari
062b5565a7 use abort signal on http.ClientRequest (#2222)
* use abort signal on http.ClientRequest

* fix edge case and add test
2023-02-27 20:28:42 -06:00
Ciro Spaciari
4b62745754 add signal on http.Server.listen (#2223)
* add signal on http.Server.listen

* actual call close instead of just stopping the server
2023-02-27 16:24:59 -08:00
Ciro Spaciari
0afb1693d3 fix(fetch.signal) capture socket and shutdown on abort signal (#2143)
* capture socket and shutdown on abort signal

* queue shutdown tasks

* little cleanup

* change shutdown strategy

* use fetchSwapRemove on fetch shutdown

* use fetchSwapRemove on fetch shutdown

* fix formatting, remove unused property
2023-02-27 16:10:03 -08:00
Gaurish Sethia
7a4ac03338 Update module statuses in docs (#2219)
* Add filePath property on MatchedRoute

* Fix #1880 #851

* Fix #1972 as well

* FMC

* Bump querystring-es3

* fix querystring status

* Fix typos in docs

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-02-27 16:08:01 -08:00
Tamas Sule
630d2314b6 Bundler uses incorrect port when dev server is listening on non-default port #1885 (#2191) 2023-02-27 16:06:28 -08:00
Justin Whear
18cce50390 Feat/os.network interfaces (#2142) 2023-02-27 09:58:45 -08:00
Alex Lam S.L
c8be1e9a5d resolve duplicated dependency correctly (#2213) 2023-02-27 09:36:17 -08:00
Rodo Abad
f420e81e85 docs(configuration): update misleading comment (#2205)
The comment was for peer dependencies and not dev dependencies.
2023-02-26 16:37:32 -08:00
Jarred Sumner
5d296f6228 Don't parse shasum twice 2023-02-26 14:53:32 -08:00
Alex Lam S.L
16898a23e6 fix ANSI escape codes piped from stdout to file (#2202) 2023-02-26 12:14:51 -08:00
Jarred Sumner
a55ca48797 Update emitter.mjs 2023-02-26 00:51:42 -08:00
Jarred Sumner
94abc87d6e Add callback to bench 2023-02-26 00:51:42 -08:00
cunzaizhuyi
f89c4c3a0d Update hot.md (#2198) 2023-02-26 00:23:58 -08:00
Jarred Sumner
451ccfd5ef Update bun.zig 2023-02-25 19:06:11 -08:00
Jarred Sumner
2dd484c180 Add more assertions 2023-02-25 18:48:59 -08:00
Jarred Sumner
58685638e2 Use libc memmove 2023-02-25 18:41:37 -08:00
Jarred Sumner
693be3d1c2 Faster eqlCaseInsensitiveASCII 2023-02-25 18:23:01 -08:00
Jarred Sumner
8ba65a4f0b Fixes #2194 (most likely) 2023-02-25 18:23:01 -08:00
Derrick Farris
4149b95543 Update node:http compatibility (#2184) 2023-02-25 16:37:39 -08:00
Alex Lam S.L
38314c02f2 improve bun pm ls (#2192) 2023-02-25 16:37:04 -08:00
Jarred Sumner
f58728ccc7 Call BoringSSL.load() in more places 2023-02-25 15:15:10 -08:00
Jarred Sumner
eb94e5b990 Use mimalloc heap for BoringSSL 2023-02-25 15:01:52 -08:00
Ryan Morey
d4dfb79b72 Fix broken link in developing.md (#2188)
* Fix broken link in developing.md

* Update developing.md
2023-02-25 12:25:16 -06:00
Florian Dreier
45f4353453 fix: Broken link to Node.js support status page (#2183)
Co-authored-by: Derrick Farris <mr.dcfarris@gmail.com>
2023-02-25 10:57:26 -06:00
Charlie Marsh
735d48190d Replace docs/runtime/nodejs with docs/ecosystem/nodejs (#2185)
* Replace docs/runtime/nodejs with docs/ecosystem/nodejs

* Replace a few more usages
2023-02-25 10:54:29 -06:00
Raxit Majithiya
a819e3b723 docs: Fix the link to Node.js ecosystem (#2181) 2023-02-25 09:49:44 -06:00
Tommaso A
8e09b1afff docs: improved language in yaml loader example (#2172)
* docs: improved language in yaml loader example

* docs(api/http): fix typo

* docs(api/spawn): fix typo

* docs(api/transpiler): fix typo
2023-02-25 09:47:11 -06:00
Akash Joshi
cf7a09c0d3 Update index.md (#2182) 2023-02-25 09:45:26 -06:00
Fernando Daciuk
0d5d3e5dfc docs: fix typo in install.md file (#2179) 2023-02-25 04:33:21 -08:00
Jarred Sumner
a931e21f49 make emitter bench work in node 2023-02-25 04:28:23 -08:00
Jarred Sumner
8f67cf75ee Bump WebKit 2023-02-25 04:28:04 -08:00
Jarred Sumner
0a7309c8f2 slight performance improvement to EventEmitter 2023-02-25 03:34:41 -08:00
Jarred Sumner
e6f33d9a52 make the test faster 2023-02-25 03:34:41 -08:00
John Reilly
e38cb9aa6a docs: consistent indentation for post install commands (#2175) 2023-02-25 02:45:48 -08:00
Flo
9b66e03a9b Fix sqlite.md .serialize typo (#2178) 2023-02-25 02:45:27 -08:00
Damian Stasik
31627530b9 docs: use proper CSS property in React examples (#2177) 2023-02-25 02:45:12 -08:00
Brett Bloxom
ae62825319 Docs: Fixes broken link in express docs (#2173)
Fixes broken internal link to nodejs compatability information.
2023-02-25 02:44:58 -08:00
Derrick Farris
1e6faa3815 Update hono.md (#2171) 2023-02-25 02:44:03 -08:00
Dylan Conway
40ebc994f9 remove parameters 2023-02-24 19:12:04 -08:00
Colin McDonnell
1e1b45b4d9 Tweak readme 2023-02-24 18:55:11 -08:00
Colin McDonnell
39fa458895 Fix indents 2023-02-24 18:50:48 -08:00
Colin McDonnell
a6a0ccf6f0 Rearrange ecosystem 2023-02-24 18:03:52 -08:00
Colin McDonnell
0ecd773081 Docs (#2170)
* Add hono and elysia

* Update elysia and add coming soon

* Fix typo

* Add back awesome
2023-02-24 17:48:49 -08:00
Colin McDonnell
c72c2c2338 Fixes (#2168) 2023-02-24 16:40:08 -08:00
Colin McDonnell
1836250542 Docs tweaks (#2160)
* Tweaks

* Add ecosystem. Add bunx. Flesh out install.

* Tweaks

* Add TS to installation

* Tweaks

* New readme

* Write new readme

* Tweak

* Center header

* Bun

* tweaks

* No dollar sign

* Fix links

* Update

* Tweak
2023-02-24 16:33:53 -08:00
Dylan Conway
1d85b5efa8 wiptest -> test 2023-02-24 16:32:04 -08:00
Charlie Marsh
7455f385ec Add missing "that" in modules.md (#2167) 2023-02-24 15:47:04 -08:00
Derrick Farris
4c4da4aae2 fix(zig-build): disable stack probing when building other objs too (#2165) 2023-02-24 15:37:45 -08:00
Charlie Marsh
3264ca991e Fix typo in developing.md (#2166)
* Fix typo in `developing.md`

* Apply suggestions from code review

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-02-24 15:36:12 -08:00
Jarred Sumner
599f63c204 Support macOS 10.15
Fixes #1266
Fixes #1323
Fixes #2154
2023-02-24 15:07:27 -08:00
Alex Lam S.L
26df7ca892 fix compiler_rt linking failure on x86_64 (#2163)
- minor code tweaks
2023-02-24 14:51:20 -08:00
Ciro Spaciari
d33a53deb0 fix(dns) Fix resolve4 and resolve6 behavior (#2144)
* fix https://github.com/oven-sh/bun/issues/2098

* fix last promisifyResolve call

* avoid some functions alloc on dns.exports
2023-02-24 13:56:41 -08:00
Justin Whear
6d5f0167c5 Fix lol_html_rewriter_builder_add_document_content_handlers binding (#2161)
The `lol_html_rewriter_builder_add_document_content_handlers` does not return a
 status code and always succeeds; errors are reported on subsequent calls to `write` or `end`.

Fixes #2024
2023-02-24 13:53:18 -08:00
Dylan Conway
f290b049e8 formatting 2023-02-24 13:34:28 -08:00
Justin Whear
f0e5d54579 Implement os.cpus for Darwin (OS X) (#2115)
* adding experimental Mac implementation os os.cpus

* Simplify cpus interfaces

* remove support for osx 10

* Refactor os.cpus implementation

This commit substantially refactors how the Linux and Darwin implementations of
 `os.cpus`.  The goal is to avoid unnecessary copying and allow broader latitude
 in responding to errors per implementation.

* improved comments

* ensure no buffer overrun

* use PROCESSOR_CPU_LOAD_INFO_COUNT; not sure if this is correct

* oh teh noes

* use sliceTo instead of span

* cpu_ticks are uints
2023-02-24 14:24:04 -06:00
Ciro Spaciari
1c531472c9 fix(body) Make Request/Reponse empty body to be null (#2156)
* make empty nullable

* revert mistake change
2023-02-24 12:22:14 -08:00
Derrick Farris
dc8e845049 fix(zig-build): disable stack probing on x86_64 so no compiler_rt required (#2159) 2023-02-24 12:20:05 -08:00
Ashcon Partovi
08308e2287 Update docs issue template 2023-02-24 09:57:39 -08:00
Jake Boone
f366231bff [docs] Minor syntax correction in test.md (#2153) 2023-02-24 09:56:18 -08:00
Alex Lam S.L
e887a064fb prefer bun.copy() over std.mem.copy() (#2152) 2023-02-24 05:53:26 -08:00
Jarred Sumner
6e4908e517 Update build-id 2023-02-24 00:20:50 -08:00
Dylan Conway
3f04f8d0a6 Upgrade Zig (#2151)
* fixup

* Upgrade Zig

* Remove bad assertion

* strings

* bump

* mode -> optimize

* optimize

* Linux build

* Update bindgen.zig
2023-02-23 23:57:19 -08:00
Ashcon Partovi
b5bdde28ed Fix release workflow 2023-02-23 17:58:56 -08:00
Colin McDonnell
f54300578b Add documentation (#2148)
* Add documentation

* Tweaks

* Fixes

* Rearrange

* Update
2023-02-23 17:13:30 -08:00
Alex Lam S.L
5929daeeae fix illegal memory reference in bun link (#2147) 2023-02-23 16:37:08 -08:00
Jarred Sumner
4122cb0b19 Update ZigGlobalObject.cpp 2023-02-23 16:33:51 -08:00
N0N1m3
e6e4e6b577 Update README.md (#2145) 2023-02-23 14:13:37 -08:00
Ashcon Partovi
dc634d3b30 Use newer version of setup-bun 2023-02-23 10:10:36 -08:00
Ashcon Partovi
2c795e6a3c bun-lambda: Fix 502 when handler name was 'fetch' 2023-02-23 09:54:22 -08:00
Jarred Sumner
17f1649c87 Fix flaky tests 2023-02-22 23:00:55 -08:00
B. Burt
93778a66d8 Update README.md (#2138) 2023-02-23 00:37:59 -06:00
Dylan Conway
9024125d41 uninstall 2023-02-22 21:54:48 -08:00
Derrick Farris
e687a1cf0c feat(undici): add undici.request (#2136)
* wip(undici): get basic requests working

* wip(undici): implement most request params, add tests

* fix(undici): get tests passing for `undici.request`

* test(undici): test headers in `undici.request`
2023-02-22 21:54:05 -08:00
Jarred Sumner
1d592a9489 Add leaky test 2023-02-22 21:50:39 -08:00
Jarred Sumner
17efd52ba3 Add a request.signal test with Bun.serve 2023-02-22 21:50:39 -08:00
Dylan Conway
0cf08c7e7b fix string diff extra newline 2023-02-22 21:35:44 -08:00
Jarred Sumner
0143eccb27 Fix flaky request.signal implementation 2023-02-22 21:29:43 -08:00
Jarred Sumner
583b29632c Make the tests run 2023-02-22 20:35:14 -08:00
Jarred Sumner
16ea1753b4 Fix missing ref() in lazily created signal 2023-02-22 20:16:08 -08:00
Ciro Spaciari
24d624b176 feat(Request.signal) Initial support for signal in Request + fetch and Request + Bun.serve (#2097)
* add fetch abort signal

* get aborted (still segfaults)

* bidings.zig u0 error

* still GC/memory error

* fix start crash

* fix AbortSignal fromJS

* change fromJS to obj.as

* addAbortSignalEventListenner

* handle abort types, and add tests

* fix tests

* add custom reason test

* merge 2 substring methods, use MAKE_STATIC_STRING_IMPL

* fix create AbortError and TimeoutError, move globalThis and exception creation to main thread

* fix tests and rebuild headers

* no need to check with substring reason is already an exception

* no need to check with substring reason is already an exception

* fix dumb error inverting conditions for check reason

* fix custom reason behavior

* Request signal

* remove package-lock.json

* Remove JSC.Strong from Request signal

* fix globals for fetch abort signal

* more tests, clone signal crashs

* fix AbortSignal.toJS

* fix toJS bidings for AbortSignal

* add streaming tests

* fix abortion before connecting

* fix tests and segfault

* add fetch testing abort after finish

* fix signal handler cleanup

* support signal event Bun.serve

* pull tests (failing)

* remove unsupported test

* formating

* fix server Request.signal, fix cleanNativeBindings

* add direct tests

* more pull tests

* fix stream tests

* fix fetch, pending onAborted fix in HTTPServerWritable

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-02-22 19:27:25 -08:00
Dylan Conway
9c5f02e120 newlines for array diff 2023-02-22 19:25:17 -08:00
Jarred Sumner
2a1558e4d6 [breaking] Return Node.js Timeout objects in setTimeout, setInterval, and setImmediate
Fixes #2129 #880
2023-02-22 19:07:27 -08:00
Jarred Sumner
0911bd3af2 Support well known symobls in prototypes for generated classes 2023-02-22 19:04:54 -08:00
Colin McDonnell
9f53a2210c Various type fixes (#2135)
* Simplify serve() types

* Remove baseURI

* Add Bun.serve type tests

* Number env vars

* Make loader optional

* FSRouter doesn't support URL

* Update sqlite types

* Bench

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-02-22 17:45:22 -08:00
Dylan Conway
575291a301 format options with quote strings (#2134) 2023-02-22 15:46:56 -08:00
Jarred Sumner
ac3973016f Fixes #2121 in runtime, but not in tests 2023-02-22 15:29:09 -08:00
Andrea Giammarchi
9b5ddef598 Fix glibc error in alpine Docker image (#2126)
There's an override error with latest alpine and various versions of glibc (including 2.35): https://github.com/sgerrand/alpine-pkg-glibc/issues/185

This MR proposes a workaround (tested on fly.io - it works) so that it's possible to have bun usable with minimal linux dependencies.
2023-02-22 14:26:21 -08:00
Dylan Conway
424045835c wiptest -> test (#2131)
* +/- for object diff, quote more strings

* wiptest -> test

* quote strings fix
2023-02-22 13:55:42 -08:00
Derrick Farris
e8c9c644ca fix(child_process): import from primordials (#2132) 2023-02-22 12:51:17 -08:00
Jarred Sumner
629be18867 Update recommended extensions 2023-02-22 12:44:50 -08:00
Derrick Farris
9be68ac235 fix(child_process): match Node's promisified exec fn (#2128) 2023-02-22 12:39:40 -08:00
Ashcon Partovi
ee60a5c55c Add runtime layer for Bun on AWS Lambda (#2009) 2023-02-22 10:34:16 -08:00
Alex Lam S.L
2dc85c4e45 [install] support SCP-style git dependencies (#2124)
- try HTTPS first before SSH
- improve package name resolution
- improve report messages

fixes #2119
2023-02-21 19:32:35 -08:00
Dylan Conway
88c238dc5c isRegExp() without cpp 2023-02-21 12:18:24 -08:00
Dylan Conway
12b2ad7363 add diffz 2023-02-21 11:52:41 -08:00
Dylan Conway
d786dd6c0b Update test runner output with colors and diffs (#2122)
* add zig-diff

* move diff functions

* toHaveProperty diff for objects

* use formatter

* format labels

* move work to format, diff when it makes sense

* remove comptime, dim equal slices

* order before diff

* line diffs

* add diffz

* switch to diffz

* add `diffLines()` function

* small `prettyFmt()` bug fix

* test runner color output

* update `toBe()` error output

* fix test

* diff method, fix crash

* fix link test

* remove `isRegex`
2023-02-21 11:47:13 -08:00
Derrick Farris
e21796acf5 Add mention of bunx --bun to README (#2114)
* readme(bunx): add info about `bun --bun x`

* chore(formatting): add extension for formatting markdown to avoid a bunch of diffs

* chore(formatting): fix JS formatting in README
2023-02-20 16:46:26 -08:00
Craigory Coppola
f6705a73c7 docs(bunx): add initial documentation to readme (#2106) 2023-02-20 09:08:31 -06:00
Mathias Lafeldt
8bcf64c881 Fix Deno SQLite benchmark (#2112)
Deno has removed direct access to Deno.core:

https://deno.com/blog/v1.30#removal-of-internal-denocore

As a result, a newer version of sqlite3 is required:

https://deno.land/x/sqlite3@0.8.0/src/util.ts?source#L19
2023-02-20 08:52:33 -06:00
Jarred Sumner
bcb7be4909 fixup double export 2023-02-19 19:04:29 -08:00
Jarred Sumner
c006a7f054 Fixes #2108 2023-02-19 16:50:13 -08:00
Micha Reiser
8aa6ee5332 fix: Print URL as object in (#2104) 2023-02-18 15:44:29 -08:00
Carter Snook
963bb54e87 feat(node/os): implement os.machine() (#1378)
* feat(node/os): implement 'os.machine()'

---------

Co-authored-by: Justin Whear <justin.whear+github@gmail.com>
2023-02-18 13:54:59 -08:00
Jarred Sumner
8ff1ff16a5 Update fs.test.js 2023-02-17 22:28:28 -08:00
Alex Lam S.L
7285b9cf75 update bun.lockbs (#2101) 2023-02-17 22:07:02 -08:00
Jarred Sumner
7416672e93 Fix edgecase in some arg parsing in fs module 2023-02-17 22:03:22 -08:00
Jarred Sumner
fa10631c2f use map 2023-02-17 22:00:44 -08:00
Jarred Sumner
1106c8e2f2 More correct filesystem flags parsing 2023-02-17 21:41:58 -08:00
Jarred Sumner
20d9483cd0 Fix issue with express body-parser introduced by our async_hooks polyfill 2023-02-17 18:05:41 -08:00
Jarred Sumner
155e3706b1 Merge branch 'main' of github.com:oven-sh/bun 2023-02-17 17:30:51 -08:00
Jarred Sumner
44cdb1ec8e Fix a couple flaky tests 2023-02-17 17:30:29 -08:00
Alex Lam S.L
d406ca6328 use bun.logger instead of bun.Output (#2099) 2023-02-17 17:06:01 -08:00
Jarred Sumner
e542d9b4ed Fix flaky test 2023-02-17 17:02:55 -08:00
Justin Whear
fb313f210a Fix #1602 (#2066)
* initial test case

* fix segfault from JSObjectMakeDeferredPromise

* pass exceptions through from FetchHeader.createFromJS

* not resolved, but getting close

* implement review suggestions

* fix exception check, tests

* Change how header filtering is accomplished

Previously the FetchHeaders implementation relied on converting names and values
 to IDLByteString to catch non-ASCII data, though not always reliably.  This
 resulted in message-less TypeErrors when headers contained invalid characters.
This commit shifts everything to IDLDOMString for the conversion and relies on
 the actual error checking in FetchHeaders.canWriteHeader, resulting in nicer
 error messages.

To ensure that all headers are written as ASCII/UTF8 rather than UTF16, the
 copyTo bindings function checks the encoding and converts if necessary.

* wrapping up FetchHeader fixes

* since utf8 allocates only do so when needed

* Update src/bun.js/bindings/bindings.cpp

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* WebCore__FetchHeaders__has should return on exception path

* strip out log calls from test

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-02-17 15:54:05 -08:00
Alex Lam S.L
c60d7db178 [install] support git dependencies (#2094) 2023-02-17 14:48:57 -08:00
Justin Whear
d37daeb76a Fix #2005 (#2096) 2023-02-17 14:48:10 -08:00
Alex Lam S.L
79f7d29d03 allow bun add of packages with capital letters (#2095) 2023-02-17 14:46:07 -08:00
Jarred Sumner
56b75dbac3 faster Buffer.byteLength("latin1") 2023-02-16 17:17:29 -08:00
Jarred Sumner
5007c6b218 Support yarn-like "workspaces"."packages": string[] (#2086)
* [workspaces] Support yarn-like `"workspaces"."packages": string[]`

* Add a test

* ✂️

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-02-16 15:06:35 -08:00
Justin Whear
d95404fd7a Implement machine for Linux (#2088) 2023-02-16 15:05:15 -08:00
Justin Whear
7762f3fad7 Fix #1516 (#2089)
`FileSystemFlags.fromJS` was hardcoded to return O_RDONLY when the flag value
 was null or undefined and this caused breakage when used with write functions.
Updated the function to take a `default` argument so that the caller can specify
 a sane default for their use.
2023-02-16 14:01:07 -08:00
Jarred Sumner
e7cd45d0fa Update globals.d.ts 2023-02-16 03:18:01 -08:00
Jarred Sumner
0e688d62f9 Add missing type definition 2023-02-16 03:11:40 -08:00
Jarred Sumner
ce01a31e94 [napi] Fix crash in creating arrays > 8 elements long 2023-02-16 03:11:22 -08:00
Luke Deen Taylor
37fafc208f Clarify and clean up macOS build process (#2087)
* Add missing steps to macOS build

* Remove codesigning step from make dev

ref: https://discord.com/channels/876711213126520882/888839314056839309/1075681626127872030
2023-02-16 00:01:41 -08:00
Jarred Sumner
88a8aa4797 Don't crash on null version string 2023-02-15 19:57:59 -08:00
Jarred Sumner
610eb06ddc Add disabled optimization 2023-02-15 19:31:14 -08:00
Jarred Sumner
49cd122bda Add more logging to napi 2023-02-15 18:08:31 -08:00
Jarred Sumner
1125728097 Incorrect implementation of napi_create_threadsafe_function 2023-02-15 18:08:31 -08:00
Ciro Spaciari
597053ea91 feat(fetch) AbortSignal (#2019)
* add fetch abort signal

* get aborted (still segfaults)

* bidings.zig u0 error

* still GC/memory error

* fix start crash

* fix AbortSignal fromJS

* change fromJS to obj.as

* addAbortSignalEventListenner

* handle abort types, and add tests

* fix tests

* add custom reason test

* merge 2 substring methods, use MAKE_STATIC_STRING_IMPL

* fix create AbortError and TimeoutError, move globalThis and exception creation to main thread

* fix tests and rebuild headers

* no need to check with substring reason is already an exception

* no need to check with substring reason is already an exception

* fix dumb error inverting conditions for check reason

* fix custom reason behavior
2023-02-15 14:20:40 -08:00
Derrick Farris
1c221d33b0 fix(webcrypto): fix ed25519 CryptoKey.algorithm (#2082) 2023-02-15 13:48:11 -08:00
Justin Whear
e67b4e73b5 Fix 2063 (#2079) 2023-02-15 12:58:53 -08:00
Jarred Sumner
95e727162b Make sure we test * in tesconfig
Fixes #540
2023-02-15 03:53:33 -08:00
Jarred Sumner
e860e12be5 don't return an error there 2023-02-15 03:28:35 -08:00
Jarred Sumner
ad0bee532c Fix cast 2023-02-15 03:18:54 -08:00
Jarred Sumner
c7d16d2ed5 ensure we allocate for > 6 arguments 2023-02-15 02:51:44 -08:00
Jarred Sumner
d150a73b9b Update async_hooks.exports.js 2023-02-15 01:41:28 -08:00
Jarred Sumner
0d7cea69c2 workaround prisma's usage of eval("__dirname") 2023-02-15 01:35:02 -08:00
Jarred Sumner
c83eaf09b9 some cleanup 2023-02-15 00:36:18 -08:00
Jarred Sumner
4320108add ED25519 WebCrypto (#1971)
* ed25519

* Register the algorithm

* try this?

* fix(webcrypto): fix ed25519 keypair gen (#1985)

* fix: import and export ed25519 (#2004)

* fix(webcrypto): allow import and export ed25519

* fix(webcrypto): copy exportkey

* fix(webcrypto): fix use after stack free

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Derrick Farris <mr.dcfarris@gmail.com>
2023-02-15 02:11:48 -06:00
Jarred Sumner
d91052516e Fix up async_hooks polyfill 2023-02-14 23:58:05 -08:00
Jarred Sumner
c6ee401bf4 Add temporary polyfill for async_hooks 2023-02-14 23:37:25 -08:00
Jarred Sumner
f19e3d66cb 😷 async_hooks 2023-02-14 22:29:10 -08:00
Alex Lam S.L
e63e3a0ca7 [install] link network-delayed .bin scripts correctly (#2076) 2023-02-14 22:25:50 -08:00
Jarred Sumner
5598ea69f2 don't break esbuild 2023-02-14 22:24:11 -08:00
Jarred Sumner
4dc6bf1b09 Add workaround for tls and worker_threads 2023-02-14 21:56:49 -08:00
Alex Lam S.L
7597e4ad2a [install] improve package.json validation (#2074)
- report error and exit gracefully instead of crashing
2023-02-14 18:04:06 -08:00
Derrick Farris
a80981c966 [WIP] fix(node:fs): export fs.ReadStream and fs.WriteStream (#1798)
* fix(node:fs): export fs.WriteStream and fs.ReadStream

* test(node:fs): add tests for fs.ReadStream and fs.WriteStream

* test(node:fs): prevent opening fd w/o closing

* fix(node:fs): hack ESM export for fs streams to keep lazy loading

* fix(node:fs): = -> ===, fix hasInstance comparison

* test(node:fs): add test that actually checks that re-exported streams work

* fix(fs): eagerly load our slow lazy fns (thanks esm)

* fix(fs): employ @alexlamsl 's constructor w/o new trick on Read/WriteStream
2023-02-14 15:54:50 -08:00
Eric Zhang
6e1a52691a Reject with error when invalid fetch() body (#2047)
* Reject with error when invalid fetch() body

Resolves #2014

* Make sure the test actually throws an exception

* Update fetch error paths to return TypeErrors
2023-02-14 15:43:18 -08:00
Derrick Farris
ef75cd4658 fix(FormData): make String explicit, thanks @dylan-conway (#2065) 2023-02-13 13:04:54 -05:00
Derrick Farris
af3f42e630 fix(FormData): add string literal operator (#2064) 2023-02-13 09:42:49 -08:00
Jarred Sumner
37186f4b0a Add pretty printer for FormData 2023-02-13 04:37:23 -08:00
Michał Warda
f310d7414b Add dynamic port assigning to Bun.serve (#2062) 2023-02-13 03:08:11 -08:00
Derrick Farris
739de2c9cd feat(napi): add napi_get_value_bigint_words (#2061)
* feat(napi): add `napi_get_value_bigint_words`

* fix(napi): handle `napi_get_value_bigint_words` arr too small
2023-02-13 03:07:18 -08:00
Jarred Sumner
0db8cdf4e9 Fixes https://github.com/oven-sh/bun/issues/1456 2023-02-13 03:05:26 -08:00
Jarred Sumner
246db4fed0 Add FormData bench snippet 2023-02-13 01:36:43 -08:00
Jarred Sumner
aa0762e466 Implement FormData (#2051)
* Backport std::forward change

* Implement `FormData`

* Fix io_darwin headers issue

* Implement `Blob` support in FormData

* Add test for file upload

* Fix bug with Blob not reading Content-Type

* Finish implementing FormData

* Add FormData to types

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-02-13 00:50:15 -08:00
Alex Lam S.L
cdbc620104 [install] support git://github.com/ dependencies (#2059) 2023-02-12 14:44:39 -08:00
Ashcon Partovi
bb2aaa36fb Add release signing to release workflow 2023-02-12 13:10:10 -08:00
Jarred Sumner
f4f88701c5 prettier + stop server 2023-02-12 04:41:18 -08:00
Michał Warda
cc214baacf Return server on listen (#2057) 2023-02-12 04:37:28 -08:00
Jarred Sumner
83473c60df Set require("module").globalPaths to empty array
https://github.com/oven-sh/bun/issues/1641#issuecomment-1427017442
2023-02-12 04:35:52 -08:00
Alex Lam S.L
8b4e58f3d2 fix string corruption in FS entry cache (#2055) 2023-02-11 21:35:33 -08:00
Alex Lam S.L
30e82c5df4 fix segfault during non-install script execution (#2045) 2023-02-11 20:40:18 -08:00
Derrick Farris
9eba1e0e3f [WIP] feat(napi): add napi-fatal-exception (#2054)
* feat(napi): add `napi-fatal-exception`

* fix(napi): fatal_exception - add symbol to list, don't optimize away
2023-02-11 20:20:25 -08:00
Jarred Sumner
675529bd0c Fixes https://github.com/oven-sh/bun/issues/2052 2023-02-11 18:11:09 -08:00
Jarred Sumner
5528c0fa47 Backport std::forward change 2023-02-11 17:31:16 -08:00
Justin Whear
c208c4e319 Fix #631: bun add throwing JSON lexer bug (#2041)
* add double-backslash to list of control chars

* update test

* stderr as string
2023-02-10 19:05:32 -08:00
Eric Zhang
10650cced2 Fix PATH setup in macOS setup instructions (#2044)
Very minor! I was just going through the setup instructions and had a bit of a double take.
2023-02-10 15:16:51 -08:00
Jarred Sumner
8466e60e3a update to simdutf 3.2.0
thanks @lemire
2023-02-10 15:02:30 -08:00
Derrick Farris
b1aac9ff6d fix(string_immutable): fix toUTF16Alloc for bindgen w/ use_simdutf = false (#2042) 2023-02-10 13:12:14 -08:00
Ashcon Partovi
ed2e0e1617 Add bun-ecosystem for running tests on npm packages 2023-02-10 09:47:59 -08:00
Alex Lam S.L
09585c4b24 [install] fix duplicate check on peerDependencies (#2039)
fixes #2037
2023-02-10 09:23:40 -08:00
Alex Lam S.L
5181aa54e2 drop ASCII double-scan and other minor clean-ups (#2038) 2023-02-10 09:22:24 -08:00
Jarred Sumner
995880a7ef Enable https://github.com/tc39/proposal-set-methods 2023-02-10 00:27:06 -08:00
Jarred Sumner
941c6ed814 Upgrade WebKit 2023-02-09 21:28:50 -08:00
Alex Lam S.L
6052a3edbd fix assertion failure (#2033) 2023-02-09 21:20:11 -08:00
Alex Lam S.L
6fd7c1921e [install] fix flaky tests (#2032) 2023-02-09 20:35:58 -08:00
Alex Lam S.L
119120d21c [simdutf] workaround validation OOB access (#2031) 2023-02-09 20:26:23 -08:00
Jarred Sumner
4bedd3833d Workaround https://github.com/simdutf/simdutf/issues/213 2023-02-09 19:06:20 -08:00
Alex Lam S.L
2abfa8abd2 [streams] fix byte accounting (#2029)
fixes #1939
2023-02-09 17:04:36 -08:00
Jarred Sumner
ad9d4fb0c4 Add a note about builtins 2023-02-09 14:09:50 -08:00
Jarred Sumner
523b112945 [bun:test] Auto-import jest globals in test files 2023-02-09 00:30:40 -08:00
Jarred Sumner
8aa29040e6 move some code around 2023-02-08 23:09:24 -08:00
Jarred Sumner
a2afb252bf Update CONTRIBUTING.md 2023-02-08 21:46:53 -08:00
Jarred Sumner
abb89f489f Create CONTRIBUTING.md 2023-02-08 20:47:11 -08:00
Jarred Sumner
ddec9e0bf6 handle more cases with util.isError 2023-02-08 17:18:02 -08:00
Jarred Sumner
4962bea4fc cleanup util.test 2023-02-08 17:17:40 -08:00
Alex Lam S.L
f31330d3e2 [install] pick latest tagged version by default (#2016)
* [install] pick `latest` tagged version by default

fixes #1993

* update `package.json` the same way as `npm
2023-02-08 16:28:29 -08:00
Ashcon Partovi
ee8ccca605 Remove test run workflow, for now 2023-02-08 16:11:24 -08:00
Dylan Conway
6fdbb25f9a utf16 to utf8 conversion validation (#2001)
* use replacement character for invalid surrogate pairs

* return index of non-ascii

* non-allocating case

* edge cases

* function rename

* oops

* get length once, index counter
2023-02-08 14:42:10 -08:00
RobViren
b8c0554839 Fix minor version bug for README.md (#2013)
Addresses issue #2012 and corrects the minor version to the current minor version
2023-02-08 14:39:57 -08:00
Alex Lam S.L
18807cef03 [install] assorted fixes & improvements (#2011)
- take `peerDependencies` into account during package placement
- do not recursively resolve `workspaces` (matches `npm`)
- link binaries to non-root packages correctly
- prune empty nodes during dependency tree construction
- support non-standard `workspace:` specifier
2023-02-08 14:37:14 -08:00
Ashcon Partovi
cbc28afd51 Fix 'MissingPackageJSON' in Dockerfile
Closes #2008
2023-02-07 14:33:22 -08:00
Jarred Sumner
7886bce8c8 cleanup 2023-02-07 10:51:55 -08:00
Ashcon Partovi
7cd26232b1 Update docker image in README 2023-02-07 08:46:09 -08:00
Ashcon Partovi
a0b0cd6844 Fix bugs with release script 2023-02-07 04:47:36 -08:00
Jarred Sumner
52f9c3d05e set the type 2023-02-06 23:27:18 -08:00
Jarred Sumner
f947987a2c default not configurable 2023-02-06 23:19:12 -08:00
Jarred Sumner
30106c4f54 Fix failing test in debug mode 2023-02-06 23:19:05 -08:00
Jarred Sumner
34b2d7fe57 Mark things as DontDelete 2023-02-06 23:15:32 -08:00
Jarred Sumner
153834cf5c Throw on process.binding 2023-02-06 23:15:23 -08:00
Jarred Sumner
6aea31f4fc cleanup 2023-02-06 22:41:44 -08:00
Jarred Sumner
0fd144993c Fix test failing on macOS 2023-02-06 22:41:37 -08:00
Jarred Sumner
6699fe14e7 minor cleanup 2023-02-06 22:32:10 -08:00
Jarred Sumner
add7b1101e Add bounds check 2023-02-06 22:29:24 -08:00
Alex Lam S.L
5a19f8434b [WIP] fix corner cases with aliases dependencies (#2000)
* fix corner cases with aliases dependencies

* in-memory convert legacy `bun.lockb`
2023-02-06 22:24:34 -08:00
Jarred Sumner
d5f3bb1c74 Update text-decoder.mjs 2023-02-06 22:13:05 -08:00
Colin McDonnell
08e33fbd42 Fix gaps in types (#2003)
* Add type for clearImmediate

* Expose Crypto class

* Add types for CustomEvent

* Add types for module and exports

* Add types for global

* Add types for DOMException

* Add types for WebAssembly

* Update formatting

* Fix clearTimeout

* Fix formatting

* Update formatting

* Remove log

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-02-06 21:36:36 -08:00
Jarred Sumner
7ddbbc53b4 Make Stat functions fast 2023-02-06 21:18:58 -08:00
Jarred Sumner
85611272c6 bump 2023-02-06 20:35:59 -08:00
Jarred Sumner
c40912b8dc formatting 2023-02-06 20:28:59 -08:00
Jarred Sumner
77974f2a6e tweaks to generator 2023-02-06 19:27:21 -08:00
Jarred Sumner
ed72bee373 Mark some things as not configurable 2023-02-06 19:27:16 -08:00
Jarred Sumner
05f3a22cba Use new bindings for Stat
Fixes #1999
2023-02-06 18:40:52 -08:00
Jarred Sumner
f5df1044d4 Fix build 2023-02-06 18:39:03 -08:00
Jarred Sumner
4329f6ad16 Backport https://github.com/WebKit/WebKit/pull/9713 2023-02-06 14:21:25 -08:00
Michał Warda
fd4668d97c Expose Dirent and Stats (#1998)
* Expose dirent and stats

* Expose Dirent and Stats inside fs

* Add tests for Dirent and Stats exposing

* Automatically generate bindings
2023-02-06 14:15:20 -08:00
Ciro Spaciari
8c4ed963ec fix(uWS:capi) uws_req_set_yield typo and uws_res_override_write_offset (#1996) 2023-02-06 12:59:04 -08:00
Colin McDonnell
e7f9ce47f4 Add types for node:console and node:perf_hooks (#1982)
* Add types for node:console and node:perf_hooks

* Add types for util/types

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-02-06 12:57:19 -08:00
Dylan Conway
98022bec1e mark binding 2023-02-06 12:23:59 -08:00
Cheng Shao
397f559e77 Fix URL of wasi-js (#1997) 2023-02-06 11:35:01 -08:00
Jarred Sumner
ca2e708be1 speed it up a little more 2023-02-05 07:07:35 -08:00
Jarred Sumner
8649136845 substringSharingImpl allocates, do not use 2023-02-05 06:17:21 -08:00
Jarred Sumner
e8fe6dd2f8 Faster Buffer.toString("ascii") 2023-02-05 04:14:16 -08:00
Gaurish Sethia
df126b2f3b Bump querystring-es3 (#1988)
* Add filePath property on MatchedRoute

* Fix #1880 #851

* Fix #1972 as well

* FMC

* Bump querystring-es3

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-02-04 23:15:42 -08:00
Jarred Sumner
7d3a2ca382 Add isDeepStructEqual to node:util 2023-02-04 00:34:03 -08:00
Jarred Sumner
b7c96bfaae Fixes #1978 2023-02-03 22:29:32 -08:00
Justin Whear
a2fd20e5c0 Implement os.cpus() for Linux (#1977)
* Implement os.cpus() for Linux

`os.cpus()` currently returns an empty array for all platforms.  This PR implements full functionality for Linux and has been tested on x86-64.  Other OSes will continue to return an empty array.

Note that Linux on Arm64 may report the CPU model differently; if this is the case the CPU model will currently be reported as "unknown".  As I do not have Arm64 hardware to verify and develop against, a todo has been left in the code.

* resolve issues from review
2023-02-03 18:13:33 -08:00
Jarred Sumner
de613baf81 Support passing Date to Bun.sleep 2023-02-03 17:25:25 -08:00
Jarred Sumner
4590e2b83a Add test for propagating exception 2023-02-03 17:04:47 -08:00
Jarred Sumner
2758e0cab9 Add missing crypto export
Fixes #1984
2023-02-03 16:39:16 -08:00
Jarred Sumner
7d386bf1f1 Introduce await Bun.sleep(ms) 2023-02-03 16:39:16 -08:00
Ashcon Partovi
164cd774f7 Fix types for Array.fromAsync 2023-02-03 16:29:03 -08:00
Gaurish Sethia
6469649f64 Fix/Update Typescript types (#1972)
* Add filePath property on MatchedRoute

* Fix #1880 #851

* Fix #1972 as well

* FMC

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
2023-02-03 14:53:18 -08:00
Jarred Sumner
06d073003d fix require("perf_hooks") 2023-02-03 14:39:07 -08:00
Jarred Sumner
50f1dd61a6 allow other ArrayBufferView in Buffer functions 2023-02-03 14:39:07 -08:00
Jarred Sumner
c64d7933a1 Make it less flaky 2023-02-03 14:39:07 -08:00
Ashcon Partovi
b289b51894 Run tests on pull requests 2023-02-03 11:55:15 -08:00
Ashcon Partovi
17ad8005c7 Run tests on push 2023-02-03 11:54:31 -08:00
Dylan Conway
f572305013 another 2023-02-03 11:50:23 -08:00
Dylan Conway
17b4e5ce08 integers overflowing 2023-02-03 11:47:21 -08:00
Ashcon Partovi
3933ccab3b Attempt to debug annotations 2 2023-02-03 11:35:24 -08:00
Ashcon Partovi
92255d56c8 Attempt to debug annotations 2023-02-03 11:32:01 -08:00
Ashcon Partovi
ba076b0a2b Fix console output in bun wiptest 2023-02-03 11:23:55 -08:00
Ashcon Partovi
10600c4abd Use GitHub action SDK 2023-02-03 11:18:44 -08:00
Ashcon Partovi
d16dffa2b4 Add workflow for bun wiptest 2023-02-03 11:01:22 -08:00
Alex Lam S.L
65e0d10ee0 prettier deltas (#1973) 2023-02-02 17:29:28 -08:00
Colin McDonnell
742368f03a Update/fix types (#1955)
* WIP

* Update types

* Spacing

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-02-02 17:29:10 -08:00
Dylan Conway
242dcea2fe match formatting 2023-02-02 16:15:12 -08:00
Jarred Sumner
198322073d Update string_immutable.zig 2023-02-02 15:58:10 -08:00
Jarred Sumner
b12762af6c Fix stack overflow when console.log'ing strings 2023-02-02 15:56:16 -08:00
Ashcon Partovi
440a21eb1d Add bun-test to run bun wiptest 2023-02-02 11:57:36 -08:00
Jarred Sumner
2bc4858346 export more 2023-02-02 01:34:41 -08:00
Jarred Sumner
26d15cf542 Update build-id 2023-02-02 01:32:39 -08:00
Derrick Farris
8361513acf feat: add http.request (#1959)
* fix(node-test-helpers): make sure to call done with any Errors thrown from wrapped fn

* feat(node:http): add http.request, patch some missing apis for IncomingRequest, etc.

* fix(node:http): FakeSocket -> Socket

* refactor(node:http): only save type from IncomingMessage.options for now

* fix(node:http): remove unnecessary check for UInt8Array

* perf(node:http): globalThis.fetch -> var fetch = Bun.fetch

* todo(node:http): add notes about handling abort/timeout w/ AbortSignal

* refactor(node:http): standardize on FakeSocket and this.#fakeSocket

* fix(node:http): fix headers getter

* fix(node:http): remove _headers

* perf(node:http): make http headers lazy

* fix(node:http): return bool from keepSocketAlive
2023-02-01 19:22:29 -08:00
Dylan Conway
19eca76498 change file extension 2023-02-01 19:06:56 -08:00
Dylan Conway
3c23f9ad57 fix text encoding for utf8 (#1967)
* use character

* replacement character

* also test encoding decoded points

* increase length by 1
2023-02-01 18:48:09 -08:00
Alex Lam S.L
76f3c9c07b resolve duplicate npm dependencies correctly (#1970)
* resolve duplicate npm dependencies correctly

fixes #1952

* modify the correct reference
2023-02-01 18:13:25 -08:00
Ashcon Partovi
3a3bf33335 Stop releasing bun:0 for docker 2023-02-01 15:01:12 -08:00
Ashcon Partovi
69ee87d8e2 Add script to calculate semver for release 2023-02-01 14:53:57 -08:00
Ashcon Partovi
6d0fff4fab Fix version in bun-types canary release 2023-02-01 14:16:48 -08:00
Ashcon Partovi
f7a93fe294 Add bun-types release to canary workflow 2023-02-01 14:13:39 -08:00
Ashcon Partovi
02fc87ea29 Fix bad tag in npm publish 2023-02-01 14:03:00 -08:00
Ashcon Partovi
7f853af6f0 Add bun-types release to workflow 2023-02-01 14:00:31 -08:00
Ashcon Partovi
04309431bb Tweak commit message for robobun 2023-02-01 13:37:36 -08:00
Ashcon Partovi
fc712ead2f Add GPG key to release 2023-02-01 13:28:30 -08:00
Ashcon Partovi
e7f2d34c44 Maybe fix permissions with Homebrew 2023-02-01 12:02:43 -08:00
Ashcon Partovi
0c3e55132c Update homebrew release action 2023-02-01 11:33:08 -08:00
Ashcon Partovi
c69bbbd24f Update trustdb in Docker image 2023-02-01 11:24:12 -08:00
Ashcon Partovi
c0bfdebbd9 Fix grouping for Docker tag 2023-02-01 11:02:39 -08:00
Ashcon Partovi
9c27b5d17f Fix getting SHA for canary 2023-02-01 10:56:08 -08:00
Ashcon Partovi
9973df028b Fix missing dependency from release script 2023-02-01 10:44:19 -08:00
Ashcon Partovi
a0be199b4f Add morningly workflow to release to canary 2023-02-01 10:42:04 -08:00
Ashcon Partovi
73d6c888b9 Add bun-release package 2023-02-01 10:28:01 -08:00
Gaurish Sethia
661fca9cde Add filePath property on MatchedRoute (#1964) 2023-02-01 05:10:48 -08:00
Jarred Sumner
b0803298f9 Update javascript_core_c_api.zig 2023-02-01 00:52:45 -08:00
Jarred Sumner
6318017f84 Update module_loader.zig 2023-02-01 00:52:45 -08:00
Colin McDonnell
696d4b6267 Add target for printing version in makefile (#1957)
* Add get-*

* Add print-version target

* Webkit

---------

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-01-31 20:35:12 -08:00
Jarred Sumner
cc4326cd82 Re-run prettier after changes 2023-01-31 17:55:16 -08:00
Jarred Sumner
c57b37d29f Handle invalid input in clear* timer 2023-01-31 17:52:17 -08:00
Jarred Sumner
b09896f06e mostly fix node:timers 2023-01-31 17:51:36 -08:00
Jarred Sumner
b7816f3175 Fixes fs.constants 2023-01-31 17:20:48 -08:00
Jarred Sumner
0dfde6f8c7 misc wasi fixes + prettier 2023-01-31 15:17:39 -08:00
Jarred Sumner
0788bc1d94 Fixes #1958 2023-01-31 15:05:52 -08:00
Jarred Sumner
28a7f27633 Remove validateion 2023-01-31 15:05:52 -08:00
Jarred Sumner
b2daf3c982 Update build-id 2023-01-31 13:32:24 -08:00
Alex Lam S.L
9598868b57 [bun add] various fixes (#1953) 2023-01-31 13:05:41 -08:00
Devin Rhode
79b32f80fa Use proper casing for tsconfig values (#1644)
See: https://share.cleanshot.com/gcB3gbXJz6RQk5tx559n
2023-01-31 12:22:50 -08:00
Jarred Sumner
4bfdad2981 Fix missing *ms getters in Stat
Related to #1949
2023-01-31 03:04:59 -08:00
Jarred Sumner
3ddd8b2fa5 Fixes #1949 2023-01-31 02:15:00 -08:00
Jarred Sumner
da598a3f37 Update build-id 2023-01-30 23:13:14 -08:00
Jarred Sumner
ad3295668f Fix crash in bun install <package-name> (#1947)
* Fix crash in `bun install <package-name>` when <package-name> already exists

* Prettier

* Add test

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-30 23:12:41 -08:00
Jarred Sumner
f9fd7e9d08 Fixes #1928 2023-01-30 17:39:52 -08:00
Jarred Sumner
8b8bd6a405 remove log that appears in production 2023-01-30 16:14:23 -08:00
Ciro Spaciari
aa10799d8a fix utf16le fill and utf8 partial write of utf16 (#1943) 2023-01-30 12:21:23 -08:00
Alex Lam S.L
ec2c16fefa fix assert() crash (#1941) 2023-01-30 12:20:29 -08:00
Alex Lam S.L
c11bb93552 report invalid input file as test failure (#1938)
fixes #1935
2023-01-30 01:55:32 -08:00
Alex Lam S.L
5c30983d5d [bunx] fix version parsing (#1937) 2023-01-30 00:33:13 -08:00
Jarred Sumner
c9ca729493 Update buffer-create.mjs 2023-01-29 22:59:16 -08:00
Jarred Sumner
9cd9df698a Update child_process-node.test.js 2023-01-29 22:42:03 -08:00
Jarred Sumner
57edf3d91f Skip flaky test 2023-01-29 22:36:29 -08:00
Jarred Sumner
f9b14dc87b Fix flaky websocket test
cc @dylan-conway, the tests should be able to run when cwd is not the test folder
2023-01-29 22:36:24 -08:00
Jarred Sumner
a9bdc0fd44 Add check in test 2023-01-29 22:35:32 -08:00
Jarred Sumner
703bee976b [breaking] Add binaryType option to Bun.connect & Bun.listen
This is a breaking change because the default is `Buffer`, but previously the default was `Uint8Array`. While `Buffer` is a subclass of `Uint8Array`, it still technically is a breaking change because `slice` in `Uint8Array` is not semantically identical to `slice` in `Buffer`

cc @colinhacks, the .d.ts changes I made here aren't great.
2023-01-29 22:33:37 -08:00
Jarred Sumner
eb5105aa09 Update buffer.test.js 2023-01-29 21:27:52 -08:00
Jarred Sumner
552a1940eb [buffer] More passing Node.js tests 2023-01-29 21:27:42 -08:00
Jarred Sumner
98becc3538 Add another latin1 test 2023-01-29 21:23:10 -08:00
Jarred Sumner
49d8316922 Make this more careful 2023-01-29 19:01:47 -08:00
Jarred Sumner
7a496fa41a Fixes #1915 2023-01-29 19:01:39 -08:00
Jarred Sumner
4211f733d1 cleanup 2023-01-29 18:59:14 -08:00
Jarred Sumner
44eec0c5bb Fixes #1933 2023-01-29 16:29:39 -08:00
Agnieszka Stec
ac64d87a1c Update README.md (#1934)
Hi, just caught 2 small typos in Readme
2023-01-29 14:58:26 -08:00
Jarred Sumner
8e52e36846 [buffer] Buffer.byteLength passes Node.js tests 2023-01-29 03:45:58 -08:00
Jarred Sumner
348e72356b Bump WebKit 2023-01-29 01:26:16 -08:00
Jarred Sumner
035d31904a Make the build less flaky 2023-01-29 00:25:10 -08:00
Jarred Sumner
192629c8ca Fix bug in fs.openSync 2023-01-29 00:10:46 -08:00
Jarred Sumner
75181ea1f3 Add helper 2023-01-29 00:10:46 -08:00
Alex Lam S.L
d9c1a18776 [bun add] fix more corner cases (#1930) 2023-01-28 23:54:47 -08:00
Jarred Sumner
f087388ebc Support running WASI (WebAssembly) files using bun run (#1929)
* another micro bench

* Support running WASI

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-28 23:23:26 -08:00
Alex Lam S.L
48eb0c12ab parse git+https://github.com/ as GitHub URLs (#1926)
fixes #1921
2023-01-28 22:14:07 -08:00
Alex Lam S.L
fe389ad5ab normalise bun add package specifiers (#1924)
- fix invalid buffer references

fixes #1920
2023-01-28 21:30:46 -08:00
Alex Lam S.L
97b637a0bc fix corner cases with aliased dependencies (#1927) 2023-01-28 15:49:30 -08:00
u9g
7e9c88aa41 Fix if condition always being true (#1923) 2023-01-28 14:07:57 -08:00
Alex Lam S.L
07258bd559 [WIP] append GitHub package after fully parsed (#1911) 2023-01-28 07:05:28 -08:00
Jarred Sumner
0646efbf30 fix broken build
this breaks the build

@Electroid feel free to re-enable once it works
2023-01-28 05:47:22 -08:00
Jarred Sumner
517bdbdd0c Update bun-linux-build.yml 2023-01-28 05:03:00 -08:00
Jarred Sumner
7f8be29f25 [buffer] Use jsDynamicCast 2023-01-28 04:06:35 -08:00
Jarred Sumner
7db4b90837 commit failing tests 2023-01-28 04:03:45 -08:00
Jarred Sumner
cd48346ca8 use wrapper 2023-01-28 04:03:33 -08:00
Jarred Sumner
1b6a99636d [buffer] Do not throw in getters 2023-01-28 03:52:47 -08:00
Jarred Sumner
188c1f1f75 [buffer] Use length instead of byteLength for non-uint8array and non-arraybuffer 2023-01-28 03:50:32 -08:00
Jarred Sumner
812490e4a4 [buffer] Add missing offset property 2023-01-28 03:49:57 -08:00
Jarred Sumner
128a293901 Make the parser error in bun install look better 2023-01-28 01:09:42 -08:00
Jarred Sumner
6557df2912 Fixes #1913 2023-01-28 01:00:26 -08:00
Jarred Sumner
aff91436c0 Buffer.from doesn't need to be the Buffer constructor 2023-01-27 22:55:46 -08:00
Jarred Sumner
8075158639 Make Bun.dns lazy 2023-01-27 21:58:33 -08:00
Jarred Sumner
2757dc5e1b prettier 2023-01-27 21:56:48 -08:00
Jarred Sumner
cd90342a76 Fix flakiness 2023-01-27 21:56:34 -08:00
Jarred Sumner
8d622ad541 Fixes #1904 2023-01-27 21:39:40 -08:00
Ashcon Partovi
ed5bcf17fc Fix incorrect docker image 2023-01-27 21:21:26 -08:00
Ashcon Partovi
9e46ca19d8 Maybe fix path issue with Docker action 2023-01-27 21:09:12 -08:00
Ashcon Partovi
866646a98e Fix latest later... 2023-01-27 21:00:19 -08:00
Ashcon Partovi
4118c3d0a6 Fix invalid expression, 2nd attempt 2023-01-27 20:56:59 -08:00
Ashcon Partovi
6029a57d0b Fix invalid expression 2023-01-27 20:55:15 -08:00
Ashcon Partovi
309b741aa1 Tweak release scripts 2023-01-27 20:53:09 -08:00
Dylan Conway
d90a00857b fix sentinel mismatches 2023-01-27 20:41:15 -08:00
Ashcon Partovi
5ab2c8e4d6 Remove 'id' from each job 2023-01-27 20:39:02 -08:00
Ashcon Partovi
c194f15418 Fixup docker release 2023-01-27 20:36:13 -08:00
Ashcon Partovi
3be8a4733a Create unified release workflow 2023-01-27 20:31:18 -08:00
Jarred Sumner
3243936d3e less flaky macOS build 2023-01-27 20:25:44 -08:00
Dylan Conway
ec1ba91c38 fix import 2023-01-27 20:00:21 -08:00
Dylan Conway
ea55ef504b ensure name is allocated with toSliceClone (#1917)
* ensure name is allocated with `toSliceClone`

* shorten toSliceClone
2023-01-27 19:38:40 -08:00
Ashcon Partovi
34b643e654 Enable release signing 2023-01-27 19:14:14 -08:00
Jarred Sumner
2e1c7f5597 sentinel 2023-01-27 15:27:04 -08:00
Jarred Sumner
6cccc0d26c Update uws 2023-01-27 15:27:04 -08:00
Dylan Conway
0147647e06 fix sentinel slice 2023-01-27 14:49:12 -08:00
Jarred Sumner
ec010e4930 Update buffer.test.js 2023-01-27 14:47:13 -08:00
Dylan Conway
41af4b43e2 more websocket ref/deref tests 2023-01-27 14:22:03 -08:00
Ciro Spaciari
c1d05cf623 fix(Express.js) Express.js try to use function as hostname (#1914) 2023-01-27 13:33:53 -08:00
Jarred Sumner
724f23c19f Update watcher.zig 2023-01-27 03:54:30 -08:00
Jarred Sumner
ddca89f425 🪦 2023-01-27 03:53:01 -08:00
Jarred Sumner
805e87eeb6 Add a comment 2023-01-27 03:29:53 -08:00
Jarred SUmner
8dc1140f43 Fixup 2023-01-27 02:10:30 -08:00
Jarred Sumner
b136125bb0 [[bun hot]] More reliability improvements to macOS watcher 2023-01-27 01:56:07 -08:00
Jarred Sumner
1da7f5fe5d [bun --hot] Report exceptions in reloaded modules 2023-01-27 00:21:04 -08:00
Jarred Sumner
655c19b07c More reliable bun --hot on macOS 2023-01-27 00:15:56 -08:00
Jarred SUmner
ed5bcfc76b Another test 2023-01-26 23:21:10 -08:00
Jarred SUmner
421588d631 More reliable bun --hot on Linux 2023-01-26 23:04:37 -08:00
Jarred SUmner
915b46768c Remove usages of assumeSentinel 2023-01-26 23:04:37 -08:00
Jarred Sumner
7169bbbb9c Fixes #1907 2023-01-26 19:18:35 -08:00
Ciro Spaciari
6d06606135 Implement all pending resolve methods in DNS (#1903)
* initial steps to create generic resolve

* add soa

* add naptr

* add naptr

* add mx and fix naptr

* add resolve caa

* fix Caa test

* fix toJS from caa

* add resolveNs

* add resolvePtr

* fix resolvePtr test

* add resolveCname

* add resolve rrtype options (still missing ANY)

* fix Naptr

* fix drainPendingCares
2023-01-26 18:36:53 -08:00
Dylan Conway
44c6ce11c4 fix websocket hang (#1910)
* ref and deref, and some tests

* subprocess file

* remove deref

* use flag in test
2023-01-26 18:26:05 -08:00
Ciro Spaciari
b32b0b8736 fix large packages receive for WS client (#1909) 2023-01-26 15:08:34 -08:00
Jarred SUmner
fbe45fcb03 Fix branching on undefined 2023-01-26 05:20:53 -08:00
Jarred SUmner
2c23d8736f valgrind 2023-01-26 04:45:24 -08:00
Jarred SUmner
f14032e4b4 zig changes 2023-01-26 04:43:57 -08:00
Jarred Sumner
d912214719 Upgrade Mimalloc 2023-01-26 04:03:36 -08:00
Jarred Sumner
6c9e7de824 copy paste is harder to mess up than C macros 2023-01-26 04:02:21 -08:00
Alex Lam S.L
f8f989f667 parse package-spec from CLI correctly (#1895)
* parse package-spec from CLI correctly

fixes #861

* copy separately for `UpdateRequest.name`

fix GItHub URL reporting in results

update tests to reflect latest code changes

* better fix for GitHub URL display issue
2023-01-26 01:06:51 -08:00
Jarred Sumner
781df80a90 [bun install] Support verifying GitHub dependencies 2023-01-25 17:26:49 -08:00
Jarred Sumner
b26ff0074d [bun install] Include the resolved version for github dependencies in the hash 2023-01-25 17:26:09 -08:00
Jarred Sumner
0a8e42a4ba [bun install] For github dependencies, write a .bun-tag to mark the revision 2023-01-25 17:25:19 -08:00
Jarred Sumner
b767f9a99a Add a test 2023-01-25 13:43:23 -08:00
Jarred Sumner
f61ee1ed42 Fixes #1902 2023-01-25 13:42:31 -08:00
Jarred Sumner
a8743f0a34 Fix "failed to resolve" 2023-01-25 02:21:40 -08:00
Jarred Sumner
468226fc90 be more careful 2023-01-25 01:52:04 -08:00
Jarred Sumner
9cb1ec2c58 Undo 2023-01-25 01:10:15 -08:00
Jarred Sumner
0f2c9c9ff3 Fix "failed to resolve" bug 🫠 2023-01-25 01:09:42 -08:00
Jarred Sumner
ed2a57fcc9 Add log 2023-01-25 01:09:05 -08:00
Jarred Sumner
81b6878e1a Add assertion 2023-01-24 23:54:42 -08:00
Jarred Sumner
325ffd70e1 one less alloc 2023-01-24 23:53:03 -08:00
Jarred Sumner
d4ce045f9e More careful about the lifetime of alias 2023-01-24 23:51:48 -08:00
Jarred Sumner
7f65875406 Update base.zig 2023-01-24 23:51:02 -08:00
Jarred Sumner
ce38365106 assert defined in development 2023-01-24 23:50:35 -08:00
Jarred Sumner
a3cc911e7a get cache key for github in one pass 2023-01-24 22:27:06 -08:00
Sean Scally
ac7aff1b47 Add FileSystemRouter + React example (#1894) 2023-01-24 19:09:39 -08:00
Ashcon Partovi
d714df48f9 Add npm install -g bun to README 2023-01-24 12:42:37 -08:00
Ashcon Partovi
fb1902448e Add bunx to bin for npm installer 2023-01-24 12:04:35 -08:00
Alex Lam S.L
f43b675200 support GitHub URLs as dependencies (#1875) 2023-01-24 11:57:25 -08:00
Alex Lam S.L
e47fe2ca00 support bun link of scoped packages (#1892) 2023-01-24 11:52:47 -08:00
Ashcon Partovi
2edbf4d0ec Iterate on canary version again 2023-01-24 11:17:08 -08:00
Ashcon Partovi
645b7271f9 npm does not accept '+build' in releases :( 2023-01-24 10:31:04 -08:00
Ashcon Partovi
77c72b3193 Fix detection of canary 2023-01-24 10:06:58 -08:00
Ashcon Partovi
34f97be86a Copy .npmrc to each package 2023-01-24 09:59:58 -08:00
Ashcon Partovi
2ffe77140e Maybe fix .npmrc 2023-01-24 09:38:44 -08:00
Jarred Sumner
be79f6e893 Add failing test 2023-01-24 04:08:24 -08:00
Jarred Sumner
bb5119f7eb Add simple test for bun --hot 2023-01-24 03:30:27 -08:00
Jarred Sumner
6f682c6369 Use more specific function 2023-01-24 03:03:57 -08:00
Jarred Sumner
05b1ce39d2 Faster string length in napi 2023-01-24 03:03:44 -08:00
Jarred Sumner
6cf87d022f [napi] Clean up some string handling code 2023-01-24 02:59:51 -08:00
Jarred Sumner
6c3842f67d Update text-decoder.test.js 2023-01-24 02:31:53 -08:00
Jarred Sumner
63403741ff flaky 2023-01-24 02:31:45 -08:00
Jarred Sumner
66643a5b57 Try resolving against the path without the .js extension 2023-01-24 02:22:16 -08:00
Jarred Sumner
e2f709b2a5 Always allow importing ${package}/package.json 2023-01-24 02:21:43 -08:00
Jarred Sumner
4ea104f5bd Fix canary bug 2023-01-24 00:57:03 -08:00
Jarred Sumner
0fe7f7b6f0 Update README.md 2023-01-24 00:56:39 -08:00
Jarred Sumner
566a2c668b Sort families 2023-01-24 00:14:59 -08:00
Jarred Sumner
ad692495a1 Update class-definitions.ts 2023-01-24 00:14:59 -08:00
Jarred Sumner
2c31beda75 Fixes #1887 2023-01-24 00:14:59 -08:00
Ashcon Partovi
cd684fdad0 Tweak semver for canary again 2023-01-23 23:38:38 -08:00
Ashcon Partovi
ad40eec079 Fix ordering of github action command 2023-01-23 23:10:16 -08:00
Jarred Sumner
90d62ecc24 Add DOMJIT test 2023-01-23 23:08:31 -08:00
Ashcon Partovi
cab1f860e4 npm install bun (#1874)
* Add bun-npm package to publish and install Bun via npm

* Add newlines to patchJson

* Update version to latest release

* Tweak semver for canary

* Use GITHUB_TOKEN

* Prevent bun from being run in slow mode
2023-01-23 23:06:13 -08:00
Jarred Sumner
7ca867f7c8 3x faster Buffer.isBuffer 2023-01-23 22:34:04 -08:00
Jarred Sumner
fe03e90d80 Update build-id 2023-01-23 19:05:41 -08:00
Jarred Sumner
f992942391 Make Object.prototype.toString.call(new Buffer(0)) consistent with Node.js 2023-01-23 18:51:04 -08:00
Jarred Sumner
7420cb1d73 fix test failure in aarch64 and add test for simd code path 2023-01-23 18:03:48 -08:00
Dylan Conway
73961a1494 missing test 2023-01-23 17:39:40 -08:00
Jarred Sumner
d7b5e4b901 Update uws 2023-01-23 16:51:52 -08:00
Jarred Sumner
efc024cfc4 clean up deps 2023-01-23 16:51:48 -08:00
Ciro Spaciari
b3533fb3a8 fix(Buffer) Fix arguments in buffer.write, fix size returned from buffer.write for utf16, fix size calc for base64, fix calc for hex byte size (#1881)
* fix buffer write when more than 2 args are passed

* fix encoding parameter

* better buffer write tests

* fix ucs2/utf8 len return

* fix base64 size in Buffer write

* fix hex encoding size

* actual fix base64

* actual fix base64

* fix segfault

* add fill parameter in Buffer.alloc

* use createUnitialized when alloc have fill parameter, use RETURN_IF_EXCEPTION when static casting

* fix utf16le, ucs2 copying in Buffer write
2023-01-23 16:48:52 -08:00
Dylan Conway
79c0b614ee fix child process node test hang (#1884)
* fix test hang from skipped tests

* add error target
2023-01-23 15:59:45 -08:00
Dylan Conway
f5cda8ff18 fix constructor statement order (#1883)
* leave super alone

* more tests
2023-01-23 15:57:47 -08:00
Jarred Sumner
4570ff7780 [napi] Support defining properties with symbol as names 2023-01-23 15:09:23 -08:00
Jarred Sumner
aa456805dd [napi] Handle missing description in napi_create_symbol 2023-01-23 15:09:18 -08:00
Ciro Spaciari
efd33c398f enhancement(fetch): Merge parameters from request parameter with the second parameter for fetch, move verbose and proxy options to second parameter, add non-TLS tests for fetch (#1862)
* initial steps for proxy-server

* added http_proxy in fetch, move 3rd argument to 3nd argument options, add some non-TLS proxy tests

* some changes

* use only 1 buffer for url+proxy, merge headers on fetch

* initial steps

* change back to override headers instead of merging in fetch

* fix build response.zig

* fix conditional in merged headers on fetch

* updated with main and make proxy disabled if null is passed

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-23 14:38:40 -08:00
Jarred Sumner
9a2b586337 Update bench 2023-01-23 05:22:03 -08:00
Jarred Sumner
df999306c0 ✂️ duplicate code 2023-01-23 05:05:54 -08:00
Jarred Sumner
45296570ce Fix crash in DOMJIT call with empty input 2023-01-23 04:58:42 -08:00
Jarred Sumner
f9306ff815 Update transpiler.zig 2023-01-23 04:09:28 -08:00
Jarred Sumner
c530ead1e0 Add a comment 2023-01-23 04:06:01 -08:00
Jarred Sumner
f6227bf6dd Upgrade Bun.Transpiler to use new bindings 2023-01-23 04:03:01 -08:00
Jarred Sumner
4f84c6bc34 Prepare for plugins 2023-01-23 04:02:06 -08:00
Jarred Sumner
d141783ebd Sort the generated classes list 2023-01-23 04:01:45 -08:00
Jarred Sumner
d4ef935478 [bindings] Add custom field to enable writing one-off C++ in the zig class 2023-01-23 04:01:36 -08:00
Jarred Sumner
bf68df0070 fix unrefOnNextTick 2023-01-22 21:22:46 -08:00
Jarred Sumner
407088f6ab Add tests for async failure 2023-01-22 20:49:21 -08:00
Jarred Sumner
2cce810190 Add a test for zlib (thanks @jiaz) 2023-01-22 19:54:42 -08:00
Jarred Sumner
eaea08ea45 Add one gc test for eventemitter 2023-01-22 19:53:59 -08:00
Jarred Sumner
4dfc09018f [EventEmitter] Preserve this in event emitter callbacks 2023-01-22 19:52:51 -08:00
Jarred Sumner
771db64cbe [bun:sqlite] cleanup run 2023-01-22 19:35:32 -08:00
Jarred Sumner
c6b941d803 Add some more emitters to the benchmark 2023-01-22 19:11:04 -08:00
Jarred Sumner
3492248697 Fixes #1366 2023-01-22 19:09:52 -08:00
Jarred Sumner
bc7192dca1 Add extremely slow node:zlib polyfill 2023-01-22 15:34:21 -08:00
Jarred Sumner
188f472ed2 Update http.exports.js 2023-01-22 14:58:57 -08:00
Jarred Sumner
befd97a891 [node:http] Add address() and fix callback / options parsing 2023-01-22 14:58:22 -08:00
Ciro Spaciari
481dbf7c6e feat(dns) resolveSrv (#1870)
* initial steps

* in-progress resolveSrv support

* fix memory leak and ZigGlobalObject

* promise.resolve + fix priority and weight mistake

* fix node dns export

* little better test

* add poll_ref to keep alive loop in callback for resolveSrv and lookup

* add test for error case in resolveSrc

* fix Bun.dns.resolveSrv type
2023-01-22 14:31:08 -08:00
Jarred Sumner
8d692f1511 Update Makefile 2023-01-22 14:20:44 -08:00
Jarred Sumner
c08b546728 Allow very old CPUs to use Bun (~2008) 2023-01-22 14:20:25 -08:00
Jarred Sumner
fefa4a1623 Add a test for require with a query string 2023-01-22 03:24:42 -08:00
Jarred Sumner
043e408b15 cleanup execArgv a little 2023-01-22 03:24:32 -08:00
Jarred Sumner
9f6658b981 stub out process.stdin.setRawMode 2023-01-22 02:40:18 -08:00
Jarred Sumner
5ce2b8e604 Implement process.execArgv 2023-01-21 23:52:51 -08:00
Jarred Sumner
ee9893c4e1 Zig stdlib change 2023-01-21 23:13:19 -08:00
Jarred Sumner
8b0e2efd6e Bump zig 2023-01-21 23:13:04 -08:00
Jarred Sumner
4d1e977399 Update uws 2023-01-21 23:12:30 -08:00
Jarred Sumner
0ee13892fd Update buffer-create.mjs 2023-01-21 23:11:55 -08:00
Jarred Sumner
99d2d6e607 Support query string parameters in module resolution 2023-01-21 23:11:31 -08:00
Jarred Sumner
a2cfdf0e1c Refactor new Buffer to pass Node.js tests 2023-01-21 23:03:43 -08:00
Jarred Sumner
29a576a167 [Buffer] Add deprecated parent property 2023-01-21 22:55:56 -08:00
Jarred Sumner
6424ce6397 Update .gitignore 2023-01-21 20:54:31 -08:00
Jarred Sumner
fdb9472f88 Fix make headers 2023-01-21 19:42:21 -08:00
Jarred Sumner
17bde9bc86 Fix test failure due to UB 2023-01-21 15:36:51 -08:00
Alex Lam S.L
fd29d05c6a minor clean-ups (#1869)
- use `Lockfile.str()` more
- allow `child-process-stdio.test.js` to run with `bun-debug`
2023-01-21 14:02:22 -08:00
Jarred Sumner
f475802206 Update module_loader.zig 2023-01-21 13:14:02 -08:00
Alex Lam S.L
f0fa760479 [semver] parse ^ & ~ expressions correctly (#1854)
* [semver] parse `^` & `~` expressions correctly

* handle semver ranges correctly against build tags
2023-01-21 04:16:26 -08:00
Jarred Sumner
24e8aa105f Remove UB with semver.String
Thanks @MasterQ32
2023-01-21 04:11:57 -08:00
Jarred Sumner
ed421855d7 [buffer] Add faster path for Uint8Array 2023-01-21 04:06:06 -08:00
Jarred Sumner
627da44527 Handle string subclasses and new String() in new Buffer 2023-01-21 03:14:00 -08:00
Jarred Sumner
9955b74622 Make Buffer.alloc* 3ns faster 2023-01-21 03:13:45 -08:00
Jarred Sumner
d955bfe50f [buffer] Make Buffer.from pass more tests 2023-01-21 03:12:59 -08:00
Dylan Conway
b8648adf87 constructor parameter properties in class expressions (#1867) 2023-01-20 16:24:40 -08:00
Jarred Sumner
ff6fb587f6 Update transpiler.test.js 2023-01-20 04:12:03 -08:00
Jarred Sumner
e361ed4451 Update transpiler.test.js 2023-01-20 04:11:47 -08:00
Dylan Conway
42e9f6e0b1 push super before generated statements (#1856) 2023-01-20 03:25:21 -08:00
Jarred Sumner
e3ed905b0a Clear the errors 2023-01-20 02:19:23 -08:00
Jarred Sumner
224312c014 one less hash table 2023-01-20 02:19:14 -08:00
Jarred Sumner
bdf792adbc Add another test 2023-01-20 00:20:33 -08:00
Jarred Sumner
3c6616a23d fix hanging test 2023-01-20 00:07:11 -08:00
Jarred Sumner
ff7e984f0a Further cleanup buffer encoding 2023-01-20 00:06:46 -08:00
Jarred Sumner
3a100af876 Fixes #1855 2023-01-20 00:06:27 -08:00
Jarred Sumner
7d7b535014 Fix assertion failure with boringssl messages 2023-01-20 00:05:48 -08:00
Jarred Sumner
a98b1751a6 Revert "ignore sighup"
This reverts commit 03ab4be9ee.
2023-01-19 23:59:20 -08:00
Jarred Sumner
03ab4be9ee ignore sighup 2023-01-19 23:56:49 -08:00
Jarred Sumner
f993975ae6 make this code easier to read 2023-01-19 21:00:53 -08:00
Jarred Sumner
53f7bd32d8 Update types.zig 2023-01-19 20:34:06 -08:00
Jarred Sumner
784496b773 Bump 2023-01-19 20:32:38 -08:00
Jarred Sumner
4c0b0e2e8e Fix buffer encoding bug 2023-01-19 20:28:34 -08:00
Alex Lam S.L
bab7e63d7c use String.from() (#1850) 2023-01-19 19:26:10 -08:00
Jarred Sumner
3511a4b5be Bump zig 2023-01-19 19:09:25 -08:00
Jarred Sumner
e485f7bb51 make it packed 2023-01-19 19:05:29 -08:00
Jarred Sumner
795cde6d62 Bugfixes to install (#1848) 2023-01-20 04:55:22 +02:00
Alex Lam S.L
9dfbf57397 repopulate alias_map correctly (#1847) 2023-01-19 16:24:56 -08:00
Jarred Sumner
e04fe64a82 Add a comment 2023-01-19 16:19:15 -08:00
Jarred Sumner
495c70053f Add a debug safety check for UAF in AST nodes 2023-01-19 16:14:56 -08:00
Jarred Sumner
9bcd4952ce Fix UAF when opening workspaces 2023-01-19 16:14:40 -08:00
Jarred Sumner
8745f10cd3 Improve error message when a workspace is not found 2023-01-19 15:48:03 -08:00
Volodymyr Palamar
ac0dab3679 Create new example http-file-extended.ts (#1827)
New code sample with http Range and ETag support
Some code is taken from here https://github.com/gornostay25/svelte-adapter-bun/blob/master/src/sirv.js
2023-01-19 10:35:55 -08:00
Ciro Spaciari
01c97e4033 fix(fetch:HTTP_PROXY) fix support for HTTP_PROXY/HTTPS_PROXY and NO_PROXY in fetch instances (#1844)
* fix response.zig fetch

* use VM bundler env instead of DotEnv.instance

* remove unnecessary import
2023-01-19 10:34:32 -08:00
Alex Lam S.L
cd5f2ab11f parse dependency specifier correctly (#1840) 2023-01-19 06:39:01 -08:00
Alex Lam S.L
61736966ad fix stale references upon Lockfile tree cloning (#1845) 2023-01-19 06:38:08 -08:00
Alex Lam S.L
8bdcded5c1 fix memory reference issues (#1841) 2023-01-19 00:53:01 -08:00
Alex Lam S.L
c0ec61cf16 support npm dependency aliasing (#1837)
* support npm dependency aliasing

* fix variable name
2023-01-18 20:11:52 -08:00
Alex Lam S.L
d4e323b997 add fs.rmdir & friends (#1838) 2023-01-18 19:56:34 -08:00
Jarred Sumner
58cbd6b211 Regenerate lockb 2023-01-18 16:51:18 -08:00
Colin McDonnell
d8d148e3bb Fix/simplify bun-types release (#1836)
* Simplify types release

* Further simplify

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-01-18 16:22:01 -08:00
Jarred Sumner
311185f6d6 Add a test for #1831 2023-01-18 15:00:00 -08:00
Jarred Sumner
7012d2fb74 Fixes #1831 2023-01-18 14:59:39 -08:00
Jarred Sumner
2db04ef9d9 Fix crash with invalid arguments in readdir() 2023-01-18 01:16:13 -08:00
Jarred Sumner
4cb6a34432 Don't report end() because it is inherently flaky 2023-01-18 00:28:53 -08:00
Jarred Sumner
2016e8a0af micro-optimize loading process environment variables 2023-01-18 00:28:19 -08:00
Jarred Sumner
0759530118 opposite 2023-01-18 00:24:52 -08:00
Jarred Sumner
5ed46913c4 Update node-net.test.ts 2023-01-18 00:17:11 -08:00
Jarred Sumner
bd5b90fbf1 Fix lifetime issue in require.resolve 2023-01-17 23:41:17 -08:00
Colin McDonnell
bba4054da3 Use canary in CI (#1823)
* Use canary in CI

* Only publish canary when types change

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-01-17 23:06:26 -08:00
华晨
d16951422b remove redundant allowSyntheticDefaultImports (#1802) 2023-01-17 21:01:55 -08:00
Jarred Sumner
e0eeb1c07e workaround lifetime issue 2023-01-17 20:10:19 -08:00
Ashcon Partovi
216e872801 Add Bun.dns to the README 2023-01-17 18:17:12 -08:00
Ashcon Partovi
6fbf437f50 Fix Bun.dns examples to use array instead of single result 2023-01-17 18:12:49 -08:00
Ciro Spaciari
c00fadab9e feat(cli): Support HTTPS_PROXY, HTTP_PROXY, and NO_PROXY #1440 (#1814)
* WIP: http_proxy implemented, first steps for https_proxy #1440

* add HTTP_PROXY support to upgrade_command and WIP: tunneling

* WIP async handshake, stuck on WANT_READ, try to defer  + check

* create and upgrade with proxy working, TLS and non-TLS to proxy TLS working

* bun install/upgrade/create working with http(s)_proxy #1440

* add NO_PROXY support #1440

* remove commented code and add TODO

* fix getHttpProxy no_proxy

* fix formatting

* refactor catch and getHttpProxy, fix empty strngs in env for proxy

* allow optimization for handleResponseBody
2023-01-17 17:47:01 -08:00
Jarred Sumner
9b260fb18b Allow error instance in process.emitWarning 2023-01-17 17:11:08 -08:00
Colin McDonnell
b931c19ba3 Add types for readline, tls, net (#1817)
* Add readline, tls, net types

* Remove unimplemented methods

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-01-17 16:49:18 -08:00
Jarred Sumner
9e403fc8bf cleanup error message 2023-01-17 16:47:45 -08:00
Jarred Sumner
fd0edd7aa0 [process] Implement process.emitWarning 2023-01-17 16:29:08 -08:00
Jarred Sumner
848658c533 [test] Add helper for bun env 2023-01-17 16:28:49 -08:00
Jarred Sumner
37d2a98331 Update logger.zig 2023-01-17 16:27:52 -08:00
Jarred Sumner
58d1ab02bd [canary] Fix missing .env log 2023-01-17 16:27:48 -08:00
Jarred Sumner
9f0d402a7d [EventEmitter] Fix emitter.off("eventName") 2023-01-17 16:27:21 -08:00
Jarred Sumner
f927567b9f bun install tests shouldn't fail due to terminal colors 2023-01-17 16:00:21 -08:00
Derrick Farris
94ea41a60b fix(readline/promises): new Interface() -> new PromisesInterface() (#1818) 2023-01-17 15:45:15 -08:00
Dylan Conway
8235e59a7f set available 2023-01-17 15:36:19 -08:00
Jarred Sumner
8924c521ba // flaky 2023-01-17 14:00:10 -08:00
Jarred Sumner
69875d86cd Fix console.log printing multiple properties 2023-01-17 13:44:13 -08:00
Jarred Sumner
5bdc923838 dont export twice 2023-01-17 12:53:28 -08:00
Jarred Sumner
25a2962186 Expose tls.connect 2023-01-17 12:52:49 -08:00
Jarred Sumner
c943dbadef Update crypto-hasher.mjs 2023-01-17 12:52:33 -08:00
Jarred Sumner
aacaa9b85d Bun v0.5.0 2023-01-17 00:43:56 -08:00
Jarred Sumner
74992f6f34 make node-redis work 2023-01-17 00:09:04 -08:00
Dylan Conway
12b8416b64 send and disconnect 2023-01-16 23:44:09 -08:00
Jarred Sumner
8a5ff676ea Bump zig 2023-01-16 23:21:52 -08:00
Jarred Sumner
f660f8d22f Make sure the socket keeps the process alive 2023-01-16 21:43:48 -08:00
Jarred Sumner
38cc947621 Don't need to skip these now 2023-01-16 21:42:52 -08:00
Jarred Sumner
0546aa4fd5 Make entire test line dim 2023-01-16 21:37:12 -08:00
Jarred Sumner
b8b7ad4982 [bun:test] Fix dim, fix missing space 2023-01-16 21:35:19 -08:00
Dylan Conway
d21119b347 remove onClose 2023-01-16 21:20:54 -08:00
Jarred Sumner
d3de366c67 Fix some reliability issues with net.connect and Bun.connect on macOS 2023-01-16 21:14:38 -08:00
Jarred Sumner
a1b581621c guess we'll check if it's defined 2023-01-16 20:33:31 -08:00
Jarred Sumner
274ae5de1b [bun install] Make it print workspace: instead of workspace:// 2023-01-16 18:57:04 -08:00
Jarred Sumner
74b0a1939d Fixes https://github.com/oven-sh/bun/issues/1654 2023-01-16 17:48:35 -08:00
Jarred Sumner
6f432e8b7d Remove assertion 2023-01-16 17:38:04 -08:00
Jarred Sumner
a5f7a23307 Update node-dns.exports.js 2023-01-16 17:12:23 -08:00
Jarred Sumner
88a8614abc [node:dns/promises] Fix missing import 2023-01-16 17:11:00 -08:00
Jarred Sumner
b23327c283 [node] Add process.config 2023-01-16 16:47:08 -08:00
Jarred Sumner
c83d56c75d Update c-bindings.cpp 2023-01-16 16:30:33 -08:00
Jarred Sumner
7dd28bbdd9 Fix which returning directories sometimes 2023-01-16 16:28:02 -08:00
Jarred Sumner
d54e23ca33 [napi] Fix potential crash in napi_create_buffer_copy, napi_create_buffer 2023-01-16 15:48:14 -08:00
Jarred Sumner
02f0212cbd [napi] Don't assume function exists
Fixes https://github.com/oven-sh/bun/issues/1808
2023-01-16 15:47:44 -08:00
Jarred Sumner
3484502839 [JS Parser] Don't inline rope strings 2023-01-16 15:21:11 -08:00
Jarred Sumner
a345efd270 Fix getFdPath when /proc/fd is not mounted 2023-01-16 13:59:52 -08:00
Jarred Sumner
30bfb31bce wip 2023-01-16 12:59:48 -08:00
Jarred Sumner
eef0e8c6bf Fix incorrect type 2023-01-16 12:56:16 -08:00
Jarred Sumner
4648131c41 Add missing buffer module exports 2023-01-16 12:49:57 -08:00
Colin McDonnell
b0702ce7b1 Publish bun-types@canary (#1767)
* Publish bun-types@canary

* Get version from bun cli

* Get version from bun cli

* Fixes

* Fixes

* Fixes

* Finalize

* Update names

* Add token

* Remove dryrun

* Switch setup-bun

* Test noncanary publish

* Fix path for GPR

* Use latest

* Remove testing code

* Remove dry run

* Fix paths

* Update bun-types links

* Verbose logging

* Ignore lockfile

* Run install in root

* Remove debug code

* Remove debug code

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-01-16 11:58:57 -08:00
Jarred Sumner
ff3f5aa154 Don't open non-blocking on Linux 2023-01-16 11:22:54 -08:00
Jarred Sumner
91bcfa9cb4 Clean up the test 2023-01-16 11:22:54 -08:00
Jarred Sumner
cf5f9df211 Use a reusable symbol 2023-01-16 11:22:54 -08:00
Alex Lam S.L
9eb4a4ff3a [Response] reject HTTP status code correctly (#1800) 2023-01-15 03:21:34 -08:00
Alex Lam S.L
7932a55870 fix handler reset in Server.reload() (#1801) 2023-01-15 03:19:37 -08:00
Alex Lam S.L
893ec2fb45 fix life-cycle script execution (#1799)
- change current working directory for workspaces
- add `node_modules/.bin` to `PATH` before running
2023-01-14 21:37:16 -08:00
Alex Lam S.L
136014b13a fix bugs (#1795)
- segfault reading stacktrace from `fs/promises` rejections
- `Promise` rejection within `describe()` ends testing abruptly
- `FSSink.write()` incorrectly handles `objectMode`
- `FSSink.write()` throws wrong error codes
2023-01-14 16:50:55 -08:00
Jarred Sumner
d01ec47529 Fixes #1794 2023-01-14 16:37:16 -08:00
Alex Lam S.L
7fa023b8b5 support installation of NPM workspaces (#1764) 2023-01-14 07:14:48 -08:00
Jarred Sumner
aa9e56edfe [bun:test] Always dim skip 2023-01-13 13:13:01 -08:00
Jarred Sumner
88ffdc5fec [TypeScript transpiler] Fix bug with export default class implements 2023-01-13 12:48:10 -08:00
Jarred Sumner
fab42148e4 Skip failing tests 2023-01-13 11:58:44 -08:00
Jarred Sumner
cce380ec37 Fix broken test helper 2023-01-13 11:57:22 -08:00
Jarred SUmner
828fd0cfea Fix debug mode crash 2023-01-13 11:55:46 -08:00
Jarred SUmner
168bb1427f move more things 2023-01-13 11:38:16 -08:00
Jarred SUmner
996ef44c02 Split some things into more files and use bun namespace instead of import more 2023-01-13 11:27:16 -08:00
Jarred Sumner
734b5b89da Add closeActiveConnections option to types 2023-01-12 19:38:27 -08:00
Jarred Sumner
490814aa35 Update serve.test.ts 2023-01-12 19:38:27 -08:00
Jarred Sumner
ffa8913e54 Update tcp-server.test.ts 2023-01-12 19:38:27 -08:00
Jarred Sumner
73e9cd8e06 [Bun.listen] Add flag to close all connections 2023-01-12 19:38:27 -08:00
Jarred Sumner
62cab3c719 [Bun.serve] Add flag to close all connections 2023-01-12 19:38:27 -08:00
Jarred Sumner
d4f1d29393 Fix https websockets 2023-01-12 19:38:27 -08:00
Jarred Sumner
2eac47a123 Upgrade uSockets 2023-01-12 19:38:27 -08:00
Dylan Conway
32f8cb31be set remaining indexes (#1785) 2023-01-12 18:44:45 -08:00
Dylan Conway
297732bbb3 0 initialize remaining indexes in array (#1783)
* 0 initialize remaining indexes in array

* switch to memset
2023-01-12 17:53:58 -08:00
Jarred Sumner
90be254373 fix missing error page 2023-01-12 16:26:25 -08:00
Jarred Sumner
034dd3d03d make the test more resilient 2023-01-12 16:06:28 -08:00
Jarred Sumner
0384d3c558 less flaky 2023-01-12 15:37:03 -08:00
Dylan Conway
00773e15f1 reset string decoder on end (#1782) 2023-01-12 15:13:05 -08:00
Jarred Sumner
126809f20c Add missing type 2023-01-12 15:08:32 -08:00
Dylan Conway
fbe3f5dfb3 pointer type 2023-01-12 13:59:27 -08:00
Jarred Sumner
29b4c84b8c woops 2023-01-12 13:28:10 -08:00
Jarred Sumner
38f9bb96df use .skip() for failing test 2023-01-12 13:20:10 -08:00
Jarred Sumner
6e0ec3248f Add c-ares to make clean 2023-01-12 13:11:05 -08:00
Jarred Sumner
35d0cf910d Uncomment flaky test 2023-01-12 13:11:05 -08:00
Jarred Sumner
5cb84231b2 Reduce amount of cloning 2023-01-12 13:11:05 -08:00
Jarred Sumner
bbd4504954 Add a couple more tests for errors with Bun.file() 2023-01-12 13:11:05 -08:00
Jarred Sumner
a0b44e9873 more careful 2023-01-12 13:11:05 -08:00
Jarred Sumner
90c395bdac Update inspect.test.js 2023-01-12 13:11:05 -08:00
Jarred Sumner
c2b7cadd4f [bindings] Make isObject align with JSC::isObjectType 2023-01-12 13:11:05 -08:00
Jarred Sumner
1a4685213b [bun:test] Support async in expect(async () => { await 1; }).toThrow() 2023-01-12 13:11:05 -08:00
Ethan Burrell
76e6a178e3 fix(bun-test): test title in results (#1753)
* fix(bun-test): test title in results

* missed case

* clean up import

* respond to reviews
2023-01-12 12:49:36 -08:00
Jarred Sumner
bb5efb67ab Update socket.test.ts 2023-01-12 12:08:11 -08:00
Jarred Sumner
4bac561184 missing 2023-01-12 12:07:52 -08:00
Jarred Sumner
edf9757650 Fixes #1772 2023-01-12 10:14:35 -08:00
Jarred Sumner
e65def0f82 Remove extra wrapper 2023-01-11 20:21:41 -08:00
Jarred Sumner
7970704222 end callback 2023-01-11 20:21:41 -08:00
Jarred Sumner
ced3226ffb Update ImportMetaObject.cpp 2023-01-11 20:21:41 -08:00
Jarred SUmner
1c20e05d70 [Bun.serve] Introduce publishToSelf boolean on websocket: {} config object 2023-01-11 17:14:07 -08:00
Colin McDonnell
4969f068f6 Types update (#1761)
* Fix type tests

* Add dns types

* Add node:net types

* Make process.exit return never

* Make ArrayBufferView tighter

* Add types for node:dns

* Remove docs

* Use latest

* Fix CI

* Fix CI

* Stop double trigger

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2023-01-11 14:56:41 -08:00
Jarred Sumner
4a1470d26c require.resolve in the runtime should use CommonJS export conditions 2023-01-11 14:22:31 -08:00
Jarred Sumner
5a3b634982 [breaking] Read the "node" export condition in package.json in Bun's runtime 2023-01-11 14:21:45 -08:00
Jarred Sumner
520ecc21ac [node:net] Hopefully fix unix sockets 2023-01-11 13:58:25 -08:00
Jarred Sumner
8911c398d9 Support socketPath 2023-01-10 20:39:11 -08:00
Jarred Sumner
1738588f38 potentially support tls in some cases 2023-01-10 19:39:34 -08:00
Jarred Sumner
5e60a9363f [node:tls] Stub out just enough to make it load 2023-01-10 19:29:27 -08:00
Jarred Sumner
cd20a84f18 Disable reading the browser field when targeting Bun's runtime (#1763)
* Fix flipped order

* Disable reading `"browser"` field when targeting Bun's runtime in the resolver

* Update resolver.zig

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-10 19:09:53 -08:00
Jarred Sumner
e07dd6194a make it size_t 2023-01-10 19:06:53 -08:00
Jarred Sumner
bcabf31121 Make Buffer mockable 2023-01-10 18:49:26 -08:00
Jarred Sumner
5cb6890fad Fix flipped order 2023-01-10 18:49:26 -08:00
Malcolm Still
f1e6ea2254 Implement Buffer swap16, swap32, swap64 (#1659)
* Implement Buffer swap16, swap32, swap64

* Initial incorporation of feedback

- Use constexpr
- Clean up the indexing
- Check for detached
- Use suggested text for exception text
2023-01-10 18:43:58 -08:00
Jarred Sumner
56a6cf716e [TCPSocket] Add a log for write() 2023-01-10 17:16:42 -08:00
Jarred Sumner
3517ce8e23 Add two tests for fs/promises 2023-01-10 17:16:16 -08:00
Jarred Sumner
3c525b4962 Fix fs:promises 2023-01-10 17:16:08 -08:00
Jarred Sumner
e945be72b4 Add some missing types 2023-01-10 14:36:00 -08:00
Jarred Sumner
3002a7e14f don't call add_server-name if len is not >0 2023-01-10 11:56:02 -08:00
Jarred Sumner
c18165b30f Allow tls: true in Bun.connect 2023-01-10 11:55:42 -08:00
Jarred Sumner
e18863df1b attempt (unsuccessfully) to improve c++ build time 2023-01-10 10:23:11 -08:00
Jarred Sumner
41f23273b0 [js parser] Do not inline regexp literals 2023-01-10 10:23:11 -08:00
Jarred Sumner
e62a422c14 Fix circular dependency in make headers 2023-01-10 10:23:11 -08:00
Jarred Sumner
91f7e6c66d Changes from upgrading webkit 2023-01-10 10:23:11 -08:00
Jarred Sumner
946424cf86 buffer.toString(undefined) should be UTF-8 2023-01-10 10:23:11 -08:00
Alex Lam S.L
270b07e85e use strings.hasPrefixComptime() (#1755) 2023-01-10 05:35:20 -08:00
Jiaji Zhou
b458abedbb Fix missing c-ares dep in dev build (#1754) 2023-01-10 04:51:01 -08:00
Derrick Farris
4ef60da8a9 refactor(readline/promises): re-export readline.promises from readline (#1748)
* refactor(readline/promises): re-export readline.promises from readline/promises

* fix(readline): don't export Readline from `readline`

* perf(readline): return Promise.reject immediately after failed validation
2023-01-09 16:27:56 -08:00
Jarred Sumner
0e7f69f179 Update child_process-node.test.js 2023-01-09 10:37:02 -08:00
Jarred Sumner
84ee02cb4b Update test_command.zig 2023-01-09 10:33:39 -08:00
Jarred Sumner
7a92bf87c8 Add very simple dns test 2023-01-09 10:12:46 -08:00
Jarred Sumner
55c1311aef fixup 2023-01-09 09:42:09 -08:00
Jarred Sumner
beed35e55e Update test_command.zig 2023-01-09 09:40:54 -08:00
Jarred Sumner
5cd37e5e8a Rename 2023-01-09 09:40:46 -08:00
Jarred Sumner
1761379135 Update test_command.zig 2023-01-09 09:13:23 -08:00
Jarred Sumner
30b10d5fb1 [bun:test] Implement test.root configuration option 2023-01-09 08:28:37 -08:00
Jarred Sumner
ca58556c54 Fix frozen IO stuff 2023-01-09 08:26:20 -08:00
Jarred Sumner
a1b2c23671 [bun:test] Implement test.skip 2023-01-09 08:25:39 -08:00
Jarred Sumner
5d60aae3b3 [dns] Fix UAF 2023-01-09 08:21:05 -08:00
Jarred Sumner
2392e48e9d Fixes https://github.com/oven-sh/bun/issues/1533 2023-01-09 03:41:03 -08:00
Jarred Sumner
3386afc0bc Add test for Bun.listen throwing 2023-01-09 03:26:16 -08:00
Jarred Sumner
1a1014525b Make autotick logic more consistent 2023-01-09 03:25:57 -08:00
Jarred Sumner
c30a110641 Cleanup code in expectToThrow 2023-01-09 03:25:41 -08:00
Jarred Sumner
ced6201cb0 Cleanup error handling in Bun.listen 2023-01-09 03:25:06 -08:00
Jarred Sumner
905a3313b5 check for isEmpty or !isCell 2023-01-09 03:18:41 -08:00
Jarred Sumner
f0475e89c5 Handle 0 in isCell 2023-01-09 02:28:14 -08:00
Jarred Sumner
cb75b4799f Add test for expect().toThrow 2023-01-09 00:22:54 -08:00
Jarred Sumner
5f1150442a Revert "lazily create buffer/string slices (#1735)"
This reverts commit e2ed31b7e7.
2023-01-08 23:53:31 -08:00
alexlamsl
94b6ab02c2 fix string encoding detection 2023-01-09 01:08:24 +02:00
Jarred Sumner
631181a503 Add welcome page when viewed from a browser 2023-01-08 07:37:51 -08:00
Jarred Sumner
83a5c9f3da [internal] Fix checking for Error object 2023-01-08 07:37:51 -08:00
Jarred Sumner
791f8ab0a1 [internal] Regenerate code 2023-01-08 07:37:51 -08:00
Jarred Sumner
da11bb4a82 [internal] Fix type casting in Zig bindings 2023-01-08 07:37:51 -08:00
Derrick Farris
94409770de feat(node:readline): add node:readline and node:readline/promises (#1738)
* feat(readline): WIP: add readline

* test(helpers): add deepStrictEqual helper

* feat(readline): add readline & readline/promises to loader

* fix(node:events): emit newListener on new listener added

* feat(readline): finish readline cb interface, add tests

* fix(stream): fix Transform.end()

* fix(node-test-helpers): correct throws behavior, improve how all asserts work

* feat(readline/promises): add readline/promises

* feat(assert): add assert.match

* test(readline): uncomment more tests

* fix(readline): MaxCeil -> MathCeil 🤦

* fix(readline): export promises from node:readline

* fix(readline): temp fix for circular dependency

* cleanup(readline): remove console.log

* fix(readline): change true -> 0 for CommonJS export

* perf(readline): micro-optimizations with some getters

* perf(readline): lazy load isWritable

* cleanup(readline): rename debug flag env var to BUN_JS_DEBUG
2023-01-08 01:49:49 -08:00
Jarred Sumner
c505f172b8 Add napi to process.versions 2023-01-08 01:11:23 -08:00
Jarred Sumner
9972e553a0 Update process.versions 2023-01-08 00:50:38 -08:00
Jarred Sumner
cdbdc55cbf We don't statically link iconv 2023-01-08 00:12:24 -08:00
Jarred Sumner
3f472bd511 cleanup 2023-01-08 00:10:02 -08:00
Jarred Sumner
4eb3067ef5 Workaround macOS issue 2023-01-07 23:58:25 -08:00
Jarred Sumner
3c8701362b Document connectError 2023-01-07 23:47:08 -08:00
Jarred Sumner
fadd1c0152 [Bun.connect] Fix bug where connect() Promise wouldn't reject on a connection error 2023-01-07 23:45:43 -08:00
Jarred Sumner
1e19d59273 Update uws 2023-01-07 23:45:43 -08:00
Jarred SUmner
cfd42c3999 Linux build 2023-01-07 21:48:31 -08:00
Jarred SUmner
98010efefc Change error 2023-01-07 21:41:07 -08:00
Jarred SUmner
020f49dcd6 Return ENOTFOUND instead of ENOTERROR 2023-01-07 21:05:34 -08:00
Jarred SUmner
1e841a7881 Fix segfault on Linux when getaddrinfo returns an error\nSee https://github.com/ziglang/zig/pull/14242 2023-01-07 21:05:34 -08:00
Jarred Sumner
b0d1cc1df7 Mark more things as only mac 2023-01-07 19:55:51 -08:00
Jarred Sumner
0a835ba963 Don't include this symbol on linux 2023-01-07 19:48:49 -08:00
Jarred Sumner
2b1b897375 very simple node:dns implementation
completely untested
2023-01-07 07:59:36 -08:00
Jarred Sumner
87983464d8 Implement DNS module (#1691)
* Boilerplate for DNS stuff

* Add c-ares

* lookup

* make

* Implement dns.lookup

* Create c-ares

* wip

* normalize

* repro

* Revert "repro"

This reverts commit 8b93e0c295b335b8882a9601da47720348549beb.

* Implement macOS `getaddrinfo_async_start`

* embiggen

* Update string_immutable.zig

* Update Makefile

* alright

* Update .gitignore

* Add types

* more ccache

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update bun.d.ts

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-07 07:09:48 -08:00
alexlamsl
d5565ab2cd test BufferList against surrogate pairs 2023-01-07 12:39:32 +02:00
Jarred Sumner
8dc811e4aa Add missing null check
Fixes https://github.com/oven-sh/bun/issues/1739

probably
2023-01-06 16:41:34 -08:00
Ikko Eltociear Ashimine
1e1c817603 fix typo in install.sh (#1737)
infomation -> information
2023-01-06 10:15:32 -08:00
Alex Lam S.L
e2ed31b7e7 lazily create buffer/string slices (#1735) 2023-01-05 19:43:33 -08:00
Jarred Sumner
a7d9f16107 Report unhandled promise rejection on exit and make exit code 1 instead of 0 (#1734)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-05 16:23:45 -08:00
Jarred Sumner
bbbb4835b4 always report rejected promises 2023-01-05 15:08:06 -08:00
Jarred Sumner
f191993c8f Clean up some napi code 2023-01-05 14:49:41 -08:00
Jarred Sumner
994e58b5ea napi_boolean -> napi_number 2023-01-05 14:40:45 -08:00
Jarred Sumner
59639ba654 Fixes #1733 2023-01-05 14:06:27 -08:00
Alex Lam S.L
d22e3ebf9a [socket] fix double-free in finalize() (#1731)
- tidy up `.isEmptyOrUndefinedOrNull()` usage
2023-01-05 13:17:15 -08:00
Jarred Sumner
0873a15a63 Bump 2023-01-05 05:09:34 -08:00
Alex Lam S.L
20718b972e fix onConnectError() error propagation (#1730)
* fix `onConnectError()` error propagation
suppress extraneous logging messages

* Update src/bun.js/api/bun/socket.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2023-01-05 03:31:01 -08:00
Jarred Sumner
a951859c55 Update tcp-echo.bun.ts 2023-01-05 01:38:36 -08:00
Jarred Sumner
3005d9e348 Really fix #1722 2023-01-05 00:24:53 -08:00
Alex Lam S.L
7f96f72d65 improve .toThrow() compatibility with Jest (#1728) 2023-01-05 00:15:04 -08:00
u9g
7550658fab Fix Bun.serve typings (#1714) 2023-01-04 23:54:17 -08:00
Alex Lam S.L
80736043d6 implement expect().toThrow() (#1727)
- fix bugs in `JSBufferList`
- add tests
2023-01-04 22:37:14 -08:00
Jarred Sumner
3b259211df Add SharedBuffer from WebKit to make it easier to import more WebCore stuff 2023-01-04 18:55:16 -08:00
Jarred Sumner
6b777c4b0b Fix default export for stream
cc @alexlamsl
2023-01-04 18:55:16 -08:00
Jarred Sumner
81a6aef771 Fixes #1722 2023-01-04 18:55:16 -08:00
Jarred Sumner
f41bb3fb20 split server/client for tcp echo benchmark to better measure net.Socket perf 2023-01-04 18:55:16 -08:00
Alex Lam S.L
e0557d70e3 buffer list clean-ups (#1721) 2023-01-04 15:32:39 -08:00
Jarred Sumner
e2231f15e8 Support non-classes in node:net (#1712)
* Support non-classes

* Update net.exports.js

* Make it less observable

* Update net.exports.js

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-04 04:06:24 -08:00
Jarred Sumner
a19c7b4304 Fixes #1716 2023-01-04 03:46:56 -08:00
Jarred Sumner
4a328609b9 10x faster new Buffer (#1717)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-01-04 03:30:15 -08:00
Jarred Sumner
021331f154 Update README.md 2023-01-03 20:17:22 -08:00
Jarred Sumner
647093ff73 Add sqlite to vendor 2023-01-03 20:15:57 -08:00
Jarred Sumner
7df50add99 Fixes https://github.com/oven-sh/bun/issues/1695 2023-01-03 19:34:58 -08:00
Jarred Sumner
c99059db9f Remove usages of std.x 2023-01-03 18:53:40 -08:00
Alex Lam S.L
237bcdf99f [streams] speed up Readable in some cases (#1708)
If `encoding` is set, no `Buffer`s would be exposed thus `Uint8Array` can be used directly.

- fix data corruption in `BufferList.concat()`
- fix segfaults in `BufferList.join()`
2023-01-03 16:08:28 -08:00
Jarred Sumner
0b395ca1dc Fix crash in BufferList 2023-01-03 13:47:05 -08:00
Jarred Sumner
c1fd06c56d Create readme.md 2023-01-03 13:11:44 -08:00
Jarred Sumner
f79301c620 Implement napi_make_callback 2023-01-03 12:36:56 -08:00
Jarred Sumner
4ae33cbf45 Stub out missing napi functions and include error message 2023-01-03 10:55:13 -08:00
Jarred Sumner
59655d0587 Fix spec issue with napi_get_typedarray_info 2023-01-03 10:32:22 -08:00
Alex Lam S.L
7edaf736a2 [socket] handle connectError (#1705)
assorted clean-ups & fixes
2023-01-02 23:06:45 -08:00
Jarred Sumner
c770db7d52 make it work with homebrew zig 2023-01-02 22:06:52 -08:00
Jarred Sumner
cbc015d8d8 [internal] allow using zig from more directories 2023-01-02 21:26:02 -08:00
Alex Lam S.L
18e143ae7b fix double resolve() in test (#1707)
also clean up `reject()` values
2023-01-02 20:19:44 -08:00
Jarred Sumner
8989a1883e Support any ArrayBufferView in StringDecoder 2023-01-02 15:39:44 -08:00
Alex Lam S.L
983b747020 implement net.Socket (#1701)
- support TCP sockets for now, i.e. no IPC
- extra features like keep-alive, no-delay etc. are absent due to limitations of uSockets
- fix `jest` to treat `done(nullish)` as success
2023-01-02 14:55:01 -08:00
Jarred Sumner
1ba95a65ee Make the error message for unsupported dependency type a little clearer 2023-01-02 14:52:35 -08:00
Jarred Sumner
54b8cbd972 Add buffer creation snippet 2023-01-02 14:52:06 -08:00
Jarred Sumner
4eb9e8bb5a update node echo bench 2023-01-02 13:23:08 -08:00
Jarred Sumner
80c2da73ef Upgrade simdutf
Thanks @lemire
2023-01-02 12:48:44 -08:00
Jarred Sumner
4ba564dbf1 More instructions 2023-01-02 11:50:47 -08:00
Jarred Sumner
5fc8bc8f04 Update macOS instructions 2023-01-02 11:37:50 -08:00
Jarred Sumner
9fd3b5587b Auto-install and link webkit 2023-01-02 11:29:22 -08:00
Alex Lam S.L
04b00229cf fix lingering process by dead sockets (#1700)
`Bun.listen()` and `Bun.connect()` would create sockets that under certain conditions with calls to `.end()` or `.stop`,  prevents the process from exiting gracefully.
2023-01-02 02:24:23 -08:00
Alex Lam S.L
8a29c64302 clean up Promise handling (#1697) 2023-01-01 16:37:45 -08:00
Jarred Sumner
2345e268bc Fix bun --cwd after https://github.com/ziglang/zig/pull/13596 2023-01-01 13:34:50 -08:00
Jarred Sumner
97066d034d Add workaround 2023-01-01 12:37:00 -08:00
Jarred Sumner
5f24c8a4a8 Bump 2023-01-01 12:04:55 -08:00
Jarred Sumner
96438a4d58 test crypto.randomBytes returns a Buffer 2023-01-01 12:04:49 -08:00
Jarred SUmner
5b3cf8bec5 Handle extremely unlikely edgecase 2023-01-01 07:21:08 -08:00
Jarred SUmner
c02b921983 Fix linux build issue 2023-01-01 07:20:35 -08:00
Jarred SUmner
0b0aadfc5f Make asPromise() and asInternalPromise() safer, but slower 2023-01-01 07:20:16 -08:00
Jarred Sumner
905aff3cfc Update bindings.zig 2023-01-01 02:19:34 -08:00
Jarred Sumner
9e6d39bae6 [internal] Add more bindings 2023-01-01 02:19:11 -08:00
Jarred Sumner
f651f74f9d Add a test for empty chunks 2023-01-01 01:33:13 -08:00
Jarred Sumner
01b908ad64 Workaround https://github.com/ziglang/zig/issues/14148 2023-01-01 01:32:40 -08:00
Gabriel Wu
8a2729e75f Update ffi.d.ts (#1694)
* Update ffi.d.ts

Add "usize" and "callback", which are used in `README` but not typed here.

* Update packages/bun-types/ffi.d.ts

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-12-31 23:03:45 -08:00
Alex Lam S.L
9b3db96308 [jest] fix and improve hooks (#1689)
- wait for async hooks to complete before running tests
- add support for `done(err)` callbacks in hooks

fixes #1688
2022-12-31 03:14:23 -08:00
Jarred Sumner
b86915c808 [internal] Add flag to build bun for editor error reporting 2022-12-30 22:37:28 -08:00
Jarred Sumner
be706fecb4 Make NamesIterator safer 2022-12-30 21:30:23 -08:00
Jarred Sumner
2e94d1a033 Statically link libatomic 2022-12-30 20:27:01 -08:00
Jarred Sumner
fc6c4bbefb Upgrade WebKit 2022-12-30 06:33:22 -08:00
Jarred Sumner
2fc6913085 More assertions 2022-12-30 04:46:52 -08:00
Jarred Sumner
f444e628ca Don't use zig's memcpy function
It is very slow
2022-12-30 04:46:52 -08:00
Jarred Sumner
42be4e52fe Use ArrayBitSet that passes by reference instead of value 2022-12-30 04:46:52 -08:00
Jarred Sumner
385c81d67b Fix crash with bun install <foo> 2022-12-30 04:46:52 -08:00
Jarred SUmner
8b0a7b9fb8 Set CLOXEC 2022-12-29 21:53:04 -08:00
Jarred SUmner
2c5e1cb7d7 Fix broken hardlink installs 2022-12-29 21:46:32 -08:00
Jarred SUmner
7be1e85c6d Fix OOB when deinit'ing dir walker 2022-12-29 21:46:15 -08:00
Jarred Sumner
4cc9a43089 Update globals.d.ts 2022-12-29 06:18:38 -08:00
Jarred Sumner
01c81a5f57 [node:crypto] 50x faster createHash 2022-12-29 06:05:43 -08:00
Jarred Sumner
85eda20587 Introduce Bun.CryptoHasher 2022-12-29 06:05:43 -08:00
Jarred Sumner
940ecd05a8 [node] Implement process.uptime and process.umask 2022-12-29 06:05:43 -08:00
Jarred Sumner
7c8a196c76 [bun-types] Add missing performance.timeOrigin type 2022-12-29 06:05:43 -08:00
Sam Hughes
79a2f81447 Fix devcontainer (tested) (#1680)
zls changes may be imprecise.
2022-12-28 22:53:07 -08:00
Jarred Sumner
0504bb8984 Expose the rest of RIPEMD160 2022-12-28 22:24:37 -08:00
Jarred Sumner
d726a17aca Implement Bun.RIPEMD160
`RIPEMD160` is used by node:crypto.
2022-12-28 22:20:15 -08:00
Jarred Sumner
33e93e6789 Use BoringSSL with patches from Electron 2022-12-28 22:18:16 -08:00
Jarred Sumner
c8da2618ee ✂️ 2022-12-28 19:28:12 -08:00
Jarred Sumner
8e9af05d6a [WebSocket] Allow http: and https: protocols
See https://github.com/whatwg/websockets/pull/37
2022-12-28 18:41:07 -08:00
Jarred Sumner
ba0b5baee4 [WebSocket] Implement headers support
Fixes https://github.com/oven-sh/bun/issues/1676
2022-12-28 18:39:19 -08:00
Jarred Sumner
384a9cda5e Fix devcontainer (probably) 2022-12-28 18:00:03 -08:00
Jarred Sumner
97ec866f85 Fixes https://github.com/oven-sh/bun/issues/1677 2022-12-28 17:00:04 -08:00
Jarred Sumner
ef3c9b7c6d Workaround https://github.com/ziglang/zig/issues/14099 2022-12-28 06:09:14 -08:00
Jarred Sumner
6260aaac5f Add crypto module from browserify 2022-12-28 05:14:40 -08:00
Jarred Sumner
d3dab09690 Statically link atomic 2022-12-28 05:10:16 -08:00
Jarred Sumner
f8f8353108 Always bundle compiler rt 2022-12-28 05:09:51 -08:00
Jarred Sumner
66234d9d57 Move some code up 2022-12-28 04:24:07 -08:00
Jarred Sumner
3d60b870ee Fix ReadableStream.pipeTo 2022-12-28 03:43:39 -08:00
Jarred Sumner
3ae23091c6 Fix platform setting 2022-12-28 02:16:34 -08:00
Alex Lam S.L
092b86321c log object string correctly (#1674)
use `Symbol.toStringTag` of the object or that of its `.prototype`

fixes #1584
2022-12-28 01:21:21 -08:00
Jarred Sumner
da07811427 Fix build issue on latest zig 2022-12-28 01:05:24 -08:00
Jarred Sumner
c0dd284136 Upgrade to latest Zig (#1610)
* @min and @max

* builtins and some trivial ones

* Most of them

* more

* more!

* More Progress

* wip

* Update tagged_pointer.zig

* Update http_client_async.zig

* Most of the iterable dir changes

* alright

* Remove usages of deprecated formatters

* 📷

* fmt

* Update shimmer.zig

* wip

* wip

* wip

* progress

* more

* Latest

* stuck on error

* latest

* workaround stage2

* wip

* Update string_immutable.zig

* wip

* Migrate `Dirent` and `require("fs')` to use JSC<>Zig bindings

* Fix build errors

* Fixup most of the test failures

* Fix `make headers`

* Fix "outside package path" error

* Fixup aligned alloc

* Add missing file

* linux

* More linux fixes

* use latest peechy

* Fix transpiler test failure

* Forgot about these

* Fixup test failure

* Update node-timers.test.ts

* [node:htt] Fix `undefined is not an object` error

Fixes https://github.com/oven-sh/bun/issues/1618

* Update http.exports.js

* Make this test less flaky

* fix hashes

* Fix hex formatting and zls issues

* Download zig version

* Update Dockerfile

* Update Dockerfile

* Update uws

* Update Dockerfile

* Set llvm version

* Update README.md

* Update uws

* Update Dockerfile

* Update io_linux.zig

* Update bun.zig

* Log output

* workaround strange @cInclude error

* Make ffi tests better

* Don't use cImport

* Update c.zig

* Update c-bindings.cpp

* call setOutputDir

* Update Dockerfile

* Use a longer name

* latest

* Update serve.test.ts

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Veikka Tuominen <git@vexu.eu>
2022-12-28 00:51:22 -08:00
Alex Lam S.L
504972fa5d [bundler] fix logging verbosity (#1671)
fixes #1666
2022-12-27 16:36:26 -08:00
Alex Lam S.L
f78f423d0b emit 206 Partial Content only for partial response (#1670)
fixes #1668
2022-12-27 16:34:33 -08:00
Alex Lam S.L
c4ca4c70d1 [install] specify auth-type (#1667) 2022-12-26 15:15:58 -08:00
Alex Lam S.L
d94b96d9f4 [install] use specified base URL as default fallback within scopes (#1665) 2022-12-26 00:25:59 -08:00
Alex Lam S.L
74251fbf5e [install] use default URL when only auth token is specified (#1664)
Previously it would default to `http://localhost/` which was inconsistent with the case sans token.

Use official `npm` registry as fallback in both cases.
2022-12-25 21:20:35 -08:00
Dylan Conway
08a738c6c8 always more packages at new depth 2022-12-23 15:21:03 -08:00
Dylan Conway
cc369ad9d0 fix bun pm ls connectors when node_modules is last 2022-12-23 15:13:09 -08:00
Jarred Sumner
a94bba6399 darken 2022-12-23 01:16:12 -08:00
Jarred Sumner
f6a62c01bf Cherry-pick #1638
Closes #1638
2022-12-23 00:59:41 -08:00
Jarred Sumner
979074de2b Prevent running compinit twice 2022-12-23 00:50:19 -08:00
Jarred Sumner
958504296d Disable optimization 2022-12-23 00:48:24 -08:00
Dylan Conway
75a3c25ff8 add node_modules to bin path 2022-12-23 00:04:51 -08:00
Jarred Sumner
3da9c728d6 Make bun pm ls only show top-level by default 2022-12-22 23:38:56 -08:00
Jarred Sumner
85733abe79 npx -> bunx 2022-12-22 23:37:18 -08:00
Jarred Sumner
89625c0cc8 add rome 2022-12-22 19:49:56 -08:00
Alex Lam S.L
2d881b88f9 [install] fix remaining corner cases with dependency resolution (#1649) 2022-12-22 19:42:06 -08:00
Colin McDonnell
9ef33312b1 Update bench (#1648)
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2022-12-22 19:02:59 -08:00
Dylan Conway
1d58da3cb3 fix finding package bin after install 2022-12-22 18:54:02 -08:00
Dylan Conway
c0dee9adf1 pass callback to super _construct if possible 2022-12-22 16:10:58 -08:00
Dylan Conway
afd66c62ff fix createReadStream hang
highWaterMark test not working correctly but this prevents createReadStream from hanging
2022-12-22 15:58:17 -08:00
Alex Lam S.L
57da449442 [install] avoid dependency conflicts between siblings (#1647)
- consider `peerDependencies` when hoisting packages
2022-12-22 15:19:21 -08:00
Alex Lam S.L
62d1e46b92 fix bun install dependency resolution (#1643)
- avoid conflicts due to hoisted placement when parent and child depends on different versions of the same package
2022-12-22 03:17:33 -08:00
Jarred Sumner
b988a63429 don't log for ctrl + c 2022-12-22 00:25:31 -08:00
Jarred Sumner
e322dfb589 woops 2022-12-21 22:28:59 -08:00
Jarred Sumner
989ac717fc Update launch.json 2022-12-21 14:57:04 -08:00
Jarred Sumner
3ceb2655d8 Add test for stat() 2022-12-21 14:57:04 -08:00
Jarred Sumner
8c3a2ff6cc Fix throw 2022-12-21 14:57:04 -08:00
Jarred Sumner
b9d143c99d Add section about --bun 2022-12-21 14:57:04 -08:00
Jarred Sumner
f40d6bd94d Bun v0.4.0 2022-12-21 14:57:04 -08:00
Ethan Burrell
4f7d06500c fix jest hooks in bun-test (#1639)
* fix(jest) fix broken jest hooks

* add tests
2022-12-21 14:36:44 -08:00
Jarred Sumner
f6bbfa7e40 [bunx] Install symlink with completions
@colinhacks lmk if you have ideas where else it should attempt to isntall:
1) same dir as `bun`
2) $BUN_INSTALL/bin/bunx
3) $HOME/.bun/bin/bunx
4) $HOME/.local/bin/bunx
2022-12-21 00:58:14 -08:00
Jarred Sumner
435fdbfddc [bunx] Make help a little prettier 2022-12-21 00:56:50 -08:00
Jarred Sumner
83602b6834 Refactor some of bun pm 2022-12-20 23:28:11 -08:00
Jarred Sumner
3b808f5ac5 Update ZigGlobalObject.cpp 2022-12-20 22:11:41 -08:00
Jarred Sumner
aaf1624346 typo 2022-12-20 22:07:04 -08:00
Jarred Sumner
a98e0adc7d [web] Support multiple arguments in setTimeout, setInterval, and setImmediate 2022-12-20 22:05:47 -08:00
Alex Lam S.L
06487ef64f add tests for #1633 (#1635)
- `setImmediate(fn, ...args)`
- `setInterval(fn, delay, ...args)`
- `setTimeout(fn, delay, ...args)`
2022-12-20 21:34:25 -08:00
Jarred Sumner
b2fdcad77b [bunx] Improve reliability by checking the "bin" from package.json if necessary 2022-12-20 21:33:34 -08:00
Jarred Sumner
51f9a91736 Fixes https://github.com/oven-sh/bun/issues/1636 2022-12-20 21:09:46 -08:00
Jarred Sumner
d7b73dd4fc Use endsWith 2022-12-19 23:37:53 -08:00
Jarred Sumner
5931e350cd New subcommand: bunx (#1634)
* Implement `bunx`

* copy cleanup

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-12-19 23:05:12 -08:00
Jarred Sumner
e7a14f857d [Bun.write] Slightly better handling for older linux kernels that lack io_uring support
If io_uring is unsupported, we do the writes synchronously even if they're huge
2022-12-19 12:20:59 -08:00
Jarred Sumner
79abd245e2 Regenerate builtins 2022-12-18 08:52:50 -08:00
Alex Lam S.L
2b622162ef bug compatible with stdin.on("readable") (#1626) 2022-12-17 22:37:45 -08:00
Jarred Sumner
5a3e0836b1 Upgrade WebKit 2022-12-17 17:02:56 -08:00
Jarred Sumner
24c4d92c0b Update globals.d.ts 2022-12-17 16:18:01 -08:00
Jarred Sumner
184c56704b Add warning in import.meta.require 2022-12-17 16:15:58 -08:00
Jarred Sumner
feea8824f1 Delete Oniguruma (#1625)
* Update .gitmodules

* Delete oniguruma

* Delete Oniguruma

* Make this test less flaky

* ✂️

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-12-17 15:41:47 -08:00
Jarred Sumner
028e48ed97 Missing from commit 2022-12-17 14:38:54 -08:00
Jarred Sumner
609222d05e Fixes https://github.com/oven-sh/bun/issues/1624
This was disabled anyway
2022-12-17 14:37:37 -08:00
Jarred Sumner
5d91922c5d Regenerate builtins 2022-12-17 12:31:07 -08:00
Jarred Sumner
d66831c4f3 Update transpiler.test.js 2022-12-17 12:26:19 -08:00
Jarred Sumner
7f1caaaa44 Update WebKit 2022-12-17 12:26:19 -08:00
Jarred Sumner
42fc49d413 Add node:assert bench 2022-12-17 12:26:19 -08:00
Jarred Sumner
72970ecd15 Update Makefile 2022-12-17 12:26:19 -08:00
Jarred Sumner
f9b573aa89 [bun-types] Add optional param to Bun.deepEquals 2022-12-17 12:26:19 -08:00
Jarred Sumner
bbf8a17bf5 Use Bun.deepEqual in assert module 2022-12-17 12:26:19 -08:00
Jarred Sumner
8c8accf968 Use Buffer.isBuffer and node:util/types in util module 2022-12-17 12:26:19 -08:00
Jarred Sumner
24be0f4fc5 Implement node:util/types
Fixes #1617
2022-12-17 12:26:19 -08:00
Jarred Sumner
e59c6f642d Add strict option to Bun.deepEquals 2022-12-17 12:26:19 -08:00
Jarred Sumner
1bdb4b2466 [napi] Fix assertion failure when argv is null 2022-12-17 12:26:19 -08:00
Hossein Pourdavar
ca0ab9508f docs(README.md): specify bun-types new path (#1622) 2022-12-17 10:34:35 -08:00
Alex Lam S.L
68fd43313d add tests for process.stdin (#1621) 2022-12-16 20:40:41 -08:00
Ikko Ashimine
b06ca07eee Fix typo in bun.d.ts (#1619)
occured -> occurred
2022-12-16 10:36:07 -08:00
Jarred Sumner
01ed3045cb [napi] Implement napi_create_bigint_words
warning: not tested
2022-12-16 00:40:08 -08:00
Jarred Sumner
6b3be4d821 [js parser] Workaround symbol collision bug
See https://github.com/oven-sh/bun/issues/1616
Fixes https://github.com/oven-sh/bun/issues/1594
2022-12-15 23:42:08 -08:00
Jarred Sumner
e399bceb3c [js parser] Skip appending empty statements 2022-12-15 23:41:40 -08:00
Jarred Sumner
a8fca7d679 [js parser] Make fnBodyContainsUseStrict faster 2022-12-15 23:41:24 -08:00
Jarred Sumner
b249d1b75b [js parser] Ignore calls to import.meta.require that will never happen 2022-12-15 23:39:59 -08:00
Jarred Sumner
3495b7c1f8 [bun-types] Remove outdated comments 2022-12-15 21:48:50 -08:00
Jarred Sumner
3c20290e49 [js parser] Fix bug where const {resolve} = require throws "require is not defined" 2022-12-15 21:48:38 -08:00
Jarred Sumner
0df3485132 [js printer] Fix missing space when printing import aliases with whitespace minification enabled 2022-12-15 21:40:56 -08:00
Jarred Sumner
3ea983578f [node:process] Implement process.argv0, process.execPath
Fixes https://github.com/oven-sh/bun/issues/1599
2022-12-15 17:31:18 -08:00
Jarred Sumner
000a0c9dca Fix missing error when command not found 2022-12-15 17:03:08 -08:00
Jarred Sumner
c1d7ec9564 [node:process] Implement process.abort() 2022-12-15 16:28:47 -08:00
Jarred Sumner
9e909dcae1 [bun run] Include signal code on error 2022-12-15 16:28:47 -08:00
Jarred Sumner
3c1ad4b568 prettier 2022-12-15 16:28:47 -08:00
Jarred Sumner
743531b4ac [bun run] Introduce --bun flag to run in bun instead of node 2022-12-15 16:28:47 -08:00
Jarred Sumner
d1834b5a92 [process.stdin] Support reading from process.stdin in the same tick 2022-12-15 16:28:47 -08:00
Jarred Sumner
e38a3e5d85 [bun run] Use execve instead of posix_spawn when bun no longer needs to run script/bin
When we launch a script & there's nothing left to do, we should replace the process image with the new process instead of keeping the bun process alive while the other script is running.
2022-12-15 16:28:47 -08:00
Derrick Farris
6a1fc20835 fix(stream): make Readable.read work w/o _construct implemented (#1613)
* fix(stream): put Readable._readableState.constructed default in spec (true, not false)

* cleanup(readable): remove unnecessary _construct methods

* test(stream): add test for Readable w/o _construct method
2022-12-15 00:25:19 -08:00
Dylan Conway
95c747f598 undo bad free 2022-12-14 17:50:14 -08:00
Dylan Conway
65302a1db5 remove incorrect connector character 2022-12-14 14:01:03 -08:00
Dylan Conway
c4557e57a1 add bun pm ls for printing lockfiles (#1612)
* list directory structure from lockfile

* dim connectors and versions
2022-12-13 22:47:46 -08:00
Jarred Sumner
f61d9e340d [bun:jsc] Introduce profile function 2022-12-13 20:47:51 -08:00
Jarred Sumner
47a2548cbf Fix crash in startSamplingProfiler 2022-12-13 20:39:49 -08:00
Jarred Sumner
5516adec57 Avoid creating closure 2022-12-13 19:16:51 -08:00
Alex Lam S.L
4e920d73b7 make process.stdin work under TTY (#1611)
- workarounds for #1607 & #1608

fixes #1604
2022-12-13 19:02:20 -08:00
Jarred Sumner
a92258355d Don't call debug streams getter when not in debug 2022-12-13 19:01:25 -08:00
Jarred Sumner
5bbaa7b400 Fix bug where importing a binary file throws a SyntaxError. Instead, return the public path for that file 2022-12-13 18:17:26 -08:00
Jarred Sumner
de8ace9fbe Add a test for importing unknown file types as file loader 2022-12-13 18:17:26 -08:00
Ashcon Partovi
375f69559f Move bun-landing to another repository 2022-12-13 17:25:46 -08:00
Jarred Sumner
7d15a040fd Add missing if 2022-12-13 15:12:14 -08:00
Dylan Conway
3236a99b2d missing id when over 8 packages 2022-12-13 11:37:50 -08:00
Jarred Sumner
18d4cfd4f2 Update build-id 2022-12-13 11:34:29 -08:00
Jarred Sumner
6255fe6a4b [internal] Add bun-debug build 2022-12-13 00:16:01 -08:00
Jarred Sumner
dd9691289f Don't use zls for formatting 2022-12-13 00:15:50 -08:00
Jarred Sumner
e98aae195c fix UB 2022-12-13 00:15:41 -08:00
Jarred Sumner
5741d4f9b4 [crypto] Implement scryptSync
Fixes https://github.com/oven-sh/bun/issues/1228
2022-12-13 00:15:29 -08:00
Jarred Sumner
1bed749d8c some bugs make you feel like a 🤡 2022-12-12 22:39:15 -08:00
Jarred Sumner
bbe66a4367 Add missing space 2022-12-12 19:29:25 -08:00
Jarred Sumner
f649aae36f [crypto] Implement crypto.timingSafeEqual
This uses BoringSSL's memcmp function

Fixes https://github.com/oven-sh/bun/issues/1308
2022-12-12 19:29:25 -08:00
Derrick Farris
9f9db85a94 fix(stream): Fix Readable.pipe() (#1606)
* fix(stream): fix some debug logs that were breaking .pipe

* fix(stream): another debug fix

* test(stream): add test for .pipe
2022-12-12 18:58:28 -08:00
Dylan Conway
bbc2dacd84 markbinding for utf8 length from utf16le 2022-12-12 13:41:55 -08:00
Dylan Conway
0bb9493e47 fix fallback install method 2022-12-12 13:38:12 -08:00
Jarred Sumner
14efd03b48 📷 2022-12-12 00:40:00 -08:00
Jarred Sumner
d5b11be769 [internal] Add helper to make it easier to print whitespace 2022-12-12 00:28:37 -08:00
Jarred Sumner
007133d060 [Transpiler] Implement minifyWhitespace option 2022-12-11 23:28:53 -08:00
Jarred Sumner
6279358cbc [internal] further cleanup for hoistSymbols 2022-12-11 20:25:20 -08:00
Jarred Sumner
ca34a09a4d fixup 2022-12-11 19:29:27 -08:00
Jarred Sumner
b746579863 [internal] Change HashMap implementation for storing symbols 2022-12-11 18:41:54 -08:00
Jarred Sumner
8549134658 [Bun.Transpiler] Introduce inline flag 2022-12-11 16:38:52 -08:00
Jarred Sumner
27e40b0836 Update WebKit
cc @cirospaciari you will need to re-download the precompiled WebKit build from the releases page https://github.com/oven-sh/WebKit/releases/tag/dec11 because there is one small WebKit API change. LMK if you have any trouble with that
2022-12-11 16:14:53 -08:00
Jarred Sumner
b57f51fda2 Add a test for some scopes 2022-12-11 14:18:09 -08:00
Jarred Sumner
fad1742410 [transpiler] Never trim exports 2022-12-11 13:55:31 -08:00
Jarred Sumner
768f4539e8 [transpiler] Fix unbalanced class_name scope
surprised this was never caught sooner
2022-12-11 13:55:15 -08:00
Jarred Sumner
37b16a9007 Add _read 2022-12-11 13:01:41 -08:00
Jarred Sumner
a2d96f9040 Fix checking the UTF-16 length twice 2022-12-11 13:01:24 -08:00
Jarred Sumner
b5519af7e7 cleanup some tests 2022-12-11 12:58:48 -08:00
Jarred Sumner
9d94f148dc Avoid re-visting AST nodes which create scopes 2022-12-11 11:55:06 -08:00
Jarred Sumner
5cf64b07be Fix segfault in release mode when module list is empty 2022-12-10 22:25:33 -08:00
Jarred Sumner
e301fde96d Include isTTY in types 2022-12-10 22:25:19 -08:00
Jarred Sumner
2a7687fff8 Regenerate builtins 2022-12-10 22:24:34 -08:00
Alex Lam S.L
780f7de843 override process.stdin.on() correctly (#1603)
* override `process.stdin.on()` correctly

fixes #1601

* add tests
2022-12-10 21:51:02 -08:00
Jarred Sumner
660eb46b17 [transpiler] Improve constant propagation 2022-12-10 21:36:14 -08:00
Jarred Sumner
c6f3044654 [transpiler] Fix issue with async macros in bun build 2022-12-10 15:30:09 -08:00
Jarred Sumner
b374c67c16 [transpiler] Fix bug with === on statically-known rope strings 2022-12-10 15:29:53 -08:00
Jarred Sumner
ce960f9506 ♻️ 2022-12-10 00:37:32 -08:00
Jarred Sumner
ab49f95ef2 📷 2022-12-10 00:19:19 -08:00
Jarred Sumner
047754d5dd Implement simple version of inlining single-use expressions and statements 2022-12-10 00:19:19 -08:00
YuX
b400dfb386 fix path string (#1597) 2022-12-09 18:17:12 -08:00
Jarred Sumner
88538b7c2c Deprecate very incomplete Solid.js JSX transform
We don't have time to do a good job of this and Bun.plugin makes it possible to use Solid with Bun
2022-12-09 16:41:38 -08:00
Jarred Sumner
79138c4c7c Add "bun" to list 2022-12-09 16:10:33 -08:00
Colin McDonnell
24fbcb8f52 Exclude other ts declaration file extensions (#1596)
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2022-12-09 14:26:33 -08:00
Jarred Sumner
51e437e8a0 EventEmitter - return original this value for better chainability 2022-12-08 18:27:16 -08:00
Colin McDonnell
e6c2f48895 Add filename completions on naked bun command (#1593)
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2022-12-08 17:32:25 -08:00
Ashcon Partovi
cf961336d0 Update install issue template 2022-12-08 09:50:03 -08:00
Ashcon Partovi
b44615a916 Improve bug report issue template 2022-12-08 09:49:19 -08:00
Ashcon Partovi
fd740d41e5 Fix issue template for docs 2022-12-08 09:44:55 -08:00
Ashcon Partovi
46a9b124f5 Remove needs-repro label from issue template 2022-12-08 09:33:59 -08:00
Simon He
7c2180194c chore: add eslintcache (#1586) 2022-12-07 22:03:11 -08:00
Jarred Sumner
3150ff49a7 fix dirname on an empty string 2022-12-07 21:41:30 -08:00
Jarred Sumner
2fe5b4da2f 📷 2022-12-07 21:41:30 -08:00
Dylan Conway
0b94ccdf8c disable assignment on user specified assigns 2022-12-07 21:29:32 -08:00
Dylan Conway
845421c44b fix __require linker collision (#1585) 2022-12-07 20:39:55 -08:00
Jarred Sumner
42ea8b2402 [node:events] EventEmitter#on and EventEmitter#off should return the EventEmitter instance 2022-12-07 14:06:18 -08:00
Jarred Sumner
a13e64c286 Update html_rewriter.zig 2022-12-07 00:37:40 -08:00
Derrick Farris
60d0e6b73f fix(stream): Fix Transform class constructor fn (#1583)
* fix(stream): fix ReadableFromWeb class, fix Transform

* test(stream): add tests for .call on stream constructors
2022-12-07 00:18:10 -08:00
Jarred Sumner
a315ee7e03 try 2022-12-06 22:31:26 -08:00
Jarred Sumner
57672eb266 try 2022-12-06 22:29:21 -08:00
Jarred Sumner
511c0ab386 Fix aarch64 2022-12-06 22:17:55 -08:00
Dylan Conway
d9306c2681 first_non_ascii != offset 2022-12-06 21:46:20 -08:00
Dylan Conway
aa17f97d13 fix failing text decoder test 2022-12-06 21:04:38 -08:00
Jarred Sumner
e547efbf4a Don't call getters in console.log 2022-12-06 20:20:08 -08:00
Jarred Sumner
3d243e5e95 Fix node:stream/consumers 2022-12-06 19:56:36 -08:00
Colin McDonnell
5ea8fe8c90 Update types (#1581)
* Fix TS types, improve child_process types

* Add prettier

* Add ArrayBuffer types

* Add namespace Bun, improve types for SharedArrayBuffer, add toStrictEqual

* Improve types, add test files for types

* Update type tests

* Fix typo

* Add stdio

* Stdio types

* Use latest setup-bun

* Update action

* Update action

* Update action

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
2022-12-06 18:48:02 -08:00
Dylan Conway
84b2cc1739 fix child process test 2022-12-06 18:15:20 -08:00
Jarred Sumner
15ce587fa2 Update glibc-versions-hack.cpp 2022-12-06 18:10:17 -08:00
Dylan Conway
20a4b72ff4 add base64url switch case 2022-12-06 17:36:24 -08:00
Jarred Sumner
41d778fbfb dlsym pow 2022-12-06 17:21:07 -08:00
Dylan Conway
5f3a6f2bf3 add server scheduleDeinit, ignore logs in test 2022-12-06 17:10:14 -08:00
Jarred Sumner
58185e139a Add check 2022-12-06 17:08:21 -08:00
Dylan Conway
51d69d8c85 fix event emitter cast 2022-12-06 16:25:39 -08:00
Jarred Sumner
4dd2cb33b7 Ban statx 2022-12-06 15:48:41 -08:00
Jarred Sumner
31f025fa02 Add snippet 2022-12-06 14:18:25 -08:00
Jarred Sumner
81317a52ea Fix glibc symbol version issues preventing bun install from being used in older glibc versions (#1580)
* Prevent integer overflow in connectError

* Add missing deepEquals() type to Bun

* fix missing glibc symbols

* Fix missing symbol issues

* Try this

* Update glibc-versions-hack.cpp

* Update glibc-versions-hack.cpp

* Update glibc-versions-hack.cpp

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-12-06 14:14:27 -08:00
Derrick Farris
7d29782896 cleanup/fix(stdio,child_process): bug fixes, refactoring, etc. (#1574)
* fix(stream): add back call to Error.captureStackTrace, remove stray garbage

* cleanup(streams): remove unnecessary checks on Promise.then

* fix(child_process): WrappedFileSink -> NativeWritable for ChildProcess stdio

* cleanup(child_process): remove debug id

* fix(child_process): fix process.nextTick not working in onExit, fail to flush stdio

* refactor(streams): revert stream impls to functions from classes

* fix(child_process): revert runOnNextTick to process.nextTick
2022-12-06 13:26:39 -08:00
Dylan Conway
1aa4cd2f6a 9 characters 2022-12-05 19:42:49 -08:00
Jarred Sumner
c7f411bd88 Use more simdutf 2022-12-05 17:14:29 -08:00
Dylan Conway
60e6a47bb0 fix for double free and undefined this 2022-12-05 16:41:55 -08:00
Jarred Sumner
d9dc15115c linx build issue 2022-12-05 15:23:45 -08:00
Jarred Sumner
159ee8ddfc indexOfLine type 2022-12-05 14:11:23 -08:00
Jarred Sumner
84634117a9 Missing commit 2022-12-05 14:11:05 -08:00
Jarred Sumner
5ea278e1c6 Update README.md 2022-12-05 12:12:35 -08:00
Jarred Sumner
9e29159f44 More null checking for simdutf 2022-12-05 12:06:24 -08:00
Jarred Sumner
e23832d1ce Fix regression 2022-12-05 12:05:16 -08:00
Jarred Sumner
9665d7d216 Add some more text decoder tests 2022-12-05 11:37:04 -08:00
Jarred Sumner
c114956788 Fix crash when passing unexpected type to .writer() 2022-12-05 11:37:04 -08:00
Jarred Sumner
61bf957b99 Introduce console.write(text, or, arrayBufferLike) 2022-12-05 11:36:28 -08:00
Jarred Sumner
2cbac4bbdd Introduce Bun.indexOfLine 2022-12-05 11:36:04 -08:00
Jarred Sumner
320c23543c Fix alignment edgecase 2022-12-05 11:35:50 -08:00
Jarred Sumner
0ea8de4087 Make console an AsyncIterable 2022-12-05 11:35:34 -08:00
Jarred Sumner
7129303347 Update Process.h 2022-12-05 03:52:40 -08:00
Jarred Sumner
8582bc08ec microbench 2022-12-05 03:52:35 -08:00
Jarred Sumner
eeea1707a1 process.stdin exists but doesn't totally work yet 2022-12-05 03:52:20 -08:00
Jarred Sumner
b7e08cb937 [Bun.stdin] Fix handling tty 2022-12-05 03:43:09 -08:00
Jarred Sumner
054413ba1f [internal] Add some logs for string encoding 2022-12-05 03:38:45 -08:00
Jarred Sumner
04dcf180d5 Fix "is not event emitter" errror 2022-12-05 00:44:34 -08:00
Jarred Sumner
79094e6643 more tests for event emitter weirdness 2022-12-05 00:42:02 -08:00
Jarred Sumner
682af03cdc "Fix" monkey-patching EventEmitter prototype 2022-12-05 00:19:23 -08:00
Jarred Sumner
1564f75d06 Update test-test.test.ts 2022-12-04 23:30:25 -08:00
Jarred Sumner
224f980081 [bun:test] Fix crash when test("foo") is called without passing a function 2022-12-04 23:29:21 -08:00
Jarred Sumner
2369bade48 Clean up more cases 2022-12-04 08:47:22 -08:00
Jarred Sumner
10cd5aaa15 Fix race condition in child_process 2022-12-04 08:32:51 -08:00
Jarred Sumner
f4668e45f8 Update ZigGeneratedClasses.cpp 2022-12-04 08:15:45 -08:00
Jarred Sumner
a1e62e6bf9 Handle exception when creating stdout/stderr 2022-12-04 08:15:39 -08:00
Jarred Sumner
e009be1c5d Update ffi.zig 2022-12-04 08:15:07 -08:00
Jarred Sumner
af0bc28c51 Update child_process 2022-12-04 08:15:02 -08:00
Jarred Sumner
bb5450fad0 [breaking] onExit callback in Bun.spawn sets the first property to be the Subprocess object
Sometimes Bun.spawn calls the onExit callback before the Bun.spawn() callback is called.

Instead of delaying a tick, we set the `Subprocess` to be the first argument to the `onExit` callback now.
2022-12-04 08:11:44 -08:00
Jarred Sumner
5bb8c42bdb [Bun.spawn] Introduce Subprocess.prototype.signalCode 2022-12-04 08:09:23 -08:00
Jarred Sumner
69114ac0a9 Fix console.log sometimes incorrectly reporting undefined
cc @Electroid
2022-12-04 08:05:57 -08:00
Jarred Sumner
8830cbc51e [test] Ensure console.log(globalThis) doesn't crash 2022-12-04 06:55:12 -08:00
Jarred Sumner
23c90a76c2 Rename file 2022-12-04 06:54:56 -08:00
Jarred Sumner
714ce7619d [internal] Make string comparisons faster 2022-12-04 06:53:53 -08:00
Jarred Sumner
34b2e9acc2 Fix running zig tests 2022-12-04 05:02:14 -08:00
Jarred Sumner
4c818b9364 Mildly faster startup time 2022-12-04 03:50:22 -08:00
Jarred Sumner
cee33485d0 ✂️ 2022-12-04 03:22:10 -08:00
Jarred Sumner
f052e66df5 Add some basic tests for process.stdout 2022-12-04 02:53:04 -08:00
Jarred Sumner
46e34a3fa9 Re-add missing global 2022-12-04 02:28:25 -08:00
Jarred Sumner
2bcae716d1 Silence incorrect test failure 2022-12-04 02:28:15 -08:00
Jarred Sumner
4281a68a2b content-range is inclusive 2022-12-04 01:24:52 -08:00
Jarred Sumner
ab020b2275 Update README.md 2022-12-04 01:11:34 -08:00
Jarred Sumner
0617896d70 [Bun.serve] Implement Content-Range support with Bun.file() 2022-12-04 00:55:05 -08:00
Jarred Sumner
1c3cb22d1f [may revert later] Coerce Infinity to max int 64, -Infinity & NaN to min int64 2022-12-04 00:53:52 -08:00
Jarred Sumner
275a635ad7 Update .gitignore 2022-12-03 23:57:50 -08:00
Jarred Sumner
35bf039dfb [test] Add a couple tests for subarray toEqual 2022-12-03 23:57:13 -08:00
Jarred Sumner
de9a2b9fe5 [fetch] Fix bug where .arrayBuffer() on an empty Response body returned a Uint8Array instead of an ArrayBuffer 2022-12-03 23:56:40 -08:00
Jarred Sumner
201cbb20e4 Don't invalidate previous file descriptro to avoid tripping assertion 2022-12-03 08:26:53 -08:00
Jarred Sumner
8c51db0879 misc 2022-12-03 08:26:53 -08:00
Jarred Sumner
10b04fbd26 Add missing type 2022-12-03 08:26:53 -08:00
Jarred Sumner
bdc43c1696 process.stdout and process.stderr 2022-12-03 08:26:53 -08:00
Jarred Sumner
bc028168a8 simdutf ascii validation is about 20% faster on arm64 than our zig simd @Vector version 2022-12-03 08:26:53 -08:00
Reed Jones
00f428b627 typo in readme (#1576)
Succesfully => Successfully
2022-12-03 07:35:50 -08:00
Jarred Sumner
d28a4dbb00 Object.defineProperties snippet 2022-12-03 04:26:33 -08:00
Dylan Conway
0a30bf0212 make sure to not use incomplete characters (#1575) 2022-12-03 02:59:17 -08:00
Jarred Sumner
04658776e4 Push failing tests 2022-12-02 23:17:40 -08:00
Dylan Conway
369e9f3fbd add deps for make test command 2022-12-02 22:36:23 -08:00
Jarred Sumner
1b7b37232e Run promise before callback 2022-12-02 22:30:04 -08:00
Jarred Sumner
fe4f39fd17 Add AbortSignal.timeout 2022-12-02 20:48:57 -08:00
Dylan Conway
9cc03cd71a matchers for less than and greater than (#1573)
* toBeGreaterThan with tests

* toBeGreaterThanOrEqual and tests

* toBeLessThan and toBeLessThanOrEqual with tests

* expect types

* switch expressions
2022-12-02 20:35:13 -08:00
Jarred Sumner
d9f9fc975b Propagate reason in AbortSignal and reuse in ReadableStream.pipeTo
Similar to https://github.com/WebKit/WebKit/pull/7013
2022-12-02 20:15:50 -08:00
Jarred Sumner
bdbc0f23e7 Update TransformStream options getters to check for undefined
This is essentially copied from https://github.com/WebKit/WebKit/pull/7021
2022-12-02 20:00:27 -08:00
Jarred Sumner
ba6908aed7 Remove getSetCookie() from types 2022-12-02 19:35:35 -08:00
Jarred Sumner
4e6b905a98 Update test 2022-12-02 19:35:28 -08:00
Jarred Sumner
43f2a8eb85 Add some code I forgot to commit 2022-12-02 19:35:11 -08:00
Jarred Sumner
c72629d88a Make cloning headers object faster 2022-12-02 19:34:43 -08:00
Jarred Sumner
33cf491fea Add a userland way to hide stack frames 2022-12-02 19:33:59 -08:00
Jarred Sumner
2f917f7030 Make constructing headers from an existing headears faster 2022-12-02 19:33:45 -08:00
Jarred Sumner
207282862e Throw if passing a header not named "set-cookie" to getAll 2022-12-02 19:33:36 -08:00
Jarred Sumner
3c054253e1 Remove getSetCookie 2022-12-02 19:33:22 -08:00
Jarred Sumner
2c0fd28e72 [node:event] Add captureRejectionSymbol 2022-12-02 09:05:11 -08:00
Derrick Farris
b8586b33da feat(process): add process.{stdin, stdout, stderr} support (#1495)
* fix(stream): get Duplex working

* feat(process): add stdin,stdout,stderr in a semi-broken state (pipes??)

* test(NodeTestHelpers): fix test names

* test(NodeTestHelpers): add test for createDoneDotAll done called w error

* test(NodeTestHelpers): remove stray console.log

* fix(stream): fix bug in Duplex, Readable

* test(process.stdio): rename test

* fix(process.stdio): change onData listener to onReadable

* refactor(streams): add file-wide debug fn, destructure opts

* fix(child_process): check isCallable on promise

* fix: get stdio streams mostly working (mostly)

* fix(child_process): wait until stream is drained before calling end?

* fix(child_process): change to result?.then

* debug(child_process,streams): add EE id tracking, add shim for stdio after handle is dead

* test(child_process): fix double pipe test, temp fix for ChildProcess.kill() return val

* fix(child_process): remove immediate emit of exit on kill

* debug(streams): add more debug log

* debug(streams): add more debug logs part 2

* feat(streams,fs): add NativeWritable, adapt fs.WriteStream and fs.ReadStream to native
2022-12-02 08:25:13 -08:00
Jarred Sumner
beaf91590a Tests for set-Cookie 2022-12-02 07:44:57 -08:00
Jarred Sumner
d84f79bcc1 [fetch] Implement Headers#getAll and Headers#getSetCookie()
This matches Deno's behavior (get() combines, iterator preserves the order, set and append combine), but implements both the Cloudflare Workers `getAll()` and the potential standard `getSetCookie` function.  The rationale for choosing both is to better support libraries which check for `getAll` and also because `getSetCookie` seems a little confusing (names are hard)

This also makes `.toJSON` and JSON.stringify return an array for `Set-Cookie`
2022-12-02 07:42:44 -08:00
Dylan Conway
917cbc8d5d incorrect name for matcher 2022-12-02 02:30:35 -08:00
Jarred Sumner
074f236994 make the test run faster 2022-12-02 02:17:12 -08:00
Jarred Sumner
03eb000ad6 delete these fixtures which are no longer relevant 2022-12-02 02:16:59 -08:00
Jarred Sumner
9a184c8279 Fix incorrect StringDecoder export test 2022-12-02 01:56:55 -08:00
Jarred Sumner
b53a332809 Fix running tests in older versions of bun 2022-12-02 01:56:41 -08:00
Jarred Sumner
a09b515a62 Skip flaky test 2022-12-02 01:56:25 -08:00
Jarred Sumner
8eddfc61a8 Add generic way to block on a promise 2022-12-02 01:56:12 -08:00
Jarred Sumner
37525db5cf Faster test 2022-12-02 00:25:38 -08:00
Jarred Sumner
e9eb88355b Close stdin earlier 2022-12-02 00:25:30 -08:00
Jarred Sumner
9f5564b4bc Add file descriptor leak test 2022-12-02 00:25:08 -08:00
Jarred Sumner
931ba9ad49 Add file descriptor leak test 2022-12-02 00:23:29 -08:00
Jarred Sumner
851b8acb76 Fix incorrect panic in spawnSync 2022-12-02 00:05:33 -08:00
Jarred Sumner
7a158e68ae Fix crash when macros return a Promise 2022-12-01 23:46:18 -08:00
Jarred Sumner
cb36b4d1ab Fix double free in .json() and optimize UTF16 -> json slightly 2022-12-01 23:43:49 -08:00
Jarred Sumner
2621fbf206 Remove file blob caching 2022-12-01 23:42:57 -08:00
Jarred Sumner
d7ab2c04ec Faster test 2022-12-01 23:42:13 -08:00
Jarred Sumner
f84f77d1ed [streams] Handle empty state 2022-12-01 23:28:42 -08:00
Jarred Sumner
425f4b0de1 [fetch] Add test that invalid json rejects promise 2022-12-01 23:27:53 -08:00
Jarred Sumner
7b70ed52fa [bun bun] Fix incorrect package.hash 2022-12-01 21:37:25 -08:00
Jarred Sumner
8cf1707cd3 [bun bun] Fix crash in canary 2022-12-01 21:37:09 -08:00
Jarred Sumner
9f4d7690ac [fetch] Treat 302 like 303 2022-12-01 21:15:34 -08:00
Jarred Sumner
5854d39525 [fetch] Implement redirect: "manual" 2022-12-01 21:09:43 -08:00
Jarred Sumner
b4e6ca0462 ComptimeStringMap is faster than ExactSizeMatcher 2022-12-01 20:51:35 -08:00
Jarred Sumner
f408749182 Fix timers keeping process alive unnecessarily 2022-12-01 20:46:54 -08:00
Dylan Conway
92da72beb0 bun test toStrictEqual (#1568)
* toStrictEqual and bug fix in deepEqual

* rebase Remove some dead bindings code

* remove debugging test

* canGetIndexQuickly for array holes

* isStrict template

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-12-01 19:36:47 -08:00
Jarred Sumner
a896d6c46c [bun:sqlite] ~15% perf improvement to all() and get() 2022-12-01 19:34:02 -08:00
Jarred Sumner
4eed310a45 3x faster TextEncoder.prototype.encodeInto
thanks to @Constellation for the tip
2022-12-01 18:51:16 -08:00
Jarred Sumner
1daa61a45f Add test for DOMJIT call version of encodeInto 2022-12-01 18:40:56 -08:00
Jarred Sumner
03490afdb3 Fix crash in test runner with gc mode 2022-12-01 18:40:41 -08:00
Jarred Sumner
e1e5f8c43b Include size of ArrayBuffer and others in GC timer scheduling 2022-12-01 02:36:51 -08:00
Jarred Sumner
b655d09387 Incorrect readme 2022-12-01 02:36:33 -08:00
Jarred Sumner
e0503faec7 Increase sensitivity of GC timers 2022-12-01 02:36:18 -08:00
Jarred Sumner
bddf523ac9 Reduce memory usage in Bun.serve() by up to 3x (#1569)
* Update WebKit

* Use 5x less memory in Bun.serve()

* Update Dockerfile.devcontainer

* Update async-overhead.mjs

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-12-01 02:34:15 -08:00
Dylan Conway
1506a25198 formatting and remove comment 2022-11-30 16:40:54 -08:00
Dylan Conway
1abc89e391 fix slow regex tests 2022-11-30 16:36:03 -08:00
Jarred Sumner
3cb462a3e6 Fix console.log regression with emoji 2022-11-30 07:28:48 -08:00
Jarred Sumner
f8b87e3ee2 Redirect imports to "readable-stream" -> "node:stream" 2022-11-30 07:21:27 -08:00
Jarred Sumner
e6f055e9fb Accidentally deleted prompt as a result of the process.env changes 2022-11-30 06:16:59 -08:00
Jarred Sumner
f999bdca26 ✂️ 2022-11-29 23:56:52 -08:00
Jarred Sumner
e75ce84c37 Remove some dead bindings code 2022-11-29 23:49:11 -08:00
Jarred Sumner
b631ea7d72 import everything from "bun" where possible 2022-11-29 02:42:56 -08:00
Jarred Sumner
7b59d9d97c Make .toInt64 faster 2022-11-28 23:48:04 -08:00
Jarred Sumner
d28247573c Handle when the process already exited immediately 2022-11-28 23:48:04 -08:00
Dylan Conway
56884b5f1d toHaveProperty and tests (#1558)
* toHaveProperty and tests

* emoji tests
2022-11-28 23:15:12 -08:00
Jarred Sumner
887496bcf9 Fix failing spawn() and spawnSync() tests
cc @ThatOneBro
2022-11-28 23:00:22 -08:00
Jarred Sumner
da43761032 Update README.md 2022-11-28 19:18:17 -08:00
Jarred Sumner
4efce63dad Update README.md 2022-11-28 19:14:45 -08:00
Jarred Sumner
2a33bd2cc5 Add small section about profiling bun 2022-11-28 19:11:09 -08:00
Jarred Sumner
b337e36da1 Fix hanging in FIFO streams 2022-11-28 18:31:12 -08:00
Jarred Sumner
77d0828179 [internal] Add debug timer 2022-11-28 18:30:49 -08:00
Jarred Sumner
eccd854dbc Ensure we report errors in controller.close 2022-11-28 18:30:28 -08:00
Jarred Sumner
a64f2f5466 Update JSEnvironmentVariableMap.cpp 2022-11-28 16:57:48 -08:00
Jarred Sumner
d3cd753d4d Allow overriding node:fs 2022-11-28 16:23:41 -08:00
Jarred Sumner
f423791e19 Add test for process 2022-11-28 15:59:58 -08:00
Jarred Sumner
a6cadce6f6 Fix process.env and Bun.env object spread
Fixes https://github.com/oven-sh/bun/issues/1512
2022-11-28 15:55:02 -08:00
Jarred Sumner
51d0c3b79f Fix console.log(process.env) 2022-11-27 23:01:09 -08:00
Jarred Sumner
7672ee95af Add google fixture 2022-11-27 22:41:22 -08:00
Jarred Sumner
512acf072e Add missing v
Fixes https://github.com/oven-sh/bun/issues/1554
2022-11-27 22:41:16 -08:00
Jarred Sumner
4ee11d922c Cleanup some of the encoding code 2022-11-27 22:09:56 -08:00
Jarred Sumner
885049831f Fix handling delete process.env.foo 2022-11-27 22:09:23 -08:00
Jarred Sumner
e5106d320c Don't make toJSON enumerable in process.env 2022-11-27 22:09:07 -08:00
Jarred Sumner
ede2a494bc Fix UTF16 bug in await fetch().text() 2022-11-27 22:08:30 -08:00
Jarred Sumner
48df99c496 ✂️ dead code 2022-11-27 22:06:35 -08:00
Jarred Sumner
ed15259623 Fix Buffer.toString("latin1") and make Buffer.toString("utf16le") faster
Fixes #455
Fixes #1016
2022-11-27 20:21:41 -08:00
Jarred Sumner
4272038743 Fix failing buffer tests 2022-11-27 20:04:57 -08:00
Jarred Sumner
002f4ecc9e Fix crash in console.log 2022-11-27 19:37:14 -08:00
Jarred Sumner
495f25501f Increase the max prototype count 2022-11-27 09:32:40 -08:00
Jarred Sumner
0992c3867d Update bindings.cpp 2022-11-27 08:45:40 -08:00
Jarred Sumner
58a78ef8b7 [console.log] Remove extra indent 2022-11-27 08:41:08 -08:00
Jarred Sumner
740027975b Handle more cases with printing objects 2022-11-27 08:39:10 -08:00
Jarred Sumner
706406af48 remove leak 2022-11-27 07:58:10 -08:00
Jarred Sumner
39493e5d94 Add microbenchmark for console log 2022-11-27 07:40:10 -08:00
Jarred Sumner
a249c79983 Add tests for latin1 supplemental chars 2022-11-27 07:29:59 -08:00
Jarred Sumner
6459288c85 fix hanging test 2022-11-27 07:29:46 -08:00
Jarred Sumner
4726b7e227 don't start NetworkThread unless necessary 2022-11-27 07:29:40 -08:00
Jarred Sumner
358f388a46 Fix make headers 2022-11-27 07:29:07 -08:00
Jarred Sumner
4f35d0537b fix extra indent 2022-11-27 07:28:44 -08:00
Jarred Sumner
1d9c982488 [console.log] Fix printing latin1 supplement characters at runtime
Fixes https://github.com/oven-sh/bun/issues/1031#issuecomment-1236092120
2022-11-27 07:28:30 -08:00
Jarred Sumner
5e6e8ece4e [console.log] Improve Object formatting and error handling 2022-11-27 07:27:21 -08:00
Jarred Sumner
964c4037de [console.log] log Proxy objects 2022-11-27 07:26:16 -08:00
Jarred Sumner
1bc76511ec [console.log] Treat GlobalObject like Object 2022-11-27 07:25:55 -08:00
Jarred Sumner
35509126a6 [console.log] Treat ArrayBuffer like Uint8Array 2022-11-27 07:25:41 -08:00
Jarred Sumner
8765092591 [console.log] Fix logging Symbol values 2022-11-27 07:25:25 -08:00
Jarred Sumner
46678c46ee Now that utf16 is fast we can just count the length instead of re-allocating 2022-11-27 07:24:43 -08:00
Jarred Sumner
e8d948b9d9 Remove extra indent 2022-11-27 06:18:05 -08:00
Jarred Sumner
f891d1df50 Fix strangeness with Bun.env keys 2022-11-27 06:17:59 -08:00
Jarred Sumner
faad250559 Fix crash in Headers.prototype.count 2022-11-27 06:17:32 -08:00
Jarred Sumner
74e87b5a8a Fix crash in OnigurumaRegExp getters 2022-11-27 06:16:52 -08:00
Jarred Sumner
819a63e3ec Fix build issue 2022-11-26 22:14:29 -08:00
Jarred Sumner
c65c320b09 [bun:sqlite] Fix bug with latin1 supplemental characters
Fixes https://github.com/oven-sh/bun/issues/1553
2022-11-26 21:42:32 -08:00
Jarred Sumner
a53ed1bde1 prettier? 2022-11-26 21:29:53 -08:00
Jarred Sumner
d2190ea6f3 Update mimalloc 2022-11-26 21:20:38 -08:00
Jarred Sumner
b7850565f4 Update string_immutable.zig 2022-11-26 21:20:33 -08:00
Jarred Sumner
10996a797a Faster UTF16 -> UTF8 and UTF8 -> UTF16 (#1552)
* Fix freezing test

* Add SIMDUTF

* More micro bench snippets

* Update .gitattributes

* Update .gitattributes

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-11-26 21:04:38 -08:00
Jarred Sumner
949d715a14 Make HTTP status text more consistent with other HTTP servers 2022-11-26 18:03:20 -08:00
Jarred Sumner
90388aa7ea Add a console.log write bench 2022-11-26 06:27:49 -08:00
Jarred Sumner
1671977af7 Fix 0 2022-11-26 05:54:28 -08:00
Jarred Sumner
8aec181f16 Slightly improve when printing lots of numbers 2022-11-26 05:22:12 -08:00
Jarred Sumner
37753e9787 Make console.log prettier 2022-11-26 04:50:55 -08:00
Jarred Sumner
8519ff02e6 Prevent closing stdout / stderr 2022-11-25 22:55:35 -08:00
Jarred SUmner
397cb6600b Update test 2022-11-25 22:53:21 -08:00
Jarred SUmner
bef469ea55 Fix linux build issue 2022-11-25 22:53:07 -08:00
Jarred SUmner
ac7ad4d5c6 Fix double free 2022-11-25 22:52:32 -08:00
Jarred Sumner
0b27a26edb typo 2022-11-25 22:10:42 -08:00
Jarred Sumner
e12dc23c62 Use ccache for dependencies too 2022-11-25 21:14:57 -08:00
Jarred Sumner
7fec8a96ab Update zlib 2022-11-25 21:08:24 -08:00
Jarred Sumner
14b063d802 Simplify 2022-11-25 20:27:59 -08:00
Jarred Sumner
99fa95b954 Add some missing finalizers 2022-11-25 20:26:34 -08:00
Jarred Sumner
f27fdf932b Always watch 2022-11-25 20:26:18 -08:00
Jarred Sumner
d0dbafb32f Fix Subprocess.prototype.killed 2022-11-25 19:39:40 -08:00
Jarred Sumner
b5bd98c0ef Another test for macros 2022-11-25 07:04:08 -08:00
Jarred Sumner
e851e5fddb Fix macros that return a Promise 2022-11-25 06:48:02 -08:00
Jarred Sumner
1aff60d2ba More CCACHE 2022-11-25 06:24:34 -08:00
Jarred Sumner
d5c81b7423 Report Infinity when for non-regular files with a size of 0 2022-11-25 03:36:42 -08:00
Jarred Sumner
ddb6eced34 Update tests for behavior change 2022-11-25 03:04:12 -08:00
Jarred Sumner
5c3c50372b [internal] Log stat calls 2022-11-25 03:03:53 -08:00
Jarred Sumner
af0acaff37 [internal] Remove all usages of suspend and resume 2022-11-25 03:03:42 -08:00
Jarred Sumner
9090f06612 Fix memory leak with .json() 2022-11-25 03:02:56 -08:00
Jarred Sumner
7a193ed243 [behavior change] Bun.file().size now always reports a number 2022-11-25 03:02:45 -08:00
Jarred Sumner
c168c70e60 Improve test coverage for Bun.file 2022-11-25 03:01:37 -08:00
Jarred Sumner
557c2e97d7 Fix crash that sometimes occurred when freeing file data 2022-11-25 02:53:08 -08:00
Jarred Sumner
64871b2bfb Fix spurious assertion 2022-11-25 00:14:01 -08:00
Jarred Sumner
ce2cdb44e1 Use new enum for checking writable 2022-11-25 00:11:02 -08:00
Jarred Sumner
348ad87013 Enable Resizable ArrayBuffer proposal
https://github.com/tc39/proposal-resizablearraybuffer
2022-11-25 00:10:47 -08:00
Jarred Sumner
0e900c8ca9 Upgrade WebKit 2022-11-25 00:10:31 -08:00
Jarred Sumner
61673fa705 Add recv 2022-11-25 00:08:48 -08:00
Jarred Sumner
d1a4f4fd69 Introduce FileSink.ref() and FileSink.unref() 2022-11-25 00:08:36 -08:00
Jarred Sumner
0b915fed03 [streams] Always call start 2022-11-25 00:05:33 -08:00
Jarred Sumner
7b23cb5cd7 Fix reading FIFO files 2022-11-25 00:05:14 -08:00
Jarred Sumner
04328c163b [safety] Add a generation_number to FilePoll on macOS to check for use-after-free 2022-11-25 00:04:12 -08:00
Jarred Sumner
5a95fae533 Improve SIGPIPE handling 2022-11-24 18:57:58 -08:00
Jarred Sumner
47f0e14477 Use is_in_heap_region instead of _check_owned 2022-11-24 18:57:40 -08:00
Jarred Sumner
0ef25c65ec Add missing keys 2022-11-24 04:58:37 -08:00
Jarred Sumner
b0c89baac7 Fix crash when console.log() / console.error() fails to write to stdout/stdin 2022-11-24 04:26:04 -08:00
Jarred Sumner
7bc20c994c Fix missing sigpipe handler 2022-11-24 04:25:27 -08:00
Jarred Sumner
033b8936c9 Update streams.zig 2022-11-24 04:03:04 -08:00
Jarred Sumner
6336d01743 Add extra check 2022-11-24 03:55:04 -08:00
Jarred Sumner
cc062855af Add ccache to more steps 2022-11-24 03:54:54 -08:00
Jarred Sumner
d68f44d604 Don't pre-maturely close the input buffer 2022-11-24 03:54:32 -08:00
Jarred Sumner
ffacc1d02d Workaround strange crash 2022-11-24 03:53:26 -08:00
Jarred Sumner
1be13fa192 Update streams.zig 2022-11-24 02:41:14 -08:00
Jarred Sumner
46094189f4 update 2022-11-24 02:35:52 -08:00
Jarred Sumner
0c8fe888b9 Update streams.zig 2022-11-24 02:34:05 -08:00
Jarred Sumner
57fcd882fc Update streams.zig 2022-11-24 02:26:28 -08:00
Jarred Sumner
b2e48477db Update Dockerfile 2022-11-24 02:17:58 -08:00
Jarred Sumner
e4805d0895 Update bun-linux-build.yml 2022-11-24 02:10:42 -08:00
Jarred Sumner
e9eaab727b Update bun-linux-build.yml 2022-11-24 02:10:11 -08:00
Jarred Sumner
2ded9af4f7 Update bun-linux-build.yml 2022-11-24 02:07:55 -08:00
Jarred Sumner
2aa304a29d bump 2022-11-24 02:03:09 -08:00
Jarred Sumner
3419d3bc02 Update bun-mac-aarch64.yml 2022-11-24 01:57:24 -08:00
Jarred Sumner
a6644eac24 missing WORKDIR 2022-11-24 01:53:59 -08:00
Jarred Sumner
6c23035769 Attempt to make builds faster 2022-11-24 01:47:43 -08:00
Jarred Sumner
4a698ed52c [FileSystemRouter] Start to add types 2022-11-24 00:05:57 -08:00
Jarred Sumner
e1fcc810cb Remove extra newlines 2022-11-23 23:07:06 -08:00
Jarred Sumner
6bfb65b312 Add expect().toEqual() bench 2022-11-23 23:03:40 -08:00
Dylan Conway
dc330701d2 Bun.deepEquals and expect().toEqual() (#1548)
* all of deepEquals

* remove comment, tests, move inline function
2022-11-23 22:50:49 -08:00
Jarred Sumner
d434370500 uncomment 2022-11-23 21:46:56 -08:00
Jarred Sumner
9806c301dd Fix build error 2022-11-23 21:46:46 -08:00
Jarred Sumner
73416ebb62 nohang flag 2022-11-23 21:46:39 -08:00
Jarred Sumner
bddf484c2c Close the streams more 2022-11-23 21:31:38 -08:00
Jarred Sumner
21531f1e80 Linux build issue 2022-11-23 07:42:56 -08:00
Jarred Sumner
ac36ea51cf possibly more reliable Bun.spawn (#1547)
* wip

* wip

* Fix bug with stdin

* zig fmt

* seems to work!

* Update streams.test.js

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-11-23 07:14:33 -08:00
Jarred Sumner
ae3fcb5bd8 [FileSystemRouter] Fix reload() 2022-11-22 21:41:34 -08:00
Jarred Sumner
5767ad3fc5 Remove some dead code 2022-11-22 21:34:37 -08:00
Jarred Sumner
4f41c3fb40 [FileSystemRouter] Fix failing tests 2022-11-22 21:25:26 -08:00
Jarred Sumner
b249ed7257 [FileSystemRouter] Add more tests 2022-11-22 20:55:09 -08:00
Jarred Sumner
2b4dcc8c81 [FileSystemRouter] base_dir, Request, Response 2022-11-22 04:00:55 -08:00
Jarred Sumner
15a5aa1a68 Update filesystem_router.test.ts 2022-11-22 02:25:58 -08:00
Jarred Sumner
3cf229a898 Update launch.json 2022-11-22 02:13:25 -08:00
Jarred Sumner
e94172255d Support no constructor in class generator script 2022-11-22 02:13:19 -08:00
Jarred Sumner
d21aee5143 Introduce Bun.FileSystemRouter API 2022-11-22 02:13:03 -08:00
Jarred Sumner
65a56c2560 clone in putRecord 2022-11-22 02:09:57 -08:00
Jarred Sumner
1bd71f2f44 Handle when package version is missing 2022-11-21 18:34:18 -08:00
Jarred Sumner
fe33073f2e Use const ptr 2022-11-21 18:33:55 -08:00
Jarred Sumner
14d52897ad Update README.md 2022-11-21 17:49:07 -08:00
Jarred Sumner
ca434fba6e make it slightly clearer 2022-11-21 17:37:12 -08:00
Jarred Sumner
55f8029dc2 Add test for wildcard import without an extension 2022-11-21 17:31:42 -08:00
João Paquim
a3dc33c133 Wildcard imports map (#1483)
* Log extra info on missing file extension

* Improve error messages for missing /index.js on import

* Remove unnecessary function parameter path

* Add loadPackageImports function to match esbuild

* Add support for pattern trailer import syntax

* Fix review comments
2022-11-21 17:31:02 -08:00
Jarred Sumner
a274ddba3a [bun:test] Add test for returning MAX_SAFE_INTEGER 2022-11-21 17:02:43 -08:00
Dylan Conway
8e36485a76 fix oniguruma regex character properties (#1528)
* fix for character properties

* cleanup tests

* cleanup comments

* i - 2 >= 0
2022-11-21 16:52:00 -08:00
Dylan Conway
5f2e74bbcc specific error for invalid flag, correct position' (#1537)
'
2022-11-21 16:51:34 -08:00
Jarred Sumner
ce6fc8609b [bun:sqlite] fix truncating to int32 in results (now truncates to int52)
TODO: bigint
2022-11-21 16:46:45 -08:00
Jarred Sumner
a251669fa1 Make it yellow 2022-11-20 17:58:13 -08:00
Jarred Sumner
4f6636b3ca Update jest.zig 2022-11-20 16:48:09 -08:00
Jarred Sumner
28a3093d48 Print a count 2022-11-20 16:48:02 -08:00
Jarred Sumner
fe0506b88e Bump! 2022-11-20 16:31:11 -08:00
Jarred Sumner
e78f891acd [bun:test] Fix bug with returning a non-promise object in a test or it function 2022-11-20 14:35:48 -08:00
Jarred Sumner
948fdfe482 Fix spurious rejected promise handler calls 2022-11-20 14:33:57 -08:00
Jarred Sumner
757d19c2f7 Assert count 2022-11-20 07:12:01 -08:00
Jarred Sumner
a4b67ccbff fix protocol relative urls again 2022-11-20 07:03:50 -08:00
Jarred Sumner
1fca6becd3 Enable previously failing GC tests 2022-11-20 07:03:11 -08:00
Jarred Sumner
6965b5c192 mild clean up 2022-11-20 07:02:53 -08:00
Jarred Sumner
dfa62b660d [internal] Implement visitAdditionalChildren 2022-11-20 07:02:14 -08:00
Jarred Sumner
5ff2cd3418 [streams] Fix memory leak affecting React SSR and more 2022-11-20 06:58:29 -08:00
Jarred Sumner
f56eec6fa3 run clang-format on JSSink 2022-11-20 06:56:05 -08:00
Jarred Sumner
65330a32cc [jsx] Disable jsxs 2022-11-20 04:55:36 -08:00
Jarred Sumner
003237b086 Typo 2022-11-20 01:45:57 -08:00
Jarred Sumner
70f89b1bfc Add another test 2022-11-20 01:44:27 -08:00
Jarred Sumner
4f5f01a748 Fix flaky test 2022-11-20 01:44:18 -08:00
Jarred Sumner
e41d7a0bd5 [fetch] Add optimization for chunked encoding 2022-11-20 01:43:40 -08:00
Jarred Sumner
b745ae2667 [TCP] Make Socket more careful about GC 2022-11-20 00:58:46 -08:00
Jarred Sumner
2f1e9b2eb8 [streams] Fix exception in WritableStream
cc @Electroid
2022-11-19 23:37:52 -08:00
Jarred Sumner
c68b11e8cb [streams] Fix exception in streams with 1 item that sometimes occurred 2022-11-19 23:05:03 -08:00
Jarred Sumner
16d20bde09 Set aggression level in tests 2022-11-19 22:35:26 -08:00
Jarred Sumner
bea44d948e Fix freezing test due to calling GC 36,000 times 2022-11-19 22:35:16 -08:00
Jarred Sumner
b230e7a73a [fetch] Fix sporadic data corruption bug in HTTP client and add fast path
- This removes memory pooling from the HTTP client which sometimes caused invalid memory to be written to the response body.
- This adds a fast path for small HTTP/HTTPS responses that makes it a single memory allocation for the response body, instead of copying & allocating a temporary buffer

cc @Electroid
2022-11-19 22:34:57 -08:00
Jarred Sumner
e024116b77 Add a couple more tests for redirects 2022-11-19 22:23:45 -08:00
Jarred Sumner
79b6d4734a [internal] Add a function for appending without growing extra data 2022-11-19 22:23:20 -08:00
Jarred Sumner
dc26181da4 Add a log 2022-11-19 22:22:04 -08:00
Jarred Sumner
0603991beb Make hidden mimalloc dump report process-wide stats instead of thread 2022-11-19 22:21:58 -08:00
Jarred Sumner
17fa4211ac Introduce Bun.unsafe.gcAggressionLevel API 2022-11-19 22:21:35 -08:00
Jarred Sumner
81a1d8f589 [internal] Add assertion for freeing global strings 2022-11-19 22:15:20 -08:00
Jarred Sumner
055f1e9639 [napi] Fix missing instance data finalizer 2022-11-19 22:14:47 -08:00
Jarred Sumner
cac11ee826 [fetch] Fix bug with redirecting to a protocol-relative URL 2022-11-19 22:14:10 -08:00
Jarred Sumner
f8d9a8be87 [fetch] Fix bug with redirects losing the port number 2022-11-19 22:13:30 -08:00
Jarred Sumner
9c601542d0 Update to Mimalloc v2.0.7 2022-11-19 21:37:31 -08:00
Jarred Sumner
7c7769a7c7 Fix GC crash when handling rejected promises uncovered via BUN_GARBAGE_COLLECTOR_LEVEL 2022-11-19 04:59:38 -08:00
Jarred Sumner
17e8181b4e Fix GC crash in Bun.file(string).text(), Bun.file(string).arrayBuffer(), Bun.file(string).json() uncovered via BUN_GARBAGE_COLLECTOR_LEVEL 2022-11-19 04:59:17 -08:00
Jarred Sumner
ee939f7a6d Fix GC crash in Transpiler found via BUN_GARBAGE_COLLECTOR_LEVEL 2022-11-19 04:58:39 -08:00
Jarred Sumner
6cc89eff2c [internal] Introduce JSPromise.Strong 2022-11-19 04:57:59 -08:00
Jarred Sumner
d6d04cab24 Fix GC crash with WebSocket uncovered thx to BUN_GARBAGE_COLLECTOR_LEVEL 2022-11-19 04:57:32 -08:00
Jarred Sumner
bb95f90a62 Introduce BUN_GARBAGE_COLLECTOR_LEVEL debug environment variable 2022-11-19 04:56:46 -08:00
Jarred Sumner
1806322554 Fix failing test 2022-11-19 04:16:31 -08:00
Jarred Sumner
38b5a85d8a Fix a GC issue with Bun.spawn
The `Subprocess` object stays alive until the process exits, even if it's never referenced
2022-11-19 01:25:15 -08:00
Jarred Sumner
68b55cd855 Implement a singleton version of napi_get_instance_data and napi_set_instance_data
Still need to figure out how to do this without adding a layer of indirection to the global object as exposed to NAPI Addons

This code is not tested
2022-11-19 01:18:58 -08:00
Dylan Conway
43b4e1b67b bun test matchers and tests (#1526)
* ignore webkit for cherry-pick

* toContain and toBeTruthy

* toBe null, undefined, falsy, toHaveProperty, .not

* markBindings

* remove toHaveProperty, undo ignore webkit, more tests

* undo ignore webkit

* remove bad tests

* check if length property exists for toHaveLength()

* fix call signature

* handle argument that is not an integer

* getLengthOfArray returns u64

* switch to truncate

* toHaveLength() edge cases

* add toBooleanSlow()

* infinity, nan, negative
2022-11-18 23:03:39 -08:00
Jarred Sumner
f3fb712051 Fix crash in process.env.FOO = bar that happened sometimes 2022-11-18 03:47:10 -08:00
Jarred Sumner
f6779193c0 console.timeLog() but no extra arguments yet 2022-11-16 05:16:30 -08:00
Jarred Sumner
29f72efac3 Mark some more commonjs modules 2022-11-16 05:15:56 -08:00
Jarred Sumner
4985a44fe2 Remove incorrect assertion 2022-11-16 05:13:17 -08:00
Jarred Sumner
6a9bc6f6c2 Another test 2022-11-16 04:58:51 -08:00
Jarred Sumner
bf6b174233 Make node:http.createServer work better 2022-11-16 04:42:33 -08:00
Jarred Sumner
5de98f23bb Fix another assertion failure 2022-11-15 23:23:36 -08:00
Jarred Sumner
1d02104c51 Fix assertion failure 2022-11-15 23:23:23 -08:00
Jarred Sumner
4f22c39651 Handle trailing slash 2022-11-15 22:10:09 -08:00
Jarred Sumner
6c01a1191f Fixes #1390 2022-11-15 21:58:31 -08:00
Jarred Sumner
b95f7d5bbc Fixes #1403
cc @Electroid this should fix the fly.io api issue too
2022-11-15 21:40:54 -08:00
Jarred Sumner
c32013dbba Never resize on close 2022-11-15 21:37:28 -08:00
Jarred Sumner
6cdb7e77dd Handle blocking initial read 2022-11-15 21:01:08 -08:00
Jarred Sumner
0e7ed4c667 Prevent blocking write() 2022-11-15 20:57:21 -08:00
Jarred Sumner
3b802c9a13 Add non-standard headers API types
cc @colinhacks @Electroid
2022-11-15 18:32:57 -08:00
Jarred Sumner
996e5dd235 Add test for non-standard Headers API additions 2022-11-15 18:31:22 -08:00
Dylan Conway
025749027b add generated getter/setter type with thisValue (#1513) 2022-11-15 17:47:38 -08:00
Jarred Sumner
44babb9ce5 Update ZigGlobalObject.cpp 2022-11-15 00:12:34 -08:00
Jarred Sumner
a63fe2be24 Add a test with decently large headers 2022-11-15 00:12:34 -08:00
Jarred Sumner
bf75f61ddf Update test types a little
cc @colinhacks

`test` is an alias of `it`

`done` accepts an `error` object
2022-11-15 00:12:34 -08:00
Jarred Sumner
1b608fcc8a Add missing type 2022-11-15 00:12:34 -08:00
Dylan Conway
c4cf38601b switch default encoding order (#1510) 2022-11-14 22:00:45 -08:00
Jarred Sumner
25fc19e7c6 Fix spawn macOS issue 2022-11-14 21:52:04 -08:00
Jarred Sumner
9c3b2f7ad6 Fix crash in web crypto. caused by refptr 2022-11-14 19:55:48 -08:00
Jarred Sumner
436b8e1461 Fix crashiness with process.env
This also makes it a lot slower
2022-11-14 17:53:15 -08:00
Jarred Sumner
272e71fec2 Fix string encoding issue in JSC C API usages 2022-11-14 17:53:15 -08:00
Jarred Sumner
4ba97c7687 Prevent double-frees in log msgs 2022-11-14 17:53:15 -08:00
Jarred SUmner
3df5843503 Fix build error 2022-11-14 04:14:23 -08:00
Jarred SUmner
20eff9f6d2 Bugfixes and perf improvements to child_process 2022-11-14 04:08:36 -08:00
Jarred Sumner
69eedb4c92 use write$NOCANCEL, more logging 2022-11-13 21:57:14 -08:00
Jarred Sumner
4a8bbc2216 Add an e2e test 2022-11-13 20:51:27 -08:00
Jarred Sumner
92b766095d Add missing rmdir export 2022-11-13 20:09:37 -08:00
Jarred Sumner
b18e4064a2 Make node streams faster (#1502)
* Make node streams faster

* Fix for macOS, improve performance, handle ref and unref

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-11-13 19:14:44 -08:00
Jarred Sumner
58b67347e6 Fix incorrect exit status message 2022-11-13 02:38:54 -08:00
Jarred Sumner
1a0fb4cf83 Fix syntax error 2022-11-12 23:43:24 -08:00
Jarred SUmner
6393e1e709 Set linker script to Bun 0.2 2022-11-12 20:40:04 -08:00
Jarred SUmner
a78b6f920d Fix infinite write loop on Linux 2022-11-12 20:28:10 -08:00
Jarred SUmner
7da520b22e Add missing type 2022-11-12 20:28:10 -08:00
Tom Birch
45dc75b3be Add linker script to remove unwanted exports (#1499) 2022-11-12 20:22:38 -08:00
Jarred SUmner
1cce9da80a Fix memory leak in gzip pool + add test for gzip'd data 2022-11-12 18:32:53 -08:00
Jarred Sumner
21bf3ddaf2 Redo how we poll pipes (#1496)
* Fix pipe

* Handle unregistered

* Fix failing test
2022-11-12 18:30:12 -08:00
Jarred Sumner
514f2a8edd Add test that fails on linux 2022-11-11 16:02:35 -08:00
Jarred Sumner
5f5d74c534 2 frames 2022-11-11 04:18:15 -08:00
Jarred Sumner
b3b70035a1 Revert "Omit frame pointer"
This reverts commit 4f91f66a37.
2022-11-11 02:10:16 -08:00
Jarred Sumner
666f5c5ea9 Don't rm cached 2022-11-11 01:12:41 -08:00
Jarred Sumner
55488ad77f try this 2022-11-11 00:51:39 -08:00
Jarred Sumner
23fd28afc3 Update bun-linux-build.yml 2022-11-11 00:48:39 -08:00
Jarred Sumner
f6cb20f516 try using git action 2022-11-11 00:48:05 -08:00
Jarred Sumner
096abc638a Remove with git rm 2022-11-11 00:43:55 -08:00
Jarred Sumner
d3fc1ee7d2 Reactivate 2022-11-11 00:43:18 -08:00
Jarred Sumner
cd2bf2591d Re-add 2022-11-11 00:42:58 -08:00
Jarred Sumner
8428bd90a3 Delete .keep 2022-11-11 00:38:20 -08:00
Jarred Sumner
6872af907c Update .gitmodules 2022-11-11 00:38:09 -08:00
Jarred Sumner
dc906ba0c7 Create .keep 2022-11-11 00:37:10 -08:00
Jarred Sumner
36b814de57 Delete libbacktrace 2022-11-11 00:34:44 -08:00
Jarred Sumner
142ad97886 Update main.zig 2022-11-11 00:33:10 -08:00
Jarred Sumner
cbc3daf739 Update .gitmodules 2022-11-11 00:30:05 -08:00
Jarred Sumner
4f91f66a37 Omit frame pointer 2022-11-11 00:28:45 -08:00
Jarred Sumner
1671e3cc7e Remove dead code 2022-11-11 00:20:42 -08:00
Jarred Sumner
24a85f8de6 Improve error message 2022-11-11 00:20:42 -08:00
Jarred Sumner
2432150321 Replace libbacktrace with WTFGetBacktrace 2022-11-11 00:20:42 -08:00
Ashcon Partovi
38141e3aa7 Allow install script to specify debug-info variant with debug symbols (#1484) 2022-11-10 20:14:41 -08:00
Jarred Sumner
5f5ef81f11 [bun install] Support implicit pre tags in dependency versions 2022-11-10 19:52:39 -08:00
Jarred Sumner
a1e786011d [bun run] Fix potential crash when a command terminates abnormally 2022-11-10 19:50:35 -08:00
Jarred Sumner
7b4c8802a1 ✂️ 2022-11-10 15:07:12 -08:00
Jarred Sumner
dddbce8a41 Implement napi_create_external and napi_get_value_external 2022-11-10 15:05:23 -08:00
Dylan Conway
7ce8328d28 add ... switch case (#1482) 2022-11-10 13:08:32 -08:00
Jarred Sumner
b62c45fea3 Increase stackframe count 2022-11-10 00:02:16 -08:00
Jarred Sumner
7deca69820 Update websocket-server.test.ts 2022-11-09 23:57:24 -08:00
Jarred Sumner
8753c483ff Implement Server.publish()
Fixes https://github.com/oven-sh/bun/issues/1417
2022-11-09 23:54:56 -08:00
Jarred Sumner
2149e1f0a0 Update server.zig 2022-11-09 23:42:36 -08:00
Jarred Sumner
c52ebd96ba Fix crash when an exception occurs in open() 2022-11-09 23:42:30 -08:00
Jarred Sumner
904716f56b Clone all the strings 2022-11-09 22:55:10 -08:00
Jarred Sumner
a858261832 Clone the text 2022-11-09 22:45:02 -08:00
Jarred Sumner
9fccbf9364 Remove bun:wrap from stack traces 2022-11-09 22:44:45 -08:00
Jarred Sumner
41a023e21d Add another log 2022-11-09 18:56:17 -08:00
Jarred Sumner
cf378d51fd Fix broken stacktraces 2022-11-09 18:56:17 -08:00
Derrick Farris
7f5022db0c fix(child_process): fix execFileSync options.input (#1479)
* fix(child_process): fix execFileSync options.input

* fix(child_process): debug err, check for Uint8Array too

* fix(child_process): fix ArrayBufferIsView call

* test(child_process): fix missing toString() call on test result

* refactor(child_process): change options.input to input to getter calls
2022-11-09 18:10:29 -08:00
Jarred Sumner
9ea025c543 remove this
wrong approach
2022-11-09 17:23:48 -08:00
Jarred Sumner
477747142a Update bun-types-tests.yml 2022-11-09 17:13:54 -08:00
Jarred Sumner
29b0e3eaf7 Only run this for bun-types 2022-11-09 17:12:44 -08:00
Jarred Sumner
9ab21ceb59 Clarify 2022-11-09 17:11:25 -08:00
Colin McDonnell
f7f1b60444 Add bun-types, add typechecking, add child_process types (#1475)
* Add bun-types to packages

* Improve typing

* Fix types in tests

* Fix dts tests

* Run formatter

* Fix all type errors

* Add strict mode, fix type errors

* Add ffi changes

* Move workflows to root

* Add workflows

* Remove labeler

* Add child_process types

* Fix synthetic defaults issue

* Remove docs

* Move scripts

* Run prettier

* Include examples in typechecking

* captureStackTrace types

* moved captureStackTrace types to globals

* Address reviews

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com>
2022-11-09 15:40:40 -08:00
Jarred Sumner
da257336b0 Fix #1354 2022-11-09 15:11:14 -08:00
Jarred Sumner
565996a087 Support TypeScript satisfies
Credit: @magic-akari, almost identical diff in https://github.com/evanw/esbuild/pull/2509/files#diff-ccc0bde7223236d93490b727b272f15765a2674be12a4c310b83b9555bef8816
2022-11-09 01:30:02 -08:00
Jarred Sumner
fac1c49727 Fixup 2022-11-09 01:15:36 -08:00
Jarred Sumner
3a760ec0ec Update response.zig 2022-11-09 01:12:35 -08:00
Jarred Sumner
d90a638101 Re-enable workaround for 127.0.0.01 2022-11-09 01:12:35 -08:00
Dylan Conway
047a8d3f0d Error.captureStackTrace implementation (#1476)
* capture stack trace formatting, tests

* fix callsite methods, stack formatting or undefined

* isNative, tests for callsite methods

* Update src/bun.js/bindings/ZigGlobalObject.cpp

* Update src/bun.js/bindings/ZigGlobalObject.cpp

* template and macros for visitchildren

* static strings, handle infinity and clamp stacktracelimit

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-11-09 00:37:57 -08:00
Jarred Sumner
2c4777f579 [libarchive][bun install] Fix file permissions not always being passed correctly in bun install
Fixes #1092
2022-11-09 00:32:50 -08:00
Jarred Sumner
0642cf31f3 [bun install] Support bin with bun link 2022-11-08 23:51:02 -08:00
Jarred Sumner
b1b3f7af54 Update bindings.cpp 2022-11-08 22:39:45 -08:00
Jarred Sumner
cb41d77d2a Fixes #1426 2022-11-08 22:27:22 -08:00
Jarred Sumner
0fd7d3a8c3 Fix incorrectly reporting URL sizes to GC in some cases 2022-11-08 22:26:58 -08:00
Jarred Sumner
8bc459ba99 Guard against closing the same pid twice 2022-11-08 22:08:49 -08:00
Jarred Sumner
5c312ec0c9 Only perform this check on macOS 2022-11-08 22:07:59 -08:00
Jarred Sumner
bf92c36be1 Fixes #1320
Tests pass now on linux
2022-11-08 22:05:59 -08:00
Jarred Sumner
253cb391b3 Remove base64 library 2022-11-08 21:32:08 -08:00
Jarred Sumner
55c262a321 handle undefined better 2022-11-08 21:31:21 -08:00
Jarred Sumner
af3931371e Fix Buffer.from(text, "base64") and Buffer.toString("base64") 2022-11-08 21:30:54 -08:00
Derrick Farris
9ccc455f8d Fix child_process tests (#1471)
* test(child_process): fix broken tests, add our-assert pkg for testing

* test(child_process): replace console.log with debug()

* test(child_process): rename our-assert -> node-test-helpers, use Bun.peek for subproc.exited
2022-11-08 15:33:47 -08:00
Jarred Sumner
8b0a3c75cb Fix #1473 2022-11-08 15:30:09 -08:00
Jarred Sumner
fac4efb9b9 Add a test for DOMJIT call version of TextDecoder 2022-11-08 15:28:30 -08:00
Jarred Sumner
f17080df7f Add a couple more tests for typeof 2022-11-08 15:27:55 -08:00
Jarred Sumner
2077e563b7 Fix failing transpiler tests 2022-11-08 15:26:29 -08:00
Jarred Sumner
1604666988 20% faster TextDecoder on small inputs 2022-11-08 12:55:45 -08:00
Jarred Sumner
6c6e680d91 Allow read_only packages to check the cache 2022-11-08 03:02:20 -08:00
Jarred Sumner
9f222c5ed2 Default enable optional dependencies for remote packages 2022-11-08 03:01:41 -08:00
Jarred Sumner
3d0b297306 Fix error message 2022-11-08 03:01:30 -08:00
Jarred Sumner
ce5cbb0491 Install optional dependencies for auto-install 2022-11-08 03:01:12 -08:00
Jarred Sumner
9bf03a84c1 Update crypto.js 2022-11-08 00:29:32 -08:00
Jarred Sumner
3e9bb6859b Stack allocate arguments to make it actually threadsafe 2022-11-08 00:28:14 -08:00
Jarred Sumner
86f0b08b8d Add missing exports 2022-11-08 00:14:17 -08:00
Jarred Sumner
38db5f1c83 Fix Buffer.slice and Buffer.subarray 2022-11-08 00:07:25 -08:00
Jarred Sumner
9f10724eda cast 2022-11-07 21:53:31 -08:00
Jarred Sumner
bb8c803bdf Fix newline normalization
credit: @Validark
2022-11-07 21:43:38 -08:00
Jarred Sumner
9d167deb10 Credit: @Validark 2022-11-07 21:43:38 -08:00
Niles Salter
093fe1bae9 Add more tags to be usable with typeof (#1258) 2022-11-07 21:10:19 -08:00
Niles Salter
9dc3fbcfc4 Remove improper coercion of environment variables (#1256) 2022-11-07 21:04:49 -08:00
Jarred Sumner
be9bab5c29 Update ZigGlobalObject.cpp 2022-11-07 20:52:21 -08:00
Jarred Sumner
52eac73726 Fix peek test 2022-11-07 20:49:19 -08:00
Jarred Sumner
f05e23ed20 Return a rejected promise if there was an error 2022-11-07 20:43:53 -08:00
Jarred Sumner
b4abb0f337 Visit all the fields 2022-11-07 20:43:34 -08:00
Jarred Sumner
41c983b386 clean up some reliability issues with automatic install 2022-11-07 19:50:54 -08:00
Jarred Sumner
f84b2ec6d1 Handle threadsafety issue 2022-11-07 19:50:54 -08:00
Ikko Ashimine
e0cb7e4342 Fix typo in Dockerfile (#1468)
specifc -> specific
2022-11-07 18:39:44 -08:00
Jarred Sumner
204f514633 [JS Parser] Do not perform the visit pass if the parse pass had "tolerable" errors 2022-11-07 16:00:14 -08:00
Jarred Sumner
5005188a13 Fix a couple failing tests 2022-11-07 15:20:47 -08:00
Jarred Sumner
8189f78eed Maybe fix bug with onExit callback? 2022-11-07 14:57:47 -08:00
Jarred Sumner
2eb19a96b1 Support unlimited arguments in process.nextTick 2022-11-07 14:14:19 -08:00
Jarred Sumner
fd26d2e9fa Fix missing error in process.nextTick and queueMicrotask 2022-11-07 14:13:55 -08:00
Jarred Sumner
370d9c2931 [bun:test] Rejected promises should cause tests to fail 2022-11-07 05:13:54 -08:00
Jarred Sumner
c00359a521 [bun:test] Implement done callback with support for async functions 2022-11-07 04:49:10 -08:00
Jarred Sumner
71d0e14210 [bun:test] Implement expect in faster Zig bindings 2022-11-07 00:53:24 -08:00
Jarred Sumner
d925367cae [bindings generator] Support cached values that do not correspond to properties and support call() functions 2022-11-07 00:51:36 -08:00
Jarred Sumner
179cd18f70 Handle types which do not support getting an object 2022-11-07 00:50:49 -08:00
Jarred Sumner
072cd5a745 Fix UAF in canary 2022-11-07 00:50:32 -08:00
Jarred Sumner
c52d9fd1b6 Bump 2022-11-06 21:45:45 -08:00
Jarred Sumner
e45f72e8e4 Automatically install npm packages when running a script in Bun's runtime (#1459)
* Update bundler.zig

* WIP

* Update README.md

* Update README.md

* wip

* Support running scripts without package.json

* Add `--no-auto-install` and `--prefer-offline` flags

* WIP

* wip

* Update headers-handwritten.h

* WIP

* Build fixes

* Fix UAF

* Update install.zig

* Must call .allocate()

* Micro-optimization: only call .timestamp() once per tick when installing packages

* Support progress bar

* Extend the timestamp for package staleness checks to 1 day

* Add `--prefer-latest`, `-i` CLI Flags

* Fix crash

* Support line text manually being set on an Error instance

* Add a few more fields for error messages

* Fix bug when counting 8 character strings in string builder

* Implement error handling for automatic package installs!

* Fix crash

* Make it say module when there's a slash

* Update module_loader.zig

* Ban dependency versions in import specifiers when a package.json is present

* Remove unused field

* Update README.md

* Update README.md

* Update README.md

* Update README.md

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-11-06 21:42:05 -08:00
Carter Snook
645cf90335 chore: remove space lookalike (#1465) 2022-11-06 18:03:06 -08:00
Jarred Sumner
e5b2e3c602 Fixes https://github.com/oven-sh/bun/issues/1451 2022-11-06 18:00:01 -08:00
Jarred Sumner
897d7bd564 Add way to explicitly coercion object to int32 2022-11-06 17:59:32 -08:00
Jarred Sumner
07cb04e311 Fix symbol error with make headers
cc @lawrencecchen
2022-11-06 17:45:16 -08:00
Jarred Sumner
b1fcc9e6bf Fix bug when passing ABI Types as integers 2022-11-06 17:45:05 -08:00
Jarred Sumner
1f174b9d95 Fixes https://github.com/oven-sh/bun/issues/1462 2022-11-06 16:14:46 -08:00
Jarred Sumner
c154402c45 Undo 2022-11-06 16:02:10 -08:00
Jarred Sumner
17b8056b31 Update action.yml 2022-11-06 15:45:28 -08:00
Jarred Sumner
40160ec6d6 Prettier 2022-11-06 15:35:35 -08:00
Jarred Sumner
fe92a89b93 Pass tar -C 2022-11-06 15:35:18 -08:00
Jarred Sumner
1cb5a73243 [TypeScript] Fix export = value 2022-11-06 15:26:12 -08:00
Jarred Sumner
70fa1564c2 Fix artifact name, use tarball 2022-11-06 15:02:58 -08:00
Jarred Sumner
fcd8397db2 Try tarball 2022-11-06 14:51:44 -08:00
Jarred Sumner
4688d72945 Try again 2022-11-06 14:33:04 -08:00
Jarred Sumner
c55f59e030 Node12 is deprecated 2022-11-06 14:09:24 -08:00
Derrick Farris
be108c0fea feat(child_process): add node:child_process polyfill (#1424)
* feat(child_process): beginning of child_process, add ChildProcess and spawn base case

* fix(child_process): remove invalid single arg array syntax (thanks Copilot)

* refactor(child_process): unhack Readable.on, move stuff into node:stream

* feat(child_process): add more params for spawn, refactor, add fromWeb() to Readable

* feat(child_process): finish rest of exports (minus fork), refactor, add tests

* cleanup(streams): remove a bunch of unnecessary stuff

* cleanup(child_process): remove dead refs

* fix(child_process): fix stdio

* fix(child_process): change stdio to bunStdio

* test(child_process): uncomment timeout test

* test(child_process): fix hanging tests

* test(child_process): remove stray console.log

* test(child_process): fix cwd test for linux

* refactor(child_process): divide paths for encoded vs raw execFile stdio

* fix(child_process): fix logic for execFile slow path
2022-11-06 13:43:42 -08:00
Derrick Farris
4e3fb8ed5b fix(subprocess): fix typo in spawnSync (#1464) 2022-11-06 03:41:32 -08:00
zhiyuan
9d3f1e0d26 Fix fetch api to accept stringifier object (#1460)
* fetch accept stringifier object

* test: update fetch params tests
2022-11-05 18:51:02 -07:00
Jarred Sumner
88ca7fd738 Fix crash in setTimeout/setInterval 2022-11-03 23:38:23 -07:00
Jarred Sumner
30e1fe1035 Fix incorrect exit code 2022-11-03 23:38:07 -07:00
Jarred Sumner
562595fa02 Fix crash when reading promise value wihtout checking if null 2022-11-03 23:37:54 -07:00
Jarred Sumner
d6520cd761 Fix which not handling absolute paths to a bin
This code has not been tested.
2022-11-03 23:22:51 -07:00
Jarred Sumner
13cfca4814 Fix cmd not found in $PATH printing raw struct 2022-11-03 23:02:49 -07:00
Jarred Sumner
e20461d961 Delete unused file 2022-11-03 23:02:23 -07:00
Colin McDonnell
d04c0d51fe Add minified prod build of react-dom/server.bun (#1458)
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2022-11-03 18:10:42 -07:00
Hyro
a5b25c5a79 chore: remove unecessary files (#1457)
* Delete labeler.yml

* Delete labels.yml
2022-11-03 12:42:44 -07:00
Jarred Sumner
6142715c06 Introduce import.meta.primordials for builtin JS
the `import.meta` object in Bun now has a `primordials` object which makes a handful of globals safe for access. Inside of bun: or node: modules, it is a special object (ownKeys is not implemented, so Object.keys() wont work on it)

- Array
- String
- `isPromise`
- `isCallable`
- `isConstructable`
- `tryGetById(foo, "bar')` which is like foo?.bar
- `arrayPush` which is like `Array.prototype.push`
- `Bun`
- `isAbortSignal`

cc @ThatOneBro @lawrencecchen
2022-11-03 00:18:26 -07:00
Jarred Sumner
34e130a3e0 Add a misc snippet 2022-11-02 20:46:24 -07:00
Jarred Sumner
09434f1486 Add failing test 2022-11-02 20:44:49 -07:00
Jarred Sumner
1a92b92f8a Add failing wildcard test 2022-11-02 20:44:13 -07:00
Jarred Sumner
fb903bb091 Update headers-handwritten.h 2022-11-02 20:10:12 -07:00
Jarred Sumner
34fce03f0f Add missing headers 2022-11-02 20:09:38 -07:00
Jarred Sumner
bfa40d1d3f Fix 4/4 failing tests 2022-11-02 20:00:44 -07:00
Jarred Sumner
f829bd7190 Fix 5/9 failing tests 2022-11-02 19:55:45 -07:00
Jarred Sumner
ab4e662484 Update ZigGlobalObject.cpp 2022-11-02 19:37:06 -07:00
Jarred Sumner
35ba83584f Fixes #1448 #1450 2022-11-02 19:25:52 -07:00
Jarred Sumner
50cf083668 Fix missing functions 2022-11-02 18:54:42 -07:00
João Paquim
dd9325d8c9 Fix $PATH on dev container (#1439)
* Fix $PATH for bun on devcontainer

* Use cat in dev container postCreateCommand
2022-11-02 17:34:20 -07:00
Jarred Sumner
3b7626aacb Fixup 2022-11-02 17:19:50 -07:00
Jarred Sumner
a9aa3e732c Fix memory leak 2022-11-02 17:15:28 -07:00
Jarred Sumner
ae0ea761ce Update ffi.exports.js 2022-11-02 13:59:39 -07:00
Jarred Sumner
1a3a0adc63 Add way to know if JSCallback is threadsafe 2022-11-02 13:44:37 -07:00
Jarred Sumner
006a2f37dd [bun:ffi] Add threadsafe option to callbacks 2022-11-02 13:35:49 -07:00
Bram Wasti
65b543fba6 Update ffi.zig (#1449) 2022-11-02 11:11:23 -07:00
Jarred Sumner
b459d09030 Update README.md 2022-11-02 01:47:27 -07:00
Jarred Sumner
97fa2702d1 Update README.md 2022-11-02 01:45:42 -07:00
Jarred Sumner
4af4d3eeca Update README.md 2022-11-02 01:43:10 -07:00
Jarred Sumner
1e0155faf2 Flip the callback order 2022-11-02 01:27:54 -07:00
Jarred Sumner
81033c52fb [bun:ffi] Implement JSCallback so C can call into JS 2022-11-02 01:16:13 -07:00
Jarred Sumner
86639fe62a Improve async function handling code in setTimeout and setInterval
Should fix
2022-11-02 00:14:32 -07:00
Dylan Conway
54e7a6f57a typescript decorators round 2 (#1445)
* __decorateClass, __decorateParam, lit test, wiptest test

* decorator factories test

* parameter decorator test

* test for decorators with constructor parameter properties

* Fix issue with `CryptoKey` and `SubtleCrypto` constructors

* Limit concurrency for GitHub Actions due to issues with cache poisoning
If multiple actions are running, sometimes the cache is poisoned from another action. We need to fix this, but this is an interim measure to make actions less flaky

* Make these tests better

* Move this to dependencies so the .a files upload

* Fixup

* temporary fix

* Limit concurrency for MacOS Object actions

* try againn

* againn

* Make `"tls"` an explicit object we pass instead of implicit top-level options

cc @Electroid @colinhacks

* Update server.zig

* Prefer `BUN_PORT` over `PORT`

* Fix typo in homebrew action

* Run homebrew action when release is edited

* Check published_at instead of draft in GitHub action

* Implement `process.release`

* Add missing dependencies to `make devcontainer`

* Allow overriding node polyfills via `BUN_OVERRIDE_MODULE_PATH`

* Add a stub for io_darwin on linux

cc @sno2 hopefully this helps but i'm not sure

* Add missing `break`

* Download more RAM

* feat(core): optimize zig slice (#1408)

* feat(core): optimize zig slice

* address concerns

* Remove webcrypto from vendor-without-check

* Update default tsconfig (#1418)

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>

* Enable `BUN_OVERRIDE_MODULE_PATH` in `bun wiptest`

* Upgrade WebKit

* space

* Support getting cached values and pending activity in the bindings generator

* Remove ✂️ function

* constructor creation, initializers, handle static and computed fields with decorators

* Updating libuwebsockets C API (#1423)

* fix for repeated regex match calls and fix for '^' in character classes (#1419)

* tests and formatting

* fix for ^ in character class

* formatting

* test for repeated match and exec calls

* create oniguruma regex for each exec/test

* check errorCode from creating oniguruma regexp and always return {} on failure

* oops

* call onig_initialize once

* fix incorrect escaping, removed unnecessary oniguruma settings

* tests for "-" and "^" in character classes

* free regex object before returns

* force gc for some tests

* Update React fizz server (#1432)

* Update fizz server

* Use production build

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>

* more decorator tests

* optional setup function for loading elements, simulate clicks in lit test

* fix createWriteStream (#1433)

* fix createWriteStream

* remove comment

* Update build docs and commands for dev containers (#1438)

* Update build documentation for dev containers

* Add devcontainer-rebuild make target

* Add make devcontainer-sh target

* Fix missing .PHONY for vendor-without-check (#1437)

* Fix check for ninja on Debian/Ubuntu (#1436)

Even though the package is named ninja-build, the ninja binary is still
named ninja, so use `which ninja` to check for it

* Fix #1410

woops

* await on DOMContentLoaded for elements instead of setup function

* avoid lowering class if no decorators

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: Ashcon Partovi <ashcon@partovi.net>
Co-authored-by: Carter Snook <cartersnook04@gmail.com>
Co-authored-by: Colin McDonnell <colinmcd94@gmail.com>
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
Co-authored-by: Ciro Spaciari <ciro.spaciari@gmail.com>
Co-authored-by: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com>
Co-authored-by: João Paquim <jpaquim@users.noreply.github.com>
2022-11-01 21:25:30 -07:00
Ashcon Partovi
32826119fc Delete labeler.yml 2022-11-01 17:07:24 -07:00
Ashcon Partovi
12f586eeb7 Delete label-sync.yml 2022-11-01 17:07:17 -07:00
Jarred Sumner
f9f169bb9e Fix #1410
woops
2022-11-01 14:34:51 -07:00
João Paquim
2fe27fdeea Fix check for ninja on Debian/Ubuntu (#1436)
Even though the package is named ninja-build, the ninja binary is still
named ninja, so use `which ninja` to check for it
2022-11-01 13:30:09 -07:00
João Paquim
19afe95cc6 Fix missing .PHONY for vendor-without-check (#1437) 2022-11-01 13:29:50 -07:00
João Paquim
af410879cd Update build docs and commands for dev containers (#1438)
* Update build documentation for dev containers

* Add devcontainer-rebuild make target

* Add make devcontainer-sh target
2022-11-01 13:29:30 -07:00
Lawrence Chen
26e32ec1cb fix createWriteStream (#1433)
* fix createWriteStream

* remove comment
2022-11-01 02:26:51 -07:00
Colin McDonnell
3a60764f32 Update React fizz server (#1432)
* Update fizz server

* Use production build

Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2022-10-31 22:10:28 -07:00
Dylan Conway
5398ed52d8 fix for repeated regex match calls and fix for '^' in character classes (#1419)
* tests and formatting

* fix for ^ in character class

* formatting

* test for repeated match and exec calls

* create oniguruma regex for each exec/test

* check errorCode from creating oniguruma regexp and always return {} on failure

* oops

* call onig_initialize once

* fix incorrect escaping, removed unnecessary oniguruma settings

* tests for "-" and "^" in character classes

* free regex object before returns

* force gc for some tests
2022-10-31 22:00:26 -07:00
Ciro Spaciari
6ede31cb04 Updating libuwebsockets C API (#1423) 2022-10-30 01:03:11 -07:00
Jarred Sumner
88ddb103f2 Remove ✂️ function 2022-10-28 19:01:23 -07:00
Jarred Sumner
525d055d4a Support getting cached values and pending activity in the bindings generator 2022-10-28 19:01:13 -07:00
Jarred Sumner
4c8a08d6ba space 2022-10-28 18:58:05 -07:00
Jarred Sumner
280c45c269 Upgrade WebKit 2022-10-28 18:57:33 -07:00
Jarred Sumner
8bb080fc7c Enable BUN_OVERRIDE_MODULE_PATH in bun wiptest 2022-10-28 18:09:55 -07:00
Colin McDonnell
619d931568 Update default tsconfig (#1418)
Co-authored-by: Colin McDonnell <colinmcd@alum.mit.edu>
2022-10-28 17:06:00 -07:00
Jarred Sumner
50a3853eb4 Remove webcrypto from vendor-without-check 2022-10-28 16:18:01 -07:00
Carter Snook
0bfd00e734 feat(core): optimize zig slice (#1408)
* feat(core): optimize zig slice

* address concerns
2022-10-27 21:25:32 -07:00
Jarred Sumner
0b1d4ff81b Download more RAM 2022-10-27 19:04:51 -07:00
Jarred Sumner
792ad30a8c Add missing break 2022-10-27 18:31:45 -07:00
Jarred Sumner
ed5595f792 Add a stub for io_darwin on linux
cc @sno2 hopefully this helps but i'm not sure
2022-10-27 18:26:32 -07:00
Jarred Sumner
5c8cbf9806 Allow overriding node polyfills via BUN_OVERRIDE_MODULE_PATH 2022-10-27 18:25:43 -07:00
Jarred Sumner
57342459dd Add missing dependencies to make devcontainer 2022-10-27 16:22:32 -07:00
Jarred Sumner
901c4f57aa Implement process.release 2022-10-27 15:09:20 -07:00
Ashcon Partovi
1c6da5934d Check published_at instead of draft in GitHub action 2022-10-27 10:38:18 -07:00
Ashcon Partovi
e5344bfcc5 Run homebrew action when release is edited 2022-10-27 10:36:59 -07:00
Ashcon Partovi
46a85358d7 Fix typo in homebrew action 2022-10-27 10:32:00 -07:00
Jarred Sumner
6632135ec0 Prefer BUN_PORT over PORT 2022-10-26 21:06:02 -07:00
Jarred Sumner
7b73dcf906 Update server.zig 2022-10-26 21:05:53 -07:00
Jarred Sumner
75b1ef1ef4 Make "tls" an explicit object we pass instead of implicit top-level options
cc @Electroid @colinhacks
2022-10-26 21:04:12 -07:00
Jarred Sumner
830f83a44d againn 2022-10-26 17:50:35 -07:00
Jarred Sumner
88d6615e4e try againn 2022-10-26 17:07:22 -07:00
Ashcon Partovi
cc1b340cff Limit concurrency for MacOS Object actions 2022-10-26 16:41:29 -07:00
Jarred Sumner
8ccf5a07ca temporary fix 2022-10-26 16:33:08 -07:00
Jarred Sumner
10a8c6acdd Fixup 2022-10-26 16:31:49 -07:00
Jarred Sumner
2cd1d44739 Move this to dependencies so the .a files upload 2022-10-26 16:30:28 -07:00
Jarred Sumner
de536fc953 Make these tests better 2022-10-26 16:29:46 -07:00
Ashcon Partovi
a1456767f7 Limit concurrency for GitHub Actions due to issues with cache poisoning
If multiple actions are running, sometimes the cache is poisoned from another action. We need to fix this, but this is an interim measure to make actions less flaky
2022-10-26 16:21:51 -07:00
Jarred Sumner
e0feff22c9 Fix issue with CryptoKey and SubtleCrypto constructors 2022-10-26 15:28:27 -07:00
João Paquim
44ff09015c Minor fixes to README.md (#1395) 2022-10-26 10:23:51 -07:00
João Paquim
3c45182097 Update Dev Containers extension name (#1393) 2022-10-26 09:23:33 -07:00
Jarred Sumner
c02da2c5a6 Fix failing macOS build 2022-10-25 23:32:04 -07:00
Jarred Sumner
5cd91fa1a3 Update Makefile 2022-10-25 23:11:42 -07:00
Jarred Sumner
d21739af1a Update Makefile 2022-10-25 23:11:42 -07:00
Jarred Sumner
bd372e9cf4 Update Makefile 2022-10-25 23:11:42 -07:00
Ashcon Partovi
afe04aa8bf Add action to deploy to Homebrew 2022-10-25 23:03:20 -07:00
Jarred Sumner
9b2bad8bed Update Makefile 2022-10-25 22:41:26 -07:00
Jarred Sumner
7622f2e339 Fix crash in TCP server 2022-10-25 21:41:20 -07:00
Jarred Sumner
3d05cb017d Update Makefile 2022-10-25 20:53:08 -07:00
Jarred Sumner
1c54deab52 Update README.md 2022-10-25 18:03:07 -07:00
zhiyuan
28d71e2d9f Fix lexer expected token error (#1387)
* fix: lexer expected token error

* fix: handle parse error through logs
2022-10-25 12:34:40 -07:00
Jarred Sumner
02c920f4fd TCP & TLS Socket API (#1374)
* TCP Socket API

* Wip

* Add snippet for StringDecoder

* Rename `close` to `stop`, replace `close` with `end`

* Add a tcp echo server test

* Some docs

* Update README.md

* Fix build

* Update README.md

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-10-25 00:44:25 -07:00
Dylan Conway
1b50ecc52b oniguruma regex lookbehind and multibyte hex fix (#1363)
* handle multibyte hex characters

* non extended strings used for toString() and source

* add hasIndices flags

* more tests for lookbehinds, unicode, and hex characters

* handled case when hex doesnt have enough digit, more tests

* fix adding characters out of bounds

* backslash in character class

* compile() returns object

* escape special characters in oniguruma character class
2022-10-24 19:02:56 -07:00
Jarred Sumner
f8ea534f3b Hopefully fix failing build 2022-10-24 16:38:56 -07:00
Jarred Sumner
9aea2f90a5 Maybe fix a crash 2022-10-24 16:38:32 -07:00
Jarred Sumner
38cc698b4d Update README.md 2022-10-24 04:16:52 -07:00
Jarred Sumner
f13f465024 Update README.md 2022-10-24 04:13:29 -07:00
Jarred Sumner
e8d6ad6d66 Update README.md 2022-10-24 04:13:11 -07:00
Jarred Sumner
434f1bffad Update README.md 2022-10-24 04:12:32 -07:00
Jarred Sumner
0b0db78799 Bun.peek 2022-10-24 04:10:44 -07:00
Jarred Sumner
b3434a8b88 Add fd to SystemError and fix 2 cases with invalid tagged union
cc @sno2
2022-10-23 22:29:23 -07:00
Carter Snook
223ce77eca fix(web): stop segfault on invalid fd error (#1386) 2022-10-23 22:14:37 -07:00
Jarred Sumner
ec9787770e Preserve trailing newline when updating package.json
Fixes https://github.com/oven-sh/bun/issues/1375
2022-10-23 21:53:54 -07:00
Jarred Sumner
360a007f16 Fix ReadableStream.prototype.tee 2022-10-23 21:30:50 -07:00
Jarred Sumner
76652ac3ca Add Web Crypto API (#1384)
* Add Web Crypto API

* Duplicate symbols

* Update c_cpp_properties.json

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-10-23 20:25:18 -07:00
Carter Snook
14cec299f5 fix(fetch): stop new Response(null) from segfaulting (#1383)
* fix(fetch): resolve segfaults with 'Response'

* nit: use shorter check
2022-10-23 18:27:03 -07:00
zhiyuan
55c42f1663 Fix spawn exitcode (#1371) 2022-10-22 09:41:56 -07:00
Jarred Sumner
85808700c8 Add sqlite to include list 2022-10-21 22:54:26 -07:00
Jarred Sumner
73fba0c5f1 Codegen 2022-10-21 22:54:17 -07:00
Jarred Sumner
7060008b83 Treat invalid buffer value as utf8 string 2022-10-21 22:53:32 -07:00
Jarred Sumner
ae4f2d63c8 Add test for fs.createReadStream 2022-10-21 22:50:23 -07:00
Jarred Sumner
9129309f0a Implement fs.createReadStream, begin fs.createWriteStream 2022-10-21 22:50:06 -07:00
Jarred Sumner
c987bdcbf9 Make Node Streams work better in Bun 2022-10-21 22:49:49 -07:00
Jarred Sumner
f6a451256f Fix error handling logic in read() 2022-10-21 22:49:19 -07:00
Jarred Sumner
71b942b581 Fix bugs in mask boolean values 2022-10-21 22:48:55 -07:00
Jarred Sumner
cd2e9e9dcf Emit errors 2022-10-21 22:47:58 -07:00
Jarred Sumner
347309b26f Add test for ResolveError.position being inspectable 2022-10-21 22:35:28 -07:00
Jarred Sumner
8d67870da4 Fix segfault when logging position object from failed nested import 2022-10-21 22:34:47 -07:00
Jarred Sumner
04e0583c31 Implement setMaxListeners and getMaxListeners 2022-10-21 21:13:50 -07:00
Jarred Sumner
c37d0be027 Fix import Foo, {bar} when from hardcoded builtin modules in runtime 2022-10-21 21:13:50 -07:00
Jarred Sumner
4c136cddd7 Fix test failure 2022-10-21 21:13:50 -07:00
Jarred Sumner
b50dc40fb8 Reload node:fs in development 2022-10-21 21:13:50 -07:00
Carter Snook
6160dc3995 chore: remove outdated var usages (#1364) 2022-10-21 09:54:13 -07:00
Jarred Sumner
a1f40400c1 Fix "/" in example 2022-10-21 01:09:37 -07:00
Jarred Sumner
c940f00e2d Fix infinite loop 2022-10-21 01:07:49 -07:00
Jarred Sumner
97ccbc189a micro-optimize 2022-10-21 01:07:49 -07:00
Ashcon Partovi
0a2c101c28 Update install script to use secure flags 2022-10-20 18:44:50 -07:00
Ashcon Partovi
c526a6bce8 Add installation method for Homebrew 2022-10-20 18:26:23 -07:00
Jarred Sumner
da9b2452a7 Fix crash in highWaterMark 2022-10-20 16:34:09 -07:00
zhiyuan
210ae2ffb2 Fix Bun.serve error handler error param (#1359) 2022-10-20 01:40:58 -07:00
Jarred Sumner
9f16906499 Fix calling ws.publish inside close when other clients are connected
This fixes https://github.com/oven-sh/bun/issues/1357
2022-10-19 19:54:20 -07:00
Lucas Garron
605c429770 Cache dir loader: Prefer $BUN_INSTALL and $XDG_CACHE_HOME to $HOME. (#1351)
This partially addresses https://github.com/oven-sh/bun/issues/696 , by using `$XDG_CACHE_HOME` for those of us who already have that env var set.
2022-10-19 16:19:50 -07:00
Ashcon Partovi
b064872d9a Improve issue templates (#1353) 2022-10-19 16:19:35 -07:00
Jarred Sumner
ff36fa8a53 Add websocket hot example 2022-10-19 02:36:22 -07:00
Jarred Sumner
19682b4225 Update README.md 2022-10-19 01:13:13 -07:00
Jarred Sumner
536bd72de9 Prettier 2022-10-19 00:18:15 -07:00
Jarred Sumner
87ca9948ec Allow returning a Response object when upgrading 2022-10-19 00:18:00 -07:00
Jarred Sumner
57e5c35277 latest 2022-10-18 23:05:23 -07:00
Jarred Sumner
8b4c3ec0c7 Add todo 2022-10-18 22:57:06 -07:00
Jarred Sumner
9c7eb75a9a websocker-server 2022-10-18 22:16:51 -07:00
Jarred Sumner
b0fe167910 Fix test 2022-10-18 22:16:51 -07:00
Aapo Alasuutari
6223030360 Use buffer type for Deno FFI binding to align with Bun usage (#1321)
* Use buffer type for Deno FFI binding to align with Bun usage

* Prettier
2022-10-18 21:12:33 -07:00
Dylan Conway
1835e4b9f9 get args fix (#1346)
* fix args.len < capacity check

* tests for args

* file name change

* switch to stdout.writer, use JSON for parsing

* bun-debug or bun

* missing arg
2022-10-18 20:11:17 -07:00
Ikko Ashimine
8ca49f906a Fix typo in datetime.zig (#1310)
containg -> contain
2022-10-18 18:48:53 -07:00
Jarred Sumner
dac6c48b1e woops 2022-10-18 18:21:53 -07:00
Jarred Sumner
2b0694ec8c Update uws 2022-10-18 17:40:34 -07:00
Jarred Sumner
26bfc4f0a3 Update uws 2022-10-18 16:57:25 -07:00
Jarred Sumner
fbec10758b Update uws 2022-10-18 16:41:13 -07:00
Jarred Sumner
30d43b027f Update javascript.zig 2022-10-18 13:48:50 -07:00
Jarred Sumner
693b1c9b23 Implement performance.timeOrigin 2022-10-18 13:36:44 -07:00
Jarred Sumner
ce0efc37cc build faiilures 2022-10-18 03:12:34 -07:00
Jarred Sumner
11c105aa1d Update uws 2022-10-18 02:44:23 -07:00
Jarred Sumner
9167aedcc8 y u no work 2022-10-18 00:32:49 -07:00
Jarred Sumner
fc4c3e3199 Fix build 2022-10-17 23:54:47 -07:00
Jarred Sumner
61a8490c66 Fix empty process.argv 2022-10-17 22:44:42 -07:00
Jarred Sumner
abd6e496ab Add oniguruma to Dockerfile
CC @dylan-conway so you have context in the future how to do this
2022-10-17 22:39:49 -07:00
Dylan Conway
8e1b2ba32e add oniguruma for regex with variable length lookbehinds (#1329)
* added pcre2 submodule

* pcre2 regex boilerplate

* tests for pcre2 regex

* flag validation, getters, construct and compile mostly working

* string escaping for source and toString(), exec, more tests

* flag sorting, match, matchAll, search, split, replace

* remove lib link

* add destructor to PCRE2RegExp

* header include

* removed ternary

* switched to oniguruma for regex library

* revert sql changes

* fix indices flag, add tests

* revert settings

* working error messages

* more tests for lastIndex, fix logic for compile and lastIndex

* move oniguruma lib to deps out dir
2022-10-17 22:37:18 -07:00
Jarred Sumner
c7fc8fdf96 Updates to UWS 2022-10-17 21:55:38 -07:00
Jarred Sumner
7f4bb93782 Slightly mroe careful TextEncoder 2022-10-17 21:49:00 -07:00
Jarred Sumner
a10a8e9c70 Load fewer copies of uWS 2022-10-17 21:48:37 -07:00
Jarred Sumner
b595ddf20d Fix error handler 2022-10-17 15:38:36 -07:00
Jarred Sumner
4bd9b20c8a Workaround crash 2022-10-17 07:25:10 -07:00
Jarred Sumner
9190061ba4 Update websocket-server.test.ts 2022-10-17 07:24:20 -07:00
Jarred Sumner
41f9fd85f6 Handle assertion faillure 2022-10-17 07:24:12 -07:00
Jarred Sumner
cdff2697ef Implement sendText, sendBinary, publishText, publishBinary 2022-10-17 06:53:18 -07:00
Jarred Sumner
ca02695993 Update README.md 2022-10-17 04:36:22 -07:00
Jarred Sumner
9a2f2a94bf Update README.md 2022-10-17 04:17:39 -07:00
Jarred Sumner
e22c245d08 Update README.md 2022-10-17 04:07:55 -07:00
Jarred Sumner
171242680d Update README.md 2022-10-17 03:58:53 -07:00
Jarred Sumner
5995f2ed71 Update README.md 2022-10-17 03:57:43 -07:00
Jarred Sumner
abbde39a02 Clean up some code 2022-10-17 03:33:37 -07:00
Jarred Sumner
e1a17aff4c Fix headers + add test 2022-10-17 03:25:50 -07:00
Jarred Sumner
b8c5646c49 More tests 2022-10-17 03:04:43 -07:00
Jarred Sumner
62b0b601c2 Implement error and binaryType 2022-10-17 03:03:46 -07:00
Jarred Sumner
e43b4815b5 Handle .zero better 2022-10-17 01:38:18 -07:00
Jarred Sumner
923d9c1bbb Redo 2022-10-17 00:41:29 -07:00
Jarred Sumner
e3a6007a76 Redo WebSocket api 2022-10-17 00:41:29 -07:00
Dennis Dudek
00ae8f79e4 Reflecting new home for bun templates (#1317)
* Reflecting new home for bun templates
https://github.com/bun-community/create-templates/

* templates now in root
2022-10-16 20:52:39 -07:00
Jarred Sumner
dc1330aef5 yml 2022-10-16 20:50:15 -07:00
Jarred Sumner
3c1e3792d6 Fix #1335 2022-10-16 20:43:43 -07:00
Jarred Sumner
603164e66a Revert "disable lto for UWS to workaround bug under load"
This reverts commit f356da1b5e.
2022-10-16 20:34:02 -07:00
Jarred Sumner
f19b5ce409 Disable InlineBlob optimization 2022-10-16 19:52:35 -07:00
Jarred Sumner
f356da1b5e disable lto for UWS to workaround bug under load 2022-10-16 19:02:20 -07:00
Jarred Sumner
07a2f80cbc Add a comment 2022-10-16 17:03:17 -07:00
Jarred Sumner
2888f43c8a Make debug logs configurable 2022-10-16 17:03:06 -07:00
Jarred Sumner
697e105ffa Name the thread 2022-10-16 17:02:56 -07:00
Jarred Sumner
5d7174d789 Changed api 2022-10-16 17:02:45 -07:00
Jarred Sumner
ab3b072249 snapshots 2022-10-16 17:02:35 -07:00
Jarred Sumner
690e79445d Update uws 2022-10-16 05:02:01 -07:00
Jarred Sumner
bce68bc898 Set Date header 2022-10-16 04:59:43 -07:00
Jarred Sumner
94091a7522 Make more sure we know what the types we are sending are 2022-10-16 00:14:07 -07:00
Jarred Sumner
2852520d90 Fix WebSocket server sending invalid data at the end 2022-10-16 00:13:51 -07:00
Jarred Sumner
abf3a13433 Fail earlier when there are encoding errors 2022-10-16 00:13:18 -07:00
Jarred Sumner
cebd351e61 Disable some logging 2022-10-15 22:55:48 -07:00
Jarred Sumner
19cff80af8 More careful code generator 2022-10-15 22:49:06 -07:00
Jarred Sumner
9830e50a29 Simplify code that turns a fetch() response into a JSResponse 2022-10-15 22:48:27 -07:00
Jarred Sumner
820e6605f8 Simplify the code that reads HTTP client request bodies 2022-10-15 22:47:18 -07:00
Jarred Sumner
c06bba77d4 Add test for body mixin error 2022-10-15 21:34:05 -07:00
Jarred Sumner
4ba217bc42 Dumber code is better code 2022-10-15 21:06:17 -07:00
Jarred Sumner
a42a9e901c Errors must return 0 instead of undefined 2022-10-15 21:06:08 -07:00
Jarred Sumner
3482d76175 Fix crash when BodyMixin functions throw
Fixes https://github.com/oven-sh/bun/issues/1331#issuecomment-1279844836
2022-10-15 21:05:15 -07:00
Jarred Sumner
63c9315b24 Add a helper for InlineBlob from two arrays 2022-10-15 21:03:40 -07:00
Jarred Sumner
40126bbe60 More logging 2022-10-15 21:02:32 -07:00
Jarred Sumner
70615f4036 Add a simple test for websocket server 2022-10-15 21:01:59 -07:00
Jarred Sumner
1b1b96aff8 add more logging 2022-10-15 21:01:50 -07:00
Jarred Sumner
de1e963ffa More forcefully clone strings 2022-10-15 05:41:57 -07:00
Jarred Sumner
a299b1b8e3 More lenient for response_value data 2022-10-15 05:34:15 -07:00
Jarred Sumner
4cc0eebf4b Rename pendingSockets to pendingWebSockets 2022-10-15 05:34:05 -07:00
Jarred Sumner
b1e97edc59 Fix memory leak in HTTP server 2022-10-15 05:33:48 -07:00
Jarred Sumner
a56dfe486b Remove unnecessary GC protect() call 2022-10-15 05:33:38 -07:00
Jarred Sumner
e9c3529476 Fix crash in WebSocketServer close 2022-10-15 05:32:52 -07:00
Jarred Sumner
c9a4bdf44d Update README.md 2022-10-15 04:48:59 -07:00
Jarred Sumner
c6fe82018a Fix bug where pong would put it in invalid state 2022-10-15 04:14:55 -07:00
Jarred Sumner
3016723198 Add some logging to WebSocket client 2022-10-15 04:14:42 -07:00
Jarred Sumner
e453b949dd Be more careful with some of the string handling code 2022-10-15 03:40:10 -07:00
Jarred Sumner
1236e3f59c Update README.md 2022-10-15 03:35:12 -07:00
Jarred Sumner
c6d314e954 Update README.md 2022-10-15 03:33:45 -07:00
Jarred Sumner
2c548d45f8 Update c_cpp_properties.json 2022-10-15 03:29:25 -07:00
Jarred Sumner
4c741cc8b6 Update README.md 2022-10-15 03:29:14 -07:00
Jarred Sumner
4b5af13ac0 WebSocket Server support 2022-10-15 03:06:41 -07:00
Jarred Sumner
35cbfa63a6 Add a way to update cached values from Zig 2022-10-15 02:57:28 -07:00
Jarred Sumner
dd84681d30 Update README.md 2022-10-15 00:30:19 -07:00
Jarred Sumner
0a1fca5d7d Update 2022-10-13 16:43:44 -07:00
Jarred Sumner
af033c02c5 Fix bench 2022-10-13 15:32:25 -07:00
Jarred Sumner
40506e33e7 Fix bench 2022-10-13 15:26:48 -07:00
zhiyuan
b542921f3d Fix import alias (#1313) 2022-10-13 05:44:08 -07:00
Jarred Sumner
b0a7f8df92 Create http-request-body.ts 2022-10-13 02:27:54 -07:00
Jarred Sumner
32e16bda23 Update react-hello-world.jsx 2022-10-13 02:18:50 -07:00
Jarred Sumner
e32ada318a Update react-hello-world.jsx 2022-10-13 02:18:25 -07:00
Jarred Sumner
b011610bb3 Update README.md 2022-10-13 02:02:48 -07:00
Jarred Sumner
723c7c56dc Add for await 2022-10-13 00:58:37 -07:00
Jarred Sumner
6b7a0c1d3f Fix crash in TextEncoder with rope strings that happens sometimes 2022-10-12 23:59:00 -07:00
Jarred Sumner
22f7981cff Regenerate builtins 2022-10-12 23:50:48 -07:00
Jarred Sumner
ad29d9ffb3 Fix cancel not working in some cases in ReadableStream 2022-10-12 23:48:41 -07:00
Jarred Sumner
8200f43a04 Fix a bug with ReadableStreamDefaultReader and "direct" controller 2022-10-12 23:48:27 -07:00
Jarred Sumner
3fceae8070 Implement ReadableStream.prototype[Symbol.asyncIterator]
cc @fabiancook
2022-10-12 23:46:15 -07:00
Jarred Sumner
8cd8e34719 Update README.md 2022-10-12 19:16:14 -07:00
Jarred Sumner
930981c9d9 Update README.md 2022-10-12 19:15:51 -07:00
Jarred Sumner
f8b22d51a9 Update README.md 2022-10-12 19:15:23 -07:00
Jarred Sumner
2b1b7eb6b3 Update README.md 2022-10-12 19:15:02 -07:00
Jarred Sumner
e241e503b7 Update README.md 2022-10-12 19:14:08 -07:00
Jarred Sumner
39940ec1f5 Update README.md 2022-10-12 19:13:40 -07:00
Jarred Sumner
f725b7e1ab Update README.md 2022-10-12 19:11:47 -07:00
Jarred Sumner
da66bed946 Update README.md 2022-10-12 19:10:01 -07:00
Jarred Sumner
58fe024aea Add --hot to completions 2022-10-12 19:07:11 -07:00
Jarred Sumner
6205cf3fe4 Update README.md 2022-10-12 18:57:28 -07:00
Jarred Sumner
fb6c87da07 Update README.md 2022-10-12 18:57:17 -07:00
Jarred Sumner
d0fb442c59 Update README.md 2022-10-12 18:55:26 -07:00
Jarred Sumner
1c949354c6 Update README.md 2022-10-12 18:17:21 -07:00
Jarred Sumner
3a042cdb48 Add a comment 2022-10-12 18:09:04 -07:00
Jarred Sumner
a97914fff3 Fix require("bun") and import("bun") when statically known 2022-10-12 18:02:18 -07:00
Jarred Sumner
ec00838a03 Update test_scope_debug.ts 2022-10-12 17:47:05 -07:00
Jarred Sumner
860bd53fb3 [bun wiptest] Ignore . folders 2022-10-12 17:10:03 -07:00
Jarred Sumner
477638435c Update README.md 2022-10-12 17:09:37 -07:00
Jarred Sumner
cb384dfa29 Add a bench 2022-10-12 17:00:17 -07:00
Jarred Sumner
dd15a98879 Add hugemem snippet 2022-10-12 16:56:49 -07:00
Jarred Sumner
6b2637468c Add snippet 2022-10-12 16:50:57 -07:00
Jarred Sumner
ab4f4bca6d Add a doc on Bun.spawn 2022-10-12 16:39:26 -07:00
Jarred Sumner
73a611a3b9 Stop keeping the process alive for too long 2022-10-12 16:39:12 -07:00
Jarred Sumner
c5333ab597 support array as first arg in Bun.spawn 2022-10-12 14:43:24 -07:00
Jarred Sumner
75e8c4699c Fix test bug 2022-10-12 01:47:48 -07:00
Jarred Sumner
8fcb0ff0b6 Remove dead code 2022-10-11 23:45:23 -07:00
Jarred Sumner
dbd569d2ab remove config struct 2022-10-11 23:44:35 -07:00
Jarred Sumner
40eca63653 Fix crash when decoding latin1 rope strings and the GC is running 2022-10-11 22:42:19 -07:00
Jarred Sumner
e7eadcde5a Implement Bun.spawnSync 2022-10-11 22:21:06 -07:00
Jarred Sumner
36adee4dc8 Make Bun.spawn work on Linux 2022-10-11 20:25:16 -07:00
Jarred Sumner
9fe1ad93cb Fixup example 2022-10-11 20:00:04 -07:00
Jarred Sumner
8311761c82 Handle eintr in uSockets 2022-10-11 15:39:58 -07:00
Jarred Sumner
8702f965a2 Add test for Bun.file() for stdin and stdout 2022-10-11 14:56:49 -07:00
Jarred Sumner
888a685e26 Maybe fix linux bug? 2022-10-11 13:53:31 -07:00
Jarred Sumner
51c1d18e68 Update server.zig 2022-10-11 01:44:14 -07:00
Jarred Sumner
af6476ca74 Work around Zig C ABI bug on Linux 2022-10-11 01:10:39 -07:00
Jarred Sumner
614d256cb6 Use poll() to check if writable 2022-10-11 00:07:13 -07:00
Jarred Sumner
3867431ed1 Add test that reads & writes stdin/stderr 2022-10-11 00:04:48 -07:00
Jarred Sumner
1f7f5646de Update bun-write.test.js 2022-10-11 00:03:37 -07:00
Jarred Sumner
40623cf967 Implement fs.rm cross-platformly 2022-10-11 00:03:32 -07:00
Jarred Sumner
d07e4f8bd1 Automatically close stdout/stderr on subprocess exit if possible 2022-10-10 22:16:19 -07:00
Jarred Sumner
e4bf189e9d Change behavior of Bun.write 2022-10-10 21:01:06 -07:00
Jarred Sumner
2292ef8d0e Keep the process alive 2022-10-10 21:00:39 -07:00
Jarred Sumner
a114af4eea Use write() and read() since not every file type supports positional 2022-10-10 20:59:34 -07:00
Jarred Sumner
5152aebde1 Handle EAGAIN in Bun.write() for short input 2022-10-10 20:58:58 -07:00
Jarred Sumner
1310a1d99e Ensure we set globalThis in the FileBlob / FileSink 2022-10-10 20:58:43 -07:00
Jarred Sumner
a20d3eaebb Support cache with same name applied to multiple getters 2022-10-10 20:58:19 -07:00
Jarred Sumner
3cc61f8e30 Fix issue with exit callback in Bun.spawn() never firing 2022-10-10 20:57:38 -07:00
Jarred Sumner
ef2c9c330c Process inherits from EventEmitter 2022-10-10 20:27:04 -07:00
Jarred Sumner
5db06105ba Add test for calling assert 2022-10-10 13:51:45 -07:00
Jarred Sumner
24433ceb27 use tweaked CJS transform 2022-10-10 13:51:25 -07:00
Jarred Sumner
ff797f7410 Poll in 2022-10-09 20:38:31 -07:00
Jarred Sumner
cef32c1123 Don't set CLOEXEC 2022-10-09 20:32:10 -07:00
Jarred Sumner
50d4cedd92 Add section about upgrading in the readme 2022-10-09 19:33:07 -07:00
Jarred Sumner
27ad376071 Bump version 2022-10-09 19:04:25 -07:00
Jarred Sumner
eebcd30067 Bun.write - truncate empty files 2022-10-09 18:57:03 -07:00
Jarred Sumner
1afe2f05dc Rename resposne.file.test.js -> bun-write.test.js + add some large file tests 2022-10-09 18:26:00 -07:00
Jarred Sumner
170e3117d7 maybe workaround C ABI issue on linux amd64 2022-10-09 14:30:00 -07:00
Jarred Sumner
fc08e69039 Missing code 2022-10-09 02:20:16 -07:00
Jarred Sumner
25918ddd2a More careful code for FileBlobLoader and FIleSink 2022-10-09 02:02:47 -07:00
Jarred Sumner
edfd2af949 Update WebKit 2022-10-09 02:02:47 -07:00
Jarred Sumner
dffaeaca1e Start to add tests for spawn 2022-10-09 02:02:47 -07:00
Jarred Sumner
88bdae8218 Add a test for server.reload() 2022-10-09 02:02:47 -07:00
Jarred Sumner
fdfe00452b Add a console.debug for the server:port when HMR is enabled 2022-10-09 02:02:47 -07:00
Jarred Sumner
b38d553d60 Update WebKit 2022-10-09 02:02:47 -07:00
Jarred Sumner
0833275f03 Buffer input & output until the user gets the stream 2022-10-09 02:02:47 -07:00
Jarred Sumner
4252d015ca soem helpers 2022-10-09 02:02:47 -07:00
Jarred Sumner
9fd0072740 Don't forget to load SQLite in Database.deserialize
Fixes https://github.com/oven-sh/bun/issues/1304
2022-10-09 02:02:47 -07:00
Jarred Sumner
4dbbdb1671 Clean up how we reload entry point a little 2022-10-09 02:02:47 -07:00
Jarred Sumner
4b5c9acc72 Update bench 2022-10-09 02:02:47 -07:00
Jarred Sumner
b63218206d Add some more bench snippets 2022-10-09 02:02:47 -07:00
Jarred Sumner
349ccf229b Fix navigator.userAgent test 2022-10-09 02:02:47 -07:00
Jarred Sumner
85602b406a Fix SQLite test 2022-10-09 02:02:47 -07:00
Jarred Sumner
cc6077fbf5 Snippet for return await 2022-10-09 02:02:47 -07:00
Jarred Sumner
495534a054 Expose Bun.version and Bun.revision 2022-10-09 02:02:46 -07:00
Jarred Sumner
57513f38d3 Add a test for Bun.version 2022-10-09 02:02:46 -07:00
Jarred Sumner
0b3abf2c78 Add a test for not logging .env 2022-10-09 02:02:46 -07:00
Jarred Sumner
9294ef73b7 Update WebKit 2022-10-09 02:02:46 -07:00
zhiyuan
36ec06493e Fix fetch response redirected (#1303)
* fix: sync codegen

* fix: generate class script

* fix: sync codegen

* fix: add response redirected property
2022-10-08 22:36:33 -07:00
zhiyuan
6068ad15d4 fix: install error when node_modules already in npm package (#1301) 2022-10-08 02:16:16 -07:00
Jarred Sumner
c2c9173eff Fix https://github.com/oven-sh/bun/issues/1263
What happened: when moving to uSockets for the http client, I forgot to call `SSL_set_tlsext_host_name` and uSockets apparently doesn't do that
2022-10-08 01:06:35 -07:00
zhiyuang
99e7856269 Fix nested modules bin executable issue (#1299) 2022-10-07 09:48:37 -07:00
Jarred Sumner
1355d415e9 Fix linux amd64 crash 2022-10-06 22:14:05 -07:00
Jarred SUmner
410059c9f3 Fix unused arg 2022-10-06 16:23:46 -07:00
Jarred SUmner
80096884f6 Add --profile to bun upgrade 2022-10-06 16:23:08 -07:00
Jarred Sumner
d2dd2ae306 Add protocol getter to Bun.serve() 2022-10-06 15:02:56 -07:00
Jarred Sumner
5c3ce875b2 Automatically support hot reloading with export default { fetch() } 2022-10-06 14:21:14 -07:00
Jarred Sumner
6970250b57 Fix Buffer.toJSON() 2022-10-06 14:18:12 -07:00
Jarred Sumner
c880c53199 Fix failing linux build 2022-10-06 03:02:07 -07:00
Jarred Sumner
75371d1462 Add WebSocket bindings for uWS 2022-10-06 00:48:55 -07:00
Jarred Sumner
2c762f47c9 Add simple Hot Module Reloading to bun's runtime 2022-10-06 00:47:03 -07:00
Jarred Sumner
3246efa580 Implement Server.reload() 2022-10-06 00:01:02 -07:00
Jarred Sumner
4060afb7c7 Implement console.count and console.countReset
Fixes https://github.com/oven-sh/bun/issues/1296
2022-10-05 18:59:58 -07:00
Jarred Sumner
e4d3f51161 move Bun.spawn into separate file 2022-10-05 18:07:41 -07:00
Jarred Sumner
1777e9d0b1 Add abstraction for ticking async event loop 2022-10-05 18:07:41 -07:00
Jarred Sumner
707b454bf4 Support buffered input in Bun.spawn 2022-10-05 18:07:41 -07:00
Jarred Sumner
ca4c99b1bf Fix interopRequireDefault issue with path :( 2022-10-05 18:07:41 -07:00
Jarred Sumner
a302549d3e Expose private @require symbol 2022-10-05 18:07:41 -07:00
Jarred Sumner
1a7418e890 Mark these strings as not needing to be GC'd 2022-10-05 18:07:41 -07:00
Jarred Sumner
c1219a3b48 [breaking] process.version lies and reports Node 18
See https://twitter.com/jarredsumner/status/1577189928294789122
2022-10-05 18:07:41 -07:00
Jarred Sumner
632e4ac6ac Improve stack traces in fs functions
This is a hack
2022-10-05 18:07:41 -07:00
Jarred Sumner
18ae17871d Export rm in fs/promises 2022-10-05 18:07:41 -07:00
Jarred Sumner
09ebb217dd Temporary hack so res.socket in node:http doesn't throw 2022-10-05 18:07:41 -07:00
Jarred Sumner
dbccfc2b26 Fix missing path/posix and path/win32 2022-10-05 18:07:41 -07:00
Jarred Sumner
28f7240dd3 Handle more edgecases in fs.rm on macOS 2022-10-05 18:07:41 -07:00
Jarred Sumner
9f10956ce1 We need to explicitly flush now 2022-10-05 18:07:41 -07:00
Jarred Sumner
c9a50b2f2d Add a test for simultaneous requests 2022-10-05 18:07:41 -07:00
Jarred Sumner
d683d7185d handle values from native in streams 2022-10-05 18:07:41 -07:00
Jarred Sumner
fc13938fc6 Fix bug with next dev showing raw html instead of the rendered page 2022-10-05 18:07:41 -07:00
Ryan Russell
f8e8b10e10 docs(thread_pool): comment readability improvements (#1241)
Signed-off-by: Ryan Russell <git@ryanrussell.org>

Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-10-05 16:49:37 -07:00
zhiyuang
050292229f fix: console.log handle circular correctly (#1293) 2022-10-05 16:49:00 -07:00
Jarred Sumner
906e97223a Fix DotEnv Loader ignoring error log level 2022-10-03 11:07:00 -07:00
Jarred Sumner
dc10b24730 Add readdir snippet 2022-10-03 01:58:57 -07:00
Jarred Sumner
d3ef6c330a node:fs implement rm on macOS
no linux yet
2022-10-03 01:10:38 -07:00
Jarred Sumner
4700762132 Bun.spawn start to implement support for buffered input (ArrayBuffer, Response, Request body) 2022-10-03 01:09:16 -07:00
Jarred Sumner
08d606c3d7 Fix undefined is not a function error in WritableStream 2022-10-03 01:07:54 -07:00
Jarred Sumner
ed82b919a0 Remove extra green 2022-10-02 18:02:54 -07:00
Jarred Sumner
4fa065180b Fix test expectation counter 2022-10-02 16:06:47 -07:00
Jarred Sumner
cd9b47315c Reduce memory usage of HTTP requests by 8 KB 2022-10-02 01:59:59 -07:00
Jarred Sumner
062c3948ba Fix test failures 2022-10-02 01:56:55 -07:00
Jarred Sumner
bff3b902e8 Fix unref'ing websocket 2022-10-01 18:06:01 -07:00
Jarred Sumner
3b4900193b Fix setTimeout(0), improve test coverage slightly, reduce memory usage of timers 2022-10-01 16:02:29 -07:00
Jarred Sumner
bab317edd1 [napi] Implement napi_remove_wrap 2022-10-01 13:23:32 -07:00
Jarred Sumner
1dac9248ad Add missing type check to napi_wrap
Fixes https://github.com/oven-sh/bun/issues/1286
2022-10-01 13:22:16 -07:00
Jarred Sumner
c57b32fa0c [bun:test] When there are lots of tests, print the failures at the bottom so you can see them easier 2022-10-01 01:46:34 -07:00
Jarred Sumner
43c22b4411 Fix release mode value semantics bug 2022-10-01 01:46:02 -07:00
Jarred Sumner
bee72be733 Increase test coverage for request body streaming
There is still one memory issue to address
2022-10-01 01:13:27 -07:00
Jarred Sumner
ea159b6004 Make setTimeout/setInterval more reliable 2022-09-30 22:12:31 -07:00
Jarred Sumner
ac72f28fc8 Fix body mixin 2022-09-30 20:38:25 -07:00
Jarred Sumner
e4e7966d64 Fix failing tests from backpressure 2022-09-30 19:43:03 -07:00
Jarred Sumner
48cb526e0b Eagerly receive incoming request bodies 2022-09-30 18:49:25 -07:00
Jarred Sumner
fd6d28a9fa Fix outdated type 2022-09-30 18:46:58 -07:00
Jarred Sumner
944dc988bf Simplify some of this 2022-09-30 18:46:50 -07:00
Jarred Sumner
2fac218a36 Delete some code 2022-09-30 18:45:02 -07:00
Jarred Sumner
16c184efdf Add a couple assertions 2022-09-30 18:44:48 -07:00
Jarred Sumner
6b5c49c269 Fix incorrect first number in byte stream 2022-09-30 18:38:36 -07:00
Jarred Sumner
af6a43c49b Attempt to address .write() bug 2022-09-30 01:27:35 -07:00
Jarred Sumner
18310cfd7c Fix unnecessary "Buffer is detached" error 2022-09-30 01:08:53 -07:00
Jarred Sumner
9046767da4 Request->url == string, not ZigString now 2022-09-30 01:08:34 -07:00
Jarred Sumner
f70c83345a Improve test coverage for Request body streaming! 2022-09-30 01:07:53 -07:00
Jarred Sumner
52f5f9545a Fix OOB when multiple headers have the same name length
Fixes https://github.com/oven-sh/bun/issues/1279
2022-09-30 01:07:35 -07:00
Jarred Sumner
1434fb66d3 Add a better wrapper function for promises 2022-09-30 01:06:42 -07:00
Jarred Sumner
f325a0016b Use poll_ref in the io tasks 2022-09-30 01:06:28 -07:00
Jarred Sumner
9d7bcac680 Support all ArrayBufferView in all hashing functions and node fs functions 2022-09-30 01:06:04 -07:00
Jarred Sumner
8d11ab3c35 Verbose flag 2022-09-30 01:05:40 -07:00
Jarred Sumner
56e491ad8a Use pollref in FileBlobLoader 2022-09-30 01:05:33 -07:00
Jarred Sumner
9296a369de Fixup Body mixin implementation 2022-09-30 01:05:10 -07:00
Jarred Sumner
9050e6ee87 Use PollRef in napi 2022-09-30 01:04:20 -07:00
Jarred Sumner
84af4f0133 more gc in fs test 2022-09-30 01:04:10 -07:00
Jarred Sumner
6338413696 Remove extraneous calls to .ref() 2022-09-30 00:44:36 -07:00
Jarred Sumner
fbec7bda6a Add hidden verbose flag to fetch (the third argument)
```js
fetch(url, {body: ""}, {verbose: true})
```
2022-09-30 00:29:31 -07:00
Jarred Sumner
0f371a2869 [internal] Use PollRef for fetch() 2022-09-30 00:27:39 -07:00
Jarred Sumner
c30346cf5d Create test_scope_debug.ts 2022-09-30 00:25:28 -07:00
Jarred Sumner
64ef2389dc fix potentially truncated encodeInto 2022-09-30 00:06:46 -07:00
Jarred Sumner
6ec55cbeeb Fixup 2022-09-29 18:20:54 -07:00
Jarred Sumner
3430cdd91b don't need to mark 2022-09-29 18:01:12 -07:00
Jarred Sumner
9702568161 Lazy URL, more explicit close() 2022-09-29 17:58:04 -07:00
Jarred Sumner
016a9d6535 Update base.zig 2022-09-29 10:52:41 -07:00
Jarred Sumner
9f10c1a805 Fix Bun.serve not keeping process alive 2022-09-29 10:26:40 -07:00
Jarred Sumner
7631a47612 Fix console.log(ModuleNamespace) 2022-09-29 00:22:51 -07:00
Jarred Sumner
b8851143f9 Update streams.zig 2022-09-28 23:56:38 -07:00
Jarred Sumner
f3028ff6f3 Use uSockets for setTimeout and setInterval 2022-09-28 23:45:31 -07:00
Jarred Sumner
3d35fae890 Add some tests for request body streaming
Need to fix an off-by-one error with Blob it seems
2022-09-28 23:43:40 -07:00
Jarred Sumner
1636291b03 /s/c_int/i32 2022-09-28 23:39:10 -07:00
Jarred Sumner
e69e8d35b9 Fix unreachable 2022-09-28 23:38:54 -07:00
Jarred Sumner
9438540bf9 Fix a crash with fetch(url, {body: arrayBuffer}) introduced with the Blob changes
cc @bwasti
2022-09-28 23:38:42 -07:00
Jarred Sumner
d34179b9eb Queue tests rather than run immediately 2022-09-28 23:38:04 -07:00
Jarred Sumner
90074ce98c Clean up WebSocket never starting 2022-09-28 23:37:40 -07:00
Jarred Sumner
fd0054a800 Outer event loop tweaks 2022-09-28 23:37:09 -07:00
Jarred Sumner
0fb5f15673 Fix a crash in HTMLRewriter caused by blob changes 2022-09-28 23:34:12 -07:00
Jarred Sumner
16929129f0 Clean up some of the event loop code 2022-09-28 23:34:03 -07:00
Jarred Sumner
524e48a81d make bun:test ~300x faster when using http server, websockets, etc
there was an event loop bug
2022-09-28 23:07:18 -07:00
Jarred Sumner
76b1a3a88d Bench snippet for Array.map 2022-09-28 14:38:15 -07:00
Jarred Sumner
b74351e55f Support a default object in CommonJS wrapper
Fixes https://github.com/oven-sh/bun/issues/1284

Related to https://github.com/oven-sh/bun/issues/1285
2022-09-28 14:37:35 -07:00
Jarred Sumner
a1b4dc42cb Implement reportExtraMemoryVisited and reportExtraMemoryAllocated in bindings 2022-09-28 14:36:44 -07:00
Jarred Sumner
5ae5125919 size estimatoor 2022-09-28 11:10:20 -07:00
Jarred Sumner
82a68cd3da fixup 2022-09-28 00:52:25 -07:00
Jarred Sumner
a41150836a Add missing commit 2022-09-28 00:20:12 -07:00
Jarred Sumner
e637b43117 Add missing commit 2022-09-28 00:18:50 -07:00
Jarred Sumner
443ba0f396 Inline blobs in the HTTP server 2022-09-28 00:12:31 -07:00
Jarred Sumner
71ea4a2c9b Fix several bugs with Request body streaming + store small response bodies without an extra memory allocation 2022-09-28 00:11:15 -07:00
Jarred Sumner
a8ab18bd50 Fix potential crash when TS code has an unexpected ")" 2022-09-27 09:40:29 -07:00
Jarred Sumner
ce91423a19 Update streams.zig 2022-09-26 20:49:44 -07:00
Jarred Sumner
5875d1419b Make Bun.spawn, FileSink and FileBlobLoader a little more reliable 2022-09-26 20:35:26 -07:00
Jarred Sumner
24a9bc23b7 [Web Streams] Add body to Response and Request (#1255)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-09-26 20:04:28 -07:00
Jarred Sumner
97c3688788 Make getting the body for fetch a little more reusable 2022-09-26 20:00:34 -07:00
Jarred Sumner
0b915b1dd2 Add missing ignoreUsage call 2022-09-26 19:59:38 -07:00
Jarred Sumner
5fcbfa780f Bump WebKit 2022-09-26 19:59:09 -07:00
Jarred Sumner
a736010fdd Fix crash when insufficient arguments 2022-09-26 10:30:33 -07:00
Jarred Sumner
b733125085 Fix console.log not printing an empty line
Depends on https://github.com/oven-sh/WebKit/actions/runs/3123884691/jobs/5066828848

Fixes https://github.com/oven-sh/bun/issues/1276
2022-09-25 15:49:35 -07:00
Jarred Sumner
5ef36f1b6f Implement isatty in node:tty 2022-09-25 14:56:22 -07:00
Jarred Sumner
7cc772cd39 😪 2022-09-25 13:14:23 -07:00
Jarred SUmner
7ae73fad68 Make Linux implementation work 2022-09-25 13:14:23 -07:00
Jarred Sumner
96dcfd3cfe Linux implementation 2022-09-25 13:14:23 -07:00
Jarred Sumner
9833841101 wip 2022-09-25 13:14:23 -07:00
Jarred Sumner
1cd67b62e9 Update package.json 2022-09-25 13:14:23 -07:00
Jarred Sumner
ffde9f7842 📷 2022-09-25 13:14:23 -07:00
Albert Putra Purnama
2819509786 test: Promisify basic tests (#1018)
* Promisify basic tests

* Add License header from node

* Add tests to complete existing promisify parity with node

* Update expected error message from nodejs test
2022-09-24 19:05:18 -07:00
Jarred Sumner
5b222996c8 Update bindings.zig 2022-09-23 03:21:38 -07:00
Jarred Sumner
62e22b2995 Implement Bun.which 2022-09-23 03:10:56 -07:00
Jarred Sumner
2346be55fc Fix issue with react-is in bun-framework-next 2022-09-23 00:31:45 -07:00
Jarred Sumner
61d0c4042b Use JSC heap for .arrayBuffer() 2022-09-23 00:26:23 -07:00
Jarred Sumner
de0b373c7c Update streams.zig 2022-09-22 23:53:00 -07:00
Jarred Sumner
2c1926993b Faster Blob + begin to implement FileSink 2022-09-22 23:45:02 -07:00
Jarred SUmner
e14a3af491 Fix linux build 2022-09-22 03:25:29 -07:00
Jarred Sumner
0968fd339f Add epoll to list of syscalls that can fail 2022-09-22 03:06:48 -07:00
Jarred Sumner
2ca1861a54 Remove a mutex when enqueuing concurrent tasks 2022-09-22 02:38:36 -07:00
Jarred Sumner
ce9daa4857 1 event loop per thread. Instead of 3.
uWebSockets and uSockets will need to be upgraded to match the changes.

Previously:
- Bun had a separate kqueue/eventfd just for async wakeups.
- Bun had a separate kqueue/epoll just for reading files non-blocking in the same thread

This commit unifies it into one event loop per thread
2022-09-22 02:25:32 -07:00
Jarred Sumner
e15fb6b9b2 [breaking] Bun.serve().hostname should return the hostname instead of the baseURI
Previously Bun.serve().hostname was returning the baseURI, effectively the `origin`

That was incorrect.

Instead, it should be returning the hostname
2022-09-22 01:57:06 -07:00
Jarred Sumner
f1ffc72a62 Fix bun run foo -- by ignoring -- 2022-09-22 01:56:07 -07:00
Jarred Sumner
37eee4235d Fix preact & other "classic" jsx transforms, most likely 2022-09-21 20:00:12 -07:00
Jarred Sumner
871d530d6a Fix crash with jsxFragment and jsxFactory in tsconfig.json
Fixes https://github.com/oven-sh/bun/issues/1269
2022-09-21 19:55:30 -07:00
Jarred Sumner
16b1e84138 Fix crash when creating an empty array 2022-09-21 18:52:24 -07:00
Jarred Sumner
100ce7b62f Increase macro stack size 2022-09-21 00:00:46 -07:00
Jarred Sumner
c01cba3ab5 Update types.zig 2022-09-20 23:57:45 -07:00
Jarred Sumner
ef1607c088 fixup 2022-09-20 23:57:07 -07:00
Jarred Sumner
123e8c8d2b Update WebKit 2022-09-20 23:56:08 -07:00
Jarred Sumner
9667eec9de Be more careful with process.argv 2022-09-20 23:56:08 -07:00
Hemanth Krishna
26625f3e2a fix: add destination to ADD command in Dockerfile (#1268)
Signed-off-by: Hemanth Krishna <hkpdev008@gmail.com>

Signed-off-by: Hemanth Krishna <hkpdev008@gmail.com>
2022-09-20 23:43:21 -07:00
Jarred Sumner
e94e6d8d95 Allow .env files to define the same key multiple times
Fixes https://github.com/oven-sh/bun/issues/1262
2022-09-20 01:02:15 -07:00
Jarred Sumner
f0bc50eb71 meant to include this in the previous commit 2022-09-20 00:45:19 -07:00
Jarred Sumner
6163fb830e Add navigator.userAgent , navigator.hardwareConcurrency 2022-09-20 00:44:59 -07:00
Jarred Sumner
167948f5c3 Fix incorrect hostname logic
Fixes https://github.com/oven-sh/bun/issues/1261
2022-09-20 00:07:01 -07:00
Jarred Sumner
37d191bc02 Update process.argv to more closely match node 2022-09-19 23:37:26 -07:00
Jarred Sumner
da7b648971 Pass through arguments unmodified after bun run <script> or bun <script>
Fixes https://github.com/oven-sh/bun/issues/231
2022-09-19 23:37:08 -07:00
Jarred Sumner
8b7f43f855 Handle nested files more correctly with "imports" in package.json 2022-09-19 21:02:26 -07:00
Jarred Sumner
21770eb0f3 Implement imports in package.json (#foo imports)
Fixes https://github.com/oven-sh/bun/issues/478
Fixes https://github.com/oven-sh/bun/issues/234
Fixes https://github.com/oven-sh/bun/issues/822
2022-09-19 20:03:02 -07:00
Jarred Sumner
17be8023d9 Fix broken destructors 2022-09-19 17:26:30 -07:00
Jarred Sumner
9754c5b32b Fix larger bodies 2022-09-19 05:50:10 -07:00
Jarred Sumner
a16cb39423 Improve the perf of reading HTTP request body 2022-09-18 18:45:34 -07:00
Jarred Sumner
dfefb05b10 Fix occasional crash with .json() 2022-09-18 18:37:55 -07:00
Jarred Sumner
55bdf2682c Update build-id 2022-09-18 04:09:03 -07:00
Jarred Sumner
3a50ae92ec Fix broken sending http body 2022-09-18 04:00:40 -07:00
Jarred Sumner
fe77f6a2f3 Update http_client_async.zig 2022-09-18 02:34:58 -07:00
Jarred Sumner
cd35218141 Add a way to disable timeout and keepalive 2022-09-18 02:30:52 -07:00
Jarred Sumner
daeef8d5b3 extremely minor perf nit 2022-09-17 22:14:38 -07:00
Kit PANG
184230058a feat: env loader nested values with curly braces (#1246)
* [env loader] Add support for nested value with curly braces

does not support default values for nested values, e.g., ${undefined:default}, ${undefined:-default}, or ${undefined-default}

* fix: minor fix and add more test

* [env loader] Improve nested value parsing performance

remove unnecessary branching

Co-authored-by: Like <like@ekil.sh>
2022-09-17 22:11:16 -07:00
Jarred Sumner
a08b323e61 Fix napi module registration
Fixes https://github.com/oven-sh/bun/issues/1240
2022-09-17 21:56:30 -07:00
Jarred Sumner
745cc5c655 Handle missing 0\r\n chunk in HTTP client 2022-09-17 21:45:03 -07:00
Jarred Sumner
3719c3b736 Update & configure SSL a little 2022-09-17 21:45:03 -07:00
Jarred Sumner
0e424de684 Update WebKit 2022-09-17 21:45:03 -07:00
Jarred Sumner
285ef0ca01 Explicitly enable ShadowRealm 2022-09-17 21:45:03 -07:00
Greg Brimble
ce0df52b7e Update macOS contributing instructions (#1247) 2022-09-17 17:49:46 -07:00
Jarred Sumner
e03204dccf Avoid undefined memory 2022-09-17 17:41:13 -07:00
Jarred Sumner
0dea2d8515 Smaller stack 2022-09-17 17:40:50 -07:00
Jarred Sumner
31469bb05b Prevent returning resolved promises 2022-09-17 04:39:59 -07:00
Jarred Sumner
b4f8e5cdb9 Fix default hostname 2022-09-17 04:31:29 -07:00
Jarred Sumner
cefec77646 Partially implement server.fetch() on Bun.serve 2022-09-17 04:28:32 -07:00
Hyro
7c7adc1361 chore: add napi label (#1245) 2022-09-17 02:54:41 -07:00
Jarred Sumner
af6609b0a3 [bun install] Add a package index via symlinks to ~/.bun/install/cache 2022-09-17 01:12:59 -07:00
Jarred Sumner
3ae950d829 Fix missing reason and code in CloseEvent
cc @paperdave

hardcoded right now but at least tells you why it closed
2022-09-17 00:42:20 -07:00
Jarred Sumner
c2f64d4da1 Fix crash when specifying same package name twice in bun add
Fixes https://github.com/oven-sh/bun/issues/1202
2022-09-17 00:21:10 -07:00
Jarred Sumner
9b941dd800 Update build-id 2022-09-16 22:58:31 -07:00
Jarred Sumner
4b9f6baf79 Make fetch throw a SystemError on reject 2022-09-16 22:50:46 -07:00
Jarred Sumner
a675cbd13b Fix issue with chunked transfer encoding 2022-09-16 22:38:09 -07:00
Jarred Sumner
bd77afb2df Fix issue with server not starting before exiting 2022-09-16 22:36:06 -07:00
Jarred Sumner
681f5a521f [bun install] Remove spinloop 2022-09-16 16:53:17 -07:00
Jarred Sumner
f55b9a8530 Fix origin missing protocol in URL
Fixes https://github.com/oven-sh/bun/issues/1244
2022-09-16 16:45:26 -07:00
Jarred Sumner
da6f954e0d Fix process not exiting 2022-09-16 14:28:07 -07:00
Jarred Sumner
453eaf6871 Fix crash when parsing empty JSON file 2022-09-16 03:20:28 -07:00
Jarred Sumner
0ce709d96a Make new HTTP client more stable 2022-09-16 00:53:03 -07:00
Jarred Sumner
fd808dec52 Use entropy cache for websocket mask 2022-09-14 21:35:12 -07:00
Jarred Sumner
ac949f8181 Fix issue with websockets callback not registering in canary 2022-09-14 21:34:29 -07:00
Jarred Sumner
48c2c8c049 woops that was wrong 2022-09-14 19:29:16 -07:00
Jarred Sumner
2e2e134a1b typo 2022-09-14 19:25:16 -07:00
Jarred Sumner
4e8bd97d9c Update crypto.mjs 2022-09-14 19:24:56 -07:00
Jarred Sumner
a31eb6a80c Add missing getRandomValues to crypto polyfill 2022-09-14 19:15:05 -07:00
Jarred Sumner
b0dd7bee5b Update crypto benchmark 2022-09-14 18:25:06 -07:00
Jarred Sumner
a291c1676f 5x faster crypto.randomValues() 2022-09-14 18:23:22 -07:00
Jarred Sumner
7bfa302b75 Make crypto.getRandomValues() faster + fix > 1 byte/element typed arrays
Fix crypto.getRandomValues() with > 1 byte element typed arrays

Fixes https://github.com/oven-sh/bun/issues/1237
2022-09-14 04:12:32 -07:00
Jarred Sumner
0935ab14d6 Fix Linux 200ms http client delay
https://man7.org/linux/man-pages/man2/send.2.html See the section on MSG_MORE
2022-09-13 17:47:50 -07:00
Jarred Sumner
9797b676b1 Add test 2022-09-11 17:11:23 -07:00
Jarred Sumner
2b02f7eb99 Fix bug with Buffer.from([123], "utf8")
cc @worm-emoji
2022-09-11 17:11:11 -07:00
Jarred Sumner
71e2c26577 Resolve rope strings in dynamic import paths
Fixes https://github.com/oven-sh/bun/issues/1230
2022-09-11 15:30:21 -07:00
Jarred Sumner
b78b36ce33 Fix build issue on Linux? 2022-09-11 15:01:57 -07:00
Jarred Sumner
0130efeedf Hardcode localhost on macOS 2022-09-11 14:59:48 -07:00
Jarred Sumner
35b51fcbb5 typo 2022-09-11 14:46:08 -07:00
Jarred Sumner
9a5aa059f9 New HTTP client (#1231)
* wip

* It mostly works!

* Support `bun install`

* Support `bun create`

* Support chunked transfer encoding

* Handle Keep Alive when redirecting to a different domain

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-09-11 13:37:17 -07:00
Zilin Zhu
8b91360a33 Fix segfault due to GC and some more helper functions (#1221)
* Fix segfault due to GC and some more helper functions

* fix upon reviews

* add visitChildren
2022-09-09 22:48:55 -07:00
Jarred Sumner
85d80d8fb7 Update README.md 2022-09-09 19:49:38 -07:00
Jarred Sumner
695da9ee29 Fix import path issue in ffi bench 2022-09-09 19:45:39 -07:00
Jarred Sumner
d114e9040b Add read to README 2022-09-09 19:45:20 -07:00
Jarred Sumner
c600196b1a [node:fs] Fix readFileSync on non-regular files
Fixes https://github.com/oven-sh/bun/issues/1220
2022-09-09 19:26:02 -07:00
Jarred Sumner
3d8edcb77b Fix potential crash when returning an empty string 2022-09-09 19:20:24 -07:00
Jarred Sumner
f496740c19 [bun:ffi] Add f32, f64, i64, u64 to read` 2022-09-09 18:10:36 -07:00
Jarred Sumner
0c2a207d82 Fix failing tests after ptr change 2022-09-09 17:19:34 -07:00
Jarred Sumner
e9c456ff5c [breaking][bun:ffi] Change the pointer representation to be a 52-bit integer
Storing the pointer this way enables DOMJIT to be used with a new API in `bun:ffi` that lets you efficiently read values from a pointer without creating a new `DataView`

```js
import {read} from 'bun:ffi';
const myPtr = myFunctionThatReturnsAPtr();

// new:
const value = read.u32(myPtr, 0);

// old:
const view = new DataView(toArrayBuffer(myPtr));
const otherValue = view.getUint32(0, true);
```

cc @bwasti this might be a breaking change for that call to `napi_add_finalizer`
2022-09-09 03:12:03 -07:00
Jarred Sumner
bcbe1b410a Last commit was missing some code 2022-09-08 23:37:59 -07:00
Jarred Sumner
206820d27a [bun:ffi] Implement read.{u8,i8,i16,i32,u16,u32,ptr,intptr}
`read` in `bun:ffi` lets you read data from a pointer without creating a new DataView/ArrayBufferView

```
import {read} from 'bun:ffi';

    expect(read.i8(ptr_, i)).toBe(view.getInt8(i, true));
    expect(read.i16(ptr_, i)).toBe(view.getInt16(i, true));
    expect(read.i32(ptr_, i)).toBe(view.getInt32(i, true));
    expect(read.u8(ptr_, i)).toBe(view.getUint8(i, true));
    expect(read.u16(ptr_, i)).toBe(view.getUint16(i, true));
    expect(read.u32(ptr_, i)).toBe(view.getUint32(i, true));
  }
```
2022-09-08 23:29:30 -07:00
Zilin Zhu
8d8b72cf3f Add native helper functions for Readable and convert ReadableState properties to getter/setter (#1218) 2022-09-08 19:52:27 -07:00
Jarred Sumner
a3cc9aaf6f Make some more globals modifiable 2022-09-08 00:00:18 -07:00
Jarred Sumner
812424bf46 Fix crash with file descriptor 2022-09-07 21:21:18 -07:00
Jarred Sumner
8af05c28a3 Add benchmark for small write() performance 2022-09-07 21:20:41 -07:00
Jarred Sumner
970600724d Helper for seeing if a File Blob is seekable 2022-09-07 21:06:00 -07:00
Jarred Sumner
c038f513d3 [Bun.write] clean up some error handling 2022-09-07 20:59:51 -07:00
Jarred Sumner
1e5978ad4f Bun.write - only truncate if its a path string 2022-09-07 19:59:49 -07:00
Jarred Sumner
2dbc991af9 More tests for Bun.write 2022-09-07 19:58:04 -07:00
Jarred Sumner
c4b9c12677 Fix flaky tests 2022-09-07 19:56:23 -07:00
Jarred Sumner
d7759b88ee Handle default better with ESM node 2022-09-07 19:56:11 -07:00
Jarred Sumner
25e4fcf5c8 Fast path for Bun.write with short-ish strings & typed arrays
Helps with https://github.com/oven-sh/bun/issues/646 but does not fully fix
2022-09-07 19:54:51 -07:00
Jarred Sumner
ce382788b0 Mild perf improvement for bindings 2022-09-07 19:53:49 -07:00
Jarred Sumner
c7874ed3fe Fix issue with loading bundled entry points 2022-09-07 00:18:25 -07:00
Jarred Sumner
65affacc50 Fix missing file in SQL-raw test 2022-09-06 21:00:56 -07:00
Jarred Sumner
6e9159a9ad workaround test failure 2022-09-06 20:59:18 -07:00
Jarred Sumner
dda23a6076 Move some things to the stack 2022-09-06 18:32:16 -07:00
Jarred Sumner
8d71a931a3 Add a helper for static strings 2022-09-06 18:31:20 -07:00
Jarred Sumner
0a67d7e951 [Bun.plugin] Fix validating loader 2022-09-06 17:38:08 -07:00
Jarred Sumner
52f3377d9e [Bun.plugin] Throw an error when the loader is invalid 2022-09-06 17:32:00 -07:00
Jarred Sumner
b24a9b29d7 Fix potential crash when resolving package.json "exports"
Have not seen a crash happen here yet
2022-09-06 17:25:22 -07:00
Jarred Sumner
bac93e14ad Fix bug with macros 2022-09-06 17:24:45 -07:00
Jarred Sumner
1454e448e6 [Bun.plugin] Allow slashes in namespaces 2022-09-06 17:24:39 -07:00
Jarred Sumner
9b16e245ba Update README.md 2022-09-06 08:25:08 -07:00
Jarred Sumner
c2f59e72d6 Rename LinkerMap to Aliases to be less confusing 2022-09-06 07:23:05 -07:00
Jarred Sumner
7a5cfc4bae Return a Buffer object for fs.readFile 2022-09-06 07:22:52 -07:00
Jarred Sumner
f5129dbd1a Fix issue with process esm node export 2022-09-06 07:22:25 -07:00
Jarred Sumner
07cbc0193a Set a default Loader based on filename 2022-09-06 07:22:14 -07:00
Jarred Sumner
1c1346dfa9 Add node:assert to list of hardcoded modules to fix ESM compat issue 2022-09-06 07:21:49 -07:00
Jarred Sumner
58af6db3a7 Update README.md 2022-09-06 04:06:06 -07:00
Jarred Sumner
342234eb64 Start to document loader api 2022-09-06 03:48:15 -07:00
Jarred Sumner
93cfc7edbb preserve statements when generating a separate module for bun plugin 2022-09-06 03:37:58 -07:00
Jarred Sumner
5b6a2d9efe Loosen-up the streams polyfill 2022-09-06 03:37:58 -07:00
Jarred Sumner
5ddfd912ef Add @ to acceptable namespace characters 2022-09-06 03:37:58 -07:00
Jarred Sumner
e9cc9ae816 Make the plugins a little more resilient 2022-09-06 03:37:58 -07:00
Jarred Sumner
ba2a7d72e7 Add missing Blob 2022-09-06 03:37:58 -07:00
Jarred Sumner
308affdcf0 Make fs extensible 2022-09-06 03:37:58 -07:00
Jarred Sumner
07e2c898c6 Fix crash in Buffer module 2022-09-06 03:37:58 -07:00
Zilin Zhu
b9fad14f87 Add native ReadableState (#1210)
* use functionSpace for JSStringDecoderConstructor and fix console.log on prototype

* Add native ReadableState

* move kPaused to class property
2022-09-06 00:57:16 -07:00
Jarred Sumner
5a71521021 [Bun.plugin] Clean up exception handling 2022-09-05 23:43:34 -07:00
Jarred Sumner
11aa17a57c Support async onLoad callbacks in Bun.plugin 2022-09-05 23:05:22 -07:00
Jarred Sumner
d2397b60e7 Move generateObjectModuleSourceCode to separate file to fix build error 2022-09-05 05:16:21 -07:00
Jarred Sumner
c31422b308 inline 2022-09-05 05:15:07 -07:00
Jarred Sumner
7ea9909618 Missing #pragma once 2022-09-05 04:43:02 -07:00
Jarred Sumner
62fa5d59cb Rename is_macro_mode -> use_alternate_source_cache 2022-09-04 21:43:53 -07:00
Jarred Sumner
7acf5d3831 Some tests 2022-09-04 00:54:51 -07:00
Jarred Sumner
1112eb75e3 [node:module] Implement _resolveFileName, stub _nodeModulePaths & _cache
Closes https://github.com/oven-sh/bun/issues/1111
2022-09-04 00:54:21 -07:00
Jarred Sumner
ef268c5ee5 @globalPrivate -> @linkTimeConstant
See https://github.com/WebKit/WebKit/pull/2553

I'm not 100% sure @linkTimeConstant is correct. Specifically, I don't know if it's a link time constant or just a global private thing.
2022-09-04 00:52:30 -07:00
Jarred Sumner
15b7f9793f [Node API] Fix napi_module_register 2022-09-03 22:47:00 -07:00
Jarred Sumner
04cc1968db Fix createRequire() in node:module
Fixes https://github.com/oven-sh/bun/issues/831
Fixes https://github.com/oven-sh/bun/issues/453
2022-09-03 21:48:06 -07:00
Jarred Sumner
4891be8d0d Fix C++ intellisense 2022-09-03 21:40:06 -07:00
Jarred Sumner
cc46604bdb Fix build error 2022-09-03 21:03:50 -07:00
Jarred Sumner
bcbd448767 Add a code of conduct
Copied from Rust
2022-09-03 20:54:15 -07:00
tHyt-lab
892c020b00 update example react-is to v18(#1155) (#1172) 2022-09-03 18:52:33 -07:00
Jarred Sumner
8e5b1c44bc Fixes https://github.com/oven-sh/bun/issues/677 2022-09-03 18:49:19 -07:00
Hyro
2340e7e6e5 chore(install-script): automatically add bun to path - bash shell (#1168)
* chore(install-script): automatically add bun to path - bash shell

* add tildify

* chore: make requested changes

* fix: add equals true

Co-authored-by: Wallunen <44848747+Wallunen@users.noreply.github.com>

* fix: $XDG_CONFIG_HOME can be undefined

Co-authored-by: Wallunen <44848747+Wallunen@users.noreply.github.com>

Co-authored-by: Wallunen <44848747+Wallunen@users.noreply.github.com>
2022-09-03 05:01:26 -07:00
PANG, Kit
98ecfc4f76 Fix GitHub CLI installation (#1204)
A workaround for <https://github.com/cli/cli/issues/6175>.
This commit references <https://github.com/devcontainers/features/pull/133>.
2022-09-03 04:10:21 -07:00
Jarred Sumner
0ca42e81f3 Plugin API (#1199)
* Plugin API

* Fix the bugs

* Implement `"object"` loader

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-09-03 03:57:43 -07:00
Dylan Conway
8b2d07e82e fixed is_export and added test cases (#1203) 2022-09-03 01:39:24 -07:00
Jarred Sumner
3e9f7ab3e4 Update devcontainer scripts
Won't work until https://github.com/cli/cli/issues/6175 is fixed
2022-09-02 16:15:23 -07:00
usrtax
89524d55bd allow set proxy for github (#1198)
in  china , github is blocked, we use https://ghproxy.com/ for proxy

for example
use
`wget https://ghproxy.com/https://github.com/stilleshan/ServerStatus/archive/master.zip`
instead of 
`wget https://github.com/stilleshan/ServerStatus/archive/master.zip`
2022-09-01 23:12:33 -07:00
Zilin Zhu
2dc07d7505 Fix failing Buffer tests (#1197) 2022-09-01 23:11:09 -07:00
Jarred Sumner
4e73726bee Delete some dead code 2022-09-01 20:34:41 -07:00
Jarred Sumner
dfc27e3c30 Clean up options 2022-09-01 20:22:54 -07:00
Jarred Sumner
c78f7463a9 Add missing directories to make devcontainer 2022-09-01 16:32:27 -07:00
Jarred Sumner
793a42e7f5 [bun run] Silence .env loaded log
Fixes https://github.com/oven-sh/bun/issues/1192
2022-09-01 15:31:22 -07:00
Zilin Zhu
700c31dd13 Add native StringDecoder (#1188)
* Add native StringDecoder

* fix upon reviews

* add Constructor and use LazyClassStructure
2022-09-01 12:56:41 -07:00
Jarred Sumner
f023b89b73 Fix crash in napi finalizer 2022-09-01 01:58:42 -07:00
Jarred Sumner
5eb431dcd0 Fixes https://github.com/oven-sh/bun/issues/1183 2022-09-01 01:08:59 -07:00
Ikko Ashimine
5d99398850 Fix typo in futex.zig (#1186)
Therefor -> Therefore
2022-09-01 00:14:20 -07:00
Johan Bergström
43fc696d7b readme: remove recurse flag from xattr (#1182)
This shouldn't be necessary since we're only doing it for one file.

Fixes: https://github.com/oven-sh/bun/issues/1180
2022-09-01 00:14:01 -07:00
Bram Wasti
bfe9d594a9 Add profiler support (#1110) 2022-08-30 19:31:58 -07:00
Taher
8651799097 Fixed JSBuffer write issues (#1175) 2022-08-29 13:09:46 -07:00
Jarred Sumner
9d8fb81413 Improve error when FFI fails to dlopen() 2022-08-29 13:02:02 -07:00
Zilin Zhu
34c0f77319 chore: Clean buffer C API (#1174) 2022-08-29 05:09:47 -07:00
Jarred Sumner
7b628ca09c Fixes https://github.com/oven-sh/bun/issues/1127 2022-08-29 03:26:07 -07:00
Jarred Sumner
5dc260d07e Update README.md 2022-08-28 22:02:27 -07:00
Jarred Sumner
86ac5f09bc Update README.md 2022-08-28 22:01:07 -07:00
Jarred Sumner
1c492e2791 Update package.json 2022-08-28 21:51:24 -07:00
Jarred Sumner
d7dbe6f329 Remove code that doesn't work 2022-08-28 21:46:47 -07:00
Jarred Sumner
c1734c6ec5 More reliable macOS event loop (#1166)
* More reliable macOS event loop

* Reduce CPU usage of idling

* Add another implementation

* Add benchmark

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-08-28 21:28:05 -07:00
yepitschunked
b2141a204f feat: hack in support for tsconfig extends (#1147)
* hack in support for extends

* Update src/resolver/resolver.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* wip review fixes

* fix style

Co-authored-by: Victor Lin <victor.lin@airbnb.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
Co-authored-by: Victor Lin <vlin@twitter.com>
2022-08-28 21:21:20 -07:00
Zilin Zhu
ce90e0c372 support pass null as NULL ptr (#1160) 2022-08-28 06:19:53 -07:00
Jarred Sumner
296fb41e92 [bun:ffi] Fix crash with uint64_t 2022-08-28 00:39:08 -07:00
Jarred Sumner
30992a8b05 [bun:ffi] Fix int16 / uin16 max 2022-08-28 00:28:50 -07:00
Jarred Sumner
af5c4dedca Update WebKit (#1165)
* Update WebKit

* Fix `DataView` and non-8 bit sized typed arrays with TextDecoder

* New WebKit

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-08-27 23:46:05 -07:00
Jarred Sumner
8b3afa5831 Fix crash in os module on macOS 2022-08-27 17:30:34 -07:00
Jarred Sumner
574ecfb9c4 Update Makefile 2022-08-27 16:57:43 -07:00
Jarred Sumner
466f9a3eb0 Update Makefile 2022-08-27 16:27:28 -07:00
Zilin Zhu
6644c2fd17 Fix ffi uint64_t parameter (#1158) 2022-08-27 12:32:13 -07:00
Zilin Zhu
49447decdd fix compile error (#1157) 2022-08-27 02:59:07 -07:00
Dylan Conway
4720270763 added shell to STRIP variable definition (#1156) 2022-08-27 00:37:48 -07:00
Jarred Sumner
e49dcfeff7 Update napi.zig 2022-08-26 18:50:22 -07:00
Jarred Sumner
70e778c2a8 Remove pointer to stack buffer in os module and fix build issue
We cannot have pointers to stack memory returned in the same scope because that memory is no longer valid at the end of the scope

cc @xHyroM
2022-08-26 18:50:15 -07:00
Jarred Sumner
975477d0f0 Implement napi_add_finalizer 2022-08-26 18:28:01 -07:00
Jarred Sumner
1580b5fb56 Fix debug build cache 2022-08-26 18:27:52 -07:00
Max Thomson
ebf4ac4e83 fix: Update broken README links (#1148) 2022-08-26 02:51:57 -07:00
Jarred Sumner
64b3d28d41 Update node_fs.zig 2022-08-26 01:59:13 -07:00
Zilin Zhu
07a4b26697 fix mkdtemp (#1151)
* fix mkdtemp

* Update src/bun.js/node/node_fs.zig

* Update src/bun.js/node/node_fs.zig

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-08-26 01:22:25 -07:00
Zilin Zhu
cf55a38879 Add native BufferList (#1146)
* add simple methods

* add native BufferList

* use RopeBuilder

* use Deque
2022-08-25 21:12:45 -07:00
Hyro
7a734e0a28 feat: implement native os module (#1115)
* feat: implement os module

* revert(bun-error): package-lock.json

* feat: implement EOL

* feat: implement EOL

* feat: implement arch function

* feat: implement homedir function

* add comptime to homedir if

* feat: add platform function

* feat: implement type function

* feat: add hostname (not sure iff works on all platforms)

* chore: make requested changes

* fix: change toValueGC into toValue in arch function

* add EOL, devNull constant variables

* fix: store only string

* feat: add tests

* feat: add endianness

* ususe toValue for devNull & EOL

* feat: implement endianness & fix release

* revert javascript.zig fix

* feat: implement tmpdir

* feat: implement totalmem, freemem, uptime

* feat: loadavg

* feat: implement version

* feat: add userInfo

* feat: implement totalmem for macos

* feat: add getPriority (not finished, waiting for dc response)

* feat: finish userInfo implementation

* feat: implement cpus, not done

* feat: finish getPriority implementation & stats cpus()

* feat: implement setPriority

* reemove test.c

* feat: implement constants.dlope.xn, constants.priority.x, constants.UV_UDP_REUSEADDR

* feat: implement signals, errno

* updated cpus function, stilldoesnt work

* increase object length

* feat: add t more ests

* feat: add cpus()

* remov some files

* fix: handle empty array

* started working on interface addresses (in C)

ill use C++ after it work

* fix interface_addresses

* Improved getCpuInfo code, decreased ram usage, increased speed

* getCpuTime optimizations

* started working on networkInterfaces

* feat: networkInterfaces implementation

* delete unnecessary files

* add benchs & fix code

* add tests

* add missing benchs

* Increased buffer of getCpuInfo to 2048, it should skip few iterations

* remove hardcoded constants

* feat: implement errno constants

* fix getWindowsErrorConstant

* feat: add signal constants

* feat: implement priority constants

* remove duplications

* fix: change value to ?i16

* fix(__defineConstant): make some parameters comptime, change value to ?i32

* fix: add E to ERRNO constants, add SIG to SIG constants

* feat: add dlopen constants

* change functions to private

* feat: add UV_UDP_REUSEADDR

* fix typo

* simplify functions

* rename functions in bindings

* feat: implement loadavg for darwin

* feat: implement system uptime

* feat: implement get free memory for darwin

* fix system memory bindings

* feat: implement network interfaces for darwin

* code cleanup

* feat: support for macos version & release

* some fixes

* MacOS support for CpuInfo

* Fixed minor mistake in getCpuInfo_B

* Delete test.zig

* Update c_cpp_properties.json

* Update tasks.json

* feat: implement scopeid

* feat: implement cidr 🚀

* remove unnecesarry changes

* remove unnecesarry changes

* chore: requested changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* chore: requested changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* chore: requested changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* chore: requested changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* chore: requested changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* chore: requested changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* chore: requested changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>

* fix: import string

* fix: change IPV6 to IPv6

* fix some things

* chore: make requested changes

* revert: launch.json

* fix test

* Fixed few memory leaks

* testing

* again

* added len

* another test

* improved parsing

* added small check

* Bonk

* FINISH 🚀🚀🚀🚀🚀🚀

* Update tasks.json

* NetworkInterface test

* FINISH 🚀🚀🚀

Co-authored-by: Fire-The-Fox <gajdos.jan77@gmail.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-08-25 19:38:28 -07:00
Jarred Sumner
e0b35b3086 Fix Request and Response in macros 2022-08-25 19:23:49 -07:00
Jarred Sumner
49bec758b7 Faster way to lookup mimetype 2022-08-25 19:23:18 -07:00
Jarred Sumner
950d03a9ea Fix incorrect indexOfNotChar causing sourcemaps bugs 2022-08-25 18:53:20 -07:00
Zilin Zhu
e6a1209c53 Fix clearTimeout and linux timeout (#1138) 2022-08-24 09:12:20 -07:00
Zilin Zhu
f2316a8eda Add pad back to base64 (#1140) 2022-08-24 09:10:49 -07:00
Sam
8f58e07ea1 updated minified url polyfill (#1132) 2022-08-23 11:25:37 -07:00
Zilin Zhu
9943ca916d add SlowBuffer (#1133) 2022-08-23 05:12:58 -07:00
Jarred Sumner
75a76fb836 Remove response pool 2022-08-22 10:59:49 -07:00
Jarred Sumner
2a0ab2aa9b Fix build error 2022-08-22 10:21:54 -07:00
Jarred Sumner
fd5398ce80 woops 2022-08-22 09:52:31 -07:00
Jarred Sumner
633bef7ef1 [node:http] speed up assigning headers 2022-08-22 09:51:33 -07:00
Jarred Sumner
fcd09abec6 reduce usage of protect 2022-08-22 09:36:38 -07:00
Jarred Sumner
38071ce9d5 Update mime_type.zig 2022-08-22 09:14:41 -07:00
Jarred Sumner
8642ac8e86 Improve error message when port is already in use 2022-08-22 09:14:41 -07:00
Jarred Sumner
57d6ef26e9 Update server.zig 2022-08-22 09:14:41 -07:00
Zilin Zhu
6a38441562 Support emit Symbol events in EventEmitter (#1129) 2022-08-22 08:22:40 -07:00
Jarred Sumner
4b8409096d faster way to read content-type 2022-08-22 08:20:05 -07:00
Jarred Sumner
39dc989915 Fix Buffer.isEncoding 2022-08-22 08:19:28 -07:00
Jarred Sumner
5273415ce5 Add some optimizations to FetchHeaders 2022-08-22 07:49:58 -07:00
Jarred Sumner
47a91e7457 Fix import path 2022-08-22 00:04:27 -07:00
Jarred Sumner
f5c6875da5 38% faster node:http
Before:
```fish
❯ oha http://localhost:3000 -z 2s -c 20
Summary:
  Success rate:	1.0000
  Total:	2.0006 secs
  Slowest:	0.0095 secs
  Fastest:	0.0000 secs
  Average:	0.0003 secs
  Requests/sec:	69521.0420
```

After:
```
❯ oha http://localhost:3000 -z 2s -c 20
Summary:
  Success rate:	1.0000
  Total:	2.0005 secs
  Slowest:	0.0063 secs
  Fastest:	0.0000 secs
  Average:	0.0002 secs
  Requests/sec:	109119.8614
```

Code

```
const http = require("http");

const hostname = "127.0.0.1";
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader("Content-Type", "text/plain");
  res.end("Hello World!");
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});
```
2022-08-22 00:04:27 -07:00
Jarred Sumner
eec11a6651 Don't transpile readable-stream 2022-08-22 00:04:27 -07:00
Jarred Sumner
b95e6602c3 Add a snippet for benchmarking EventEmitter vs EventTarget 2022-08-22 00:04:27 -07:00
Jarred Sumner
6897372258 [misc] Reload internal JS modules in development without compiling 2022-08-22 00:04:27 -07:00
Jarred Sumner
ee1d506d06 Use jsCast because it's slightly faster 2022-08-22 00:04:27 -07:00
Jarred Sumner
d620500757 [node compat] Don't throw TypeError for DOM constructors 2022-08-22 00:04:27 -07:00
Jake Lynch
65dd2214d9 fix bun-tools location in macOSx zig instructions (#1124) 2022-08-21 19:20:33 -07:00
Zilin Zhu
3d8bc140aa Add native EventEmitter (#1123)
* Add native EventEmitter

* add listeners, listenerCount and eventNames

* add global functions

* add Object to EventEmitter conversion

* fix upon review
2022-08-21 05:34:31 -07:00
Jarred Sumner
d8f40e080d [env loader] Don't panic when .env fails to load for unexpected reasons 2022-08-21 01:45:14 -07:00
Jarred Sumner
6ab53fca36 Reduce allocations for ObjectPool 2022-08-21 01:08:40 -07:00
Jarred Sumner
8fafc2f9ed [bun-landing] inline via data uri 2022-08-21 01:01:03 -07:00
Jarred Sumner
c4580ee2ca Rename reactdom-bun -> react-dom-server.bun 2022-08-21 01:00:27 -07:00
Jarred Sumner
a8fa61ed68 Support running scripts in bun's runtime from a shebang 2022-08-21 00:59:50 -07:00
Jarred Sumner
f3779b8e73 [breaking] bun run <missing script> should return a nonzero exit code 2022-08-21 00:58:24 -07:00
Jarred Sumner
ca5b996299 Support loading JavaScript files without extensions 2022-08-21 00:51:57 -07:00
Jarred Sumner
baf218c233 Add a bench snippet for sha512 2022-08-21 00:51:27 -07:00
Jarred Sumner
7880e6e6c8 Remove usage of fnctl64 so we can avoid the libc symbol 2022-08-21 00:50:23 -07:00
Jarred Sumner
97305b7461 Add a binding for creating atomic strings 2022-08-21 00:49:54 -07:00
Jarred Sumner
1fca65fdf6 Slightly optimize escapeHTMLescapeHTML8 & escapeHTML16 2022-08-21 00:48:53 -07:00
Jarred Sumner
aaa019ce37 Update WebKit 2022-08-20 23:03:50 -07:00
Jarred Sumner
32d2be0d08 Export createSyntheticModule 2022-08-20 23:03:50 -07:00
Jarred Sumner
83e4d04ce7 wip support #! 2022-08-20 23:03:50 -07:00
Hyro
8901d23685 fix(ReferenceError): expected type in getCode (#1120) 2022-08-20 16:40:28 -07:00
Jarred Sumner
98a03c192d Fix running zig tests 2022-08-20 04:43:12 -07:00
Jarred Sumner
f4419bd240 Fix crash on invalid JSX 2022-08-20 04:43:12 -07:00
Jarred Sumner
07e1a158e9 Add code to ResolveError 2022-08-20 04:43:12 -07:00
Zilin Zhu
2641884342 Add buffer.indexOf, includes and lastIndexOf (#1112)
* Add buffer.indexOf, includes and lastIndexOf

* use memmem

* use int64_t

* fix upon reviews
2022-08-20 00:17:17 -07:00
Zilin Zhu
b1bc549cf7 fix buffer.slice(0, 0) (#1114) 2022-08-19 23:25:10 -07:00
Zilin Zhu
8cf57eb582 fix buffer.copy (#1113) 2022-08-19 23:13:38 -07:00
Jarred Sumner
aa404ded34 Update build-id 2022-08-19 05:06:11 -07:00
Jarred Sumner
eee5046b82 Make React SSR up to 3x faster 2022-08-19 04:47:55 -07:00
Jarred Sumner
9222a5d376 2x faster Bun.serve with async function handlers 2022-08-19 03:51:01 -07:00
Jarred Sumner
0a0f8ff41c Update bun init test 2022-08-19 00:35:26 -07:00
Jarred Sumner
fe7180bc74 Synchronously dispatch close event 2022-08-18 23:49:14 -07:00
Jarred Sumner
bdf733973c Fix memory leak in WebSocket 2022-08-18 23:41:33 -07:00
Jarred Sumner
0f45386673 Make Request, Response and TextDecoder not read-only 2022-08-18 23:21:52 -07:00
Jarred Sumner
88d2a97670 Update build-id 2022-08-18 21:17:38 -07:00
Jarred Sumner
922c361f6a un-delete some code 2022-08-18 21:14:52 -07:00
Jarred Sumner
0e4db0b28f Add string support to Buffer.fill 2022-08-18 21:09:26 -07:00
Jarred Sumner
d150a2f4dd [node compat] Fix issue with Buffer.compare when called on the constructor 2022-08-18 19:34:28 -07:00
Jarred Sumner
5eeb704f25 Fix console.log printing [native code] for too many things 2022-08-18 19:23:45 -07:00
Jarred Sumner
e3c2a95e5f Faster TextDecoder 2022-08-18 19:06:29 -07:00
Jarred Sumner
e45ddc086f Fix Next.js regression 2022-08-18 19:05:37 -07:00
Jarred Sumner
51ced7d3e3 Fix bun:wrap not loading 2022-08-18 19:05:07 -07:00
Jarred Sumner
036e580045 Fixes https://github.com/oven-sh/bun/issues/1069 2022-08-18 01:13:11 -07:00
Jarred Sumner
9eaed7cec7 Fix missing prototype property on generated classes 2022-08-18 00:56:36 -07:00
Jarred Sumner
eb5b298bc1 Update generate-classes.ts 2022-08-18 00:22:29 -07:00
Jarred Sumner
5de8271181 Handle builds with remote inspector disabled 2022-08-18 00:22:24 -07:00
Jarred Sumner
f4ff5ecbdf Missing parameter after merge 2022-08-17 22:38:07 -07:00
Jarred Sumner
1ebebbc698 Update build-id 2022-08-17 21:55:36 -07:00
Jarred Sumner
b3f5131981 Update build-id 2022-08-17 21:46:28 -07:00
Jarred Sumner
8399d31af2 Update ZigGlobalObject.cpp 2022-08-17 21:44:00 -07:00
Jarred Sumner
1d2b52d15c Move the crypto hashers to the new bindings 2022-08-17 21:38:16 -07:00
Zilin Zhu
4fe8b8e5b7 Add native process module (#1095) 2022-08-17 20:14:31 -07:00
Jarred Sumner
cb1114dba6 uncomment 2022-08-17 19:27:35 -07:00
Jarred Sumner
c720bdc324 Move around some things 2022-08-17 19:26:10 -07:00
Jarred Sumner
bc412e1f6f slightly improve streams perf 2022-08-17 19:25:43 -07:00
Jarred Sumner
ddd151a23b Bump WebKit 2022-08-17 18:53:11 -07:00
Jarred Sumner
ac20150d04 Update http_client_async.zig 2022-08-17 08:18:13 -07:00
Jarred Sumner
9594c82180 Update react-hello-world.jsx 2022-08-17 07:55:19 -07:00
Jarred Sumner
93b663e43d New Zig <> C++ bindings generator. +20% faster HTTP server 2022-08-17 07:37:14 -07:00
Jarred Sumner
65820893c9 Slightly improve header init perf 2022-08-17 07:36:35 -07:00
Jarred Sumner
6a65631cbd [bun:ffi] Improve ptr() performance and implement code generation for DOMJIT 2022-08-17 07:36:35 -07:00
Jarred Sumner
382be2cb46 [bun:sqlite] Add DOMJIT to get() 2022-08-17 07:36:35 -07:00
Zilin Zhu
0aa3a0a5b0 Fix server segfault by making controller not early GC'ed (#1090)
* Fix http server segfault by making controller not get GC'ed

* fix format
2022-08-17 05:22:09 -07:00
Zilin Zhu
77b449856d Fix active_task count for timeout tasks (#1081) 2022-08-15 05:37:37 -07:00
Jonathan Collazo
b59d93b01e updating libarchive (#1078) 2022-08-14 21:23:17 -07:00
Zilin Zhu
afe34df3cc Add synthetic buffer module (#1076)
* Add synthetic buffer module

* rename Buffer.h to BufferModule.h
2022-08-14 18:08:25 -07:00
Jarred Sumner
9af4c0420e Update webKit 2022-08-13 23:29:05 -07:00
Jarred Sumner
952a4ab94a fixups 2022-08-13 23:06:14 -07:00
Jarred Sumner
e210f271bb Fix macOS build 2022-08-13 21:58:31 -07:00
Jarred Sumner
64b20cac88 Merge remote-tracking branch 'origin/jarred/redo-linux-event-loop' 2022-08-13 21:01:31 -07:00
Jarred Sumner
f90c09d715 wip SyntheticModule 2022-08-13 18:18:05 -07:00
Jarred Sumner
5644da1a3e Update WebKit 2022-08-13 18:18:05 -07:00
Jarred Sumner
a2d6e58875 [Bun.serve] Fix crash on req.headers async 2022-08-13 18:18:05 -07:00
Jarred SUmner
0815c83974 Improve event loop reliability on Linux 2022-08-13 06:07:18 -07:00
Ikko Ashimine
65ca0503a7 [bun error] fix typo in markdown.ts (#995)
happend -> happened
2022-08-12 19:22:32 -07:00
Jarred Sumner
5f68c562f9 Make versions consistent 2022-08-12 19:17:26 -07:00
Jarred Sumner
9ba080e829 Update WebKit URLs 2022-08-12 18:31:26 -07:00
Jarred Sumner
4df0385c23 Update WebKit 2022-08-12 18:28:32 -07:00
Jarred Sumner
75cad910db Add missing sqlite3 symbol 2022-08-12 15:16:02 -07:00
Jarred Sumner
262f00df3e Update bun-mac-x64-baseline.yml 2022-08-12 13:26:05 -07:00
Zilin Zhu
1dce0b2af1 remove column name caches in js (#1057) 2022-08-12 03:07:51 -07:00
Ryan Russell
c33f39b39c refactor(src/tagged_pointer): IntPrimtiive -> IntPrimitive (#1046)
Signed-off-by: Ryan Russell <git@ryanrussell.org>

Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-08-12 03:04:00 -07:00
Zilin Zhu
bcc4580cdc invalidate column name caches when the schema of table may change (#1056) 2022-08-12 02:47:01 -07:00
Jarred Sumner
dba3aaedab Faster performance.now() 2022-08-12 01:18:31 -07:00
Jarred Sumner
c9cd8bd13b Update WebKit 2022-08-12 01:18:31 -07:00
Jarred Sumner
5c1ca0cc47 [bun.js] up to 60% faster TextEncoder.encodeInto and ~3% faster TextEncoder.encode 2022-08-12 01:18:31 -07:00
Jarred Sumner
2ac8c83be0 [Bun.serve] Fix crash on invalid certificate file path for SSL 2022-08-12 01:18:31 -07:00
Zilin Zhu
66869f2239 fix appendFile permission (#1052) 2022-08-11 01:00:06 -07:00
Zilin Zhu
1bc5036d2e fix MD5 length and compile error (#1050) 2022-08-10 23:11:24 -07:00
Jarred Sumner
bcdc68ac94 Add bun link and bun unlink to completions 2022-08-10 23:09:07 -07:00
Jarred Sumner
f8d5c4594f [bun unlink] Partially implement 2022-08-10 23:08:51 -07:00
Jarred Sumner
437dc22862 Include GIT_SHA in linux builds 2022-08-10 21:49:31 -07:00
Jarred Sumner
271178d1a5 Update bun-mac-aarch64.yml 2022-08-10 21:46:41 -07:00
Jarred Sumner
5287b482e6 Update ZigGlobalObject.cpp 2022-08-10 21:46:27 -07:00
Jarred Sumner
4fe24a4f3c Log uncaught exceptions 2022-08-10 21:46:17 -07:00
Jarred Sumner
551cb26afb Add shared property 2022-08-10 21:26:32 -07:00
Jarred Sumner
d9ae284463 Fix console.log with typed arrays 2022-08-10 21:26:20 -07:00
Jarred Sumner
00d5f6699b Add Event JSType 2022-08-10 18:45:30 -07:00
Jarred Sumner
3ca4bab2d5 Faster debug builds 2022-08-10 17:44:18 -07:00
Jarred Sumner
e9c855f837 Fix MessageEvent formatting
Fixes https://github.com/oven-sh/bun/issues/510
2022-08-10 17:44:10 -07:00
Jarred Sumner
f09e7ac630 improve reliability of WebSocket
- Fix GC not keeping WebSocket alive
- Fix ignoring messages sent immediately after upgrade

Fixes https://github.com/oven-sh/bun/issues/521
2022-08-10 17:40:17 -07:00
Jarred Sumner
e511b14b2a Fix spurious unhandled promise rejection error 2022-08-10 15:46:23 -07:00
Jarred Sumner
6ca32d800d [bun upgrade] Add changelog URL
Fixes https://github.com/oven-sh/bun/issues/1019
2022-08-10 15:30:34 -07:00
Jarred Sumner
218ab7f967 Remove trailing newline in git sha 2022-08-10 15:29:53 -07:00
Jarred Sumner
099ad31deb Update js_parser.zig 2022-08-10 15:19:03 -07:00
Jarred Sumner
2644b9d792 [TS] Fix bug with import Foo = require("bar")
Closes https://github.com/oven-sh/bun/issues/1045
2022-08-10 15:08:54 -07:00
Jarred Sumner
67cdf1c9b3 Commit snapshot 2022-08-10 13:41:43 -07:00
Jarred Sumner
1eddf254e1 Fix linux build? 2022-08-09 18:43:42 -07:00
Jarred Sumner
c148c33510 [js] Fix console.log(Infinity) 2022-08-09 16:37:05 -07:00
Jarred Sumner
429abc1278 [bun:ffi] ~30% perf improvement for wrapped functions 2022-08-09 16:35:06 -07:00
Jarred Sumner
3dca3baaec [bun:ffi] Re-enable most of the tests 2022-08-09 16:17:35 -07:00
Jarred Sumner
bbb6e25c68 [bun:ffi] Feature: Expose ptr on the FFI function 2022-08-09 16:17:11 -07:00
Jarred Sumner
b428227895 [bun:ffi] Feature: C deallocator callback function for toBuffer and toArrayBuffer 2022-08-09 16:16:51 -07:00
Jarred Sumner
6c8ba6c5fc Fix linux build 2022-08-09 15:38:47 -07:00
Jarred Sumner
01f567e915 add some comments 2022-08-09 06:05:20 -07:00
Jarred Sumner
f44f98be33 [node compat] Add tests for fs.copyFileSync 2022-08-09 05:48:22 -07:00
Jarred Sumner
16f24086f8 [node compat] Improve fs.copyFileSync performance on macOS 2022-08-09 05:48:20 -07:00
Jarred Sumner
f4ab46a8bd Update Makefile 2022-08-09 05:47:46 -07:00
Jarred Sumner
8ae4c745e1 Improve fs.copyFile performance on Linux (#1035)
* [fs] Improve fs.copyFile performance on Linux

* Add a fs.copyFileSync benchmark

* Fix build error

* Update node.mitata.mjs

* Be more careful with permission

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-08-09 05:44:39 -07:00
Jarred Sumner
b274d22205 Simplify building the debug tools 2022-08-09 02:33:04 -07:00
Jarred Sumner
159a1e4bf2 Fix clean-bindings script 2022-08-09 02:32:46 -07:00
Jarred Sumner
a6596ace70 [misc] Add a way to disable LOLHTML
LOLHTML costs about 1 MB of binary size
2022-08-09 01:41:13 -07:00
Jarred Sumner
28ad93f02f [node compat] Update "module" module's require.resolve implementation 2022-08-09 01:41:13 -07:00
Jarred Sumner
4575df38e6 [misc] Add a global private @Bun 2022-08-09 01:41:13 -07:00
Jarred Sumner
b36b7fee16 [node compat] Implement require.resolve 2022-08-09 01:41:13 -07:00
Jarred Sumner
01847cabd2 Delete server polyfill 2022-08-09 01:41:13 -07:00
Zilin Zhu
9a721adbff Fix static require by setting the state machine manually (#1034) 2022-08-09 01:25:41 -07:00
TiKevin83
ceb78d2bb9 Update example Next app to 12.2 (#1033)
* Update bun-framework-next for version 12.2

* Match on minor version for next peer dependency per compatibility issues

* Update example next app packages per 12.2 integration

* Update next version warning per minor version compatibility changes

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-08-08 15:29:12 -07:00
Zilin Zhu
02644ab65a Raise error on unhandled rejected promises (#1010)
* deal with unhandled rejected promise

* use Vector<Strong<JSPromise>> to store rejected promises
2022-08-08 10:58:00 -07:00
Jarred Sumner
98c2d20ab0 Flip boolean 2022-08-08 03:54:14 -07:00
Jarred Sumner
84e76ce4ad Fix baseline builds once again 2022-08-08 03:39:44 -07:00
Zilin Zhu
05a382172f fix compiling error on linux (#1027) 2022-08-08 02:13:11 -07:00
Jarred Sumner
766ce5ab7b Update JSSQLStatement.cpp 2022-08-08 01:26:21 -07:00
Zilin Zhu
463f2b7dab fix segfault for query().all() with more than 64 properties (#1025)
* fix segfault for query().all() with more than 64 properties

* Update src/bun.js/bindings/sqlite/JSSQLStatement.cpp

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-08-08 00:54:13 -07:00
Ryan Russell
a6b089bd17 refactor(src/install): clap readability fixes (#1024)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-08-08 00:20:44 -07:00
Jarred Sumner
05bca1e4e4 bun link fixture 2022-08-07 23:28:10 -07:00
Jarred Sumner
73a18c99e6 [bun install] Increase "slow filesystem detected" notice 2022-08-07 23:24:23 -07:00
Jarred Sumner
c795c6742d [misc] fix typo 2022-08-07 23:23:42 -07:00
Jarred Sumner
cc2c50ad09 [bun install] Implement bun link 2022-08-07 23:23:34 -07:00
Jarred Sumner
f990df97ce [misc] Don't spam protect / unprotect in debug logs 2022-08-07 19:21:37 -07:00
Jarred Sumner
5d7ed5cbce Improve memlock limit error 2022-08-07 16:51:14 -07:00
Jarred Sumner
12dbc1ed7b [bun install] Implement symlink backend
Fixes https://github.com/oven-sh/bun/issues/1017
2022-08-07 15:58:41 -07:00
Jarred Sumner
cf78745271 [misc] Microptimize directory tree walker 2022-08-07 15:58:41 -07:00
Jarred Sumner
52865750da Update bun.lockb 2022-08-07 15:58:41 -07:00
Zilin Zhu
6b45f39322 re-register setInterval to VM after completion (#1014) 2022-08-07 09:23:45 -07:00
Jarred Sumner
31b8ad8230 Update Dockerfile 2022-08-06 10:40:57 -07:00
Jarred Sumner
49c4f29c1f Ensure cache invalidation for building bun 2022-08-06 09:17:23 -07:00
Jarred Sumner
a35730a7b6 Ensure correct directory for linking WebKit 2022-08-06 09:17:23 -07:00
Zilin Zhu
b8993dbd78 [wiptest] fix calling toBe in describe (#1000) 2022-08-06 02:32:32 -07:00
Jarred Sumner
c94091d8b1 Refresh all the bun.lockb 2022-08-05 23:28:19 -07:00
Jarred Sumner
4c01845f32 [BREAKING][bun install] Invalidate all the lockfiles 2022-08-05 23:20:24 -07:00
Jarred Sumner
b17f5b750e [bun install] Support authenticated registries 2022-08-05 22:42:22 -07:00
Jarred Sumner
a16dcbbb5b [bun install] Support private registries & private scopes 2022-08-05 22:41:43 -07:00
Jarred Sumner
c74df4c880 Fix https://github.com/oven-sh/bun/issues/996 2022-08-05 21:49:27 -07:00
Jarred Sumner
e34190fe66 Fix error message in install script 2022-08-05 16:36:25 -07:00
Jarred Sumner
7cbb9add48 Fix baseline detection for macOS x64 2022-08-05 16:30:51 -07:00
Jordan Lees
35a6946b63 Update README for development help (#982)
* Add info on Docker (was undockumented)

I'm actually just assuming Docker is required on all systems. Feel free to correct me lol

* Update README with info on newer devcontainer cli

since `devcontainer open` is no longer supported

* Update README - Troubleshooting steps

* Update README.md

* Update README.md

Fixing Jarred's correction on https://github.com/oven-sh/bun/pull/982, plus some better organization

* Update README.md

Forgot to include remote containers extension; added Troubleshooting (general) link to the table of contents
2022-08-05 12:42:43 -07:00
Hyro
1cb8f0fa73 feat(util): support for util.TextDecoder (#990)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* feat(util): support for util.TextDecoder

* tests(util): add TextDecoder

* tests: seperate text-decoder

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-08-05 10:42:52 -07:00
Hyro
5bca8a1d47 benchmarks(sqlite): invalid northwind database url (#989)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* benchmarks(sqlite): fix invalid northwind database url

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-08-05 10:36:32 -07:00
Soney Mathew
7e93c2368e Fix of panic in threads while downloading scoped packages (#992) 2022-08-05 10:34:50 -07:00
Soney Mathew
9fad889f26 Fix for bearer tokens missing from request headers on bun install step (#991) 2022-08-05 03:15:26 -07:00
Lee Robinson
95294d245c Convert landing page to zero-JS Next.js application. (#945) 2022-08-05 00:37:34 -07:00
Jarred Sumner
c5b600ad48 [misc] Add bun init to bun help 2022-08-04 23:24:17 -07:00
Jarred Sumner
9cce277eaf [misc] Make the macOS builds faster 2022-08-04 23:22:09 -07:00
Jarred Sumner
7e3fe03fb0 [bun init] Add a test 2022-08-04 23:21:41 -07:00
Jarred Sumner
1bc8c92e2f [misc] Add bun-types to repo 2022-08-04 22:16:05 -07:00
Jarred Sumner
f0d332e287 [bun:sqlite] Fix crash when > 64 columns
Fixes https://github.com/oven-sh/bun/issues/987
2022-08-04 22:16:05 -07:00
Zilin Zhu
e7ecedf3e9 allow setting status code in Response.redirect (#985) 2022-08-04 21:44:26 -07:00
Jarred Sumner
d034c004f9 Implement bun init subcommand 2022-08-04 21:42:49 -07:00
Jarred Sumner
7ba61bc983 [bun create] Allow custom start commands 2022-08-04 21:41:12 -07:00
Jarred Sumner
2b55f2d00f Allow timer with 0 -> 1 2022-08-04 21:40:48 -07:00
Jarred Sumner
4d19970663 [bun upgrade] Prepare for version strings with a space 2022-08-04 21:40:23 -07:00
Jarred Sumner
5ccb4f10d2 setImmediate is now a global 2022-08-04 21:39:58 -07:00
Jarred Sumner
6375982d19 [node.js compat] make var {isBuffer} = Buffer; work 2022-08-04 21:25:14 -07:00
Jarred Sumner
58882c0555 Fix building debug tools 2022-08-04 12:46:09 -07:00
Jarred Sumner
fd7be10f3a Disable browser field for bun, bun_macro
Closes #979
2022-08-04 10:42:33 -07:00
Jarred Sumner
1c1ba17908 Update README.md 2022-08-04 01:42:59 -07:00
Jarred Sumner
ef25009bcd Update README.md 2022-08-04 01:36:30 -07:00
Jarred Sumner
3c5b68caa7 [node.js compat] Clamp for Buffer functions instead of throwing 2022-08-03 21:31:15 -07:00
Jarred Sumner
37fe03e1ca Fix Dockerfile 2022-08-03 21:17:43 -07:00
Zilin Zhu
36d5d764d8 fix path.normalize on ... (#966) 2022-08-03 21:14:08 -07:00
Jarred Sumner
b310d7c40d [node.js compat] latin1 & ascii encoding for Buffer 2022-08-03 21:11:20 -07:00
Jarred Sumner
290fb7f7e7 [Bun.Transpiler] Fix bug that would cause some bun-specific transforms to run 2022-08-03 20:52:17 -07:00
Jarred Sumner
aa0be51d40 Fix test failures from JSPropertyIterator change 2022-08-03 20:52:17 -07:00
Jarred Sumner
77bab6c782 [misc] Make name more consistent 2022-08-03 20:52:16 -07:00
Jarred Sumner
9d81d24a7a Fix mac builds 2022-08-03 20:51:01 -07:00
Zilin Zhu
de848d4e1c fix(makefile): mkdir DEBUG_OBJ_DIR before compiling bindings (#975) 2022-08-03 20:11:09 -07:00
Jarred Sumner
440eba7c9b [misc] Fix make headers 2022-08-03 19:13:08 -07:00
Jarred Sumner
cf81ee5f41 Update build-id 2022-08-03 18:58:59 -07:00
Jarred Sumner
e29ef5561f [bun install] Include scripts when lockfile doesn't change 2022-08-03 18:44:54 -07:00
Jarred Sumner
6ef45c9e33 [misc] Make debug builds faster 2022-08-03 18:35:53 -07:00
Jarred Sumner
2094667417 [bun install] Support lifecycle hooks for cwd's package.json
`bun install` will now run prepare & install `"scripts"` for the root package.json (not dependencies)

This makes things like `husky` work and possibly `patch-package`
2022-08-03 18:35:53 -07:00
Jarred Sumner
928f6e068b Don't use SIMD in non-SIMD builds 2022-08-03 18:35:53 -07:00
Jarred Sumner
e253ce0948 Add process.revision and expose git sha to builds 2022-08-03 18:35:53 -07:00
Zilin Zhu
58feb81c36 use import.meta.require instead of import (#973) 2022-08-03 18:31:39 -07:00
Carter Snook
f4ac41b5d9 fix: prop iterator cstring variant (#974) 2022-08-03 15:32:39 -07:00
Carter Snook
033eebce29 refactor: create a high-level property iterator (#972)
This also fixes multiple memory leaks double frees.
2022-08-03 14:05:38 -07:00
Jarred Sumner
40a187f0de fix bug in process.hrtime() 2022-08-03 13:26:19 -07:00
Zilin Zhu
a8d499208b Fix Makefile (#957) 2022-08-02 16:45:57 -07:00
Zilin Zhu
a5a1435867 Fix u32 jsNumber cast (#964) 2022-08-02 16:45:18 -07:00
Jarred Sumner
ed9abb0cb0 [node.js compat] Implement process.hrtime() and process.hrtime.bigint() 2022-08-02 16:41:47 -07:00
Jarred Sumner
fcce3ff5ac Basename 2022-08-01 15:17:59 -07:00
Jarred Sumner
85c4c25bc2 Use WebKit LTO builds where appropriate 2022-08-01 15:16:17 -07:00
Jarred Sumner
35bd08f7d7 Mention moduleResolution: node so people copy paste the right thing 2022-08-01 15:06:50 -07:00
Jarred Sumner
cfa7a43ee7 Fix typo 2022-07-31 15:44:25 -07:00
Kid
52c962cb5b chore: migrate deprecated @vscode/dev-container-cli (#912) 2022-07-31 15:43:15 -07:00
Oran Simhony
43c1f17d1f Fix: move bun, Webkit and zig urls from Jarred-Sumner to oven-sh. (#944)
* Fix: move bun, Webkit and zig urls from Jarred-Sumner to oven-sh.

* Fix: changed urls from types.d.ts to base bun-types repo.
2022-07-31 15:41:45 -07:00
Hyro
a04c29aaf1 chore: fix labeler (#899) 2022-07-31 01:11:26 -07:00
Ryan Russell
af5a062424 refactor(bunjs/bindings): code readability fix functionLazyLoadStreamPrototypeMap_getter (#926) 2022-07-31 01:10:49 -07:00
Charles F. Munat
8882e52539 Fix/react accessibility (#932) 2022-07-31 01:10:10 -07:00
dave caruso
ccc22bb968 fix(makefile): devcontainer install (#933) 2022-07-31 01:09:42 -07:00
Jarred Sumner
05953a0680 Fix typo 2022-07-30 23:11:36 -07:00
Jarred Sumner
d132c131eb Fix default value in Dockerfile 2022-07-30 23:09:04 -07:00
Jarred Sumner
1e8af74564 There is no non-LTO build for amd64 webkit, but probably should change that 2022-07-30 23:06:39 -07:00
Jarred Sumner
1ff60e7534 Use webkit without march 2022-07-30 23:02:48 -07:00
Jarred Sumner
7b7b4b46af Fix build 2022-07-29 22:09:01 -07:00
Jarred Sumner
d61ef19ecf Update bun-framework-next for Next 12.2 2022-07-29 22:06:57 -07:00
TiKevin83
b765619ad6 Update bun-framework-next for Compatibility with Next 12.2+ (#920) 2022-07-29 20:48:18 -07:00
Jarred Sumner
e8b848dfcf Fix path 2022-07-29 18:31:39 -07:00
Jarred Sumner
467a106db0 Potentially fix build 2022-07-29 18:27:22 -07:00
Carter Snook
3d6d2651da fix(ffi): double-free segfault with symbols object (#919) 2022-07-29 17:43:18 -07:00
Hyro
a5eaa907e2 docs: fix broken ffi benchmark link (#914)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* docs: fix broken ffi benchmark link

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-07-29 14:00:03 -07:00
Hyro
50284f38a6 chore(ci): add segfault label (https://github.com/oven-sh/bun/pull/916) 2022-07-29 21:06:46 +02:00
sno2
09c6802891 chore(ci): add segfault label 2022-07-29 14:04:26 -05:00
Jarred Sumner
4bdad99ead Use WebKit baseline build 2022-07-28 18:49:34 -07:00
Jarred Sumner
56885fae4d Bust cache again 2022-07-28 17:37:37 -07:00
Jarred Sumner
d173f777a7 Bust cache 2022-07-28 15:08:45 -07:00
Jarred Sumner
94ea5f28db Bump WebKit 2022-07-28 14:26:46 -07:00
Kevin Ingersoll
b70f6fcb51 landing/docs: make Bun naming consistent (#906)
* landing/docs: make Bun naming consistent

* fix spacing, wrap one more code thing
2022-07-28 13:48:21 -07:00
Jarred Sumner
6fecda6b73 There are ~3 different versions of strip with different flags and it is very confusing 2022-07-28 04:31:45 -07:00
Jarred Sumner
cbae4a31aa Bust cache 2022-07-28 04:09:04 -07:00
Jarred Sumner
13364767fb Bump webkit 2022-07-28 04:05:33 -07:00
Jarred Sumner
3e73ea2e26 Only strip debug symbols 2022-07-28 04:05:02 -07:00
Jarred Sumner
21b8f80a99 [misc] Make debug builds not depend on a specific directory structure 2022-07-28 04:04:53 -07:00
Jarred Sumner
23f1e008a2 Use ADD so that the caching is set 2022-07-28 04:04:29 -07:00
Jarred Sumner
380e7e1cfb Update WebKit 2022-07-28 04:04:10 -07:00
Jarred Sumner
2106afc4d4 Fix process.versions.webkit 2022-07-28 04:04:07 -07:00
Jarred Sumner
97cd944237 [node compat] Fix bug with process.title 2022-07-28 04:03:49 -07:00
Jarred Sumner
5cf39ef6c5 Update build-id 2022-07-28 02:54:28 -07:00
Jarred Sumner
90727f305e Downgrade baseline target to westmere 2022-07-28 00:40:07 -07:00
Jarred Sumner
78dd366272 Update bun-dockerhub.yml 2022-07-28 00:09:23 -07:00
Jarred Sumner
dddc645d4b [misc] Remove irrelevant scripts 2022-07-27 21:21:36 -07:00
Jarred Sumner
bd547ace80 [misc] Replace reference to old repo 2022-07-27 21:20:45 -07:00
Jarred Sumner
194a5c896e [misc] Simplify the commands used to build bun 2022-07-27 21:20:09 -07:00
Jarred Sumner
7c5c4f5694 Clean up some things with the devcontainer 2022-07-27 21:18:58 -07:00
Jarred Sumner
6b25e6935e [bun install] Fix segfault when loading scopes 2022-07-27 21:16:22 -07:00
Jarred Sumner
bebce1ec63 [bun install] Fix missing lockfile data for tarballs 2022-07-27 21:15:57 -07:00
Jarred Sumner
eea925e7e0 Remove disabled workflow 2022-07-27 18:37:43 -07:00
Jarred Sumner
a1e0af20b8 Fix Dockerfile 2022-07-27 18:37:23 -07:00
Rishi Goomar
9e342c17b2 docs(macos): Improve MacOS Development Instructions (#836)
* docs(macos): Improve MacOS Development Instructions

* Update MacOS zig install to be more automated
2022-07-27 18:28:38 -07:00
Jarred Sumner
9bd4a8f7bb [docker] wip 2022-07-27 18:13:30 -07:00
Jarred Sumner
ed56c1350e [docker] wip 2022-07-27 18:11:13 -07:00
Jarred Sumner
0c6512cd33 [docker] wip 2022-07-27 18:09:00 -07:00
Jarred Sumner
75b14341af [docker] wip 2022-07-27 18:06:17 -07:00
Jarred Sumner
fa3404920a Upgrade WebKit in Dockerfile 2022-07-27 18:03:09 -07:00
Jarred Sumner
353f899309 getObject -> asCell because it's a little bit safer 2022-07-27 17:48:25 -07:00
Jarred Sumner
bdbd70ca0f Update WebKit 2022-07-27 17:46:28 -07:00
Jarred Sumner
87746d611b Upgrade WebKit 2022-07-27 17:46:28 -07:00
szatkus
a00eb95e29 #609 Don't truncate ascii buffers to 7-bit (#775) 2022-07-27 11:42:39 -07:00
Jarred Sumner
e468a61811 fixup 2022-07-27 02:06:46 -07:00
Jarred Sumner
4ee298fe20 "SegmentationFault at 1" -> "SegmentationFault at 0x10000000" 2022-07-27 02:04:19 -07:00
Jarred Sumner
999d39ec0b WIP fix workflow run 2022-07-26 22:25:17 -07:00
Jarred Sumner
6772d3a102 Update readme 2022-07-26 22:14:00 -07:00
Jarred Sumner
ba0657410d Remove bun-types from repo 2022-07-26 22:10:01 -07:00
Jarred Sumner
03fde4c3fd WIP fix workflow run 2022-07-26 22:00:13 -07:00
Jarred Sumner
b189b6e947 WIP fix workflow run 2022-07-26 21:19:25 -07:00
Jarred Sumner
3b247daf75 WIP fix workflow run 2022-07-26 20:01:55 -07:00
Jarred Sumner
6b556a186f WIP fix workflow run 2022-07-26 01:05:19 -07:00
Jarred Sumner
03f0431800 WIP fix workflow run 2022-07-26 00:54:21 -07:00
Jarred Sumner
b56979ebe1 WIP fix workflow run 2022-07-26 00:53:39 -07:00
Jarred Sumner
4123ce1a4f WIP fix workflow run 2022-07-26 00:27:18 -07:00
Jarred Sumner
5d52e22aee WIP fix workflow run 2022-07-26 00:24:03 -07:00
Jarred Sumner
ae4595f9e2 WIP fix workflow run 2022-07-25 23:46:29 -07:00
Jarred Sumner
8ccfe2957f WIP fix workflow run 2022-07-25 23:17:57 -07:00
Jarred Sumner
63adad8caf WIP fix workflow run 2022-07-25 23:17:34 -07:00
Jarred Sumner
162c3f2d13 WIP fix workflow run 2022-07-25 23:12:59 -07:00
Jarred Sumner
e03cde7cd5 WIP fix workflow run 2022-07-25 23:11:10 -07:00
Jarred Sumner
27736f1103 WIP fix workflow run 2022-07-25 22:31:44 -07:00
Jarred Sumner
81dc410e50 WIP fix workflow run 2022-07-25 21:49:09 -07:00
Jarred Sumner
731adbc9a0 WIP fix workflow run 2022-07-25 21:47:40 -07:00
Jarred Sumner
dba221ba22 WIP fix workflow run 2022-07-25 21:34:01 -07:00
Jarred Sumner
45249b4a71 WIP fix workflow run 2022-07-25 21:05:47 -07:00
Jarred Sumner
0450615b61 WIP fix workflow run 2022-07-25 20:09:49 -07:00
Jarred Sumner
9f45ec1959 WIP fix workflow run 2022-07-25 19:30:57 -07:00
Jarred Sumner
4bb610c984 WIP fix workflow run 2022-07-25 18:49:23 -07:00
Jarred Sumner
0769f90301 WIP fix workflow run 2022-07-25 18:49:16 -07:00
Jarred Sumner
31db186baf WIP fix workflow run 2022-07-25 18:19:36 -07:00
Jarred Sumner
2501cb0160 WIP fix workflow run 2022-07-25 17:00:01 -07:00
Jarred Sumner
a2ac1d22af WIP fix workflow run 2022-07-25 16:57:49 -07:00
Jarred Sumner
fcf77792bc WIP fix workflow run 2022-07-25 16:55:41 -07:00
Jarred Sumner
b582d64df2 WIP fix workflow run 2022-07-25 16:47:43 -07:00
Jarred Sumner
552e21c6ab Update Makefile 2022-07-25 16:40:23 -07:00
Jarred Sumner
2a0357814a WIP fix workflow run 2022-07-25 16:38:36 -07:00
Jarred Sumner
583135aef7 WIP fix workflow run 2022-07-25 16:38:19 -07:00
Jarred Sumner
80f9ae7789 WIP fix workflow run 2022-07-25 16:35:49 -07:00
Jarred Sumner
959b6a80d0 WIP fix workflow run 2022-07-25 16:21:00 -07:00
Jarred Sumner
3c1a9bcb74 WIP fix workflow run 2022-07-25 16:17:44 -07:00
Jarred Sumner
386ba0abfd WIP fix workflow run 2022-07-25 14:59:39 -07:00
Jarred Sumner
146aafed92 WIP fix workflow run 2022-07-25 14:54:25 -07:00
Jarred Sumner
2f89501a6e WIP fix workflow run 2022-07-25 14:54:03 -07:00
Jarred Sumner
b11069420d update bench number 2022-07-25 13:30:44 -07:00
Jarred Sumner
5a81acce3a [bun install] Fix AccessDenied error when installing some packages
Fixes https://github.com/oven-sh/bun/issues/728
Fixes https://github.com/oven-sh/bun/issues/867
Fixes https://github.com/oven-sh/bun/issues/135

Credit @SheetJSDev
2022-07-25 01:37:58 -07:00
Victory Osikwemhe
8a43083415 Support for completion in Bash (#403)
* Add bash completions for optional flags (long and short options)

* extend bash completion to support options with specific requirements

* fix: remove global variables

* fix: rename cur_file to cur_word

* add c,rm,i aliases

* fix: add --help flag to create alias

* fix: --loader options bug

* fix --backend and linting

* linting

* add support for file completion for `bun run` as well as few changes also

* chore(): use _ as prefix for function names

* fix undefined function

* feat(wip): implement installation for bash bun completion in zig

* fix(): use separate paths instead of slice of paths

* rename _bun.bash to bun.completion.bash for compatability with  oh-my-bash

* change `bun.completion.bash` to filename
2022-07-25 00:47:34 -07:00
Pekka Enberg
6df6dac128 Add 'scripts/nproc' helper script (#623)
* Add 'scripts/nproc' helper script

There's no 'nproc' on macOS by default so add a helper script that uses
sysctl instead. Simplifies build environment setup on macOS.

* Delete nproc

* Update Makefile

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-07-25 00:45:57 -07:00
Hyro
d3c4f5c444 fix(types): add missing types for WebSocket (#578)
* fix(types): add missing types for ws

* fix: add missing path

\n

index.d.ts\npaths.txt

* fix: use types from lib.dom.d.ts

* types: update header

* style: new line

* Delete index.js

* fix: remove MessagePort

* fix: remove MessagePort

* fix: set MessageEventSource to undefined
2022-07-25 00:39:26 -07:00
Hyro
e68c4f584b feat(install): use this repository (#582)
https://github.com/oven-sh/bun instead of https://github.com/Jarred-Sumner/bun-releases-for-updater
2022-07-25 00:38:55 -07:00
Soney Mathew
ff5f2c357d Increasing test coverage for node compatibility for util (#854)
* [Bun.js] support for util.TextEncoder

* [Bun.js] test for util.TextEncoder

* [Bun.js] tests ported from node's test-util
2022-07-25 00:38:36 -07:00
mikeswann
285b47ff36 Use 'ADD' instead of running wget to make docker compare checksums on bun's latest file (#864) 2022-07-25 00:36:33 -07:00
Jarred Sumner
0a113d7f0c WIP fix workflow run 2022-07-24 23:30:42 -07:00
Jarred Sumner
dea662c796 WIP fix workflow run 2022-07-24 23:25:07 -07:00
Jarred Sumner
4ec6520927 WIP fix workflow run 2022-07-24 23:24:54 -07:00
Jarred Sumner
b0da58ad89 WIP fix workflow run 2022-07-24 23:15:01 -07:00
Jarred Sumner
43b5105a5e WIP fix workflow run 2022-07-24 23:06:13 -07:00
Jarred Sumner
c93ae8666c WIP fix workflow run 2022-07-24 23:02:47 -07:00
Jarred Sumner
d8052f733d WIP fix workflow run 2022-07-24 23:01:14 -07:00
Jarred Sumner
e7966f37ec WIP fix workflow run 2022-07-24 22:58:32 -07:00
Jarred Sumner
7e6e1cbf96 WIP fix workflow run 2022-07-24 22:53:15 -07:00
Jarred Sumner
2c39345fb4 WIP fix workflow run 2022-07-24 22:51:08 -07:00
Jarred Sumner
43f74ebcfe WIP fix workflow run 2022-07-24 22:44:02 -07:00
Jarred Sumner
aa44ac4b24 WIP fix workflow run 2022-07-24 22:43:12 -07:00
Jarred Sumner
acf177f651 WIP fix workflow run 2022-07-24 22:33:36 -07:00
Jarred Sumner
02a61e5277 WIP fix workflow run 2022-07-24 22:30:02 -07:00
Jarred Sumner
8d138061a9 WIP fix workflow run 2022-07-24 22:28:28 -07:00
Jarred Sumner
dd0dafbeec [docker] Prepare for macOS releases 2022-07-24 22:21:07 -07:00
Jarred Sumner
3ae3cdaa64 Update build.zig 2022-07-24 21:40:07 -07:00
Jarred Sumner
4f2d74edb9 Set explicit skylake 2022-07-24 21:33:54 -07:00
Jarred Sumner
4aa3bc7bee [wip] docker 2022-07-24 21:28:25 -07:00
Jarred Sumner
6c6e8509ad Build macOS object files 2022-07-24 21:21:21 -07:00
Jarred Sumner
5875bb3195 [docker] Move more flags 2022-07-24 18:27:45 -07:00
Jarred Sumner
25de617c92 [docker] WIP 2022-07-24 18:19:32 -07:00
Jarred Sumner
1abe377e20 [docker] wip 2022-07-24 18:17:10 -07:00
darker
88b85752a2 feat: clean/factorize ARGS (#839) 2022-07-24 18:16:47 -07:00
Jarred Sumner
fde64ace31 probably fix avx2 builds 2022-07-24 17:19:05 -07:00
Jarred Sumner
3369881e73 Update bun.yml 2022-07-24 16:25:57 -07:00
Rishi Goomar
f42a0759f8 fix(release): Remove the ${{}} from the if block in GHA (#863)
See - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idif
```
When you use expressions in an if conditional, you may omit the expression syntax (${{ }}) because GitHub automatically evaluates the if conditional as an expression.

```
2022-07-24 15:51:52 -07:00
Jarred Sumner
e19da7bb36 Attempt to fix canary build 2022-07-24 15:02:59 -07:00
Jarred Sumner
306132eda3 Attempt to fix canary build 2022-07-24 14:49:32 -07:00
Jochem Hagenaars
1be0100911 chore(examples/kingworld): Change bun-types to latest (#766)
* Bumped hono version number

* Changed bun-types version

* Bumped bun-types
2022-07-24 22:55:16 +02:00
Yusuke Wada
7896361084 chores(examples/hono): Refine Hono example (#773)
* fixed path

* add favicon

* Correct version: `^2.0.0`

* remove wiptest command
2022-07-24 22:51:41 +02:00
Jarred Sumner
bdf6b3e312 Wire up console.log(new Blob) 2022-07-24 01:22:33 -07:00
Jarred Sumner
af36e99317 Some tests for console.log(new Blob([123])) 2022-07-24 01:22:33 -07:00
Jarred Sumner
8e84f361ac Print < 512 bytes as "N bytes" instead of "0.0" 2022-07-24 01:22:33 -07:00
Jarred Sumner
c921e4a3f1 Improve console.log(new Blob([123])) output 2022-07-24 01:22:33 -07:00
Jarred Sumner
f524c72095 Make errors always print error: unless the name of the error is Error 2022-07-24 01:22:33 -07:00
Jarred Sumner
b09290b9cb [wip] GitHub action fix 2022-07-24 01:22:33 -07:00
Soney Mathew
7de90a82b0 [Bun.js] support for util.TextEncoder (#844)
* [Bun.js] support for util.TextEncoder

* [Bun.js] test for util.TextEncoder
2022-07-23 15:51:27 -07:00
darker
c412d0069e feat: added info, info_bod and success method to wrap type of messages (#845) 2022-07-23 12:39:12 -07:00
Harsh Mishra
277360e656 ci: add docker caching to ci workflows (#846) 2022-07-23 12:38:47 -07:00
darker
a61b959491 feat: add .PHONY on makefile targets (#847) 2022-07-23 12:38:28 -07:00
Michell Brito
09da245aa0 Merge pull request #827 from aaditeynair/main 2022-07-23 10:16:40 -04:00
Michell Brito
872304852e Merge pull request #800 from alexkuz/fix-install-script-colors--645 2022-07-22 20:32:57 -04:00
Michell Brito
75741d7d44 Merge pull request #804 from Sanix-Darker/doc/Makefile 2022-07-22 20:31:58 -04:00
Jarred Sumner
849c743cd2 [bun install] Fix issue with URL path when sending request 2022-07-22 17:12:37 -07:00
Jarred Sumner
52144c0577 Fix missing function bug 2022-07-22 16:17:13 -07:00
Jarred Sumner
1e9706d76d [bun wiptest] This test does not seem to run? 2022-07-22 16:17:13 -07:00
SheetJSDev
db51f285f8 bun install use custom BUN_CONFIG_REGISTRY port (#823) 2022-07-22 15:55:24 -07:00
Jarred Sumner
8392a86300 [docker] wip 2022-07-22 15:41:08 -07:00
Jarred Sumner
6edae78c6f [docker] wip 2022-07-22 14:04:12 -07:00
Jarred Sumner
136c696043 [docker] Use gcr 2022-07-22 14:01:32 -07:00
Jarred Sumner
2e71ea4db9 [bun dev] Add flag to force hmr 2022-07-22 13:52:55 -07:00
Jarred Sumner
7914adff1e Fix link command on macOS 2022-07-22 13:34:28 -07:00
Jarred Sumner
2dcd9e7eb9 [bun upgrade] Fix version display name for canary build 2022-07-22 13:26:31 -07:00
Jarred Sumner
2a6acf3c90 [bun upgrade] Fix name used in temporary dir for canary builds 2022-07-22 13:06:51 -07:00
Jarred Sumner
cd7f6db1d3 WIP fix workflow run 2022-07-22 12:34:35 -07:00
Jarred Sumner
15e8e67017 Clarify 2022-07-22 12:21:24 -07:00
Jarred Sumner
105350b826 Mention WSL version requirement 2022-07-22 12:20:04 -07:00
Jarred Sumner
d003fb4288 Only run canary release on push to main 2022-07-22 12:19:55 -07:00
Jarred Sumner
c2d6ceb0f3 [bun upgrade] Implement --canary and BUN_CANARY=1 2022-07-22 12:19:30 -07:00
Aaditey Nair
7c7cec0416 Fix mistake in Next.js Example README. 2022-07-22 16:50:24 +05:30
Jarred Sumner
ddfd2fd442 Update WebKit 2022-07-22 02:06:30 -07:00
Jarred Sumner
c654a6fceb Workaround submodules issue 2022-07-22 01:58:48 -07:00
Jarred Sumner
bced6fab58 Delete plus100-napi 2022-07-22 01:53:57 -07:00
Jarred Sumner
cd9680c61c Rename linux amd64 -> linux x64 2022-07-22 01:48:40 -07:00
Jarred Sumner
80f797b2e5 Mark as executable 2022-07-22 01:37:42 -07:00
Connor Lurring
2960a5cd72 fix: remove suffix arg for mktemp compatibility (#825) 2022-07-22 01:34:00 -07:00
Jarred Sumner
0d4b4c4942 Canary builds (Linux) (#824)
* wip

* WIP:

* WIP

* WIP

* WIP

* WIP

* WIP

* Update WebKit

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* Update WebKit

* WIP

* WIP

* WIP

* WIP

* Workaround missing system calls

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* Fix baseline detection

* WIP

* strip debug symbol

* Auto-generate canary build

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-07-22 00:58:45 -07:00
Jarred Sumner
c772256e93 Separate Dockerfile for devcontainer 2022-07-21 16:58:24 -07:00
Jarred Sumner
4b5e7cdab7 Bump 2022-07-21 16:58:24 -07:00
Jarred SUmner
588669ea6a Redo the dockerfile 2022-07-21 16:58:07 -07:00
Sakib Hasan
e6c58ae4f2 docs(templates): Update README.md (#783)
Improvement reactjs example readme file, Added learning resources
2022-07-21 13:07:40 +02:00
Carter Snook
afb1dc1d79 chore(vscode): set tab size and tab format (#810) 2022-07-20 13:37:52 -07:00
Carter Snook
7500f4b2ca feat(node/fs): implement more stat methods (#807) 2022-07-20 10:19:41 -07:00
sanix-darker
8d96b184df doc: added an helper for the huge Makefile 2022-07-20 13:15:28 +02:00
Alexander
5c620959bb fix install script colors 2022-07-20 11:51:21 +04:00
Jarred Sumner
08bff8e090 Allow blank 2022-07-19 23:04:54 -07:00
Carter Snook
8bcf68e5e0 fix(api): stop double-free of prop array (#793) 2022-07-19 21:05:52 -07:00
Wallunen
e5af1ea3bc refactor(installer): renovate install script (#745) 2022-07-19 14:56:28 -04:00
SheetJSDev
6afbf1b166 added mystery-box example macro (#787) 2022-07-18 22:26:56 -07:00
Shahidul Islam Majumder
600929ee6d fix deno console.log benchmark (#771)
* chore(benchmark): fix deno console.log benchmark

* only show benchmark results

Co-authored-by: evanwashere <github@evan.lol>
2022-07-18 19:30:58 -04:00
Jarred Sumner
d2874f6a49 bump examples 2022-07-18 13:12:03 -07:00
Jarred Sumner
a1a0c18478 [js] Set global and self
Fixes https://github.com/oven-sh/bun/issues/768
2022-07-17 22:49:09 -07:00
Jarred Sumner
ba65185bcb [js] Fix invalid unicode codepoint in error 2022-07-17 22:39:57 -07:00
Jarred Sumner
a17221258d Fixes https://github.com/oven-sh/bun/issues/769
Not tested
2022-07-17 22:37:24 -07:00
SheetJSDev
a00380c7c2 url.js use util_isString (#772) 2022-07-17 22:00:23 -07:00
Jarred Sumner
2ef7a12383 Update Dockerfile 2022-07-17 17:16:45 -07:00
Jarred Sumner
d54470ef98 Use Node v16 in Dockerfile due to glibc 2.28 requirement 2022-07-17 16:48:26 -07:00
Jarred Sumner
17bbdf790e Try with 18.04 2022-07-17 16:37:36 -07:00
Jarred Sumner
bcad0d4de7 Downgrade Ubuntu used in Dockerfile to hopefully reduce glibc requirement to 2.27 2022-07-17 16:35:42 -07:00
Jarred Sumner
9ab63dced8 [bun install] Forgot to commit isCI function 2022-07-17 15:54:43 -07:00
Alexander Kuznetsov
e79ed4f738 fix printing message for thrown non-error objects (#764)
* fix printing message for thrown non-error objects

* fine tuning error formatting

* more fine tuning error formatting
2022-07-17 13:24:35 -07:00
Jarred Sumner
b897ad3ec2 [bun install] Implement --no-verify flag to skip verifying integrity of downloaded packages 2022-07-17 10:08:37 -07:00
Jarred Sumner
daed2a79f9 [bun install] Rename skip_verify -> skip_verify_installed_version_number 2022-07-17 10:08:37 -07:00
Jarred Sumner
0a5470e802 [bun install] Implement --no-progress to disable the progress bar 2022-07-17 10:08:37 -07:00
Jarred Sumner
a02b2d1c5b [bun install] Improve performance of integrity hashing
By using optimized BoringSSL implementations
2022-07-17 10:08:37 -07:00
Jochem Hagenaars
0cc88b8669 Bumped hono version number (#746)
* Bumped hono version number

* Changed bun-types version
2022-07-17 09:57:29 -07:00
pathei-kosmos
c4fbcaeb21 fixed some licenses in README (#758)
* fixed some licenses

* typo
2022-07-17 07:58:49 -07:00
Alexander Kuznetsov
a85413c802 fix scoped packages name resolution (#760) 2022-07-17 07:58:28 -07:00
thislooksfun
24a5f9ba29 test(wiptest): add a way to test wiptest (#699)
This adds a really basic test runner that will execute test files using
`bun wiptest` and compare the output to make sure it's correct. It could
definitely be improved, especially in the speed department, but it's at
least functional now, which is better than we had before!
2022-07-16 20:36:46 -07:00
thislooksfun
e9f376825c docs: fix documentation of atob and btoa (#748)
These function are confusingly named. `btoa` converts "Binary" to Ascii
by encoding the input using base64. `atob` reverses that process by
base64 decoding the Ascii input into a "Binary" output.

The names come from the Unix utilities with the same names, which
"converts a binary file to ascii for transmission over a telephone line"
(https://www.unix.com/man-page/minix/1/btoa/)

See:
- https://developer.mozilla.org/en-US/docs/Web/API/atob
- https://developer.mozilla.org/en-US/docs/Web/API/btoa
- https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa-dev

Note: the actual implementation of `btoa` and `atob` are correct, but
the docs were backwards.
2022-07-16 15:23:18 -07:00
John Daly
3c0f18f704 fix/clean-up-bun-error (#753)
* Fixing TypeScript errors in bun-error package

* Fixing import path

* Removing unused 'isClient' prop from AsyncSourceLines

* PR feedback
2022-07-16 15:14:14 -07:00
Jarred Sumner
f7e9b91701 [parser] Fix symbol collision with require
Fixes https://github.com/oven-sh/bun/issues/674
Fixes https://github.com/oven-sh/bun/issues/382
2022-07-15 23:08:25 -07:00
Jarred Sumner
e7246837a1 Add a TLA test 2022-07-15 21:48:30 -07:00
Jarred Sumner
fd4a210b84 [bun.js] Fix non-ascii latin1 string handling in console.log
Closes https://github.com/oven-sh/bun/issues/738
Closes https://github.com/oven-sh/bun/issues/737
2022-07-15 21:07:41 -07:00
Travis Pulley
9a7874a680 minor edit: Makefile (#672)
* minor edit: Makefile

Fixed a suggested command when ninja isn't found to the correct package name

* Makefile: minor edit

Ninja build has different names in different package managers. This handles both known instances.

* Makefile: ninja package name suggestion

When checking requirements, ninja build has a different name for brew and ubuntu/debian. This handles both.
2022-07-15 16:42:53 -07:00
Finn R. Gärtner
5c2ec9cad2 fix(README): Remove unused troubleshooting link (#736) 2022-07-15 13:20:19 -07:00
Foyzul Karim
5b248962e7 docs: Added readme file for blank template (#727)
* Added  readme file for blank template

* Removed `Special note` section
2022-07-15 22:09:56 +02:00
Hyro
65027bff99 chore(workflows): dont run on forks (#734)
* build:(landing) automated website build

* Revert "build:(landing) automated website build"

This reverts commit ddee8485fd.

* workflows(bun-dockerhub): dont run on forks

* chore(bun-landing): update

dont run on forks
fix commit changes

* workflows(bun): dont run on forks

Co-authored-by: xHyroM <xHyroM@users.noreply.github.com>
2022-07-15 12:41:12 -07:00
Hiroaki Nakamura
f35e13d57e Use Jarred-Sumner/vscode-zig march18 in devcontainer (#266) 2022-07-15 12:13:02 -07:00
Hyro
04572506ba chore(workflows): labeler, label sync (#701)
* chore: labeler.yml

* chore(workflows): labeler

* chore(workflows): label syncer

* chore: labels.yml

* chore(labeler): add benchmarks

* chore(labels): add packages:bun

* chore(labeler): add packages:bun

* chore(labels): add question

* chore(labels): add esm<>cjs

* chore(labels): add chore label
2022-07-15 12:02:28 -07:00
Finn R. Gärtner
ebf78e5ea6 fix(examples/bun-bakery): Create gitignore (#697) 2022-07-15 12:02:03 -07:00
Wulfre
7e695c0086 Create github workflow to publish releases on dockerhub (#716)
* Create github workflow to publish releases on dockerhub

* Improve readability of final dockerhub dockerfile RUN command

Co-authored-by: Wulfre <wulfre@users.noreply.github.com>
2022-07-15 12:00:48 -07:00
SaltyAom
40b7b99c2c fix(types): add missing types from URLSearchParams (#731)
* feat(examples): add kingworld

* fix(examples/kingworld): add .gitignore

* fix(template/kingworld): rename .gitignore to gitignore

* fix(template/kingworld): update to request change

* fix(template/kingworld): update 'getting start' to 'Getting Started'

* template(kingworld/bun): update to requested change

* fix(bun-types): add missing method type of URLSearchParams
2022-07-15 12:00:16 -07:00
SaltyAom
61de6032af template(kingworld): Add kingworld template (#708)
* feat(examples): add kingworld

* fix(examples/kingworld): add .gitignore

* fix(template/kingworld): rename .gitignore to gitignore

* fix(template/kingworld): update to request change

* fix(template/kingworld): update 'getting start' to 'Getting Started'
2022-07-15 13:54:18 +02:00
Jonathan Rubin
b901f55164 chores(template/react): Update to React 18 (#627)
* Updated react example template

* build:(landing) automated website build

* removed bun.lockb and most of changes from react example index.html

Co-authored-by: rubinj30 <rubinj30@users.noreply.github.com>
2022-07-15 12:17:38 +02:00
Hyro
9eac93d176 fix(templates/blank): Update bun types (#704) 2022-07-14 20:43:02 +02:00
YOSHIKI
a4ced701dc fix(templates): Fix hono example template (#633)
* Fix hono example template

* Update package.json
2022-07-14 20:42:18 +02:00
Mustafa Hasan Khan
0d65a1fe10 fix(packages/bun-landing): Fixed punctuation (#280) 2022-07-14 20:20:43 +02:00
0xflotus
de50c709a4 fix small typo in readme (#706) 2022-07-14 13:56:50 -04:00
Robert Soriano
3b5ad05627 docs: remove emulating cpu section (#714) 2022-07-14 13:49:49 -04:00
pnxdxt
1ea4dc13f0 docs: correct typo missing dots (#603) 2022-07-13 23:51:22 +02:00
Fábio Santos
74a600b833 docs: Substitute npm install with bun add (#670) 2022-07-13 23:44:08 +02:00
Ikko Ashimine
4b271ee430 fix(napi): gurantee -> guarantee (#683) 2022-07-13 23:32:46 +02:00
Omer Shahar
6e4e5fa94c fix(README): Add punctuation (#611) 2022-07-13 23:20:54 +02:00
Dennis Dudek
8e9042142c docs: Add bun-bakery template (#649) 2022-07-13 22:40:29 +02:00
Gabriel Nunes
5a2425d585 fix: og:image share url (#678)
* feat: create share image for social media

* fix: group meta tags

* fix: adjust og:image to full url
2022-07-13 10:39:51 -07:00
evan
bf19759188 add node:http Server polyfill (#572)
* node:http polyfill

* remove @ts-ignore

* reuse emitter instance

* requested changes

* cleanup

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2022-07-13 07:08:57 -07:00
Thomas Jaggi
0bcd812bd5 docs: Link esbuild and @evanw in README (#669) 2022-07-13 11:35:00 +02:00
Finn R. Gärtner
2769c74c74 fix(env_loader): Off by one error (#668) 2022-07-13 02:33:32 -07:00
Jarred Sumner
64c93a0569 Types 2022-07-13 01:32:21 -07:00
evanwashere
f01bc3c752 switch from stream-browserify to readable-stream 2022-07-13 04:18:51 -04:00
Jarred Sumner
9bba47129a Add a console.log bench 2022-07-13 01:03:03 -07:00
Jarred Sumner
54b03f6e8a Add newline to symbols (fixes warning) 2022-07-13 01:03:03 -07:00
evanwashere
71930db9b0 fix benchmark not building with old rust version 2022-07-13 03:14:50 -04:00
Jarred Sumner
e4016c1a77 [http] Fix assertion 2022-07-12 22:56:20 -07:00
Jarred Sumner
b37ffde4ed [bun.js] GC more strings 2022-07-12 22:56:09 -07:00
Jarred Sumner
dd7a346ac8 [bun install] Handle case that should really never happen 2022-07-12 22:55:38 -07:00
Jarred Sumner
d3963d6ea2 [bun.js] Fix GC bug with fetch 2022-07-12 22:46:27 -07:00
pnxdxt
0592b1dbed feat(landing): create github action rebuilding the site on changes (#651) 2022-07-12 21:37:39 -07:00
Gabriel Nunes
7b3dbf1108 feat(packages/bun-landing): Create share image for social media (#629)
* feat: create share image for social media

* fix: group meta tags
2022-07-12 22:20:39 +02:00
Aditya Agarwal
60e8cf4746 fix(README): Exchange backticks for <code></code> (#641) 2022-07-12 22:11:43 +02:00
Aditya Agarwal
a396e69384 fix(README): Fix punctuation (#639) 2022-07-12 22:10:05 +02:00
Jarred Sumner
6eebd11a06 .3 not .0 2022-07-12 12:26:58 -07:00
Jarred Sumner
56ac919f54 [landing] Hashing benchmark 2022-07-12 12:21:56 -07:00
evanwashere
cbc1e407c3 use permalinks for landing page 2022-07-12 12:57:28 -04:00
evan
e55d6eed2b fix benchmark urls on landing page (#636) 2022-07-12 18:49:32 +02:00
Giorgio Bellisario
ed18a318b9 docs: Fix "coercion" spelling (#628) 2022-07-12 16:43:08 +02:00
pnxdxt
80969a59a5 chore(landing): build changes (#626) 2022-07-12 16:40:39 +02:00
Finn R. Gärtner
a0f8b8c68a fix(examples/hono): Update package name (#620) 2022-07-12 03:09:15 -07:00
SheetJSDev
5774069cfe fix blank template (#523) 2022-07-12 03:03:17 -07:00
Jarred Sumner
83ad9fa780 [napi] Implement napi_get_property_names 2022-07-12 02:50:47 -07:00
Jesse-Lucas1996
a63a0ccc10 docs: Hono example with typescript (#577)
* hono example with typescript

* changing of name in package json

* adding dom to lib

* removal of git ignore

* removed DOM

* Update examples/hono/src/index.ts

Co-authored-by: Hyro <generalkubo@gmail.com>

* changed port

* added read me

* Update index.ts

* Update package.json

* Update readme.md

Co-authored-by: Hyro <generalkubo@gmail.com>
Co-authored-by: Jesse Lucas <jlucas@corpcloud.com.au>
Co-authored-by: Finn R. Gärtner <65015656+FinnRG@users.noreply.github.com>
2022-07-12 11:46:22 +02:00
Ryan Bargholz
734775e410 Support specifying a JSON response type in bun.d.ts (#563)
Co-authored-by: Ryan Bargholz <ryan@asteria.com>
2022-07-12 01:47:58 -07:00
Ryan Russell
4987067a18 refactor(exports.zig): Fix WebSocketHTTPSClient var name (#598)
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-07-12 01:47:36 -07:00
Finn R. Gärtner
a6ab6e2131 fix(env_loader): Ignore spaces before equals sign (#602)
* fix(env_loader): Ignore spaces before equals sign

* fix(env_loader): Change the type of key_end to usize
2022-07-12 01:42:36 -07:00
evan
a9e4ff2029 cleanup benchmarks folder (#587)
* cleanup benchmarks

* run prettier
2022-07-12 01:40:12 -07:00
Jarred Sumner
7eea306b0f Update build-id 2022-07-12 00:21:45 -07:00
Jarred Sumner
7b708255f5 [jsc] Fix segfault with promises 2022-07-12 00:20:46 -07:00
Jarred Sumner
46e8717e6c [bun install] Fix NotSameFileSystem error (for real this time) 2022-07-12 00:20:46 -07:00
Ben Williams
e85f8011d5 docs: Updated logLevel to include debug (#189) 2022-07-12 01:20:10 +02:00
pnxdxt
ae02cad3f5 docs: remove double v of version (#601) 2022-07-12 01:11:32 +02:00
Ryan Russell
f0529ca253 docs(various): .md readability improvements (#597) 2022-07-12 00:41:23 +02:00
Evan Boehs
349eb9481d docs: builtin -> built-in (#585) 2022-07-12 00:38:42 +02:00
deijjji303
889ed66a01 docs: Added note of AVX2 requirement and mentioned Intel SDE workaround in README.md (#346) 2022-07-12 00:36:51 +02:00
josesilveiraa
ede7576899 chore(docs): add comma (#580) 2022-07-12 00:33:03 +02:00
Rudraksh Karpe
299c61896e docs: Fix typo (#599)
Under the Credits section
On line no. 2, it is mentioned as based off of whereas based on would be the correct choice of a word representing it as official documentation of Bun.
I hope this would help to make the Bun Documentation more precise to the users.
2022-07-12 00:28:17 +02:00
Jarred Sumner
fb03027b5b Broken links? 2022-07-11 13:41:48 -07:00
B E C H
d3ec0e204f Fixed broken links on the Bun.serve benchmark (#590)
Fixed the broken links to the Bun.serve benchmark sources.
2022-07-11 13:39:42 -07:00
Jarred Sumner
9bd8e6e604 Update javascript.zig 2022-07-11 11:06:59 -07:00
Jarred Sumner
3086fff66d woops 2022-07-11 08:46:04 -07:00
Jarred Sumner
2b709315e3 [integration test scripts] bun -> bun dev 2022-07-11 08:45:44 -07:00
Jarred Sumner
a7adf3d369 Revert changes to integration test scripts that break macOS tests 2022-07-11 08:39:30 -07:00
Jarred Sumner
59113ea3ae Update build-id 2022-07-11 08:19:07 -07:00
Carter Snook
5fc353797f feat(core): implement web interaction APIs (#528)
* feat(core): implement web interaction APIs

* fix(core): adjust web prompt code and add types
2022-07-11 08:11:02 -07:00
Jarred Sumner
6190130626 [resolver] Stripe file:// from import paths 2022-07-11 08:04:55 -07:00
Jarred Sumner
f6cd941522 Fixes https://github.com/oven-sh/bun/issues/195 2022-07-11 08:04:55 -07:00
Jarred Sumner
a6c216db00 Revert "Fix: NotSameFileSystem at clonefile (#546)" (#581)
This reverts commit 2659febd1b.
2022-07-11 08:04:20 -07:00
Snazzah
4394169405 feat(types): Add types for node modules and various fixing (#470)
* fix(types): add __dirname and __filename as deprecated types

* fix(types): add stream() method to Blob

* fix(types): update getRandomValues in Crypto

* fix(types): add buffer type defs

* fix(types): remove buffer type setting in fs

* fix(types): extend TypedArray in crypto.getRandomValues

Co-authored-by: Carter Snook <cartersnook04@gmail.com>

* fix(types): add notes to some buffer methods

* fix(types): remove since jsdoc comments from buffer

* chore(types): fix bundle script and build types

* fix(types): update bundle script

This really shouldn't do anything differently, but it no longer hangs whenever I bundle types. Not sure if anyone else has this problem but, ehhhh...

* fix(types): remove unused types in buffer

* feat(types): add assert module types

* feat(types): add events module types

* feat(types): add os module types

* feat(types): add domain module types

* fix(types): add process.isBun type

* feat(types): add util module types

* feat(types): add querystring module types

* feat(types): add process module types

* feat(types): add string_decoder module types

* feat(types): add sys module types

* feat(types): add timers module types

* feat(types): add stream module types

* feat(types): add crypto module types

fix(types): fix types for stream, timers and util modules

* feat(types): add constants module types

* feat(types): add url module types

* feat(types): add tty module types

* feat(types): add http module types

* feat(types): add https module types

* feat(types): add punycode module types

* feat(types): add zlib module types

* feat(types): add supports-color module types

Co-authored-by: Carter Snook <cartersnook04@gmail.com>
2022-07-11 05:40:07 -07:00
Carlos Gabriel Vilas Novas Soares
6e5665de4e fix: environment typo (#568) 2022-07-11 05:39:03 -07:00
CharlieS1103
ea6d96f409 Cleanup discord-interactions readme (#451) 2022-07-11 05:34:21 -07:00
Aditya Gupta
2659febd1b Fix: NotSameFileSystem at clonefile (#546)
Fixes issue #531

Before this, using 'bun install' on a directory in different filesystem
such as tmpfs (/tmp) would have caused "Error: NotSameFileSystem".

This commit fixes that by handling this error, and at end of function it
will fall back to use copyfile (same as --backend=copyfile)
2022-07-11 05:31:00 -07:00
rml1997
1405158dfb Updated typo in example (#573)
Changed deocder to decoder
2022-07-11 05:26:45 -07:00
Jarred Sumner
d6d8c0b80d Fixes https://github.com/oven-sh/bun/issues/561 2022-07-11 04:34:38 -07:00
Jarred Sumner
d9491fe022 [js] Include TypedArray type name for empty arrays 2022-07-11 04:24:11 -07:00
Jarred Sumner
3609063d81 [js] When console.log typed arrays, include the type name and limit printed count to 512 2022-07-11 04:20:28 -07:00
Jarred Sumner
7904f49b5d Fixes https://github.com/oven-sh/bun/issues/229 2022-07-11 03:41:03 -07:00
Jarred Sumner
d35ca945c2 Bump zig build 2022-07-11 03:08:07 -07:00
Jarred Sumner
a20a341729 Move symbol 2022-07-11 02:12:23 -07:00
Jarred Sumner
7381c33f76 Run prettier 2022-07-11 02:10:32 -07:00
Jarred Sumner
1091ee2318 Fix broken build 2022-07-11 02:10:23 -07:00
Jarred Sumner
b79dd18ca5 [bun wiptest] Fix copy 2022-07-11 02:03:46 -07:00
evan
3abfc3566b add depd browser polyfill (#517) 2022-07-11 01:53:45 -07:00
thislooksfun
71992634a6 Fix macOS build (#525)
* style: remove some trailing whitespace

* docs: make `identifier-cache` _before_ `jsc`

Running them the other way around results in a failed build.

* docs: `npm i` in both `test/snippets` _and_ `test/scripts`

`test/scripts` has node packages as well. If they aren't installed, then
some of the tests fail to start.

* docs: add `rust` to list of homebrew packages

One of the dependencies tries to run `cargo`, and will fail the build if
it can't. The `cargo` command is provided by the `rust` brew package.

* docs: clean up section on macOS code signing

This requirement applies to _all_ macOS builds, not just those on Apple
Silicon, and also had some slightly confusing wording.

* build: remove leading whitespace from flags

This leading whitespace was making my system treat the argument as a
file with name ` -L$(LLVM_PREFIX)/lib` (leading whitespace included),
instead of as a library path argument.

* build: try llvm@13 first, then fall back on bare llvm

The macOS instructions say to install `llvm@13`, which has a different
path than the bare `llvm` install (`brew --prefix llvm@13` != `brew
--prefix llvm`). This patch takes a slightly smarter approach:

1. If the user defined `LLVM_PREFIX` and it points to a valid path on
   disk, use that.
2. If `LLVM_PREFIX` is NOT a valid path, try setting it to the `llvm@13`
   path.
3. If it's STILL not a valid path, try the plain `llvm` path
4. If it's STILL not valid, set it to a user-friendly error.

There might be a better solution for doing this, I'm not well-versed in
Makefile syntax, but it's at least slightly better than it was before.

* fix(build): update cast signature

`std.math.cast` was changed in 0e6285c8fc31ff866df96847fe34e660da38b4a9.
It used to throw if the cast would overflow, but now it returns `null`
instead.
2022-07-11 01:52:30 -07:00
Michell Brito
90ff529b55 Merge pull request #544 from xHyroM/chore/update-templates 2022-07-10 23:46:30 -04:00
Michell Brito
5a8b3b8ad7 Merge pull request #464 from dkarter/main
fix: remove unnecessary quotes in commit message
2022-07-10 23:42:44 -04:00
Aurora Luna Takemi
418972b423 Update GitHub URL to match new repo URL (#547)
* Update repo URLs

* GitHub URL update

* Revert accidental URL changes
2022-07-10 19:37:30 -07:00
Hyro
c1d4917593 chore(feature-request): change feature request to enhancement 2022-07-10 19:04:33 +02:00
Hyro
65d6e28b4f chore(api-ref-docs): change doc to documentation 2022-07-10 19:03:45 +02:00
Hyro
3c435f7856 chore(bug-report): add label bug, need repro 2022-07-10 19:01:20 +02:00
Hyro
659c3e0e12 chore: disable blank issues, add discord contact link 2022-07-10 19:00:27 +02:00
Giorgio Bellisario
1e9cba9972 Fix "operations" word spelling (#543) 2022-07-10 09:21:50 -07:00
Jacob
c3bf97002d clarify launch step (#534) 2022-07-10 07:23:09 -07:00
r00ster91
16452c16da Remove unnecessary Output.flushs before Global.exit and Global.crash (#535)
* fix: add missing newline

* refactor: std.process.exit -> Global.exit

* fix: std.os.abort -> Global.exit

I'm not sure about this one. Please verify.

* cleanup: remove unnecessary `Output.flush`s
2022-07-10 06:44:57 -07:00
Snazzah
05970fe1fb fix(bun-error): fix line endings 2022-07-10 06:42:09 -07:00
Snazzah
0f20d5913d feat(bun-error): update "powered by" logo to use new bun wordmark 2022-07-10 06:42:09 -07:00
Ryan Russell
0acf8a6618 refactor(websockets): Rename connectedWebSocketContext()
Signed-off-by: Ryan Russell <git@ryanrussell.org>
2022-07-09 18:34:46 -07:00
Hisam Fahri
547ac721fa fix: add grammar fix on templates 2022-07-09 18:34:20 -07:00
Hisam Fahri
8ff70a6224 feat: add bun docs report template 2022-07-09 18:34:20 -07:00
Hisam Fahri
b880c6663c feat: add feature request template 2022-07-09 18:34:20 -07:00
Hisam Fahri
66e52396dc feat: add bug report template 2022-07-09 18:34:20 -07:00
Laurens Lavaert
92225faa82 fix: actuality return result instead of ns time 2022-07-09 18:33:51 -07:00
Laurens Lavaert
36718c45fc bugfix: performance.now function should return MS instead of nano 2022-07-09 18:33:51 -07:00
lucasew
118c134918 update bash references to work in non-fhs compliant distros
Signed-off-by: lucasew <lucas59356@gmail.com>
2022-07-09 18:28:32 -07:00
b0iq
85dbb9cc92 using {process.version} instead of hardcoding 2022-07-09 18:27:56 -07:00
b0iq
e11f1476af Update Bun CLI version typo to v0.1.2 2022-07-09 18:27:56 -07:00
sno2
f5d896542a fix: update build files to latest Zig version 2022-07-09 18:25:25 -07:00
evanwashere
961d0a159a add partial node:net polyfill 2022-07-09 16:29:57 -07:00
JolteonYellow
1597424d17 fix dotenv package example on landing page (#436) 2022-07-09 15:49:37 -04:00
Jordan Lees
465e185a74 fix typo in readme (#449) 2022-07-09 15:39:01 -04:00
Michell Brito
5abee04991 Merge pull request #483 from pvinis/patch-1 2022-07-09 14:29:16 -04:00
Michell Brito
a884ca155e Merge pull request #476 from jakemcf22/main 2022-07-09 14:29:04 -04:00
Finn R. Gärtner
d3f912a79e fix: Append n when printing a BigInt 2022-07-09 20:23:56 +02:00
FinnRG
5d7aabb38a fix: Append n when printing a BigInt 2022-07-09 20:19:35 +02:00
Finn R. Gärtner
adda6f6dd1 fix: Remove unnecessary n while formatting 2022-07-09 20:05:32 +02:00
FinnRG
5191a57037 fix: Remove unnecessary n while formatting 2022-07-09 20:02:21 +02:00
Alexander
7d1c9fa1a4 Migrate to Zig v0.10.0 2022-07-09 05:09:16 -07:00
Ziloka
dd5996379d Update README.md 2022-07-09 04:51:23 -07:00
Pavlos Vinieratos
a0d471eda5 typo 2022-07-09 10:40:17 +01:00
Snazzah
f58501fc62 feat(landing): add favicon.ico 2022-07-09 00:57:52 -07:00
Snazzah
80dc9b97f2 chore(landing): build changes 2022-07-09 00:57:52 -07:00
Snazzah
d018b08082 feat(landing): add og:locale and twitter:site metadata 2022-07-09 00:57:52 -07:00
Snazzah
576ee66f20 feat(landing): add 256x icon 2022-07-09 00:57:52 -07:00
Snazzah
b55b49ac4e feat(landing): remove space between zig and "'s" 2022-07-09 00:57:52 -07:00
Snazzah
712f4a7f5d feat(landing): add SVG logo, manifest, and meta tags 2022-07-09 00:57:52 -07:00
Snazzah
528972ef8b feat: update default favicon to new logo 2022-07-09 00:57:08 -07:00
jakemcf22
8b4c7434c3 Fix grammar erros in README.md 2022-07-08 23:44:51 -07:00
Dorian Karter
b0760bbab5 fix: remove unnecessary quotes in commit message
These quotes are not necessary and appear literally in the commit
2022-07-08 18:46:53 -05:00
Hyro
ac8bcb5edb remove comments 2022-07-08 14:09:14 -07:00
Michell Brito
2b98ffd776 Merge pull request #433 from keidarcy/patch-1 2022-07-08 09:24:25 -04:00
Michell Brito
b373126927 Merge pull request #330 from Tropix126/a11y 2022-07-08 09:13:49 -04:00
Xing Yahao
34bb627a54 Fix react example README typo. 2022-07-08 19:37:06 +09:00
FinnRG
92584630c3 fix(templates/react): Add a SVG type definition 2022-07-08 02:59:52 -07:00
Hyro
6035ef353a use tsconfig from readme 2022-07-08 02:32:55 -07:00
xhyrom
4bd42e1cf0 add tsconfig 2022-07-08 02:32:55 -07:00
Hyro
f95919b5a3 update hello world 2022-07-08 02:32:55 -07:00
xhyrom
43657c4dd8 new template blank 2022-07-08 02:32:55 -07:00
Tropical
e158ee542d Slightly darken pink link color for contrast requirements. 2022-07-08 04:48:58 +00:00
Tropical
6256b88768 Pink chip contrast 2022-07-08 04:46:17 +00:00
Jarred Sumner
57d9c500a8 Update bun-types 2022-07-07 20:22:51 -07:00
Michell Brito
35d1f51d75 Merge pull request #305 from MoritzLoewenstein/main 2022-07-07 21:36:41 -04:00
Jarred Sumner
1ee94d5bd2 Bump examples 2022-07-07 16:02:04 -07:00
Hassan El Mghari
d513a62862 Updating format of Next.js example app README to match the rest 2022-07-07 15:58:05 -07:00
Hassan El Mghari
76ef4fc976 Deleted installing dependencies from Discord README since it's done automatically when cloning 2022-07-07 15:58:05 -07:00
Hassan El Mghari
fe858a9196 Updating README for React example to match Discord 2022-07-07 15:58:05 -07:00
Hassan El Mghari
6770356c5b Clean up README for React example 2022-07-07 15:58:05 -07:00
Hassan El Mghari
ebccbaeee9 Update command to run react app to bun dev 2022-07-07 15:58:05 -07:00
K.J. Valencik
b64c71eece fix: napi_get_version should return the Node-API version and not the bun version 2022-07-07 14:18:44 -07:00
CoffeeMovedCoder
4b4bc8a380 Add troubleshooting for old intel CPUs 2022-07-07 14:15:45 -07:00
Hassan El Mghari
485ef8c4fc Delete second.tsx page as it's not being used 2022-07-07 14:14:57 -07:00
Hassan El Mghari
5b880512fb Removed unused parts of index.tsx 2022-07-07 14:14:57 -07:00
Hassan El Mghari
3b43a192f1 Cleaned up the Next.js example README 2022-07-07 14:14:57 -07:00
Tropical
911f74496d Merge branch 'main' into a11y 2022-07-07 15:29:44 -05:00
michell brito
7118df32bb Fix: long numbers + unused css 2022-07-07 11:52:26 -07:00
Michell Brito
73c0300d63 Merge pull request #370 from PyBaker/patch-1 2022-07-07 12:57:41 -04:00
PyBaker
0cf76f628e Update README.md 2022-07-07 18:38:12 +03:00
Jarred Sumner
ee83e25120 [install] Use an identifier for the accept header value 2022-07-07 05:36:37 -07:00
Jarred Sumner
d6fb068230 Fixes https://github.com/Jarred-Sumner/bun/issues/341 2022-07-07 04:50:37 -07:00
Jarred Sumner
e1e3cee16a Outdated type 2022-07-07 03:44:11 -07:00
Jarred Sumner
fb6d438485 Fix copy 2022-07-07 03:33:05 -07:00
shanehsi
f84f7f8acb fix devcontainer starship installation 2022-07-07 02:49:04 -07:00
Hiroaki Nakamura
8e912b4a20 Use Node.js v18.x from NodeSource to use string.replaceAll method
Node.js in Ubuntu focal does not have string.replaceAll method.
```
root@focal:~# node --version
v10.19.0
root@focal:~# echo "console.log(''.replace)" | node
[Function: replace]
root@focal:~# echo "console.log(''.replaceAll)" | node
undefined
```

And it gives the following error at
f0c283c632/Makefile (L722)

```
/build/bun/misctools/headers-cleaner.js:33
input = input.replaceAll("*WebCore__", "*bindings.");
              ^

TypeError: input.replaceAll is not a function
    at Object.<anonymous>
(/build/bun/misctools/headers-cleaner.js:33:15)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js
(internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
make: *** [Makefile:722: jsc-bindings-headers] Error 1
```
2022-07-07 02:47:57 -07:00
Ikko Ashimine
6c5472a84c [strings] Fix typo in string_immutable.zig
occurences -> occurrences
2022-07-07 02:46:32 -07:00
Jarred Sumner
1f887bb863 Bump build-id 2022-07-07 01:05:39 -07:00
Hassan El Mghari
1739513095 Update list of unsupported bun Next.js features 2022-07-07 00:44:31 -07:00
Jarred Sumner
621fe3f5d2 [next] Fix @types/react error 2022-07-06 23:57:47 -07:00
Jarred Sumner
0196bbee21 [cli] Clarify 2022-07-06 23:40:22 -07:00
Jarred Sumner
e4670b7513 Improve error message for outdated linux kernel 2022-07-06 23:30:19 -07:00
Jarred Sumner
4601531bf0 [tsconfig] Fix crash affecting preact 2022-07-06 23:16:18 -07:00
Jarred Sumner
520f7e78ac [internal] Fix failing build 2022-07-06 23:16:05 -07:00
Jarred Sumner
9962df69d6 [bun install] Fix NotSameFileSystem error 2022-07-06 22:29:30 -07:00
Tropical
47498eb375 properly style inner navigation ulist 2022-07-07 05:26:01 +00:00
Tropical
c78c810294 Refactor InstallBox 2022-07-07 05:19:30 +00:00
Michell Brito
8dc6f839a9 Merge pull request #264 from eyalcohen4/main 2022-07-07 01:03:06 -04:00
Tropical
c8d51cc05a Improve link contrast, refactor tabbar 2022-07-07 04:59:58 +00:00
mrowles
c99a9a6cb7 chore(examples): Updates start doco 2022-07-06 21:18:03 -07:00
Isaac McFadyen
fb95f6b225 Updated CPU in benchmarks 2022-07-06 20:07:13 -07:00
josefaidt
c747a08649 docs: add callout for typedefs with TypeScript 2022-07-06 19:22:53 -07:00
Egor
ee5144924b fix: spawn thread on linux 2022-07-06 19:22:29 -07:00
Moritz Löwenstein
ba9c64dc14 fix: add unzip is required information 2022-07-07 00:25:08 +02:00
Jarred Sumner
57f2208bdf Update Deno number for React SSR after 8c1157be22
This is the best of 3 runs

jarred in jarred-desktop in ~
❯ oha -z 5s http://localhost:8080
Summary:
  Success rate:	1.0000
  Total:	5.0006 secs
  Slowest:	0.0504 secs
  Fastest:	0.0001 secs
  Average:	0.0037 secs
  Requests/sec:	13533.1616

  Total data:	3.94 MiB
  Size/request:	61 B
  Size/sec:	806.17 KiB

Response time histogram:
  0.001 [51666] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.002 [9726]  |■■■■■■
  0.003 [1369]  |
  0.004 [185]   |
  0.005 [34]    |
  0.006 [0]     |
  0.007 [4]     |
  0.008 [1]     |
  0.009 [2]     |
  0.010 [2]     |
  0.011 [4685]  |■■

Latency distribution:
  10% in 0.0001 secs
  25% in 0.0002 secs
  50% in 0.0006 secs
  75% in 0.0010 secs
  90% in 0.0019 secs
  95% in 0.0434 secs
  99% in 0.0473 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0002 secs, 0.0001 secs, 0.0006 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs

Status code distribution:
  [200] 67674 responses

jarred in jarred-desktop in ~ took 5s
❯ oha -z 5s http://localhost:8080
Summary:
  Success rate:	1.0000
  Total:	5.0005 secs
  Slowest:	0.0492 secs
  Fastest:	0.0001 secs
  Average:	0.0032 secs
  Requests/sec:	15328.8994

  Total data:	4.46 MiB
  Size/request:	61 B
  Size/sec:	913.15 KiB

Response time histogram:
  0.001 [63524] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.002 [7172]  |■■■
  0.003 [1155]  |
  0.004 [52]    |
  0.004 [3]     |
  0.005 [9]     |
  0.006 [4]     |
  0.007 [26]    |
  0.008 [2]     |
  0.009 [3]     |
  0.010 [4702]  |■■

Latency distribution:
  10% in 0.0002 secs
  25% in 0.0003 secs
  50% in 0.0005 secs
  75% in 0.0008 secs
  90% in 0.0013 secs
  95% in 0.0434 secs
  99% in 0.0440 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0003 secs, 0.0001 secs, 0.0006 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs

Status code distribution:
  [200] 76652 responses

jarred in jarred-desktop in ~ took 5s
❯ oha -z 5s http://localhost:8080
Summary:
  Success rate:	1.0000
  Total:	5.0006 secs
  Slowest:	0.0518 secs
  Fastest:	0.0001 secs
  Average:	0.0032 secs
  Requests/sec:	15786.6566

  Total data:	4.59 MiB
  Size/request:	61 B
  Size/sec:	940.42 KiB

Response time histogram:
  0.001 [66905] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  0.002 [6834]  |■■■
  0.003 [409]   |
  0.003 [18]    |
  0.004 [17]    |
  0.005 [17]    |
  0.006 [3]     |
  0.007 [3]     |
  0.008 [2]     |
  0.009 [2]     |
  0.009 [4733]  |■■

Latency distribution:
  10% in 0.0002 secs
  25% in 0.0004 secs
  50% in 0.0005 secs
  75% in 0.0008 secs
  90% in 0.0012 secs
  95% in 0.0434 secs
  99% in 0.0440 secs

Details (average, fastest, slowest):
  DNS+dialup:	0.0003 secs, 0.0001 secs, 0.0007 secs
  DNS-lookup:	0.0000 secs, 0.0000 secs, 0.0000 secs

Status code distribution:
  [200] 78943 responses
2022-07-06 14:50:57 -07:00
Hiroaki Nakamura
a2313cede3 Add needed dependencies to Makefile devcontainer target 2022-07-06 14:41:39 -07:00
Alexander
996a7ade9f fix tabpanel a11y 2022-07-06 14:04:35 -07:00
Alexander
024233feeb fix a11y issues on landing 2022-07-06 14:04:35 -07:00
Yongwook Choi
48058fac99 docs: Fix broken toc link 2022-07-06 14:03:20 -07:00
Joe Previte
9a9bb823f6 fixup!: add newline to end of file 2022-07-06 14:00:47 -07:00
Joe Previte
73ab469102 refactor: wrap BigInt tests in describe block
Place BigInt tests inside of describe block to match test structure of
the rest of the codebase.
2022-07-06 14:00:47 -07:00
Eyal Cohen
c6967634c9 Add a space in page.tsx 2022-07-06 16:34:07 +03:00
Daniel Tolentino
f0c283c632 Add Bun logo 2022-07-06 04:12:45 -07:00
ManiTheDev
4654de7ee5 adding a template .gitignore 2022-07-06 04:11:31 -07:00
Andrea Giammarchi
b59908d291 Fix #253 - Explicitly exported randomUUID from global crypto 2022-07-06 04:08:53 -07:00
Feng Yu
a22b333f2a Fix Safari's implementation broken link 2022-07-06 04:06:51 -07:00
Kayla Washburn
636e71d54e Allow setting MIN_MACOS_VERSION as an environment variable 2022-07-06 01:17:31 -07:00
Kayla Washburn
6ea9332c87 Allow setting LLVM_PREFIX as an environment variable 2022-07-06 01:17:31 -07:00
Nishan
72184748d8 fix: home page links 2022-07-06 01:17:09 -07:00
Jay Baker
797d52beb5 fix: typo in the word enormous. fixes #214 2022-07-06 01:16:18 -07:00
Jarred Sumner
d875c9988a [bench] Add comparison for react-dom builds 2022-07-06 00:07:59 -07:00
Luca Casonato
8c1157be22 Disable response body auto compression in Deno
Allows for a more apples to apples comparison between runtimes
2022-07-05 17:13:52 -07:00
Steven
f32153754c fix: missing space in docs on homepage 2022-07-05 15:50:04 -07:00
addy
44ee4caf6f Change fish path addition command 2022-07-05 14:39:04 -07:00
Jarred Sumner
e4fb842757 Update build-id 2022-07-05 13:03:02 -07:00
Jarred Sumner
780b919e26 delete this 2022-07-05 13:03:02 -07:00
Jarred Sumner
f7c32745e0 update 2022-07-05 13:03:02 -07:00
evanwashere
bd8c7915b9 add invite url guide 2022-07-05 11:45:28 -07:00
evanwashere
91cff94739 add creating discord bots to readme 2022-07-05 11:45:28 -07:00
Kirk Scheibelhut
0c9fb7e063 nitpick README
- modify wording of example which implies there are two blobs beings passed when only one is
- styling Bun.js -> bun.js for consistency
- correct 63 bits -> 53 bits
2022-07-05 11:40:27 -07:00
Jarred Sumner
70e2bda971 Fix tests 2022-07-05 11:04:59 -07:00
Jarred Sumner
0d54275314 [create] Don't print timestamp because it formats weird 2022-07-05 10:29:03 -07:00
Jarred Sumner
b64bfc0153 mitigate HMR bug 2022-07-05 10:28:34 -07:00
Jarred Sumner
9afed496a8 Bump discord-interactions template 2022-07-05 10:28:14 -07:00
Jarred Sumner
3bf467375b latest 2022-07-05 09:40:37 -07:00
evanwashere
aaffcb410f nitpicks 2022-07-05 09:26:58 -07:00
evanwashere
d3e0955ddc more examples 2022-07-05 09:26:58 -07:00
evanwashere
5d4fbf7f02 TLA & typescript 2022-07-05 09:26:58 -07:00
evanwashere
4a927e09b7 discord interactions template 2022-07-05 09:26:58 -07:00
Jarred Sumner
a577e3507f latest 2022-07-05 08:55:20 -07:00
Jarred Sumner
cb67add26a Fix copy button 2022-07-05 02:53:25 -07:00
Jarred Sumner
2470c0d090 Current landing 2022-07-05 02:25:33 -07:00
Jarred Sumner
2d8dfeff49 [breaking] bun now prints the help menu instead of the dev server 2022-07-05 00:56:39 -07:00
Jarred Sumner
18290dee8b [jsc] More careful code in dynamic require 2022-07-05 00:55:43 -07:00
Jarred Sumner
9137862bc7 Fix crash in dynamic import? 2022-07-05 00:55:24 -07:00
Jarred Sumner
288178e94c Fix bug in ffi 2022-07-05 00:55:07 -07:00
Jarred Sumner
ebb4f85feb [bun-framework-next] Bump 2022-07-05 00:54:56 -07:00
Jarred Sumner
f5527c976e Clean up some benchmarks 2022-07-05 00:54:42 -07:00
Jarred Sumner
ab7f57239d [bench] react hello world 2022-07-04 18:06:30 -07:00
Jarred Sumner
a822135603 Update Dockerfile 2022-07-04 17:36:20 -07:00
Jarred Sumner
6190dc5da5 [internal] Don't need to run jsc-bindings-headers in CI 2022-07-04 17:32:19 -07:00
Jarred Sumner
090a913660 once more 2022-07-04 17:26:46 -07:00
Jarred Sumner
db2f101971 [internal] Fix build script on old node 2022-07-04 17:23:43 -07:00
Jarred Sumner
41f4302d39 Handle global require("string") 2022-07-04 17:17:29 -07:00
Jarred Sumner
91cada219b Fix case in dynamic require() 2022-07-04 17:17:11 -07:00
Jarred Sumner
7d3459f53d [internal] Fix duplicate symbol issue 2022-07-04 16:47:34 -07:00
Jarred Sumner
cf4c9912c3 Fix npm peer dep issue 2022-07-04 16:46:17 -07:00
Jarred Sumner
b685cd49a6 [bench] Add a react ssr hello world 2022-07-04 16:41:16 -07:00
Jarred Sumner
9c960fcafd Update bun.lockb 2022-07-04 16:39:55 -07:00
Jarred Sumner
4acc0351cf Update README.md 2022-07-04 16:39:48 -07:00
Jarred Sumner
2f212d1386 [resolver] Add a test for self-referencing package.json exports 2022-07-04 16:39:33 -07:00
Jarred Sumner
1e54e94cc2 Bump docker build of webkit 2022-07-04 16:39:05 -07:00
Jarred Sumner
48f64bc6e5 [itnernal] Cleanup some of the streams code 2022-07-04 16:38:45 -07:00
Jarred Sumner
667303fc86 [internal] Add a note explaining what to do if this fails 2022-07-04 16:36:51 -07:00
Jarred Sumner
6768db9a6e [jsc] Handle promise ownership (might revert this) 2022-07-04 16:36:28 -07:00
Jarred Sumner
d516e3523b [jsc] Run JSC's deferredWorkTimer sometimes 2022-07-04 16:35:11 -07:00
Jarred Sumner
a6d4283986 [jsc] Attempt to make detecting ArrayBuffer/Uint8Array faster 2022-07-04 16:34:42 -07:00
Jarred Sumner
abd9d8bcab [server] Clean up some of the logic for freeing ReadableStream 2022-07-04 16:34:08 -07:00
Jarred Sumner
430532feec Update __global.zig 2022-07-04 16:33:39 -07:00
Jarred Sumner
cf5939c425 [jsc] Make JSC own the memory for source code strings 2022-07-04 08:42:29 -07:00
Jarred Sumner
bbcc08dbb4 Merge branch 'jarred/landing' 2022-07-04 08:41:03 -07:00
Jarred Sumner
77b5999b73 [bench] Add a performance.now bench 2022-07-04 08:39:27 -07:00
Jarred Sumner
2f553df8be [bench] Add an async overhead bench 2022-07-04 08:39:18 -07:00
Jarred Sumner
17045601e7 [bench] Add an ffi data overhead bench 2022-07-04 08:39:07 -07:00
Jarred Sumner
0f987a5601 [strings] Minor performance optimizations to SourceMaps 2022-07-04 08:05:21 -07:00
Jarred Sumner
fb48557154 Export Bun__readOriginTimer 2022-07-04 08:04:54 -07:00
Jarred Sumner
14846710c5 Make log_protection dev_only 2022-07-04 08:04:31 -07:00
Jarred Sumner
2ba3a6fbbc Improve the performance of performance 2022-07-04 08:04:21 -07:00
Jarred Sumner
027d64c78f 0.1 2022-07-04 08:03:34 -07:00
Jarred Sumner
d653341e03 0! 2022-07-04 08:03:24 -07:00
Jarred Sumner
fd09b30538 [sourcemaps] Add an assertion 2022-07-04 06:03:31 -07:00
Jarred Sumner
eea02d9500 [misc] Make that test work 2022-07-04 06:03:19 -07:00
Jarred Sumner
c7e0ed8e21 Update page.tsx 2022-07-04 02:02:43 -07:00
Jarred Sumner
c34e9ced81 Add a getting started section 2022-07-04 01:26:09 -07:00
Jarred Sumner
344998a873 Fix WebAssembly.instantiate 2022-07-04 01:25:41 -07:00
Jarred Sumner
6f7af725ff Export fs.promises 2022-07-04 00:16:29 -07:00
Jarred Sumner
e553e82acc wip 2022-07-03 23:55:11 -07:00
Jarred Sumner
78d5a0f201 Update README.md 2022-07-03 23:54:44 -07:00
Jarred Sumner
53a8ab5715 Re-enable buffer pooling 2022-07-03 23:17:27 -07:00
Jarred Sumner
544ab558dc wip 2022-07-02 23:33:24 -07:00
Jarred Sumner
edd550a5ee wip 2022-07-02 23:33:20 -07:00
Jarred Sumner
c3ea15f4bc Backport https://github.com/WebKit/WebKit/pull/2024 2022-07-02 04:05:21 -07:00
Jarred Sumner
efdc60372f [bun:jsc] Add generateHeapSnapshotForDebugging 2022-07-02 04:05:04 -07:00
Jarred Sumner
6f3a092564 [bun:jsc] Add protectedObjectTypeCounts, disallow gc 2022-07-02 02:35:43 -07:00
Jarred Sumner
d1ad1089bc Update README.md 2022-07-02 01:37:13 -07:00
Jarred Sumner
29af6560d3 [internal] Add react-dom as a dev dependency for the tests 2022-07-02 01:36:04 -07:00
Jarred Sumner
ef742f2fa8 [internal] Clean up launch.json 2022-07-02 01:36:04 -07:00
Jarred Sumner
2c70badad6 Update WebKit 2022-07-02 01:36:04 -07:00
Jarred Sumner
0d9ebb1fd2 [internal] Make make jsc-bindings-headers more reliable 2022-07-02 01:36:04 -07:00
Jarred Sumner
ba2c24e77c [bindings] Mark more stuff as unreachable 2022-07-02 01:36:04 -07:00
Jarred Sumner
d1cc2b85cb Update reactdom-bun.js 2022-07-02 01:36:04 -07:00
Jarred Sumner
7c996fe2e6 [bun:jsc] Add a test for getProtectedObjects 2022-07-02 01:36:04 -07:00
Jarred Sumner
f9f573ebb4 [strings] Optimize TextEncoder a little more 2022-07-02 01:36:04 -07:00
Jarred Sumner
476b3c7404 [bun http] Attempt to fix a crash 2022-07-02 01:36:04 -07:00
Jarred Sumner
500e5ed949 [streams] Rename drain() -> flush() 2022-07-02 01:36:04 -07:00
Jarred Sumner
b995e7797d [bun:jsc] Add export for getProtectedObjects 2022-07-02 01:36:04 -07:00
Jarred Sumner
69b32a01c4 Update html_rewriter.zig 2022-07-02 01:36:04 -07:00
Jarred Sumner
d3ba6f0f12 Rename defaultErrorHandler to runErrorHandler 2022-07-02 01:36:04 -07:00
Jarred Sumner
f6002b799b Delete BunStream 2022-07-02 01:36:04 -07:00
Jarred Sumner
874344eead [bun:jsc] expose getProtectedObjects gc hook 2022-07-02 01:36:04 -07:00
Jarred Sumner
6567224125 wip 2022-07-02 01:36:04 -07:00
Koka Easwarendra
7907de58be update cli comment to match the create next app instructions 2022-07-01 19:12:01 -07:00
Jarred Sumner
b686003710 [stremas] Regenerate JSSInk 2022-07-01 04:03:32 -07:00
Jarred Sumner
cd7dd0f007 [streams] Add an integer tag identifying what the stream type is 2022-07-01 04:02:09 -07:00
Jarred Sumner
6ecf7ec138 [Bun.serve] Add explicit function for clearing the abort callback 2022-07-01 04:01:27 -07:00
Jarred Sumner
0ab0d35542 [Bun.serve] Clean up lifetimes & error handling somewhat 2022-07-01 04:01:00 -07:00
Jarred Sumner
460ee12906 [Bun.serve] Don't run error recursively 2022-07-01 03:27:27 -07:00
Jarred Sumner
13e2ac08bd Add some tests for error handling 2022-07-01 03:25:17 -07:00
Jarred Sumner
589993192a Improve test coverage for streams 2022-07-01 03:24:58 -07:00
Jarred Sumner
4812fb8faf Fix failing tests for ReadableStream -> {text, arrayBuffer, blob} 2022-07-01 03:24:16 -07:00
Jarred Sumner
e105cfcca8 Zig::ImportMeta 2022-07-01 03:22:23 -07:00
Jarred Sumner
f2569c8c6e Move ImportMeta into it's own object 2022-07-01 03:21:55 -07:00
Jarred Sumner
4aec5151e5 [TextEncoder] Use JSC heap for small buffers 2022-06-30 20:40:05 -07:00
Jarred Sumner
ac8dd5e59b Create process object lazily 2022-06-30 19:27:30 -07:00
Jarred Sumner
c9f1d146c2 Fix incorrect type 2022-06-30 19:25:56 -07:00
Jarred Sumner
180068e46c Improve test coverage for react ssr 2022-06-30 19:25:46 -07:00
Jarred Sumner
6e59b996ba Fix memory leak 2022-06-30 19:24:15 -07:00
Jarred Sumner
39d111fa63 Document failed experiment 2022-06-30 19:23:36 -07:00
Jarred Sumner
4821b9c10b Fix promise memory leak 2022-06-30 19:23:27 -07:00
Jarred Sumner
457a13e238 [strings] Faster latin1 -> UTF8 length count 2022-06-29 20:53:50 -07:00
Jarred Sumner
6bc0bc2f63 [misc] Helper functions to ObjectPool 2022-06-29 20:52:58 -07:00
Jarred Sumner
856589bd98 [misc] Add generate-sink 2022-06-29 07:12:13 -07:00
Jarred Sumner
2fa51493c5 [http server] Fix a segfault when aborting 2022-06-29 07:10:30 -07:00
Jarred Sumner
4d3698e842 Correctly handle latin1 rope strings with non-ascii characters 2022-06-29 07:09:55 -07:00
Jarred Sumner
647110d513 [React SSR] Avoid getById slow path
thanks @Constellation
2022-06-29 07:09:25 -07:00
Jarred Sumner
425846f868 Regenerate builtins 2022-06-29 07:08:44 -07:00
Jarred Sumner
013dfb0498 [web streams] Handle direct streams in readableStreamToArray 2022-06-29 07:08:37 -07:00
Jarred Sumner
7168a40328 Make HTTP web streams faster 2022-06-29 07:07:52 -07:00
Jarred Sumner
66a297888f Remove incorrect assertion 2022-06-29 04:29:42 -07:00
Jarred Sumner
a02f42f84c Fix bug with printer 2022-06-29 04:29:32 -07:00
Jarred Sumner
7d5464adbe [encoder] Fix non-ascii latin1 characters 2022-06-29 04:29:01 -07:00
Jarred Sumner
95c1785271 begin adding react-ssr tests 2022-06-27 06:44:39 -07:00
Jarred Sumner
292f60a8a8 [http server] couple more tests 2022-06-27 05:46:26 -07:00
Jarred Sumner
cfcd8a1531 [uws] Add helper for corking 2022-06-27 05:33:44 -07:00
Jarred Sumner
cf4ec2b109 Handle when there are no headers to send 2022-06-27 05:33:27 -07:00
Jarred Sumner
628cbc8eb3 Cork streams when possible 2022-06-27 05:32:46 -07:00
Jarred Sumner
f66c277e54 Fix memory issue with error messages 2022-06-27 05:32:07 -07:00
Jarred Sumner
6544b2b57e Faster web streams 2022-06-27 05:31:58 -07:00
Jarred Sumner
3943ce5ac5 [web streams] Add more tests 2022-06-27 05:30:45 -07:00
Jarred Sumner
e93bdc79c7 Use less undefined 2022-06-27 05:30:16 -07:00
Jarred Sumner
3059d0fbb3 Add scoped logger functions for debug builds 2022-06-27 05:30:07 -07:00
Jarred Sumner
dc3a1170d4 use less undefined 2022-06-27 05:29:53 -07:00
Jarred Sumner
07050901a6 [fetch] Fix data corruption bug 2022-06-27 05:29:25 -07:00
Jarred Sumner
f70784a6d1 Fix data corruption bug in HTTP server 2022-06-27 05:28:45 -07:00
Jarred Sumner
77a0f335cb wip ReadableStream for HTTP(s) Server 2022-06-26 06:01:22 -07:00
Jarred Sumner
31cfcf2c9f Better node:url polyfill 2022-06-25 04:59:49 -07:00
Jarred Sumner
5bd5678ba3 Implement Bun.pathToFileURL & Bun.pathToFileURL 2022-06-25 04:42:56 -07:00
Jarred Sumner
1c04073e5e Update transpiler.zig 2022-06-25 04:42:11 -07:00
Jarred Sumner
8fbd92e37d Cleanup some of the require code 2022-06-25 04:41:20 -07:00
Jarred Sumner
7bb75f5553 Add dynamic require support 2022-06-24 06:59:47 -07:00
Jarred Sumner
6d6a89780b Update Makefile 2022-06-23 14:26:37 -07:00
Jarred Sumner
3decfcc442 Update Makefile 2022-06-23 14:25:35 -07:00
Jarred Sumner
32185fe791 Update Makefile 2022-06-23 14:24:37 -07:00
Jarred Sumner
3739816ce2 Update Makefile 2022-06-23 14:21:30 -07:00
Jarred Sumner
874692c9c9 Update Dockerfile 2022-06-23 14:17:57 -07:00
Jarred Sumner
a589153d89 Update Makefile 2022-06-23 02:49:46 -07:00
Jarred Sumner
252f8a0eec give up on emit-llvm for sqlite3 2022-06-23 01:52:28 -07:00
Jarred Sumner
86173f355a maybe that fixes it? 2022-06-23 01:41:06 -07:00
Jarred Sumner
b15d862275 Fix buffer test which was failing for correct reasons 2022-06-23 01:35:48 -07:00
Jarred Sumner
729e55a357 Update Makefile 2022-06-23 01:35:32 -07:00
Jarred Sumner
da616966a8 Update Makefile 2022-06-23 01:31:13 -07:00
Jarred Sumner
92c6837460 Delete some files 2022-06-22 23:39:07 -07:00
Jarred Sumner
d8a3c0f841 Update libbacktrace 2022-06-22 23:38:57 -07:00
Jarred Sumner
729d445b68 change the directory structure 2022-06-22 23:21:48 -07:00
Jarred Sumner
25f820c6bf maybe improve CPP build time 2022-06-22 22:52:24 -07:00
Jarred Sumner
a77825799e Move builtins to src/javascript/jsc/builtins 2022-06-22 22:52:03 -07:00
Jarred Sumner
7db88ca6b5 Tweak test runner output 2022-06-22 21:25:20 -07:00
Jarred Sumner
9843a9de53 Cleanup some tests 2022-06-22 21:25:07 -07:00
Jarred Sumner
aa97c1da2f Update Dockerfile.base 2022-06-22 21:25:01 -07:00
Jarred Sumner
dce542a623 Update WebKit 2022-06-22 21:11:34 -07:00
Jarred Sumner
e4e915d2ec cleanup websocket test 2022-06-22 21:11:28 -07:00
Jarred Sumner
f05428e4f3 Fix WebSocket when HTTP server is not running 2022-06-22 21:11:10 -07:00
Jarred Sumner
20249b9f80 Update build-id 2022-06-22 16:49:51 -07:00
Jarred Sumner
41575b982c cleanup 2022-06-22 16:48:03 -07:00
Jarred Sumner
b4feb33df9 Update index.d.ts 2022-06-22 06:56:47 -07:00
Jarred Sumner
d8dfddffe2 types for bun:jsc 2022-06-22 06:56:47 -07:00
Jarred Sumner
8c81fd5fc0 Slightly customize the events polyfill so it uses ESM 2022-06-22 06:56:47 -07:00
Jarred Sumner
0aa0eefd4e Fix memory bugs in escapeHTML & arrayBufferToString 2022-06-22 06:56:47 -07:00
Jarred Sumner
fa2d6a0d40 Add a simple test for EventEmitter 2022-06-22 06:56:47 -07:00
Jarred Sumner
d1ae1771eb Add a simple test for websockets 2022-06-22 06:56:47 -07:00
Jarred Sumner
08314c328e Handle integer overflow in logs better 2022-06-22 06:56:47 -07:00
Jarred Sumner
d450c4cdee [JS Printer] Fix bug with printing re-exported functions that are from an object binding 2022-06-22 06:56:47 -07:00
Jarred Sumner
659d4497d0 Fix bug with browser disabled modules 2022-06-22 06:56:47 -07:00
Jarred Sumner
772350a309 Disable modules in the linker 2022-06-22 06:56:47 -07:00
Jarred Sumner
cf0ee82926 this assertion isn't good enough 2022-06-22 06:56:47 -07:00
Jarred Sumner
150f33c6fa Disable modules constently for bun inbun bun 2022-06-22 06:56:47 -07:00
Jarred Sumner
56aec17b9b Fix bug with exceptions inside EventTarget 2022-06-22 06:56:47 -07:00
Jarred Sumner
92aeb0af55 Add a way to schedule microtasks from C++ 2022-06-22 06:56:47 -07:00
Jarred Sumner
759bfadb93 Update javascript.zig 2022-06-22 06:56:47 -07:00
Jarred Sumner
93d03e5147 Clean up perf hooks a little 2022-06-22 06:56:47 -07:00
Jarred Sumner
e3a00268eb use JSValue for bun test 2022-06-22 06:56:47 -07:00
Jarred Sumner
527eb40a2c ws polyfil 2022-06-22 06:56:47 -07:00
Jarred Sumner
2cdbd2de83 Polyfills for undici, streams/web, streams/consumer timers timers/promises, fs/promises, ws 2022-06-22 06:56:47 -07:00
Jarred Sumner
d9f6a3f2d2 Fix close 2022-06-22 06:56:47 -07:00
Jarred Sumner
6db9e10ff1 Explicitly tag memory ownership for escapeHTML 2022-06-22 06:56:47 -07:00
Jarred Sumner
1947c62539 Fix assertion that checks globally allocated memory pointers 2022-06-22 06:56:47 -07:00
Jarred Sumner
0843e383b2 Fix error messages sometimes printing undefined memory 2022-06-22 06:56:47 -07:00
Jarred Sumner
624bebd20f Add a way to assert memory is not undefined in debug builds 2022-06-22 06:56:47 -07:00
Jarred Sumner
41b03b5c4c Cleanup tests 2022-06-22 06:56:47 -07:00
Jarred Sumner
bfa5b29555 Add checks in debug mode that strings being built via counting were actually counted 2022-06-22 06:56:47 -07:00
Jarred Sumner
13693b7b63 [JS Parser] Improve memory safety of error messages & logs 2022-06-22 06:56:47 -07:00
Jarred Sumner
1bc3747042 [JS Parser] Fix undefined memory bug when printing an "cannot be used in strict mode" error message 2022-06-22 06:56:47 -07:00
Jarred Sumner
689666f17c [bun wiptest] Implement beforeEach, afterEach, beforeAll, afterAll 2022-06-22 06:56:47 -07:00
Jarred Sumner
0c12f1684f [websockets] Support receiving data of length 128 - 65354, bigger not supported yet 2022-06-22 06:56:47 -07:00
Jarred Sumner
07c010a377 Better error for undefined memory here 2022-06-22 06:56:47 -07:00
Jarred Sumner
9e4c11e280 Preallocate some event loop tasks 2022-06-22 06:56:47 -07:00
Jarred Sumner
7f836f2d73 Fix bugs with fifo tweaks 2022-06-22 06:56:47 -07:00
Jarred Sumner
abd042ea4a Update test_command.zig 2022-06-22 06:56:47 -07:00
Jarred Sumner
f004115dae bun wiptest improve test runner output 2022-06-22 06:56:47 -07:00
Jarred Sumner
d057b89a33 Sending works 2022-06-22 06:56:47 -07:00
Jarred Sumner
dda85d92c9 implement a custom websocket client 2022-06-22 06:56:47 -07:00
Jarred Sumner
ab888d2ebe It connects! but the frames are corrupt 2022-06-22 06:56:47 -07:00
Jarred Sumner
be9efacf1b WebSocket is a global 2022-06-22 06:56:47 -07:00
Jarred Sumner
71025c8bcc Fix most of the errors 2022-06-22 06:56:47 -07:00
Jarred Sumner
89f08aae27 more code 2022-06-22 06:56:47 -07:00
Jarred Sumner
38cc869104 WIP WebSocket 2022-06-22 06:56:47 -07:00
Alexander Kuznetsov
5d8a99e1d4 Group zsh completion options by type (#194) 2022-06-20 06:30:32 -07:00
Jarred Sumner
5eaf6d713e Import most of MessageEvent from WebKit 2022-06-17 04:10:21 -07:00
Jarred Sumner
b4049016ca some more tests 2022-06-15 22:12:04 -07:00
Jarred Sumner
9eaa427ec9 Update WebKit 2022-06-15 22:11:09 -07:00
Jarred Sumner
5b1eaa7719 [web standards] Add CloseEvent from WebKit 2022-06-15 22:10:57 -07:00
Jarred Sumner
e6fbbd48db Fix lazy loading internal streams 2022-06-15 22:10:12 -07:00
Jarred Sumner
56e88fb4dd direct streams mostly work 2022-06-15 07:17:42 -07:00
Jarred Sumner
d93f093313 wip direct streams 2022-06-15 02:00:45 -07:00
Jarred Sumner
dbde52504d ArrayBufferSink works and it's good. 2022-06-12 21:40:45 -07:00
Jarred Sumner
6d88a3d9c0 Fix build issue 2022-06-12 03:26:03 -07:00
Jarred Sumner
fddf8f8163 Delete broken submodule 2022-06-12 03:16:50 -07:00
Jarred Sumner
f4e578b598 Update Dockerfile.base 2022-06-10 19:54:22 -07:00
Jarred Sumner
a5d0706c78 Update WebKit 2022-06-10 19:12:37 -07:00
Jarred Sumner
0740cecbfb Update event_loop.zig 2022-06-10 18:59:09 -07:00
Jarred Sumner
b86ca5f67b Missing errno on linux 2022-06-10 18:58:15 -07:00
Jarred Sumner
cc4a164f20 Update js_parser.zig 2022-06-10 18:55:16 -07:00
Jarred Sumner
40184a9511 Update Makefile 2022-06-10 18:53:20 -07:00
Jarred Sumner
8859815d7b wip fix linux build 2022-06-10 18:52:31 -07:00
Jarred Sumner
60a0b10174 Don't show generic crash info when given invalid bunfig.toml 2022-06-10 02:28:36 -07:00
Jarred Sumner
9d54e2ca92 Update logger.zig 2022-06-10 02:27:37 -07:00
Jarred Sumner
89c182e9c5 Show tracing 2022-06-10 02:27:13 -07:00
Jarred Sumner
e441360ca7 Update bunfig.zig 2022-06-10 02:27:03 -07:00
Jarred Sumner
fc26e92b3e Update jest.zig 2022-06-10 02:26:45 -07:00
Jarred Sumner
3e70df3fb3 Update bun.d.ts 2022-06-09 21:40:13 -07:00
Jarred Sumner
7cda36c601 Add types 2022-06-09 21:36:43 -07:00
Jarred Sumner
5ccf606107 new Response(stream).arrayBuffer() + 3 more
- `new Response(stream).arrayBuffer()`
- `new Response(stream).json()`
- `new Response(stream).text()`
- `new Response(stream).blob()`
2022-06-09 21:29:57 -07:00
Jarred Sumner
b8eea5cc4a fix some memory leaks with strings 2022-06-09 05:09:48 -07:00
Jarred Sumner
c88dd2c52c Support console.log(myBigInt) 2022-06-09 05:09:22 -07:00
Jarred Sumner
78bf1150ff Fix defaultProps with JSX optimization 2022-06-09 05:09:00 -07:00
Jarred Sumner
7a20836a1b small perf improvements to encoding 2022-06-09 05:02:46 -07:00
Jarred Sumner
1467ec137a Update event_loop.zig 2022-06-07 22:47:28 -07:00
Jarred Sumner
552e93bfba Add fixture used in benchmark snippet 2022-06-07 22:46:05 -07:00
Jarred Sumner
e617dee621 Update bundler.zig 2022-06-07 22:42:50 -07:00
Jarred Sumner
609edc368f wip ReadableStream <> zig 2022-06-07 22:42:47 -07:00
Jarred Sumner
5b4dcb8d16 log esm import order 2022-06-07 22:42:12 -07:00
Jarred Sumner
cdd1a2bdc0 Implement hashCode 2022-06-07 22:41:27 -07:00
Jarred Sumner
43de33afc7 Web Streams API (#176)
* [bun.js] `WritableStream`, `ReadableStream`, `TransformStream`, `WritableStreamDefaultController`, `ReadableStreamDefaultController` & more

* Implement `Blob.stream()`

* Update streams.test.js

* Fix sourcemaps crash

* [TextEncoder] 3x faster in hot loops

* reading almost works

* start to implement native streams

* Implement `Blob.stream()`

* Implement `Bun.file(pathOrFd).stream()`

* Add an extra function

* [fs.readFile] Improve performance

* make jsc bindings a little easier to work with

* fix segfault

* faster async/await + readablestream optimizations

* WebKit updates

* More WebKit updates

* Add releaseWEakrefs binding

* `bun:jsc`

* More streams

* Update streams.test.js

* Update Makefile

* Update mimalloc

* Update WebKit

* Create bun-jsc.test.js

* Faster ReadableStream

* Fix off by one & exceptions

* Handle empty files/blobs

* Update streams.test.js

* Move streams to it's own file

* temp

* impl #1

* take two

* good enough for now

* Implement `readableStreamToArray`, `readableStreamToArrayBuffer`, `concatArrayBuffers`

* jsxOptimizationInlining

* Fix crash

* Add `jsxOptimizationInline` to Bun.Transpiler

* Update Transpiler types

* Update js_ast.zig

* Automatically choose production mode when NODE_ENV="production"

* Update cli.zig

* [jsx] Handle defaultProps when inlining

* Update transpiler.test.js

* uncomment some tests

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2022-06-07 22:32:46 -07:00
Jarred Sumner
958fc3d4f5 Update .gitignore 2022-05-30 03:50:35 -07:00
Jarred Sumner
aecc849692 Improve error messages when you mistype commands/files/scripts 2022-05-30 03:50:24 -07:00
Jarred Sumner
882559f0b9 Load bunfig.toml by default if bun or bun {file}\.[cjt]sx?
Fixes https://github.com/Jarred-Sumner/bun/issues/183
2022-05-30 03:50:24 -07:00
Alexander Kuznetsov
ca21c00f86 Remove generated files from git index (#182) 2022-05-30 01:13:12 -07:00
M Javad
960cb1a8d5 docs: fix typo in readme (#179) 2022-05-20 12:26:15 -07:00
Jarred Sumner
8a3a5c3b74 Update string_mutable.zig 2022-05-20 00:59:50 -07:00
Jarred Sumner
99d61877d6 [solid] more progress, no fragments, but still not right 2022-05-20 00:45:51 -07:00
Jarred Sumner
224cfa91fb [TSConfig] Propagate runtime from tsconfig.json 2022-05-19 21:10:11 -07:00
Jarred Sumner
1af67dbe15 woops 2022-05-19 19:44:19 -07:00
Jarred Sumner
55bfa6cd02 Update cache.zig 2022-05-19 19:27:25 -07:00
Jarred Sumner
1d0124093c [solid] Move the post-process JSX step 2022-05-19 19:27:23 -07:00
Jarred Sumner
70078f48c0 [bun de] Fix crash when printing source maps 2022-05-19 19:26:45 -07:00
Jarred Sumner
44d1b217ac move js_parser to src/ 2022-05-19 17:52:40 -07:00
Jarred Sumner
3672bb85eb [solid] wip make nested components work 2022-05-19 17:52:07 -07:00
Jarred Sumner
6f741e8c10 Symbols 2022-05-19 05:37:30 -07:00
Jarred Sumner
d4767ca763 [wip] Solid.js support for Bun! 2022-05-19 05:37:18 -07:00
Jarred Sumner
07e695da03 add a test 2022-05-16 23:05:21 -07:00
Jarred Sumner
4f72021007 Update README.md 2022-05-16 21:14:34 -07:00
Jarred Sumner
bc73d21917 Update types.d.ts 2022-05-16 20:54:01 -07:00
Jarred Sumner
7ca297a5cc Update download-northwind.sh 2022-05-16 19:51:30 -07:00
Jarred Sumner
e114fca5ee Still not correct! 2022-05-16 19:33:19 -07:00
Jarred Sumner
d0ca9f2499 Update README.md 2022-05-16 19:28:29 -07:00
Jarred Sumner
95daafee0f Update serve.test.ts 2022-05-16 19:26:57 -07:00
Jarred Sumner
37e4848c6f work around test failure 2022-05-16 19:25:49 -07:00
Jarred Sumner
78cd9e89f3 Update sqlite3.c 2022-05-16 19:15:10 -07:00
Jarred Sumner
15c40f5ea3 Fix build error on linux 2022-05-16 19:12:22 -07:00
Jarred Sumner
5f3256d939 Update Makefile 2022-05-16 19:06:01 -07:00
Jarred Sumner
a2b22c339e Update sqlite.d.ts 2022-05-16 19:03:30 -07:00
Jarred Sumner
aed5e39f4d remove bad examples 2022-05-16 19:02:38 -07:00
Jarred Sumner
bd1e64b9b1 Fix type errors 2022-05-16 18:58:11 -07:00
Jarred Sumner
31f3050356 Bump 2022-05-16 18:53:33 -07:00
Jarred Sumner
ba36f5db7e prepare for release 2022-05-16 18:45:46 -07:00
Jarred Sumner
a372a0dd6d Update JSSQLStatement.cpp 2022-05-16 18:24:55 -07:00
Jarred Sumner
aba032e176 Copy strings when binding to sqlite 2022-05-16 18:19:08 -07:00
Jarred Sumner
e31f44c3d1 Update README.md 2022-05-16 17:40:33 -07:00
Jarred Sumner
0d12a1f9ee reset on stmt on error 2022-05-16 17:18:50 -07:00
Jarred Sumner
036eb2a9ed Update README.md 2022-05-16 16:34:05 -07:00
Jarred Sumner
2eb889be89 Update README.md 2022-05-16 16:33:13 -07:00
Jarred Sumner
dd07717b80 Update README.md 2022-05-16 16:28:48 -07:00
Jarred Sumner
36a82cfb93 Update README.md 2022-05-16 16:26:32 -07:00
Jarred Sumner
6fce02bd85 Update sqlite.d.ts 2022-05-16 16:25:54 -07:00
Jarred Sumner
93767bf78f Update .gitattributes 2022-05-16 16:24:42 -07:00
Jarred Sumner
a779fc180f Update README.md 2022-05-16 16:07:59 -07:00
Jarred Sumner
223ce6b22d Update README.md 2022-05-16 16:00:30 -07:00
Jarred Sumner
5d4673742e Update README.md 2022-05-16 15:59:57 -07:00
Jarred Sumner
05eb1e5684 Update README.md 2022-05-16 15:57:45 -07:00
Jarred Sumner
b4ac7697ac Update README.md 2022-05-16 15:55:35 -07:00
Jarred Sumner
2cfc1d42a3 Update README.md 2022-05-16 15:52:05 -07:00
Jarred Sumner
be1f469ec5 Update README.md 2022-05-16 15:48:56 -07:00
Jarred Sumner
a37f86e89d bun:sqlite (#167)
* ✂️

* Add the slow version

* draw the rest of the owl

* Fix crash when allocating lots of memory

* [Bun.Transipiler] Support passing objects

* [JS Parser] Support passing objects to macros via Bun.Transpiler

* Update JSSQLStatement.cpp

* Embed SQLite

* Add SQLite to Dockerfile

* [sqlite] Add quick one-off queries without creating a whole object

* [sqlite] Add `columnsCount`, rename raw() to `values()`, remove `rebind`

* Implement `bun:sqlite`

* return null

* Fix updating query

* Update bun.d.ts

* more tests

* Support variadic arguments, write tests and add types

* Update sqlite.d.ts

* Update sqlite.d.ts

* latest

* Implement `Database.loadExtension` and `Database.setCustomSQLite`

* Support `require.resolve`

* [napi] Improve string performance

* [bun.js] Support some of `node:module`

* another test

* [sqlite] Support serialize & deserialize

* [`bun:ffi`] Implement `CFunction` and `linkSymbols`

* [bun.js] Fix crash in `Buffer.from`

* Update sqlite.test.js

* Document linkSymbols

* docs

* Update README.md
2022-05-16 15:46:20 -07:00
Divy Srivastava
2bd0dcfdfa Add go and esbuild to build instructions (#169) 2022-05-16 13:55:14 -07:00
Hugo Romano
e75535d14c wrangler 2 released (#166) 2022-05-12 14:43:44 -07:00
Jarred Sumner
1d6923bead Update README.md 2022-05-11 19:12:00 -07:00
Jarred Sumner
732124e3dd Update README.md 2022-05-11 19:11:17 -07:00
Jarred Sumner
a15e66cc7b Add section about napi 2022-05-11 19:08:46 -07:00
Jarred Sumner
3eacfe2314 Update README.md 2022-05-11 18:29:05 -07:00
Jarred Sumner
89c0d9dd56 Update build-id 2022-05-11 17:57:55 -07:00
Jarred Sumner
b21d0f0b22 Fix several bugs in napi
Closes https://github.com/Jarred-Sumner/bun/issues/163
Closes https://github.com/Jarred-Sumner/bun/issues/162
Closes https://github.com/Jarred-Sumner/bun/issues/161
2022-05-11 17:49:18 -07:00
Jarred Sumner
61b2821472 Make the napi mjs file runnable in both bun & node 2022-05-11 15:12:17 -07:00
Jarred Sumner
1f86e0c87e Update build-id 2022-05-11 04:47:34 -07:00
Jarred Sumner
d1ea51e9f2 disable the new target allowed error 2022-05-11 04:45:47 -07:00
Jarred Sumner
5de2e2c71e Update Makefile 2022-05-11 04:05:08 -07:00
Jarred Sumner
2c1051f539 Update Makefile 2022-05-11 03:46:00 -07:00
Jarred Sumner
247f4810c5 Fix export symbols on Linux 2022-05-11 03:45:00 -07:00
Jarred Sumner
47b6dc9eea Add test for import.meta.require 2022-05-11 03:19:29 -07:00
Jarred Sumner
aea3b4e280 [napi] Add a couple more symbols 2022-05-11 02:59:46 -07:00
Jarred Sumner
12e0496a79 [napi] Fix panic inside napi_fatal_error 2022-05-11 02:59:38 -07:00
Jarred Sumner
aa87d40f4b [napi] Stub a couple more 2022-05-11 02:59:22 -07:00
Jarred Sumner
7d1eced8c6 [bun.js] eagerly convert to import.meta.require 2022-05-11 02:57:51 -07:00
Jarred Sumner
123267685f [json] Fix bug with negative integers in json parser 2022-05-11 02:56:46 -07:00
Jarred Sumner
0bec7001ba [bun.js] Implement a polyfill for the detect-libc npm package 2022-05-11 00:57:06 -07:00
Jarred Sumner
3c87fbfd37 [bun.js] Implement import.meta.require
This allows synchronous dynamic loading of `.node`, `.json`, and `.toml` files.

It is not a CommonJS require, but it can be used that way so long as the content is not JavaScript.
2022-05-11 00:56:35 -07:00
Jarred Sumner
fd00950852 [bun.js] Implement import.meta.resolveSync 2022-05-11 00:54:42 -07:00
Jarred Sumner
eb2a6aee4d Include napi in plus100 2022-05-10 20:50:38 -07:00
Jarred Sumner
84e8d08ec6 Add test for Buffer.byteLength 2022-05-10 20:47:51 -07:00
Jarred Sumner
92e8eaf581 [napi] Error on import .node 2022-05-10 20:47:38 -07:00
Jarred Sumner
e8e58a511f Update napi.cpp 2022-05-10 20:44:25 -07:00
Jarred Sumner
08e40efe11 [napi] Fix string bug 2022-05-10 20:24:07 -07:00
Jarred Sumner
01a0aee1e8 [napi] transpile require(*.node) into process.dlopen 2022-05-10 19:12:15 -07:00
Jarred Sumner
8def37c14e [bun.js] Implement Buffer.byteLength 2022-05-10 19:09:28 -07:00
Jarred Sumner
b3760cd723 Fix extra quote in bundled require errors 2022-05-09 23:01:05 -07:00
Jarred Sumner
1cb870be16 few more napi functions 2022-05-09 22:39:22 -07:00
Jarred Sumner
35232fa422 Update Makefile 2022-05-09 22:07:47 -07:00
Jarred Sumner
77342a2268 Update Dockerfile.base 2022-05-09 22:01:56 -07:00
Jarred Sumner
b834e21192 [napi] getters & setters work 2022-05-09 21:58:41 -07:00
Jarred Sumner
f4188b3ddc Add test for __dirname 2022-05-09 21:54:08 -07:00
Jarred Sumner
963c08d472 Update symbols.txt 2022-05-09 21:54:00 -07:00
Jarred Sumner
29b9ced11a Update bindings.cpp 2022-05-09 21:53:44 -07:00
Jarred Sumner
8ac108ba06 [napi] Move some code to C++ for perf 2022-05-09 04:11:48 -07:00
Jarred Sumner
8014a0b8d8 [napi] Support import and require of .node modules 2022-05-09 00:24:25 -07:00
Jarred Sumner
3bd83eb134 [napi] Fix strings 2022-05-09 00:23:51 -07:00
Jarred Sumner
a5ebcefeeb fixup 2022-05-09 00:23:35 -07:00
Jarred Sumner
c806e778d6 [JS Parser] Support __dirname and __filename 2022-05-09 00:00:01 -07:00
Jarred Sumner
3850fc5b0b Make a lot more stuff work 2022-05-08 17:37:58 -07:00
Jarred Sumner
6bac11f066 Create change-array-by-copy.js 2022-05-08 17:37:36 -07:00
Jarred Sumner
bc2ca8afbd Update WebKit 2022-05-08 01:34:53 -07:00
Jarred Sumner
e403b6111f more napi 2022-05-08 01:32:20 -07:00
Jarred Sumner
d613ba5fcd Update serve.test.ts 2022-05-08 01:14:21 -07:00
Jarred Sumner
4dee9be3eb Update http-file.ts 2022-05-08 01:13:03 -07:00
Jarred Sumner
61afb8955c Update build-id 2022-05-08 01:12:56 -07:00
Jarred Sumner
61d548c7bf [bun.js] Fix bug with headers not being sent in fetch 2022-05-08 01:12:46 -07:00
Jarred Sumner
c1efeefb8a Ugprade webkit 2022-05-08 01:12:27 -07:00
Jarred Sumner
3b6c3d8196 Update wtf-bindings.cpp 2022-05-08 01:12:20 -07:00
Jarred Sumner
97cceb47b9 Upgrade WebKit 2022-05-08 01:12:13 -07:00
Jarred Sumner
94637711b9 Update zlib.test.js 2022-05-07 13:27:23 -07:00
Jarred Sumner
bdf28e42f6 [bun.js] Support gzipSync, gunzipSync, inflateSync, deflateSync 2022-05-07 01:38:26 -07:00
Jarred Sumner
1687455a3f [napi] Fix function arguments 2022-05-06 06:43:49 -07:00
Jarred Sumner
84e40a4f74 symbols list 2022-05-06 00:37:23 -07:00
Jarred Sumner
bce60a5a86 more napi 2022-05-06 00:05:31 -07:00
Jarred Sumner
a7b0bc8790 it can call functions 2022-05-05 21:35:08 -07:00
Jarred Sumner
30ca112260 napi_threadsafe_function 2022-05-05 21:35:08 -07:00
Jarred Sumner
b487eb7e13 Update napi.zig 2022-05-05 21:35:08 -07:00
Jarred Sumner
5d24f45ac1 Update napi.zig 2022-05-05 21:35:08 -07:00
Jarred Sumner
c1f65ef975 napi_get_dataview_info? 2022-05-05 21:35:08 -07:00
Jarred Sumner
d6ce585ef3 cleanup hook 2022-05-05 21:35:08 -07:00
Jarred Sumner
c80e048ab3 implement napi_async_work 2022-05-05 21:35:08 -07:00
Jarred Sumner
b6a8675658 typeof 2022-05-05 21:35:08 -07:00
Jarred Sumner
2c0c91e2d0 more 2022-05-05 21:35:08 -07:00
Jarred Sumner
6b97680224 Update napi.zig 2022-05-05 21:35:08 -07:00
Jarred Sumner
c76bebca0b more 2022-05-05 21:35:08 -07:00
Jarred Sumner
b534c4d661 More 2022-05-05 21:35:08 -07:00
Jarred Sumner
170d09b6bd More 2022-05-05 21:35:08 -07:00
Jarred Sumner
b4fc584d18 Even More NAPI 2022-05-05 21:35:08 -07:00
Jarred Sumner
5b2d9f8128 Begin napi 2022-05-05 21:35:08 -07:00
Jarred Sumner
d629cfafd6 E.String gets a Rope 2022-05-05 21:32:19 -07:00
Jarred Sumner
7b125c9731 Update README.md 2022-05-04 09:02:25 -07:00
Jarred Sumner
0e3df25526 specifically check utf8 2022-05-04 07:03:55 -07:00
Jarred Sumner
66e8d7346f make our http test run more 2022-05-04 07:03:46 -07:00
Jarred Sumner
d29dcf3680 Document FFIType.i64_fast 2022-05-04 07:03:38 -07:00
Jarred Sumner
164483c137 Update buffer.js 2022-05-04 07:03:22 -07:00
Jarred Sumner
6ab5ae8a7a Fix type errors 2022-05-04 00:33:42 -07:00
Jarred Sumner
5b760fe7c4 Safer i64/u64 2022-05-04 00:16:36 -07:00
Jarred Sumner
162e8911db Fix x64 build 2022-05-03 22:36:44 -07:00
Jarred Sumner
bea2cc9cbc Update Makefile 2022-05-03 21:36:22 -07:00
Jarred Sumner
ce2261dffa don't automatically run clang-format because it ignores the disable flag 2022-05-03 21:34:45 -07:00
Jarred Sumner
fa562fa56d Handle missing x64 symbols 2022-05-03 21:30:29 -07:00
Jarred Sumner
5bfd241167 Update tinycc 2022-05-03 20:49:57 -07:00
Jarred Sumner
5a85cc4386 [bun:ffi] fix panic in lib.close() 2022-05-03 20:19:33 -07:00
Jarred Sumner
ed4a021f85 Bump WebKit 2022-05-03 19:50:05 -07:00
Jarred Sumner
83c1d7c9ef Update add.rs 2022-05-03 08:03:06 -07:00
Jarred Sumner
de6aed65fb Forgot about base64 2022-05-03 04:42:17 -07:00
Jarred Sumner
57ce49654c wrong dir 2022-05-03 04:35:49 -07:00
Jarred Sumner
00bc2638ce Fix tinycc build on linux 2022-05-03 04:10:06 -07:00
Jarred Sumner
4605aff04a Fix webkit linux build 2022-05-03 04:09:23 -07:00
Jarred Sumner
d104c286c8 Update README.md 2022-05-03 03:41:43 -07:00
Jarred Sumner
16d5325874 Add tinycc dependency 2022-05-03 03:38:59 -07:00
Jarred Sumner
e3362a0fda clarify 2022-05-03 02:35:05 -07:00
Jarred Sumner
f0fdda5678 Update README.md 2022-05-03 02:28:26 -07:00
Jarred Sumner
bb2d67e361 Update README.md 2022-05-03 02:21:45 -07:00
Jarred Sumner
91e96a8da8 ffi overhead bench 2022-05-03 02:11:59 -07:00
Jarred Sumner
8b1924f6c2 Add docs for FFI 2022-05-03 01:25:46 -07:00
Jarred Sumner
c6d732eee2 [bun:ffi] Improve uint64_t and int64_t performance 2022-05-02 20:26:18 -07:00
Jarred Sumner
21ab47d9fe [bun:ffi] Support i64 and u64 2022-05-02 06:26:03 -07:00
Jarred Sumner
d70e92e79f [bun:ffi] Support double and float 2022-05-02 04:37:24 -07:00
Jarred Sumner
15466865e0 add a comment 2022-05-02 03:46:57 -07:00
Jarred Sumner
125a4c747b [bun:ffi] cleanup 2022-05-02 03:40:14 -07:00
Jarred Sumner
69668d49e5 [bun.js] Add Bun.nanoseconds() to report time in nanos 2022-05-02 03:36:26 -07:00
Jarred Sumner
5cee316d8c [bun:ffi] ~20% faster FFI bindings for functions with arguments 2022-05-02 03:23:42 -07:00
Jarred Sumner
98393ca849 Automatic CString support 2022-05-02 03:11:43 -07:00
Jarred Sumner
012564d738 [bun:ffi] Add wrapper for type coercion 2022-05-01 07:41:51 -07:00
Jarred Sumner
3403621fc2 wip Buffer.fill 2022-05-01 07:41:26 -07:00
Jarred Sumner
de23f2f8aa Buffer.compare & Buffer.equal 2022-05-01 04:36:17 -07:00
Jarred Sumner
b6aa988716 [bun.js] Improve Buffer creation perf a little 2022-05-01 03:43:52 -07:00
Jarred Sumner
a3b48b3229 [bun.js] Implement Buffer.concat 2022-05-01 02:22:13 -07:00
Jarred Sumner
d7ef268e18 Bump WebKit 2022-04-30 23:58:56 -07:00
Jarred Sumner
ba999c9ac3 cleanup 2022-04-30 23:58:46 -07:00
Jarred Sumner
92b27b338d [bun.js] Implement Buffer.from and Buffer.copy 2022-04-30 23:58:27 -07:00
Jarred Sumner
eb129d9f90 [bun ffi] Fix missing "void" 2022-04-30 23:56:41 -07:00
Jarred Sumner
5e270f9d77 [bun ffi] Remove dependency on libtcc1.a and improve error messages 2022-04-30 23:56:31 -07:00
Jarred Sumner
7e13d6cbfe wip 2022-04-30 08:35:48 -07:00
Jarred Sumner
7e6fe52c46 Update ffi-test.c 2022-04-30 05:57:25 -07:00
Jarred Sumner
893d245dca a 2022-04-30 05:56:46 -07:00
Jarred Sumner
516b54578d [bun:ffi] it works 2022-04-29 23:21:14 -07:00
Jarred Sumner
d49ba50289 [bun.js] Implement unsafe.{arrayBufferToPtr, arrayBufferFromPtr, bufferFromPtr} 2022-04-29 07:49:48 -07:00
Jarred Sumner
22f74756b4 [bun ffi] Support pointers 2022-04-29 06:08:36 -07:00
Jarred Sumner
f07463bdfd [bun ffi] support i32, i8, u8, u16, i16, u32, bool 2022-04-29 05:02:01 -07:00
Jarred Sumner
75374fdc32 more tests for buffer 2022-04-29 00:47:26 -07:00
Jarred Sumner
0332d47424 add more to buffer implementation 2022-04-29 00:47:26 -07:00
Jarred Sumner
d531d0851f ffi test code 2022-04-29 00:47:26 -07:00
Jarred Sumner
e26f96b748 wip 2022-04-29 00:47:26 -07:00
Jarred Sumner
8fa1c5ebf1 commit more 2022-04-29 00:47:26 -07:00
Jarred Sumner
ef18443b6e some tests but need more 2022-04-29 00:47:26 -07:00
Jarred Sumner
d066c7de30 Add JIT FFI 2022-04-29 00:47:26 -07:00
Jarred Sumner
fd56d0f116 more work on buffer 2022-04-28 06:56:28 -07:00
Jarred Sumner
77fbfb3fbb Most of Buffer.toString 2022-04-26 01:12:28 -07:00
Jarred Sumner
6590d1f8bf 2x - 10x faster TextEncoder & TextDecoder 2022-04-25 19:58:57 -07:00
Jarred Sumner
2d39e44520 Update .gitignore 2022-04-25 16:47:33 -07:00
Jarred Sumner
2c6e5c3fc4 some of buffer 2022-04-25 07:09:18 -07:00
Jarred Sumner
4b4df5095e Update Makefile 2022-04-23 04:12:39 -07:00
Jarred Sumner
1c11dc6630 Update Dockerfile.base 2022-04-23 03:33:21 -07:00
Jarred Sumner
2eb3319351 Bump build 2022-04-23 03:15:35 -07:00
Jarred Sumner
683b171c3f 📷 2022-04-23 03:15:27 -07:00
Jarred Sumner
ea241fcec7 [JS Parser] Fix overly-eager CJS -> ESM transform 2022-04-23 03:15:13 -07:00
Lawrence Chen
ab1d83fe8d Add bun run ${script-name} clarification (#151) 2022-04-21 00:55:15 -07:00
Jarred Sumner
5e739acfbb [misc] Fix broken build on macOS 2022-04-20 23:46:11 -07:00
Jarred Sumner
a4b8fccfa7 [misc] explain why wasm isn't released yet 2022-04-18 21:56:20 -07:00
Jarred Sumner
9822ea96b8 [misc] Recommend VSCode extensions 2022-04-18 21:44:31 -07:00
Jarred Sumner
94db83040e [misc] Set editor.formatOnSave 2022-04-18 21:44:31 -07:00
wangao
12f97f1364 [node] Remove constants definition in (#146)
... fs.exports.js

Bug: #130
2022-04-18 21:26:06 -07:00
wangao
0aacddb971 [timer] Remove timer.zig and use system_timer.zig (#149) 2022-04-18 21:25:53 -07:00
wangao
7e866bb441 [build] Fix Dockerfile COPY slash (#147) 2022-04-18 21:19:03 -07:00
Jarred Sumner
c2cf1d6493 not sure yet 2022-04-18 21:18:37 -07:00
Jarred Sumner
612fad706f fix wasm build take 2 (one more thing is broken) 2022-04-18 20:51:10 -07:00
Jarred Sumner
6728551dc4 Fix wasm build 2022-04-18 17:41:58 -07:00
wangao
64a2dda02f [node] Add more fs constants (#144)
Move fs constants to node_fs_constants.zig,
and we static append the constants definition
to fs.export.js.

Issue: #130
2022-04-18 06:14:21 -07:00
Jarred Sumner
8d28e72e8a Move some code around + delete dead code 2022-04-16 17:33:16 -07:00
Jarred Sumner
0137e5cf94 [JS Parser] Support explicit removing 2022-04-16 09:29:10 -07:00
Jarred Sumner
89ca887ea0 Workaround C ABI bug 2022-04-16 05:32:57 -07:00
Jarred Sumner
42414d5667 [JS Parser] API for removing & replacing exports 2022-04-16 04:36:00 -07:00
Jarred Sumner
8bb283e616 Update README.md 2022-04-15 16:54:58 -07:00
Jarred Sumner
32e2345e53 Document how tests work 2022-04-15 16:50:38 -07:00
Jarred Sumner
9e31602a20 Update css_scanner.zig 2022-04-14 00:39:55 -07:00
Jarred Sumner
5d0be616b7 add some more assertions 2022-04-13 21:58:28 -07:00
Jarred Sumner
e7251c0d55 [css] Fix crash on empty files in some cases 2022-04-13 21:55:42 -07:00
Jarred Sumner
1871bbc6a4 Add sha hashing example 2022-04-13 21:46:02 -07:00
Jarred Sumner
add1c91425 Warn about moduleSuffixes 2022-04-13 21:46:02 -07:00
Jarred Sumner
1788503892 [bun dev] Fix CSS HMR bug 2022-04-13 21:46:02 -07:00
evan
95aa76b9fa expose mmap size and offset option (#141)
* expose mmap size and offset option

* fix panics
2022-04-13 19:08:56 -07:00
Jarred Sumner
95101870e4 better to fix it there 2022-04-13 18:53:53 -07:00
Jarred Sumner
f2c21b7733 [bun.js] Fix bug with readdirSync on folders with less than 32 files
Closes https://github.com/Jarred-Sumner/bun/issues/143
2022-04-13 18:48:09 -07:00
Jarred Sumner
d273948f16 Update bun.d.ts 2022-04-13 05:07:33 -07:00
Jarred Sumner
bb79687f8e Even More Comments 2022-04-13 04:44:05 -07:00
Jarred Sumner
3db3057d42 Support digest("base64" | "hex") in the hashings 2022-04-13 04:20:05 -07:00
Jarred Sumner
f6d73cb06e [bun.js] Implement Bun.sha1, Bun.sha256, Bun.sha384, Bun.sha512, Bun.sha512_384 2022-04-12 22:59:52 -07:00
evan
b3522b2feb add depth limit to .gitmodules (#142)
fixes situations where git client automatically downloads all submodules without depth limit
2022-04-12 18:30:03 -07:00
Jarred Sumner
710edd34d2 maybe this fixes it? 2022-04-12 04:53:47 -07:00
Jarred Sumner
743ad44c0a Make sendfile more reliable 2022-04-12 03:46:21 -07:00
Jarred Sumner
9db701ab41 wip fixes to sendfile() blocking 2022-04-12 00:43:23 -07:00
Jarred Sumner
a0f9a6ed60 Add a very simple http server test 2022-04-11 19:10:06 -07:00
Jarred Sumner
1d79703d24 slight perf improvement to concurrently queueing tasks 2022-04-11 19:09:14 -07:00
Jarred Sumner
f357377de9 always tick the event loop 2022-04-11 19:08:51 -07:00
Jarred Sumner
87adeb61c5 isize is a little faster normally 2022-04-11 19:05:09 -07:00
Jarred Sumner
e6a5cab1d2 Fix readme link 2022-04-11 16:53:30 -07:00
Jarred Sumner
9884a5fe14 Update http-stop.ts 2022-04-11 05:59:39 -07:00
Jarred Sumner
55ff561429 Add example for stopping HTTP server 2022-04-11 05:20:44 -07:00
Jarred Sumner
4708dd26ca work around fetch("localhost") bug 2022-04-11 05:17:02 -07:00
Jarred Sumner
3e969244ac [bun.js] Add a Server.stop function 2022-04-11 04:58:29 -07:00
Jarred Sumner
ac3835227e Update comptime_string_map.zig 2022-04-11 01:44:25 -07:00
Jarred Sumner
c6393bcd27 ✂️ dead code 2022-04-11 01:44:22 -07:00
Jarred Sumner
7d164ad8c7 Update globals.d.ts 2022-04-10 19:48:44 -07:00
Jarred Sumner
3abb72037b [bun-types] Document JavaScriptCore's ES Module loader 2022-04-10 19:46:05 -07:00
Jarred Sumner
34c478a4c4 make checking for bun modules a compile time step 2022-04-10 19:45:43 -07:00
Jarred Sumner
98592fb85d [TOML] Fix toml parsing with multiple keys in object literal
Fixes https://github.com/Jarred-Sumner/bun/issues/140
2022-04-10 17:41:48 -07:00
Jarred Sumner
6edf0289ed Fix type errors 2022-04-10 05:23:02 -07:00
Jarred Sumner
faedbf0a61 Update bun.d.ts 2022-04-10 05:16:06 -07:00
Jarred Sumner
b08d3b2cd6 Update linker.zig 2022-04-10 05:02:14 -07:00
Jarred Sumner
1e810d229e Fix tests 2022-04-10 04:57:51 -07:00
Jarred Sumner
a82c486878 fix linux build 2022-04-10 04:35:40 -07:00
Jarred Sumner
d42ae4824b Update Makefile 2022-04-10 04:34:06 -07:00
Jarred Sumner
b1ebe54456 [bun.js] Support a "bun" import 2022-04-10 04:30:31 -07:00
Jarred Sumner
ac76e3b004 Move some types around 2022-04-10 04:30:09 -07:00
Jarred Sumner
43b18663fd [bun] fix bun bun --platform=bun 2022-04-10 04:24:53 -07:00
Jarred Sumner
45e1fc946d [bun-types] Make it bundle the types 2022-04-10 04:24:24 -07:00
Jarred Sumner
65eb232028 Bump 2022-04-09 22:18:32 -07:00
Jarred Sumner
7cd3d13011 [fs] Add missing isFile and isDirectory functions to stat() 2022-04-09 21:45:46 -07:00
Jarred Sumner
764fb63617 Update transpiler.test.js 2022-04-09 20:26:02 -07:00
Jarred Sumner
4de7978b27 [JS Parser] Fix code simplification bug with ! and unary expressions 2022-04-09 20:23:36 -07:00
Jarred Sumner
696bb3b026 stricter boolean check 2022-04-09 20:06:58 -07:00
Jarred Sumner
fb82e2bf86 Update build-id 2022-04-08 23:47:10 -07:00
Jarred Sumner
403a916bd5 [bun-framework-next] Fix missing scripts 2022-04-08 23:43:41 -07:00
Jarred Sumner
20cdb197e2 Fix Next.js stylesheet bug 2022-04-08 23:16:13 -07:00
Jarred Sumner
1f68b8ada0 remove some code bloat 2022-04-08 16:55:58 -07:00
Jarred Sumner
fdfbf16940 Update watcher.zig 2022-04-08 16:54:20 -07:00
Jarred Sumner
12c2659765 [bun dev] Fix race condition in file watcher 2022-04-08 16:45:24 -07:00
Jarred Sumner
8561dcdee4 Immediately inject fast refresh once 2022-04-08 16:44:08 -07:00
Jarred Sumner
ded2bcfda5 Update README.md 2022-04-08 06:32:34 -07:00
Jarred Sumner
d5173f71d4 Update README.md 2022-04-08 06:32:29 -07:00
Jarred Sumner
61ca99cfd9 Update README.md 2022-04-08 06:32:24 -07:00
Jarred Sumner
862155fa5e I think fix hmr regression? 2022-04-08 06:32:12 -07:00
Jarred Sumner
74309a1f9e Fix hardlink fallback 2022-04-08 06:32:03 -07:00
Jarred Sumner
8cdb55d94f partial fix for the sendfile() bug 2022-04-08 06:31:14 -07:00
Jarred Sumner
489299cdcc Update README.md 2022-04-08 04:36:51 -07:00
Jarred Sumner
b744634141 Update README.md 2022-04-08 04:35:20 -07:00
Jarred Sumner
a8789fc858 Update README.md 2022-04-08 04:25:52 -07:00
Jarred Sumner
14def643f7 Outdated 2022-04-07 22:39:46 -07:00
Jarred Sumner
a3398650b5 Update README.md 2022-04-07 22:14:15 -07:00
Jarred Sumner
65daaf332d Update README.md 2022-04-07 22:09:17 -07:00
Jarred Sumner
63995da2c2 example 2022-04-07 22:07:24 -07:00
Jarred Sumner
f3b118d0ad Update README.md 2022-04-07 21:48:00 -07:00
Jarred Sumner
f01a2a3360 Fix some mime types to match expectations 2022-04-07 21:47:27 -07:00
Jarred Sumner
a0566f0fbe Update README.md 2022-04-07 21:44:40 -07:00
Jarred Sumner
4b8425938a Update README.md 2022-04-07 21:37:44 -07:00
Jarred Sumner
8fa3536aba Update README.md 2022-04-07 21:34:02 -07:00
Jarred Sumner
10712a790a Update README.md 2022-04-07 21:18:26 -07:00
Jarred Sumner
9cd148de7d Update README.md 2022-04-07 20:35:05 -07:00
Jarred Sumner
9b1d4e1a45 Update README.md 2022-04-07 20:34:35 -07:00
Jarred Sumner
b089f1adae Update README.md 2022-04-07 20:32:44 -07:00
Jarred Sumner
76d54c572a Update README.md 2022-04-07 20:25:57 -07:00
Jarred Sumner
7d25dae75e Update package.json 2022-04-07 20:24:05 -07:00
Jarred Sumner
282eaef435 Update README.md 2022-04-07 20:24:02 -07:00
Jarred Sumner
80dcd30b48 Update README.md 2022-04-07 20:04:35 -07:00
Jarred Sumner
76e04ad82b Update README.md 2022-04-07 20:04:20 -07:00
Jarred Sumner
afa0d4f3a3 Update README.md 2022-04-07 20:00:51 -07:00
Jarred Sumner
e21a65fd05 Update README.md 2022-04-07 19:31:59 -07:00
Jarred Sumner
295249cf08 📷 2022-04-07 19:29:18 -07:00
Jarred Sumner
91fb170c4a Update html-rewriter.ts 2022-04-07 19:29:01 -07:00
Jarred Sumner
0878659513 Update runtime.version 2022-04-07 06:27:50 -07:00
Jarred Sumner
69cebbfca2 Update http-file.ts 2022-04-07 06:26:28 -07:00
Jarred Sumner
3c4510573e Update build-id 2022-04-07 06:26:15 -07:00
Jarred Sumner
4285d8ec0b Update ZigGlobalObject.cpp 2022-04-07 06:25:58 -07:00
Jarred Sumner
c2a8c10834 Update mimalloc 2022-04-07 06:22:51 -07:00
Jarred Sumner
4e05fd0541 [bun.js] Add baseURI support to HTTP server 2022-04-07 06:22:42 -07:00
Jarred Sumner
b97e81b27f More types 2022-04-07 06:08:48 -07:00
Jarred Sumner
e08cc968cb add GC output constraints
I don't fully understand what this does

but it sounds good!
2022-04-07 01:57:45 -07:00
Jarred Sumner
9bee40813f Update Makefile 2022-04-06 23:38:41 -07:00
Jarred Sumner
5ac6920591 7 hrs 2022-04-06 23:38:37 -07:00
Jarred Sumner
70b1beb18b Update hmr.ts 2022-04-06 23:38:32 -07:00
Jarred Sumner
964aa40612 Update runtime.zig 2022-04-06 23:36:30 -07:00
Jarred Sumner
7e58c7e89a Make Bun.activate run earlier so we catch errors sooner 2022-04-06 23:36:26 -07:00
Jarred Sumner
3db549fdb5 Update build-id 2022-04-06 06:17:24 -07:00
Jarred Sumner
87401392ba Update client.development.tsx 2022-04-06 06:15:21 -07:00
Jarred Sumner
795c172d9e Support newer next 2022-04-06 06:15:18 -07:00
Jarred Sumner
cfe60996c2 [bun.js] Support React Refresh 0.12.0 2022-04-06 06:14:49 -07:00
Jarred Sumner
da3f131185 Update javascript.zig 2022-04-06 06:14:36 -07:00
Jarred Sumner
ac06ce2160 [bun.js][breaking] import.meta.url is now a file:// url 2022-04-06 06:14:29 -07:00
Jarred Sumner
69653729f0 tweak examples 2022-04-06 06:14:04 -07:00
Jarred SUmner
81eb47de0e [bun.js] Add stdout, stderr, stdin to Bun and support sendfile() + splice() 2022-04-06 01:53:05 -07:00
Jarred Sumner
57cf035a73 Fix ssl example 2022-04-05 19:32:52 -07:00
Jarred Sumner
ddaab5a836 fix example 2022-04-05 19:15:58 -07:00
Jarred Sumner
f97e6d04a7 wip 2022-04-05 06:51:45 -07:00
Jarred Sumner
daeede28db [bun dev] Fix segfaults 2022-04-05 06:38:36 -07:00
Jarred Sumner
70f9294e15 [bun:error] Fix exception 2022-04-05 06:36:19 -07:00
Jarred Sumner
2c0e8e0a99 Add update message 2022-04-05 03:51:24 -07:00
Jarred Sumner
7f4b1a5797 cmake does not like emit-llvm 2022-04-05 03:39:52 -07:00
Jarred Sumner
138ee2803d Update Makefile 2022-04-05 03:37:38 -07:00
Jarred Sumner
c9fee3bd04 tweak some flags 2022-04-05 03:35:59 -07:00
Jarred Sumner
db5951337e Fix stat() on x64 2022-04-05 01:52:48 -07:00
Jarred Sumner
d652e87473 fix binary size regression on linux 2022-04-05 00:40:49 -07:00
Zakiego
57eac42a91 docs: fix wrong #bun-create reference in readme (#136) 2022-04-05 00:24:14 -07:00
Jarred Sumner
d61f877a94 Update response.zig 2022-04-05 00:20:43 -07:00
Jarred Sumner
7eb575d7f8 Update response.zig 2022-04-05 00:19:54 -07:00
Jarred Sumner
8e5eda79de Update Makefile 2022-04-05 00:18:58 -07:00
Jarred Sumner
82051a5f22 Update http-file.ts 2022-04-05 00:17:57 -07:00
Jarred SUmner
17b9167e52 Fix linking bug? 2022-04-05 00:01:54 -07:00
Jarred SUmner
30542225c6 fix bug with io sometimes sleeping permanetly 2022-04-04 23:25:54 -07:00
Jarred Sumner
759b6c18fd Update Makefile 2022-04-04 08:45:49 -07:00
Jarred Sumner
0e1941ce21 ughh 2022-04-04 08:44:44 -07:00
Jarred Sumner
039fb0732c Update syscall.zig 2022-04-04 08:31:02 -07:00
Jarred Sumner
6c91aa6e51 Update syscall.zig 2022-04-04 08:22:51 -07:00
Jarred Sumner
2eed081b50 hm 2022-04-04 08:14:52 -07:00
Jarred Sumner
7551041fa1 Update Dockerfile.base 2022-04-04 07:57:58 -07:00
Jarred Sumner
41a97c5bf9 fixup 2022-04-04 07:39:39 -07:00
Jarred Sumner
20ed1c32d3 Update Makefile 2022-04-04 07:33:38 -07:00
Jarred Sumner
969cf9fd48 Update Makefile 2022-04-04 07:28:49 -07:00
Jarred Sumner
d29930db3a Update Makefile 2022-04-04 07:24:20 -07:00
Jarred Sumner
015333de8c Update Makefile 2022-04-04 07:22:29 -07:00
Jarred Sumner
89b9d167d1 Update Makefile 2022-04-04 07:17:40 -07:00
Jarred Sumner
2693a3beff Remove unused function 2022-04-04 07:15:03 -07:00
Jarred Sumner
feb315cf9c Update Dockerfile 2022-04-04 07:10:39 -07:00
Jarred Sumner
779e5ccc16 Add zlib for uws 2022-04-04 07:07:39 -07:00
Jarred Sumner
7b19de97d4 Update Dockerfile 2022-04-04 07:05:33 -07:00
Jarred Sumner
5d71d0a0b4 Update Makefile 2022-04-04 07:02:43 -07:00
Jarred Sumner
42b47fe4d9 Update Dockerfile 2022-04-04 07:01:26 -07:00
Jarred Sumner
5a9e381d84 Fix missing 2022-04-04 06:59:34 -07:00
Jarred Sumner
f4e118e40a Update response.zig 2022-04-04 06:54:10 -07:00
Jarred Sumner
071d4c155b Update Dockerfile 2022-04-04 06:51:53 -07:00
Jarred Sumner
044f23739c Update tsconfig.json 2022-04-04 06:38:12 -07:00
Jarred Sumner
05a4991a5f Update launch.json 2022-04-04 06:38:09 -07:00
Jarred Sumner
078ceb7168 Update http-file.ts 2022-04-04 06:37:46 -07:00
Jarred Sumner
9554dd1c33 fix https 2022-04-04 06:37:39 -07:00
Jarred Sumner
7fd12ca3ae Update bun.d.ts 2022-04-04 06:29:46 -07:00
Jarred Sumner
e84494b0e0 Fix error in bun:error 2022-04-04 06:22:48 -07:00
Jarred Sumner
afc7da33c9 Add a couple more tests 2022-04-04 01:07:38 -07:00
Jarred Sumner
d820a9890f Make Bun.file() -> HTMLRewriter -> HTTP response work 2022-04-04 01:04:14 -07:00
Jarred Sumner
a9f0d334bb [bun] Don't allow Transfer-Encoding header 2022-04-04 00:58:26 -07:00
Jarred Sumner
cee3783e58 [bun.js] Improve error message for HTTP server 2022-04-04 00:58:12 -07:00
Jarred Sumner
fceb88005d [bun.js] Support truncating file length up to u52 2022-04-04 00:34:57 -07:00
Jarred Sumner
e3c888a7cc Add HTMLRewriter proxy example 2022-04-03 22:24:59 -07:00
Jarred Sumner
25267397f6 pico headers are now mutable 2022-04-03 22:24:09 -07:00
Jarred Sumner
931e461c87 deref after null 2022-04-03 22:24:02 -07:00
Jarred Sumner
409758dd11 [bun.js] If no Content-Type is available and the content is all ascii text, assume it is text/plain 2022-04-03 22:23:22 -07:00
Jarred Sumner
cd28c3ca83 Omit the Content-Encoding header when it was auto decompressed 2022-04-03 22:22:22 -07:00
Jarred Sumner
25533b9e08 Don't track gzip timing unless verbose mode 2022-04-03 22:21:34 -07:00
Jarred Sumner
be70e08671 [bun error] Handle error messages with missing name/message better 2022-04-03 21:28:45 -07:00
Jarred Sumner
480d4b98c7 Update server.zig 2022-04-03 21:26:07 -07:00
Jarred Sumner
3b7e421eaf Support HTMLRewriter in http server 2022-04-03 21:25:16 -07:00
Jarred Sumner
b069ff253e Handle when unable to use sendfile() with Bun.file 2022-04-03 21:23:10 -07:00
Jarred Sumner
abc15f4d30 Add ShadowRealm and Bun.hash 2022-04-03 17:40:24 -07:00
Jarred Sumner
70bb8bda23 Fix the types 2022-04-03 17:24:26 -07:00
Jarred Sumner
665acdb170 Update runtime.version 2022-04-03 16:35:12 -07:00
Jarred Sumner
27ad502119 cleanup a few things 2022-04-03 16:35:09 -07:00
Jarred Sumner
e8b2af1eae doesn't fix the bug but helps a little 2022-04-03 16:34:38 -07:00
Jarred Sumner
4d718931be More types 2022-04-02 21:56:21 -07:00
Jarred Sumner
290166adb0 Add more typings 2022-04-02 18:54:31 -07:00
Jarred Sumner
c2ed8d0240 Add more tests for Node FS 2022-04-02 05:14:13 -07:00
Jarred Sumner
51e5d3ea70 [bun.js] fs.readSync & fs.writeSync should return just the number 2022-04-02 05:13:42 -07:00
Jarred Sumner
c73fcb0731 [bun.js] Support mode and flags as integer args in fs.openSync (instead of only object) 2022-04-02 05:12:43 -07:00
Jarred Sumner
e6b70c3e01 Update base.zig 2022-04-02 05:12:01 -07:00
Jarred Sumner
614f64ba82 Fix GC bug when reading TypedArray from user input 2022-04-02 05:11:57 -07:00
Jarred Sumner
b8263d0975 s/Buffer/TypedArray 2022-04-02 05:11:16 -07:00
Jarred Sumner
95d68b26a6 Fix mmap on macOS x64 2022-04-02 02:17:22 -07:00
Jarred Sumner
db39c8e109 Create gc.js 2022-04-02 00:49:27 -07:00
Jarred Sumner
449c248f08 Fix test failures 2022-04-02 00:29:48 -07:00
Jarred Sumner
66c5a941b3 More aggressive GC 2022-04-02 00:29:26 -07:00
Jarred Sumner
4592b1ccb5 [bun.js] Bring back file resolution 2022-04-01 23:39:05 -07:00
Jarred Sumner
9bfd1801aa [bun.js] slightly more careful write() 2022-04-01 23:38:35 -07:00
Jarred Sumner
b099e7232f Decrement task counter 2022-04-01 23:36:48 -07:00
Jarred Sumner
c657c7b846 Add helper for checking if value is an exception 2022-04-01 23:36:14 -07:00
Jarred Sumner
eaf09310cd deinit 2022-04-01 23:35:57 -07:00
Jarred Sumner
fffb69ce61 [bun.js] Fix double free in Blob 2022-04-01 22:54:22 -07:00
Jarred Sumner
5c989c957a Add abstraction for protecting values we're iterating on 2022-04-01 19:54:02 -07:00
Jarred Sumner
8af0764b3b Update response.zig 2022-04-01 19:53:41 -07:00
Jarred Sumner
c7727b136b [bun.js] Fix use-after-free in Bun.write 2022-04-01 19:53:37 -07:00
Jarred Sumner
7a6b6639bc Test written length 2022-04-01 19:53:17 -07:00
Jarred Sumner
08bf4694ca http file example 2022-04-01 19:53:02 -07:00
Jarred Sumner
60cc51379d Fix sendfile() after changes to blob 2022-04-01 19:52:53 -07:00
Jarred Sumner
e035084e49 Fix mimetype value 2022-04-01 19:50:38 -07:00
Jarred Sumner
bed878f290 Make FetchHeaders work 2022-04-01 17:08:15 -07:00
Jarred Sumner
0066d162cb [bun.js] Expose ErrorEvent 2022-04-01 04:04:14 -07:00
Jarred Sumner
e0011fd6ba [bun.js] Use Headers from WebKit instead of custom 2022-04-01 01:17:36 -07:00
Jarred Sumner
8e0ee052eb Update WebKit 2022-03-31 05:20:30 -07:00
Jarred Sumner
3207ae5570 Delete unused 2022-03-31 05:10:05 -07:00
Jarred Sumner
996c1468fa Allow a little leeway when HMR 2022-03-31 05:08:40 -07:00
Jarred Sumner
fe973a5ab0 Fix more infinite loops 2022-03-31 05:08:21 -07:00
Jarred Sumner
4f13208547 Bugfixes to how we build WebCore code 2022-03-31 05:07:18 -07:00
Jarred Sumner
5fa5df02f5 [bun dev] Re-create the shared buffer for each websocket 2022-03-31 04:57:03 -07:00
Jarred Sumner
89cd35f07f [bun dev] Improve HMR reliability when filesystem is slow or reading large files 2022-03-31 04:55:47 -07:00
Jarred Sumner
7b2ab994e5 Fix possible infinite loops 2022-03-31 04:29:40 -07:00
Jarred Sumner
1f77f2102e Update bindings.cpp 2022-03-30 20:50:19 -07:00
Jarred Sumner
ab7183217a [bun.js] Support file:// URLs in node fs 2022-03-30 20:50:12 -07:00
Jarred Sumner
47a9a452d8 Bump target next version to 12.1.3 2022-03-30 18:58:07 -07:00
Jarred Sumner
b3fa316c5e Add test for Bun.hash that runs it with a Uint8Array 2022-03-30 18:57:34 -07:00
Jarred Sumner
b09a22aaf5 Add bun.hash example 2022-03-30 18:57:08 -07:00
Jarred Sumner
ba3a7c2bcf don't append null bytes 2022-03-30 18:56:30 -07:00
Jarred Sumner
7539e5b72c remove empty files 2022-03-30 18:56:18 -07:00
Jarred Sumner
4dedb51a23 [bun.js] Fix import.meta.resolve when the path points to a bundled file 2022-03-30 18:56:07 -07:00
Jarred Sumner
3e8d669398 [Bun.js] fixup Bun.hash 2022-03-30 18:55:49 -07:00
Jarred Sumner
c4c94731e1 [bun-framework-next] Support Next 12.1.3 & React 18 2022-03-30 18:54:52 -07:00
Jarred Sumner
e2f5a742ca [bun-framework-next] Remove unnecessary polyfills 2022-03-30 18:54:24 -07:00
Jarred Sumner
c5538cfe10 Don't need to import react here 2022-03-30 15:46:12 -07:00
Jarred Sumner
d96dcfc398 Delete url.zig 2022-03-28 20:43:58 -07:00
Jarred Sumner
88ea61cfca [bun.js] Add Bun.hash 2022-03-28 20:43:53 -07:00
Jarred Sumner
2e4b5f3037 CustomEvent 2022-03-28 07:19:34 -07:00
Jarred Sumner
e577e753a5 ScriptExecutionContext 2022-03-28 06:35:28 -07:00
Jarred Sumner
04b5e87f42 [bun.js] Add Event, EventTarget, AbortController, AbortSignal
`AbortController` is not yet aware of `fetch`
2022-03-28 06:35:14 -07:00
Jarred Sumner
7a97f62c72 Safer error handling 2022-03-27 23:48:22 -07:00
Jarred Sumner
8bbcb5006e [Bun.js] Add DOMException 2022-03-27 23:44:21 -07:00
Jarred Sumner
4f4c446bc4 No to FormData for now 2022-03-27 23:44:10 -07:00
Jarred Sumner
b5bf409384 Update WebKit 2022-03-27 22:38:08 -07:00
Jarred Sumner
3fb96b9039 Update base.zig 2022-03-27 22:38:06 -07:00
Jarred Sumner
e3866b77fe Update .clang-format 2022-03-27 22:38:01 -07:00
Jarred Sumner
c321ddfa9b Update Makefile 2022-03-27 22:37:59 -07:00
Jarred Sumner
ed4f4ae4e2 Begin adding WebCore classes to bun 2022-03-27 22:37:55 -07:00
Jarred Sumner
4bf5dc1df9 Add Bun.mmap example 2022-03-27 16:21:59 -07:00
Jarred Sumner
b6a3a655ae Create tsconfig.json 2022-03-27 02:45:30 -07:00
Jarred Sumner
4df62a67e7 Create url.test.ts 2022-03-27 02:45:30 -07:00
Jarred Sumner
3cfafb6dc4 Update segfault.js 2022-03-27 02:45:30 -07:00
Jarred Sumner
0651f195dd Fix broken debugger in C++ code 2022-03-27 02:45:30 -07:00
Jarred Sumner
309350e74c [bun.js] begin the webkit-ing 2022-03-27 02:45:30 -07:00
evan
0132b7164e Bun.mmap() (#134)
* Bun.mmap()

* nitpicks
2022-03-27 02:38:39 -07:00
Jarred Sumner
2fc881540b Add a function for moving slices from a type 2022-03-26 20:35:56 -07:00
Jarred Sumner
29a759a655 improve performance of accessing Bun.Transpiler and Bun.unsafe 2022-03-26 20:35:37 -07:00
Jarred Sumner
b54a51adb9 fix instanceof checks for classes 2022-03-26 15:12:10 -07:00
Jarred Sumner
0b222c2bb0 Update syscall.zig 2022-03-26 15:11:15 -07:00
Jarred Sumner
c49d46b6af clarify 2022-03-26 14:14:10 -07:00
Jarred Sumner
ceefcfcbb7 Update uws 2022-03-26 14:05:58 -07:00
Jarred Sumner
75138577cd Create htttp.ts 2022-03-26 03:49:44 -07:00
Jarred Sumner
889ce65974 Fix the entry point for Bun.serve 2022-03-26 03:40:54 -07:00
Jarred Sumner
42bda98db7 slightly optimize how we create the process object 2022-03-26 03:40:17 -07:00
Jarred Sumner
5f482b4565 Auto-set content-type 2022-03-26 03:39:32 -07:00
Jarred Sumner
89af1474d8 Fix clonefile() so it actually does run 2022-03-26 03:39:25 -07:00
Jarred Sumner
690d22c8b6 Remove imports of <WTF/FileSystem.h> 2022-03-26 03:39:04 -07:00
Jarred Sumner
dc4cc070fc Move .d.ts into a better folder 2022-03-26 03:38:51 -07:00
Jarred Sumner
7d84dca254 Update response.file.test.js 2022-03-25 07:27:15 -07:00
Jarred Sumner
322780f649 fix error hanlding 2022-03-25 07:27:12 -07:00
Jarred Sumner
e3fb88b06a [bun.js] configuration and error handling for HTTP server 2022-03-25 07:12:02 -07:00
Jarred Sumner
be5789fe01 Auto-detect MimeType based on file extension 2022-03-24 22:29:05 -07:00
Jarred Sumner
120b2670da Bun.openInEditor 2022-03-24 21:10:53 -07:00
Jarred Sumner
a5027d46ae Update Makefile 2022-03-24 19:08:22 -07:00
Jarred Sumner
3434b9ecf3 Implement error page for HTTP server 2022-03-24 19:08:20 -07:00
Jarred Sumner
92a46c292f clang-format 2022-03-24 19:06:27 -07:00
Jarred Sumner
142cce2f29 Update response.zig 2022-03-24 18:23:01 -07:00
Jarred Sumner
d83aa176a3 [bun.js] Enable SharedArrayBuffer and expose internal Loader 2022-03-24 18:22:52 -07:00
Jarred Sumner
f105a2fea7 handle bodies of 0 length better 2022-03-23 22:53:22 -07:00
Jarred Sumner
6d230fc93e Update server.zig 2022-03-23 21:55:24 -07:00
Jarred Sumner
b5cc5ca669 Implement Request body support! 2022-03-23 21:53:29 -07:00
Jarred Sumner
dead6e3afc Support Request.headers and Request.url in http server 2022-03-23 19:54:13 -07:00
Jarred Sumner
dc3d0c41fe Update Makefile 2022-03-23 17:22:37 -07:00
Jarred Sumner
30bdaf80ef ✂️ test 2022-03-23 04:26:56 -07:00
Jarred Sumner
07d77c1e00 [bun.js] Bun.write for macOS 2022-03-23 04:26:49 -07:00
Jarred SUmner
5e5f0bd293 [bun.js] Implement Bun.write() 2022-03-23 01:46:47 -07:00
Jarred SUmner
9974142eef Handle integer sizes greater than i32 2022-03-22 04:44:39 -07:00
Jarred SUmner
6e9be9f1cc Linux-specific tweaks 2022-03-22 02:55:28 -07:00
Jarred Sumner
b1389f1b02 Response.file -> Bun.file 2022-03-22 00:24:34 -07:00
Jarred Sumner
b3bd413c3b sendfile works 2022-03-21 21:31:47 -07:00
Jarred Sumner
7cd93e6670 [bun.js] 2/? Implement Response.file, sendfile edition 2022-03-21 06:32:14 -07:00
Jarred Sumner
fa343fa8ad [bun.js] 1/? Implement Response.file 2022-03-21 02:21:51 -07:00
Jarred Sumner
1f93de264f Create uws 2022-03-20 06:36:26 -07:00
Jarred Sumner
735f4b5c38 Update fetch.test.js 2022-03-20 06:34:13 -07:00
Jarred Sumner
2509613bbe microptimize 2022-03-20 06:34:05 -07:00
Jarred Sumner
0b5a8057f2 add new module 2022-03-20 04:38:41 -07:00
Jarred Sumner
b0a397280e it's status, not statusCode 2022-03-20 04:38:18 -07:00
Jarred Sumner
bc85dd2330 the events, they loop 2022-03-20 04:38:04 -07:00
Jarred Sumner
a6b128590d 📷 2022-03-20 04:31:35 -07:00
Jarred Sumner
8313f19eb8 Bun.allocUnsafe 2022-03-19 07:47:30 -07:00
Jarred Sumner
be99967d67 no lazy 2022-03-19 00:49:14 -07:00
Jarred Sumner
f787976bca [bun.js] Improve support for bundling for node.js 2022-03-19 00:49:01 -07:00
Jarred Sumner
af327cc4f1 [bun bun] Fix race condition 2022-03-19 00:48:37 -07:00
Jarred Sumner
ce742f665a generate separate interop code for bun 2022-03-19 00:46:24 -07:00
Jarred Sumner
521ccba387 recommend bun install 2022-03-19 00:45:40 -07:00
Jarred Sumner
b8c50936a6 [JS Printer] Fix bug with printing imports for bundled code 2022-03-19 00:45:17 -07:00
Jarred Sumner
c1e8f3b593 [bun bun] don't load the bundle when bundling 2022-03-19 00:44:53 -07:00
Jarred Sumner
0134c14ebf Remove relative_nodejs import path format 2022-03-19 00:12:55 -07:00
Jarred Sumner
d87ea9c88a Fix JSON parsing failure 2022-03-18 20:54:09 -07:00
Jarred Sumner
7dc76bf709 Set charset=utf-8 for better consistentcy 2022-03-18 20:18:58 -07:00
Jarred Sumner
20ec3d9bbd Update bindings.zig 2022-03-18 20:06:25 -07:00
Jarred Sumner
0ed0fd2db0 add an extra gcTrace 2022-03-18 20:06:14 -07:00
Jarred Sumner
f4eecd3782 Add tests for Response.json, Response.error, and Response.redirect 2022-03-18 20:05:56 -07:00
Jarred Sumner
2e920aaac3 [bun.js] Implement Response.error 2022-03-18 20:05:38 -07:00
Jarred Sumner
216300f2b5 [bun.js] Implement Response.redirect 2022-03-18 20:05:31 -07:00
Jarred Sumner
394ec8dcbc [bun.js] Implement Response.json 2022-03-18 20:05:21 -07:00
Jarred Sumner
dcb437b1ad [bun.js] Response.prototype.type 2022-03-18 20:04:57 -07:00
Jarred Sumner
1be9e3cf2d handle ShadowRealm 2022-03-18 20:04:33 -07:00
Jarred Sumner
6b82b67065 var -> const 2022-03-18 20:04:24 -07:00
Jarred Sumner
d21cfe6202 [bun install] Do not set an $npm_config_prefix 2022-03-18 16:04:23 -07:00
Jarred Sumner
88698bc998 Be consistent about reported node version 2022-03-18 15:56:18 -07:00
Jarred Sumner
475304c3f5 [bun run] fix missing space 2022-03-18 15:55:33 -07:00
Jarred Sumner
5d39d3a3b2 [resolver] Fix edgecase where remapping a tsx -> js import path produced an invalid file path 2022-03-18 04:38:49 -07:00
Jarred Sumner
07379ecb4e [bun.js] Fix missing .prototype on builtins 2022-03-18 04:37:46 -07:00
Aiello
257f3f997a fix(readme): Fix hash link in README.md (#128) 2022-03-18 01:26:49 -07:00
Jarred Sumner
d1aea89c7d celanup 2022-03-17 20:52:31 -07:00
Jarred Sumner
6b33912f42 Fix crash when printing errors that are an unexpected type 2022-03-17 20:52:10 -07:00
Jarred Sumner
e4f67a7fc9 [bun.js] Return empty array instead of null when no router is defined 2022-03-17 20:42:40 -07:00
Jarred Sumner
9737c01058 [bun.js] Implement self.reportError 2022-03-17 20:42:28 -07:00
Jarred Sumner
2a3438186a Fix missing sentinel in mkdir 2022-03-17 19:18:15 -07:00
Jarred Sumner
881a3b28a7 [bun.js] Implement import.meta.resolve 2022-03-17 19:18:08 -07:00
Jarred Sumner
b3f4f8db24 [bun.js] Add some of the fs constants 2022-03-17 18:29:31 -07:00
Jarred Sumner
7175422a2b Ensure we handle unicode correctly when returning strings for node fs 2022-03-17 18:29:23 -07:00
Jarred Sumner
8fad34a29b [JS Transpiler] Always print escape unicode identifiers, for now 2022-03-17 18:29:02 -07:00
Jarred Sumner
8526f77c70 Update lockfile.zig 2022-03-17 18:28:40 -07:00
Jarred Sumner
86a4ab704d Move Bun to JSC.API 2022-03-17 18:28:24 -07:00
Jarred Sumner
d5613308f9 lil helper method 2022-03-17 18:27:44 -07:00
Jarred Sumner
3d1259ea36 Update build-id 2022-03-17 18:27:21 -07:00
Jarred Sumner
a82eac2195 only check once 2022-03-17 02:40:32 -07:00
Jarred Sumner
312ea407a2 Add test coverage for emoji in blobs 2022-03-17 01:47:33 -07:00
Jarred Sumner
695162e9fa Prevent segfault 2022-03-17 01:29:17 -07:00
Jarred Sumner
7a978f9381 move some code around 2022-03-17 01:28:56 -07:00
Jarred Sumner
c78556048c Update build-id 2022-03-17 01:28:45 -07:00
Jarred Sumner
3e68ead0fa optimize blob.text() 2022-03-17 01:28:36 -07:00
Jarred Sumner
74f4c8bcab query_string_map -> url 2022-03-17 01:27:35 -07:00
Jarred Sumner
89fb624c5b Fix crash from checking if something is an object when it is undefined 2022-03-16 08:49:16 -07:00
Jarred SUmner
6bcaa33751 Fix setTimeout on Linux 2022-03-16 08:02:15 -07:00
Jarred SUmner
8b73afad95 Increase from 4ms -> 40ms for timeout 2022-03-16 08:02:15 -07:00
Jarred Sumner
f63ddac287 Update README.md 2022-03-16 06:39:14 -07:00
Jarred Sumner
21ac71f740 llvm-stirp not working 2022-03-16 06:35:23 -07:00
Jarred Sumner
7df84b38b7 Update Makefile 2022-03-16 06:24:40 -07:00
Jarred Sumner
8ce7c83779 Update Dockerfile.base 2022-03-16 06:03:05 -07:00
Jarred Sumner
5de13e0038 Update Makefile 2022-03-16 05:51:19 -07:00
Jarred Sumner
09a7b01ee7 cleanup error printing 2022-03-16 05:50:52 -07:00
Jarred Sumner
fe89fc8a64 Revert "Unlimited arguments in process.nextTick"
This reverts commit aff9d232b1.
2022-03-16 05:24:06 -07:00
Jarred Sumner
1a7b546055 bun.lockb 2022-03-16 05:06:42 -07:00
Jarred Sumner
e92c832697 Update feature_flags.zig 2022-03-16 05:06:22 -07:00
Jarred Sumner
b633573ad0 [bun.js] Bun.unsafe test should check the gc 2022-03-16 05:05:37 -07:00
Jarred Sumner
c97ca4830e Update work_pool.zig 2022-03-16 05:04:45 -07:00
Jarred Sumner
3b78cfe71a Add a way to run serial tasks on a different thread 2022-03-16 05:04:23 -07:00
Jarred Sumner
422bdf692a fix crash when SyntaxError is thrown and we did not receive an ErrorInstance? 2022-03-16 05:03:29 -07:00
Jarred Sumner
fa1d4c2d7f [bun.js] Fix release-mode test failures in Headers 2022-03-16 05:02:08 -07:00
Jarred Sumner
942c70c795 Update ref_count.zig 2022-03-16 05:00:47 -07:00
Jarred Sumner
75fa87482d file is too big 2022-03-15 20:17:53 -07:00
Jarred Sumner
1fc9b93ed6 Update Dockerfile.base 2022-03-15 06:36:46 -07:00
Jarred Sumner
38430fbf0e Add rust and lolhtml to dockerfile 2022-03-15 06:21:57 -07:00
Jarred Sumner
64466e3259 bump webkit 2022-03-15 06:03:29 -07:00
Jarred Sumner
6918e20f22 Update WebKit 2022-03-15 06:02:50 -07:00
Jarred Sumner
6b903de12c 📷 2022-03-15 05:48:04 -07:00
Jarred Sumner
f1f3501628 Fix test failure 2022-03-15 05:47:53 -07:00
Jarred Sumner
e866fa1203 [bun:error] handle errors without a name or message 2022-03-15 05:19:54 -07:00
Jarred Sumner
90940ec240 Update pool.zig 2022-03-15 05:19:18 -07:00
Jarred Sumner
79caba9506 Load .env by default 2022-03-15 05:19:15 -07:00
Jarred Sumner
7083ef47bb mimalloc interpose is buggy 2022-03-15 05:00:22 -07:00
Jarred Sumner
234dd04c86 higher max http requests for bun.js 2022-03-15 05:00:06 -07:00
Jarred Sumner
6f095a6394 zero copy 2022-03-15 04:59:53 -07:00
Jarred Sumner
8a52e09e8b Update javascript.zig 2022-03-15 04:49:52 -07:00
Jarred Sumner
2ea7970a82 [bun.js] utf8 console.{time, count, timeEnd, profile, profileEnd, count, countReset} 2022-03-15 04:49:48 -07:00
Jarred Sumner
069fce0033 Create unsafe.test.js 2022-03-15 00:48:28 -07:00
Jarred Sumner
57e42cc538 Fix crash when Headers.delete 2022-03-15 00:38:28 -07:00
Jarred Sumner
2498784d14 more tests 2022-03-15 00:38:12 -07:00
Jarred Sumner
ec14a2ef5d Add a fast path to TextDecoder UTF-16 for when you pass a Uint16Array 2022-03-14 23:47:01 -07:00
Jarred Sumner
8f93cc37d2 handle min ascii 16 2022-03-14 23:44:24 -07:00
Jarred Sumner
9a43eb903d cleanup some code 2022-03-14 23:44:07 -07:00
Jarred Sumner
5a6010deda FetchEvent's request will be disconnected from the real request after the request is sent 2022-03-14 23:43:59 -07:00
Jarred Sumner
a168c51395 Fix a couple memory leaks in bun dev 2022-03-14 23:43:20 -07:00
Jarred Sumner
5aae8726ef Switch to std.HashMap for DirEntry store 2022-03-14 23:40:17 -07:00
Jarred Sumner
aff9d232b1 Unlimited arguments in process.nextTick 2022-03-14 23:37:56 -07:00
Jarred Sumner
d0a9b404c3 [bun.js] Fix a memory leak with microtasks 2022-03-14 23:37:43 -07:00
Jarred Sumner
e3b3631634 Handle segfault when console.log'ing stuff that should never make it to console.log in the first place 2022-03-14 23:37:08 -07:00
Jarred Sumner
7b8113c7c7 Fix bug causing GC to sometimes never run 2022-03-14 23:36:45 -07:00
Jarred Sumner
2d1538e698 fix crash in bun create 2022-03-14 21:10:25 -07:00
Jarred Sumner
1316dd1a4f Fix crash when HTTP thread goes to sleep 2022-03-14 05:39:45 -07:00
Jarred Sumner
13f1cdca7b add another assertion 2022-03-14 05:39:22 -07:00
Jarred Sumner
00977c75ba fix crash when upgrade checker ends 2022-03-14 05:39:09 -07:00
Jarred Sumner
0e9056eca5 [bun.js] Implement console.trace() 2022-03-14 01:32:13 -07:00
Jarred Sumner
4ab4ae77ac Reference-counting for Blob and Headers 2022-03-14 01:31:56 -07:00
Jarred Sumner
4638871050 [bun dev] Fix crash on macOS 2022-03-14 01:26:39 -07:00
Jarred Sumner
13cd18e614 make headers a ptr 2022-03-13 16:16:27 -07:00
Jarred Sumner
0a8976c1e0 Update .gitmodules 2022-03-13 16:03:12 -07:00
Jarred Sumner
19515ca63a Add finalizers 2022-03-13 06:08:38 -07:00
Jarred Sumner
f4504292cf [bun.js] Implement Blob 2022-03-13 06:08:10 -07:00
Jarred Sumner
6d71749c70 Update string-handling.zig 2022-03-12 05:56:11 -08:00
Jarred Sumner
777e5f47be [Bun.js] Support async HTMLRewriter 2022-03-12 05:55:53 -08:00
Jarred Sumner
e97934a225 Expose Response.prototype.headers and Response.prototype.clone 2022-03-12 05:55:23 -08:00
Jarred Sumner
e65c82a032 Headers.clone 2022-03-12 05:54:56 -08:00
Jarred Sumner
6f39b8f576 Response.clone() 2022-03-12 05:54:34 -08:00
Jarred Sumner
7b93123133 Implement iterator 2022-03-12 02:59:10 -08:00
Jarred Sumner
d6831cf801 [Bun.js] Implement HTMLRewriter
https://developers.cloudflare.com/workers/runtime-apis/html-rewriter
2022-03-12 01:14:45 -08:00
Jarred Sumner
64f1af0aa6 skeleton 2022-03-11 04:49:25 -08:00
Jarred Sumner
313ad01e42 fix bug with freeing typed arrays 2022-03-11 03:09:57 -08:00
Jarred Sumner
44b0c8153a Source Maps for client-side errors & columns 2022-03-11 00:03:09 -08:00
Jarred Sumner
c8f6337f1f twiddle with formatting 2022-03-10 06:55:43 -08:00
Jarred Sumner
7998a43b04 [bun.js] Map the sources when handling the error 2022-03-10 05:41:52 -08:00
Jarred Sumner
17c1f403c1 Update comptime_string_map.zig 2022-03-10 05:40:51 -08:00
Jarred Sumner
1422055304 [bun.js] Support sourcemaps! 2022-03-10 05:39:46 -08:00
Jarred Sumner
3ca113059d Update js_printer.zig 2022-03-10 00:46:00 -08:00
Jarred Sumner
f4f07f8993 WIP sourcemap parsing 2022-03-10 00:44:27 -08:00
Jarred Sumner
187fd9f61f woops 2022-03-10 00:44:13 -08:00
Jarred Sumner
69eeff1f76 console.log(<JSX>) support 2022-03-10 00:44:01 -08:00
Jarred Sumner
4204baabe6 Update linker.zig 2022-03-09 04:00:36 -08:00
Jarred Sumner
01b1fee284 69% perf improvement for long string literals 2022-03-09 04:00:19 -08:00
Jarred Sumner
bdb5e4aa56 Update options.zig 2022-03-09 03:58:35 -08:00
Jarred Sumner
026657d83b make the map slightly smaller 2022-03-09 03:58:32 -08:00
Jarred Sumner
e35895888e [JS Printer] Add function for printing a string as JSON 2022-03-09 02:37:42 -08:00
Jarred Sumner
90ead2d992 10% perf improvement to JSX entity code parsing in microbenchmark 2022-03-09 02:36:55 -08:00
Jarred Sumner
43622a8eb7 fix bug with UTF-16 template literal escape codes 2022-03-09 02:36:20 -08:00
Jarred Sumner
eeff004ec2 Fix quoting console.log 2022-03-08 23:37:54 -08:00
Jarred Sumner
1bf898828b print size of headers 2022-03-08 19:33:45 -08:00
Jarred Sumner
0a742506ff sourcemappings 2022-03-08 18:56:12 -08:00
Jarred Sumner
701d6ec45d rename _global -> bun 2022-03-08 18:54:54 -08:00
Jarred Sumner
787769ac39 [bun.js] Support logging Headers, Response, and Request 2022-03-08 18:15:21 -08:00
Jarred Sumner
33950c0ae7 Fix https://github.com/Jarred-Sumner/bun/issues/122 2022-03-08 18:14:26 -08:00
Jarred Sumner
99ebef0b2f Update sourcemap.zig 2022-03-08 04:55:25 -08:00
Jarred Sumner
880f6a17b8 [bun.js] WIP sourcemap support 2022-03-08 04:46:25 -08:00
Jarred Sumner
0456845256 Add VLQ bench, improve decodeVLQ perf 2022-03-07 21:02:29 -08:00
Jarred Sumner
ce081f15e9 Optimize sourcemaps 2022-03-07 19:11:12 -08:00
Jarred Sumner
da9a19037f Update options.zig 2022-03-07 00:34:07 -08:00
Jarred Sumner
d43a645535 source maps optimizations 2022-03-07 00:33:49 -08:00
Jarred Sumner
50d5b872f9 [JS] Don't make this inline 2022-03-07 00:32:04 -08:00
Jarred Sumner
ccf57c7f3e [JS] Slight optimization for newlines 2022-03-07 00:31:48 -08:00
Jarred Sumner
2cc265361d [JS Parser] Fix bug with decoding escape sequences 2022-03-07 00:31:10 -08:00
Jarred Sumner
5ee063f6b2 [JS/JSON] Optimize parsing long strings 2022-03-07 00:30:51 -08:00
Jarred Sumner
50c8747c97 [JS Parser] Add optimization for JSX spread 2022-03-07 00:29:50 -08:00
Jarred Sumner
3598f0ed8a 1.7x faster sourcemap printing 2022-03-06 17:54:12 -08:00
Jarred Sumner
7c5c6cd519 source maps work for app code in bun dev! 2022-03-06 07:35:16 -08:00
Jarred Sumner
093807391a [JS Parser] dot property shorthand for JSX
This is a non-standard backwards-compatible feature that I suspect other tooling will soon adopt (and expect to help other tooling adopt it)

```jsx
var hello = {hi: 'yo'};
export const Foo = () => <Bar {hello.hi} />
```

Desugars into:
```jsx
var hello = {hi: 'yo'};
export const Foo = () => <Bar hi={hello.hi} />
```

This works with defines and macros too.

```jsx
export const Foo = () => <Bar {process.env.NODE_ENV} />
```

```jsx
export const Foo = () => <Bar NODE_ENV="development" />
```
2022-03-05 19:33:25 -08:00
Jarred Sumner
18c923596a Update README.md 2022-03-05 03:15:05 -08:00
Jarred Sumner
d3de5ff017 Update README.md 2022-03-05 03:14:25 -08:00
Jarred Sumner
f8f2ec8f35 Update README.md 2022-03-05 03:00:13 -08:00
Jarred Sumner
af6c18ccc5 Begin implementing sourcemaps 2022-03-05 02:56:29 -08:00
Jarred Sumner
4f5aa438d6 [JS Parser] Support JSX prop punning 2022-03-04 17:51:22 -08:00
Jarred Sumner
bd2f818500 Delete peechy.js 2022-03-04 05:03:33 -08:00
Jarred Sumner
29f240ac79 [bun.js] Add atob and btoa 2022-03-04 03:30:29 -08:00
Jarred Sumner
c53dc308be Update release.sh 2022-03-04 00:27:22 -08:00
Jarred Sumner
cb8e5d2cd9 Bump zig in docker 2022-03-04 00:26:21 -08:00
Jarred Sumner
d8d5b1a071 more tests 2022-03-04 00:26:13 -08:00
Jarred Sumner
bb64920cf0 add datetime package 2022-03-04 00:21:08 -08:00
Jarred Sumner
427c39b858 Update analytics_thread.zig 2022-03-04 00:20:59 -08:00
Jarred Sumner
b0d5903aba reduce number of global symbols 2022-03-04 00:20:54 -08:00
Jarred Sumner
dbc28a24ac more 2022-03-04 00:20:39 -08:00
Jarred Sumner
51fbbea1d3 upgrade zig 2022-03-04 00:20:22 -08:00
Jarred Sumner
696710fd7a mark more things as unreachable 2022-03-02 22:17:20 -08:00
Jarred Sumner
5ace39e4cb Add context ptr to forEach in iterable 2022-03-02 22:16:04 -08:00
Jarred Sumner
b878f9054c [bun.js] Add Bun.inspect – like util.inspect() 2022-03-02 22:14:35 -08:00
Jarred Sumner
871780fd28 Make http requests a little faster 2022-03-02 21:17:50 -08:00
Jarred Sumner
4c5eb4b4db [bun dev] Improve HMR performance by pooling websocket threads
Previously, bun would create a new thread for each websocket connection. Now, it re-uses them

Eventually, this should use evented i/o but other changes need to be made to support that
2022-03-02 21:17:38 -08:00
Jarred Sumner
117ca5355d Send Date header in bun dev 2022-03-02 21:15:55 -08:00
Jarred Sumner
1a02782539 [internal] log memory allocations in mimalloc arenas 2022-03-02 21:13:34 -08:00
Jarred Sumner
c7941bfab0 Reduce stack size usage by about 120 KB 2022-03-02 21:12:31 -08:00
Jarred Sumner
88b60e6f10 add is_bindgen stub 2022-03-02 21:12:02 -08:00
Jarred Sumner
c5a2172c7b reduce number of global constants 2022-03-02 21:11:37 -08:00
Jarred Sumner
b2d847a273 reduce number of global variables 2022-03-02 21:11:19 -08:00
Jarred Sumner
4fb5e068bc Update bindings.zig 2022-03-02 17:50:29 -08:00
Jarred Sumner
4be4540acf Remove function from bindings 2022-03-02 17:50:25 -08:00
Jarred Sumner
a9d99dc0e5 DELETE header 2022-03-02 17:49:55 -08:00
Jarred Sumner
d1922d4742 [bun.js] fix unicode handling in Router 2022-03-02 17:49:23 -08:00
Jarred Sumner
d85c59208c [bun.js] Fix crash due to incorrectly creating string 2022-03-02 17:49:09 -08:00
Jarred Sumner
17d625a735 remove a threadlocal 2022-03-02 15:34:26 -08:00
Jarred Sumner
42f61ebf8a cleanup error printing 2022-03-02 03:07:28 -08:00
Jarred Sumner
5e55c02bc6 Update global.zig 2022-03-02 03:07:08 -08:00
Jarred Sumner
ea7d38cea7 Update fs.zig 2022-03-02 03:07:04 -08:00
Jarred Sumner
4b36efd50a [bun run] Set more environment variables 2022-03-02 03:06:59 -08:00
Jarred Sumner
c3b96c90d3 clean up error message when CLI flag is invalid 2022-03-02 03:06:30 -08:00
Jarred Sumner
c0584c5102 add bun pm cache and bun pm cache rm commands 2022-03-02 03:06:11 -08:00
Jarred Sumner
87c71207e3 [bun.js] ResolveError.prototype.toString() BuildError.prototype.toString() 2022-03-01 22:21:39 -08:00
Jarred Sumner
149bbc12b5 add allowBunRuntime and autoImportJSX flags to Bun.Transpiler 2022-03-01 22:21:03 -08:00
Jarred Sumner
78cae049d2 cleanup code that checks if it should send an HTTP body 2022-03-01 22:19:15 -08:00
Jarred Sumner
7b4f239d33 [JS Parser] Fix bug with super from adding class static blocks 2022-03-01 22:18:16 -08:00
Jarred Sumner
80d4faa8ab Update bundler.zig 2022-03-01 22:17:43 -08:00
Jarred Sumner
4bb3f207ed Remove unused bool 2022-03-01 22:16:17 -08:00
Jarred Sumner
2ccb063d20 [bun.js] Allow disabling runtime imports so bun can build for node 2022-03-01 22:16:09 -08:00
Jarred Sumner
710303be7a [JS Parser] Make auto importing JSX a flag so the API is easier 2022-03-01 22:14:04 -08:00
Jarred Sumner
f337082c82 cleanup 2022-03-01 22:12:51 -08:00
Jarred Sumner
a306d4ae40 Update javascript.zig 2022-03-01 03:57:18 -08:00
Jarred Sumner
ea80cd1cd8 [bun.js] shim async fs 2022-03-01 00:50:30 -08:00
Jarred Sumner
114c0e8ed2 [bun.js] Implement setTimeout, setInterval, clearTimeout, clearInterval 2022-03-01 00:47:31 -08:00
Jarred Sumner
9ccb520e9e Update transpiler.test.js 2022-02-27 23:20:46 -08:00
Jarred Sumner
fb3a262f4b [TS] Make export {type foo} output consistent with TS parser 2022-02-27 23:20:38 -08:00
Jarred Sumner
50560e169c WASM 2022-02-27 23:20:10 -08:00
Jarred Sumner
36c249e9c1 begin writing types 2022-02-27 04:56:12 -08:00
Jarred Sumner
608b906bd5 [JSON] Use UTF-8 JSON parser when it's not for JavaScript 2022-02-27 04:55:20 -08:00
Jarred Sumner
09146d1c11 Update json_parser.zig 2022-02-27 04:54:48 -08:00
Jarred Sumner
3f9c5edbf5 📷 2022-02-27 04:54:41 -08:00
Jarred Sumner
1ed74ab59b mark as comptime 2022-02-27 04:26:45 -08:00
Jarred Sumner
0d4a2539a8 Fix typo
Thanks @danielweck
2022-02-27 04:26:21 -08:00
Jarred Sumner
4cedceaae2 Update build.zig 2022-02-27 04:15:42 -08:00
Jarred Sumner
7eeacfe672 Bump 2022-02-27 04:15:39 -08:00
Jarred Sumner
0a86a4ea80 Fix https://github.com/Jarred-Sumner/bun/issues/115 2022-02-27 04:14:55 -08:00
Jarred Sumner
d91e897413 [TS Parser] Implement constructor(private foo)
Input:
```
class Foo {
  constructor(public bar: string = "baz") {}
  bar: number;
}
```

Output:
```
class Foo {
  bar;
  constructor(bar = "baz") {
    this.bar = bar;
  }
  baz;
}
```
2022-02-27 03:37:31 -08:00
Jarred Sumner
953ddef482 Update README.md 2022-02-27 02:03:13 -08:00
Jarred Sumner
effcad912d Update README.md 2022-02-27 01:57:06 -08:00
Jarred Sumner
26a9c1c47b Update README.md 2022-02-27 01:56:59 -08:00
Jarred Sumner
e9b4e5a374 [JS Parser] Improve test coverage 2022-02-27 01:53:51 -08:00
Jarred Sumner
7576caa54a typegenerator 2022-02-27 01:53:34 -08:00
Jarred Sumner
a6901fdac1 Update jsc.zig 2022-02-27 01:53:01 -08:00
Jarred Sumner
8c271e5640 [JS Printer] Fix edgecase with optional chaining, class static block initialization and private identifiers 2022-02-27 01:52:56 -08:00
Jarred Sumner
7600e94ddc [JS Parser] AST changes for class static block & private identifiers 2022-02-27 01:50:13 -08:00
Jarred Sumner
c5804cd6ff [JS Parser] Fix bug with unicode identifiers 2022-02-27 01:49:56 -08:00
Jarred Sumner
5e4b50dc6c [JS Parser] #privateIdentifiers 2022-02-27 01:49:30 -08:00
Jarred Sumner
152f63b019 [JS Parser] Class Static Initialization Blocks
https://github.com/tc39/proposal-class-static-block
2022-02-27 01:48:10 -08:00
Jarred Sumner
1958f7adb5 [TS Parser] Support export {type Foo} 2022-02-27 01:46:51 -08:00
Jarred Sumner
789b17d333 be more careful 2022-02-25 04:59:41 -08:00
Jarred Sumner
d08aa46381 Update cli.zig 2022-02-25 02:18:10 -08:00
Jarred Sumner
f90ea81d58 bump target nextjs version 2022-02-25 02:18:07 -08:00
Jarred Sumner
7e96e82cad [bun pm] add help menu 2022-02-25 02:04:08 -08:00
Jarred Sumner
64b0087e84 Fix alignment bug with bun --help 2022-02-25 02:03:54 -08:00
Jarred Sumner
fe5ef864f1 hopefully no more unnecessary git status 2022-02-25 00:54:59 -08:00
Jarred Sumner
0d56e91e00 Update bun-install-lockfile-status.sh 2022-02-25 00:48:36 -08:00
Jarred Sumner
293a9bc811 [bun install] Add metadata hash 2022-02-25 00:48:36 -08:00
Evan Boehs
b8c6865ce0 Update README.md (#119) 2022-02-25 00:24:22 -08:00
Jarred Sumner
1795b6570c [bun install] Skip saving the lockfile if there are no changes 2022-02-24 22:01:37 -08:00
Jarred Sumner
152e3cb7bf Update Makefile 2022-02-24 21:08:21 -08:00
Jarred Sumner
2bc873d8b6 Update Makefile 2022-02-24 21:08:15 -08:00
Jarred Sumner
2e817195d2 Update WebKit 2022-02-24 21:01:48 -08:00
Jarred Sumner
12dbc5dfa4 Update generated versions 2022-02-24 21:00:42 -08:00
Jarred Sumner
026e75c46b Update Makefile 2022-02-24 20:47:31 -08:00
Jarred Sumner
f6ea59dbd9 misc 2022-02-24 20:43:13 -08:00
Jarred Sumner
986895f8c1 [bun dev] Don't log errors twice 2022-02-24 20:34:23 -08:00
Jarred Sumner
0694bbce00 Add a simple HMR test 2022-02-24 20:34:09 -08:00
Jarred Sumner
3bd12180de Make alignment more consitent 2022-02-24 20:33:45 -08:00
Jarred Sumner
208885e3d2 [bun dev] Fix bug with not transpiling files at the root 2022-02-24 20:32:57 -08:00
Jarred Sumner
896195f5e3 slightly clean up react example 2022-02-24 19:25:03 -08:00
Jarred Sumner
23596b48ca [bun-framework-next] Support Next.js 12.1 2022-02-24 19:24:48 -08:00
Jarred Sumner
0b7897f26c [bun.js] Implement process.exit (no callbacks yet) 2022-02-24 19:17:21 -08:00
Jarred Sumner
08c4f8b103 [bun install] Print correct bin name 2022-02-24 19:16:58 -08:00
Jarred Sumner
a9b32275f1 [bun install] Add integration test for bin links 2022-02-24 19:16:48 -08:00
Jarred Sumner
d1eba784b9 Add WASM modules but disable it for now 2022-02-24 19:09:55 -08:00
Jarred Sumner
ead77e074d bump build id 2022-02-24 01:46:27 -08:00
Jarred Sumner
a3ee0bb291 fix test failure in path.resolve 2022-02-24 01:46:18 -08:00
Jarred Sumner
a71c1288a6 Ensure we run the process test 2022-02-24 01:46:02 -08:00
Jarred Sumner
3182c5d304 Update javascript.zig 2022-02-24 00:59:27 -08:00
Jarred Sumner
8effa39410 [bun.js] Add ShadowRealm 2022-02-24 00:59:19 -08:00
Jarred Sumner
5f50de2b39 [bun-framework-next] Remove TextEncoder & TextDecoder polyfills 2022-02-24 00:16:45 -08:00
Jarred Sumner
b37cb73802 Use a JSFinalobject for Path 2022-02-24 00:15:44 -08:00
Jarred Sumner
806e406b67 Expose TextEncoder & TextDecoder globally 2022-02-24 00:15:17 -08:00
Jarred Sumner
3ad7c23221 [Web Platform] Implement TextEncoder & TextDecoder 2022-02-24 00:14:38 -08:00
Jarred Sumner
5b9d5d55e8 move GCDeferralContext 2022-02-24 00:13:29 -08:00
Jarred Sumner
5c9859e7f2 [JS Parser] ensure assertions are never run at runtime 2022-02-24 00:13:04 -08:00
Jarred Sumner
2e1e50486f misc cleanup 2022-02-24 00:12:40 -08:00
Jarred Sumner
27be64cf12 Make format consistent with WebKit 2022-02-22 15:51:41 -08:00
Jarred Sumner
4dd6472908 import assertion test 2022-02-22 15:47:26 -08:00
Jarred Sumner
dfa3e19cbf snaspshots 2022-02-22 15:47:11 -08:00
Jarred Sumner
fbac824975 tests for text-encoder 2022-02-22 15:45:08 -08:00
Jarred Sumner
e77a8db546 Fix assertion in JSPrinter 2022-02-22 15:27:09 -08:00
Jarred Sumner
77a3d791b1 Use clang-format from webkit so it's consistent 2022-02-22 15:26:50 -08:00
Jarred Sumner
bb8626e120 Move lockfile into separate file 2022-02-21 16:28:13 -08:00
Jarred Sumner
931670b7cb Wrap some usages of assert in a conditional
See https://github.com/ziglang/zig/issues/10942
2022-02-21 16:27:44 -08:00
Jarred Sumner
427de61702 Bump webkit in base image 2022-02-21 15:38:38 -08:00
Jarred Sumner
1d58a7aadd Update javascript.zig 2022-02-21 15:10:26 -08:00
Jarred Sumner
f49c3416d5 upgrade to latest JSC 2022-02-21 05:00:14 -08:00
Jarred Sumner
4f2fc299a9 upgrade JSC 2022-02-21 04:13:37 -08:00
Jarred Sumner
efb4baacdf [bun dev] Implement copy as markdown 2022-02-20 23:12:15 -08:00
Jarred Sumner
59109a309f add version to Framework struct 2022-02-20 16:24:36 -08:00
Jarred Sumner
8f1b2b2350 [JSON] Implement a way to convert any Zig type to a JSON object 2022-02-20 16:24:11 -08:00
Jarred Sumner
1ecd66e55d Update mime_type.zig 2022-02-20 16:23:41 -08:00
Jarred Sumner
06ac065d4d [bun dev] Implement /bun:info endpoint
This returns metadata for bun
2022-02-20 16:23:19 -08:00
Jarred Sumner
946404a365 [bun dev] Implement open in editor for transpiled files 2022-02-20 16:21:45 -08:00
Jarred Sumner
ab871d771a Mention behavior 2022-02-18 20:50:03 -08:00
Jarred Sumner
e11f44e039 Add a way to specify an editor in bunfig.toml 2022-02-18 20:47:10 -08:00
Jarred Sumner
c27577147c Update base.zig 2022-02-18 20:46:57 -08:00
Jarred Sumner
79974e4d81 [bun dev] Errors with file names can be opened in editor now 2022-02-18 20:46:55 -08:00
Jarred Sumner
eeab75998d Update javascript.zig 2022-02-18 20:33:18 -08:00
Jarred Sumner
3a0577ba96 Use an enum for Ref instead of a buggy packed struct
Fixes a printing bug with `Symbol`
2022-02-18 20:33:04 -08:00
Jarred Sumner
37aafb61be Update bundler.zig 2022-02-18 15:25:09 -08:00
Jarred Sumner
ad9ced2cc7 Create entitlements.debug.plist 2022-02-18 15:24:19 -08:00
Jarred Sumner
a0717e6fa7 Simple dead code elimination 2022-02-18 15:24:09 -08:00
Jarred Sumner
9cecbf42a6 Update javascript.zig 2022-02-18 14:43:12 -08:00
Jarred Sumner
cafa9cc3e4 [bun.js] Fix bug with getPublicPath when encountering URLs above the root 2022-02-18 14:42:56 -08:00
Jarred Sumner
a7181cb222 Update onThreadStart 2022-02-18 14:42:32 -08:00
Jarred Sumner
aa8080f441 more mimalloc 2022-02-18 14:42:28 -08:00
Jarred Sumner
65aae0ddad [bun.js] Make typeof window return "undefined" by default 2022-02-18 02:49:10 -08:00
Jarred Sumner
90f1f326ca [bun dev] Fix bug with importing node: namespace 2022-02-18 02:48:20 -08:00
Jarred Sumner
8383544bb5 onSpawn handler for thread 2022-02-18 02:47:59 -08:00
Jarred Sumner
65f1733d6f [Bundler] Fix race condition, 5% faster bundling
cc @hanford
2022-02-18 02:45:30 -08:00
Jarred Sumner
37e63eff22 [JS Parser] fix bugs found from tests 2022-02-18 02:43:45 -08:00
Jarred Sumner
24dd80e69a [JS Parser] Strip import assertions
Closes #4
2022-02-18 02:42:20 -08:00
Jarred Sumner
7b8de76267 [Bun.js] Implement crypto.randomBytes() and crypto.randomUUID() 2022-02-18 02:37:18 -08:00
Jarred Sumner
17ab2c18eb [Bun.js] Add a stub for setTimeout, setInterval, clearTImeout, clearInterval 2022-02-18 02:33:49 -08:00
Jarred Sumner
3db3413929 [JS Printer] fix edgecase with printing empty export 2022-02-18 02:32:57 -08:00
Jarred Sumner
32eb20702e improve test coverage 2022-02-17 03:49:28 -08:00
Jarred Sumner
17a7e2b241 constant folding and some cleanup 2022-02-17 03:46:57 -08:00
Jarred Sumner
83c0ad11ac [JS Printer] Print {\n} instead of ; for empty blocks 2022-02-17 03:46:04 -08:00
Jarred Sumner
6db46c6d00 Update js_printer.zig 2022-02-16 20:34:00 -08:00
Jarred Sumner
4ba0e7b7d8 [JS Printer] Fix missing space at end of object bindings
See also https://github.com/evanw/esbuild/pull/2025
2022-02-16 20:15:35 -08:00
Jarred Sumner
7637cfb0a6 [JS Parser] Fix several bugs with bindings and improve some errors 2022-02-16 17:02:39 -08:00
Jarred Sumner
f5c7c81780 Update js_parser.zig 2022-02-16 04:05:44 -08:00
Jarred Sumner
44bad4b8e6 [js parser] pool allocated names (perf) 2022-02-16 04:05:30 -08:00
Jarred Sumner
906a4bd75a [JS Transpiler] Begin porting esbuild parser tests to bun 2022-02-16 04:04:11 -08:00
Jarred Sumner
f8b48ebec6 Save LLVM IR in debug build 2022-02-16 04:03:35 -08:00
Jarred Sumner
a7bfc48bcc mimalloc flag 2022-02-16 04:02:48 -08:00
Jarred Sumner
6f1891462d [bun.js] Handle UTF-16 strings in Bun.Transpiler 2022-02-16 04:02:36 -08:00
Jarred Sumner
d00fe1f8af [bun.js] Handle UTF-16 strings in StringOrBuffer 2022-02-16 04:01:42 -08:00
Jarred Sumner
5a80a2e216 [bun.js] Fix segfault when running many bun.js instances 2022-02-16 04:01:13 -08:00
Jarred Sumner
3ab56cee8a symbol pool remnants 2022-02-16 03:45:48 -08:00
Jarred Sumner
6f78decf44 Handle empty array when joining expr 2022-02-16 03:41:57 -08:00
Jarred Sumner
68e5b0d842 [js printer] slightly optimize indent / unindent 2022-02-16 03:41:35 -08:00
Jarred Sumner
fa6bb0fc7c [js printer] Remove symbol pool 2022-02-16 03:41:11 -08:00
Jarred Sumner
103a527128 bump mimalloc 2022-02-16 03:18:38 -08:00
Jarred Sumner
054d873936 [bun test] Implement it.only 2022-02-16 00:40:38 -08:00
Jarred Sumner
9f2f33e4e6 Update mimalloc_arena.zig 2022-02-16 00:36:16 -08:00
Jarred Sumner
acb7439232 Add assert 2022-02-16 00:36:12 -08:00
Jarred Sumner
635d553b64 [JS Lexer] Fix incorrect assertion 2022-02-16 00:32:44 -08:00
Jarred Sumner
fe55720c6c [JS Parser] Add error when RegExp has duplicate flag 2022-02-16 00:32:29 -08:00
Jarred Sumner
08e8eabc6f Revert "Remove usage of packed struct in Ref because packed is buggy in zig"
This reverts commit 2578f426b6.
2022-02-15 20:08:35 -08:00
Jarred Sumner
665a359413 [internal] workaround https://github.com/ziglang/zig/issues/10903 2022-02-15 20:07:28 -08:00
Jarred Sumner
022e399bff Update test_command.zig 2022-02-15 13:47:23 -08:00
Jarred Sumner
2578f426b6 Remove usage of packed struct in Ref because packed is buggy in zig 2022-02-15 13:47:18 -08:00
Jarred Sumner
37bc3c8872 [bun test] Auto rewrite @jest/globals and vitest to bun:test 2022-02-15 13:44:34 -08:00
Jarred Sumner
55825c0e33 assert we aren't freeing statically allocated memory 2022-02-15 13:44:15 -08:00
Jarred Sumner
6e735b710a move import processing into a separate function 2022-02-14 20:21:01 -08:00
Jarred Sumner
8ec958ec01 Update bindings.zig 2022-02-14 20:20:38 -08:00
Jarred Sumner
e5a71462b8 remove a clone 2022-02-14 20:20:28 -08:00
Jarred Sumner
423d208790 [bun.js] Handle recursive macros and handle stack overflow 2022-02-14 19:03:25 -08:00
Jarred Sumner
83659b898d Path.join 2022-02-14 05:43:11 -08:00
Jarred Sumner
7653a2338e [bun.js] formatter 2022-02-14 04:28:25 -08:00
Jarred Sumner
8325db48ab MimeType from string 2022-02-14 04:28:13 -08:00
Jarred Sumner
eadca53e7b cleanup 2022-02-14 04:27:53 -08:00
Jarred Sumner
8cb9391534 [bun test] Slightly better test output 2022-02-14 04:27:39 -08:00
Jarred Sumner
106979876e [bun.js] Auto type coerction for macros! 2022-02-14 04:27:27 -08:00
Jarred Sumner
b9d82ee402 [JS parser] Slightly better dead code elimination & optimize AST string comparison 2022-02-13 20:44:55 -08:00
Jarred Sumner
776909a72d [js parser] Fix test failure with import {type foo} 2022-02-13 20:43:23 -08:00
Jarred Sumner
91026d4d1d Update install.zig 2022-02-13 16:09:27 -08:00
Jarred Sumner
4749df7c51 [bun install] Resolve nested folder: dependencies and tweak lockfile format for better determinism 2022-02-13 16:08:54 -08:00
Jarred Sumner
6bf3ae5a18 [bun test] Ensure throw doesn't get hidden 2022-02-13 16:05:47 -08:00
Jarred Sumner
a6de6d630a Tweak how strings are created 2022-02-12 22:11:36 -08:00
Jarred Sumner
b1e7d38f72 Add a memory allocator that always zeroes 2022-02-12 21:55:55 -08:00
Jarred Sumner
cf566ab785 [bun install] Move unnecessary data out of the lockfile 2022-02-12 21:55:26 -08:00
Jarred Sumner
9c54b0605d [bun install] Reduce noise in printed yarn.lock 2022-02-12 17:54:41 -08:00
Jarred Sumner
ff38312b7d [bun install] When --production, fail the build if symlinking fails 2022-02-12 16:46:48 -08:00
Jarred Sumner
b06e520ae4 [bun install] Handle multiple files in directory bins to link 2022-02-12 16:32:49 -08:00
Jarred Sumner
f33d23c0b4 [bun install] When both directories and bin is specified, prefer bin
This is for performance.
2022-02-12 16:05:57 -08:00
Jarred Sumner
b9567eb193 [bun install] Fix directory bin link bug 2022-02-12 16:02:54 -08:00
Jarred Sumner
7139316ef5 Implement multiple bin links for bun install -g 2022-02-12 15:43:04 -08:00
Jarred Sumner
6b215dcbbf Update README.md 2022-02-12 05:42:09 -08:00
Jarred Sumner
d7c75937a1 Update README.md 2022-02-12 05:41:45 -08:00
Jarred Sumner
272f1dea33 Update README.md 2022-02-12 05:41:35 -08:00
Jarred Sumner
b4c50d1d28 Update README.md 2022-02-12 05:40:12 -08:00
Jarred Sumner
4244e74d96 Update README.md 2022-02-12 05:39:02 -08:00
Jarred Sumner
f71c4bb8a4 Update README.md 2022-02-12 05:37:07 -08:00
Jarred Sumner
3141b928f8 Update README.md 2022-02-12 05:28:52 -08:00
Jarred Sumner
614d810ef4 Make bun install fast by default on linux 2022-02-12 05:00:58 -08:00
Jarred Sumner
ac91f98528 fix linux build error 2022-02-12 04:31:41 -08:00
Jarred Sumner
1252b6b7df Update README.md 2022-02-12 03:28:11 -08:00
Jarred Sumner
7842da78bc hm 2022-02-12 03:27:27 -08:00
Jarred Sumner
dad8b16878 hm 2022-02-12 03:26:51 -08:00
Jarred Sumner
3881b7a69c hm 2022-02-12 03:26:40 -08:00
Jarred Sumner
0471fae54a Update README.md 2022-02-12 03:26:20 -08:00
Jarred Sumner
a3d0b45cc0 readme 2022-02-12 03:21:52 -08:00
Jarred Sumner
e72264608b Fix crash that wasn't a crash 2022-02-12 02:42:39 -08:00
Jarred Sumner
eb93ae0d26 Trim leading double slashes in URL pathnames 2022-02-12 02:32:15 -08:00
Jarred Sumner
73836e19b7 Load config 2022-02-12 02:32:01 -08:00
Jarred Sumner
4257373654 Update install.zig 2022-02-12 02:00:14 -08:00
Jarred Sumner
297ddfd972 [bun install] Improve error handling when package is not found 2022-02-12 01:59:32 -08:00
Jarred Sumner
969fcd2213 Update package_manager_command.zig 2022-02-12 01:25:47 -08:00
Jarred Sumner
18b1a36d84 [bun install] Make global bin dir configurable 2022-02-12 01:23:32 -08:00
Jarred Sumner
89c99700f6 [bun install] Print linked bin names and improve output 2022-02-12 01:23:19 -08:00
Jarred Sumner
7c6386d81e [bun install] bun pm bin prints the bin directory 2022-02-12 01:22:07 -08:00
Jarred Sumner
757a1686f0 Add bun r as an alias for bun remove 2022-02-12 01:21:53 -08:00
Jarred Sumner
611cdd69b1 Add bun -g to completions 2022-02-12 01:21:44 -08:00
Jarred Sumner
90c573cd42 [bun install] Implement global installs 2022-02-11 21:15:20 -08:00
Jarred Sumner
71ca909008 another assertion 2022-02-11 19:04:05 -08:00
Jarred Sumner
8570b4a9d7 [bun install] Implement private registry support & scoped packages
Fixes https://github.com/Jarred-Sumner/bun/issues/112
2022-02-11 19:02:03 -08:00
Jarred Sumner
d67c95d8eb [bun install] Implement bunfig.toml config 2022-02-11 19:01:00 -08:00
Jarred Sumner
bfd7f3398c Update report.zig 2022-02-11 14:59:15 -08:00
Jarred Sumner
fce94e29a0 [bun install] Fix bun add multiple packages writing malformed package.json 2022-02-11 14:59:10 -08:00
Jarred Sumner
5d51b4c397 [bun install] Fix lockfile corruption 2022-02-11 14:58:46 -08:00
Jarred Sumner
5ec5b657be use platform-independent file preallocation 2022-02-11 14:57:11 -08:00
Jarred Sumner
3d057950b9 std.os.exit -> Global.exit so stderr is always flushed 2022-02-11 14:56:28 -08:00
Jarred Sumner
29f0159eae Update install.zig 2022-02-10 18:12:43 -08:00
Jarred Sumner
95c0f28dee [bun install] Continue linking bins if one fails 2022-02-10 17:07:01 -08:00
Jarred Sumner
185f74dfae [bun install] More reliably set permissions on bin links 2022-02-10 17:04:42 -08:00
Jarred Sumner
9369663317 [bun run] Fix exit code when running a bin 2022-02-10 16:46:14 -08:00
Jarred Sumner
e7626b6e04 Update linux_c.zig 2022-02-10 16:43:35 -08:00
Jarred Sumner
29a718e25d [bun run] Fix exit code when script fails 2022-02-10 16:43:28 -08:00
Jarred Sumner
8fca3f2487 [bun install] Improve reliability of extracting files 2022-02-10 16:43:07 -08:00
Jarred Sumner
ce442aa3e1 [bun install] Fix bug when linking bins from scoped packages (e.g. @babel/parser) 2022-02-10 16:42:16 -08:00
Jarred Sumner
6470f26be2 [bun install] Print more descriptive errors 2022-02-10 16:41:48 -08:00
Jarred Sumner
9018986600 [bun install] Fix bug when packages with long names 2022-02-10 16:41:33 -08:00
Jarred Sumner
25f15688f0 [bun dev] Add test for checking that js files are transpiled at the root when there is no static folder 2022-02-10 03:30:30 -08:00
Jarred Sumner
078a7c4c55 Cleanup test output 2022-02-10 03:21:26 -08:00
Jarred Sumner
cc1e19ade0 [bun dev] Use a Mimalloc Arena to attempt to resolve a crash when bun dev has been running for awhile 2022-02-10 01:46:49 -08:00
Jarred Sumner
27501a0576 [bun dev][css] Fix loading external assets 2022-02-10 01:40:36 -08:00
Jarred Sumner
2e2521c638 [bun dev] Implement hash: namespace for file loader to improve browser cache invalidation
This appends a hash to URLs and import paths

In `bun dev`, this means:
  `/foo.woff2` => `/hash:/foo.woff2`

`bun dev` simply ignores this.
2022-02-10 01:37:23 -08:00
Jarred Sumner
bcdd2cf220 [tree shaking] Trim unused values in var when possible 2022-02-10 01:28:41 -08:00
Jarred Sumner
e8394905d4 [tree shaking] Fix bug with removing unused const / let 2022-02-10 01:28:29 -08:00
Jarred Sumner
afe42bc327 Update readme for bun-macro-relay, bump 2022-02-09 13:50:33 -08:00
Jarred Sumner
86f6e30cca Update runtime.version 2022-02-08 01:37:30 -08:00
Jarred Sumner
4a24240d9f Possibly fix #98 2022-02-08 01:24:05 -08:00
Jarred Sumner
347b348865 📷 2022-02-08 01:05:13 -08:00
Jarred Sumner
d4afa5477d Move __exportDefault transform to parser 2022-02-08 01:00:46 -08:00
Jarred Sumner
7792ef1bde Update build-id 2022-02-07 23:51:19 -08:00
Jarred Sumner
5dce6f63d0 Add test for #117 2022-02-07 23:50:40 -08:00
Jarred Sumner
d43f7aa6aa Fix #117 2022-02-07 23:34:19 -08:00
Jarred Sumner
705325d6c5 Fix #117 2022-02-07 23:34:07 -08:00
Jarred Sumner
1430cb5e34 Don't import __FastRefreshRuntime if it's a CJS transform 2022-02-07 23:32:48 -08:00
Jarred Sumner
71fcb7b86c Reduce debug build memory usage 2022-02-07 23:10:55 -08:00
Jarred Sumner
3a48954586 [JS Parser] Fix bug with export default Foo when Foo was a bundled import 2022-02-07 23:10:42 -08:00
Jarred Sumner
49aee10cfa Update transpiler.test.js 2022-02-07 22:03:50 -08:00
Jarred Sumner
a571c56b4c [TS] Implement import {type foo} from 'bar'; (type inside clause) 2022-02-07 22:02:54 -08:00
Jarred Sumner
7b5bf62ad5 [bun-macro-relay] resolve the artifact directory 2022-02-07 21:31:36 -08:00
Jarred Sumner
869eea4bb2 Update README.md 2022-02-06 16:41:07 -08:00
Jarred Sumner
ffc900e1b3 Update README.md 2022-02-06 16:40:36 -08:00
Jarred Sumner
dded255306 Little doc 2022-02-06 15:05:10 -08:00
Jarred Sumner
9c5dead232 Update README.md 2022-02-06 00:52:24 -08:00
Jarred Sumner
0191cabe6e Update README.md 2022-02-06 00:47:15 -08:00
Jarred Sumner
e1747c0dd7 Update README.md 2022-02-06 00:45:30 -08:00
Jarred Sumner
e50ccc25db Update README.md 2022-02-06 00:44:31 -08:00
Jarred Sumner
3a788fa035 Update README.md 2022-02-06 00:43:56 -08:00
Jarred Sumner
9715c9223a Add unit test for toml imports 2022-02-05 21:26:55 -08:00
Jarred Sumner
ca6cdb4e98 [TOML] Fix bug with [[arrays]] 2022-02-05 21:26:47 -08:00
Jarred Sumner
e431dbe5bd Handle promise rejections in tests 2022-02-05 21:26:31 -08:00
Jarred Sumner
3063df9b78 Update resolve_path.zig 2022-02-05 21:26:14 -08:00
Jarred Sumner
d8f174e54c Always try to load bunfig.toml for install, dev, bun, test 2022-02-05 19:02:13 -08:00
Jarred Sumner
51abe58a1a () 2022-02-05 18:56:15 -08:00
Jarred Sumner
7f1415c7ae One less memcpy 2022-02-05 18:54:46 -08:00
Jarred Sumner
6cf3a08780 Further reliability improvements to http client 2022-02-05 00:30:28 -08:00
Jarred Sumner
2b45c8dffe Implement keep-alive but disable it 2022-02-05 00:30:28 -08:00
Jarred SUmner
860d7e93c0 Make bun-install slower but more reliable on Linux Kernel 5.5 and lower 2022-02-05 00:26:58 -08:00
Jarred SUmner
dabcac2e96 Several reliability improvements to HTTP 2022-02-04 20:50:21 -08:00
Jarred Sumner
c03b7a6f19 reminder 2022-02-04 02:43:49 -08:00
Jarred Sumner
909e6a6bab path.resolve() passes tests 2022-02-04 02:05:41 -08:00
Jarred Sumner
a2f91b167d Update multiple-var.js 2022-02-04 01:02:59 -08:00
Jarred Sumner
b2b8c7f0b7 📷 2022-02-04 01:02:55 -08:00
Jarred Sumner
29554f4de3 Update snippets.json 2022-02-04 00:58:20 -08:00
Jarred Sumner
735dc8f1d6 Add integration test for reading .json files that have UTF-8 string literals
Related: https://github.com/Jarred-Sumner/bun/issues/115
2022-02-04 00:58:12 -08:00
Jarred Sumner
a9577c9ba8 [http] fix segfault 2022-02-04 00:57:30 -08:00
Jarred Sumner
a89726b30c [bun dev] Fix bug with serving static files on next.js apps introduced in af69b47c22 2022-02-04 00:57:12 -08:00
Jarred Sumner
3225a4e7e8 Update types.zig 2022-02-04 00:31:29 -08:00
Jarred Sumner
432e823f7e Update test_command.zig 2022-02-04 00:31:24 -08:00
Jarred Sumner
62541f1ac8 path.normalize() tests pass 2022-02-04 00:31:20 -08:00
Jarred Sumner
faf137b9be Fix test failures in path.join 2022-02-03 21:03:39 -08:00
Jarred Sumner
3c9e30ffcd Update mimalloc_arena.zig 2022-02-03 21:03:08 -08:00
Jarred Sumner
b22a3f5973 [bun test] Support multiple files 2022-02-03 21:03:01 -08:00
Jarred Sumner
4232000020 Update js_ast.zig 2022-02-03 21:02:30 -08:00
Jarred Sumner
475aab6cc3 Support loading multiple entry points by changing what bun:main points to 2022-02-03 21:02:15 -08:00
Jarred Sumner
dddd9c23e4 [bun install] Configurable max http retry count 2022-02-03 21:01:45 -08:00
Jarred Sumner
1064b9dada Missing newline in errors in bun install 2022-02-03 21:01:32 -08:00
Jarred Sumner
baffe26dd1 Fix bug with http client 2022-02-03 21:01:14 -08:00
Jarred Sumner
1993f9f9a5 Move detectFastRefresh to later so HTTP request handler starts faster 2022-02-03 20:59:34 -08:00
Jarred Sumner
7f00482cfe Fix bug with macro remaps in Bun.Transpiler api 2022-02-03 01:56:02 -08:00
Jarred Sumner
b2a69a35b8 Slight improvement to non-ascii file path handling 2022-02-03 01:01:27 -08:00
Jarred Sumner
a52a948a70 path.relative passes Node's tests (which also fixed bugs) 2022-02-02 23:33:37 -08:00
Jarred Sumner
94cbfa4579 Begin porting path-browserify tests 2022-02-02 18:12:30 -08:00
Jarred Sumner
1a4ccd3f5c [http] Fixes to chunked transfer encoding reader 2022-02-02 18:07:05 -08:00
Jarred Sumner
68cb6130d3 "path" module from Node.js implementation 2022-02-02 18:02:06 -08:00
Jarred Sumner
64b74ede87 Cleanup HTTP thread on idle 2022-02-01 20:47:48 -08:00
Jarred Sumner
213960a04a Limit the number of pooled objects 2022-02-01 20:47:35 -08:00
Jarred Sumner
170e58a99d Fix biggest issue with HTTPS client! 2022-02-01 18:51:25 -08:00
Jarred Sumner
f3c4bfcbae wpi 2022-02-01 18:12:24 -08:00
Jarred Sumner
fa971895a8 partial read 2022-02-01 17:19:29 -08:00
Jarred Sumner
a5a9f8e821 Compile error 2022-02-01 16:23:20 -08:00
Jarred Sumner
0a547304a7 Set thread name 2022-02-01 16:23:13 -08:00
Jarred Sumner
45e7bb0027 IO.Completion.slice() 2022-02-01 16:23:02 -08:00
Jarred Sumner
5d7c34093f new boringSSL integration almost works with TLS 1.3 2022-02-01 14:45:47 -08:00
Jarred Sumner
9322cec8f2 WIP 2022-02-01 14:45:47 -08:00
Jarred Sumner
047501999d [linker] Fix bug with multiple JSX runtimes introduced in 5922ba29ac 2022-02-01 14:43:45 -08:00
Jarred Sumner
30f5e0d37c [path] Fix bug that occasionally caused relative paths to be missing the leading character 2022-02-01 14:42:42 -08:00
Jarred Sumner
205a6d45b5 [http] Fix assertion in favicon 2022-02-01 14:41:50 -08:00
Jarred Sumner
d47e0de175 [JS Printer] Fix printing edgecase with nested vars that use object destructuring 2022-02-01 14:41:36 -08:00
Jarred Sumner
8c470194ce "" 2022-01-30 16:11:48 -08:00
Jarred Sumner
410a6bd32d [bun dev] Add error favicon 2022-01-30 15:12:34 -08:00
Jarred Sumner
af69b47c22 [bun dev] Support HTML files in either project root or public folder (static) 2022-01-30 02:04:56 -08:00
Jarred Sumner
fb2c7e5f38 Update bun-flavored-toml.md 2022-01-29 23:52:30 -08:00
Jarred Sumner
4a1c195b24 Update Makefile 2022-01-29 23:52:26 -08:00
Jarred Sumner
1489e48950 Slight tweaks to TOML parser 2022-01-29 23:52:19 -08:00
Jarred Sumner
5922ba29ac Bundle embedded fast refresh if using react and no fast refresh is found 2022-01-29 23:51:37 -08:00
Jarred Sumner
1de275325e Embed a favicon when none exists 2022-01-29 23:51:01 -08:00
Jarred Sumner
14301284af cleanup 2022-01-29 23:50:38 -08:00
Jarred Sumner
adeb880d7f Enable Fast Refresh when not bundling 2022-01-29 23:49:41 -08:00
Jarred Sumner
857e9bee00 Embed React Fast Refresh in Bun
Fixes https://github.com/Jarred-Sumner/bun/issues/62

If the project has it's own copy of react fast refresh and is bundling, it will use that instead.
2022-01-29 23:48:39 -08:00
Jarred Sumner
711e0cef78 Handle null/undefined module.exports better 2022-01-29 23:43:28 -08:00
Jarred Sumner
73449bf433 [JS Printer] Fix CJS <> ESM interop edgecase
For code like this:

```js
module.exports = require("foo")
```

If `"foo"` is bundled, we should access it as the namespace reference from the bundle. Previously, we assumed it would be a property access.
2022-01-29 23:43:10 -08:00
Jarred Sumner
4aabccfc79 Fix bug introduced in 97d17904 2022-01-29 20:01:34 -08:00
Jarred Sumner
1e2a61c6a0 Slice once 2022-01-29 19:52:12 -08:00
Jarred Sumner
844fae826f Tag imports 2022-01-29 19:51:47 -08:00
Jarred Sumner
ef8d1a95a4 Update toml_lexer.zig 2022-01-28 23:57:29 -08:00
Jarred Sumner
bf4943eec1 Implement TOML parser
No Date/DateTime/Time/Local Time yet
2022-01-28 23:56:45 -08:00
Jarred Sumner
97d17904d3 Update AST layout to store capacity for items
We want to be able to push to the list
2022-01-28 19:26:03 -08:00
Jarred Sumner
98af486b89 Update README.md 2022-01-28 04:42:50 -08:00
Jarred Sumner
8f27b27a0e Update README.md 2022-01-28 04:39:20 -08:00
Jarred Sumner
aced5882d1 Update README.md 2022-01-28 04:38:01 -08:00
Jarred Sumner
839fd03472 Update README.md 2022-01-28 04:36:15 -08:00
Jarred Sumner
fb5a90cb1b Update README.md 2022-01-28 04:34:47 -08:00
Jarred Sumner
64a83f1427 Update README.md 2022-01-28 04:31:49 -08:00
Jarred Sumner
f684a16051 Update README.md 2022-01-28 04:30:48 -08:00
Jarred Sumner
2666b45f2a Add Bun.Transpiler doc to the readme 2022-01-28 04:26:40 -08:00
Alexander Kuznetsov
aad33c2611 Automate clang version checking / code signing (#113) 2022-01-27 19:09:40 -08:00
Jarred Sumner
ff2335a910 Stop reading "bun" from package.json
cc @hanford
2022-01-27 01:25:39 -08:00
Jarred Sumner
32733210dc [bunfig] Implement config file format 2022-01-27 01:25:09 -08:00
Jarred Sumner
9f5a1705a5 Don't look like a crash when CLI args are missing 2022-01-27 01:20:42 -08:00
Jarred Sumner
b4c1cea735 [cli] Add support for commands which optionally have one argument 2022-01-27 01:20:01 -08:00
Jarred Sumner
2572636004 Update Makefile 2022-01-26 18:14:10 -08:00
Jarred Sumner
3a962f3bad print file name on panic 2022-01-26 14:36:48 -08:00
Jarred Sumner
bfa2bc6736 merge 2022-01-25 20:04:24 -08:00
Jarred Sumner
354ed2880c Slightly safer 2022-01-25 20:00:23 -08:00
Jarred Sumner
9db4d195a7 Split http into files 2022-01-25 20:00:23 -08:00
Jarred Sumner
0808f29375 Update Dockerfile 2022-01-25 19:59:50 -08:00
Jarred Sumner
7dbfb3ef41 Fix up dev container 2022-01-25 19:59:50 -08:00
Jarred SUmner
333bccee5d On successful connect, switch to non-blocking sockets until we're about to close 2022-01-25 00:17:14 -08:00
Jarred SUmner
25c35e59b4 Fix getsockopt() 2022-01-25 00:00:16 -08:00
Jarred SUmner
ff7785e023 Automatically retry on would block 2022-01-24 23:42:16 -08:00
Jarred SUmner
0e138bcc8f Fallback to readev / writev 2022-01-24 23:30:23 -08:00
Jarred SUmner
ecea12d206 No io_uring for Ubuntu 20.04 2022-01-24 19:12:58 -08:00
Jarred Sumner
61d1c7b6b2 Update io_linux.zig 2022-01-23 23:11:41 -08:00
Jarred Sumner
b5cec4b704 [linux][http] return errno instead of unexpected 2022-01-23 23:11:06 -08:00
Jarred Sumner
e895605e5f [http] Remove usages of unreachable in syscall error handling 2022-01-23 23:06:44 -08:00
Jarred Sumner
f5a79ea6d2 Update io_linux.zig 2022-01-23 23:03:04 -08:00
Jarred Sumner
de0cf42111 Use non-cancellable syscalls for HTTP & use errno for errors 2022-01-23 23:00:15 -08:00
Jarred Sumner
ec9e4eb97e Improve error message when bun upgrade fails 2022-01-23 21:25:48 -08:00
Jarred Sumner
47b6a82920 Nice 2022-01-23 21:15:17 -08:00
Jarred Sumner
28f77b9823 Update analytics_thread.zig 2022-01-23 21:14:38 -08:00
Jarred Sumner
4ac8c1bd84 Add copyfile snippet 2022-01-23 21:14:34 -08:00
Jarred Sumner
962b7fa8d9 Add a callback when a thread spawns 2022-01-23 21:14:20 -08:00
Jarred Sumner
d6ebb478e3 Fix release build with debugging 2022-01-23 21:14:08 -08:00
Jarred Sumner
2b8893da53 Use a separate heap for HTTP 2022-01-23 21:12:59 -08:00
Jarred Sumner
744f52fb27 fake segfault test 2022-01-23 20:13:35 -08:00
Jarred Sumner
43b9f9462f Add kernel version to crash report 2022-01-23 20:11:17 -08:00
Jarred Sumner
d89aa9a9e6 Update main.zig 2022-01-23 20:10:55 -08:00
Jarred Sumner
084d78be29 Add C++ exception handler 2022-01-23 20:10:51 -08:00
Jarred Sumner
9c627e884d Create cat.mjs 2022-01-22 21:40:57 -08:00
Jarred Sumner
da83583cdf Create realpath.mjs 2022-01-22 21:19:18 -08:00
Jarred Sumner
4d9ae0df06 📷 2022-01-22 20:46:28 -08:00
Jarred Sumner
4d95e44317 Update helpers.h 2022-01-22 20:06:53 -08:00
Jarred Sumner
4b7235ac5f Update helpers.h 2022-01-22 20:06:18 -08:00
Jarred Sumner
4152c1b177 Update linker.zig 2022-01-22 19:41:01 -08:00
Jarred Sumner
dc5745080d Ensure we fully copy strings 2022-01-22 19:39:23 -08:00
Jarred Sumner
3dfac788fa Update http.zig 2022-01-22 19:17:07 -08:00
Jarred Sumner
c56ff7efb4 Rename bun:runtime -> bun:wrap so it fits 8 chars 2022-01-22 19:17:03 -08:00
Jarred Sumner
114c560912 Don't do isolated copy when we don't need to 2022-01-22 18:32:06 -08:00
Jarred Sumner
1576d183c9 Instead of 4 loops, we can do one switch statement 2022-01-22 18:31:45 -08:00
Jarred Sumner
0e0bfe91d0 [Bun.js] Resolve dynamic imports lazily 2022-01-22 18:31:28 -08:00
Jarred Sumner
d3559d1cca Update Makefile 2022-01-22 17:14:17 -08:00
Jarred Sumner
222a1cc9e8 Update Makefile 2022-01-22 17:09:24 -08:00
Jarred Sumner
03103925bd Skip dsym copy on linux 2022-01-22 17:07:20 -08:00
Jarred Sumner
9e470cb48e remove tempfiles 2022-01-22 16:52:19 -08:00
Jarred Sumner
376602a65c 📷 2022-01-22 16:46:23 -08:00
Jarred Sumner
8493cfe983 Clarify "Windows Subsystem for Linux" instead of "WSL"
thanks @MajesticString
2022-01-22 16:36:32 -08:00
Jarred Sumner
d11ac34dcb Add a release-safe option to Makefile 2022-01-22 16:25:33 -08:00
Jarred Sumner
08bc06dfe0 No more leading ./ necessary to pass a script to bun to execute 2022-01-22 16:25:21 -08:00
Jarred Sumner
f4fbf84294 Make Ref more safe 2022-01-22 16:23:14 -08:00
Jarred Sumner
56ae4bcb55 Ensure we allocate the correct number of argv 2022-01-22 16:21:45 -08:00
Jarred Sumner
ec61dc0665 [Resolver] Improve how we detect ESM 2022-01-22 16:21:08 -08:00
Jarred Sumner
b21b0ea849 Update report.zig 2022-01-22 16:20:55 -08:00
Jarred Sumner
318c423e14 [Resolver] Improve how we detect ESM 2022-01-22 16:20:35 -08:00
Jarred Sumner
834ff71157 Use newer hash table 2022-01-22 15:10:21 -08:00
Jarred Sumner
39a187d32e Update js_parser.zig 2022-01-22 15:09:37 -08:00
Jarred Sumner
146d2cc231 Sort imports 2022-01-22 15:09:28 -08:00
Jarred Sumner
87c95d45f7 Reset imported_module_ids 2022-01-22 15:00:25 -08:00
Jarred Sumner
f7f2f6e6b8 more tests 2022-01-21 21:03:06 -08:00
Jarred Sumner
3e803b3a58 Add test coverage for macro import behavior 2022-01-21 18:12:46 -08:00
Jarred Sumner
22c01ca14c FIx macros remap in Transpiler 2022-01-21 18:10:38 -08:00
Jarred Sumner
111f0921f5 [macros] Always remove imports to macros 2022-01-21 18:09:43 -08:00
Jarred Sumner
8c515c7077 Update exports.zig 2022-01-21 18:09:13 -08:00
Jarred Sumner
04579909ff [Bun.js] Fix error printing 2022-01-21 18:08:56 -08:00
Jarred Sumner
40ff3e4618 memory 2022-01-21 16:28:46 -08:00
Jarred SUmner
c0a446df02 Tags on pointers need to be cleared on Linux 2022-01-21 15:19:50 -08:00
Jarred Sumner
8f7cf6bf47 little 2022-01-21 05:09:58 -08:00
Jarred Sumner
4a7b5892af Add a little benchmark for transpiling from inside JS 2022-01-21 04:58:28 -08:00
Jarred Sumner
9a5aa95893 [Bun.js] Bun.Transpiler.transform & Bun.Transpiler.transformSync APIs 2022-01-21 03:39:27 -08:00
Jarred Sumner
8d623e21b6 [Bun.js] Add a threadpool for doing CPU-bound work 2022-01-21 03:37:05 -08:00
Jarred Sumner
7a87e41ab8 Update js_printer.zig 2022-01-21 03:36:27 -08:00
Jarred Sumner
f62f184241 Update logger.zig 2022-01-21 03:36:17 -08:00
Jarred Sumner
8ea69cb5d1 Improve reliabiltiy of multithreaded code by using threadlocal mimalloc heaps 2022-01-21 03:36:13 -08:00
Jarred Sumner
97f0cef391 [Bun.js] Fix TypedArray/ArrayBuffer <> Zig interop 2022-01-20 16:19:07 -08:00
Jarred Sumner
85084c6db9 Fix segfault 2022-01-20 01:42:23 -08:00
Jarred Sumner
a09b995651 Bun.Transpiler – API for scanning imports/exports of JSX/TSX/TS/JS files 2022-01-19 23:07:03 -08:00
Jarred Sumner
4098484ff5 Update Makefile 2022-01-19 13:48:57 -08:00
Jarred Sumner
91b24c6032 Update Makefile 2022-01-19 13:46:38 -08:00
Jarred Sumner
38d0f0bbd0 Update Dockerfile 2022-01-19 13:35:00 -08:00
Jarred Sumner
d3e39632bf Update Makefile 2022-01-19 13:34:15 -08:00
Jarred Sumner
43ae61e095 Update libbacktrace 2022-01-19 13:34:10 -08:00
Jarred Sumner
bd31c88814 Update Dockerfile.base 2022-01-19 13:26:45 -08:00
Jarred Sumner
02c59df1b3 Update release.sh 2022-01-19 13:26:26 -08:00
Jarred Sumner
f6c05ef7a1 small bugfix 2022-01-19 13:26:24 -08:00
Jarred Sumner
505e4b80fd Update fs.test.js 2022-01-19 02:39:25 -08:00
Jarred Sumner
cd8d88716f O3 2022-01-19 02:31:23 -08:00
Jarred Sumner
d3a93d5273 fs.*Sync(), bun wiptest, and More ™ (#106)
* very very wip

* almost ready to fix the errors

* Update identity_context.zig

* Update base.zig

* [bun test] It runs successfully

* Remove unnecessary call

* [Bun.js] Improve JS <> Zig unicode string interop

This fixes longstanding unicode bugs with `console.log` & `fetch`.

I believe @evanwashere reported this first awhile ago

* [Bun.js] Implement `Object.is()` binding and a way to set a timeout for script execution

* Update PLCrashReport.zig

* [Bun.js] Make `console.log` more closely match Node.js and Deno

* [Bun.js] Implement formatting specifier for console.*

* Implement `console.clear()`

* bug fix

* Support console.clear()

* Buffer stderr

* [bun test] Begin implementing Node.js `fs`

* Update darwin_c.zig

* Implement more of `fs`

* `mkdir`, `mkdir` recursive, `mkdtemp`

* `open`, `read` (and pread)

* Move some things into more files

* Implement readdir

* `readFile`, `readLink`, and `realpath`

* `writeFile`, `symlink`, `chown`, `rename`, `stat`, `unlink`, `truncate`

* `lutimes`

* Implement `SystemError` and begin wiring up the `fs` module

* `"fs"` - Most of the arguments / validation

* `fs` - Rest of the arguments / validations

* Begin wiring up the `fs` module

* Fix all the build errors

* support printing typed arrays in console.log

* It...works?

* Support `require("fs")`, `import fs from 'fs';`, `import * as fs from 'fs'`

* Fix a couple bugs

* get rid of the crash reporter for now

* Update fs.exports.js

* [bun.js] slight improvement to startup time

* [bun.js] Improve error message printing

* [Bun.js] Add `Bun.gc()` to run the garbage collector manually and report heap size

* [Bun.js] Add Bun.generateHeapSnapshot to return what JS types are using memory

* [Bun.js] Add `Bun.shrink()` to tell JSC to shrink the VM size

* Improve encoding reader

* [bun.js] Improve callback & microtask performance

* Update node_fs.zig

* Implement `console.assert`

* simple test

* [Bun.js] Prepare for multiple globals/realms to support testing

* Create callbacks-overhead.mjs

* Update http.zig

* [Bun.js] Implement `queueMicrotask`

* Add test for queueMicrotask

* 😪

* [Bun.js] Implement `process.versions`, `process.pid`, `process.ppid`, `process.nextTick`, `process.versions`,

* Implement `process.env.toJSON()`

* [Bun.js] Improve performance of `fs.existsSync`

* 💅

* [Bun.js] Implement `process.chdir(str)` and `process.cwd()`, support up to 4 args in `process.nextTick`

* Make creating Zig::Process lazy

* Split processi nto separte file

* [Bun.js] Node.js Streams - Part 1/?

* [Bun.js] Node.js streams 2/?

* WIP streams

* fix crash

* Reduce allocations in many places

* swap

* Make `bun` start 2ms faster

* Always use an apiLock()

* libBacktrace doesn't really work yet

* Fix crash in the upgrade checker

* Clean up code for importing the runtime when not bundling

* 📷

* Update linker.zig

* 68!

* backtrace

* no, really backtrace

* Fix

* Linux fixes

* Fixes on Linux

* Update mimalloc

* [bun test] Automatically scan for {.test,_test,.spec,_spec}.{jsx,tsx,js,cts,mts,ts,cjs}
2022-01-19 02:29:07 -08:00
Jarred Sumner
ed9637de50 Fix bug preventing multiple framework overrides 2022-01-05 17:27:46 -08:00
Jarred Sumner
4e744c057b Reduce memory usage 2022-01-05 16:42:08 -08:00
Jarred Sumner
4b717fe554 Fix crash that sometimes happens after 30 seconds 2022-01-05 16:41:58 -08:00
Jarred Sumner
236a0fde35 [bun bun][bun dev] Fix crash affecting large projects
ArrayList cannot be used here
2022-01-05 16:41:25 -08:00
Jarred Sumner
306d309209 move some code around 2022-01-05 15:04:50 -08:00
Jarred Sumner
a8f4cd271e we want the opposite of this 2022-01-05 13:21:45 -08:00
Jarred Sumner
3cd129544e [JS Parser] Reduce memory usage by ~8% 2022-01-05 13:12:11 -08:00
Jarred Sumner
1004e924ff minimal integration tests for macros 2022-01-05 13:12:11 -08:00
Jarred Sumner
c013ede227 Update resolver.zig 2022-01-05 13:12:11 -08:00
Jarred Sumner
914b363a37 Update options.zig 2022-01-05 13:12:11 -08:00
Jarred Sumner
8ad349dcf0 Update http.zig 2022-01-05 13:12:11 -08:00
Mateusz Burzyński
7146bfc04a Add module condition to the node platform (#104) 2022-01-05 02:45:15 -08:00
Mateusz Burzyński
e852bc0980 Drop redundant comments (#103) 2022-01-05 02:37:25 -08:00
Mateusz Burzyński
8a9b1416ed Tweak default main fields for the bun platform to match other popular bundlers (#102) 2022-01-05 02:35:01 -08:00
Jarred Sumner
9da7a1ff0a 💀 dead code 2022-01-04 22:20:01 -08:00
Jarred Sumner
219aa57fbd [bun dev] Print error in status line text 2022-01-04 22:19:50 -08:00
Jarred Sumner
5930ac09b7 noramlize some errors 2022-01-04 22:19:31 -08:00
Jarred Sumner
8837c3c10b [Bun.js][bun dev] Support macros inside of Bun.js
Closes #36
2022-01-04 22:12:37 -08:00
Jarred Sumner
0d0dd65a6a [bun bun] Fix error when regenerating node_modules.bun after moving it
I think @alii reported this awhile ago
2022-01-04 20:15:05 -08:00
Jarred Sumner
0ac9c4276f Improve how we detect if terminal colors are supported 2022-01-04 19:57:14 -08:00
Jarred Sumner
0edf6fd1e4 Improve error handling when out of file handles 2022-01-04 18:29:21 -08:00
Jarred Sumner
c9d6c25f71 Update build-id 2022-01-04 16:27:27 -08:00
Jarred Sumner
73fed6c093 Downgrade mimalloc due to crashes 2022-01-04 16:27:02 -08:00
Jarred Sumner
75f238fcb3 Upload compressed .dSYM for every release 2022-01-04 16:26:52 -08:00
Jarred Sumner
8706f77eb7 Update .gitignore 2022-01-04 16:26:12 -08:00
Jarred Sumner
3cf0689d46 [bun install] Fix more cases where bytes are printed instead of strings 2022-01-04 04:00:26 -08:00
Jarred Sumner
623f77e097 minor perf optimization: remove this loop on macOS 2022-01-04 04:00:06 -08:00
Jarred Sumner
61d6f8f18f Update crash_reporter_linux.zig 2022-01-03 22:46:21 -08:00
Jarred Sumner
6480193c65 😕 2022-01-03 22:39:08 -08:00
Jarred Sumner
23a31b3771 💅 2022-01-03 22:35:01 -08:00
Jarred Sumner
112b352b03 Update crash_reporter_linux.zig 2022-01-03 22:33:19 -08:00
Jarred Sumner
a48c20d470 Update PLCrashReport.m 2022-01-03 22:30:50 -08:00
Jarred Sumner
5fd47bc613 Update PLCrashReport.m 2022-01-03 22:30:20 -08:00
Jarred Sumner
6966d94d90 🔒 2022-01-03 22:26:37 -08:00
Jarred Sumner
5311219de7 dead code 2022-01-03 22:26:24 -08:00
Jarred Sumner
4119f60010 Create crash_reporter_linux.zig 2022-01-03 22:17:41 -08:00
Jarred Sumner
0960f3d6d1 Implement a crash reporter and improve some error handling in bun install 2022-01-03 22:17:34 -08:00
Jarred Sumner
64b49ddd95 fix deinit() 2022-01-03 22:15:45 -08:00
Jarred Sumner
2c27526a34 Update release.sh 2022-01-03 02:20:03 -08:00
Jarred SUmner
fe6b340382 Woops 2022-01-03 02:18:45 -08:00
Jarred SUmner
8148b8824f Improve debugging symbols on Linux 2022-01-03 01:46:11 -08:00
Jarred SUmner
be0c4b5451 [bun install] Reduce number of context switches 2022-01-03 01:42:40 -08:00
Jarred SUmner
168c6138d8 [bun upgrade] Free memory after checking for updates finishes 2022-01-03 01:41:47 -08:00
Jarred SUmner
b9555a5775 [bun install] Significant perf improvement to installing new packages and fixes 'bun install --production'. Closes #97 2022-01-03 01:40:30 -08:00
Jarred Sumner
b78fff9386 Update Dockerfile.base 2022-01-02 17:48:27 -08:00
Jarred Sumner
963c89cab2 LLVM 13 for WebKit 2022-01-02 17:33:21 -08:00
Jarred Sumner
d7ef6efd04 Update WebKit 2022-01-02 17:30:53 -08:00
Jarred Sumner
35fef33868 Update upgrade_command.zig 2022-01-02 16:31:19 -08:00
Jarred Sumner
8a9e81d514 Be a little smarter about sleeping the netwrok thread 2022-01-02 16:29:04 -08:00
Jarred Sumner
b17df61043 [bun dev] Upgrade-Insecure-Requests does not work for detecting HTTPS 2022-01-02 15:32:47 -08:00
Jarred Sumner
4e0cdf34b6 Bump because that CPU bug was bad 2022-01-02 15:29:25 -08:00
Jarred Sumner
a97dec5c30 [bun install] Fix bug that caused lockfile to appear as dirty in git when there were no real changes 2022-01-02 15:28:59 -08:00
Jarred Sumner
ad0834bedb Fix bug where bun uses ~15% of CPU idly 2022-01-02 15:28:20 -08:00
Jarred Sumner
b53c63910d sat 2022-01-02 03:57:50 -08:00
Jarred Sumner
5c0908ee52 Update bundler.zig 2022-01-02 03:57:50 -08:00
luke miles
7f33846005 copy: replace Bun with bun (#99)
Most CLI tools have the style convention of referring to themselves in
lowercase. It is, after all, the name that users type in when using
the tool. This PR maintains that convention in bun.

"Drop the uppercase B, it's cleaner"
2022-01-02 03:09:51 -08:00
Jarred Sumner
4afda10b82 [css] Only warn for tailwind once 2022-01-02 03:04:35 -08:00
Jarred Sumner
cc0e581bc3 [bun upgrade] Add fallback message if there's an error 2022-01-02 02:41:11 -08:00
Jarred Sumner
df1aa76cc5 Update settings.json 2022-01-02 00:22:59 -08:00
Jarred Sumner
a3a2fb1e4f Update http.zig 2022-01-02 00:22:52 -08:00
Jarred Sumner
915dadd9d7 prettier 2022-01-02 00:07:26 -08:00
Jarred Sumner
d899e0ac6f [bun dev] Detect HTTPS via Upgrade-Insecure-Requests 2022-01-02 00:07:17 -08:00
Jarred Sumner
3915e01cfb [bun install] Fix RenameAcrossMountPoints error 2022-01-02 00:06:45 -08:00
Jarred Sumner
2fc6da125f [libarchive] Allow passing a Dir fd instead of always creating a new dir 2022-01-02 00:04:03 -08:00
Jarred Sumner
ba4013816d Update bun.lockb 2022-01-01 20:27:14 -08:00
Jarred Sumner
b64113b7d9 Update bun.lockb 2022-01-01 20:04:09 -08:00
Jarred Sumner
a9483dd8dc Add bun install integration test 2022-01-01 19:48:25 -08:00
Jarred Sumner
5f2fb86a76 install 2022-01-01 19:47:48 -08:00
Jarred Sumner
386ba990bf Fix missing posix_memalign symbol 2022-01-01 19:43:42 -08:00
Jarred Sumner
7f1b5c09de 💅 2022-01-01 19:35:05 -08:00
Jarred Sumner
fcfdd71c06 [bun install] FIx crash when removing only dependency in package.json 2022-01-01 19:31:05 -08:00
Jarred Sumner
73336bbc00 🔒 2022-01-01 19:30:48 -08:00
Jarred Sumner
e7fa50635f Bump versions 2022-01-01 19:30:20 -08:00
Jarred Sumner
fddec80755 [bun-framework-next] Omit the absolute URLs 2022-01-01 18:54:17 -08:00
Jarred Sumner
dac3389b27 Update Dockerfile.base 2022-01-01 18:53:28 -08:00
Jarred Sumner
c952eb7dea Bump zig 2022-01-01 18:47:13 -08:00
Jarred Sumner
6a28cfd2ba [bun dev] Automatically set origin - improve support for proxying Bun
Previously, when running Bun behind a reverse proxy, you had to pass an explicit `--origin` arg and it could only run behind one proxy at a time.

Now, Bun automatically determines the origin from the request if possible. It reads `Forwarded`, `X-Forwarded-Proto`, `X-Forwarded-Host`, `Origin`, and lastly `Host`. If none are available, it falls back to the `--origin` CLI arg.

This change is important for usecases like Replit which shows multiple iframes in different origins.
2022-01-01 18:12:57 -08:00
Jarred SUmner
e4693b8aaf Clear the fd 2022-01-01 03:40:15 -08:00
Jarred SUmner
87e78e2a48 Handle more edgecases 2022-01-01 03:11:36 -08:00
Jarred SUmner
6ac9b5fa9d Bump 2022-01-01 02:37:55 -08:00
Jarred SUmner
71449c8638 Detect fast refresh from .bun if possible 2022-01-01 02:37:08 -08:00
Jarred SUmner
a17088363f [bun dev] Improve filesystem watcher & HMR reliability (Linux + a little macOS)
Text editors like Replit save through atomic file updates. In an inotify filesystem watcher (Linux), that appears to be a delete followed by moving the file to the directory. Now when known files are moved into a directory, the watcher sends the file change notification to the browser(s). From there, the browser looks at it's files to determine whether or not

Additionally, if an existing HMR connection does not know about a file ID passed to it, it asks the browser to reply with the file path and then starts watching that file. This improves HMR reliabiality if Bun had been restarted but the page hadn't been restarted.
2022-01-01 01:53:50 -08:00
Jarred Sumner
83004f0a0a Update build.zig 2021-12-31 18:24:28 -08:00
Jarred Sumner
c42fbbd10e Set to an explicit glibc 2021-12-31 18:23:59 -08:00
Jarred Sumner
d068d80ab9 Attempt to fix watcher issue with repl.it 2021-12-31 17:52:38 -08:00
Jarred Sumner
eb142a6be5 little test 2021-12-31 15:30:57 -08:00
Jarred Sumner
9fde2b28e1 bump 2021-12-31 15:15:09 -08:00
Jarred Sumner
195723180b [devserver] Log more errors when a websocket connection fails 2021-12-31 15:08:58 -08:00
Jarred Sumner
2e051cebaa Update http.zig 2021-12-31 15:08:19 -08:00
Jarred Sumner
795d0b056c [devserver] Case-insensitive request header comparison, which fixes issues with proxying Bun 2021-12-31 15:08:13 -08:00
Jarred Sumner
d7c69d3b78 Add unrolled case insensitive string comparison 2021-12-31 15:07:14 -08:00
Jarred Sumner
059aa425b7 Fix an edgecase that causes a crash in HTTP server 2021-12-31 15:06:06 -08:00
Jarred Sumner
aaf5c28c5b [bun install] Slightly more reliable HTTP 2021-12-31 00:14:24 -08:00
Jarred Sumner
3083bbadc1 Bump peechy again 2021-12-31 00:01:17 -08:00
Jarred Sumner
150ca5d686 woops 2021-12-30 23:57:06 -08:00
Jarred Sumner
58d1e2e1be 12 -> 13 2021-12-30 23:48:23 -08:00
Jarred Sumner
090bae9a94 Update zig version in Dockerfile 2021-12-30 23:36:15 -08:00
Jarred Sumner
113f0427ab Update settings.json 2021-12-30 23:21:10 -08:00
Jarred Sumner
36520d6ec1 [JavaScriptCore] Fix crash due to not requesting JIT permission by patching 2021-12-30 23:21:06 -08:00
Jarred Sumner
2a7d8df4c5 Fix issue with headers 2021-12-30 23:20:19 -08:00
Jarred Sumner
ac6a2bf2e5 fix occasional HTTP bug 2021-12-30 23:20:07 -08:00
Jarred Sumner
3c1cb806d4 Update c.zig 2021-12-30 22:32:41 -08:00
Jarred Sumner
e5587c2b31 Update global.zig 2021-12-30 22:31:41 -08:00
Jarred Sumner
8128c79e81 linux 2021-12-30 22:28:22 -08:00
Jarred Sumner
ae5e2f5af2 Update io_linux.zig 2021-12-30 22:09:51 -08:00
Jarred Sumner
a8b7b2a6b9 Update io_linux.zig 2021-12-30 22:08:14 -08:00
Jarred Sumner
111bef7f06 _ => . 2021-12-30 22:06:45 -08:00
Jarred Sumner
6f1c6fbc1a - => . 2021-12-30 22:05:44 -08:00
Jarred Sumner
31cd05191d Update bun.lockb 2021-12-30 22:04:41 -08:00
Jarred Sumner
efb8c4e36b Remove network_thread 2021-12-30 22:04:35 -08:00
Jarred Sumner
ed71379aa1 linux 2021-12-30 22:04:26 -08:00
Jarred Sumner
b1c3fce49b [internal] Move network_thread into http package 2021-12-30 21:27:27 -08:00
Jarred Sumner
e75c711c68 Upgrade to latest Zig, remove dependency on patched version of Zig (#96)
* Prepare to upgrade zig

* zig fmt

* AllocGate

* Update data_url.zig

* wip

* few files

* just headers now?

* I think everything works?

* Update mimalloc

* Update hash_map.zig

* Perf improvements to compensate for Allocgate

* Bump

* 📷

* Update bun.lockb

* Less branching

* [js parser] Slightly reduce memory usage

* Update js_parser.zig

* WIP remove unused

* [JS parser] WIP support for `with` keyword

* Remove more dead code

* Fix all the build errors!

* cleanup

* Move `network_thread` up

* Bump peechy

* Update README.md
2021-12-30 21:12:32 -08:00
Jarred Sumner
8d031f13c0 zig fmt 2021-12-29 02:49:25 -08:00
Jarred Sumner
42a73f91fe Update Makefile 2021-12-29 02:48:22 -08:00
Jarred Sumner
c508fd9b13 [bun install] Integration test 2021-12-29 02:48:16 -08:00
Jarred Sumner
c62949b98e Update http_bench.zig 2021-12-29 02:34:11 -08:00
Jarred Sumner
0b640c785f Update http_client_async.zig 2021-12-29 02:33:39 -08:00
Jarred Sumner
fe17d51b03 FIx bug in http client 2021-12-29 02:32:57 -08:00
Jarred Sumner
565cf23d92 More defensively search for shells to use if one is not found in the path 2021-12-28 04:04:29 -08:00
Jarred Sumner
020e2e00c3 Update build-id 2021-12-28 03:44:09 -08:00
Jarred Sumner
f4870050e0 Update cli.zig 2021-12-28 03:43:19 -08:00
Jarred Sumner
f31e67b13d woops 2021-12-28 03:42:44 -08:00
Jarred Sumner
6f4d48cc6c [bun run] revert change 2021-12-28 03:35:03 -08:00
Jarred Sumner
fb34ebc674 Update create_command.zig 2021-12-28 03:16:29 -08:00
Jarred Sumner
6c867c34d7 Fix edgecase in bun create tasks 2021-12-28 03:15:53 -08:00
Jarred Sumner
70a56028b6 use c-like functions 2021-12-28 03:04:30 -08:00
Jarred Sumner
08327e2748 Bump 2021-12-28 03:00:17 -08:00
Jarred Sumner
6d6b7f93f3 [bun run] Fix breaking bug 2021-12-28 02:59:50 -08:00
Jarred Sumner
0d95cf8f5b [Bun.js] If you pass a js-like file path to bun with no subcommand, attempt to run it with Bun.js 2021-12-28 02:47:35 -08:00
Jarred Sumner
471f9aec19 [bun run] Fix bug with absolute paths to js-like files 2021-12-28 02:46:50 -08:00
Jarred Sumner
b5beb20e08 dead code 2021-12-28 02:44:32 -08:00
Jarred Sumner
c8b6e2d5cd [bun install] Fix error message for no compatible binaries 2021-12-28 02:44:26 -08:00
Jarred Sumner
8ccb833421 [Bun.js] Add Bun.argv api, so you can get the arguments that started a script 2021-12-28 01:09:46 -08:00
Jarred Sumner
93ec969005 Add zig tests to ci (pr so it runs) (#93)
* WIP

* Create build-base-images.sh

* Update bun.yml

* Update bun.yml

* Update bun.yml

* copy

* Update Dockerfile

* Update Makefile

* Update Makefile

* Update Makefile

* noo

* Update Makefile
2021-12-28 00:05:46 -08:00
Jarred Sumner
5a42b59e91 Update add_completions.zig 2021-12-27 22:29:36 -08:00
Jarred Sumner
266870fee8 add oom workaround 2021-12-27 22:19:47 -08:00
Jarred Sumner
ca5245bb9b 📷 2021-12-27 20:44:37 -08:00
Jarred Sumner
84b3c952d9 backwards 2021-12-27 20:37:15 -08:00
Jarred Sumner
6ef71a800f Update pull.sh 2021-12-27 20:33:49 -08:00
Jarred Sumner
77778aeadf Update build-base.sh 2021-12-27 20:32:50 -08:00
Jarred Sumner
e8275b767e ypo 2021-12-27 20:32:24 -08:00
Jarred Sumner
efdf7fb93e Update build-base.sh 2021-12-27 20:32:00 -08:00
Jarred Sumner
1fd2d26185 use buildx 2021-12-27 20:27:34 -08:00
Jarred Sumner
cac19d9e8b Set platform when pulling 2021-12-27 20:09:22 -08:00
Jarred Sumner
1d03df7d33 Use mimalloc archive file on macOS to work around https://github.com/microsoft/mimalloc/issues/512 2021-12-27 20:03:03 -08:00
Jarred Sumner
90ae5cd897 Update Dockerfile 2021-12-27 19:14:44 -08:00
Jarred Sumner
bb346c8d2b Update build-id 2021-12-27 19:07:47 -08:00
Jarred Sumner
317932204e Add clone-submodules to devcontainer makefile 2021-12-27 19:07:12 -08:00
Jarred Sumner
a48c7e1d83 Update devcontainer 2021-12-27 18:54:38 -08:00
Jarred Sumner
336a4b6ac2 Prepare to run unit tests & remove some dead code (#92)
* Remove some dead code

* 💀 code

* Fix the zig tests

* [JS Printer] Print integers faster & less scientific notation on decimals

* 💀 dead code

* skip

* Run all the unit tests
2021-12-27 18:06:31 -08:00
Jarred Sumner
c9c7521f4f Fix edgecase in bun run where it would choose a directory instead of a file 2021-12-27 04:27:15 -08:00
Jarred Sumner
b455bc467d Fixes #90 2021-12-26 17:04:26 -08:00
Jarred Sumner
d1df057d08 Fix bug with bun add @scoped/package 2021-12-26 16:48:29 -08:00
Jarred Sumner
062aebeba0 Fix zig tests 2021-12-26 16:48:11 -08:00
Jarred Sumner
cff83a3fec Add dead code in build.zig for linking object files 2021-12-26 16:47:59 -08:00
Jarred Sumner
b08d5267cb Update bun-framework-next.yml 2021-12-26 03:21:17 -08:00
Jarred Sumner
1ce37acde6 Update bun.yml 2021-12-26 03:17:39 -08:00
Jarred Sumner
b7cd0c63e5 Update bun.yml 2021-12-26 03:16:40 -08:00
Jarred Sumner
a866da84d9 Update README.md 2021-12-26 03:14:15 -08:00
Jarred Sumner
6908f44aa2 Include docker 2021-12-26 03:13:50 -08:00
Jarred Sumner
181b8a2744 Update bun.yml 2021-12-26 02:48:24 -08:00
Jarred Sumner
5a7bebc8b5 Update Dockerfile 2021-12-26 02:02:14 -08:00
Jarred Sumner
536d6ab302 github actions (#91)
* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update Dockerfile

* switch

* 😯

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* wip

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* cache is broken

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* Update bun.yml

* bust it

* Update Dockerfile

* jm

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update Dockerfile

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* wip

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* Update Makefile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* pass executablePath

* alright

* Update Makefile

* Update Dockerfile

* Update Dockerfile

* Update Makefile

* Update Makefile

* Update Dockerfile

* lets try that

* Update Dockerfile

* Update bun.yml

* hm

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* not interactive

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* simplify this

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* missing

* Update Dockerfile

* Update Dockerfile

* wrong dir

* Update Dockerfile

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* Update bun.yml

* ordering

* Update Dockerfile

* Update bun.yml

* run-test file

* pass github workspace

* hm

* Update bun.yml

* copy the file

* Update run-test.sh

* Update bun.yml

* Update bun.yml

* Update bun.yml

* try this way

* Update bun.yml

* maybe?

* Update bun.yml

* maybe taht's it?

* maybe this

* cache

* up

* Update bun.yml

* Update bun.yml

* try this one i guess

* okay that might do it

* Update Dockerfile

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update chrome.json

* Update chrome.json

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* hm

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* fix caching I think

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* Update bun.yml

* maybe

* Update bun.yml

* fixup

* Update bun.yml

* Update bun.yml

* Update bun.yml

* maybe this time

* Update bun.yml

* Update Dockerfile

* random name

* ok

* explicit runner

* Update bun.yml

* Update bun.yml

* try deleting the files so the layer caching doesn't happen

* 🏃

* Update bun.yml

* Update bun.yml

* Update Dockerfile

* Update Dockerfile

* Update Dockerfile

* Dockerfile.base

* node.js

* Update bun.yml

* Update Dockerfile

* Update Dockerfile.base

* cleanup
2021-12-26 01:40:37 -08:00
Jarred Sumner
99446ffa8a zig 2021-12-24 20:44:36 -08:00
Jarred Sumner
143973e031 Fix rare crash when new thread is created, possibly only on musl 2021-12-24 20:44:25 -08:00
Jarred Sumner
bb5ad6e1ad Cleanup build issues 2021-12-24 20:43:53 -08:00
Jarred Sumner
6ae433249d musl 2021-12-24 03:53:16 -08:00
Jarred Sumner
5f5b824ade prepare to push dockerfile 2021-12-23 22:43:13 -08:00
Jarred Sumner
34abc8116c Typo 2021-12-24 06:34:33 +00:00
Jarred Sumner
1efaaefd63 Update Dockerfile 2021-12-23 22:18:51 -08:00
Jarred Sumner
cfd635786a Clarify 2021-12-24 06:17:14 +00:00
Jarred Sumner
11e3faa8da [bun bun] Improve error mesage when resolving entry point fails 2021-12-24 06:15:44 +00:00
Jarred Sumner
1002990619 Make integration tests more Docker-friendly 2021-12-24 06:15:44 +00:00
Jarred Sumner
a94bbd8f3c [bun create] Run with bun run 2021-12-24 06:15:44 +00:00
Jarred Sumner
46354da728 Add linux aarch64 target to installer 2021-12-24 06:15:44 +00:00
Jarred Sumner
2c7c2b3fa6 Update README.md 2021-12-23 21:13:30 -08:00
Jarred Sumner
938d866c1b 💅 2021-12-23 21:12:19 -08:00
Jarred Sumner
42ff5415ba Merge branch 'main' of github.com:/Jarred-Sumner/bun into main 2021-12-24 04:56:42 +00:00
Jarred Sumner
0e52be8427 Don't send os.MSG_NOSIGNAL 2021-12-24 04:50:27 +00:00
Jarred Sumner
5105614b83 Improve devcontainer environment errors 2021-12-24 04:49:57 +00:00
Jarred Sumner
77fc310a70 Update README.md 2021-12-23 19:59:26 -08:00
Jarred Sumner
3541177d50 typo 2021-12-23 19:58:49 -08:00
Jarred Sumner
3c3ab57cf6 💅 2021-12-23 19:57:47 -08:00
Jarred Sumner
b73e7a9732 Add VSCode devcontainer environment for easy contributing 2021-12-23 18:40:03 -08:00
Jarred Sumner
2047140dda Workaround miscompilation so JavaScriptCore runs on Linux AARCH64 2021-12-23 23:47:12 +00:00
Jarred Sumner
b7e2f6c71a Don't print out bytes in error 2021-12-23 02:02:31 -08:00
Jarred Sumner
e1505d88b1 Prevent crash due to SIGPIPE 2021-12-23 00:43:34 -08:00
Jarred Sumner
d04e5ea0ba [bun-framework-next] Handle edgecase where for some reason the document returned was empty 2021-12-22 22:46:34 -08:00
Jarred Sumner
3ebcd9bbe7 [bun-framework-next] Bump 2021-12-22 22:36:26 -08:00
Jarred Sumner
ab9ccc985a Bump 2021-12-22 22:34:54 -08:00
Jarred Sumner
2188be219e [bun-framework-next] fix ts errors 2021-12-22 22:31:25 -08:00
Jarred Sumner
a34792ce16 [Bun.js] Fix SSR when using fetch 2021-12-22 21:39:05 -08:00
Jarred Sumner
9160c9ae31 Fix spawning child bun processes 2021-12-22 21:37:33 -08:00
Jarred Sumner
8e05fbf43f Fix URL() in bun-framework-next 2021-12-22 21:35:08 -08:00
Jarred Sumner
c59ff7416a Move install above table of contents 2021-12-22 19:24:18 -08:00
Jarred Sumner
c943072193 Merge pull request #87 from alexkuz/patch-2
Add table of contents and tidy up README a bit
2021-12-22 19:23:31 -08:00
Jarred Sumner
d39cc1fb5f Keep it at 1024, but should be okay since we now reduce it 2021-12-22 19:16:47 -08:00
Jarred Sumner
005a0ec931 Update io_darwin.zig 2021-12-22 19:10:41 -08:00
Jarred Sumner
2cfdf29364 Fix error from requesting too much from io_uring 2021-12-22 19:05:39 -08:00
Alexander Kuznetsov
7254c71683 Add table of contents and tidy up README a bit 2021-12-23 01:10:14 +03:00
Jarred Sumner
328534605f ✂️ 💀 code 2021-12-22 02:41:31 -08:00
Jarred Sumner
5eb7383613 Update build-id 2021-12-22 02:41:14 -08:00
Jarred Sumner
75c2f4f394 fix test 2021-12-22 02:40:36 -08:00
Jarred Sumner
6cbe506915 [bun install] Fix bug with >= ranges (and improve test coverage) 2021-12-22 02:38:44 -08:00
Jarred Sumner
3d6ac8face Stack limit detection doesn't really work 2021-12-21 22:58:26 -08:00
Jarred Sumner
14fe014fdf Update Makefile 2021-12-21 22:41:41 -08:00
Jarred Sumner
8f16eeb82a copy-bun-release-dir 2021-12-21 22:31:50 -08:00
Jarred SUmner
84e5072741 WIP dockerfile fix 2021-12-21 22:01:22 -08:00
Jarred Sumner
3f72da9d0b Use Node 14 compatible syntax 2021-12-21 21:56:49 -08:00
Jarred Sumner
873e12c7c6 Add script for building zig 2021-12-21 21:56:01 -08:00
Jarred SUmner
fecfb784ee Run tests 2021-12-21 20:33:36 -08:00
Jarred SUmner
5a7014a418 Slightly safer 2021-12-21 19:44:59 -08:00
Jarred SUmner
ceae7ef672 Slightly less pointer chasing 2021-12-21 19:44:09 -08:00
Jarred SUmner
67b09911c1 Fix crash when TSConfigJSON has an error and multiple TSConfigJSON files were parsed \nThis was caused by reusing the filename buffer inappropriately. For unclear reasons, this only impacted Linux. 2021-12-21 19:43:43 -08:00
Jarred SUmner
3043bb70e1 Update Dockerfile 2021-12-21 19:41:26 -08:00
Jarred Sumner
ff99155f7d --dump-limits flag to inspect what the max file descriptor & stack size is 2021-12-21 18:48:52 -08:00
Jarred Sumner
dc2dae5d87 Update build-id 2021-12-21 18:02:50 -08:00
Jarred Sumner
76eeb5df42 Respect close_handles when extracting a tarball 2021-12-21 17:49:36 -08:00
Jarred Sumner
185a985a85 Update README.md 2021-12-21 17:37:19 -08:00
Jarred Sumner
834e8359ee Don't print bytes in error messages 2021-12-21 17:37:13 -08:00
Jarred Sumner
503f70bba4 Update README.md 2021-12-21 16:57:55 -08:00
Jarred Sumner
c3e45b662a Update README.md 2021-12-21 16:38:20 -08:00
Jarred Sumner
4f16f87b4d Write some docs 2021-12-21 16:35:52 -08:00
Jarred Sumner
9db1a5786d Merge pull request #86 from afonsoduarte/patch-1
Fixes typo in README
2021-12-21 15:59:04 -08:00
Afonso
b9b150f147 Fixes typo in README 2021-12-21 23:53:45 +00:00
Jarred Sumner
0eecec75e2 Update Makefile 2021-12-21 15:22:10 -08:00
Jarred Sumner
581f3540b6 Mention bun install in readme (still writing) 2021-12-21 15:08:11 -08:00
Jarred Sumner
68dabd4d25 Update README.md 2021-12-21 14:13:18 -08:00
Jarred Sumner
59b171db04 Building for Linux AMD64 via Dockerfile works now 2021-12-21 03:03:41 -08:00
Jarred Sumner
e97ebfb036 Update Dockerfile 2021-12-21 02:30:20 -08:00
Jarred Sumner
7380d03e00 Update Dockerfile 2021-12-21 02:15:27 -08:00
Jarred Sumner
5be558ef15 Update Dockerfile 2021-12-21 02:11:32 -08:00
Jarred Sumner
a7116cf353 switch to build arch 2021-12-21 02:06:57 -08:00
Jarred Sumner
3147f69435 Update Dockerfile 2021-12-21 02:04:38 -08:00
Jarred Sumner
0ef9b00dc7 Update .dockerignore 2021-12-21 01:54:54 -08:00
Jarred Sumner
bc05793cbe Delete Dockerfile-zig 2021-12-21 01:54:48 -08:00
Jarred Sumner
fd349f3020 Update Makefile 2021-12-21 01:54:45 -08:00
Jarred Sumner
df5a3c4da4 Add Dockerfile for building Bun 2021-12-21 01:54:42 -08:00
Jarred Sumner
fe415a30c5 Copy-pastable 2021-12-21 01:47:04 -08:00
Jarred Sumner
382208e59c Handle aarch64 vs arm64 2021-12-21 00:13:57 -08:00
Jarred Sumner
ed02a24e0e Update build.zig 2021-12-21 00:12:03 -08:00
Jarred Sumner
e712d3458c Update build.zig 2021-12-21 00:05:47 -08:00
Jarred Sumner
685681dedc system libiconv 2021-12-21 00:03:15 -08:00
Jarred Sumner
b412da6b8a System libiconv 2021-12-21 00:03:04 -08:00
Jarred Sumner
03dc674c2d Prevent linking to glibc 2.3x in release builds 2021-12-20 19:47:33 -08:00
Jarred Sumner
d0bcd3c6fb -static doesn't work 2021-12-20 18:13:39 -08:00
Jarred Sumner
6649218e17 Update dependency.zig 2021-12-20 17:56:22 -08:00
Jarred Sumner
453fae4a5c [bun install] Strip leading v in versions 2021-12-20 17:52:50 -08:00
Jarred Sumner
3f32222360 Update makefile to better support building JavaScriptCore on Linux 2021-12-20 17:18:05 -08:00
Jarred Sumner
479705e8ce Fix error 2021-12-20 01:49:39 -08:00
Jarred Sumner
e8fc9d5c9b Set macOS min flags 2021-12-20 00:59:21 -08:00
Jarred Sumner
38d3b200b5 Update cli.zig 2021-12-20 00:00:04 -08:00
Jarred Sumner
a0551a9b8b Autocomplete popular package names (thanks @evanwashere) 2021-12-19 23:30:25 -08:00
Jarred Sumner
be03fc273a Move folder_resolver to a separate file 2021-12-19 17:31:29 -08:00
Jarred Sumner
ab496e9e34 Remove duplicate code 2021-12-19 17:31:10 -08:00
Jarred Sumner
81e7576150 Fix error and fix ../ 2021-12-19 17:09:19 -08:00
Jarred Sumner
2e69f15c20 Relative paths outside project 2021-12-19 14:48:12 -08:00
Jarred Sumner
0c7b35d0ab [bun install] Support file: protocol for installing folders as packages 2021-12-19 14:38:32 -08:00
Jarred Sumner
e12f10ae0e [bun install] More git protocols are valid 2021-12-19 14:37:43 -08:00
Jarred Sumner
961b704a8e Update install.zig 2021-12-18 23:40:48 -08:00
Jarred Sumner
4ee8055f17 Show help text when no options 2021-12-18 23:29:39 -08:00
Jarred Sumner
394335fa91 Update bun.fish 2021-12-18 23:06:07 -08:00
Jarred Sumner
8125c05be0 Update fish completions 2021-12-18 23:04:31 -08:00
Jarred Sumner
059f01d23a Add new zsh completions 2021-12-18 21:44:17 -08:00
Jarred Sumner
5f80f9c814 cross-promotion 2021-12-18 21:36:12 -08:00
Jarred Sumner
0cee57f1d9 Merge pull request #80 from Jarred-Sumner/jarred/npm-install
bun install
2021-12-18 21:07:07 -08:00
Jarred Sumner
eab99b3bae Remove references to s2n 2021-12-18 21:06:15 -08:00
Jarred Sumner
a1e1509358 Create .gitattributes 2021-12-18 21:03:31 -08:00
Jarred Sumner
39d8b0c8c1 cleanup 2021-12-18 21:03:26 -08:00
Jarred Sumner
1356029bea [bun install] Ignore peer dependencies for root packages 2021-12-18 20:39:53 -08:00
Jarred Sumner
b8af8a1af0 Update Makefile 2021-12-18 20:33:47 -08:00
Jarred Sumner
06c79cffae 💅 2021-12-18 20:25:02 -08:00
Jarred Sumner
430fe09d6d Delete synchronous HTTP client! 2021-12-18 20:23:10 -08:00
Jarred Sumner
5455c71f93 fix build issue on macOS 2021-12-18 20:03:09 -08:00
Jarred Sumner
e2d6c692c4 Use new http in bun upgrade 2021-12-18 20:03:00 -08:00
Jarred Sumner
501fab0bef 2x - 5x faster bun create 2021-12-18 20:02:33 -08:00
Jarred Sumner
1f1c337eb6 no more hop 2021-12-18 17:54:07 -08:00
Jarred Sumner
1c9131a5d7 Not using hop! 2021-12-18 17:50:35 -08:00
Jarred Sumner
fb758a32e1 Update Makefile 2021-12-17 23:07:01 -08:00
Jarred Sumner
d4c55557c3 Implement hop archive format 2021-12-17 23:06:56 -08:00
Jarred Sumner
0e39174c48 Update the misctools bins 2021-12-17 16:59:49 -08:00
Jarred Sumner
40401a6ed2 Update build-id 2021-12-17 16:12:33 -08:00
Jarred SUmner
74ea36ac1c WIP hop 2021-12-17 15:47:24 -08:00
Jarred Sumner
2d48674c5b bindings 2021-12-17 02:44:55 -08:00
Jarred Sumner
42c7d887d3 👶event loop 2021-12-17 02:44:35 -08:00
Jarred Sumner
8dcaaa9e09 packaging 2021-12-17 02:43:43 -08:00
Jarred Sumner
267e926a38 [internal] Use more packages 2021-12-17 02:42:55 -08:00
Jarred Sumner
11e6ffaae9 Update launch.json 2021-12-16 19:18:51 -08:00
Jarred Sumner
6a5dd6ed58 Update build.zig 2021-12-16 19:18:51 -08:00
Jarred Sumner
bcd68b937d wip 2021-12-16 19:18:51 -08:00
Jarred Sumner
9fab7ca06c Add some timestamps 2021-12-16 19:18:51 -08:00
Jarred Sumner
4082a34599 Update install.zig 2021-12-16 19:18:51 -08:00
Jarred Sumner
f9debc72fa Print specifically installed packages 2021-12-16 19:18:51 -08:00
Jarred Sumner
b363402f45 [bun install] Support linking binaries & native binaries 2021-12-16 19:18:51 -08:00
Jarred Sumner
b0942fbc37 [bun install] Fix edgecase with optional peer deps 2021-12-16 19:18:51 -08:00
Jarred Sumner
e3a12ea1a9 [bun install] Fix bun add so it writes the resolved version to package.json 2021-12-16 19:18:51 -08:00
Jarred Sumner
5dd6fb8547 [bun install] Add clonefile_each_dir and hardlink backend for copying files 2021-12-16 19:18:51 -08:00
Jarred Sumner
8586d2e41c [bun install] Support dependencies prefixed with "npm:" 2021-12-16 19:18:51 -08:00
Jarred Sumner
ba1e95fd43 [bun install] Hoisting works! 2021-12-16 19:18:51 -08:00
Jarred Sumner
e7538d7b26 document failed Link tag experiment in script src 2021-12-16 19:18:51 -08:00
Jarred Sumner
2b7ebaceb2 wip slow hoister 2021-12-16 19:18:51 -08:00
Jarred Sumner
3de3c3c143 [bun install] Allow skipping peer, optional, and dev dependency installs. Hoisting 2021-12-16 19:18:51 -08:00
Jarred Sumner
0e0e325e5b [bun install] optionalDependencies override dependencies if both specified 2021-12-16 19:18:51 -08:00
Jarred Sumner
e97106c770 [bun install] order() and fmt() 2021-12-16 19:18:51 -08:00
Jarred Sumner
50f8e0daa8 [bun install] Improve test coverage for tilda version ranges 2021-12-16 19:18:51 -08:00
Jarred Sumner
efcf846b2c [bun install] Fix bug with ~Tilda 2021-12-16 19:18:51 -08:00
Jarred Sumner
afe3e13345 [bun install] Fix bug with optional peer deps 2021-12-16 19:18:51 -08:00
Jarred Sumner
461c769ac4 Track peer dependencies but don't install them 2021-12-16 19:18:51 -08:00
Jarred Sumner
0dc0d6c31c Update npm.zig 2021-12-16 19:18:51 -08:00
Jarred Sumner
49d8ea4886 [bun install] Fix case when lockfile exists 2021-12-16 19:18:51 -08:00
Jarred Sumner
e66776a79f Slightly better progress bar 2021-12-16 19:18:51 -08:00
Jarred Sumner
3036cbe552 bun add and bun remove sorta works now. but not fast enough! 2021-12-16 19:18:51 -08:00
Jarred Sumner
393aa076bc [bun install] Most of bun add, bun remove 2021-12-16 19:18:51 -08:00
Jarred Sumner
0ef6f81843 Add some progress feedback 2021-12-16 19:18:51 -08:00
Jarred Sumner
339fe00dfe CLI flags 2021-12-16 19:18:51 -08:00
Jarred Sumner
6382bb5333 [bun install] Start add/remove command 2021-12-16 19:18:51 -08:00
Jarred Sumner
41c60fb848 [bun install] move around some code 2021-12-16 19:18:51 -08:00
Jarred Sumner
8df49bc823 Update install.zig 2021-12-16 19:18:51 -08:00
Jarred Sumner
ab4129061e [bun install] Deduplicate packages by default 2021-12-16 19:18:51 -08:00
Jarred Sumner
021a670d86 Fix bug with ~tilda ranges 2021-12-16 19:18:51 -08:00
Jarred Sumner
fa27551428 [bun install] Install top-level node_modules 2021-12-16 19:18:51 -08:00
Jarred Sumner
538243dc3b [bun install] Deterministic lockfile and simple installs 2021-12-16 19:18:51 -08:00
Jarred Sumner
d83c610002 [bun install] Support printing yarn.lock 2021-12-16 19:18:51 -08:00
Jarred Sumner
196f7eb101 Update launch.json 2021-12-16 19:18:51 -08:00
Jarred Sumner
a1167d80b2 Update .gitignore 2021-12-16 19:18:51 -08:00
Jarred Sumner
a765b13f52 [bun install] Add some config flags 2021-12-16 19:18:51 -08:00
Jarred Sumner
45b3e9d03c [bun install] Shrink binary format size by 2.5x 2021-12-16 19:18:51 -08:00
Jarred Sumner
5844166047 [bun install] Load lockfile. Generate diffs 2021-12-16 19:18:51 -08:00
Jarred Sumner
c6dcc1cd9e [bun install] Lockfile saves. Starting to implement diffing 2021-12-16 19:18:51 -08:00
Jarred Sumner
118ed4d2ab [bun install] Generate a lockfile 2021-12-16 19:18:51 -08:00
Jarred Sumner
9fcd2c53c8 [JSON parser] const has better codegen (unlike in JavaScript!) 2021-12-16 19:18:51 -08:00
Jarred Sumner
da80830bc5 Mimalloc cleanup 2021-12-16 19:18:51 -08:00
Jarred Sumner
b060056480 Update memory_allocator.zig 2021-12-16 19:18:51 -08:00
Jarred Sumner
b71df3a3d4 Bump mimalloc 2021-12-16 19:18:51 -08:00
Jarred Sumner
128e9861f9 [bun install] Most of the Lockfile format (not done yet) 2021-12-16 19:18:51 -08:00
Jarred Sumner
5d2cb27562 Start to restructure code 2021-12-16 19:18:51 -08:00
Jarred Sumner
75e340bfbf Resolve peer dependencies & optional dependencies too 2021-12-16 19:18:51 -08:00
Jarred Sumner
b5744e5da4 save and load manifest 2021-12-16 19:18:51 -08:00
Jarred Sumner
7bad5770a1 Channel seems faster or maybe the same? 2021-12-16 19:18:51 -08:00
Jarred Sumner
809c1e46d8 [npm install] starting to look good! 2021-12-16 19:18:51 -08:00
Jarred Sumner
c056093125 WIP 2021-12-16 19:18:51 -08:00
Jarred Sumner
88ea1de80f 📻 2021-12-16 19:18:51 -08:00
Jarred Sumner
7c8a835fa0 fix build 2021-12-16 19:18:51 -08:00
Jarred Sumner
c6317888da Fix redirects 2021-12-16 19:18:51 -08:00
Jarred Sumner
9f1946ce70 [npm install] Use BoringSSL for https:// requests 2021-12-16 19:18:51 -08:00
Jarred Sumner
32be2866f6 Replace S2N with BoringSSL (wip) 2021-12-16 19:18:51 -08:00
Jarred Sumner
448d60ebbf Update Makefile 2021-12-16 19:18:51 -08:00
Jarred Sumner
c536370ab8 [internal] readlink 2021-12-16 19:18:51 -08:00
Jarred Sumner
dccc6bf1af [http_debug] Pretty print 2021-12-16 19:18:51 -08:00
Jarred SUmner
e331ebbf7d [bun install] Linux async http 2021-12-16 19:18:51 -08:00
Jarred Sumner
b1660fa468 [bun install] async http request works I think? 2021-12-16 19:18:51 -08:00
Jarred Sumner
4af743766d [bun install] Begin to add io_uring (via tigerbeetle/@kprotty's interface) 2021-12-16 19:18:51 -08:00
Jarred Sumner
8f35f16c7e [libarchive] Fix occasional segfault 2021-12-16 19:18:51 -08:00
Jarred Sumner
e08710e373 [bun install] Resolve more packages 2021-12-16 19:18:51 -08:00
Jarred Sumner
48b9af1298 [bun install] Track build/pre tags with a bitset 2021-12-16 19:18:51 -08:00
Jarred Sumner
cec59bc580 don't need sleep since not a universal binary anymore 2021-12-16 19:18:51 -08:00
Jarred Sumner
dff23f5a7b wip 2021-12-16 19:18:51 -08:00
Jarred Sumner
bcdff7f6f0 [bun install] Support dist-tags 2021-12-16 19:18:51 -08:00
Jarred Sumner
49dbf79e81 WIP 2021-12-16 19:18:51 -08:00
Jarred Sumner
1610ff33ea [bun install] some things install 2021-12-16 19:18:51 -08:00
Jarred Sumner
b5fd121f26 [bun install] WIP 2021-12-16 19:18:51 -08:00
Jarred Sumner
c292ea7b94 [bun install] WIP 2021-12-16 19:18:51 -08:00
Jarred Sumner
de56f3a562 [bun install] WIP 2021-12-16 19:18:51 -08:00
Jarred Sumner
94e469c803 [bun install] WIP 2021-12-16 19:18:51 -08:00
Jarred Sumner
0d369baf9d [bun install] implement serialization/deserialization of package versions in an efficient binary format
This is most of the code but does not compile yet
2021-12-16 19:18:51 -08:00
Jarred Sumner
0ab00df154 [bun install] Make Semver serializable 2021-12-16 19:18:51 -08:00
Jarred Sumner
6167d95167 Update string_immutable.zig 2021-12-16 19:18:51 -08:00
Jarred Sumner
d582e42d4d wip 2021-12-16 19:18:51 -08:00
Jarred Sumner
6da14ae310 wip 2021-12-16 19:18:51 -08:00
Jarred Sumner
442f85e89e [bun install] support hyphen ranges in node-semver 2021-12-16 19:18:51 -08:00
Jarred Sumner
8cf8bf441e [bun install] node-semver works excluding hyphen ranges 2021-12-16 19:18:51 -08:00
Jarred Sumner
2cc25f64f2 [bun install] Add tests for parsing Semver versions 2021-12-16 19:18:51 -08:00
Jarred Sumner
035008cd9d [bun install] node-semver implementation (doesn't run yet) 2021-12-16 19:18:51 -08:00
Jarred Sumner
e7f1ff14d6 [bun install] Begin to port my golang node-semver to Zig 2021-12-16 19:18:51 -08:00
Jarred Sumner
c092d2ba70 Update snippets.json 2021-12-16 19:18:30 -08:00
Jarred Sumner
d1783babd9 📷 2021-12-16 18:32:48 -08:00
Jarred Sumner
7519f364e5 Update README.md 2021-12-16 18:26:40 -08:00
Jarred Sumner
7f9ab7dfce ICU should be in deps 2021-12-16 18:25:59 -08:00
Jarred Sumner
f9d87f28f6 Update build-id 2021-12-16 18:16:28 -08:00
Jarred Sumner
dd7225fb2a Add regression test for try / catch with import & require 2021-12-16 18:14:41 -08:00
Jarred Sumner
134748a238 [transpiler] Partially support top-level await in HMR 2021-12-16 18:14:06 -08:00
Jarred Sumner
b57d890cbd Update bundler.zig 2021-12-16 18:01:07 -08:00
Jarred Sumner
50163e1385 Disable imports which are not found 2021-12-16 17:57:44 -08:00
Jarred Sumner
fde4cd4d17 Enable top-level await in browsers 2021-12-16 17:57:13 -08:00
Jarred Sumner
b6e164355b [JS parser] Track import records that were converted to star imports due to require 2021-12-16 17:57:03 -08:00
Jarred Sumner
2e9af40bca [transpiler] Don't insert import statements for disabled require() 2021-12-16 17:56:32 -08:00
Jarred Sumner
2f45c3d2cd Update Makefile 2021-12-16 15:37:38 -08:00
Jarred Sumner
d763c0ab4e Bump again I guess 2021-12-16 15:37:32 -08:00
Jarred Sumner
baa93d4b37 📷 2021-12-16 03:42:28 -08:00
Jarred Sumner
dd7659c643 Print errors below warnings 2021-12-16 02:42:09 -08:00
Jarred Sumner
aed6f89772 [bun bun] Fix a race condition introduced in #55ff681976f7bae5a428c409061991c07fa492e7 2021-12-16 02:41:47 -08:00
Jarred Sumner
39af1ccc7c Update js_printer.zig 2021-12-16 01:48:50 -08:00
Jarred Sumner
52f4ba767a [http] Fix bug with Link header 2021-12-16 01:48:31 -08:00
Jarred Sumner
0f853a2fee Update js_printer.zig 2021-12-16 01:33:07 -08:00
Jarred Sumner
ca807afba2 📷 2021-12-16 01:31:09 -08:00
Jarred Sumner
e349e54cb8 bump build id 2021-12-16 01:31:01 -08:00
Jarred Sumner
39218ec0f7 [macros] Do not automatically load node_modules.bun in macros 2021-12-16 01:30:54 -08:00
Jarred Sumner
908d9d86b3 [macros] Slightly improve error message if macros fail to load 2021-12-16 01:30:23 -08:00
Jarred Sumner
92f3efeac2 [bundler][JS transpiler] Improve reliability of ESM <> CommonJS interop
This fixes a number of issues caused by not using live bindings when referencing bundled code. This also fixes an issue with libraries looping over `Object.keys(moduleNamespace)`
2021-12-16 01:29:45 -08:00
Jarred Sumner
a772b56cb6 [http] Ensure errors from macros can see source code 2021-12-16 00:47:24 -08:00
Jarred Sumner
bd6b9a58d3 [internal] disable debug workaround 2021-12-16 00:44:39 -08:00
Jarred Sumner
873cacc15a [bundler] Fix edgecase where certain modules would load unbundled versions
Some packages have many `package.json` files with no `name` in them, often to indicate `sideEffects` or change `exports`.

When bundling node_modules, we need a name to map a package back to the list of bundled packages.
2021-12-16 00:43:39 -08:00
Jarred Sumner
55ff681976 [resolver] Change extension order based on import kind 2021-12-16 00:41:23 -08:00
Jarred Sumner
618ecdb76c [resolver] When importing from an ES Module, prefer .{m,c}{t,j}s 2021-12-16 00:39:49 -08:00
Jarred Sumner
8af6ad7278 wip fix live bindings 2021-12-15 17:08:04 -08:00
Jarred Sumner
c07de8c4d3 [JS transpiler] Simplify CommonJS interop callback 2021-12-15 17:08:04 -08:00
Jarred Sumner
e10fe8aaad [JS transpiler] Ensure reserved words don't end up in nonUniqueIdentifier() 2021-12-15 17:08:04 -08:00
Jarred Sumner
feb45edf6d [JS Parser] Add regression test 2021-12-15 16:58:41 -08:00
Jarred Sumner
0a916543b3 [JS Parser] Fix bug with template literals that create new scopes in the tag and the template literal value 2021-12-15 16:52:38 -08:00
Jarred Sumner
2c53ff2980 Add a resource hint for preloading node_modules.bun and route asset in the fallback rendering 2021-12-11 15:58:16 -08:00
Jarred Sumner
b2fcc027a9 [resolver] Do not throw on require()/import errors when they're caught (and import is an await target) 2021-12-04 03:26:14 -08:00
Jarred Sumner
1dc78ba4b7 Bump 2021-11-26 00:13:00 -08:00
Jarred Sumner
04e0910dea Fix occasional segfault when parsing JSON in http server 2021-11-25 17:17:17 -08:00
Jarred Sumner
d19a6199ea Revert "Merge pull request #70 from Jarred-Sumner/lithdew/picohttp-mimalloc"
This reverts commit e8925e47b0, reversing
changes made to f82aa92c38.
2021-11-25 17:08:22 -08:00
Jarred Sumner
e8925e47b0 Merge pull request #70 from Jarred-Sumner/lithdew/picohttp-mimalloc 2021-11-24 13:16:26 -08:00
Kenta Iwasaki
cc712668f0 mimalloc: patch malloc/free 2021-11-24 21:05:15 +00:00
Kenta Iwasaki
f7dbf5ac38 deps: add missing mimalloc dep to jsc bindings header generator 2021-11-24 17:26:02 +00:00
Kenta Iwasaki
283a01493c deps: build picohttp and mimalloc using zig
Reduce the amount of dependencies which need to be externally built
before Bun can be built.

Remove clause to enforce that Bash syntax is used in Makefile, as the
clause only works on a few Linux distros which assume bash is located at
/bin/bash.
2021-11-24 17:09:54 +00:00
Jarred Sumner
f82aa92c38 Merge pull request #65 from Jarred-Sumner/bun-framework-next-actions
Begin working on CI tasks for bun-framework-next
2021-11-23 16:35:45 -08:00
Jack Hanford
7660f72745 update Next version on global 2021-11-23 16:55:26 -05:00
Jarred Sumner
4e4f2058c2 Update build-id 2021-11-23 13:54:41 -08:00
Jack Hanford
ca25e32c0f fix shallow routing 2021-11-23 16:23:31 -05:00
Jack Hanford
5a1f60c729 remove comment 2021-11-23 11:05:05 -05:00
Jack Hanford
ac242f94ca add react-dom as devDep 2021-11-23 10:53:44 -05:00
Jack Hanford
9ab9b01a64 stop installing textencoder 2021-11-23 10:51:08 -05:00
Jack Hanford
cdeb39bd7f begin addressing more feedback 2021-11-23 10:42:04 -05:00
Jack Hanford
1d01ffeb9e remove .then 2021-11-22 22:19:53 -05:00
Jack Hanford
25a49005cc another try 2021-11-22 21:58:35 -05:00
Jack Hanford
875b60dfe5 add type fns 2021-11-22 21:55:57 -05:00
Jack Hanford
c071037485 try adding lib.ts 2021-11-22 21:52:28 -05:00
Jack Hanford
4edfa171f0 update copy 2021-11-22 21:28:23 -05:00
Jack Hanford
0eb3cdc43c add typechecking to action 2021-11-22 21:27:51 -05:00
Jack Hanford
f747fd9dfa ts-expect-error the remaining ts-errors 2021-11-22 21:25:57 -05:00
Jack Hanford
c06e34c687 misc 2021-11-22 10:23:14 -08:00
Jack Hanford
7f62169b5e add prettier to root 2021-11-22 10:21:29 -08:00
Jack Hanford
5b2c7ad1f3 another try 2021-11-22 10:21:29 -08:00
Jack Hanford
c535cd7613 remove filter from action 2021-11-22 10:21:29 -08:00
Jack Hanford
6e21c9927c remove workspace caching 2021-11-22 10:21:29 -08:00
Jack Hanford
c3d9804e85 reset file 2021-11-22 10:21:29 -08:00
Jack Hanford
30c79875a3 remove pnpm-workspace 2021-11-22 10:21:29 -08:00
Jack Hanford
a79153f6e0 remove unused proxy shim 2021-11-22 10:21:29 -08:00
Jack Hanford
87319ba73d remove export from empty 2021-11-22 10:21:29 -08:00
Jack Hanford
cb18bf7e5d begin working on renderDocument 2021-11-22 10:21:29 -08:00
Jack Hanford
304a36b814 fix lockfile 2021-11-22 10:21:29 -08:00
Jack Hanford
6ee673095c continue fixing typescript errors 2021-11-22 10:21:28 -08:00
Jack Hanford
cf4964c8f4 add empty.js 2021-11-22 10:21:28 -08:00
Jack Hanford
a1b88e85fd mv empty.tsx -> empty.js 2021-11-22 10:21:27 -08:00
Jack Hanford
46a8215092 consolidate empty files / references to one empty.tsx 2021-11-22 10:21:14 -08:00
Jack Hanford
62694f0ee9 add typescript checking 2021-11-22 10:20:47 -08:00
Jack Hanford
e8bdf1c7db move into workflows folder 2021-11-22 10:20:47 -08:00
Jack Hanford
2af4192756 begin working on CI tasks for bun-framework-next 2021-11-22 10:20:47 -08:00
Jarred Sumner
fd80d0a22d Fix loading CSS benchmark 2021-11-21 17:30:50 -08:00
Jarred Sumner
86743ab361 Bump bun-framework-next 2021-11-21 17:04:18 -08:00
Jarred Sumner
cca8081f2e add env var for disabling bun.js SSR 2021-11-21 17:02:21 -08:00
Jarred Sumner
5c5b246cc3 [bun-framework-next] Fix React 18 in fallback mode 2021-11-21 16:58:50 -08:00
Jarred Sumner
469a36e3b6 [HMR] Large perf improvement for JS hot reloads at runtime
From benchmarking, I noticed that a lot of time was spent running
`HMRModule.update()`.

We don't need to call that function if updates for the same module ID have not changed any exports
2021-11-21 03:52:14 -08:00
Jarred Sumner
f9d333bec2 Merge pull request #68 from mfeckie/docs/dev
Docs/dev
2021-11-19 17:54:01 -08:00
Martin Feckie
38879cd3d9 Add information about code signing 2021-11-20 09:44:41 +08:00
Martin Feckie
eb3123adb8 Add information about node modules 2021-11-20 08:54:31 +08:00
Jarred Sumner
2b4f20b94c Update build-id 2021-11-16 21:28:00 -08:00
Jarred Sumner
19949c0743 Update fixtures.zig 2021-11-16 21:26:41 -08:00
Jarred Sumner
8d03e0cf02 [router] Improve test coverage & handle case-sensitive static routes better 2021-11-16 21:26:37 -08:00
Jarred Sumner
265b1035f4 [router] Fix case sensitivity bug with route params 2021-11-16 16:57:02 -08:00
Jarred Sumner
8e0230b756 [router] Tweak sorting order & update routing tests 2021-11-16 16:33:33 -08:00
Jarred Sumner
478273e044 [router] Update router tests 2021-11-16 15:34:22 -08:00
Jarred Sumner
d0c2f5495c [internal] Fix issue with tests 2021-11-16 15:34:09 -08:00
Jarred Sumner
4a09ad51f0 [router] Fix bug with dynamic route params for route segments in the middle 2021-11-16 15:32:50 -08:00
Jarred Sumner
5bef1b46d3 [router] small cleanup 2021-11-16 15:31:47 -08:00
Jarred Sumner
3bec430192 [router] Fix edgecase with trailing slashes in directory path 2021-11-16 15:29:52 -08:00
Jarred Sumner
18f0093b18 📷 Snapshots 2021-11-15 15:59:13 -08:00
Jarred Sumner
adfaa21d03 [examples] React 18 is now beta 2021-11-15 15:59:03 -08:00
Jarred Sumner
01d1f1d258 Fix #66
embarassing!
2021-11-15 15:51:39 -08:00
Jarred Sumner
4e775d275c [bun dev] When --disable-bun.js flag is passed, don't send 500s for rendering the fallback 2021-11-15 15:47:28 -08:00
Jarred Sumner
035f6fe5e1 Bump 2021-11-15 15:40:12 -08:00
Jarred Sumner
bba74499e5 [JS Printer] Don't escape slashes 2021-11-15 15:39:21 -08:00
Jarred Sumner
b61cbb1df8 [internal] const is faster than var (in Zig! not javascript) 2021-11-15 15:39:13 -08:00
Jarred Sumner
1a60d7df98 [JS Printer] Fix bug with template literals 2021-11-15 15:38:49 -08:00
Jarred Sumner
89a7e3bf2f slightly reduce reallocations 2021-11-11 15:52:50 -08:00
Jarred Sumner
fe1a6cee10 [JSON Parser] Improve perf by 2%-4%
We warn when a JSON object has duplicate keys, but detecting duplicate keys has a cost. Now the hash table used for deduping keys is pooled instead of reallocated each time

This also removes a call to potentially resize object properties and arrays to their smallest possible size. Resizing an array can be expensive
2021-11-11 15:33:39 -08:00
Jack Hanford
6a66d9f7fb Merge pull request #64 from Jarred-Sumner/unused-vars 2021-11-10 16:08:24 -08:00
Jarred Sumner
fadbcca99c Update README.md 2021-11-10 15:48:02 -08:00
Jack Hanford
0b48e7272d remove a bunch of dead code / unused variables 2021-11-10 14:53:48 -08:00
Jarred Sumner
23bdc6f792 fixup 2021-11-09 15:50:10 -08:00
Jarred Sumner
de7274fcff fix linux build 2021-11-09 15:39:16 -08:00
Jarred Sumner
b126392a8e Fix missing symbol error for pre-macOS 11 2021-11-09 14:13:58 -08:00
Jarred Sumner
d2a9e31fd3 Bump 2021-11-09 13:05:19 -08:00
Jarred Sumner
6d61bcc4e1 Merge pull request #63 from KishanBagaria/kb/fix-catalina
clang: add -mmacosx-version-min flag
2021-11-09 13:04:12 -08:00
Kishan Bagaria
d8e3ca4a88 clang flags: add -mmacosx-version-min flag
fixes #55
2021-11-09 21:47:36 +05:30
Jarred Sumner
351184991a 📷 2021-11-08 17:42:18 -08:00
Jarred Sumner
14b51ef57c Disable Object.freeze 2021-11-08 15:53:37 -08:00
Jarred Sumner
7a836382b3 [bun-framework-next] Use WeakSet for slightly better perf 2021-11-08 15:49:28 -08:00
Jarred Sumner
360dec4fb9 Merge pull request #61 from Jarred-Sumner/tweak-bun-framework-next
Rename polyfills, polyfill Object.feeze
2021-11-08 15:47:58 -08:00
Jack Hanford
83cf1be2b9 tweak 2021-11-08 15:42:30 -08:00
Jarred Sumner
241525947c [JS Printer] Fix bug with optional chain 2021-11-08 15:37:31 -08:00
Jack Hanford
76a99eaa18 use new name 2021-11-08 13:59:53 -08:00
Jack Hanford
4bceb57ad1 rename polyfills, polyfill Object.feeze 2021-11-08 13:58:25 -08:00
Jarred Sumner
c7705a6325 Merge branch 'main' of github.com:Jarred-Sumner/bun 2021-11-07 17:00:03 -08:00
Jarred Sumner
4f78e2c47c Update Makefile 2021-11-07 17:00:00 -08:00
Jarred Sumner
6789aed119 Merge pull request #60 from Jarred-Sumner/remove-empty-file
Remove another empty file
2021-11-07 16:00:22 -08:00
Jack Hanford
291f26cba0 remove another empty file 2021-11-07 15:58:29 -08:00
Jarred Sumner
a3458ce6e3 Update package.json 2021-11-07 15:55:04 -08:00
Jarred Sumner
a7eb5397a4 Add main/module to bun-framework-next 2021-11-07 15:54:20 -08:00
Jarred Sumner
fc03ed2969 Merge pull request #59 from Jarred-Sumner/react-refresh
add react-refresh as a devDep for bun-framework-next
2021-11-07 15:47:57 -08:00
Jack Hanford
12f1991771 add react-refresh as a devDep for bun-framework-next 2021-11-07 15:44:30 -08:00
Jarred Sumner
57946e114c Merge branch 'main' of github.com:Jarred-Sumner/bun 2021-11-07 14:45:08 -08:00
Jarred Sumner
8b3463e73f [bun run] Remove unnecessary code 2021-11-07 14:45:06 -08:00
Jarred Sumner
3cb7dbe921 [resolver] Fix race condition that can cause the elapsed counter to integer overflow 2021-11-07 14:44:55 -08:00
Jarred Sumner
d11102d858 Merge pull request #58 from Jarred-Sumner/next-cleanup
misc cleanup for bun-framework-next
2021-11-07 13:18:30 -08:00
Jack Hanford
183911514a misc cleanup for bun-framework-next 2021-11-07 11:46:22 -08:00
Jarred Sumner
bc3c17ffc8 Improve ZSH completions 2021-11-07 02:41:26 -08:00
Jarred Sumner
3379289024 [bun run] Filter out builtin commands from showing up at the top 2021-11-07 02:39:31 -08:00
Jarred Sumner
562a8df46b [bun run] Filter out js files that start with . from completions 2021-11-07 02:39:01 -08:00
Jarred Sumner
68e2869d64 [bun run] Filter out post* and pre* from the completions 2021-11-07 02:38:38 -08:00
Jarred Sumner
c6818cc55c [zsh] Better zsh completions install dir guessing 2021-11-07 02:38:09 -08:00
Jarred Sumner
08b3bab2ec [internal] Generated files 2021-11-06 19:25:12 -07:00
Jarred Sumner
34771aad22 [build] Improve error messages for build failures 2021-11-06 19:24:04 -07:00
Jarred Sumner
109d53d461 [macOS] Fix minimum OS target
Closes https://github.com/Jarred-Sumner/bun/issues/55
2021-11-06 19:23:15 -07:00
Jarred Sumner
958520f557 Debug snapshots 2021-11-06 19:22:13 -07:00
Jarred Sumner
12c311da3f [internal] Fix make release on macOS arm64 2021-11-06 18:43:08 -07:00
Jarred Sumner
d7d9df726b [internal] Use a better timer for measuring parsing & resolving timings 2021-11-06 18:42:42 -07:00
Jarred Sumner
a368182769 Update Makefile 2021-11-05 17:32:00 -07:00
Jarred Sumner
2a9fd30d36 [internal] Fix the CLI flag for building with JIT permissions 2021-11-05 17:30:57 -07:00
Jarred Sumner
082a944e0b Update README.md 2021-11-05 16:11:37 -07:00
Jarred Sumner
e1b68665db Update build-id 2021-11-05 04:11:34 -07:00
Jarred Sumner
c64ef1e2f4 [resolver] Fix bug with package.json "exports" resolution with a suffix after the wildcard 2021-11-05 04:10:43 -07:00
Jarred Sumner
3063c2e64d [resolver] Add test for "exports" field with a pattern foo/*.js 2021-11-05 04:10:15 -07:00
Jarred Sumner
38f46169d9 📷 Snapshots 2021-11-05 04:09:41 -07:00
Jarred Sumner
c1aa0323dc [bun run] Fix issue with \\" \\" in scripts 2021-11-05 04:09:27 -07:00
Jarred Sumner
673b755987 Update README.md 2021-11-05 02:52:16 -07:00
Jarred Sumner
3d6fab6e49 📷 Snapshots 2021-11-05 01:33:09 -07:00
Jarred Sumner
d0823beef5 Update run_command.zig 2021-11-05 01:23:07 -07:00
Jarred Sumner
b0e98892e5 [bun run] Exclude .config.* files from showing up as runnable with Bun.js 2021-11-05 01:22:48 -07:00
Jarred Sumner
0006d28cbb 📷 Snapshots 2021-11-05 01:16:19 -07:00
Jarred Sumner
42dcc4e217 Bump 2021-11-05 01:15:43 -07:00
Jarred Sumner
13582981e4 Update bun.fish 2021-11-05 01:15:35 -07:00
Jarred Sumner
d4c1bf6c67 [bun run] Fix bug with yarn getting replaced for - commands 2021-11-05 01:15:24 -07:00
Jarred Sumner
3ef55d10ae [bun run] Improve fish completions by adding a description 2021-11-05 01:15:09 -07:00
Jarred Sumner
5ce171d92c [bun run][bun create] Do not follow symlinks when exec'ing a child process 2021-11-04 21:37:10 -07:00
Jarred Sumner
e409148941 [bun run] Fix bug with quotes and spaces
Fixes #53
2021-11-04 21:00:44 -07:00
Jarred Sumner
d44abd8e4d Update string_immutable.zig 2021-11-04 18:41:40 -07:00
Jarred Sumner
5c38b6c355 [internal] fmt 2021-11-04 18:33:14 -07:00
Jarred Sumner
04ecfdd794 [JS Parser] Print � for invalid WTF-8 input 2021-11-04 18:33:00 -07:00
Jarred Sumner
fc59a32b63 [JS Parser] Decode JavaScript-like input as WTF-8 instead of UTF-8 2021-11-04 18:30:43 -07:00
Jarred Sumner
fd57e2d9a6 [JSX] Match esbuild behavior for multiline JSX string literals 2021-11-04 15:27:29 -07:00
Jarred Sumner
303a5ea898 [JSX] Fix regression with JSX entities 2021-11-03 19:29:07 -07:00
Jarred Sumner
d502d0bcd6 Update install.sh 2021-11-03 15:26:06 -07:00
Jarred Sumner
2018f5020a [installer] Detect rosetta in install.sh 2021-11-03 15:25:38 -07:00
Jarred Sumner
92a7849e98 [Bun.js] Rename Bun.sleep -> Bun.sleepSync 2021-11-03 02:04:21 -07:00
Jarred Sumner
59bdb62966 Fix next version warning 2021-11-03 01:20:08 -07:00
Jarred Sumner
eab1938012 [bun create] Auto-set to Next.js v12.0.2 2021-11-03 00:27:13 -07:00
Jarred Sumner
d97bd79c86 Bump once again (bun create requires git-public versions) 2021-11-03 00:23:49 -07:00
Jarred Sumner
35c05f61e5 Bump next version 2021-11-03 00:22:37 -07:00
Jarred Sumner
a5181c8ed1 [examples] Display Next.js version in example 2021-11-02 23:43:20 -07:00
Jarred Sumner
aa545ac0dc Update README.md 2021-11-02 23:37:57 -07:00
Jarred Sumner
ac9bd094f3 [test] Make sure we curl a jsx file in react integration test 2021-11-02 23:25:31 -07:00
Jarred Sumner
becf55febc Bump examples 2021-11-02 23:25:08 -07:00
Jarred Sumner
c41cc80700 [internal] Undo workspace commits, turns out it's not necessary for now 2021-11-02 23:17:25 -07:00
Jarred Sumner
20b1a27d05 [bun-macro-relay] Temporary fix until .d.ts is handled more correctly 2021-11-02 23:16:52 -07:00
Jarred Sumner
a027e9b6bc v0.1.1 2021-11-02 23:16:33 -07:00
Jarred Sumner
3fe676e9c9 Bump versions 2021-11-02 23:13:18 -07:00
Jarred Sumner
bffe8e918b Merge branch 'jarred/package-mapper' of github.com:Jarred-Sumner/bun into jarred/package-mapper 2021-11-02 23:10:43 -07:00
Jarred Sumner
92e5fe9fd5 Next.js 12 support 2021-11-02 23:10:40 -07:00
Jarred Sumner
b107ac1659 [internal] Inline empty function 2021-11-02 22:53:53 -07:00
Jarred Sumner
5537c03569 Fixes https://github.com/Jarred-Sumner/bun/issues/28 2021-11-02 22:53:26 -07:00
Jarred Sumner
4ab7c82405 Revert "[bundler] Start detecting workspace roots"
This reverts commit e71cb5c8c9.
2021-11-02 22:53:06 -07:00
Jarred Sumner
6e8cd2e3e5 [bun bun] alwaysBundled packages should use their real paths 2021-11-02 22:52:38 -07:00
Jarred Sumner
c0c7527497 [parser] Fix undefined behavior when invalid an unicode codepoint is part of an error message 2021-11-02 22:48:48 -07:00
Jarred Sumner
e71cb5c8c9 [bundler] Start detecting workspace roots 2021-11-02 18:09:54 -07:00
Jarred Sumner
cdbb4cf68a [interla] Comment 2021-11-02 18:08:55 -07:00
Jarred Sumner
204d468ad2 [internal] Global.configureAllocator() 2021-11-02 18:07:11 -07:00
Jarred Sumner
1844212f34 [bundler] Start detecting workspace roots 2021-11-02 17:20:45 -07:00
Jarred Sumner
fbb0342511 [CLI] Fix completions auto-installer for zsh 2021-11-01 21:23:47 -07:00
Jarred Sumner
92b174b315 Add Bun.js integration tests, but don't run them yet. 2021-11-01 20:05:38 -07:00
Jarred Sumner
0ba9784be2 [cli] Hardcode some paths to install for zsh 2021-11-01 06:10:13 -07:00
Jarred Sumner
2c50cf7284 Update Makefile 2021-11-01 04:57:50 -07:00
Jarred Sumner
bea0dca55d Update Makefile 2021-11-01 04:56:30 -07:00
Jarred Sumner
1676af9de9 [cli] Slightly improve zsh completions 2021-11-01 04:41:46 -07:00
Jarred Sumner
3d48bdaad1 Delete node_modules.jsbundle 2021-11-01 04:30:59 -07:00
Jarred Sumner
1b474d4f97 [CLI] Spacing 2021-11-01 04:30:31 -07:00
Jarred Sumner
4467167f99 [cli] just open the directory, access is dumb 2021-11-01 04:27:44 -07:00
Jarred Sumner
36ec8bb99b [test] Add integration test for null byte \\0 2021-11-01 04:04:48 -07:00
Jarred Sumner
bc5f99dc43 [internal] Tiny changes that will eventually make it easier to update zig 2021-11-01 04:04:18 -07:00
Jarred Sumner
4d4966592e [upgrade] Reinstall completions on bun upgrade 2021-11-01 04:03:43 -07:00
Jarred Sumner
f1fff3af7e Bump 2021-11-01 03:59:48 -07:00
Jarred Sumner
83e553d6a9 [install] Auto-set PATH if possible 2021-11-01 03:59:36 -07:00
Jarred Sumner
173724b402 [CLI] Add zsh completions and auto-install completions 2021-11-01 03:43:27 -07:00
Jarred Sumner
64d3927879 [CLI] Add completions for Fish 2021-10-31 21:02:15 -07:00
Jarred Sumner
49ad70b11c [CLI] Print newline after --version 2021-10-31 16:19:28 -07:00
Jarred Sumner
0d0b769bcc Add -v shorthand for version 2021-10-31 16:19:15 -07:00
Jarred Sumner
fb2aa186b7 [Bun.js] Bun.sleep() lets you synchronously sleep. Thanks @evanwashere 2021-10-31 00:39:37 -07:00
Jarred Sumner
ef94826f95 [CLI] Fix spacing (thanks @KishanBagaria) 2021-10-31 00:22:03 -07:00
Jarred Sumner
d79f34e960 Update cli.zig 2021-10-30 23:15:55 -07:00
Jarred Sumner
4ce6e4a9cb [Bun.js] Ensure we print in Latin1 mode 2021-10-30 23:15:47 -07:00
Jarred Sumner
9cf2771549 Update javascript.zig 2021-10-30 23:14:58 -07:00
Jarred Sumner
daf583e4cb [Bun.js] Lazily add FORCE_COLOR environment variable for better compatibility with Node.js modules that detect whether the terminal supports colors 2021-10-30 23:14:48 -07:00
Jarred Sumner
51e55f4b6e [Bun.js] Partially fix loading Node.js fallback modules 2021-10-30 23:14:14 -07:00
Jarred Sumner
f30527b6d9 [Bun.js] Add API for detecting if ANSI colors are enabled 2021-10-30 23:13:17 -07:00
Jarred Sumner
17b186933d [Bun.js] Implement supports-color polyfill (so that chalk works) 2021-10-30 23:12:11 -07:00
Jarred Sumner
fd57edceff [Bun.js] fix node fetch polyfills 2021-10-30 23:11:43 -07:00
Jarred Sumner
1876c0e11a Fixes #34 2021-10-30 21:44:31 -07:00
Jarred Sumner
cd5c740368 [internal] Fix loading runtime code in debug builds 2021-10-30 20:53:08 -07:00
Jarred Sumner
e2eef2bb25 [internal] Makefile 2021-10-30 19:24:42 -07:00
Jarred Sumner
ad3c19a160 Linking instructions in Makefile 2021-10-30 18:20:53 -07:00
Jarred Sumner
07bb25f7b1 Update Makefile 2021-10-30 18:16:15 -07:00
Jarred Sumner
edd0223377 Update README.md 2021-10-30 18:15:31 -07:00
Jarred Sumner
34a8a623f4 Update README.md 2021-10-30 18:12:31 -07:00
Jarred Sumner
f854539ea9 Update README.md 2021-10-30 18:09:50 -07:00
Jarred Sumner
cd1b8ccde7 Update Makefile 2021-10-30 18:05:35 -07:00
Jarred Sumner
cf3f8d2bb0 Update Makefile 2021-10-30 18:04:11 -07:00
Jarred Sumner
f1a0e718b3 Update Makefile 2021-10-30 17:55:14 -07:00
Jarred Sumner
08e0a51036 Add prettier to makefile & package.json 2021-10-30 17:48:04 -07:00
Jarred Sumner
8e0f21cc91 [internal] Make zig and npm client possibly environment variables 2021-10-30 17:45:22 -07:00
Jarred Sumner
ae7843f244 Fix make require 2021-10-30 17:37:03 -07:00
Jarred Sumner
b5b47e6525 Update README.md 2021-10-30 17:24:53 -07:00
Jarred Sumner
e7a4f9f507 [internal] generate .zip for release in Linux was missing filepath 2021-10-30 16:21:37 -07:00
Jarred Sumner
658926189f Update README.md 2021-10-30 16:21:08 -07:00
Jarred Sumner
154c8372e3 [Bun.js] Call JSCInitialize() before starting 2021-10-30 05:01:47 -07:00
Jarred Sumner
a68b5eef86 [Bun.js] Enable SharedArrayBuffer 2021-10-30 04:52:15 -07:00
Jarred Sumner
65ea1e4647 [Bun.js] Fix entry point to only call default if it was a CommonJS transformed function 2021-10-30 03:11:58 -07:00
Jarred Sumner
f8f85430c0 [internal] gitignore blobs for identifier cache 2021-10-30 01:49:19 -07:00
Jarred Sumner
d8a2eb81e3 [internal] Add identifier-cache to makefile so we don't forget to run it 2021-10-30 01:48:58 -07:00
Jarred Sumner
9a9c0df6b0 [lexer] Fix crash on legacy octal literals 2021-10-30 01:28:27 -07:00
Jarred Sumner
0a86beccc7 Bump build id 2021-10-30 01:27:50 -07:00
Jarred Sumner
2fe9791127 Update CHANGELOG.md 2021-10-30 01:23:21 -07:00
Jarred Sumner
b856d50c3f Update CHANGELOG.md 2021-10-30 01:19:41 -07:00
Jarred Sumner
dde2b80e1d Update CHANGELOG.md 2021-10-30 01:19:15 -07:00
Jarred Sumner
49b954462d [Bun.js] Add performance.now() 2021-10-30 01:19:10 -07:00
Jarred Sumner
c51dac1282 [internal] Fix build issue with the JavaScriptCore bindings on macOS. GNU sed != BSD sed 2021-10-29 23:41:43 -07:00
Jarred Sumner
0d002c7057 [bun run] Support running JavaScript, TypeScript, JSX, and TSX files using Bun.js 2021-10-29 23:41:06 -07:00
Jarred Sumner
1d03e90b5c [internal] This is no longer a feature flag in JSC 2021-10-29 23:37:29 -07:00
Jarred Sumner
25ac773cf3 [Bun.js] Add support for Top Level Await! 2021-10-29 23:36:55 -07:00
Jarred Sumner
ecb069ac85 [internal] Normalize import filepaths 2021-10-29 23:36:00 -07:00
Jarred Sumner
a6cf6c4069 [Bun.js] Fix silly oversight with fetch implementation 2021-10-29 23:35:06 -07:00
Jarred Sumner
6854d83842 [internal] Fix missing symbol errors when building JavaScriptCore bindings without already having the object files 2021-10-29 23:34:19 -07:00
Jarred Sumner
4aab78f619 [internal] Improve Bun's debug build times 2021-10-29 23:32:30 -07:00
Jarred Sumner
95d2860930 Add integration test that verifies bash exported functions work in bun run 2021-10-29 19:17:44 -07:00
Jarred Sumner
70db76a798 Pass through environment variables from the process verbatim
Fixes https://github.com/Jarred-Sumner/bun/issues/40
2021-10-29 18:35:42 -07:00
Jarred Sumner
07bf3eb1e9 Merge pull request #41 from mikeroelens/mikeroelens/fix-shell-install-command 2021-10-29 15:39:36 -07:00
Mike Roelens
237e672e70 fix: add missing quotation in sample zsh config 2021-10-29 15:14:02 -04:00
Jarred Sumner
61d436c29d https:// for the URL 2021-10-29 08:21:30 -07:00
Jarred Sumner
22ea3e76f9 Update README.md 2021-10-28 21:40:25 -07:00
Jarred Sumner
0089d04459 Update README.md 2021-10-28 21:18:48 -07:00
Jarred Sumner
26ee46ad5b Bump 2021-10-28 19:05:27 -07:00
Jarred Sumner
417c4e0faa - Fix consistentcy issue with runtime hash
- Fix edgecases in strings.eqlComptime by simplifying the implementation
2021-10-28 19:03:49 -07:00
Jarred Sumner
b6675dd0ab Explicitly check content type 2021-10-28 17:33:40 -07:00
Jarred Sumner
dff40c5220 FIx webkit commit 2021-10-28 17:08:28 -07:00
Jarred Sumner
1fd426432e Fix spacing, add check that the version matches before we push 2021-10-28 17:06:42 -07:00
Jarred Sumner
97c43ef787 Don't run bun upgrade in the makefile 2021-10-28 17:02:27 -07:00
Jarred Sumner
a546e56669 Update Makefile 2021-10-28 16:55:22 -07:00
Jarred Sumner
4b52192974 Update upgrade_command.zig 2021-10-28 16:52:57 -07:00
Jarred Sumner
fb10e0c4cb Upgrade checker + polish for bun upgrade 2021-10-28 16:39:26 -07:00
Jarred Sumner
a44cb9708f New subcommand: bun upgrade. It upgrades bun to the latest version. 2021-10-28 05:34:38 -07:00
Jarred Sumner
c7fc08056a part 1 of try to fix the npm install process 2021-10-27 17:38:05 -07:00
Jarred Sumner
12ba37e43a Update build-id 2021-10-27 15:27:03 -07:00
Jarred Sumner
928346b842 Verify package installs successfully for each platform 2021-10-27 15:26:04 -07:00
Jarred SUmner
b81c895e1d Add test that verifies installing bun with yarn & npm works before publishing 2021-10-27 04:26:38 -07:00
Jarred Sumner
d434e5aeac Make the installation more careful 2021-10-27 04:12:13 -07:00
Jarred Sumner
2250db41b4 Add universal macOS build so that Bun works on rosetta builds of Node.js 2021-10-27 02:41:45 -07:00
Jarred Sumner
826db9021e Before publishing the binary to npm, verify it installs successfully and it's the expected version 2021-10-27 01:42:50 -07:00
Jarred Sumner
ad61279621 Fix aarch64 build errors 2021-10-27 01:22:02 -07:00
Jarred Sumner
5ce1b36130 Choose different clang for macOS and Linux 2021-10-26 22:57:49 -07:00
Jarred SUmner
a1f17f70eb Suggest running tests in build instructions 2021-10-26 22:38:36 -07:00
Jarred SUmner
a0f086ba85 Fix Linux x64 build 2021-10-26 22:37:03 -07:00
Jarred Sumner
8d095a235f Add test that checks JIT is enabled for JavaScriptCore and crashes if it isn't 2021-10-26 19:07:37 -07:00
Jarred Sumner
ff1417421b Simple integration test for bun run 2021-10-26 19:06:45 -07:00
Jarred Sumner
00fb04f309 Update Makefile 2021-10-26 18:47:43 -07:00
Jarred Sumner
a3cc17fbe6 Add a very simple integration test for bun create next & bun create react 2021-10-26 18:46:53 -07:00
Jarred Sumner
fd27d403d7 Aligning text in terminals is tedious 2021-10-26 17:48:33 -07:00
Jarred Sumner
6d29e314a0 Switch to using optionalDependencies for installing the packages instead of a postinstall script.
Sorry yarn v1 users :(
2021-10-26 17:37:44 -07:00
Jarred Sumner
902e438e6c Update README.md 2021-10-26 17:26:45 -07:00
Jarred Sumner
096d668d83 Bun is now a task runner as well 2021-10-26 17:24:09 -07:00
Jarred Sumner
49c5c32714 More spacing 2021-10-26 17:19:45 -07:00
Jarred Sumner
9a70d8daa2 Update README.md 2021-10-26 17:15:35 -07:00
Jarred Sumner
79eb8d9d78 Update README.md 2021-10-26 17:12:22 -07:00
Jarred Sumner
221b280856 spacing 2021-10-26 17:09:38 -07:00
Jarred Sumner
933378ab80 Update README.md 2021-10-26 16:58:57 -07:00
Jarred Sumner
bd51d194cf Add .cjs, .mts, and .cts to the list of file extensions to check for imports 2021-10-26 16:58:51 -07:00
Jarred Sumner
1e27c7d8ce [bun run] Add to README 2021-10-26 16:49:48 -07:00
Jarred Sumner
7d554ed175 [bun run] Fix passthrough behavior 2021-10-26 16:49:34 -07:00
Jarred Sumner
e72d765961 Spacing 2021-10-26 16:18:57 -07:00
Jarred Sumner
9ce38b86ab Fix edgecase with options loading attempting to create an output directory when it shouldn't 2021-10-26 16:18:51 -07:00
Jarred Sumner
05bdda7b07 Update clap.zig 2021-10-26 15:47:14 -07:00
Jarred Sumner
d68f18c77a [bun run] Add node_modules/.bin in reverse order, print failure on exit code 2021-10-26 15:47:08 -07:00
Jarred Sumner
ae6349e573 [.env loader] Fix bug with PATH values sometimes getting cut off at the end by one character 2021-10-26 15:30:26 -07:00
Jarred Sumner
0541cff2ad New subcommand: bun run run scripts in package.json really fast 2021-10-26 05:18:21 -07:00
Jarred Sumner
e69f8c36d2 [router] Don't log the route names since that's not necessary anymore 2021-10-25 17:06:38 -07:00
Jarred Sumner
e7f191c08b [HTTP] Fix error handling modal from showing when there are no errors 2021-10-25 17:06:20 -07:00
Jarred Sumner
6a2372b0b2 Fix rendering with Next.js after latest changes to route api 2021-10-25 17:05:59 -07:00
Jarred Sumner
0592515639 [HTTP Server] Add flag for disabling Bun.js 2021-10-25 17:05:10 -07:00
Jarred Sumner
a6c4bba6c2 [JSON loader] Fix importing JSON in ESM modules 2021-10-25 17:04:52 -07:00
Jarred Sumner
5691bf385b [.env loader] Add CLI flag to dump loaded environment variables as JSON 2021-10-25 17:04:32 -07:00
Jarred Sumner
a149f0abb9 Update build-id 2021-10-25 06:17:20 -07:00
Jarred Sumner
eae7051111 Add snapshots for latin1 regexp, add more codepoints to string escapes 2021-10-25 06:17:16 -07:00
Jarred Sumner
adb6be05d1 Use PNPM in Makefile 2021-10-25 06:16:31 -07:00
Jarred Sumner
4e889c7b47 Fix JSX unicode handling, slightly improve perf 2021-10-25 05:42:01 -07:00
Jarred Sumner
2ed6605cc3 [Bun.js] When Body is UTF-16 encoded, convert it to UTF-8. 2021-10-25 04:46:01 -07:00
Jarred Sumner
42c264bf7b Fix all known string encoding bugs 2021-10-25 00:52:07 -07:00
Jarred Sumner
fe6564b533 finish Expr.alloc -> Expr.init 2021-10-24 17:12:30 -07:00
Jarred Sumner
f6923f21b1 [internal] only set source for test once 2021-10-24 17:00:51 -07:00
Jarred Sumner
edfc61889c Mark all exported symbols as weak, always zig fmt the headers file to reduce diff churn 2021-10-24 17:00:21 -07:00
Jarred Sumner
08c8ca18a7 [internal] Get source URLs in C++ 2021-10-24 16:54:37 -07:00
Jarred Sumner
9e4f16ac8b ^ 2021-10-24 16:52:16 -07:00
Jarred Sumner
03ece0568d Expr.alloc -> Expr.init 2021-10-24 16:51:39 -07:00
Jarred Sumner
2dcb465d50 Upgrade to latest peechy 2021-10-24 16:48:47 -07:00
Jarred Sumner
c93655c717 Fix build error 2021-10-24 16:11:06 -07:00
Jarred Sumner
6f6510169e [JSON] Use a special lexer variant only for JSON 2021-10-24 16:09:15 -07:00
Jarred Sumner
cfe159f636 [internal] Remove more unused code and move the is_ascii_only boolean to only update for JSON parsing 2021-10-24 16:07:47 -07:00
Jarred Sumner
213f361551 [internal] Handle allocation failure 2021-10-24 15:55:27 -07:00
Jarred Sumner
3582941791 [internal] Use isPresent() instead of checking slice len 2021-10-24 15:53:27 -07:00
Jarred Sumner
a3cd9347e6 ✂️ Dead code 2021-10-24 15:53:02 -07:00
Jarred Sumner
449c8b5f36 [internal] Tweak build system to better support unit tests in Zig 2021-10-24 06:18:42 -07:00
Jarred Sumner
1f7af3754d [picohttp] failing test 2021-10-24 06:11:06 -07:00
Jarred Sumner
72df6b9be2 [.env loader] Environment variables are strings. 2021-10-24 06:10:53 -07:00
Jarred Sumner
044c0cfdc3 [internal] more inlining 2021-10-24 06:08:32 -07:00
Jarred Sumner
3c43f65234 [internal] ✂️ dead code 2021-10-24 06:08:08 -07:00
Jarred Sumner
bd2d284c53 [internal] some inlining 2021-10-24 06:07:39 -07:00
Jarred Sumner
ffea9c010b [internal] :snowflake: 2021-10-24 06:05:36 -07:00
Jarred Sumner
44351b57f7 [.env loader] Tests pass 2021-10-24 06:04:42 -07:00
Jarred Sumner
4bbb938de8 Comment out WASM test since WASM is currently unsupported 2021-10-23 22:57:01 -07:00
Jarred Sumner
437270e0af Remove very outdated tests 2021-10-23 22:56:35 -07:00
Jarred Sumner
09b7f4c95d Remove unused feature flag parallel_bun 2021-10-23 22:56:20 -07:00
Jarred Sumner
38f83c50c4 Add flag for dumping the environment variables 2021-10-23 22:55:47 -07:00
Jarred Sumner
2f06dc5755 [internal] Add easier commands for running unit tests 2021-10-23 22:55:26 -07:00
Jarred Sumner
d6b66e2155 Handle edgecase when returning errors 2021-10-23 22:54:56 -07:00
Jarred Sumner
309298fa42 Fix bug with MutableString.ensureValidIdentifier 2021-10-23 22:54:39 -07:00
Jarred Sumner
a0a2fa964b [internal] Remove more dead code, add script to find .zig files that aren't imported by other .zig files 2021-10-23 16:48:12 -07:00
Jarred Sumner
0c769d0f61 No more iguanaTLS 2021-10-23 16:15:44 -07:00
Jarred Sumner
1b90619890 [internal] ✂️ dead code 2021-10-23 16:15:36 -07:00
Jarred Sumner
0ea34216de Load environment variables into defines when possible 2021-10-23 05:04:08 -07:00
Jarred Sumner
53374ac54a [Bundler] When modules fail to resolve, continue building so that you can see many errors without re-running Bun 2021-10-23 05:03:26 -07:00
Jarred Sumner
6355ac219e [JS Parser] Parser errors should _always_ report an error location 2021-10-23 05:02:26 -07:00
Jarred Sumner
384ad96637 Support string-only defines 2021-10-23 05:00:31 -07:00
Jarred Sumner
0361b0df70 [.env loader] Parse values as JavaScript string literals instead of JSON 2021-10-23 05:00:14 -07:00
Jarred Sumner
a1b8c20c3f Add "process.env" to global object 2021-10-23 04:59:03 -07:00
Jarred Sumner
de01d581c1 Rewrite the CodepointIterator to fix some bugs 2021-10-23 04:58:20 -07:00
Jarred Sumner
f1bda194e0 [Lexer] Improve lexing performance by 2% via a bitfield for checking identifiers, inlining functions, and moving some branches to comptime 2021-10-23 04:57:34 -07:00
Jarred Sumner
a84b62452c [Bun.js] Escape unicode identifiers. This is necessary because we load source code into JavaScriptCore as latin1 to conserve memory. Loading as UTF-16 means your code uses 2x as much memory. 2021-10-23 04:56:09 -07:00
Jarred Sumner
e039ba5130 [Bun.js] Add Bun.env and support process.env for non-transpiled environment variables 2021-10-23 04:54:17 -07:00
Jarred Sumner
e67dd8947b [lexer] 0x200C and 0x200D are valid ID_Continue characters 2021-10-21 04:31:30 -07:00
Jarred Sumner
2d6a4a4956 Split tests into separate .json file 2021-10-21 04:30:50 -07:00
Jarred Sumner
f394581ed8 Add test for non-ascii latin1 characters in strings 2021-10-21 04:30:44 -07:00
Jarred Sumner
33b0c89e7c [Bun.js] Fix SyntaxError not showing source file or line number 2021-10-21 04:27:36 -07:00
Jarred Sumner
4e3aa3c289 Fix index + static route 2021-10-20 05:12:01 -07:00
Jarred Sumner
58b196c583 rewrote most of the router 2021-10-20 04:18:29 -07:00
Jarred Sumner
3dc53c3d13 Starting to rewrite the router to fix some bugs and support catch-all + optional routes 2021-10-18 23:55:17 -07:00
Jarred Sumner
4f2c1cfe85 Update README.md 2021-10-17 18:40:54 -07:00
Jarred Sumner
6e16b3cf84 Bump to latest 2021-10-17 15:36:52 -07:00
Jarred Sumner
9f0ab479b0 [bun-framework-next] Fix when the project does not define a _app page 2021-10-17 15:36:28 -07:00
Jarred Sumner
884b5e13ee Add --open flag to bun create 2021-10-17 03:42:03 -07:00
Jarred Sumner
7d4aab4cf1 Slight cleanup 2021-10-17 03:41:31 -07:00
Jarred Sumner
6bb0c03d8d Update README.md 2021-10-16 23:56:50 -07:00
Jarred Sumner
797c94b0e9 Update README.md 2021-10-16 23:52:57 -07:00
Jarred Sumner
e63fbcefe9 bump! 2021-10-16 23:49:39 -07:00
Jarred Sumner
dcc29d3db6 Improve support for Create React App 2021-10-16 23:24:23 -07:00
Jarred Sumner
be66c01829 Update js_ast.zig 2021-10-16 21:33:09 -07:00
Jarred Sumner
21b9884606 Support GitHub repositories, transform package.json to better fit Bun's usage 2021-10-16 21:33:05 -07:00
Jarred Sumner
fd6d93292c more strings 2021-10-16 20:23:37 -07:00
Jarred Sumner
9000165718 Ensure self is always defined 2021-10-16 20:23:25 -07:00
Jarred Sumner
54b313cc5a Fix edgecase in Transfer-Encoding chunked 2021-10-16 20:23:06 -07:00
Jarred Sumner
2461c11536 Cleanup 2021-10-15 23:36:30 -07:00
Jarred Sumner
f17345ffe4 Bump the version 2021-10-15 23:05:58 -07:00
Jarred Sumner
4908a63f61 Latest 2021-10-15 23:03:31 -07:00
Jarred Sumner
da7de899e1 📷 2021-10-15 23:02:40 -07:00
Jarred Sumner
44108d6a26 Fix static libarchive build 2021-10-15 22:52:24 -07:00
Jarred Sumner
c7fb978b7b Merge branch 'main' of github.com:Jarred-Sumner/bun 2021-10-15 22:37:29 -07:00
Jarred Sumner
0db94d94d6 Bump s2n-tls 2021-10-15 22:36:28 -07:00
Jarred SUmner
92e489760d Linux build fixes 2021-10-15 22:33:36 -07:00
Jarred Sumner
decee7616f Update Makefile 2021-10-15 20:33:35 -07:00
Jarred Sumner
deafd3d0d4 Cleanup makefile to get libiconv setup for linux 2021-10-15 20:25:23 -07:00
Jarred Sumner
b9bbd819be Update Makefile 2021-10-15 20:14:55 -07:00
Jarred Sumner
b956ea5a5e Update Makefile 2021-10-15 20:13:18 -07:00
Jarred Sumner
cf2e81b036 Merge branch 'jarred/gen' 2021-10-15 20:08:40 -07:00
Jarred Sumner
bf2732599c update makefile 2021-10-15 20:08:21 -07:00
Jarred Sumner
10696680ff Polish 2021-10-15 19:44:53 -07:00
Jarred Sumner
7e159cb5cd ❇️ 2021-10-14 22:10:08 -07:00
Jarred Sumner
74cda61c88 Update README.md 2021-10-14 19:17:44 -07:00
Jarred Sumner
9dfe57a3f7 Update README.md 2021-10-14 19:17:20 -07:00
Jarred Sumner
f10dcd780c Update README.md 2021-10-14 19:08:55 -07:00
Jarred Sumner
bee7efb5d9 Update README.md 2021-10-14 19:07:40 -07:00
Jarred Sumner
0039b53d21 Update README.md 2021-10-14 19:01:51 -07:00
Jarred Sumner
9f86acbe58 Update README.md 2021-10-14 18:58:50 -07:00
Jarred Sumner
bbc1bcbed1 Support local templates 2021-10-14 18:55:41 -07:00
Jarred Sumner
3ed824fe0f Update router.zig 2021-10-14 16:15:04 -07:00
Jarred Sumner
fe24b96d61 Support passing an absolute path 2021-10-14 16:14:48 -07:00
Jarred Sumner
4b6d8a152f Update bun-create.md 2021-10-14 14:51:51 -07:00
Jarred Sumner
e21b9afdf2 Update bun-create.md 2021-10-14 14:50:34 -07:00
Jarred Sumner
901d7d8759 Add doc explaining bun-create 2021-10-14 14:49:48 -07:00
Jarred Sumner
4b618f9ad1 bun create react app is almost done 2021-10-14 05:22:47 -07:00
Jarred Sumner
0f7bc76f39 v0.0.0 2021-10-13 23:13:58 -07:00
Jarred Sumner
6d997ab201 [fetch] Slight perf improvement 2021-10-13 14:29:03 -07:00
Jarred Sumner
8f7f4ae72f --turbo mode for fetch cli, which disables sending TLS shutdown 2021-10-13 14:17:23 -07:00
Jarred Sumner
c85b5f6a87 [fetch] Support Transfer-Encoding: chunked 2021-10-13 14:06:51 -07:00
Jarred Sumner
ba5f9887fb Update build.zig 2021-10-13 00:28:31 -07:00
Jarred Sumner
9e3e9a2d6d Clean up examples a little 2021-10-13 00:28:20 -07:00
Jarred Sumner
88a5e2d34d Add TLS 1.3 support, improve fetch() HTTPS performance 2021-10-13 00:27:35 -07:00
Jarred Sumner
afc346d6f1 s2n.zig 2021-10-12 16:27:32 -07:00
Jarred Sumner
4dd398ca7a ignore = dirty 2021-10-12 16:27:15 -07:00
Jarred Sumner
756bfc9077 Add fetch CLI test app 2021-10-12 16:26:57 -07:00
Jarred Sumner
f646250a91 Add s2n, remove openssl 2021-10-12 16:26:24 -07:00
Jarred Sumner
24c567086f Add OpenSSL 😢 2021-10-11 20:15:15 -07:00
Jarred Sumner
05b1696df7 Add libarchive bindings 2021-10-11 18:31:24 -07:00
Jarred Sumner
0baa3b511e Update README.md 2021-10-11 02:34:54 -07:00
Jarred Sumner
d793088575 Update README.md 2021-10-11 02:34:41 -07:00
Jarred Sumner
9aa7f9ed18 link to fork 2021-10-11 02:33:35 -07:00
Jarred Sumner
e7f6cf12a5 Update .gitmodules 2021-10-10 23:41:49 -07:00
Jarred Sumner
e2ba468924 Update .gitmodules 2021-10-10 23:41:40 -07:00
Jarred Sumner
85760c0a4c Missing fixture 2021-10-10 23:41:27 -07:00
Jarred Sumner
0db7af6166 [fetch] Add support for gzip & deflate to the http client
Powered by Cloudflare's zlib fork
2021-10-10 23:41:18 -07:00
Jarred Sumner
5e3d1dd4b5 Merge pull request #30 from alexkuz/patch-1 2021-10-09 03:47:24 -07:00
Alexander Kuznetsov
6eb9a36a22 Fetch WebKit submodule via https instead of ssh
Fetching submodule via ssh leads to auth error if SSH key is not provided in GitHub settings; all submodules left uninitialized as a result
2021-10-09 11:50:14 +03:00
Jarred Sumner
e88e9401f1 Fix bug where occasionally unary expressions would simplify incorrectly due to an undefined memory issue 2021-10-08 17:24:03 -07:00
Jarred Sumner
829b4287dd Yet Another Packed Struct Bug 2021-10-08 15:48:58 -07:00
Jarred Sumner
2bf7b5a7ab Update readme.md 2021-10-07 22:31:36 -07:00
Jarred Sumner
1c83f3091c Update README.md 2021-10-07 21:31:52 -07:00
Jarred Sumner
dfd08e7c55 Fix potential symbol collision in bun-macro-relay 2021-10-07 21:31:11 -07:00
Jarred Sumner
3b28af17db Fix edgecase when bundling JavaScript that references ESM exported functions before they're defined 2021-10-07 21:30:28 -07:00
Jarred Sumner
5a03dfb9a4 Schema 2021-10-07 21:29:16 -07:00
Jarred Sumner
fa1aa301e8 Add --port CLI flag for setting a port instead of --origin. --port has higher precedence than --origin so that proxies can work 2021-10-07 21:29:07 -07:00
Jarred Sumner
ae7b91efe2 Add CSS HMR benchmark 2021-10-07 21:27:47 -07:00
Jarred Sumner
6d9ccd9b8e Fix package.json file 2021-10-06 20:02:58 -07:00
Jarred Sumner
0d79435ce2 Snapshots 2021-10-06 20:02:40 -07:00
Jarred Sumner
4ee2fdf1c6 uname 2021-10-06 19:32:32 -07:00
Jarred Sumner
cd273daa1b Missing @TypeOf 2021-10-06 19:31:19 -07:00
Jarred Sumner
c2e9d49f69 oops 2021-10-06 19:29:50 -07:00
Jarred Sumner
38a9c92eec Bump it 2021-10-06 19:28:44 -07:00
Jarred Sumner
1d0f442718 📷 2021-10-06 19:26:43 -07:00
Jarred Sumner
1e8babe185 HTTP paths must resolve from ./$PROJECT_ROOT unless explicitly marked absolute.
This fixes the issue with deeply nested PNPM workspace packages. Happened when using @emotion/react inside a PNPM workspace when @emotion/react was hoisted to the workspace root but react was in a child node_modules folder. It would fail to resolve `"react/jsx-dev-runtime"` because it didn't exist in any node_modules folder relative to `@emotion/react`'s real path.
2021-10-06 19:26:28 -07:00
Jarred Sumner
69d3b5ca60 Update browser.js 2021-10-06 19:21:34 -07:00
Jarred Sumner
a493c18193 Fix JSX transform edgecase with static children 2021-10-06 19:21:26 -07:00
Jarred Sumner
5370ea71c0 Add support for reading JSX config from tsconfig.json 2021-10-06 16:49:26 -07:00
Jarred Sumner
0afec7739b Update README.md 2021-10-05 23:09:57 -07:00
Jarred Sumner
a7173d54ce Update README.md 2021-10-05 23:08:11 -07:00
Jarred Sumner
3b10cfae80 analytics is good enough for now 2021-10-05 23:08:06 -07:00
Jarred Sumner
bd14ad9e6e Async analytics works now
Requests are ~60 bytes and the thread mostly sleeps, so it should be pretty low overhead overall.
2021-10-05 17:50:05 -07:00
Jarred Sumner
9507cd8ed6 [fetch] Fix bug with HTTP request bodies 2021-10-05 17:45:32 -07:00
Jarred Sumner
dfe74cb5c4 Add BUN_DISABLE_ANALYTICS flag to disable analytics and automatically disable analytics when running inside hyperfine 2021-10-05 03:11:35 -07:00
Jarred Sumner
00e7b7c3d5 Simple analytics 2021-10-05 02:27:49 -07:00
Jarred SUmner
d2be50bf4d Merge branch 'main' of github.com:Jarred-Sumner/bun into main 2021-10-04 20:42:17 -07:00
Jarred SUmner
f0f3d6d4eb Statically link libicu on Linux so it doesn't require installing icu separately.
this doubles the binary size :(
2021-10-04 20:41:27 -07:00
Jarred SUmner
21d918921a memfd experiment did not yield perf gains on Linux
I suspect the reason why is because we were already using tmpfs. So it was already writing to an in-memory file. O_TMPFILE doesn't seem to do anything for us either here.
2021-10-04 20:01:05 -07:00
Jarred Sumner
55095edee6 Don't pass O_EXCL 2021-10-04 19:07:19 -07:00
Jarred Sumner
6a7deab74d O_TMPFILE 2021-10-04 19:00:18 -07:00
Jarred Sumner
7db27f11d0 memfd_create does not actually make it faster 2021-10-04 18:58:31 -07:00
Jarred Sumner
3ebb4feb98 Attempt to optimize bun bun on Linux by using memfd_create and copying the resulting file via sendfile() 2021-10-04 18:37:51 -07:00
Jarred Sumner
e8dab9bfcf Fix moving files across mount points 2021-10-04 15:35:08 -07:00
Jarred Sumner
dc3eee44a9 Bump 2021-10-04 04:54:23 -07:00
Jarred Sumner
9e8463af33 Bump 2021-10-04 04:31:43 -07:00
Jarred Sumner
dd2bdd09db Bump 2021-10-04 03:33:54 -07:00
Jarred Sumner
0eb3c1d393 Improve Bun's performance by 5%
By making E.Identifier not a pointer, we improve performance by 5%. Heap allocations are bad
2021-10-04 03:28:55 -07:00
Jarred SUmner
cb6a1b7225 Use covid19 example 2021-10-03 23:53:57 -07:00
Jarred SUmner
38c73788e1 Bump 2021-10-03 21:55:50 -07:00
Jarred Sumner
2c89122ce9 Update Makefile 2021-10-03 21:53:21 -07:00
Jarred Sumner
2eae013ebf Update Makefile 2021-10-03 21:50:27 -07:00
Jarred Sumner
1247a9c93d Update Makefile 2021-10-03 21:49:26 -07:00
Jarred Sumner
5c6dd19826 Update Makefile 2021-10-03 21:49:11 -07:00
Jarred Sumner
9d0ee5c5cd Update Makefile 2021-10-03 21:47:34 -07:00
Jarred Sumner
3affc2a2d8 Update Makefile 2021-10-03 21:46:13 -07:00
Jarred Sumner
02bdaa6d10 Fix tmpdir on linux 2021-10-03 21:43:10 -07:00
Jarred Sumner
aee263d050 Update linux build instructions 2021-10-03 21:21:54 -07:00
Jarred Sumner
7ac4abf8a0 Create separate profile binary and strip debug symbols 2021-10-03 20:40:04 -07:00
Jarred Sumner
139622e0b8 llvm-strip 2021-10-03 20:36:59 -07:00
Jarred Sumner
aaa4aaf53f Fix makefile issue 2021-10-03 20:33:47 -07:00
Jarred Sumner
73c27a9a25 Fix various macOS-specific compile errors and run zig fmt 2021-10-03 20:26:54 -07:00
33537 changed files with 1536942 additions and 135480 deletions

1539
.docker/chrome.json Normal file

File diff suppressed because it is too large Load Diff

14
.docker/chromium.pref Normal file
View File

@@ -0,0 +1,14 @@
# Note: 2 blank lines are required between entries
Package: *
Pin: release a=eoan
Pin-Priority: 500
Package: *
Pin: origin "ftp.debian.org"
Pin-Priority: 300
# Pattern includes 'chromium', 'chromium-browser' and similarly
# named dependencies:
Package: chromium*
Pin: origin "ftp.debian.org"
Pin-Priority: 700

View File

@@ -0,0 +1,8 @@
#!/bin/bash
set -euxo pipefail
name=$(openssl rand -hex 12)
id=$(docker create --name=bun-binary-$name $CONTAINER_TAG)
docker container cp bun-binary-$name:$BUN_RELEASE_DIR bun-binary
echo -e "bun-binary-$name"

3
.docker/debian.list Normal file
View File

@@ -0,0 +1,3 @@
deb http://deb.debian.org/debian buster main
deb http://deb.debian.org/debian buster-updates main
deb http://deb.debian.org/debian-security buster/updates main

View File

@@ -0,0 +1,34 @@
export DOCKER_BUILDKIT=1
export BUILDKIT_ARCH=$(uname -m)
export ARCH=${BUILDKIT_ARCH}
if [ "$BUILDKIT_ARCH" == "amd64" ]; then
export BUILDKIT_ARCH="amd64"
export ARCH=x64
fi
if [ "$BUILDKIT_ARCH" == "x86_64" ]; then
export BUILDKIT_ARCH="amd64"
export ARCH=x64
fi
if [ "$BUILDKIT_ARCH" == "arm64" ]; then
export BUILDKIT_ARCH="arm64"
export ARCH=aarch64
fi
if [ "$BUILDKIT_ARCH" == "aarch64" ]; then
export BUILDKIT_ARCH="arm64"
export ARCH=aarch64
fi
if [ "$BUILDKIT_ARCH" == "armv7l" ]; then
echo "Unsupported platform: $BUILDKIT_ARCH"
exit 1
fi
export BUILD_ID=$(cat build-id)
export CONTAINER_NAME=bun-linux-$ARCH
export DEBUG_CONTAINER_NAME=debug-bun-linux-$ARCH
export TEMP=/tmp/bun-0.0.$BUILD_ID

11
.docker/pull.sh Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
set -euxo pipefail
docker pull bunbunbunbun/bun-test-base:latest --platform=linux/amd64
docker pull bunbunbunbun/bun-base:latest --platform=linux/amd64
docker pull bunbunbunbun/bun-base-with-zig-and-webkit:latest --platform=linux/amd64
docker tag bunbunbunbun/bun-test-base:latest bun-base:latest
docker tag bunbunbunbun/bun-base:latest bun-base:latest
docker tag bunbunbunbun/bun-base-with-zig-and-webkit:latest bun-base-with-zig-and-webkit:latest

47
.docker/run-dockerfile.sh Normal file
View File

@@ -0,0 +1,47 @@
#!/bin/bash
source "dockerfile-common.sh"
export $CONTAINER_NAME=$CONTAINER_NAME-local
rm -rf $TEMP
mkdir -p $TEMP
docker build . --target release --progress=plain -t $CONTAINER_NAME:latest --build-arg BUILDKIT_INLINE_CACHE=1 --platform=linux/$BUILDKIT_ARCH --cache-from $CONTAINER_NAME:latest
if (($?)); then
echo "Failed to build container"
exit 1
fi
id=$(docker create $CONTAINER_NAME:latest)
docker cp $id:/home/ubuntu/bun-release $TEMP/$CONTAINER_NAME
if (($?)); then
echo "Failed to cp container"
exit 1
fi
cd $TEMP
mkdir -p $TEMP/$CONTAINER_NAME $TEMP/$DEBUG_CONTAINER_NAME
mv $CONTAINER_NAME/bun-profile $DEBUG_CONTAINER_NAME/bun
zip -r $CONTAINER_NAME.zip $CONTAINER_NAME
zip -r $DEBUG_CONTAINER_NAME.zip $DEBUG_CONTAINER_NAME
docker rm -v $id
abs=$(realpath $TEMP/$CONTAINER_NAME.zip)
debug_abs=$(realpath $TEMP/$DEBUG_CONTAINER_NAME.zip)
case $(uname -s) in
"Linux") target="linux" ;;
*) target="other" ;;
esac
if [ "$target" = "linux" ]; then
if command -v bun --version >/dev/null; then
cp $TEMP/$CONTAINER_NAME/bun $(which bun)
cp $TEMP/$DEBUG_CONTAINER_NAME/bun $(which bun-profile)
fi
fi
echo "Saved to:"
echo $debug_abs
echo $abs

9
.docker/run-test.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
set -euxo pipefail
bun install
bun install --cwd ./test/snippets
bun install --cwd ./test/scripts
make $BUN_TEST_NAME

5
.docker/runner.sh Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
set -euxo pipefail
docker container run --security-opt seccomp=.docker/chrome.json --env GITHUB_WORKSPACE=$GITHUB_WORKSPACE --env BUN_TEST_NAME=$BUN_TEST_NAME --ulimit memlock=-1:-1 --init --rm bun-test:latest

5
.docker/unit-tests.sh Normal file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
set -euxo pipefail
docker container run --security-opt seccomp=.docker/chrome.json --env GITHUB_WORKSPACE=$GITHUB_WORKSPACE --ulimit memlock=-1:-1 --init --rm bun-unit-tests:latest

View File

@@ -1,14 +1,15 @@
node_modules
**/node_modules
src/javascript/jsc/WebKit/LayoutTests
zig-out
zig-build
**/*.o
**/*.a
examples
**/*.o
**/.next
**/CMakeCache.txt
**/node_modules
.git
src/javascript/jsc/WebKit/WebKitBuild
**/CMakeCache.txt
examples
node_modules
packages/**/bun
packages/**/bun-profile
src/bun.js/WebKit
src/bun.js/WebKit/LayoutTests
zig-build
zig-cache
zig-out

8
.editorconfig Normal file
View File

@@ -0,0 +1,8 @@
# https://EditorConfig.org
root = true
[*]
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf

47
.gitattributes vendored Normal file
View File

@@ -0,0 +1,47 @@
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.jsx text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.tsx text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.ts text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.c text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.cpp text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.cc text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.yml text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.zig text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.rs text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.h text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.lock text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.map text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.md text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.mjs text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.mts text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.lockb binary diff=lockb
.vscode/launch.json linguist-generated
src/api/schema.d.ts linguist-generated
fixture.*.c linguist-generated
src/api/schema.js linguist-generated
*-fixture* linguist-generated
src/bun.js/bindings/ZigGeneratedCode.h linguist-generated
src/bun.js/bindings/ZigGeneratedCode.cpp linguist-generated
src/bun.js/bindings/headers.h linguist-generated
src/bun.js/bindings/headers.zig linguist-generated
packages/bun-uws/fuzzing/seed-corpus/**/* linguist-generated
src/bun.js/bindings/sqlite/sqlite3.c linguist-vendored
src/bun.js/bindings/sqlite/sqlite3_local.h linguist-vendored
src/bun.js/bindings/simdutf.cpp linguist-vendored
src/bun.js/bindings/simdutf.h linguist-vendored
docs/**/* linguist-documentation
# Don't count tests in the language stats - https://github.com/github-linguist/linguist/blob/master/docs/overrides.md
test/**/* linguist-documentation
bench/**/* linguist-documentation
examples/**/* linguist-documentation
src/deps/*.c linguist-vendored
src/deps/brotli/** linguist-vendored

45
.github/ISSUE_TEMPLATE/2-bug-report.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: 🐛 Bug Report
description: Report an issue that should be fixed
labels: [bug]
body:
- type: markdown
attributes:
value: |
Thank you for submitting a bug report. It helps make Bun better.
If you need help or support using Bun, and are not reporting a bug, please
join our [Discord](https://discord.gg/CXdq2DP29u) server, where you can ask questions in the [`#help`](https://discord.gg/32EtH6p7HN) forum.
Make sure you are running the [latest](https://bun.sh/docs/installation#upgrading) version of Bun.
The bug you are experiencing may already have been fixed.
Please try to include as much information as possible.
- type: input
attributes:
label: What version of Bun is running?
description: Copy the output of `bun --revision`
- type: input
attributes:
label: What platform is your computer?
description: |
For MacOS and Linux: copy the output of `uname -mprs`
For Windows: copy the output of `"$([Environment]::OSVersion | ForEach-Object VersionString) $(if ([Environment]::Is64BitOperatingSystem) { "x64" } else { "x86" })"` in the PowerShell console
- type: textarea
attributes:
label: What steps can reproduce the bug?
description: Explain the bug and provide a code snippet that can reproduce it.
validations:
required: true
- type: textarea
attributes:
label: What is the expected behavior?
description: If possible, please provide text instead of a screenshot.
- type: textarea
attributes:
label: What do you see instead?
description: If possible, please provide text instead of a screenshot.
- type: textarea
attributes:
label: Additional information
description: Is there anything else you think we should know?

View File

@@ -0,0 +1,45 @@
name: 🇹 TypeScript Type Bug Report
description: Report an issue with TypeScript types
labels: [bug, typescript]
body:
- type: markdown
attributes:
value: |
Thank you for submitting a bug report. It helps make Bun better.
If you need help or support using Bun, and are not reporting a bug, please
join our [Discord](https://discord.gg/CXdq2DP29u) server, where you can ask questions in the [`#help`](https://discord.gg/32EtH6p7HN) forum.
Make sure you are running the [latest](https://bun.sh/docs/installation#upgrading) version of Bun.
The bug you are experiencing may already have been fixed.
Please try to include as much information as possible.
- type: input
attributes:
label: What version of Bun is running?
description: Copy the output of `bun --revision`
- type: input
attributes:
label: What platform is your computer?
description: |
For MacOS and Linux: copy the output of `uname -mprs`
For Windows: copy the output of `"$([Environment]::OSVersion | ForEach-Object VersionString) $(if ([Environment]::Is64BitOperatingSystem) { "x64" } else { "x86" })"` in the PowerShell console
- type: textarea
attributes:
label: What steps can reproduce the bug?
description: Explain the bug and provide a code snippet that can reproduce it.
validations:
required: true
- type: textarea
attributes:
label: What is the expected behavior?
description: If possible, please provide text instead of a screenshot.
- type: textarea
attributes:
label: What do you see instead?
description: If possible, please provide text instead of a screenshot.
- type: textarea
attributes:
label: Additional information
description: Is there anything else you think we should know?

View File

@@ -0,0 +1,24 @@
name: 🚀 Feature Request
description: Suggest an idea, feature, or enhancement
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Thank you for submitting an idea. It helps make Bun better.
If you want to discuss Bun, or learn how others are using Bun, please
join our [Discord](https://discord.gg/CXdq2DP29u) server, where you can share in the [`#feedback`](https://discord.gg/unwUnHBNqy) channel.
- type: textarea
attributes:
label: What is the problem this feature would solve?
validations:
required: true
- type: textarea
attributes:
label: What is the feature you are proposing to solve the problem?
validations:
required: true
- type: textarea
attributes:
label: What alternatives have you considered?

29
.github/ISSUE_TEMPLATE/5-docs-issue.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: 📗 Documentation Issue
description: Tell us if there is missing or incorrect documentation
labels: [docs]
body:
- type: markdown
attributes:
value: |
Thank you for submitting a documentation request. It helps make Bun better.
We are working on moving documentation from the [README](https://github.com/oven-sh/bun#table-of-contents) to a documentation website. Please report as many issues or missing content requests as you can so we can incoperate that in the new documentation.
- type: dropdown
attributes:
label: What is the type of issue?
multiple: true
options:
- Documentation is missing
- Documentation is incorrect
- Documentation is confusing
- Example code is not working
- Something else
- type: textarea
attributes:
label: What is the issue?
validations:
required: true
- type: textarea
attributes:
label: Where did you find it?
description: If possible, please provide the URL(s) where you found this issue.

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: 💬 Ask a Question
url: https://discord.com/invite/CXdq2DP29u
about: Join our Discord server for questions, support requests, or just to chat.

50
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,50 @@
### What does this PR do?
<!-- **Please explain what your changes do**, example: -->
<!--
This adds a new flag --bail to bun test. When set, it will stop running tests after the first failure. This is useful for CI environments where you want to fail fast.
-->
- [ ] Documentation or TypeScript types (it's okay to leave the rest blank in this case)
- [ ] Code changes
### How did you verify your code works?
<!-- **For code changes, please include automated tests**. Feel free to uncomment the line below -->
<!-- I wrote automated tests -->
<!-- If JavaScript/TypeScript modules or builtins changed:
- [ ] I included a test for the new code, or existing tests cover it
- [ ] I ran my tests locally and they pass (`bun-debug test test-file-name.test`)
-->
<!-- If Zig files changed:
- [ ] I checked the lifetime of memory allocated to verify it's (1) freed and (2) only freed when it should be
- [ ] I included a test for the new code, or an existing test covers it
- [ ] JSValue used outside outside of the stack is either wrapped in a JSC.Strong or is JSValueProtect'ed
- [ ] I wrote TypeScript/JavaScript tests and they pass locally (`bun-debug test test-file-name.test`)
-->
<!-- If new methods, getters, or setters were added to a publicly exposed class:
- [ ] I added TypeScript types for the new methods, getters, or setters
-->
<!-- If dependencies in tests changed:
- [ ] I made sure that specific versions of dependencies are used instead of ranged or tagged versions
-->
<!-- If a new builtin ESM/CJS module was added:
- [ ] I updated Aliases in `module_loader.zig` to include the new module
- [ ] I added a test that imports the module
- [ ] I added a test that require() the module
-->

18
.github/workflows/bun-deploy-site.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
# redeploy Vercel site when a file in `docs` changes
# using VERCEL_DEPLOY_HOOK environment variable
name: Deploy site
on:
push:
paths:
- "docs/**"
branches: [main]
jobs:
deploy:
name: Deploy site
runs-on: ubuntu-latest
if: github.repository_owner == 'oven-sh'
steps:
- name: Trigger Vercel build
run: curl ${{ secrets.VERCEL_DEPLOY_HOOK }}

140
.github/workflows/bun-linux-aarch64.yml vendored Normal file
View File

@@ -0,0 +1,140 @@
name: bun-linux
concurrency:
group: bun-linux-aarch64-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- main
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
- ".github/workflows/bun-linux-aarch64.yml"
pull_request:
branches:
- main
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
- ".github/workflows/bun-linux-aarch64.yml"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
linux:
name: ${{matrix.tag}}
runs-on: ${{matrix.runner}}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 90
permissions: write-all
strategy:
matrix:
include:
- cpu: native
tag: linux-aarch64
arch: aarch64
build_arch: arm64
runner: linux-arm64
build_machine_arch: aarch64
steps:
- uses: actions/checkout@v3
with:
submodules: false
ref: ${{github.sha}}
clean: true
- run: |
bash ./scripts/update-submodules.sh
- uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Run
run: |
rm -rf ${{runner.temp}}/release
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- run: |
mkdir -p /tmp/.buildx-cache-${{matrix.tag}}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
push: false
cache-from: type=local,src=/tmp/.buildx-cache-${{matrix.tag}}
cache-to: type=local,dest=/tmp/.buildx-cache-${{matrix.tag}}
build-args: |
ARCH=${{matrix.arch}}
BUILDARCH=${{matrix.build_arch}}
BUILD_MACHINE_ARCH=${{matrix.build_machine_arch}}
CPU_TARGET=${{matrix.cpu}}
GIT_SHA=${{github.sha}}
platforms: linux/${{matrix.build_arch}}
target: artifact
outputs: type=local,dest=${{runner.temp}}/release
- name: Zip
run: |
# if zip is not found
if [ ! -x "$(command -v zip)" ]; then
sudo apt-get update && sudo apt-get install -y zip --no-install-recommends
fi
if [ ! -x "$(command -v strip)" ]; then
sudo apt-get update && sudo apt-get install -y binutils --no-install-recommends
fi
cd ${{runner.temp}}/release
chmod +x bun-profile bun
mkdir bun-${{matrix.tag}}-profile
mkdir bun-${{matrix.tag}}
strip bun
mv bun-profile bun-${{matrix.tag}}-profile/bun-profile
mv bun bun-${{matrix.tag}}/bun
zip -r bun-${{matrix.tag}}-profile.zip bun-${{matrix.tag}}-profile
zip -r bun-${{matrix.tag}}.zip bun-${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: bun-${{matrix.tag}}-profile
path: ${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: bun-${{matrix.tag}}
path: ${{runner.temp}}/release/bun-${{matrix.tag}}.zip
- name: Release
id: release
uses: ncipollo/release-action@v1
if: |
github.repository_owner == 'oven-sh'
&& github.ref == 'refs/heads/main'
with:
prerelease: true
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
allowUpdates: true
replacesArtifacts: true
generateReleaseNotes: true
artifactErrorsFailBuild: true
token: ${{ secrets.GITHUB_TOKEN }}
name: "Canary (${{github.sha}})"
tag: "canary"
artifacts: "${{runner.temp}}/release/bun-${{matrix.tag}}.zip,${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip"

335
.github/workflows/bun-linux-build.yml vendored Normal file
View File

@@ -0,0 +1,335 @@
name: bun-linux
concurrency:
group: bun-linux-build-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- main
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches:
- main
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
linux:
name: ${{matrix.tag}}
runs-on: ${{matrix.runner}}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 90
permissions: write-all
strategy:
fail-fast: false
matrix:
include:
- cpu: haswell
tag: linux-x64
arch: x86_64
build_arch: amd64
runner: big-ubuntu
build_machine_arch: x86_64
assertions: "OFF"
zig_optimize: "ReleaseFast"
target: "artifact"
- cpu: nehalem
tag: linux-x64-baseline
arch: x86_64
build_arch: amd64
runner: big-ubuntu
build_machine_arch: x86_64
assertions: "OFF"
zig_optimize: "ReleaseFast"
target: "artifact"
# - cpu: haswell
# tag: linux-x64-assertions
# arch: x86_64
# build_arch: amd64
# runner: big-ubuntu
# build_machine_arch: x86_64
# assertions: "ON"
# zig_optimize: "ReleaseSafe"
# target: "artifact-assertions"
# - cpu: nehalem
# tag: linux-x64-baseline-assertions
# arch: x86_64
# build_arch: amd64
# runner: big-ubuntu
# build_machine_arch: x86_64
# assertions: "ON"
# zig_optimize: "ReleaseSafe"
# target: "artifact-assertions"
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
ref: ${{github.sha}}
clean: true
- uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Run
run: |
rm -rf ${{runner.temp}}/release
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- run: |
mkdir -p /tmp/.buildx-cache-${{matrix.tag}}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
push: false
cache-from: type=local,src=/tmp/.buildx-cache-${{matrix.tag}}
cache-to: type=local,dest=/tmp/.buildx-cache-${{matrix.tag}}
build-args: |
ARCH=${{matrix.arch}}
BUILDARCH=${{matrix.build_arch}}
BUILD_MACHINE_ARCH=${{matrix.build_machine_arch}}
CPU_TARGET=${{matrix.cpu}}
GIT_SHA=${{github.sha}}
ASSERTIONS=${{matrix.assertions}}
ZIG_OPTIMIZE=${{matrix.zig_optimize}}
SCCACHE_BUCKET=bun
SCCACHE_REGION=auto
SCCACHE_S3_USE_SSL=true
SCCACHE_ENDPOINT=${{ secrets.CACHE_S3_ENDPOINT }}
AWS_ACCESS_KEY_ID=${{ secrets.CACHE_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }}
platforms: linux/${{matrix.build_arch}}
target: ${{matrix.target}}
outputs: type=local,dest=${{runner.temp}}/release
- id: bun-version-check
name: Bun version check
run: |
# If this hangs, it means something is seriously wrong with the build
${{runner.temp}}/release/bun-profile --version
- name: Zip
run: |
# if zip is not found
if [ ! -x "$(command -v zip)" ]; then
sudo apt-get update && sudo apt-get install -y zip --no-install-recommends
fi
if [ ! -x "$(command -v strip)" ]; then
sudo apt-get update && sudo apt-get install -y binutils --no-install-recommends
fi
cd ${{runner.temp}}/release
chmod +x bun-profile bun
mkdir bun-${{matrix.tag}}-profile
mkdir bun-${{matrix.tag}}
strip bun
mv bun-profile bun-${{matrix.tag}}-profile/bun-profile
mv bun bun-${{matrix.tag}}/bun
zip -r bun-${{matrix.tag}}-profile.zip bun-${{matrix.tag}}-profile
zip -r bun-${{matrix.tag}}.zip bun-${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: bun-${{matrix.tag}}-profile
path: ${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: bun-${{matrix.tag}}
path: ${{runner.temp}}/release/bun-${{matrix.tag}}.zip
- uses: actions/upload-artifact@v3
with:
name: bun-obj-${{matrix.tag}}
path: ${{runner.temp}}/release/bun-obj
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-dependencies
path: ${{runner.temp}}/release/bun-dependencies
- name: Release
id: release
uses: ncipollo/release-action@v1
if: |
github.repository_owner == 'oven-sh'
&& github.ref == 'refs/heads/main'
with:
prerelease: true
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
allowUpdates: true
replacesArtifacts: true
generateReleaseNotes: true
artifactErrorsFailBuild: true
token: ${{ secrets.GITHUB_TOKEN }}
name: "Canary (${{github.sha}})"
tag: "canary"
artifacts: "${{runner.temp}}/release/bun-${{matrix.tag}}.zip,${{runner.temp}}/release/bun-${{matrix.tag}}-profile.zip"
- uses: sarisia/actions-status-discord@v1
if: failure() && github.repository_owner == 'oven-sh' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
noprefix: true
nocontext: true
description: |
Pull Request
### [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}
Build failed on ${{ matrix.tag }}:
**[View build output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
[Commit ${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})
linux-test:
name: Tests ${{matrix.tag}}
runs-on: ubuntu-latest
needs: [linux]
if: github.event_name == 'pull_request'
timeout-minutes: 20
permissions:
pull-requests: write
outputs:
failing_tests: ${{ steps.test.outputs.failing_tests }}
failing_tests_count: ${{ steps.test.outputs.failing_tests_count }}
strategy:
fail-fast: false
matrix:
include:
- tag: linux-x64
- tag: linux-x64-baseline
# - tag: linux-x64-assertions
# - tag: linux-x64-baseline-assertions
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v4
with:
submodules: false
clean: true
- id: download
name: Download
uses: actions/download-artifact@v3
with:
name: bun-${{matrix.tag}}
path: ${{runner.temp}}/release
- id: install-bun
name: Install Bun
run: |
cd ${{runner.temp}}/release
unzip bun-${{matrix.tag}}.zip
cd bun-${{matrix.tag}}
chmod +x bun
pwd >> $GITHUB_PATH
- id: bun-version-check
name: Bun version check
run: |
# If this hangs, it means something is seriously wrong with the build
bun --version
- id: install-dependnecies
name: Install dependencies
run: |
sudo apt-get update && sudo apt-get install -y openssl
bun install --verbose
bun install --cwd=test --verbose
bun install --cwd=packages/bun-internal-test --verbose
bun install --cwd=test/js/third_party/prisma --verbose
# This is disabled because the cores are ~5.5gb each
# so it is easy to hit 50gb coredump downloads. Only enable if you need to retrive one
# - name: Set core dumps to get stored in /cores
# run: |
# sudo mkdir /cores
# sudo chmod 777 /cores
# # Core filenames will be of the form executable.pid.timestamp:
# sudo bash -c 'echo "/cores/%e.%p.%t" > /proc/sys/kernel/core_pattern'
- id: test
name: Test (node runner)
env:
SMTP_SENDGRID_SENDER: ${{ secrets.SMTP_SENDGRID_SENDER }}
TLS_MONGODB_DATABASE_URL: ${{ secrets.TLS_MONGODB_DATABASE_URL }}
TLS_POSTGRES_DATABASE_URL: ${{ secrets.TLS_POSTGRES_DATABASE_URL }}
# if: ${{github.event.inputs.use_bun == 'false'}}
run: |
ulimit -c unlimited
ulimit -c
node packages/bun-internal-test/src/runner.node.mjs || true
- uses: actions/upload-artifact@v3
if: steps.test.outputs.failing_tests != ''
with:
name: cores
path: /cores
- uses: sarisia/actions-status-discord@v1
if: always() && steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: "failure"
noprefix: true
nocontext: true
description: |
Pull Request
### ❌ [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}, there are ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
- name: Comment on PR
if: steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
message: |
❌ @${{ github.actor }} ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- name: Uncomment on PR
if: steps.test.outputs.failing_tests == '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
mode: upsert
create_if_not_exists: false
message: |
✅ test failures on ${{ matrix.tag }} have been resolved.
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- id: fail
name: Fail the build
if: steps.test.outputs.failing_tests != ''
run: exit 1

478
.github/workflows/bun-mac-aarch64.yml vendored Normal file
View File

@@ -0,0 +1,478 @@
name: bun-macOS-aarch64
concurrency:
group: bun-macOS-aarch64-${{ github.ref }}
cancel-in-progress: true
env:
LLVM_VERSION: 16
BUN_DOWNLOAD_URL_BASE: https://pub-5e11e972747a44bf9aaf9394f185a982.r2.dev/releases/latest
on:
push:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
macOS-zig:
name: macOS Zig Object
runs-on: med-ubuntu
if: github.repository_owner == 'oven-sh'
strategy:
matrix:
include:
- cpu: native
arch: aarch64
tag: bun-obj-darwin-aarch64
steps:
- uses: actions/checkout@v4
# - name: Checkout submodules
# run: git submodule update --init --recursive --depth=1 --progress --force
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Compile Zig Object
uses: docker/build-push-action@v3
if: runner.arch == 'X64'
with:
context: .
push: false
# This doesnt seem to work
# cache-from: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
# cache-to: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
build-args: |
BUILDARCH=${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
BUILD_MACHINE_ARCH=${{ runner.arch == 'X64' && 'x86_64' || 'aarch64' }}
ARCH=${{ matrix.arch }}
CPU_TARGET=${{ matrix.cpu }}
TRIPLET=${{ matrix.arch }}-macos-none
GIT_SHA=${{ github.sha }}
platforms: linux/${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
target: build_release_obj
outputs: type=local,dest=${{runner.temp}}/release
- name: Upload Zig Object
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}
path: ${{runner.temp}}/release/bun-zig.o
macOS-dependencies:
name: macOS Dependencies
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 15
strategy:
matrix:
include:
- cpu: native
arch: aarch64
tag: bun-darwin-aarch64
obj: bun-obj-darwin-aarch64
artifact: bun-obj-darwin-aarch64
runner: macos-13-xlarge
steps:
- uses: actions/checkout@v4
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install go sccache ccache rust llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
# echo "$(brew --prefix sccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
curl -LO "$BUN_DOWNLOAD_URL_BASE/bun-darwin-aarch64.zip"
unzip bun-darwin-aarch64.zip
mkdir -p ${{ runner.temp }}/.bun/bin
mv bun-darwin-aarch64/bun ${{ runner.temp }}/.bun/bin/bun
chmod +x ${{ runner.temp }}/.bun/bin/bun
echo "${{ runner.temp }}/.bun/bin" >> $GITHUB_PATH
- name: Hash submodule versions
run: |
print_data() {
git submodule | grep -v WebKit
llvm-config --version
rustc --version
cat $(echo scripts/build*.sh scripts/all-dependencies.sh | tr " " "\n" | sort)
}
echo "sha=$(print_data | sha1sum | cut -c 1-10)" >> $GITHUB_OUTPUT
id: submodule-versions
- name: Cache submodule dependencies
id: cache-deps-restore
uses: actions/cache/restore@v3
with:
path: ${{runner.temp}}/bun-deps
key: bun-deps-${{ matrix.tag }}-${{ steps.submodule-versions.outputs.sha }}
- name: Compile submodule dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
env:
CPU_TARGET: ${{ matrix.cpu }}
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
mkdir -p $BUN_DEPS_OUT_DIR
bash ./scripts/clean-dependencies.sh
bash ./scripts/all-dependencies.sh
- name: Cache submodule dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
id: cache-deps-save
uses: actions/cache/save@v3
with:
path: ${{runner.temp}}/bun-deps
key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }}
- name: Upload submodule dependencies
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
macOS-cpp:
name: macOS C++
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 90
strategy:
matrix:
include:
- cpu: native
arch: aarch64
tag: bun-darwin-aarch64
obj: bun-obj-darwin-aarch64
artifact: bun-obj-darwin-aarch64
runner: macos-13-xlarge
steps:
- uses: actions/checkout@v4
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install go sccache ccache rust llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
# echo "$(brew --prefix sccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
curl -LO "$BUN_DOWNLOAD_URL_BASE/bun-darwin-aarch64.zip"
unzip bun-darwin-aarch64.zip
mkdir -p ${{ runner.temp }}/.bun/bin
mv bun-darwin-aarch64/bun ${{ runner.temp }}/.bun/bin/bun
chmod +x ${{ runner.temp }}/.bun/bin/bun
echo "${{ runner.temp }}/.bun/bin" >> $GITHUB_PATH
# TODO: replace with sccache
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-ccache-${{ matrix.tag }}
restore-keys: ${{ runner.os }}-ccache-${{ matrix.tag }}
- name: Compile C++
env:
CPU_TARGET: ${{ matrix.cpu }}
SOURCE_DIR: ${{ github.workspace }}
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
mkdir -p $OBJ_DIR
cd $OBJ_DIR
cmake -S $SOURCE_DIR -B $OBJ_DIR \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_CPP_ONLY=1 \
-DNO_CONFIGURE_DEPENDS=1
bash compile-cpp-only.sh -v
- name: Upload C++
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj/bun-cpp-objects.a
macOS-link:
name: macOS Link
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
needs: [macOS-zig, macOS-cpp, macOS-dependencies]
timeout-minutes: 60
permissions: write-all
strategy:
matrix:
include:
- cpu: native
arch: aarch64
tag: bun-darwin-aarch64
obj: bun-obj-darwin-aarch64
package: bun-darwin-aarch64
artifact: bun-obj-darwin-aarch64
runner: macos-13-xlarge
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
ref: ${{github.sha}}
clean: true
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install ccache llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv openssl@1.1 ninja --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
curl -LO "$BUN_DOWNLOAD_URL_BASE/bun-darwin-${{matrix.arch}}.zip"
unzip bun-darwin-${{matrix.arch}}.zip
mkdir -p ${{ runner.temp }}/.bun/bin
mv bun-darwin-${{matrix.arch}}/bun ${{ runner.temp }}/.bun/bin/bun
chmod +x ${{ runner.temp }}/.bun/bin/bun
echo "${{ runner.temp }}/.bun/bin" >> $GITHUB_PATH
- name: Download C++
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Download Zig Object
uses: actions/download-artifact@v3
with:
name: ${{ matrix.obj }}
path: ${{ runner.temp }}/release
- name: Downloaded submodule dependencies
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
- name: Link
env:
CPU_TARGET: ${{ matrix.cpu }}
run: |
SRC_DIR=$PWD
mkdir ${{runner.temp}}/link-build
cd ${{runner.temp}}/link-build
cmake $SRC_DIR \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_LINK_ONLY=1 \
-DBUN_ZIG_OBJ="${{ runner.temp }}/release/bun-zig.o" \
-DBUN_CPP_ARCHIVE="${{ runner.temp }}/bun-cpp-obj/bun-cpp-objects.a" \
-DBUN_DEPS_OUT_DIR="${{runner.temp}}/bun-deps" \
-DNO_CONFIGURE_DEPENDS=1
ninja -v
- name: Zip
run: |
cd ${{runner.temp}}/link-build
chmod +x bun-profile bun
mkdir -p ${{matrix.tag}}-profile/ ${{matrix.tag}}/
mv bun-profile ${{matrix.tag}}-profile/bun-profile
mv bun ${{matrix.tag}}/bun
zip -r ${{matrix.tag}}-profile.zip ${{matrix.tag}}-profile
zip -r ${{matrix.tag}}.zip ${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-profile
path: ${{runner.temp}}/link-build/${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/link-build/${{matrix.tag}}.zip
- name: Release
id: release
uses: ncipollo/release-action@v1
if: |
github.repository_owner == 'oven-sh'
&& github.ref == 'refs/heads/main'
with:
prerelease: true
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
allowUpdates: true
replacesArtifacts: true
generateReleaseNotes: true
artifactErrorsFailBuild: true
token: ${{ secrets.GITHUB_TOKEN }}
name: "Canary (${{github.sha}})"
tag: "canary"
artifacts: "${{runner.temp}}/link-build/${{matrix.tag}}.zip,${{runner.temp}}/link-build/${{matrix.tag}}-profile.zip"
- uses: sarisia/actions-status-discord@v1
if: failure() && github.repository_owner == 'oven-sh' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
noprefix: true
nocontext: true
description: |
Pull Request
### [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}
Build failed on ${{ matrix.tag }}:
**[View build output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
[Commit ${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})
macOS-test:
name: Tests ${{matrix.tag}}
runs-on: ${{ matrix.runner }}
needs: [macOS-link]
if: github.event_name == 'pull_request' && github.repository_owner == 'oven-sh'
permissions:
pull-requests: write
timeout-minutes: 30
outputs:
failing_tests: ${{ steps.test.outputs.failing_tests }}
failing_tests_count: ${{ steps.test.outputs.failing_tests_count }}
strategy:
fail-fast: false
matrix:
include:
- tag: bun-darwin-aarch64
runner: macos-13-xlarge
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3
with:
submodules: false
- id: download
name: Download
uses: actions/download-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/release
- id: install-bun
name: Install Bun
run: |
cd ${{runner.temp}}/release
unzip ${{matrix.tag}}.zip
cd ${{matrix.tag}}
chmod +x bun
pwd >> $GITHUB_PATH
- id: bun-version-check
name: Bun version check
run: |
# If this hangs, it means something is seriously wrong with the build
bun --version
- id: install
name: Install dependencies
run: |
bun install --verbose
bun install --cwd=test --verbose
bun install --cwd=packages/bun-internal-test --verbose
- id: test
name: Test (node runner)
env:
SMTP_SENDGRID_SENDER: ${{ secrets.SMTP_SENDGRID_SENDER }}
TLS_MONGODB_DATABASE_URL: ${{ secrets.TLS_MONGODB_DATABASE_URL }}
TLS_POSTGRES_DATABASE_URL: ${{ secrets.TLS_POSTGRES_DATABASE_URL }}
# if: ${{github.event.inputs.use_bun == 'false'}}
run: |
node packages/bun-internal-test/src/runner.node.mjs || true
- uses: sarisia/actions-status-discord@v1
if: always() && steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: "failure"
noprefix: true
nocontext: true
description: |
Pull Request
### ❌ [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}, there are ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
- name: Comment on PR
if: steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
message: |
❌ @${{ github.actor }} ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- name: Uncomment on PR
if: steps.test.outputs.failing_tests == '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
mode: upsert
create_if_not_exists: false
message: |
✅ test failures on ${{ matrix.tag }} have been resolved.
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- id: fail
name: Fail the build
if: steps.test.outputs.failing_tests != ''
run: exit 1

View File

@@ -0,0 +1,483 @@
name: bun-macOS-x64-baseline
concurrency:
group: bun-macOS-x64-baseline-${{ github.ref }}
cancel-in-progress: true
env:
LLVM_VERSION: 16
BUN_DOWNLOAD_URL_BASE: https://pub-5e11e972747a44bf9aaf9394f185a982.r2.dev/releases/latest
on:
push:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
macos-object-files:
name: macOS Object
runs-on: med-ubuntu
if: github.repository_owner == 'oven-sh'
strategy:
matrix:
include:
- cpu: nehalem
arch: x86_64
tag: bun-obj-darwin-x64-baseline
# - cpu: haswell
# arch: x86_64
# tag: bun-obj-darwin-x64
# - cpu: native
# arch: aarch64
# tag: bun-obj-darwin-aarch64
steps:
- uses: actions/checkout@v4
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Compile Zig Object
uses: docker/build-push-action@v3
with:
context: .
push: false
# This doesnt seem to work
# cache-from: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
# cache-to: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
# This was used before, but also does not really work
cache-from: type=local,src=/tmp/.buildx-cache-${{matrix.tag}}
cache-to: type=local,dest=/tmp/.buildx-cache-${{matrix.tag}}
build-args: |
BUILDARCH=${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
BUILD_MACHINE_ARCH=${{ runner.arch == 'X64' && 'x86_64' || 'aarch64' }}
ARCH=${{ matrix.arch }}
CPU_TARGET=${{ matrix.cpu }}
TRIPLET=${{ matrix.arch }}-macos-none
GIT_SHA=${{ github.sha }}
SCCACHE_BUCKET=bun
SCCACHE_REGION=auto
SCCACHE_S3_USE_SSL=true
SCCACHE_ENDPOINT=${{ secrets.CACHE_S3_ENDPOINT }}
AWS_ACCESS_KEY_ID=${{ secrets.CACHE_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }}
platforms: linux/${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
target: build_release_obj
outputs: type=local,dest=${{runner.temp}}/release
- name: Upload Zig Object
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}
path: ${{runner.temp}}/release/bun-zig.o
macOS-dependencies:
name: macOS Dependencies
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 15
strategy:
matrix:
include:
- cpu: nehalem
arch: x86_64
tag: bun-darwin-x64-baseline
obj: bun-obj-darwin-x64-baseline
runner: macos-12-large
artifact: bun-obj-darwin-x64-baseline
steps:
- uses: actions/checkout@v4
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install sccache ccache rust llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
# echo "$(brew --prefix sccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
- name: Hash submodule versions
run: |
print_data() {
git submodule | grep -v WebKit
llvm-config --version
rustc --version
cat $(echo scripts/build*.sh scripts/all-dependencies.sh | tr " " "\n" | sort)
}
echo "sha=$(print_data | sha1sum | cut -c 1-10)" >> $GITHUB_OUTPUT
id: submodule-versions
- name: Cache submodule dependencies
id: cache-deps-restore
uses: actions/cache/restore@v3
with:
path: ${{runner.temp}}/bun-deps
key: bun-deps-${{ matrix.tag }}-${{ steps.submodule-versions.outputs.sha }}
- name: Compile submodule dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
env:
CPU_TARGET: ${{ matrix.cpu }}
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
mkdir -p $BUN_DEPS_OUT_DIR
bash ./scripts/clean-dependencies.sh
bash ./scripts/all-dependencies.sh
- name: Cache submodule dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
id: cache-deps-save
uses: actions/cache/save@v3
with:
path: ${{runner.temp}}/bun-deps
key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }}
- name: Upload submodule dependencies
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
macOS-cpp:
name: macOS C++
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 90
strategy:
matrix:
include:
- cpu: nehalem
arch: x86_64
tag: bun-darwin-x64-baseline
obj: bun-obj-darwin-x64-baseline
runner: macos-12-large
artifact: bun-obj-darwin-x64-baseline
steps:
- uses: actions/checkout@v4
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install sccache ccache rust llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
# echo "$(brew --prefix sccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
curl -LO "$BUN_DOWNLOAD_URL_BASE/bun-darwin-x64-baseline.zip"
unzip bun-darwin-x64-baseline.zip
mkdir -p ${{ runner.temp }}/.bun/bin
mv bun-darwin-x64-baseline/bun ${{ runner.temp }}/.bun/bin/bun
chmod +x ${{ runner.temp }}/.bun/bin/bun
echo "${{ runner.temp }}/.bun/bin" >> $GITHUB_PATH
# TODO: replace with sccache
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-ccache-${{ matrix.tag }}
restore-keys: ${{ runner.os }}-ccache-${{ matrix.tag }}
- name: Compile C++
env:
CPU_TARGET: ${{ matrix.cpu }}
SOURCE_DIR: ${{ github.workspace }}
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
mkdir -p $OBJ_DIR
cd $OBJ_DIR
cmake -S $SOURCE_DIR -B $OBJ_DIR \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_CPP_ONLY=1 \
-DNO_CONFIGURE_DEPENDS=1
bash compile-cpp-only.sh -v
- name: Upload C++
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj/bun-cpp-objects.a
macOS:
name: macOS Link
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
needs: [macOS-cpp, macos-object-files, macOS-dependencies]
timeout-minutes: 90
permissions: write-all
strategy:
matrix:
include:
- cpu: nehalem
arch: x86_64
tag: bun-darwin-x64-baseline
obj: bun-obj-darwin-x64-baseline
package: bun-darwin-x64
runner: macos-12-large
artifact: bun-obj-darwin-x64-baseline
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install ccache llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv openssl@1.1 ninja --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
curl -LO "$BUN_DOWNLOAD_URL_BASE/bun-darwin-x64-baseline.zip"
unzip bun-darwin-x64-baseline.zip
mkdir -p ${{ runner.temp }}/.bun/bin
mv bun-darwin-x64-baseline/bun ${{ runner.temp }}/.bun/bin/bun
chmod +x ${{ runner.temp }}/.bun/bin/bun
echo "${{ runner.temp }}/.bun/bin" >> $GITHUB_PATH
- name: Download C++
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Download Zig Object
uses: actions/download-artifact@v3
with:
name: ${{ matrix.obj }}
path: ${{ runner.temp }}/release
- name: Downloaded submodule dependencies
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
- name: Link
env:
CPU_TARGET: ${{ matrix.cpu }}
run: |
SRC_DIR=$PWD
mkdir ${{runner.temp}}/link-build
cd ${{runner.temp}}/link-build
cmake $SRC_DIR \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_LINK_ONLY=1 \
-DBUN_ZIG_OBJ="${{ runner.temp }}/release/bun-zig.o" \
-DBUN_CPP_ARCHIVE="${{ runner.temp }}/bun-cpp-obj/bun-cpp-objects.a" \
-DBUN_DEPS_OUT_DIR="${{runner.temp}}/bun-deps" \
-DNO_CONFIGURE_DEPENDS=1
ninja -v
- name: Zip
run: |
cd ${{runner.temp}}/link-build
chmod +x bun-profile bun
mkdir -p ${{matrix.tag}}-profile/ ${{matrix.tag}}/
mv bun-profile ${{matrix.tag}}-profile/bun-profile
mv bun ${{matrix.tag}}/bun
zip -r ${{matrix.tag}}-profile.zip ${{matrix.tag}}-profile
zip -r ${{matrix.tag}}.zip ${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-profile
path: ${{runner.temp}}/link-build/${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/link-build/${{matrix.tag}}.zip
- name: Release
id: release
uses: ncipollo/release-action@v1
if: |
github.repository_owner == 'oven-sh'
&& github.ref == 'refs/heads/main'
with:
prerelease: true
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
allowUpdates: true
replacesArtifacts: true
generateReleaseNotes: true
artifactErrorsFailBuild: true
token: ${{ secrets.GITHUB_TOKEN }}
name: "Canary (${{github.sha}})"
tag: "canary"
artifacts: "${{runner.temp}}/link-build/${{matrix.tag}}.zip,${{runner.temp}}/link-build/${{matrix.tag}}-profile.zip"
- uses: sarisia/actions-status-discord@v1
if: failure() && github.repository_owner == 'oven-sh' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
noprefix: true
nocontext: true
description: |
Pull Request
### [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}
Build failed on ${{ matrix.tag }}:
**[View build output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
[Commit ${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})
macOS-test:
name: macOS Test
runs-on: ${{ matrix.runner }}
needs: [macOS]
# if: github.event_name == 'pull_request' && github.repository_owner == 'oven-sh'
if: false
permissions:
pull-requests: write
timeout-minutes: 30
outputs:
failing_tests: ${{ steps.test.outputs.failing_tests }}
failing_tests_count: ${{ steps.test.outputs.failing_tests_count }}
strategy:
fail-fast: false
matrix:
include:
- tag: bun-darwin-x64-baseline
runner: macos-12-large
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3
with:
submodules: false
- id: download
name: Download
uses: actions/download-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/release
- id: install-bun
name: Install Bun
run: |
cd ${{runner.temp}}/release
unzip ${{matrix.tag}}.zip
cd ${{matrix.tag}}
chmod +x bun
pwd >> $GITHUB_PATH
- id: bun-version-check
name: Bun version check
run: |
# If this hangs, it means something is seriously wrong with the build
bun --version
- id: install
name: Install dependencies
run: |
bun install --verbose
bun install --cwd=test --verbose
bun install --cwd=packages/bun-internal-test --verbose
- id: test
name: Test (node runner)
env:
SMTP_SENDGRID_SENDER: ${{ secrets.SMTP_SENDGRID_SENDER }}
TLS_MONGODB_DATABASE_URL: ${{ secrets.TLS_MONGODB_DATABASE_URL }}
TLS_POSTGRES_DATABASE_URL: ${{ secrets.TLS_POSTGRES_DATABASE_URL }}
# if: ${{github.event.inputs.use_bun == 'false'}}
run: |
node packages/bun-internal-test/src/runner.node.mjs || true
- uses: sarisia/actions-status-discord@v1
if: always() && steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: "failure"
noprefix: true
nocontext: true
description: |
Pull Request
### ❌ [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
Hey @${{ github.actor }},
${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
- name: Comment on PR
if: steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
message: |
❌ @${{ github.actor }} ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- name: Uncomment on PR
if: steps.test.outputs.failing_tests == '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
mode: upsert
create_if_not_exists: false
message: |
✅ test failures on ${{ matrix.tag }} have been resolved.
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- id: fail
name: Fail the build
if: steps.test.outputs.failing_tests != ''
run: exit 1

477
.github/workflows/bun-mac-x64.yml vendored Normal file
View File

@@ -0,0 +1,477 @@
name: bun-macOS-x64
concurrency:
group: bun-macOS-x64-${{ github.ref }}
cancel-in-progress: true
env:
LLVM_VERSION: 16
BUN_DOWNLOAD_URL_BASE: https://pub-5e11e972747a44bf9aaf9394f185a982.r2.dev/releases/latest
on:
push:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
macOS-zig:
name: macOS Zig Object
runs-on: med-ubuntu
if: github.repository_owner == 'oven-sh'
strategy:
matrix:
include:
# - cpu: nehalem
# arch: x86_64
# tag: bun-obj-darwin-x64-baseline
- cpu: haswell
arch: x86_64
tag: bun-obj-darwin-x64
steps:
- uses: actions/checkout@v4
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Compile Zig Object
uses: docker/build-push-action@v3
with:
context: .
push: false
# This doesnt seem to work
# cache-from: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
# cache-to: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
# This was used before, but also does not really work
cache-from: type=local,src=/tmp/.buildx-cache-${{matrix.tag}}
cache-to: type=local,dest=/tmp/.buildx-cache-${{matrix.tag}}
build-args: |
BUILDARCH=${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
BUILD_MACHINE_ARCH=${{ runner.arch == 'X64' && 'x86_64' || 'aarch64' }}
ARCH=${{ matrix.arch }}
CPU_TARGET=${{ matrix.cpu }}
TRIPLET=${{ matrix.arch }}-macos-none
GIT_SHA=${{ github.sha }}
SCCACHE_BUCKET=bun
SCCACHE_REGION=auto
SCCACHE_S3_USE_SSL=true
SCCACHE_ENDPOINT=${{ secrets.CACHE_S3_ENDPOINT }}
AWS_ACCESS_KEY_ID=${{ secrets.CACHE_S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }}
platforms: linux/${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
target: build_release_obj
outputs: type=local,dest=${{runner.temp}}/release
- name: Upload Zig Object
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}
path: ${{runner.temp}}/release/bun-zig.o
macOS-dependencies:
name: macOS Dependencies
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 15
strategy:
matrix:
include:
- cpu: haswell
arch: x86_64
tag: bun-darwin-x64
obj: bun-obj-darwin-x64
runner: macos-12-large
artifact: bun-obj-darwin-x64
steps:
- uses: actions/checkout@v4
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install sccache ccache rust llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
# echo "$(brew --prefix sccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
- name: Hash submodule versions
run: |
print_data() {
git submodule | grep -v WebKit
llvm-config --version
rustc --version
cat $(echo scripts/build*.sh scripts/all-dependencies.sh | tr " " "\n" | sort)
}
echo "sha=$(print_data | sha1sum | cut -c 1-10)" >> $GITHUB_OUTPUT
id: submodule-versions
- name: Cache submodule dependencies
id: cache-deps-restore
uses: actions/cache/restore@v3
with:
path: ${{runner.temp}}/bun-deps
key: bun-deps-${{ matrix.tag }}-${{ steps.submodule-versions.outputs.sha }}
- name: Compile submodule dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
env:
CPU_TARGET: ${{ matrix.cpu }}
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
mkdir -p $BUN_DEPS_OUT_DIR
bash ./scripts/clean-dependencies.sh
bash ./scripts/all-dependencies.sh
- name: Cache submodule dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
id: cache-deps-save
uses: actions/cache/save@v3
with:
path: ${{runner.temp}}/bun-deps
key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }}
- name: Upload submodule dependencies
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
macOS-cpp:
name: macOS C++
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
timeout-minutes: 90
strategy:
matrix:
include:
- cpu: haswell
arch: x86_64
tag: bun-darwin-x64
obj: bun-obj-darwin-x64
runner: macos-12-large
artifact: bun-obj-darwin-x64
steps:
- uses: actions/checkout@v4
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install sccache ccache rust llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv automake openssl@1.1 ninja gnu-sed pkg-config --force
# echo "$(brew --prefix sccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
curl -LO "$BUN_DOWNLOAD_URL_BASE/bun-darwin-x64.zip"
unzip bun-darwin-x64.zip
mkdir -p ${{ runner.temp }}/.bun/bin
mv bun-darwin-x64/bun ${{ runner.temp }}/.bun/bin/bun
chmod +x ${{ runner.temp }}/.bun/bin/bun
echo "${{ runner.temp }}/.bun/bin" >> $GITHUB_PATH
# TODO: replace with sccache
- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: ${{ runner.os }}-ccache-${{ matrix.tag }}
restore-keys: ${{ runner.os }}-ccache-${{ matrix.tag }}
- name: Compile C++
env:
CPU_TARGET: ${{ matrix.cpu }}
SOURCE_DIR: ${{ github.workspace }}
OBJ_DIR: ${{ runner.temp }}/bun-cpp-obj
BUN_DEPS_OUT_DIR: ${{runner.temp}}/bun-deps
run: |
mkdir -p $OBJ_DIR
cd $OBJ_DIR
cmake -S $SOURCE_DIR -B $OBJ_DIR \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_CPP_ONLY=1 \
-DNO_CONFIGURE_DEPENDS=1
bash compile-cpp-only.sh -v
- name: Upload C++
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj/bun-cpp-objects.a
macOS:
name: macOS Link
runs-on: ${{ matrix.runner }}
if: github.repository_owner == 'oven-sh'
needs: [macOS-cpp, macOS-zig, macOS-dependencies]
timeout-minutes: 90
permissions: write-all
strategy:
matrix:
include:
- cpu: haswell
arch: x86_64
tag: bun-darwin-x64
obj: bun-obj-darwin-x64
package: bun-darwin-x64
runner: macos-12-large
artifact: bun-obj-darwin-x64
steps:
- uses: actions/checkout@v3
- name: Checkout submodules
run: git submodule update --init --recursive --depth=1 --progress --force
- name: Install system dependencies
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_NO_INSTALL_CLEANUP: 1
run: |
brew install ccache llvm@$LLVM_VERSION pkg-config coreutils libtool cmake libiconv openssl@1.1 ninja --force
echo "$(brew --prefix ccache)/bin" >> $GITHUB_PATH
echo "$(brew --prefix coreutils)/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix llvm@$LLVM_VERSION)/bin" >> $GITHUB_PATH
brew link --overwrite llvm@$LLVM_VERSION
curl -LO "$BUN_DOWNLOAD_URL_BASE/bun-darwin-x64-baseline.zip"
unzip bun-darwin-x64-baseline.zip
mkdir -p ${{ runner.temp }}/.bun/bin
mv bun-darwin-x64-baseline/bun ${{ runner.temp }}/.bun/bin/bun
chmod +x ${{ runner.temp }}/.bun/bin/bun
echo "${{ runner.temp }}/.bun/bin" >> $GITHUB_PATH
- name: Download C++
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-cpp
path: ${{ runner.temp }}/bun-cpp-obj
- name: Download Zig Object
uses: actions/download-artifact@v3
with:
name: ${{ matrix.obj }}
path: ${{ runner.temp }}/release
- name: Downloaded submodule dependencies
uses: actions/download-artifact@v3
with:
name: ${{ matrix.tag }}-deps
path: ${{runner.temp}}/bun-deps
- name: Link
env:
CPU_TARGET: ${{ matrix.cpu }}
run: |
SRC_DIR=$PWD
mkdir ${{runner.temp}}/link-build
cd ${{runner.temp}}/link-build
cmake $SRC_DIR \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_LINK_ONLY=1 \
-DBUN_ZIG_OBJ="${{ runner.temp }}/release/bun-zig.o" \
-DBUN_CPP_ARCHIVE="${{ runner.temp }}/bun-cpp-obj/bun-cpp-objects.a" \
-DBUN_DEPS_OUT_DIR="${{runner.temp}}/bun-deps" \
-DNO_CONFIGURE_DEPENDS=1
ninja -v
- name: Zip
run: |
cd ${{runner.temp}}/link-build
chmod +x bun-profile bun
mkdir -p ${{matrix.tag}}-profile/ ${{matrix.tag}}/
mv bun-profile ${{matrix.tag}}-profile/bun-profile
mv bun ${{matrix.tag}}/bun
zip -r ${{matrix.tag}}-profile.zip ${{matrix.tag}}-profile
zip -r ${{matrix.tag}}.zip ${{matrix.tag}}
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}-profile
path: ${{runner.temp}}/link-build/${{matrix.tag}}-profile.zip
- uses: actions/upload-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/link-build/${{matrix.tag}}.zip
- name: Release
id: release
uses: ncipollo/release-action@v1
if: |
github.repository_owner == 'oven-sh'
&& github.ref == 'refs/heads/main'
with:
prerelease: true
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
allowUpdates: true
replacesArtifacts: true
generateReleaseNotes: true
artifactErrorsFailBuild: true
token: ${{ secrets.GITHUB_TOKEN }}
name: "Canary (${{github.sha}})"
tag: "canary"
artifacts: "${{runner.temp}}/link-build/${{matrix.tag}}.zip,${{runner.temp}}/link-build/${{matrix.tag}}-profile.zip"
- uses: sarisia/actions-status-discord@v1
if: failure() && github.repository_owner == 'oven-sh' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
noprefix: true
nocontext: true
description: |
Pull Request
### [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}
Build failed on ${{ matrix.tag }}:
**[View build output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
[Commit ${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})
macOS-test:
name: Tests ${{matrix.tag}}
runs-on: ${{ matrix.runner }}
needs: [macOS]
if: github.event_name == 'pull_request' && github.repository_owner == 'oven-sh'
permissions:
pull-requests: write
timeout-minutes: 30
outputs:
failing_tests: ${{ steps.test.outputs.failing_tests }}
failing_tests_count: ${{ steps.test.outputs.failing_tests_count }}
strategy:
fail-fast: false
matrix:
include:
- tag: bun-darwin-x64
runner: macos-12-large
steps:
- id: checkout
name: Checkout
uses: actions/checkout@v3
with:
submodules: false
- id: download
name: Download
uses: actions/download-artifact@v3
with:
name: ${{matrix.tag}}
path: ${{runner.temp}}/release
- id: install-bun
name: Install Bun
run: |
cd ${{runner.temp}}/release
unzip ${{matrix.tag}}.zip
cd ${{matrix.tag}}
chmod +x bun
pwd >> $GITHUB_PATH
- id: bun-version-check
name: Bun version check
run: |
# If this hangs, it means something is seriously wrong with the build
bun --version
- id: install
name: Install dependencies
run: |
bun install --verbose
bun install --cwd=test --verbose
bun install --cwd=packages/bun-internal-test --verbose
- id: test
name: Test (node runner)
env:
SMTP_SENDGRID_SENDER: ${{ secrets.SMTP_SENDGRID_SENDER }}
TLS_MONGODB_DATABASE_URL: ${{ secrets.TLS_MONGODB_DATABASE_URL }}
TLS_POSTGRES_DATABASE_URL: ${{ secrets.TLS_POSTGRES_DATABASE_URL }}
# if: ${{github.event.inputs.use_bun == 'false'}}
run: |
node packages/bun-internal-test/src/runner.node.mjs || true
- uses: sarisia/actions-status-discord@v1
if: always() && steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: "failure"
noprefix: true
nocontext: true
description: |
Pull Request
### ❌ [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}, there are ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
- name: Comment on PR
if: steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
message: |
❌ @${{ github.actor }} ${{ steps.test.outputs.failing_tests_count }} files with test failures on ${{ matrix.tag }}:
${{ steps.test.outputs.failing_tests }}
**[View test output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})**
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- name: Uncomment on PR
if: steps.test.outputs.failing_tests == '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-failures-${{matrix.tag}}
mode: upsert
create_if_not_exists: false
message: |
✅ test failures on ${{ matrix.tag }} have been resolved.
<sup>[#${{github.sha}}](https://github.com/oven-sh/bun/commits/${{github.sha}})</sup>
- id: fail
name: Fail the build
if: steps.test.outputs.failing_tests != ''
run: exit 1

269
.github/workflows/bun-release.yml vendored Normal file
View File

@@ -0,0 +1,269 @@
name: bun-release
concurrency: release
env:
BUN_VERSION: ${{ github.event.inputs.tag || github.event.release.tag_name || 'canary' }}
BUN_LATEST: ${{ (github.event.inputs.is-latest || github.event.release.tag_name) && 'true' || 'false' }}
on:
release:
types:
- published
schedule:
- cron: "0 14 * * *" # every day at 6am PST
workflow_dispatch:
inputs:
is-latest:
description: Is this the latest release?
type: boolean
default: false
tag:
type: string
description: What is the release tag? (e.g. "1.0.2", "canary")
required: true
use-docker:
description: Should Docker images be released?
type: boolean
default: false
use-npm:
description: Should npm packages be published?
type: boolean
default: false
use-homebrew:
description: Should binaries be released to Homebrew?
type: boolean
default: false
use-s3:
description: Should binaries be uploaded to S3?
type: boolean
default: false
use-types:
description: Should types be released to npm?
type: boolean
default: false
jobs:
sign:
name: Sign Release
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'oven-sh' }}
permissions:
contents: write
defaults:
run:
working-directory: packages/bun-release
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup GPG
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: "1.0.21"
- name: Install Dependencies
run: bun install
- name: Sign Release
run: |
echo "$GPG_PASSPHRASE" | bun upload-assets -- "${{ env.BUN_VERSION }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
npm:
name: Release to NPM
runs-on: ubuntu-latest
needs: sign
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-npm == 'true' }}
permissions:
contents: read
defaults:
run:
working-directory: packages/bun-release
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: "1.0.21"
- name: Install Dependencies
run: bun install
- name: Release
run: bun upload-npm -- "${{ env.BUN_VERSION }}" publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
npm-types:
name: Release types to NPM
runs-on: ubuntu-latest
needs: sign
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-types == 'true' }}
permissions:
contents: read
defaults:
run:
working-directory: packages/bun-types
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: latest
- name: Setup Bun
if: ${{ env.BUN_VERSION != 'canary' }}
uses: oven-sh/setup-bun@v1
with:
bun-version: "1.0.21"
- name: Setup Bun
if: ${{ env.BUN_VERSION == 'canary' }}
uses: oven-sh/setup-bun@v1
with:
bun-version: "canary" # Must be 'canary' so tag is correct
- name: Install Dependencies
run: bun install
- name: Setup Tag
if: ${{ env.BUN_VERSION == 'canary' }}
run: |
VERSION=$(bun --version)
TAG="${VERSION}-canary.$(date +'%Y%m%dT%H%M%S')"
echo "Setup tag: ${TAG}"
echo "TAG=${TAG}" >> ${GITHUB_ENV}
- name: Build
run: bun run build
env:
BUN_VERSION: ${{ env.TAG || env.BUN_VERSION }}
- name: Release (canary)
if: ${{ env.BUN_VERSION == 'canary' }}
uses: JS-DevTools/npm-publish@v1
with:
package: packages/bun-types/package.json
token: ${{ secrets.NPM_TOKEN }}
tag: canary
- name: Release (latest)
if: ${{ env.BUN_LATEST == 'true' }}
uses: JS-DevTools/npm-publish@v1
with:
package: packages/bun-types/package.json
token: ${{ secrets.NPM_TOKEN }}
docker:
name: Release to Dockerhub
runs-on: ubuntu-latest
needs: sign
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-docker == 'true' }}
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- variant: debian
suffix: ""
- variant: debian
suffix: -debian
- variant: slim
suffix: -slim
dir: debian-slim
- variant: alpine
suffix: -alpine
- variant: distroless
suffix: -distroless
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Docker emulator
uses: docker/setup-qemu-action@v2
- id: buildx
name: Setup Docker buildx
uses: docker/setup-buildx-action@v2
with:
platforms: linux/amd64,linux/arm64
- id: metadata
name: Setup Docker metadata
uses: docker/metadata-action@v4
with:
images: oven/bun
flavor: |
latest=false
tags: |
type=raw,value=latest,enable=${{ env.BUN_LATEST == 'true' && matrix.suffix == '' }}
type=raw,value=${{ matrix.variant }},enable=${{ env.BUN_LATEST == 'true' }}
type=match,pattern=(bun-v)?(canary|\d+.\d+.\d+),group=2,value=${{ env.BUN_VERSION }},suffix=${{ matrix.suffix }}
type=match,pattern=(bun-v)?(canary|\d+.\d+),group=2,value=${{ env.BUN_VERSION }},suffix=${{ matrix.suffix }}
type=match,pattern=(bun-v)?(canary|\d+),group=2,value=${{ env.BUN_VERSION }},suffix=${{ matrix.suffix }}
- name: Login to Docker
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push to Docker
uses: docker/build-push-action@v3
with:
context: ./dockerhub/${{ matrix.dir || matrix.variant }}
platforms: linux/amd64,linux/arm64
builder: ${{ steps.buildx.outputs.name }}
push: true
tags: ${{ steps.metadata.outputs.tags }}
labels: ${{ steps.metadata.outputs.labels }}
build-args: |
BUN_VERSION=${{ env.BUN_VERSION }}
homebrew:
name: Release to Homebrew
runs-on: ubuntu-latest
needs: sign
permissions:
contents: read
if: ${{ github.event_name == 'release' || github.event.inputs.use-homebrew == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
repository: oven-sh/homebrew-bun
token: ${{ secrets.ROBOBUN_TOKEN }}
- id: gpg
name: Setup GPG
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "2.6"
- name: Update Tap
run: ruby scripts/release.rb "${{ env.BUN_VERSION }}"
- name: Commit Tap
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_options: --gpg-sign=${{ steps.gpg.outputs.keyid }}
commit_message: Release ${{ env.BUN_VERSION }}
commit_user_name: robobun
commit_user_email: robobun@oven.sh
commit_author: robobun <robobun@oven.sh>
s3:
name: Upload to S3
runs-on: ubuntu-latest
needs: sign
if: ${{ github.event_name != 'workflow_dispatch' || github.event.inputs.use-s3 == 'true' }}
permissions:
contents: read
defaults:
run:
working-directory: packages/bun-release
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: "1.0.21"
- name: Install Dependencies
run: bun install
- name: Release
run: bun upload-s3 -- "${{ env.BUN_VERSION }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
AWS_ENDPOINT: ${{ secrets.AWS_ENDPOINT }}
AWS_BUCKET: bun

41
.github/workflows/bun-types-tests.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: bun-types
on:
push:
paths:
- "packages/bun-types/**"
branches: [main]
pull_request:
paths:
- "packages/bun-types/**"
jobs:
tests:
name: type-tests
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/bun-types
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Install bun
uses: oven-sh/setup-bun@v1
with:
bun-version: canary
- name: Install node
uses: actions/setup-node@v3
with:
node-version: latest
- name: Install dependencies
run: |
bun install
- name: Generate package
run: bun run build
- name: Tests
run: bun run test

492
.github/workflows/bun-windows.yml vendored Normal file
View File

@@ -0,0 +1,492 @@
name: bun-windows
concurrency:
group: bun-windows-${{ github.ref }}
cancel-in-progress: true
env:
# note: in other files, this version is only the major version, but for windows it is the full version
LLVM_VERSION: 16.0.6
BUN_DOWNLOAD_URL_BASE: https://pub-5e11e972747a44bf9aaf9394f185a982.r2.dev/releases/latest
tag: bun-windows
# TODO: wire this up to workflow_dispatch.
# github's expression syntax makes this hard to set a default to true
canary: true
on:
push:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
pull_request:
branches: [main]
paths:
- "src/**/*"
- "test/**/*"
- "packages/bun-usockets/src/**/*"
- "packages/bun-uws/src/**/*"
- "CMakeLists.txt"
- "build.zig"
- "Makefile"
- "Dockerfile"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# inputs:
# is-canary:
# type: boolean
# description: Is Canary Build?
# default: true
jobs:
windows-zig:
strategy:
fail-fast: false
matrix:
cpu: [haswell, nehalem]
arch: [x86_64]
name: Zig Build
runs-on: med-ubuntu
timeout-minutes: 60
if: github.repository_owner == 'oven-sh'
steps:
- run: git config --global core.autocrlf false && git config --global core.eol lf
- uses: actions/checkout@v4
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
id: buildx
with:
install: true
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Calculate Canary Revision
if: ${{ env.canary == 'true' }}
id: canary
run: |
echo "canary_revision=$(GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" bash ./scripts/calculate-canary-revision.sh --raw)" >> $GITHUB_OUTPUT
- name: Compile Zig Object
uses: docker/build-push-action@v3
if: runner.arch == 'X64'
with:
context: .
push: false
# This doesnt seem to work
# cache-from: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
# cache-to: type=s3,endpoint_url=${{ secrets.CACHE_S3_ENDPOINT }},blobs_prefix=docker_blobs/,manifests_prefix=docker_manifests/,access_key_id=${{ secrets.CACHE_S3_ACCESS_KEY_ID }},secret_access_key=${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }},bucket=bun,region=auto
build-args: |
BUILDARCH=${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
BUILD_MACHINE_ARCH=${{ runner.arch == 'X64' && 'x86_64' || 'aarch64' }}
ARCH=${{ matrix.arch }}
CPU_TARGET=${{ matrix.cpu }}
TRIPLET=${{ matrix.arch }}-windows-msvc
GIT_SHA=${{ github.sha }}
CANARY=${{ env.canary == 'true' && steps.canary.outputs.canary_revision || '0' }}
ZIG_OPTIMIZE=ReleaseSafe
# TODO(@paperdave): enable ASSERTIONS=1
platforms: linux/${{ runner.arch == 'X64' && 'amd64' || 'arm64' }}
target: build_release_obj
outputs: type=local,dest=${{runner.temp}}/release
- name: Upload Zig Object
uses: actions/upload-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-zig${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}
path: ${{runner.temp}}/release/bun-zig.o
windows-dependencies:
name: Dependencies
runs-on: windows
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
cpu: [haswell, nehalem]
arch: [x86_64]
steps:
- run: git config --global core.autocrlf false && git config --global core.eol lf
- name: Checkout
uses: actions/checkout@v4
- name: Clone Submodules
run: .\scripts\update-submodules.ps1
- name: Hash submodule versions
shell: pwsh
run: |
$data = "$(& {
git submodule | Where-Object { $_ -notmatch 'WebKit' }
clang --version
rustc --version
Get-Content -Path (Get-ChildItem -Path 'scripts/build*.ps1', 'scripts/all-dependencies.ps1', 'scripts/env.ps1' | Sort-Object -Property Name).FullName | Out-String
echo 1
})"
$hash = ( -join ((New-Object -TypeName System.Security.Cryptography.SHA1CryptoServiceProvider).ComputeHash([System.Text.Encoding]::UTF8.GetBytes($data)) | ForEach-Object { $_.ToString("x2") } )).Substring(0, 10)
echo "sha=${hash}" >> $env:GITHUB_OUTPUT
id: submodule-versions
- name: Try fetch dependencies
id: cache-deps-restore
uses: actions/cache/restore@v3
with:
path: bun-deps
key: bun-deps-${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-${{ steps.submodule-versions.outputs.sha }}
- name: Install LLVM ${{ env.LLVM_VERSION }}
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
uses: KyleMayes/install-llvm-action@1a3da29f56261a1e1f937ec88f0856a9b8321d7e
with:
version: ${{ env.LLVM_VERSION }}
- name: Install Ninja
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
run: choco install -y ninja
- name: Build Dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
run: |
.\scripts\env.ps1 ${{ matrix.cpu == 'nehalem' && '-Baseline' || '' }}
Invoke-WebRequest -Uri "https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/win64/nasm-2.16.01-win64.zip" -OutFile nasm.zip
Expand-Archive nasm.zip (mkdir -Force "nasm")
$Nasm = (Get-ChildItem "nasm")
$env:Path += ";${Nasm}"
$env:BUN_DEPS_OUT_DIR = (mkdir -Force "./bun-deps")
.\scripts\all-dependencies.ps1
- name: Upload Dependencies
uses: actions/upload-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-deps${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}
path: bun-deps/
- name: Cache Dependencies
if: ${{ !steps.cache-deps-restore.outputs.cache-hit }}
id: cache-deps-save
uses: actions/cache/save@v3
with:
path: bun-deps
key: ${{ steps.cache-deps-restore.outputs.cache-primary-key }}
windows-codegen:
name: Codegen
runs-on: ubuntu-latest
timeout-minutes: 10
if: github.repository_owner == 'oven-sh'
strategy:
fail-fast: false
matrix:
arch: [x86_64]
steps:
- uses: actions/checkout@v4
- run: |
curl -fsSL $BUN_DOWNLOAD_URL_BASE/bun-linux-x64.zip > bun.zip
unzip bun.zip
export PATH="$PWD/bun-linux-x64:$PATH"
./scripts/cross-compile-codegen.sh win32 x64
# Sort of a hack to do this step in the codegen stage
- name: Calculate Canary Revision
if: ${{ env.canary == 'true' }}
run: |
echo "canary_revision=$(GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" bash ./scripts/calculate-canary-revision.sh --raw)" > build-codegen-win32-x64/.canary_revision
- uses: actions/upload-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-codegen
path: build-codegen-win32-x64/
windows-cpp:
name: C++ Build
needs: [windows-codegen]
runs-on: windows
if: github.repository_owner == 'oven-sh'
timeout-minutes: 90
strategy:
fail-fast: false
matrix:
cpu: [haswell, nehalem]
arch: [x86_64]
steps:
- run: git config --global core.autocrlf false && git config --global core.eol lf
- uses: actions/checkout@v4
- uses: KyleMayes/install-llvm-action@1a3da29f56261a1e1f937ec88f0856a9b8321d7e
with:
version: ${{ env.LLVM_VERSION }}
- run: choco install -y ninja
- name: Download Codegen
uses: actions/download-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-codegen
path: build
- name: Build C++
run: |
# Using SCCache was blocked by an issue that is fixed in a newer version.
# TODO UPDATE
# $sczip = "sccache-v0.6.0-x86_64-pc-windows-msvc"
# Invoke-WebRequest -Uri "https://github.com/mozilla/sccache/releases/download/v0.6.0/${sczip}.zip" -OutFile "${sczip}.zip"
# Expand-Archive "${sczip}.zip"
# $env:SCCACHE_BUCKET="bun"
# $env:SCCACHE_REGION="auto"
# $env:SCCACHE_S3_USE_SSL="true"
# $env:SCCACHE_ENDPOINT="${{ secrets.CACHE_S3_ENDPOINT }}"
# $env:AWS_ACCESS_KEY_ID="${{ secrets.CACHE_S3_ACCESS_KEY_ID }}"
# $env:AWS_SECRET_ACCESS_KEY="${{ secrets.CACHE_S3_SECRET_ACCESS_KEY }}"
# $SCCACHE="$PWD/${sczip}/${sczip}/sccache.exe"
$CANARY_REVISION = if (Test-Path build/.canary_revision) { Get-Content build/.canary_revision } else { "0" }
.\scripts\env.ps1 ${{ matrix.cpu == 'nehalem' && '-Baseline' || '' }}
.\scripts\update-submodules.ps1
.\scripts\build-libuv.ps1 -CloneOnly $True
cd build
# "-DCCACHE_PROGRAM=${SCCACHE}"
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release `
-DNO_CODEGEN=1 `
-DNO_CONFIGURE_DEPENDS=1 `
"-DCANARY=${CANARY_REVISION}" `
-DBUN_CPP_ONLY=1 ${{ matrix.cpu == 'nehalem' && '-DUSE_BASELINE_BUILD=1' || '' }}
if ($LASTEXITCODE -ne 0) { throw "CMake configuration failed" }
.\compile-cpp-only.ps1 -v
if ($LASTEXITCODE -ne 0) { throw "C++ compilation failed" }
- uses: actions/upload-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-cpp${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}
path: build/bun-cpp-objects.a
windows-link:
strategy:
fail-fast: false
matrix:
cpu: [haswell, nehalem]
arch: [x86_64]
name: Link
needs: [windows-dependencies, windows-codegen, windows-cpp, windows-zig]
runs-on: windows-small
if: github.repository_owner == 'oven-sh'
timeout-minutes: 30
permissions: write-all
steps:
- run: git config --global core.autocrlf false && git config --global core.eol lf
- uses: actions/checkout@v4
- uses: KyleMayes/install-llvm-action@1a3da29f56261a1e1f937ec88f0856a9b8321d7e
with:
version: ${{ env.LLVM_VERSION }}
- run: choco install -y ninja
- name: Download Codegen
uses: actions/download-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-codegen
path: build
- name: Download Dependencies
uses: actions/download-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-deps${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}
path: bun-deps
- name: Download Zig Object
uses: actions/download-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-zig${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}
path: bun-zig
- name: Download C++ Objects
uses: actions/download-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}-cpp${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}
path: bun-cpp
- name: Link
run: |
.\scripts\update-submodules.ps1
.\scripts\env.ps1 ${{ matrix.cpu == 'nehalem' && '-Baseline' || '' }}
Set-Location build
$CANARY_REVISION = if (Test-Path build/.canary_revision) { Get-Content build/.canary_revision } else { "0" }
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release `
-DNO_CODEGEN=1 `
-DNO_CONFIGURE_DEPENDS=1 `
"-DCANARY=${CANARY_REVISION}" `
-DBUN_LINK_ONLY=1 `
"-DBUN_DEPS_OUT_DIR=$(Resolve-Path ../bun-deps)" `
"-DBUN_CPP_ARCHIVE=$(Resolve-Path ../bun-cpp/bun-cpp-objects.a)" `
"-DBUN_ZIG_OBJ=$(Resolve-Path ../bun-zig/bun-zig.o)" `
${{ matrix.cpu == 'nehalem' && '-DUSE_BASELINE_BUILD=1' || '' }}
if ($LASTEXITCODE -ne 0) { throw "CMake configuration failed" }
ninja -v
if ($LASTEXITCODE -ne 0) { throw "Link failed!" }
- name: Package
run: |
$Dist = mkdir -Force "${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}"
cp -r build\bun.exe "$Dist\bun.exe"
Compress-Archive "$Dist" "${Dist}.zip"
$Dist = "$Dist-profile"
MkDir -Force "$Dist"
cp -r build\bun.exe "$Dist\bun.exe"
cp -r build\bun.pdb "$Dist\bun.pdb"
Compress-Archive "$Dist" "$Dist.zip"
- uses: actions/upload-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}
path: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}.zip
- uses: actions/upload-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-profile
path: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-profile.zip
- name: Release
id: release
uses: ncipollo/release-action@v1
if: |
github.repository_owner == 'oven-sh'
&& github.ref == 'refs/heads/main'
with:
prerelease: true
body: "This canary release of Bun corresponds to the commit [${{ github.sha }}]"
allowUpdates: true
replacesArtifacts: true
generateReleaseNotes: true
artifactErrorsFailBuild: true
token: ${{ secrets.GITHUB_TOKEN }}
name: "Canary (${{github.sha}})"
tag: "canary"
artifacts: "${{env.tag}}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}.zip,${{env.tag}}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-profile.zip"
- uses: sarisia/actions-status-discord@v1
if: failure() && github.repository_owner == 'oven-sh' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: ${{ job.status }}
noprefix: true
nocontext: true
description: |
### [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}
Build failed on Windows ${{ matrix.arch }}${{ matrix.cpu == 'nehalem' && ' Baseline' || '' }}
**[Build Output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})** | [Commit](https://github.com/oven-sh/bun/commits/${{github.sha}})
windows-test:
name: Test
runs-on: windows-small
needs: [windows-link]
if: github.event_name == 'pull_request' && github.repository_owner == 'oven-sh'
permissions:
pull-requests: write
timeout-minutes: 180
outputs:
failing_tests: ${{ steps.test.outputs.failing_tests }}
failing_tests_count: ${{ steps.test.outputs.failing_tests_count }}
strategy:
fail-fast: false
matrix:
# TODO: test baseline, disabled due to noise
cpu: [haswell]
arch: [x86_64]
steps:
- run: git config --global core.autocrlf false && git config --global core.eol lf
- id: checkout
name: Checkout
uses: actions/checkout@v3
with:
submodules: false
- id: download
name: Download Release
uses: actions/download-artifact@v3
with:
name: ${{ env.tag }}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-profile
path: ${{runner.temp}}/release
- name: Install Bun
run: |
cd ${{runner.temp}}/release
unzip ${{env.tag}}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-profile.zip
cd ${{env.tag}}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-profile
pwd >> $env:GITHUB_PATH
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: |
# bun install --verbose
# bun install --cwd=test --verbose
# bun install --cwd=packages/bun-internal-test --verbose
npm install
cd test && npm install
cd ../packages/bun-internal-test && npm install
cd ../..
- id: test
name: Run tests
env:
SMTP_SENDGRID_SENDER: ${{ secrets.SMTP_SENDGRID_SENDER }}
TLS_MONGODB_DATABASE_URL: ${{ secrets.TLS_MONGODB_DATABASE_URL }}
TLS_POSTGRES_DATABASE_URL: ${{ secrets.TLS_POSTGRES_DATABASE_URL }}
run: |
try {
$ErrorActionPreference = "SilentlyContinue"
$null = node packages/bun-internal-test/src/runner.node.mjs ${{runner.temp}}/release/${{env.tag}}-${{ matrix.arch == 'x86_64' && 'x64' || 'aarch64' }}${{ matrix.cpu == 'nehalem' && '-baseline' || '' }}-profile/bun.exe || $true
} catch {}
$ErrorActionPreference = "Stop"
- uses: sarisia/actions-status-discord@v1
if: always() && steps.test.outputs.failing_tests != '' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK_WINTEST }}
status: "failure"
noprefix: true
nocontext: true
description: |
### ❌🪟 [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}, there are **${{ steps.test.outputs.failing_test_count }} failing tests** on Windows ${{ matrix.arch }}${{ matrix.cpu == 'nehalem' && ' Baseline' || '' }}
${{ steps.test.outputs.failing_tests }}
[Full Test Output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})
- uses: sarisia/actions-status-discord@v1
if: always() && steps.test.outputs.regressing_tests != '' && github.event_name == 'pull_request'
with:
title: ""
webhook: ${{ secrets.DISCORD_WEBHOOK }}
status: "failure"
noprefix: true
nocontext: true
description: |
### ❌🪟 [${{github.event.pull_request.title}}](https://github.com/oven-sh/bun/pull/${{github.event.number}})
@${{ github.actor }}, there are **${{ steps.test.outputs.regressing_test_count }} test regressions** on Windows ${{ matrix.arch }}${{ matrix.cpu == 'nehalem' && ' Baseline' || '' }}
${{ steps.test.outputs.regressing_tests }}
[Full Test Output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})
- name: Comment on PR
if: always() && steps.test.outputs.regressing_tests != '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-windows-${{ matrix.arch }}-${{ matrix.cpu }}
message: |
### ❌🪟 @${{ github.actor }}, there are **${{ steps.test.outputs.regressing_test_count }} test regressions** on Windows ${{ matrix.arch }}${{ matrix.cpu == 'nehalem' && ' Baseline' || '' }}
${{ steps.test.outputs.regressing_tests }}
[Full Test Output](https://github.com/oven-sh/bun/actions/runs/${{github.run_id}})
- name: Uncomment on PR
if: steps.test.outputs.regressing_tests == '' && github.event_name == 'pull_request'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: test-windows-${{ matrix.arch }}-${{ matrix.cpu }}
mode: upsert
create_if_not_exists: false
message: |
✅🪟 Test regressions on Windows ${{ matrix.arch }}${{ matrix.cpu == 'nehalem' && ' Baseline' || '' }} have been resolved.
- id: fail
name: Fail the build
if: steps.test.outputs.regressing_tests != '' && github.event_name == 'pull_request'
run: exit 1

45
.github/workflows/format.yml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: autofix.ci # Must be named this for autofix.ci to work
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
env:
ZIG_VERSION: 0.12.0-dev.1828+225fe6ddb
permissions:
contents: read
jobs:
format:
name: format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
sparse-checkout: |
src
packages
test
bench
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: "1.0.21"
- name: Setup Zig
uses: goto-bus-stop/setup-zig@c7b6cdd3adba8f8b96984640ff172c37c93f73ee
with:
version: ${{ env.ZIG_VERSION }}
- name: Install Dependencies
run: |
bun install
- name: Format
run: |
bun fmt
bun fmt:zig
- name: Commit # https://autofix.ci/
uses: autofix-ci/action@d3e591514b99d0fca6779455ff8338516663f7cc

237
.gitignore vendored
View File

@@ -1,70 +1,167 @@
.DS_Store
zig-cache
*.wasm
*.o
*.a
profile.json
node_modules
.swcrc
yarn.lock
dist
*.log
*.out.js
/package-lock.json
build
*.wat
zig-out
pnpm-lock.yaml
README.md.template
src/deps/zig-clap/example
src/deps/zig-clap/README.md
src/deps/zig-clap/.github
src/deps/zig-clap/.gitattributes
out
outdir
.trace
cover
coverage
coverv
*.trace
bench
github
out.*
out
.parcel-cache
esbuilddir
*.bun
parceldist
esbuilddir
outdir/
outcss
.next
txt.js
.idea
.vscode/cpp*
node_modules_*
*.jsb
*.zip
bun-zigld
bun-singlehtreaded
bun-nomimalloc
bun-mimalloc
examples/lotta-modules/bun-yday
examples/lotta-modules/bun-old
examples/lotta-modules/bun-nofscache
src/node-fallbacks/out/*
src/node-fallbacks/node_modules
sign.json
release/
*.dmg
sign.*.json
packages/debug-*
packages/bun-cli/postinstall.js
packages/bun-*/bin/*
packages/bun-cli/bin/*
.DS_Store
zig-cache
packages/*/*.wasm
*.o
*.a
profile.json
node_modules
.envrc
.swcrc
yarn.lock
dist
*.tmp
*.log
*.out.js
*.out.refresh.js
**/package-lock.json
build
*.wat
zig-out
pnpm-lock.yaml
README.md.template
src/deps/zig-clap/example
src/deps/zig-clap/README.md
src/deps/zig-clap/.github
src/deps/zig-clap/.gitattributes
out
outdir
.trace
cover
coverage
coverv
*.trace
github
out.*
out
.parcel-cache
esbuilddir
*.bun
parceldist
esbuilddir
outdir/
outcss
.next
txt.js
.idea
.vscode/cpp*
.vscode/clang*
node_modules_*
*.jsb
*.zip
bun-zigld
bun-singlehtreaded
bun-nomimalloc
bun-mimalloc
examples/lotta-modules/bun-yday
examples/lotta-modules/bun-old
examples/lotta-modules/bun-nofscache
src/node-fallbacks/out/*
src/node-fallbacks/node_modules
sign.json
release/
*.dmg
sign.*.json
packages/debug-*
packages/bun-cli/postinstall.js
packages/bun-*/bun
packages/bun-*/bun-profile
packages/bun-*/debug-bun
packages/bun-*/*.o
packages/bun-cli/postinstall.js
packages/bun-cli/bin/*
bun-test-scratch
misctools/fetch
src/deps/libiconv
src/deps/openssl
src/tests.zig
*.blob
src/deps/s2n-tls
.npm
.npm.gz
bun-binary
src/deps/PLCrashReporter/
*.dSYM
*.crash
misctools/sha
packages/bun-wasm/*.mjs
packages/bun-wasm/*.cjs
packages/bun-wasm/*.map
packages/bun-wasm/*.js
packages/bun-wasm/*.d.ts
packages/bun-wasm/*.d.cts
packages/bun-wasm/*.d.mts
*.bc
src/fallback.version
src/runtime.version
*.sqlite
*.database
*.db
misctools/machbench
*.big
.eslintcache
/bun-webkit
src/deps/c-ares/build
src/bun.js/bindings-obj
src/bun.js/debug-bindings-obj
failing-tests.txt
test.txt
myscript.sh
cold-jsc-start
cold-jsc-start.d
/testdir
/test.ts
/test.js
src/js/out/modules*
src/js/out/functions*
src/js/out/tmp
src/js/out/DebugPath.h
make-dev-stats.csv
.uuid
tsconfig.tsbuildinfo
test/js/bun/glob/fixtures
*.lib
*.pdb
CMakeFiles
build.ninja
.ninja_deps
.ninja_log
CMakeCache.txt
cmake_install.cmake
compile_commands.json
*.lib
x64
**/*.vcxproj*
**/*.sln*
**/*.dir
**/*.pdb
/.webkit-cache
/.cache
/src/deps/libuv
/build-*/
.vs
**/.verdaccio-db.json
/test-report.md
/test-report.json

96
.gitmodules vendored
View File

@@ -1,15 +1,85 @@
# [submodule "src/deps/zig-clap"]
# path = src/deps/zig-clap
# url = https://github.com/Hejsil/zig-clap
[submodule "src/deps/picohttpparser"]
path = src/deps/picohttpparser
url = https://github.com/h2o/picohttpparser.git
ignore = dirty
[submodule "src/javascript/jsc/WebKit"]
path = src/javascript/jsc/WebKit
url = git@github.com:/Jarred-Sumner/WebKit
ignore = dirty
path = src/bun.js/WebKit
url = https://github.com/oven-sh/WebKit.git
ignore = dirty
depth = 1
update = none
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/picohttpparser"]
path = src/deps/picohttpparser
url = https://github.com/h2o/picohttpparser.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/mimalloc"]
path = src/deps/mimalloc
url = https://github.com/microsoft/mimalloc.git
ignore = dirty
path = src/deps/mimalloc
url = https://github.com/Jarred-Sumner/mimalloc.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/zlib"]
path = src/deps/zlib
url = https://github.com/cloudflare/zlib.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/libarchive"]
path = src/deps/libarchive
url = https://github.com/libarchive/libarchive.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/boringssl"]
path = src/deps/boringssl
url = https://github.com/oven-sh/boringssl.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/lol-html"]
path = src/deps/lol-html
url = https://github.com/cloudflare/lol-html
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/tinycc"]
path = src/deps/tinycc
url = https://github.com/Jarred-Sumner/tinycc.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/c-ares"]
path = src/deps/c-ares
url = https://github.com/c-ares/c-ares.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/zstd"]
path = src/deps/zstd
url = https://github.com/facebook/zstd.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/base64"]
path = src/deps/base64
url = https://github.com/aklomp/base64.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false
[submodule "src/deps/ls-hpack"]
path = src/deps/ls-hpack
url = https://github.com/litespeedtech/ls-hpack.git
ignore = dirty
depth = 1
shallow = true
fetchRecurseSubmodules = false

View File

@@ -1,27 +1,36 @@
{
"configurations": [
{
"name": "Mac",
"forcedInclude": [
"${workspaceFolder}/src/javascript/jsc/bindings/root.h"
],
"name": "Debug",
"forcedInclude": ["${workspaceFolder}/src/bun.js/bindings/root.h"],
"compileCommands": "${workspaceFolder}/build/compile_commands.json",
"includePath": [
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/WTF/Headers",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/*",
"${workspaceFolder}/src/JavaScript/jsc/bindings/",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/Source/bmalloc/",
"${workspaceFolder}/src/javascript/jsc/WebKit/WebKitBuild/Release/ICU/Headers/"
"${workspaceFolder}/build/bun-webkit/include",
"${workspaceFolder}/build/codegen",
"${workspaceFolder}/src/bun.js/bindings/",
"${workspaceFolder}/src/bun.js/bindings/webcore/",
"${workspaceFolder}/src/bun.js/bindings/sqlite/",
"${workspaceFolder}/src/bun.js/bindings/webcrypto/",
"${workspaceFolder}/src/bun.js/modules/",
"${workspaceFolder}/src/js/builtins/",
"${workspaceFolder}/src/deps/boringssl/include/",
"${workspaceFolder}/src/deps",
"${workspaceFolder}/src/napi/*",
"${workspaceFolder}/packages/bun-usockets/src",
"${workspaceFolder}/packages/"
],
"browse": {
"path": [
"${workspaceFolder}/src/javascript/jsc/bindings/*",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/JavaScriptCore/PrivateHeaders/",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/WTF/Headers/**",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/WebKitBuild/Release/*",
"${workspaceFolder}/src/JavaScript/jsc/bindings/**",
"${workspaceFolder}/src/JavaScript/jsc/WebKit/Source/bmalloc/**",
"${workspaceFolder}/src/javascript/jsc/WebKit/WebKitBuild/Release/ICU/Headers/"
"${workspaceFolder}/build/bun-webkit/include",
"${workspaceFolder}/src/bun.js/bindings",
"${workspaceFolder}/src/napi/*",
"${workspaceFolder}/src/js/builtins/*",
"${workspaceFolder}/src/bun.js/modules/*",
"${workspaceFolder}/src/deps/*",
"${workspaceFolder}/src/deps/boringssl/include/*",
"${workspaceFolder}/packages/bun-usockets/*",
"${workspaceFolder}/packages/bun-uws/*",
"${workspaceFolder}/src/napi/*"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ".vscode/cppdb"
@@ -34,14 +43,76 @@
"ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS=0",
"BUILDING_JSCONLY__",
"USE_FOUNDATION=1",
"ASSERT_ENABLED=0",
"ASSERT_ENABLED=1",
"DU_DISABLE_RENAMING=1"
],
"macFrameworkPath": [],
"compilerPath": "/usr/local/opt/llvm/bin/clang",
"compilerPath": "${workspaceFolder}/.vscode/clang++",
"cStandard": "c17",
"cppStandard": "c++11",
"intelliSenseMode": "macos-clang-x64"
"cppStandard": "c++20"
},
{
"name": "BunWithJSCDebug",
"forcedInclude": ["${workspaceFolder}/src/bun.js/bindings/root.h"],
"includePath": [
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/ICU/Headers/",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/JavaScriptCore/PrivateHeaders/",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/WTF/Headers",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/bmalloc/Headers/",
"${workspaceFolder}/src/bun.js/bindings/",
"${workspaceFolder}/src/bun.js/bindings/webcore/",
"${workspaceFolder}/src/bun.js/bindings/sqlite/",
"${workspaceFolder}/src/bun.js/bindings/webcrypto/",
"${workspaceFolder}/src/bun.js/modules/",
"${workspaceFolder}/src/js/builtins/",
"${workspaceFolder}/src/js/out",
"${workspaceFolder}/src/deps/boringssl/include/",
"${workspaceFolder}/src/deps",
"${workspaceFolder}/src/napi/*",
"${workspaceFolder}/packages/bun-usockets/src",
"${workspaceFolder}/packages/"
],
"browse": {
"path": [
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/ICU/Headers/",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/JavaScriptCore/PrivateHeaders/**",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/WTF/Headers/**",
"${workspaceFolder}/src/bun.js/WebKit/WebKitBuild/Debug/bmalloc/Headers/**",
"${workspaceFolder}/src/bun.js/bindings/*",
"${workspaceFolder}/src/bun.js/bindings/*",
"${workspaceFolder}/src/napi/*",
"${workspaceFolder}/src/bun.js/bindings/sqlite/",
"${workspaceFolder}/src/bun.js/bindings/webcrypto/",
"${workspaceFolder}/src/bun.js/bindings/webcore/",
"${workspaceFolder}/src/js/builtins/*",
"${workspaceFolder}/src/js/out/*",
"${workspaceFolder}/src/bun.js/modules/*",
"${workspaceFolder}/src/deps",
"${workspaceFolder}/src/deps/boringssl/include/",
"${workspaceFolder}/packages/bun-usockets/",
"${workspaceFolder}/packages/bun-uws/",
"${workspaceFolder}/src/napi"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ".vscode/cppdb_debug"
},
"defines": [
"STATICALLY_LINKED_WITH_JavaScriptCore=1",
"STATICALLY_LINKED_WITH_WTF=1",
"BUILDING_WITH_CMAKE=1",
"NOMINMAX",
"ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS=0",
"BUILDING_JSCONLY__",
"USE_FOUNDATION=1",
"ASSERT_ENABLED=1",
"DU_DISABLE_RENAMING=1"
],
"macFrameworkPath": [],
"compilerPath": "${workspaceFolder}/.vscode/clang++",
"cStandard": "c17",
"cppStandard": "c++20"
}
],
"version": 4

33
.vscode/extensions.json vendored Normal file
View File

@@ -0,0 +1,33 @@
{
"recommendations": [
// Zig
"ziglang.vscode-zig",
// C/C++
"clang.clangd",
"ms-vscode.cmake-tools",
"xaver.clang-format",
"vadimcn.vscode-lldb",
// JavaScript
"oven.bun-vscode",
"biomejs.biome",
// TypeScript
"better-ts-errors.better-ts-errors",
"MylesMurphy.prettify-ts",
// Markdown
"bierner.markdown-preview-github-styles",
"bierner.markdown-emoji",
"bierner.emojisense",
"bierner.markdown-checkbox",
"bierner.jsdoc-markdown-highlighting",
// TOML
"tamasfe.even-better-toml",
// Other
"bierner.comment-tagged-templates",
]
}

1418
.vscode/launch.json generated vendored

File diff suppressed because it is too large Load Diff

205
.vscode/settings.json vendored
View File

@@ -1,17 +1,108 @@
{
"git.autoRepositoryDetection": "openEditors",
// Editor
"editor.tabSize": 2,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
// Search
"search.quickOpen.includeSymbols": false,
"search.seedWithNearestWord": true,
"search.smartCase": true,
"search.exclude": {
"src/javascript/jsc/WebKit/**/*": true
"node_modules": true,
".git": true,
"src/bun.js/WebKit": true,
"src/deps/*/**": true
},
"search.followSymlinks": false,
"search.useIgnoreFiles": true,
// Git
"git.autoRepositoryDetection": "openEditors",
"git.ignoreSubmodules": true,
"git.ignoreLimitWarning": true,
// Zig
"zig.initialSetupDone": true,
"zig.buildOnSave": false,
"zig.buildOption": "build",
"zig.buildFilePath": "${workspaceFolder}/build.zig",
"zig.path": "${workspaceFolder}/.cache/zig/zig.exe",
"zig.formattingProvider": "zls",
"zig.zls.enableInlayHints": false,
"[zig]": {
"editor.defaultFormatter": "tiehuis.zig"
"editor.tabSize": 4,
"editor.useTabStops": false,
"editor.defaultFormatter": "ziglang.vscode-zig"
},
// C++
"lldb.verboseLogging": false,
"cmake.configureOnOpen": false,
"C_Cpp.errorSquiggles": "enabled",
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"[c]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"[h]": {
"editor.defaultFormatter": "xaver.clang-format"
},
// JavaScript
"prettier.enable": false,
"eslint.workingDirectories": ["${workspaceFolder}/packages/bun-types"],
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome",
},
"[javascriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
// TypeScript
"typescript.tsdk": "${workspaceFolder}/node_modules/typescript/lib",
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
// JSON
"[json]": {
"editor.defaultFormatter": "biomejs.biome",
},
"[jsonc]": {
"editor.defaultFormatter": "biomejs.biome",
},
// Markdown
"[markdown]": {
"editor.defaultFormatter": "biomejs.biome",
"editor.unicodeHighlight.ambiguousCharacters": false,
"editor.unicodeHighlight.invisibleCharacters": false,
"diffEditor.ignoreTrimWhitespace": false,
"editor.wordWrap": "on",
"editor.quickSuggestions": {
"comments": "off",
"strings": "off",
"other": "off"
}
},
// TOML
"[toml]": {
"editor.defaultFormatter": "biomejs.biome",
},
// YAML
"[yaml]": {
"editor.defaultFormatter": "biomejs.biome",
},
// Files
"files.exclude": {
"**/.git": true,
"**/.svn": true,
@@ -19,37 +110,27 @@
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
"integration/snapshots": true,
"integration/snapshots-no-hmr": true
},
"C_Cpp.files.exclude": {
"**/.vscode": true,
"src/javascript/jsc/WebKit/JSTests": true,
"src/javascript/jsc/WebKit/Tools": true,
"src/javascript/jsc/WebKit/WebDriverTests": true,
"src/javascript/jsc/WebKit/WebKit.xcworkspace": true,
"src/javascript/jsc/WebKit/WebKitLibraries": true,
"src/javascript/jsc/WebKit/Websites": true,
"src/javascript/jsc/WebKit/resources": true,
"src/javascript/jsc/WebKit/LayoutTests": true,
"src/javascript/jsc/WebKit/ManualTests": true,
"src/javascript/jsc/WebKit/PerformanceTests": true,
"src/javascript/jsc/WebKit/WebKitLegacy": true,
"src/javascript/jsc/WebKit/WebCore": true,
"src/javascript/jsc/WebKit/WebDriver": true,
"src/javascript/jsc/WebKit/WebKitBuild": true,
"src/javascript/jsc/WebKit/WebInspectorUI": true
},
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"[h]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"[c]": {
"editor.defaultFormatter": "xaver.clang-format"
"**/*.xcworkspacedata": true,
"**/*.xcscheme": true,
"**/*.pem": true,
"**/*.xcodeproj": true,
"src/bun.js/WebKit": true,
"src/deps/libarchive": true,
"src/deps/mimalloc": true,
"src/deps/s2n-tls": true,
"src/deps/boringssl": true,
"src/deps/openssl": true,
"src/deps/uws": true,
"src/deps/zlib": true,
"src/deps/lol-html": true,
"src/deps/c-ares": true,
"src/deps/tinycc": true,
"src/deps/zstd": true,
"**/*.i": true,
"packages/bun-uws/fuzzing/seed-corpus/**/*": true
},
"files.associations": {
"*.lock": "yarnlock",
"*.idl": "cpp",
"memory": "cpp",
"iostream": "cpp",
@@ -127,8 +208,62 @@
"numeric": "cpp",
"set": "cpp",
"__memory": "cpp",
"memory_resource": "cpp"
"memory_resource": "cpp",
"*.tcc": "cpp",
"list": "cpp",
"shared_mutex": "cpp",
"cinttypes": "cpp",
"variant": "cpp",
"sysctl.h": "c",
"queue": "cpp",
"compare": "cpp",
"concepts": "cpp",
"typeindex": "cpp",
"__verbose_abort": "cpp",
"__std_stream": "cpp",
"any": "cpp",
"charconv": "cpp",
"csignal": "cpp",
"format": "cpp",
"forward_list": "cpp",
"future": "cpp",
"regex": "cpp",
"span": "cpp",
"valarray": "cpp",
"codecvt": "cpp",
"xtr1common": "cpp",
"stop_token": "cpp",
"xfacet": "cpp",
"xhash": "cpp",
"xiosbase": "cpp",
"xlocale": "cpp",
"xlocbuf": "cpp",
"xlocinfo": "cpp",
"xlocmes": "cpp",
"xlocmon": "cpp",
"xlocnum": "cpp",
"xloctime": "cpp",
"xmemory": "cpp",
"xstring": "cpp",
"xtree": "cpp",
"xutility": "cpp"
},
"C_Cpp.files.exclude": {
"**/.vscode": true,
"WebKit/JSTests": true,
"WebKit/Tools": true,
"WebKit/WebDriverTests": true,
"WebKit/WebKit.xcworkspace": true,
"WebKit/WebKitLibraries": true,
"WebKit/Websites": true,
"WebKit/resources": true,
"WebKit/LayoutTests": true,
"WebKit/ManualTests": true,
"WebKit/PerformanceTests": true,
"WebKit/WebKitLegacy": true,
"WebKit/WebCore": true,
"WebKit/WebDriver": true,
"WebKit/WebKitBuild": true,
"WebKit/WebInspectorUI": true
},
"go.logging.level": "off",
"cmake.configureOnOpen": false
}

83
.vscode/tasks.json vendored
View File

@@ -2,58 +2,51 @@
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "process",
"command": "zig",
"args": ["build"],
"presentation": {
"echo": true,
"reveal": "silent",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": false
"label": "Install Dependencies",
"command": "scripts/all-dependencies.sh",
"windows": {
"command": "scripts/all-dependencies.ps1"
},
"icon": {
"id": "arrow-down"
},
"options": {
"cwd": "${workspaceFolder}"
},
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "run",
"type": "process",
"command": "zig",
"args": ["run", "${file}"],
"group": "build",
"presentation": {
"showReuseMessage": false,
"clear": true
}
"label": "Setup Environment",
"dependsOn": ["Install Dependencies"],
"command": "scripts/setup.sh",
"windows": {
"command": "scripts/setup.ps1"
},
"icon": {
"id": "check"
},
"options": {
"cwd": "${workspaceFolder}"
},
},
{
"label": "test",
"type": "shell",
"command": "zig",
"args": [
"test",
"${file}",
"--main-pkg-path",
"${workspaceFolder}",
"-femit-bin=${workspaceFolder}/zig-out/bin/test",
";",
"true"
],
"group": {
"kind": "test",
"isDefault": true
"type": "process",
"label": "Build Bun",
"dependsOn": ["Setup Environment"],
"command": "bun",
"args": ["run", "build"],
"icon": {
"id": "gear"
},
"presentation": {
"showReuseMessage": false,
"clear": true,
"panel": "new",
"reveal": "always"
}
}
"options": {
"cwd": "${workspaceFolder}"
},
"isBuildCommand": true,
"runOptions": {
"instanceLimit": 1,
"reevaluateOnRerun": true,
},
},
]
}

1337
CMakeLists.txt Normal file

File diff suppressed because it is too large Load Diff

12
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,12 @@
## Code of conduct
- We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.
- Please avoid using overtly sexual aliases or other nicknames that might detract from a friendly, safe and welcoming environment for all.
- Please be kind and courteous. Theres no need to be mean or rude.
- Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer.
- Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works.
- We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term “harassment” as including the definition in the [Citizen Code of Conduct](https://github.com/stumpsyn/policies/blob/master/citizen_code_of_conduct.md); if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we dont tolerate behavior that excludes people in socially marginalized groups.
- Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the channel ops or an employee of Oven immediately. Whether youre a regular contributor or a newcomer, we care about making this community a safe place for you and weve got your back.
- Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome.
This code of conduct is adapted from the [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct).

76
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,76 @@
# Contributing to Bun
> **Important:** All contributions need test coverage. If you are adding a new feature, please add a test. If you are fixing a bug, please add a test that fails before your fix and passes after your fix.
## Bun's codebase
Bun is written mostly in Zig, but WebKit & JavaScriptCore (the JavaScript engine) is written in C++.
Today (February 2023), Bun's codebase has five distinct parts:
- JavaScript, JSX, & TypeScript transpiler, module resolver, and related code
- JavaScript runtime ([`src/bun.js/`](src/bun.js/))
- JavaScript runtime bindings ([`src/bun.js/bindings/**/*.cpp`](src/bun.js/bindings/))
- Package manager ([`src/install/`](src/install/))
- Shared utilities ([`src/string_immutable.zig`](src/string_immutable.zig))
The JavaScript transpiler & module resolver is mostly independent from the runtime. It predates the runtime and is entirely in Zig. The JavaScript parser is mostly in [`src/js_parser.zig`](src/js_parser.zig). The JavaScript AST data structures are mostly in [`src/js_ast.zig`](src/js_ast.zig). The JavaScript lexer is in [`src/js_lexer.zig`](src/js_lexer.zig). A lot of this code started as a port of esbuild's equivalent code from Go to Zig, but has had many small changes since then.
## Getting started
Please refer to [Bun's Development Guide](https://bun.sh/docs/project/contributing) to get your dev environment setup!
## Memory management in Bun
For the Zig code, please:
1. Do your best to avoid dynamically allocating memory.
2. If we need to allocate memory, carefully consider the owner of that memory. If it's a JavaScript object, it will need a finalizer. If it's in Zig, it will need to be freed either via an arena or manually.
3. Prefer arenas over manual memory management. Manually freeing memory is leak & crash prone.
4. If the memory needs to be accessed across threads, use `bun.default_allocator`. Mimalloc threadlocal heaps are not safe to free across threads.
The JavaScript transpiler has special-handling for memory management. The parser allocates into a single arena and the memory is recycled after each parse.
## JavaScript runtime
Most of Bun's JavaScript runtime code lives in [`src/bun.js`](src/bun.js).
### Calling C++ from Zig & Zig from C++
TODO: document this (see [`bindings.zig`](src/bun.js/bindings/bindings.zig) and [`bindings.cpp`](src/bun.js/bindings/bindings.cpp) for now)
### Adding a new JavaScript class
1. Add a new file in [`src/bun.js/*.classes.ts`](src/bun.js) to define the instance and static methods for the class.
2. Add a new file in [`src/bun.js/**/*.zig`](src/bun.js) and expose the struct in [`src/bun.js/generated_classes_list.zig`](src/bun.js/generated_classes_list.zig)
3. Run `make codegen`
Copy from examples like `Subprocess` or `Response`.
### ESM Modules and Builtins JS
Bun implements ESM modules in a mix of native code and JavaScript.
Several Node.js modules are implemented in JavaScript and loosely based on browserify polyfills.
Builtin modules in Bun are located in [`src/js`](src/js/). These files are transpiled and support a JavaScriptCore-only syntax for internal slots, which is explained further in [`src/js/README.md`](src/js/README.md).
Native C++ modules are in `src/bun.js/modules/`.
The module loader is in [`src/bun.js/module_loader.zig`](src/bun.js/module_loader.zig).
### Memory management in Bun's JavaScript runtime
TODO: fill this out (for now, use `JSC.Strong` in most cases)
### Strings
TODO: fill this out (for now, use `JSValue.toSlice()` in most cases)
#### JavaScriptCore C API
Do not copy from examples leveraging the JavaScriptCore C API. Please do not use this in new code. We will not accept PRs that add new code that uses the JavaScriptCore C API.
## Testing
See [`test/README.md`](test/README.md) for information on how to run tests.

View File

@@ -1,8 +1,551 @@
FROM bun-zig:latest
# This Dockerfile is used by CI workflows to build Bun. It is not intended as a development
# environment, or to be used as a base image for other projects.
#
# You likely want this image instead: https://hub.docker.com/r/oven/bun
#
# TODO: move this file to reduce confusion
ARG DEBIAN_FRONTEND=noninteractive
ARG GITHUB_WORKSPACE=/build
ARG WEBKIT_DIR=${GITHUB_WORKSPACE}/bun-webkit
ARG BUN_RELEASE_DIR=${GITHUB_WORKSPACE}/bun-release
ARG BUN_DEPS_OUT_DIR=${GITHUB_WORKSPACE}/bun-deps
ARG BUN_DIR=${GITHUB_WORKSPACE}/bun
ARG CPU_TARGET=native
ARG ARCH=x86_64
ARG BUILD_MACHINE_ARCH=x86_64
ARG BUILDARCH=amd64
ARG TRIPLET=${ARCH}-linux-gnu
ARG GIT_SHA=""
ARG BUN_VERSION="bun-v1.0.7"
ARG BUN_DOWNLOAD_URL_BASE="https://pub-5e11e972747a44bf9aaf9394f185a982.r2.dev/releases/${BUN_VERSION}"
ARG CANARY=0
ARG ASSERTIONS=OFF
ARG ZIG_OPTIMIZE=ReleaseFast
ARG CMAKE_BUILD_TYPE=Release
COPY . /home/ubuntu/bun
WORKDIR /home/ubuntu/bun
ARG NODE_VERSION="20"
ARG LLVM_VERSION="16"
ARG ZIG_VERSION="0.12.0-dev.1828+225fe6ddb"
RUN make vendor-without-check
ARG SCCACHE_BUCKET
ARG SCCACHE_REGION
ARG SCCACHE_S3_USE_SSL
ARG SCCACHE_ENDPOINT
ARG AWS_ACCESS_KEY_ID
ARG AWS_SECRET_ACCESS_KEY
FROM bitnami/minideb:bullseye as bun-base
ARG BUN_DOWNLOAD_URL_BASE
ARG DEBIAN_FRONTEND
ARG BUN_VERSION
ARG NODE_VERSION
ARG LLVM_VERSION
ARG BUILD_MACHINE_ARCH
ARG BUN_DIR
ARG BUN_DEPS_OUT_DIR
ARG CPU_TARGET
ENV CI 1
ENV CPU_TARGET=${CPU_TARGET}
ENV BUILDARCH=${BUILDARCH}
ENV BUN_DEPS_OUT_DIR=${BUN_DEPS_OUT_DIR}
ENV CXX=clang++-16
ENV CC=clang-16
ENV AR=/usr/bin/llvm-ar-16
ENV LD=lld-16
ENV SCCACHE_BUCKET=${SCCACHE_BUCKET}
ENV SCCACHE_REGION=${SCCACHE_REGION}
ENV SCCACHE_S3_USE_SSL=${SCCACHE_S3_USE_SSL}
ENV SCCACHE_ENDPOINT=${SCCACHE_ENDPOINT}
ENV AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
ENV AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
RUN apt-get update -y \
&& install_packages \
ca-certificates \
curl \
gnupg \
&& echo "deb https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-${LLVM_VERSION} main" > /etc/apt/sources.list.d/llvm.list \
&& echo "deb-src https://apt.llvm.org/bullseye/ llvm-toolchain-bullseye-${LLVM_VERSION} main" >> /etc/apt/sources.list.d/llvm.list \
&& curl -fsSL "https://apt.llvm.org/llvm-snapshot.gpg.key" | apt-key add - \
&& echo "deb https://deb.nodesource.com/node_${NODE_VERSION}.x nodistro main" > /etc/apt/sources.list.d/nodesource.list \
&& curl -fsSL "https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key" | apt-key add - \
&& echo "deb https://apt.kitware.com/ubuntu/ focal main" > /etc/apt/sources.list.d/kitware.list \
&& curl -fsSL "https://apt.kitware.com/keys/kitware-archive-latest.asc" | apt-key add - \
&& install_packages \
wget \
bash \
software-properties-common \
build-essential \
autoconf \
automake \
libtool \
pkg-config \
clang-${LLVM_VERSION} \
lld-${LLVM_VERSION} \
lldb-${LLVM_VERSION} \
clangd-${LLVM_VERSION} \
make \
cmake \
ninja-build \
file \
libc-dev \
libxml2 \
libxml2-dev \
xz-utils \
git \
tar \
rsync \
gzip \
unzip \
perl \
python3 \
ruby \
golang \
nodejs \
&& ln -s /usr/bin/clang-${LLVM_VERSION} /usr/bin/clang \
&& ln -s /usr/bin/clang++-${LLVM_VERSION} /usr/bin/clang++ \
&& ln -s /usr/bin/lld-${LLVM_VERSION} /usr/bin/lld \
&& ln -s /usr/bin/lldb-${LLVM_VERSION} /usr/bin/lldb \
&& ln -s /usr/bin/clangd-${LLVM_VERSION} /usr/bin/clangd \
&& ln -s /usr/bin/llvm-ar-${LLVM_VERSION} /usr/bin/llvm-ar \
&& arch="$(dpkg --print-architecture)" \
&& case "${arch##*-}" in \
amd64) variant="x64";; \
arm64) variant="aarch64";; \
*) echo "error: unsupported architecture: $arch"; exit 1 ;; \
esac \
&& wget "${BUN_DOWNLOAD_URL_BASE}/bun-linux-${variant}.zip" \
&& unzip bun-linux-${variant}.zip \
&& mv bun-linux-${variant}/bun /usr/bin/bun \
&& ln -s /usr/bin/bun /usr/bin/bunx \
&& rm -rf bun-linux-${variant} bun-linux-${variant}.zip \
&& mkdir -p ${BUN_DIR} ${BUN_DEPS_OUT_DIR}
# && if [ -n "${SCCACHE_BUCKET}" ]; then \
# echo "Setting up sccache" \
# && wget https://github.com/mozilla/sccache/releases/download/v0.5.4/sccache-v0.5.4-${BUILD_MACHINE_ARCH}-unknown-linux-musl.tar.gz \
# && tar xf sccache-v0.5.4-${BUILD_MACHINE_ARCH}-unknown-linux-musl.tar.gz \
# && mv sccache-v0.5.4-${BUILD_MACHINE_ARCH}-unknown-linux-musl/sccache /usr/bin/sccache \
# && rm -rf sccache-v0.5.4-${BUILD_MACHINE_ARCH}-unknown-linux-musl.tar.gz sccache-v0.5.4-${BUILD_MACHINE_ARCH}-unknown-linux-musl \
FROM bun-base as bun-base-with-zig
ARG ZIG_VERSION
ARG BUILD_MACHINE_ARCH
ARG ZIG_FOLDERNAME=zig-linux-${BUILD_MACHINE_ARCH}-${ZIG_VERSION}
ARG ZIG_FILENAME=${ZIG_FOLDERNAME}.tar.xz
ARG ZIG_URL="https://ziglang.org/builds/${ZIG_FILENAME}"
WORKDIR $GITHUB_WORKSPACE
ADD $ZIG_URL .
RUN tar xf ${ZIG_FILENAME} \
&& mv ${ZIG_FOLDERNAME}/lib /usr/lib/zig \
&& mv ${ZIG_FOLDERNAME}/zig /usr/bin/zig \
&& rm -rf ${ZIG_FILENAME} ${ZIG_FOLDERNAME}
FROM bun-base as c-ares
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
ENV CCACHE_DIR=/ccache
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/c-ares ${BUN_DIR}/src/deps/c-ares
WORKDIR $BUN_DIR
RUN --mount=type=cache,target=/ccache cd $BUN_DIR && make c-ares && rm -rf ${BUN_DIR}/src/deps/c-ares ${BUN_DIR}/Makefile
FROM bun-base as lolhtml
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/lol-html ${BUN_DIR}/src/deps/lol-html
ENV CCACHE_DIR=/ccache
RUN --mount=type=cache,target=/ccache export PATH=$PATH:$HOME/.cargo/bin && cd ${BUN_DIR} && \
make lolhtml && rm -rf src/deps/lol-html Makefile
FROM bun-base as mimalloc
ARG BUN_DIR
ARG CPU_TARGET
ARG ASSERTIONS
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/mimalloc ${BUN_DIR}/src/deps/mimalloc
ENV CCACHE_DIR=/ccache
RUN --mount=type=cache,target=/ccache cd ${BUN_DIR} && \
make mimalloc && rm -rf src/deps/mimalloc Makefile;
FROM bun-base as mimalloc-debug
ARG BUN_DIR
ARG CPU_TARGET
ARG ASSERTIONS
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/mimalloc ${BUN_DIR}/src/deps/mimalloc
ENV CCACHE_DIR=/ccache
RUN --mount=type=cache,target=/ccache cd ${BUN_DIR} && \
make mimalloc-debug && rm -rf src/deps/mimalloc Makefile;
FROM bun-base as zlib
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
ENV CCACHE_DIR=/ccache
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/zlib ${BUN_DIR}/src/deps/zlib
WORKDIR $BUN_DIR
RUN --mount=type=cache,target=/ccache cd $BUN_DIR && \
make zlib && rm -rf src/deps/zlib Makefile
FROM bun-base as libarchive
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
ENV CCACHE_DIR=/ccache
RUN install_packages autoconf automake libtool pkg-config
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/libarchive ${BUN_DIR}/src/deps/libarchive
WORKDIR $BUN_DIR
RUN --mount=type=cache,target=/ccache cd $BUN_DIR && \
make libarchive && rm -rf src/deps/libarchive Makefile
FROM bun-base as tinycc
ARG BUN_DEPS_OUT_DIR
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
RUN install_packages libtcc-dev && cp /usr/lib/$(uname -m)-linux-gnu/libtcc.a ${BUN_DEPS_OUT_DIR}
FROM bun-base as boringssl
RUN install_packages golang
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/boringssl ${BUN_DIR}/src/deps/boringssl
WORKDIR $BUN_DIR
ENV CCACHE_DIR=/ccache
RUN --mount=type=cache,target=/ccache cd ${BUN_DIR} && make boringssl && rm -rf src/deps/boringssl Makefile
FROM bun-base as base64
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/base64 ${BUN_DIR}/src/deps/base64
WORKDIR $BUN_DIR
RUN cd $BUN_DIR && \
make base64 && rm -rf src/deps/base64 Makefile
FROM bun-base as zstd
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
ENV CCACHE_DIR=/ccache
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/zstd ${BUN_DIR}/src/deps/zstd
WORKDIR $BUN_DIR
RUN --mount=type=cache,target=/ccache cd $BUN_DIR && make zstd
FROM bun-base as ls-hpack
ARG BUN_DIR
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
ENV CCACHE_DIR=/ccache
COPY Makefile ${BUN_DIR}/Makefile
COPY src/deps/ls-hpack ${BUN_DIR}/src/deps/ls-hpack
WORKDIR $BUN_DIR
RUN --mount=type=cache,target=/ccache cd $BUN_DIR && make lshpack
FROM bun-base-with-zig as bun-identifier-cache
ARG DEBIAN_FRONTEND
ARG GITHUB_WORKSPACE
ARG CPU_TARGET
ARG BUN_DIR
ENV CPU_TARGET=${CPU_TARGET}
WORKDIR $BUN_DIR
COPY src/js_lexer/identifier_data.zig ${BUN_DIR}/src/js_lexer/identifier_data.zig
COPY src/js_lexer/identifier_cache.zig ${BUN_DIR}/src/js_lexer/identifier_cache.zig
RUN cd $BUN_DIR \
&& zig run src/js_lexer/identifier_data.zig \
&& rm -rf zig-cache
FROM bun-base as bun-node-fallbacks
ARG BUN_DIR
WORKDIR $BUN_DIR
COPY src/node-fallbacks ${BUN_DIR}/src/node-fallbacks
RUN cd $BUN_DIR/src/node-fallbacks \
&& bun install --frozen-lockfile \
&& bun run build \
&& rm -rf src/node-fallbacks/node_modules
FROM bun-base as bun-webkit
ARG BUILDARCH
ARG ASSERTIONS
COPY CMakeLists.txt ${BUN_DIR}/CMakeLists.txt
RUN mkdir ${BUN_DIR}/bun-webkit \
&& WEBKIT_TAG=$(grep 'set(WEBKIT_TAG' "${BUN_DIR}/CMakeLists.txt" | awk '{print $2}' | cut -f 1 -d ')') \
&& WEBKIT_SUFFIX=$(if [ "${ASSERTIONS}" = "ON" ]; then echo "debug"; else echo "lto"; fi) \
&& WEBKIT_URL="https://github.com/oven-sh/WebKit/releases/download/autobuild-${WEBKIT_TAG}/bun-webkit-linux-${BUILDARCH}-${WEBKIT_SUFFIX}.tar.gz" \
&& echo "Downloading ${WEBKIT_URL}" \
&& curl -fsSL "${WEBKIT_URL}" | tar -xz -C ${BUN_DIR}/bun-webkit --strip-components=1
FROM bun-base as bun-cpp-objects
ARG CANARY
ARG ASSERTIONS
COPY --from=bun-webkit ${BUN_DIR}/bun-webkit ${BUN_DIR}/bun-webkit
COPY packages ${BUN_DIR}/packages
COPY src ${BUN_DIR}/src
COPY CMakeLists.txt ${BUN_DIR}/CMakeLists.txt
COPY src/deps/boringssl/include ${BUN_DIR}/src/deps/boringssl/include
ENV CCACHE_DIR=/ccache
RUN --mount=type=cache,target=/ccache mkdir ${BUN_DIR}/build \
&& cd ${BUN_DIR}/build \
&& mkdir -p tmp_modules tmp_functions js codegen \
&& cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DUSE_DEBUG_JSC=${ASSERTIONS} -DBUN_CPP_ONLY=1 -DWEBKIT_DIR=/build/bun/bun-webkit -DCANARY=${CANARY} -DZIG_COMPILER=system \
&& bash compile-cpp-only.sh -v
FROM bun-base-with-zig as bun-codegen-for-zig
COPY package.json bun.lockb Makefile .gitmodules ${BUN_DIR}/
COPY src/runtime ${BUN_DIR}/src/runtime
COPY src/runtime.js src/runtime.bun.js ${BUN_DIR}/src/
COPY packages/bun-error ${BUN_DIR}/packages/bun-error
COPY src/fallback.ts ${BUN_DIR}/src/fallback.ts
COPY src/api ${BUN_DIR}/src/api
WORKDIR $BUN_DIR
# TODO: move away from Makefile entirely
RUN bun install --frozen-lockfile \
&& make runtime_js fallback_decoder bun_error \
&& rm -rf src/runtime src/fallback.ts node_modules bun.lockb package.json Makefile
FROM bun-base-with-zig as bun-compile-zig-obj
ARG ZIG_PATH
ARG TRIPLET
ARG GIT_SHA
ARG CPU_TARGET
ARG CANARY=0
ARG ASSERTIONS=OFF
ARG ZIG_OPTIMIZE=ReleaseFast
COPY *.zig package.json CMakeLists.txt ${BUN_DIR}/
COPY completions ${BUN_DIR}/completions
COPY packages ${BUN_DIR}/packages
COPY src ${BUN_DIR}/src
COPY --from=bun-identifier-cache ${BUN_DIR}/src/js_lexer/*.blob ${BUN_DIR}/src/js_lexer/
COPY --from=bun-node-fallbacks ${BUN_DIR}/src/node-fallbacks/out ${BUN_DIR}/src/node-fallbacks/out
COPY --from=bun-codegen-for-zig ${BUN_DIR}/src/*.out.js ${BUN_DIR}/src/*.out.refresh.js ${BUN_DIR}/src/
COPY --from=bun-codegen-for-zig ${BUN_DIR}/packages/bun-error/dist ${BUN_DIR}/packages/bun-error/dist
WORKDIR $BUN_DIR
RUN mkdir -p build \
&& bun run $BUN_DIR/src/codegen/bundle-modules-fast.ts $BUN_DIR/build \
&& cd build \
&& cmake .. \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DZIG_OPTIMIZE="${ZIG_OPTIMIZE}" \
-DCPU_TARGET="${CPU_TARGET}" \
-DZIG_TARGET="${TRIPLET}" \
-DWEBKIT_DIR="omit" \
-DNO_CONFIGURE_DEPENDS=1 \
-DNO_CODEGEN=1 \
-DBUN_ZIG_OBJ="/tmp/bun-zig.o" \
-DCANARY="${CANARY}" \
-DZIG_COMPILER=system \
&& ONLY_ZIG=1 ninja "/tmp/bun-zig.o" -v
FROM scratch as build_release_obj
ARG CPU_TARGET
ENV CPU_TARGET=${CPU_TARGET}
COPY --from=bun-compile-zig-obj /tmp/bun-zig.o /
FROM bun-base as bun-link
ARG CPU_TARGET
ARG CANARY
ARG ASSERTIONS
ENV CPU_TARGET=${CPU_TARGET}
WORKDIR $BUN_DIR
RUN mkdir -p build bun-webkit
# lol
COPY src/bun.js/bindings/sqlite/sqlite3.c ${BUN_DIR}/src/bun.js/bindings/sqlite/sqlite3.c
COPY src/symbols.dyn src/linker.lds ${BUN_DIR}/src/
COPY CMakeLists.txt ${BUN_DIR}/CMakeLists.txt
COPY --from=zlib ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=base64 ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=libarchive ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=boringssl ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=lolhtml ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=mimalloc ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=zstd ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=tinycc ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=c-ares ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=ls-hpack ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=bun-compile-zig-obj /tmp/bun-zig.o ${BUN_DIR}/build/bun-zig.o
COPY --from=bun-cpp-objects ${BUN_DIR}/build/bun-cpp-objects.a ${BUN_DIR}/build/bun-cpp-objects.a
COPY --from=bun-cpp-objects ${BUN_DIR}/bun-webkit/lib ${BUN_DIR}/bun-webkit/lib
WORKDIR $BUN_DIR/build
RUN cmake .. \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_LINK_ONLY=1 \
-DBUN_ZIG_OBJ="${BUN_DIR}/build/bun-zig.o" \
-DUSE_DEBUG_JSC=${ASSERTIONS} \
-DBUN_CPP_ARCHIVE="${BUN_DIR}/build/bun-cpp-objects.a" \
-DWEBKIT_DIR="${BUN_DIR}/bun-webkit" \
-DBUN_DEPS_OUT_DIR="${BUN_DEPS_OUT_DIR}" \
-DCPU_TARGET="${CPU_TARGET}" \
-DNO_CONFIGURE_DEPENDS=1 \
-DCANARY="${CANARY}" \
-DZIG_COMPILER=system \
&& ninja -v \
&& ./bun --revision \
&& mkdir -p /build/out \
&& mv bun bun-profile /build/out \
&& rm -rf ${BUN_DIR} ${BUN_DEPS_OUT_DIR}
FROM scratch as artifact
COPY --from=bun-link /build/out /
FROM bun-base as bun-link-assertions
ARG CPU_TARGET
ARG CANARY
ARG ASSERTIONS
ENV CPU_TARGET=${CPU_TARGET}
WORKDIR $BUN_DIR
RUN mkdir -p build bun-webkit
# lol
COPY src/bun.js/bindings/sqlite/sqlite3.c ${BUN_DIR}/src/bun.js/bindings/sqlite/sqlite3.c
COPY src/symbols.dyn src/linker.lds ${BUN_DIR}/src/
COPY CMakeLists.txt ${BUN_DIR}/CMakeLists.txt
COPY --from=zlib ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=base64 ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=libarchive ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=boringssl ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=lolhtml ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=mimalloc-debug ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=zstd ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=tinycc ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=c-ares ${BUN_DEPS_OUT_DIR}/* ${BUN_DEPS_OUT_DIR}/
COPY --from=bun-compile-zig-obj /tmp/bun-zig.o ${BUN_DIR}/build/bun-zig.o
COPY --from=bun-cpp-objects ${BUN_DIR}/build/bun-cpp-objects.a ${BUN_DIR}/build/bun-cpp-objects.a
COPY --from=bun-cpp-objects ${BUN_DIR}/bun-webkit/lib ${BUN_DIR}/bun-webkit/lib
WORKDIR $BUN_DIR/build
RUN cmake .. \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DBUN_LINK_ONLY=1 \
-DBUN_ZIG_OBJ="${BUN_DIR}/build/bun-zig.o" \
-DUSE_DEBUG_JSC=ON \
-DBUN_CPP_ARCHIVE="${BUN_DIR}/build/bun-cpp-objects.a" \
-DWEBKIT_DIR="${BUN_DIR}/bun-webkit" \
-DBUN_DEPS_OUT_DIR="${BUN_DEPS_OUT_DIR}" \
-DCPU_TARGET="${CPU_TARGET}" \
-DNO_CONFIGURE_DEPENDS=1 \
-DCANARY="${CANARY}" \
-DZIG_COMPILER=system \
&& ninja -v \
&& ./bun --revision \
&& mkdir -p /build/out \
&& mv bun bun-profile /build/out \
&& rm -rf ${BUN_DIR} ${BUN_DEPS_OUT_DIR}
FROM scratch as artifact-assertions
COPY --from=bun-link-assertions /build/out /

View File

@@ -1,52 +0,0 @@
FROM ubuntu:latest
RUN apt-get update && apt-get install --no-install-recommends -y wget gnupg2 curl lsb-release wget software-properties-common
RUN curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
RUN wget https://apt.llvm.org/llvm.sh --no-check-certificate
RUN chmod +x llvm.sh
RUN ./llvm.sh 12
RUN apt-get update && apt-get install --no-install-recommends -y \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
cmake \
build-essential \
git \
libssl-dev \
ruby \
liblld-12-dev \
libclang-12-dev \
nodejs \
gcc \
g++ \
npm \
clang-12 \
clang-format-12 \
libc++-12-dev \
libc++abi-12-dev \
lld-12 \
libicu-dev
RUN update-alternatives --install /usr/bin/ld ld /usr/bin/lld-12 90 && \
update-alternatives --install /usr/bin/cc cc /usr/bin/clang-12 90 && \
update-alternatives --install /usr/bin/cpp cpp /usr/bin/clang++-12 90 && \
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-12 90
ENV CC=clang-12
ENV CXX=clang++-12
# Compile zig
RUN mkdir -p /home/ubuntu/zig; cd /home/ubuntu; git clone https://github.com/jarred-sumner/zig.git; cd /home/ubuntu/zig && git checkout jarred/zig-sloppy-with-small-structs && cmake . -DCMAKE_BUILD_TYPE=Release && make -j$(nproc)
ENV PATH="/home/ubuntu/zig:$PATH"
RUN npm install -g esbuild

2125
Makefile

File diff suppressed because it is too large Load Diff

678
README.md
View File

@@ -1,603 +1,135 @@
# Bun
<p align="center">
<a href="https://bun.sh"><img src="https://user-images.githubusercontent.com/709451/182802334-d9c42afe-f35d-4a7b-86ea-9985f73f20c3.png" alt="Logo" height=170></a>
</p>
<h1 align="center">Bun</h1>
Bun is a new:
<p align="center">
<a href="https://bun.sh/discord" target="_blank"><img height=20 src="https://img.shields.io/discord/876711213126520882" /></a>
<img src="https://img.shields.io/github/stars/oven-sh/bun" alt="stars">
<a href="https://twitter.com/jarredsumner/status/1542824445810642946"><img src="https://img.shields.io/static/v1?label=speed&message=fast&color=success" alt="Bun speed" /></a>
</p>
- JavaScript/TypeScript/JSX transpiler
- JavaScript & CSS bundler
- Development server with 60fps Hot Module Reloading (& WIP support for React Fast Refresh)
- JavaScript Runtime Environment (powered by JavaScriptCore, what WebKit/Safari uses)
<div align="center">
<a href="https://bun.sh/docs">Documentation</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://discord.com/invite/CXdq2DP29u">Discord</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://github.com/oven-sh/bun/issues/new">Issues</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://github.com/oven-sh/bun/issues/159">Roadmap</a>
<br />
</div>
All in one fast &amp; easy-to-use tool. Instead of 1,000 node_modules for development, you only need Bun.
### [Read the docs →](https://bun.sh/docs)
**Bun is experimental software**. Join [Bun's Discord](https://bun.sh/discord) for help and have a look at [things that don't work yet](#things-that-dont-work-yet).
## What is Bun?
## Install:
> **Bun is under active development.** Use it to speed up your development workflows or run simpler production code in resource-constrained environments like serverless functions. We're working on more complete Node.js compatibility and integration with existing frameworks. Join the [Discord](https://bun.sh/discord) and watch the [GitHub repository](https://github.com/oven-sh/bun) to keep tabs on future releases.
```
# Global install is recommended so bun appears in your $PATH
npm install -g bun-cli
```
Bun is an all-in-one toolkit for JavaScript and TypeScript apps. It ships as a single executable called `bun`.
### Getting started
## Using Bun with Next.js
In your project folder root (where `package.json` is):
At its core is the _Bun runtime_, a fast JavaScript runtime designed as a drop-in replacement for Node.js. It's written in Zig and powered by JavaScriptCore under the hood, dramatically reducing startup times and memory usage.
```bash
npm install -D bun-framework-next
bun bun --use next
bun
bun run index.tsx # TS and JSX supported out-of-the-box
```
Many of Next.js' features are supported, but not all.
Here's what doesn't work yet:
- `getStaticPaths`
- same-origin `fetch` inside of `getStaticProps` or `getServerSideProps`
- locales, zones, `assetPrefix` (workaround: change `--origin \"http://localhsot:3000/assetPrefixInhere\"`)
- `next/image` is polyfilled to a regular `<img src>` tag.
- `proxy` and anything else in `next.config.js`
- API, catch-all &amp; catch-all fallback routes. Dynamic routes _are_ supported.
When using Next.js, Bun automatically reads configuration from `.env.local`, `.env.development` and `.env` (in that order). `process.env.NEXT_PUBLIC_` and `process.env.NEXT_` automatically are replaced via `--define`.
Currently, any time you import new dependencies from `node_modules`, you will need to re-run `bun bun --use next`. This will eventually be automatic.
## Using Bun with single page apps
In your project folder root (where `package.json` is):
The `bun` command-line tool also implements a test runner, script runner, and Node.js-compatible package manager. Instead of 1,000 node_modules for development, you only need `bun`. Bun's built-in tools are significantly faster than existing options and usable in existing Node.js projects with little to no changes.
```bash
bun bun ./entry-point-1.js ./entry-point-2.jsx
bun
bun test # run tests
bun run start # run the `start` script in `package.json`
bun install <pkg> # install a package
bunx cowsay 'Hello, world!' # execute a package
```
By default, `bun` will look for any HTML files in the `public` directory and serve that. For browsers navigating to the page, the `.html` file extension is optional in the URL, and `index.html` will automatically rewrite for the directory.
## Install
Here are examples of routing from `public/` and how they're matched:
| Dev Server URL | File Path |
|----------------|-----------|
| /dir | public/dir/index.html |
| / | public/index.html |
| /index | public/index.html |
| /hi | public/hi.html |
| /file | public/file.html |
| /font/Inter.woff2 | public/font/Inter.woff2 |
| /hello | public/index.html |
Bun supports Linux (x64 & arm64) and macOS (x64 & Apple Silicon).
If `public/index.html` exists, it becomes the default page instead of a 404 page, unless that pathname has a file extension.
> **Linux users** — Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1.
>
> **Windows users** — Bun does not currently provide a native Windows build. We're working on this; progress can be tracked at [this issue](https://github.com/oven-sh/bun/issues/43). In the meantime, use one of the installation methods below for Windows Subsystem for Linux.
#### Using Bun with Create React App
```sh
# with install script (recommended)
curl -fsSL https://bun.sh/install | bash
To use Bun with `create-react-app`, there are two changes you will need to make in `public/index.html`:
# with npm
npm install -g bun
1. Replace `%PUBLIC_URL%` with `/`
2. Insert `<script type="module" async src="/src/index.js">` just before `</body>`
# with Homebrew
brew tap oven-sh/bun
brew install bun
These changes are (sadly) necessary until Bun supports parsing &amp; transpiling HTML.
In your project folder root (where `package.json` is):
```bash
bun bun ./src/index.js
bun
# with Docker
docker pull oven/bun
docker run --rm --init --ulimit memlock=-1:-1 oven/bun
```
From there, Bun relies on the filesystem for mapping dev server paths to source files. All URL paths are relative to the project root (where `package.json` is located).
### Upgrade
Here are examples of routing source code file paths:
To upgrade to the latest version of Bun, run:
| Dev Server URL | File Path (relative to cwd) |
| -------------------------- | --------------------------- |
| /src/components/Button.tsx | src/components/Button.tsx |
| /src/index.tsx | src/index.tsx |
| /pages/index.js | pages/index.js |
You do not need to include file extensions in `import` paths. CommonJS-style import paths without the file extension works.
You can override the public directory by passing `--public-dir="path-to-folder"`.
If no directory is specified and `./public/` doesn't exist, Bun will try `./static/`. If `./static/` does not exist, but won't serve from a public directory. If you pass `--public-dir=./` Bun will serve from the current directory, but it will check the current directory last instead of first.
## Using Bun with TypeScript
TypeScript just works. There's nothing to configure and nothing extra to install. If you import a `.ts` or `.tsx` file, Bun will transpile it into JavaScript. Bun also transpiles `node_modules` containing `.ts` or `.tsx` files. This is powered by Bun's TypeScript transpiler, so it's fast.
Bun also reads `tsconfig.json`, including `baseUrl` and `paths`.
## Using Tailwind with Bun
[Tailwind](https://tailwindcss.com/) is a popular CSS utility framework. Currently, the easiest way to use Tailwind with Bun is through Tailwind's CLI. That means running both `bun` and `tailwind`, and importing the file `tailwind`'s CLI outputs.
Tailwind's docs talk more about [Tailwind's CLI usage](https://tailwindcss.com/docs/installation#watching-for-changes), but the gist is you'll want to run this:
```bash
npx tailwindcss -i ./src/tailwind.css -o ./dist/tailwind.css --watch
```sh
bun upgrade
```
From there, make sure to import the `dist/tailwind.css` file (or what you chose as the output).
Bun automatically releases a canary build on every commit to `main`. To upgrade to the latest canary build, run:
## Things that don't work yet
Bun is a project with incredibly large scope, and it's early days.
| Feature | In |
| ---------------------------------------------------------------------------------------------------------------------- | -------------- |
| ~Symlinks~ | Resolver |
| [Finish Fast Refresh](https://github.com/Jarred-Sumner/bun/issues/18) | JSX Transpiler |
| Source Maps | JavaScript |
| Source Maps | CSS |
| [Private Class Fields](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Private_class_fields) | JS Transpiler |
| [Import Assertions](https://github.com/tc39/proposal-import-assertions) | JS Transpiler |
| [`extends`](https://www.typescriptlang.org/tsconfig#extends) in tsconfig.json | TS Transpiler |
| [jsx](https://www.typescriptlang.org/tsconfig)\* in tsconfig.json | TS Transpiler |
| [TypeScript Decorators](https://www.typescriptlang.org/docs/handbook/decorators.html) | TS Transpiler |
| `@jsxPragma` comments | JS Transpiler |
| JSX source file name | JS Transpiler |
| Sharing `.bun` files | Bun |
| [Finish fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) | Bun.js |
| [setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout) | Bun.js |
| `bun run` command | Bun.js |
<sup>JS Transpiler == JavaScript Transpiler</sup><br/>
<sup>TS Transpiler == TypeScript Transpiler</sup><br/>
<sup>Bun.js == Bun's JavaScriptCore integration that executes JavaScript. Similar to how Node.js & Deno embed V8.</sup><br/>
### Limitations & intended usage
Bun is great for building websites &amp; webapps. For libraries, consider using Rollup or esbuild instead. Bun currently doesn't minify code and Bun's dead code elimination doesn't look beyond the current file.
Today, Bun is focused on:
- Development, not production
- Compatibility with existing frameworks & tooling
Ideally, most projects can use Bun with their existing tooling while making few changes to their codebase. That means using Bun in development, and continuing to use Webpack, esbuild, or another bundler in production. Using two bundlers might sound strange at first, but after all the production-only AST transforms, minification, and special development/production-only imported files...it's not far from the status quo.
Longer-term, Bun intends to replace Node.js, Webpack, Babel, and PostCSS (in production).
# Configuration
### Loaders
A loader determines how to map imports &amp; file extensions to transforms and output.
Currently, Bun implements the following loaders:
| Input | Loader | Output |
| ----- | ----------------------------- | ------ |
| .js | JSX + JavaScript | .js |
| .jsx | JSX + JavaScript | .js |
| .ts | TypeScript + JavaScript | .js |
| .tsx | TypeScript + JSX + JavaScript | .js |
| .mjs | JavaScript | .js |
| .css | CSS | .css |
| .env | Env | N/A |
| .\* | file | string |
Everything else is treated as `file`. `file` replaces the import with a URL (or a path).
You can configure which loaders map to which extensions by passing `--loaders` to `bun`. For example:
```
bun --loader=.js:js
```sh
bun upgrade --canary
```
This will disable JSX transforms for `.js` files.
#### CSS in JS
When importing CSS in JavaScript-like loaders, CSS is treated special.
By default, Bun will transform a statement like this:
```js
import "../styles/global.css";
```
##### When `platform` is `browser`:
```js
globalThis.document?.dispatchEvent(
new CustomEvent("onimportcss", {
detail: "http://localhost:3000/styles/globals.css",
})
);
```
An event handler for turning that into a `<link>` is automatically registered when HMR is enabled. That event handler can be turned off either in a framework's `package.json` or by setting `globalThis["Bun_disableCSSImports"] = true;` in client-side code. Additionally, you can get a list of every .css file imported this way via `globalThis["__BUN"].allImportedStyles`.
##### When `platform` is `bun`:
```js
//@import url("http://localhost:3000/styles/globals.css");
```
Additionally, Bun exposes an API for SSR/SSG that returns a flat list of URLs to css files imported. That function is `Bun.getImportedStyles()`.
```ts
addEventListener("fetch", async (event: FetchEvent) => {
var route = Bun.match(event);
const App = await import("pages/_app");
// This returns all .css files that were imported in the line above.
// It's recursive, so any file that imports a CSS file will be included.
const appStylesheets = Bun.getImportedStyles();
// ...rest of code
});
```
This is useful for preventing flash of unstyled content.
### CSS Loader
Bun bundles `.css` files imported via `@import` into a single file. It doesn't autoprefix or minify CSS today. Multiple `.css` files imported in one JavaScript file will _not_ be bundled into one file. You'll have to import those from a `.css` file.
This input:
```css
@import url("./hi.css");
@import url("./hello.css");
@import url("./yo.css");
```
Becomes:
```css
/* hi.css */
/* ...contents of hi.css */
/* hello.css */
/* ...contents of hello.css */
/* yo.css */
/* ...contents of yo.css */
```
#### CSS runtime
To support hot CSS reloading, Bun inserts `@supports` annotations into CSS that tag which files a stylesheet is composed of. Browsers ignore this, so it doesn't impact styles.
By default, Bun's runtime code automatically listens to `onimportcss` and will insert the `event.detail` into a `<link rel="stylesheet" href={${event.detail}}>` if there is no existing `link` tag with that stylesheet. That's how Bun's equivalent of `style-loader` works.
### Frameworks
Frameworks preconfigure Bun to enable developers to use Bun with their existing tooling.
Frameworks are configured via the `framework` object in the `package.json` of the framework (not in the application's `package.json`):
Here is an example:
```json
{
"name": "bun-framework-next",
"version": "0.0.0-18",
"description": "",
"framework": {
"displayName": "Next.js",
"static": "public",
"assetPrefix": "_next/",
"router": {
"dir": ["pages", "src/pages"],
"extensions": [".js", ".ts", ".tsx", ".jsx"]
},
"css": "onimportcss",
"development": {
"client": "client.development.tsx",
"fallback": "fallback.development.tsx",
"server": "server.development.tsx",
"css": "onimportcss",
"define": {
"client": {
".env": "NEXT_PUBLIC_",
"defaults": {
"process.env.__NEXT_TRAILING_SLASH": "false",
"process.env.NODE_ENV": "\"development\"",
"process.env.__NEXT_ROUTER_BASEPATH": "''",
"process.env.__NEXT_SCROLL_RESTORATION": "false",
"process.env.__NEXT_I18N_SUPPORT": "false",
"process.env.__NEXT_HAS_REWRITES": "false",
"process.env.__NEXT_ANALYTICS_ID": "null",
"process.env.__NEXT_OPTIMIZE_CSS": "false",
"process.env.__NEXT_CROSS_ORIGIN": "''",
"process.env.__NEXT_STRICT_MODE": "false",
"process.env.__NEXT_IMAGE_OPTS": "null"
}
},
"server": {
".env": "NEXT_",
"defaults": {
"process.env.__NEXT_TRAILING_SLASH": "false",
"process.env.__NEXT_OPTIMIZE_FONTS": "false",
"process.env.NODE_ENV": "\"development\"",
"process.env.__NEXT_OPTIMIZE_IMAGES": "false",
"process.env.__NEXT_OPTIMIZE_CSS": "false",
"process.env.__NEXT_ROUTER_BASEPATH": "''",
"process.env.__NEXT_SCROLL_RESTORATION": "false",
"process.env.__NEXT_I18N_SUPPORT": "false",
"process.env.__NEXT_HAS_REWRITES": "false",
"process.env.__NEXT_ANALYTICS_ID": "null",
"process.env.__NEXT_CROSS_ORIGIN": "''",
"process.env.__NEXT_STRICT_MODE": "false",
"process.env.__NEXT_IMAGE_OPTS": "null",
"global": "globalThis",
"window": "undefined"
}
}
}
}
}
}
```
Here are type definitions:
```ts
type Framework = Environment & {
// This changes what's printed in the console on load
displayName?: string;
// This allows a prefix to be added (and ignored) to requests.
// Useful for integrating an existing framework that expects internal routes to have a prefix
// e.g. "_next"
assetPrefix?: string;
development?: Environment;
production?: Environment;
// The directory used for serving unmodified assets like fonts and images
// Defaults to "public" if exists, else "static", else disabled.
static?: string;
// "onimportcss" disables the automatic "onimportcss" feature
// If the framework does routing, you may want to handle CSS manually
// "facade" removes CSS imports from JavaScript files,
// and replaces an imported object with a proxy that mimics CSS module support without doing any class renaming.
css?: "onimportcss" | "facade";
// Bun's filesystem router
router?: Router;
};
type Define = {
// By passing ".env", Bun will automatically load .env.local, .env.development, and .env if exists in the project root
// (in addition to the processes' environment variables)
// When "*", all environment variables will be automatically injected into the JavaScript loader
// When a string like "NEXT_PUBLIC_", only environment variables starting with that prefix will be injected
".env": string | "*";
// These environment variables will be injected into the JavaScript loader
// These are the equivalent of Webpack's resolve.alias and esbuild's --define.
// Values are parsed as JSON, so they must be valid JSON. The only exception is '' is a valid string, to simplify writing stringified JSON in JSON.
// If not set, `process.env.NODE_ENV` will be transformed into "development".
defaults: Record<string, string>;
};
type Environment = {
// This is a wrapper for the client-side entry point for a route.
// This allows frameworks to run initialization code on pages.
client: string;
// This is a wrapper for the server-side entry point for a route.
// This allows frameworks to run initialization code on pages.
server: string;
// This runs when "server" code fails to load due to an exception.
fallback: string;
// This is how environment variables and .env is configured.
define?: Define;
};
// Bun's filesystem router
// Currently, Bun supports pages by either an absolute match or a parameter match.
// pages/index.tsx will be executed on navigation to "/" and "/index"
// pages/posts/[id].tsx will be executed on navigation to "/posts/123"
// Routes & parameters are automatically passed to `fallback` and `server`.
type Router = {
// This determines the folder to look for pages
dir: string[];
// These are the allowed file extensions for pages.
extensions?: string[];
};
```
To use a framework, you pass `bun bun --use package-name`.
Your framework's package.json `name` should start with `bun-framework-`. This is so that people can type something like `bun bun --use next` and it will check `bun-framework-next` first. This is similar to how Babel plugins tend to start with `babel-plugin-`.
For developing frameworks, you can also do `bun bun --use ./relative-path-to-framework`.
If you're interested in adding a framework integration, please reach out. There's a lot here and it's not entirely documented yet.
# Reference
### `bun bun`
Run `bun bun ./path-to.js` to generate a `node_modules.bun` file containing all imported dependencies (recursively).
**Why bundle?**
- For browsers, loading entire apps without bundling dependencies is typically slow. With a fast bundler & transpiler, the bottleneck eventually becomes the web browser's ability to run many network requests concurrently. There are many workarounds for this. `<link rel="modulepreload">`, HTTP/3, etc but none are more effective than bundling. If you have reproducible evidence to the contrary, feel free to submit an issue. It would be better if bundling wasn't necessary.
- On the server, bundling reduces the number of filesystem lookups to load JavaScript. While filesystem lookups are faster than HTTP requests, there's still overhead.
**What is `.bun`?**
The `.bun` file contains:
- all the bundled source code
- all the bundled source code metadata
- project metadata & configuration
Here are some of the questions `.bun` files answer:
- when I import `react/index.js`, where in the `.bun` is the code for that? (not resolving, just the code)
- what modules of a package are used?
- what framework is used? (e.g. Next.js)
- where is the routes directory?
- how big is each imported dependency?
- what is the hash of the bundle's contents? (for etags)
- what is the name & version of every npm package exported in this bundle?
- what modules from which packages are used in this project? ("project" defined as all the entry points used to generate the .bun)
All in one file.
It's a little like a build cache, but designed for reuse. I hope people will eventually check it into version control so their coworkers don't have to run `npm install` as often.
##### Position-independent code
From a design perspective, the most important part of the `.bun` format is how code is organized. Each module is exported by a hash like this:
```js
// preact/dist/preact.module.js
export var $eb6819b = $$m({
"preact/dist/preact.module.js": (module, exports) => {
var n, l, u, i, t, o, r, f, e = {}, c = [], s = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
// ... rest of code
```
This makes bundled modules [position-independent](https://en.wikipedia.org/wiki/Position-independent_code). In theory, one could import only the exact modules in-use without reparsing code and without generating a new bundle. One bundle can dynamically become many bundles comprising only the modules in use on the webpage. Thanks to the metadata with the byte offsets, a web server can send each module to browsers [zero-copy](https://en.wikipedia.org/wiki/Zero-copy) using [sendfile](https://man7.org/linux/man-pages/man2/sendfile.2.html). Bun itself is not quite this smart yet, but these optimizations would be useful in production and potentially very useful for React Server Components.
To see the schema inside, have a look at [`JavascriptBundleContainer`](./src/api/schema.d.ts#:~:text=export%20interface-,JavascriptBundleContainer,-%7B). You can find JavaScript bindings to read the metadata in [src/api/schema.js](./src/api/schema.js). This is not really an API yet. It's missing the part where it gets the binary data from the bottom of the file. Someday, I want this to be usable by other tools too.
**Where is the code?**
`.bun` files are marked as executable.
To print out the code, run `./node_modules.bun` in your terminal or run `bun ./path-to-node_modules.bun`.
Here is a copy-pastable example:
```bash
./node_modules.bun > node_modules.js
```
This works because every `.bun` file starts with this:
```bash
#!/usr/bin/env bun
```
To deploy to production with Bun, you'll want to get the code from the `.bun` file and stick that somewhere your web server can find it (or if you're using Vercel or a Rails app, in a `public` folder).
Note that `.bun` is a binary file format, so just opening it in VSCode or vim might render strangely.
**Advanced**
By default, `bun bun` only bundles external dependencies that are `import`ed or `require`d in either app code or another external dependency. An "external depenendency" is defined as, "A JavaScript-like file that has `/node_modules/` in the resolved file path and a corresponding `package.json`".
To force bun to bundle packages which are not located in a `node_modules` folder (i.e. the final, resolved path following all symlinks), add a `bun` section to the root project's `package.json` with `alwaysBundle` set to an array of package names to always bundle. Here's an example:
```json
{
"name": "my-package-name-in-here",
"bun": {
"alwaysBundle": ["@mybigcompany/my-workspace-package"]
}
}
```
Bundled dependencies are not eligible for Hot Module Reloading. The code is served to browsers & Bun.js verbatim. But, in the future, it may be sectioned off into only parts of the bundle being used. That's possible in the current version of the `.bun` file (so long as you know which files are necessary), but it's not implemented yet. Longer-term, it will include all `import` and `export` of each module inside.
**What is the module ID hash?**
The `$eb6819b` hash used here:
```js
export var $eb6819b = $$m({
```
Is generated like this:
1. Murmur3 32 bit hash of `package.name@package.version`. This is the hash uniquely identifying the npm package.
2. Wyhash 64 of the `package.hash` + `package_path`. `package_path` means "relative to the root of the npm package, where is the module imported?". For example, if you imported `react/jsx-dev-runtime.js`, the `package_path` is `jsx-dev-runtime.js`. `react-dom/cjs/react-dom.development.js` would be `cjs/react-dom.development.js`
3. Truncate the hash generated above to a `u32`
The implementation details of this module ID hash will vary between versions of Bun. The important part is the metadata contains the module IDs, the package paths, and the package hashes so it shouldn't really matter in practice if other tooling wants to make use of any of this.
# Credits
- While written in Zig instead of Go, Bun's JS transpiler, CSS lexer, and node module resolver source code is based off of @evanw's esbuild project. @evanw did a fantastic job with esbuild.
# License
Bun itself is MIT-licensed.
However, JavaScriptCore (and WebKit) is LGPL-2 and Bun statically links it.
Per LGPL2:
> (1) If you statically link against an LGPL'd library, you must also provide your application in an object (not necessarily source) format, so that a user has the opportunity to modify the library and relink the application.
You can find the patched version of WebKit used by Bun here: https://github.com/jarred-sumner/webkit. If you would like to relink Bun with changes:
- `git submodule update --init --recursive`
- `make jsc`
- `zig build`
This compiles JavaScriptCore, compiles Bun's `.cpp` bindings for JavaScriptCore (which are the object files using JavaScriptCore) and outputs a new `bun` binary with your changes.
To successfully run `zig build`, you will need to install a patched version of Zig available here: https://github.com/jarred-sumner/zig/tree/jarred/zig-sloppy.
Bun also statically links these libraries:
- `libicu`, which can be found here: https://github.com/unicode-org/icu/blob/main/icu4c/LICENSE
- [`picohttp`](https://github.com/h2o/picohttpparser), which is dual-licensed under the Perl License or the MIT License
- [`mimalloc`](https://github.com/microsoft/mimalloc), which is MIT licensed
For compatibiltiy reasons, these NPM packages are embedded into Bun's binary and injected if imported.
- [`assert`](https://npmjs.com/package/assert) (MIT license)
- [`browserify-zlib`](https://npmjs.com/package/browserify-zlib) (MIT license)
- [`buffer`](https://npmjs.com/package/buffer) (MIT license)
- [`constants-browserify`](https://npmjs.com/package/constants-browserify) (MIT license)
- [`crypto-browserify`](https://npmjs.com/package/crypto-browserify) (MIT license)
- [`domain-browser`](https://npmjs.com/package/domain-browser) (MIT license)
- [`events`](https://npmjs.com/package/events) (MIT license)
- [`https-browserify`](https://npmjs.com/package/https-browserify) (MIT license)
- [`os-browserify`](https://npmjs.com/package/os-browserify) (MIT license)
- [`path-browserify`](https://npmjs.com/package/path-browserify) (MIT license)
- [`process`](https://npmjs.com/package/process) (MIT license)
- [`punycode`](https://npmjs.com/package/punycode) (MIT license)
- [`querystring-es3`](https://npmjs.com/package/querystring-es3) (MIT license)
- [`stream-browserify`](https://npmjs.com/package/stream-browserify) (MIT license)
- [`stream-http`](https://npmjs.com/package/stream-http) (MIT license)
- [`string_decoder`](https://npmjs.com/package/string_decoder) (MIT license)
- [`timers-browserify`](https://npmjs.com/package/timers-browserify) (MIT license)
- [`tty-browserify`](https://npmjs.com/package/tty-browserify) (MIT license)
- [`url`](https://npmjs.com/package/url) (MIT license)
- [`util`](https://npmjs.com/package/util) (MIT license)
- [`vm-browserify`](https://npmjs.com/package/vm-browserify) (MIT license)
# Developing Bun
Estimated: 30-90 minutes :(
## macOS
Compile Zig:
```bash
git clone https://github.com/jarred-sumner/zig
cd zig
git checkout jarred/zig-sloppy-with-small-structs
cmake . -DCMAKE_PREFIX_PATH=$(brew --prefix llvm) -DZIG_STATIC_LLVM=ON -DCMAKE_BUILD_TYPE=Release && make -j 16
```
You'll want to make sure `zig` is in `$PATH`. The `zig` binary wil be in the same folder as the newly-cloned `zig` repo. If you use fish, you can run `fish_add_path (pwd)`.
In `bun`:
```bash
git submodule update --init --recursive --progress --depth=1
make vendor
```
Note that `brew install zig` won't work. Bun uses a build of Zig with a couple patches.
Additionally, you'll need `cmake`, `npm` and `esbuild` installed globally.
## Linux
Compile Zig:
[View canary build](https://github.com/oven-sh/bun/releases/tag/canary)
## Quick links
- Intro
- [What is Bun?](https://bun.sh/docs/index)
- [Installation](https://bun.sh/docs/installation)
- [Quickstart](https://bun.sh/docs/quickstart)
- CLI
- [`bun run`](https://bun.sh/docs/cli/run)
- [`bun install`](https://bun.sh/docs/cli/install)
- [`bun test`](https://bun.sh/docs/cli/test)
- [`bun init`](https://bun.sh/docs/cli/init)
- [`bun create`](https://bun.sh/docs/cli/bun-create)
- [`bunx`](https://bun.sh/docs/cli/bunx)
- Runtime
- [Runtime](https://bun.sh/docs/runtime/index)
- [Module resolution](https://bun.sh/docs/runtime/modules)
- [Hot &amp; live reloading](https://bun.sh/docs/runtime/hot)
- [Plugins](https://bun.sh/docs/bundler/plugins)
- Ecosystem
- [Node.js](https://bun.sh/docs/ecosystem/nodejs)
- [TypeScript](https://bun.sh/docs/ecosystem/typescript)
- [React](https://bun.sh/docs/ecosystem/react)
- [Elysia](https://bun.sh/docs/ecosystem/elysia)
- [Hono](https://bun.sh/docs/ecosystem/hono)
- [Express](https://bun.sh/docs/ecosystem/express)
- [awesome-bun](https://github.com/apvarun/awesome-bun)
- API
- [HTTP](https://bun.sh/docs/api/http)
- [WebSockets](https://bun.sh/docs/api/websockets)
- [TCP Sockets](https://bun.sh/docs/api/tcp)
- [File I/O](https://bun.sh/docs/api/file-io)
- [SQLite](https://bun.sh/docs/api/sqlite)
- [FileSystemRouter](https://bun.sh/docs/api/file-system-router)
- [Globals](https://bun.sh/docs/api/globals)
- [Spawn](https://bun.sh/docs/api/spawn)
- [Transpiler](https://bun.sh/docs/api/transpiler)
- [Console](https://bun.sh/docs/api/console)
- [FFI](https://bun.sh/docs/api/ffi)
- [HTMLRewriter](https://bun.sh/docs/api/html-rewriter)
- [Testing](https://bun.sh/docs/api/test)
- [Utils](https://bun.sh/docs/api/utils)
- [Node-API](https://bun.sh/docs/api/node-api)
## Contributing
Refer to the [Project > Contributing](https://bun.sh/docs/project/contributing) guide to start contributing to Bun.
## License
Refer to the [Project > License](https://bun.sh/docs/project/licensing) page for information about Bun's licensing.

12
SECURITY.md Normal file
View File

@@ -0,0 +1,12 @@
# Security Policy
## Supported Versions
| Version | Supported |
| ------- | ------------------ |
| 1.x.x | :white_check_mark: |
## Reporting a Vulnerability
Report any discovered vulnerabilities to the Bun team by emailing `security@bun.sh`. Your report will acknowledged within 5 days, and a team member will be assigned as the primary handler. To the greatest extent possible, the security team will endeavor to keep you informed of the progress being made towards a fix and full announcement, and may ask for additional information or guidance surrounding the reported issue.

3
bench/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

2
bench/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
ffi/src/target
ffi/src/*.node

13
bench/README.md Normal file
View File

@@ -0,0 +1,13 @@
```bash
npm install
bun run ffi
bun run log
bun run gzip
bun run async
bun run sqlite
# to use custom version of bun/deno/node binary
BUN=path/to/bun bun run ffi
# or edit .env file
```

3
bench/async/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

View File

@@ -0,0 +1,30 @@
// https://github.com/nodejs/node/issues/34493
import { AsyncLocalStorage } from "async_hooks";
const asyncLocalStorage = new AsyncLocalStorage();
// let fn = () => Promise.resolve(2).then(() => new Promise(resolve => queueMicrotask(resolve)));
let fn = () => /test/.test("test");
let runWithExpiry = async (expiry, fn) => {
let iterations = 0;
while (Date.now() < expiry) {
await fn();
iterations++;
}
return iterations;
};
console.log(`Performed ${await runWithExpiry(Date.now() + 1000, fn)} iterations to warmup`);
let withAls;
await asyncLocalStorage.run(123, async () => {
withAls = await runWithExpiry(Date.now() + 45000, fn);
console.log(`Performed ${withAls} iterations (with ALS enabled)`);
});
asyncLocalStorage.disable();
let withoutAls = await runWithExpiry(Date.now() + 45000, fn);
console.log(`Performed ${withoutAls} iterations (with ALS disabled)`);
console.log("ALS penalty: " + Math.round((1 - withAls / withoutAls) * 10000) / 100 + "%");

7
bench/async/bun.js Normal file
View File

@@ -0,0 +1,7 @@
import { run, bench } from "mitata";
bench("sync", () => {});
bench("async", async () => {});
bench("await 1", async () => await 1);
await run();

7
bench/async/deno.js Normal file
View File

@@ -0,0 +1,7 @@
import { run, bench } from "../node_modules/mitata/src/cli.mjs";
bench("sync", () => {});
bench("async", async () => {});
bench("await 1", async () => await 1);
await run();

7
bench/async/node.mjs Normal file
View File

@@ -0,0 +1,7 @@
import { run, bench } from "mitata";
bench("sync", () => {});
bench("async", async () => {});
bench("await 1", async () => await 1);
await run();

11
bench/async/package.json Normal file
View File

@@ -0,0 +1,11 @@
{
"name": "bench",
"scripts": {
"deps": "exit 0",
"build": "exit 0",
"bench:bun": "$BUN bun.js",
"bench:node": "$NODE node.mjs",
"bench:deno": "$DENO run -A --unstable deno.js",
"bench": "bun run bench:bun && bun run bench:node && bun run bench:deno"
}
}

BIN
bench/bun.lockb Executable file

Binary file not shown.

171
bench/bundle/.gitignore vendored Normal file
View File

@@ -0,0 +1,171 @@
# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
# Logs
logs
_.log
npm-debug.log_
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
# Runtime data
pids
_.pid
_.seed
\*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
\*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
\*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
\*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.\*
esbuild

40
bench/bundle/README.md Normal file
View File

@@ -0,0 +1,40 @@
# Bundler benchmark
This is a performance benchmark of the following bundlers:
- Bun
- esbuild
- Parcel 2
- Rollup + Terser
- Webpack
It is an exact copy of [`esbuild`'s benchmark](https://github.com/evanw/esbuild/blob/main/Makefile), aside from the fact that Bun [has been added](https://github.com/colinhacks/esbuild/commit/1b928b7981aa7edfadf77fcf8931bb8d6f38cd96). The benchmark bundles 10 copies of the large [three.js](https://threejs.org/), with minification and source maps enabled.
To run the benchmark:
```sh
$ chmod +x run-bench.sh
$ ./run-bench.sh
```
Various output will be written to the console by each bundler. Scan through the results for lines that look like this underneath each bundler output:
```sh
real <number>
user <number>
sys <number>
```
These lines are generated by the `time` command which is used to benchmark each build.
## Results
The `real` results, as run on a 16-inch M1 Macbook Pro:
| Bundler | Time |
| ------- | ------ |
| Bun | 0.17s |
| esbuild | 0.33s |
| Rollup | 18.82s |
| Webpack | 26.21 |
| Parcel | 17.95s |

BIN
bench/bundle/bun.lockb Executable file

Binary file not shown.

1
bench/bundle/index.ts Normal file
View File

@@ -0,0 +1 @@
console.log("Hello via Bun!");

View File

@@ -0,0 +1,8 @@
{
"name": "bundle",
"module": "index.ts",
"type": "module",
"devDependencies": {
"bun-types": "^0.7.0"
}
}

3
bench/bundle/run-bench.sh Executable file
View File

@@ -0,0 +1,3 @@
git clone git@github.com:colinhacks/esbuild.git
cd esbuild
make bench-three

View File

@@ -0,0 +1,20 @@
{
"compilerOptions": {
"lib": [
"ESNext"
],
"module": "esnext",
"target": "esnext",
"moduleResolution": "bundler",
"strict": true,
"downlevelIteration": true,
"skipLibCheck": true,
"jsx": "react-jsx",
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"allowJs": true,
"types": [
"bun-types" // add Bun global
]
}
}

5
bench/cat/bun.js Normal file
View File

@@ -0,0 +1,5 @@
import { resolve } from "path";
const { write, stdout, file } = Bun;
const input = resolve(process.argv[process.argv.length - 1]);
await write(stdout, file(input));

9
bench/cat/cat.mjs Normal file
View File

@@ -0,0 +1,9 @@
// works in both bun & node
import { readFileSync } from "node:fs";
const count = parseInt(process.env.ITERATIONS || "1", 10) || 1;
const arg = process.argv.slice(1);
// TODO: remove Buffer.from() when readFileSync() returns Buffer
for (let i = 0; i < count; i++) console.log(arg.map(file => Buffer.from(readFileSync(file, "utf8"))).join(""));

6
bench/cat/node.js Normal file
View File

@@ -0,0 +1,6 @@
const fs = require("fs");
const path = require("path");
const input = path.resolve(process.argv[process.argv.length - 1]);
fs.createReadStream(input).pipe(process.stdout);

5
bench/copyfile/bun.js Normal file
View File

@@ -0,0 +1,5 @@
import path from "path";
const input = path.resolve(process.argv[process.argv.length - 2]);
const output = path.resolve(process.argv[process.argv.length - 1]);
await Bun.write(Bun.file(output), Bun.file(input));

View File

@@ -0,0 +1,4 @@
import { createReadStream, createWriteStream } from "node:fs";
const arg = process.argv.slice(2);
createReadStream(arg[0]).pipe(createWriteStream(arg[1]));

View File

@@ -0,0 +1,34 @@
import { copyFileSync, writeFileSync, readFileSync, statSync } from "node:fs";
import { bench, run } from "mitata";
function runner(ready) {
for (let size of [1, 10, 100, 1000, 10000, 100000, 1000000, 10000000]) {
const rand = new Int32Array(size);
for (let i = 0; i < size; i++) {
rand[i] = (Math.random() * 1024 * 1024) | 0;
}
const dest = `/tmp/fs-test-copy-file-${((Math.random() * 10000000 + 100) | 0).toString(32)}`;
const src = `/tmp/fs-test-copy-file-${((Math.random() * 10000000 + 100) | 0).toString(32)}`;
writeFileSync(src, Buffer.from(rand.buffer), { encoding: "buffer" });
const { size: fileSize } = statSync(src);
if (fileSize !== rand.byteLength) {
throw new Error("size mismatch");
}
ready(src, dest, new Uint8Array(rand.buffer));
}
}
runner((src, dest, rand) =>
bench(`copyFileSync(${rand.buffer.byteLength} bytes)`, () => {
copyFileSync(src, dest);
// const output = readFileSync(dest).buffer;
// for (let i = 0; i < output.length; i++) {
// if (output[i] !== rand[i]) {
// throw new Error(
// "Files are not equal" + " " + output[i] + " " + rand[i] + " " + i
// );
// }
// }
}),
);
await run();

5
bench/copyfile/node.mjs Normal file
View File

@@ -0,0 +1,5 @@
import { copyFileSync } from "node:fs";
const arg = process.argv.slice(2);
copyFileSync(arg[0], arg[1]);

View File

@@ -0,0 +1,31 @@
import EventEmitter3 from "eventemitter3";
import { group } from "mitata";
import EventEmitterNative from "node:events";
export const implementations = [
{
EventEmitter: EventEmitterNative,
name: process.isBun ? (EventEmitterNative.init ? "bun" : "C++") : "node:events",
monkey: true,
},
// { EventEmitter: EventEmitter3, name: "EventEmitter3" },
].filter(Boolean);
for (const impl of implementations) {
impl.EventEmitter?.setMaxListeners?.(Infinity);
}
export function groupForEmitter(name, cb) {
if (implementations.length === 1) {
return cb({
...implementations[0],
name: `${name}: ${implementations[0].name}`,
});
} else {
return group(name, () => {
for (let impl of implementations) {
cb(impl);
}
});
}
}

View File

@@ -0,0 +1,96 @@
import { bench, run } from "mitata";
import { groupForEmitter } from "./implementations.mjs";
var id = 0;
groupForEmitter("single emit", ({ EventEmitter, name }) => {
const emitter = new EventEmitter();
emitter.on("hello", event => {
event.preventDefault();
});
bench(name, () => {
emitter.emit("hello", {
preventDefault() {
id++;
},
});
});
});
groupForEmitter("on x 10_000 (handler)", ({ EventEmitter, name }) => {
const emitter = new EventEmitter();
bench(name, () => {
var cb = event => {
event.preventDefault();
};
emitter.on("hey", cb);
var called = false;
for (let i = 0; i < 10_000; i++)
emitter.emit("hey", {
preventDefault() {
id++;
called = true;
},
});
if (!called) throw new Error("not called");
});
});
// for (let { impl: EventEmitter, name, monkey } of []) {
// if (monkey) {
// var monkeyEmitter = Object.assign({}, EventEmitter.prototype);
// monkeyEmitter.on("hello", event => {
// event.preventDefault();
// });
// bench(`[monkey] ${className}.emit`, () => {
// var called = false;
// monkeyEmitter.emit("hello", {
// preventDefault() {
// id++;
// called = true;
// },
// });
// if (!called) {
// throw new Error("monkey failed");
// }
// });
// bench(`[monkey] ${className}.on x 10_000 (handler)`, () => {
// var cb = () => {
// event.preventDefault();
// };
// monkeyEmitter.on("hey", cb);
// for (let i = 0; i < 10_000; i++)
// monkey.emit("hey", {
// preventDefault() {
// id++;
// },
// });
// monkeyEmitter.off("hey", cb);
// });
// }
// }
// var target = new EventTarget();
// target.addEventListener("hello", event => {});
// bench("EventTarget.dispatch", () => {
// target.dispatchEvent(event);
// });
// var hey = new Event("hey");
// bench("EventTarget.on x 10_000 (handler)", () => {
// var handler = event => {};
// target.addEventListener("hey", handler);
// for (let i = 0; i < 10_000; i++) target.dispatchEvent(hey);
// target.removeEventListener("hey", handler);
// });
await run();

View File

@@ -0,0 +1,40 @@
import { bench, run } from "mitata";
import { groupForEmitter } from "./implementations.mjs";
var id = 0;
groupForEmitter("test 1", ({ EventEmitter, name }) => {
const emitter = new EventEmitter();
emitter.on("hello", event => {
event.preventDefault();
});
bench(name, () => {
emitter.once("hello", event => {
event.preventDefault();
});
emitter.emit("hello", {
preventDefault() {
id++;
},
});
});
});
groupForEmitter("test 2", ({ EventEmitter, name }) => {
const emitter = new EventEmitter();
bench(name, () => {
emitter.once("hello", event => {
event.preventDefault();
});
emitter.emit("hello", {
preventDefault() {
id++;
},
});
});
});
await run();

View File

@@ -0,0 +1,63 @@
import { bench, run } from "mitata";
import { groupForEmitter } from "./implementations.mjs";
// Pseudo RNG is derived from https://stackoverflow.com/a/424445
let rngState = 123456789;
function nextInt() {
const m = 0x80000000; // 2**31;
const a = 1103515245;
const c = 12345;
rngState = (a * rngState + c) % m;
return rngState;
}
function nextRange(start, end) {
// returns in range [start, end): including start, excluding end
// can't modulu nextInt because of weak randomness in lower bits
const rangeSize = end - start;
const randomUnder1 = nextInt() / 0x7fffffff; // 2**31 - 1
return start + Math.floor(randomUnder1 * rangeSize);
}
const chunks = new Array(1024).fill(null).map((_, j) => {
const arr = new Uint8Array(1024);
for (let i = 0; i < arr.length; i++) {
arr[i] = nextRange(0, 256);
}
return arr;
});
groupForEmitter("stream simulation", ({ EventEmitter, name }) => {
bench(name, () => {
let id = 0;
const stream = new EventEmitter();
stream.on("start", res => {
if (res.status !== 200) throw new Error("not 200");
});
const recived = [];
stream.on("data", req => {
recived.push(req);
});
stream.on("end", ev => {
ev.preventDefault();
});
// simulate a stream
stream.emit("start", { status: 200 });
for (let chunk of chunks) {
stream.emit("data", chunk);
}
stream.emit("end", {
preventDefault() {
id++;
},
});
if (id !== 1) throw new Error("not implemented right");
if (recived.length !== 1024) throw new Error("not implemented right");
});
});
await run();

169
bench/expect-to-equal/.gitignore vendored Normal file
View File

@@ -0,0 +1,169 @@
# Based on https://raw.githubusercontent.com/github/gitignore/main/Node.gitignore
# Logs
logs
_.log
npm-debug.log_
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json
# Runtime data
pids
_.pid
_.seed
\*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
\*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
\*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
\*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
.cache
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.\*

View File

@@ -0,0 +1,43 @@
# expect-to-equal
To install dependencies:
```bash
bun install
```
To run in Bun:
```bash
# so it doesn't run the vitest one
bun test expect-to-equal.test.js
```
To run in Jest:
```bash
# If you remove the import the performance doesn't change much
NODE_OPTIONS="--experimental-vm-modules" ./node_modules/.bin/jest expect-to-equal.test.js
```
To run in Vitest:
```bash
./node_modules/.bin/vitest --run expect-to-equal.vitest.test.js
```
Output on my machine (M1):
bun:test (bun v0.3.0):
> [36.40ms] expect().toEqual() x 10000
jest (node v18.11.0)
> expect().toEqual() x 10000: 5053 ms
vitest (node v18.11.0)
> expect().toEqual() x 10000: 401.08ms
This project was created using `bun init` in bun v0.3.0. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.

BIN
bench/expect-to-equal/bun.lockb Executable file

Binary file not shown.

View File

@@ -0,0 +1,42 @@
// bun:test automatically rewrites this import to bun:test when run in bun
import { test, expect } from "@jest/globals";
const N = parseInt(process.env.RUN_COUNT || "10000", 10);
if (!Number.isSafeInteger(N)) {
throw new Error("Invalid RUN_COUNT");
}
const label = "expect().toEqual() x " + N;
test(label, () => {
console.time(label);
for (let runsLeft = N; runsLeft > 0; runsLeft--) {
expect("hello").toEqual("hello");
expect(123).toEqual(123);
expect({ a: 1, b: 2 }).toEqual({ b: 2, a: 1 });
expect([1, 2, 3]).toEqual([1, 2, 3]);
expect({ a: 1, b: 2 }).not.toEqual({ b: 2, a: 1, c: 3 });
expect([1, 2, 3]).not.toEqual([1, 2, 3, 4]);
expect({ a: 1, b: 2, c: 3 }).not.toEqual({ a: 1, b: 2 });
expect([1, 2, 3, 4]).not.toEqual([1, 2, 3]);
let a = [{ a: 1 }, { b: 2, c: 3, d: 4 }, { e: 5, f: 6 }];
let b = [{ a: 1 }, { b: 2, c: 3, d: 4 }, { e: 5, f: 6 }];
expect(a).toEqual(b);
expect(b).toEqual(a);
a[0].a = 2;
expect(a).not.toEqual(b);
expect(b).not.toEqual(a);
let c = { [Symbol("test")]: 1 };
let d = { [Symbol("test")]: 1 };
expect(c).not.toEqual(d);
expect(d).not.toEqual(c);
a = { a: 1, b: 2, c: 3 };
b = { a: 1, b: 2 };
expect(a).not.toEqual(b);
}
console.timeEnd(label);
});

View File

@@ -0,0 +1,41 @@
import { test, expect } from "vitest";
const N = parseInt(process.env.RUN_COUNT || "10000", 10);
if (!Number.isSafeInteger(N)) {
throw new Error("Invalid RUN_COUNT");
}
const label = "expect().toEqual() x " + N;
test(label, () => {
console.time(label);
for (let runsLeft = N; runsLeft > 0; runsLeft--) {
expect("hello").toEqual("hello");
expect(123).toEqual(123);
expect({ a: 1, b: 2 }).toEqual({ b: 2, a: 1 });
expect([1, 2, 3]).toEqual([1, 2, 3]);
expect({ a: 1, b: 2 }).not.toEqual({ b: 2, a: 1, c: 3 });
expect([1, 2, 3]).not.toEqual([1, 2, 3, 4]);
expect({ a: 1, b: 2, c: 3 }).not.toEqual({ a: 1, b: 2 });
expect([1, 2, 3, 4]).not.toEqual([1, 2, 3]);
let a = [{ a: 1 }, { b: 2, c: 3, d: 4 }, { e: 5, f: 6 }];
let b = [{ a: 1 }, { b: 2, c: 3, d: 4 }, { e: 5, f: 6 }];
expect(a).toEqual(b);
expect(b).toEqual(a);
a[0].a = 2;
expect(a).not.toEqual(b);
expect(b).not.toEqual(a);
let c = { [Symbol("test")]: 1 };
let d = { [Symbol("test")]: 1 };
expect(c).not.toEqual(d);
expect(d).not.toEqual(c);
a = { a: 1, b: 2, c: 3 };
b = { a: 1, b: 2 };
expect(a).not.toEqual(b);
}
console.timeEnd(label);
});

View File

@@ -0,0 +1 @@
console.log("Hello via Bun!");

View File

@@ -0,0 +1,9 @@
{
"name": "expect-to-equal",
"module": "index.ts",
"type": "module",
"devDependencies": {
"jest": "^29.3.1",
"vitest": "^0.25.3"
}
}

View File

@@ -0,0 +1,20 @@
{
"compilerOptions": {
"lib": [
"ESNext"
],
"module": "esnext",
"target": "esnext",
"moduleResolution": "nodenext",
"strict": true,
"downlevelIteration": true,
"skipLibCheck": true,
"jsx": "preserve",
"allowSyntheticDefaultImports": true,
"forceConsistentCasingInFileNames": true,
"allowJs": true,
"types": [
"bun-types" // add Bun global
]
}
}

15
bench/fetch/bun.js Normal file
View File

@@ -0,0 +1,15 @@
import { bench, run } from "mitata";
const count = 100;
bench(`fetch(https://example.com) x ${count}`, async () => {
const requests = new Array(count);
for (let i = 0; i < requests.length; i++) {
requests[i] = fetch(`https://www.example.com/?cachebust=${i}`).then(r => r.text());
}
await Promise.all(requests);
});
await run();

15
bench/fetch/deno.js Normal file
View File

@@ -0,0 +1,15 @@
import { bench, run } from "https://esm.run/mitata";
const count = 100;
bench(`fetch(https://example.com) x ${count}`, async () => {
const requests = new Array(count);
for (let i = 0; i < requests.length; i++) {
requests[i] = fetch(`https://www.example.com/?cachebust=${i}`).then(r => r.text());
}
await Promise.all(requests);
});
await run();

15
bench/fetch/node.mjs Normal file
View File

@@ -0,0 +1,15 @@
import { bench, run } from "mitata";
const count = 100;
bench(`fetch(https://example.com) x ${count}`, async () => {
const requests = new Array(count);
for (let i = 0; i < requests.length; i++) {
requests[i] = fetch(`https://www.example.com/?cachebust=${i}`).then(r => r.text());
}
await Promise.all(requests);
});
await run();

3
bench/ffi/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

35
bench/ffi/bun.js Normal file
View File

@@ -0,0 +1,35 @@
import { ptr, dlopen, CString, toBuffer } from "bun:ffi";
import { run, bench, group } from "mitata";
const { napiNoop, napiHash, napiString } = require(import.meta.dir + "/src/ffi_napi_bench.node");
const {
symbols: {
ffi_noop: { native: ffi_noop },
ffi_hash: { native: ffi_hash },
ffi_string: { native: ffi_string },
},
} = dlopen(import.meta.dir + "/src/ffi_napi_bench.node", {
ffi_noop: { args: [], returns: "void" },
ffi_string: { args: [], returns: "ptr" },
ffi_hash: { args: ["ptr", "u32"], returns: "u32" },
});
const bytes = new Uint8Array(64);
group("bun:ffi", () => {
bench("noop", () => ffi_noop());
bench("hash", () => ffi_hash(ptr(bytes), bytes.byteLength));
bench("c string", () => new CString(ffi_string()));
});
if (process.env.SHOW_NAPI)
group("bun:napi", () => {
bench("noop", () => napiNoop());
bench("hash", () => napiHash(bytes));
bench("string", () => napiString());
});
await run();

22
bench/ffi/deno.js Normal file
View File

@@ -0,0 +1,22 @@
import { run, bench, group } from "../node_modules/mitata/src/cli.mjs";
const extension = "darwin" !== Deno.build.os ? "so" : "dylib";
const path = new URL("src/target/release/libffi_napi_bench." + extension, import.meta.url).pathname;
const {
symbols: { ffi_noop, ffi_hash, ffi_string },
} = Deno.dlopen(path, {
ffi_noop: { parameters: [], result: "void" },
ffi_string: { parameters: [], result: "pointer" },
ffi_hash: { parameters: ["buffer", "u32"], result: "u32" },
});
const bytes = new Uint8Array(64);
group("deno:ffi", () => {
bench("noop", () => ffi_noop());
bench("hash", () => ffi_hash(bytes, bytes.byteLength));
bench("c string", () => Deno.UnsafePointerView.getCString(ffi_string()));
});
await run();

16
bench/ffi/node.mjs Normal file
View File

@@ -0,0 +1,16 @@
import { run, bench, group } from "mitata";
import { createRequire } from "node:module";
const require = createRequire(import.meta.url);
const { napiNoop, napiHash, napiString } = require("./src/ffi_napi_bench.node");
const bytes = new Uint8Array(64);
group("napi", () => {
bench("noop", () => napiNoop());
bench("hash", () => napiHash(bytes));
bench("string", () => napiString());
});
await run();

11
bench/ffi/package.json Normal file
View File

@@ -0,0 +1,11 @@
{
"name": "bench",
"scripts": {
"bench:bun": "$BUN bun.js",
"bench:node": "$NODE node.mjs",
"deps": "cd src && bun run deps",
"build": "cd src && bun run build",
"bench:deno": "$DENO run -A --unstable deno.js",
"bench": "bun run bench:bun && bun run bench:node && bun run bench:deno"
}
}

202
bench/ffi/src/Cargo.lock generated Normal file
View File

@@ -0,0 +1,202 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "aho-corasick"
version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
dependencies = [
"memchr",
]
[[package]]
name = "cfg-if"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
name = "convert_case"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb4a24b1aaf0fd0ce8b45161144d6f42cd91677fd5940fd431183eb023b3a2b8"
[[package]]
name = "ctor"
version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c"
dependencies = [
"quote",
"syn",
]
[[package]]
name = "ffi_napi_bench"
version = "0.1.0"
dependencies = [
"napi",
"napi-build",
"napi-derive",
]
[[package]]
name = "libloading"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
dependencies = [
"cfg-if",
"winapi",
]
[[package]]
name = "memchr"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "napi"
version = "2.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3517d4a4af99e0a9960e26332ee1e1bcb9e0298657f58e7e97157a8532dfcd4b"
dependencies = [
"ctor",
"napi-sys",
"once_cell",
"thread_local",
]
[[package]]
name = "napi-build"
version = "2.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "882a73d9ef23e8dc2ebbffb6a6ae2ef467c0f18ac10711e4cc59c5485d41df0e"
[[package]]
name = "napi-derive"
version = "2.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3aaa8a11b0ae982306d311627cafd997ef556abdf1d79a01e6e75bc1ac5cfced"
dependencies = [
"convert_case",
"napi-derive-backend",
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "napi-derive-backend"
version = "1.0.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0cdb9be87524eccc14f988825b26eaa3752e07a81cb04c34436057823d91e421"
dependencies = [
"convert_case",
"once_cell",
"proc-macro2",
"quote",
"regex",
"syn",
]
[[package]]
name = "napi-sys"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "529671ebfae679f2ce9630b62dd53c72c56b3eb8b2c852e7e2fa91704ff93d67"
dependencies = [
"libloading",
]
[[package]]
name = "once_cell"
version = "1.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
[[package]]
name = "proc-macro2"
version = "1.0.40"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
dependencies = [
"unicode-ident",
]
[[package]]
name = "quote"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
dependencies = [
"proc-macro2",
]
[[package]]
name = "regex"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
]
[[package]]
name = "regex-syntax"
version = "0.6.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
[[package]]
name = "syn"
version = "1.0.98"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "thread_local"
version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
dependencies = [
"once_cell",
]
[[package]]
name = "unicode-ident"
version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
[[package]]
name = "winapi"
version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
dependencies = [
"winapi-i686-pc-windows-gnu",
"winapi-x86_64-pc-windows-gnu",
]
[[package]]
name = "winapi-i686-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"

18
bench/ffi/src/Cargo.toml Normal file
View File

@@ -0,0 +1,18 @@
[package]
edition = "2021"
version = "0.1.0"
name = "ffi_napi_bench"
[lib]
crate-type = ["cdylib"]
[features]
default = []
enable-napi = []
[dependencies]
napi = "2"
napi-derive = "2"
[build-dependencies]
napi-build = "2.0.1"

5
bench/ffi/src/build.rs Normal file
View File

@@ -0,0 +1,5 @@
#[cfg(feature="enable-napi")] extern crate napi_build;
fn main() {
#[cfg(feature="enable-napi")] napi_build::setup();
}

BIN
bench/ffi/src/bun.lockb Executable file

Binary file not shown.

View File

@@ -0,0 +1,17 @@
{
"name": "bench",
"napi": {
"name": "napi"
},
"dependencies": {
"@napi-rs/cli": "^2.10.1",
"@node-rs/helper": "^1.3.3"
},
"scripts": {
"deps": "bun install",
"build:ffi": "cargo build --release",
"build": "bun run build:napi && bun run build:ffi",
"cleanup": "rm -f index.js index.d.ts && mv napi.*.node ffi_napi_bench.node",
"build:napi": "napi build --release --platform --no-dts-header --features enable-napi && bun run cleanup"
}
}

49
bench/ffi/src/src/lib.rs Normal file
View File

@@ -0,0 +1,49 @@
// double src o.O
#[cfg(feature="enable-napi")] use napi_derive::napi;
#[cfg(feature="enable-napi")] use napi::bindgen_prelude::*;
static STRING: &'static str = "Hello, world!\0";
fn hash(buf: &[u8]) -> u32 {
let mut hash: u32 = 0;
for byte in buf {
hash = hash.wrapping_mul(0x10001000).wrapping_add(*byte as u32);
}
return hash;
}
#[cfg(feature="enable-napi")]
#[napi] pub fn napi_noop() {
// do nothing
}
#[no_mangle] unsafe extern "C" fn ffi_noop() {
// do nothing
}
#[cfg(feature="enable-napi")]
#[napi] pub fn napi_string() -> &'static str {
return &STRING[0..(STRING.len() - 1)];
}
#[no_mangle] unsafe extern "C" fn ffi_string() -> *const u8 {
return STRING.as_ptr();
}
#[cfg(feature="enable-napi")]
#[napi] pub fn napi_hash(buffer: Buffer) -> u32 {
return hash(&buffer);
}
#[no_mangle] unsafe extern "C" fn ffi_hash(ptr: *const u8, length: u32) -> u32 {
return hash(std::slice::from_raw_parts(ptr, length as usize));
}

37
bench/glob/braces.mjs Normal file
View File

@@ -0,0 +1,37 @@
import braces from "braces";
import { group, bench, run } from "mitata";
// const iterations = 1000;
const iterations = 100;
const simplePattern = "foo.{js,jsx,ts,tsx}";
const complexPattern = "{a,b,HI{c,e,LMAO{d,f}Q}} wow {a,b}";
const veryComplexPattern = "{a,b,HI{c,e,LMAO{d,f}Q}}{1,2,{3,4},5}";
console.log(braces(complexPattern, { expand: true }));
function benchPattern(pattern, name) {
group({ name: `${name} pattern: "${pattern}"`, summary: true }, () => {
if (typeof Bun !== "undefined")
bench("Bun", () => {
for (let i = 0; i < iterations; i++) {
Bun.$.braces(pattern);
}
});
bench("micromatch/braces", () => {
for (let i = 0; i < iterations; i++) {
braces(pattern, { expand: true });
}
});
});
}
benchPattern(simplePattern, "simple");
benchPattern(complexPattern, "complex");
benchPattern(veryComplexPattern, "very complex pattern");
await run({
avg: true,
min_max: true,
percentiles: true,
});

19
bench/glob/match.mjs Normal file
View File

@@ -0,0 +1,19 @@
import micromatch from "micromatch";
import { bench, run } from "mitata";
const Glob = typeof Bun !== "undefined" ? Bun.Glob : undefined;
const doMatch = typeof Bun === "undefined" ? micromatch.isMatch : (a, b) => new Glob(b).match(a);
bench((Glob ? "Bun.Glob - " : "micromatch - ") + "**/*.js", () => {
doMatch("foo/bar.js", "**/*.js");
});
bench((Glob ? "Bun.Glob - " : "micromatch - ") + "*.js", () => {
doMatch("bar.js", "*.js");
});
await run({
avg: true,
min_max: true,
percentiles: true,
});

113
bench/glob/scan.mjs Normal file
View File

@@ -0,0 +1,113 @@
import { run, bench, group } from "mitata";
import fg from "fast-glob";
import { fdir } from "fdir";
const normalPattern = "*.ts";
const recursivePattern = "**/*.ts";
const nodeModulesPattern = "**/node_modules/**/*.js";
const benchFdir = false;
const cwd = undefined;
const bunOpts = {
cwd,
followSymlinks: false,
absolute: true,
};
const fgOpts = {
cwd,
followSymbolicLinks: false,
onlyFiles: false,
absolute: true,
};
const Glob = "Bun" in globalThis ? globalThis.Bun.Glob : undefined;
group({ name: `async pattern="${normalPattern}"`, summary: true }, () => {
bench("fast-glob", async () => {
const entries = await fg.glob([normalPattern], fgOpts);
});
if (Glob)
bench("Bun.Glob", async () => {
const entries = await Array.fromAsync(new Glob(normalPattern).scan(bunOpts));
});
if (benchFdir)
bench("fdir", async () => {
const entries = await new fdir().withFullPaths().glob(normalPattern).crawl(process.cwd()).withPromise();
});
});
group({ name: `async-recursive pattern="${recursivePattern}"`, summary: true }, () => {
bench("fast-glob", async () => {
const entries = await fg.glob([recursivePattern], fgOpts);
});
if (Glob)
bench("Bun.Glob", async () => {
const entries = await Array.fromAsync(new Glob(recursivePattern).scan(bunOpts));
});
if (benchFdir)
bench("fdir", async () => {
const entries = await new fdir().withFullPaths().glob(recursivePattern).crawl(process.cwd()).withPromise();
});
});
group({ name: `sync pattern="${normalPattern}"`, summary: true }, () => {
bench("fast-glob", () => {
const entries = fg.globSync([normalPattern], fgOpts);
});
if (Glob)
bench("Bun.Glob", () => {
const entries = [...new Glob(normalPattern).scanSync(bunOpts)];
});
if (benchFdir)
bench("fdir", async () => {
const entries = new fdir().withFullPaths().glob(normalPattern).crawl(process.cwd()).sync();
});
});
group({ name: `sync-recursive pattern="${recursivePattern}"`, summary: true }, () => {
bench("fast-glob", () => {
const entries = fg.globSync([recursivePattern], fgOpts);
});
if (Glob)
bench("Bun.Glob", () => {
const entries = [...new Glob(recursivePattern).scanSync(bunOpts)];
});
if (benchFdir)
bench("fdir", async () => {
const entries = new fdir().withFullPaths().glob(recursivePattern).crawl(process.cwd()).sync();
});
});
group({ name: `node_modules pattern="${nodeModulesPattern}"`, summary: true }, () => {
bench("fast-glob", async () => {
const entries = await fg.glob([nodeModulesPattern], fgOpts);
});
if (Glob)
bench("Bun.Glob", async () => {
const entries = await Array.fromAsync(new Glob(nodeModulesPattern).scan(bunOpts));
});
if (benchFdir)
bench("fdir", async () => {
const entries = await new fdir().withFullPaths().glob(nodeModulesPattern).crawl(process.cwd()).withPromise();
});
});
await run({
avg: true,
colors: false,
min_max: true,
collect: true,
percentiles: true,
});

3
bench/gzip/.env Normal file
View File

@@ -0,0 +1,3 @@
BUN=bun
DENO=deno
NODE=node

20
bench/gzip/bun.js Normal file
View File

@@ -0,0 +1,20 @@
import { run, bench } from "mitata";
import { gzipSync, gunzipSync } from "bun";
const data = new TextEncoder().encode("Hello World!".repeat(9999));
const compressed = gzipSync(data);
bench(`roundtrip - "Hello World!".repeat(9999))`, () => {
gunzipSync(gzipSync(data));
});
bench(`gzipSync("Hello World!".repeat(9999)))`, () => {
gzipSync(data);
});
bench(`gunzipSync("Hello World!".repeat(9999)))`, () => {
gunzipSync(compressed);
});
await run();

85
bench/gzip/deno.js Normal file
View File

@@ -0,0 +1,85 @@
import { run, bench } from "../node_modules/mitata/src/cli.mjs";
const data = new TextEncoder().encode("Hello World!".repeat(9999));
const compressed = await compress(data);
bench(`roundtrip - "Hello World!".repeat(9999))`, async () => {
await decompress(await compress(data));
});
bench(`gzip("Hello World!".repeat(9999)))`, async () => {
await compress(data);
});
bench(`gunzip("Hello World!".repeat(9999)))`, async () => {
await decompress(compressed);
});
await run();
async function compress(buffer) {
const cs = new CompressionStream("gzip");
const writer = cs.writable.getWriter();
writer.write(buffer);
writer.close();
const chunks = [];
const reader = cs.readable.getReader();
let length = 0;
while (true) {
const { done, value } = await reader.read();
if (done) break;
chunks.push(value);
length += value.length;
}
const u8 = new Uint8Array(length);
let offset = 0;
for (const chunk of chunks) {
u8.set(chunk, offset);
offset += chunk.length;
}
return u8;
}
async function decompress(buffer) {
const ds = new DecompressionStream("gzip");
const writer = ds.writable.getWriter();
writer.write(buffer);
writer.close();
const chunks = [];
const reader = ds.readable.getReader();
let length = 0;
while (true) {
const { done, value } = await reader.read();
if (done) break;
chunks.push(value);
length += value.length;
}
const u8 = new Uint8Array(length);
let offset = 0;
for (const chunk of chunks) {
u8.set(chunk, offset);
offset += chunk.length;
}
return u8;
}

Some files were not shown because too many files have changed in this diff Show More