Commit Graph

2508 Commits

Author SHA1 Message Date
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
09a4d864da better test name 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
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
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
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
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
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
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
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
Hanaasagi
8880bf1026 fix(node:buffer): fix Buffer.readUintBE (#6770)
Close: #6759
2023-10-30 00:07:27 -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
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
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
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
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
Ai Hoshino
1836ecd2ed fix(node:buffer): fix Buffer.write stuck (#6651) 2023-10-22 13:42: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
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
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
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
Ashcon Partovi
49ef5bccec Fix missing {port: 0} causing flaky test 2023-10-17 21:23:13 -07:00
Ai Hoshino
e91436e524 fix(node:http): fix server.address() (#6442)
Closes #6413, #5850
2023-10-17 13:18:14 -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
Ashcon Partovi
220cb0eb94 Fix formatting 2023-10-16 17:11:04 -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
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
João Alisson
7becb5ec74 fix(jest): fix toStrictEqual on same URLs (#6528)
Fixes #6492
2023-10-16 15:14:15 -07: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
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