Commit Graph

8286 Commits

Author SHA1 Message Date
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
Alex Lam S.L
d406ca6328 use bun.logger instead of bun.Output (#2099) 2023-02-17 17:06:01 -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
ce01a31e94 [napi] Fix crash in creating arrays > 8 elements long 2023-02-16 03:11:22 -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
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
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
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