Commit Graph

13743 Commits

Author SHA1 Message Date
Alistair Smith
243f3652f1 remove old commented code 2025-09-19 16:52:03 -07:00
Alistair Smith
11dc2fae56 revert HotReloadEvent.zig 2025-09-19 16:36:54 -07:00
Alistair Smith
0919f237a5 remove 2025-09-19 16:13:59 -07:00
Alistair Smith
691e731404 changes 2025-09-19 16:12:32 -07:00
Alistair Smith
1a19be07ee remove unnecessary data output in development mode 2025-09-19 16:10:37 -07:00
Alistair Smith
903ac7bdd5 Refactor DevServer: remove unused bakeDebug output and clean up route bundling logic 2025-09-19 16:00:55 -07:00
Alistair Smith
0ac6b17d4a revert some changes 2025-09-19 15:53:49 -07:00
Alistair Smith
921e3578b1 change 2025-09-19 15:51:05 -07:00
Alistair Smith
101bcb1ea0 there is no is_built_in_react anymore 2025-09-19 15:45:11 -07:00
Alistair Smith
f691ea1e96 rm 2025-09-19 15:44:23 -07:00
Alistair Smith
53208e2538 .staticRouters is not implemented 2025-09-19 15:35:10 -07:00
Alistair Smith
53299d78b1 refactor framework definition and options interface in bun-types; remove package load logic from Framework struct 2025-09-19 15:20:34 -07:00
Alistair Smith
363c4a5c06 revert 2025-09-19 14:29:48 -07:00
Alistair Smith
6e6120640e remove react special case resolution 2025-09-19 14:29:02 -07:00
Alistair Smith
6556138c7b types 2025-09-19 14:08:00 -07:00
Alistair Smith
aea7b196e6 Revert visitExpr 2025-09-19 14:07:51 -07:00
Zack Radisic
b3f92b0889 fix test 2025-09-19 13:52:35 -07:00
Alistair Smith
a8ff3f8ac3 move module map 2025-09-18 18:58:12 -07:00
Alistair Smith
b516eedc67 fix mod 2025-09-18 17:57:46 -07:00
Alistair Smith
bcea163fd2 update framework def 2025-09-18 17:55:28 -07:00
Alistair Smith
a47cbef4ca restore bundler options 2025-09-18 17:39:48 -07:00
Alistair Smith
90e68fa095 use different react bundles 2025-09-18 17:33:49 -07:00
Alistair Smith
da0b090834 use the specific bundles 2025-09-18 17:25:26 -07:00
Alistair Smith
e6aced6637 remove 2025-09-18 17:17:27 -07:00
Alistair Smith
ce560cd318 Merge branch 'zack/ssg-3' of github.com:oven-sh/bun into ali/react 2025-09-18 17:16:07 -07:00
Alistair Smith
e554c4e1ca Update bun-framework-react dependencies and imports
- Changed the version of `react-server-dom-bun` from a local link to a specific experimental version in `package.json` and `bun.lock`.
- Updated the import path for `renderToPipeableStream` to use the `.node` variant for compatibility.
- Added `neo-async` as a dependency for `react-server-dom-bun` to ensure proper functionality.
2025-09-18 14:18:11 -07:00
Zack Radisic
731f42ca72 fix test 2025-09-17 20:49:55 -07:00
Zack Radisic
f33a852a80 merge 2025-09-17 17:14:56 -07:00
Zack Radisic
f5122bdbf1 use import instead of class 2025-09-17 17:09:18 -07:00
Jarred Sumner
2eebcee522 Fix DevServer HMR sourcemap offset issues (#22739)
## Summary
Fixes sourcemap offset issues in DevServer HMR mode that were causing
incorrect line number mappings when debugging.

## Problem

When using DevServer with HMR enabled, sourcemap line numbers were
consistently off by one or more lines when shown in Chrome DevTools. In
some cases, they were off when shown in the terminal as well.

## Solution

### 1. Remove magic +2 offset
Removed an arbitrary "+2" that was added to `runtime.line_count` in
SourceMapStore.zig. The comment said "magic fairy in my dreams said it
would align the source maps" - this was causing positions to be
incorrectly offset.

### 2. Fix double-increment bug
ErrorReportRequest.zig was incorrectly adding 1 to line numbers that
were already 1-based from the browser, causing an off-by-one error.

### 3. Improve type safety
Converted all line/column handling to use `bun.Ordinal` type instead of
raw `i32`, ensuring consistent 0-based vs 1-based conversions throughout
the codebase.

## Test plan
- [x] Added comprehensive sourcemap tests for complex error scenarios
- [x] Tested with React applications in dev mode
- [x] Verified line numbers match correctly in browser dev tools
- [x] Existing sourcemap tests continue to pass

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 15:37:09 -07:00
Alistair Smith
c29c69b9b5 types 2025-09-17 13:55:46 -07:00
Ciro Spaciari
d85207f179 fix(Bun.SQL) fix MySQL execution on windows (#22696)
### What does this PR do?
Fixes https://github.com/oven-sh/bun/issues/22695
Fixes https://github.com/oven-sh/bun/issues/22654

### How did you verify your code works?
Added mysql:9 + run mysql tests on windows

<img width="1035" height="708"
alt="489727987-3cca2da4-0ff8-4b4a-b5be-9fbdd1c9862d"
src="https://github.com/user-attachments/assets/02c6880d-547e-43b5-8af8-0b7c895c6166"
/>
2025-09-17 08:46:23 -07:00
robobun
661deb8eaf Fix MessagePort communication after transfer to Worker (#22638)
## Summary

Fixes #22635 - MessagePort communication fails after being transferred
to a Worker thread.
Fixes https://github.com/oven-sh/bun/issues/22636

The issue was that `MessagePort::addEventListener()` only called
`start()` for attribute listeners (like `onmessage = ...`) but not for
regular event listeners added via `addEventListener()` or the Node.js
EventEmitter wrapper (`.on('message', ...)`).

## Changes

- Modified `MessagePort::addEventListener()` to call `start()` for all
message event listeners, not just attribute listeners
- Added regression test for issue #22635

## Test Plan

- [x] Regression test added and passing
- [x] Original reproduction case from issue #22635 now works correctly
- [x] Existing MessagePort tests still pass

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-09-17 03:33:14 -07:00
Zack Radisic
916d44fc45 Merge branch 'zack/ssg-3' of github.com:oven-sh/bun into zack/ssg-3 2025-09-16 23:12:15 -07:00
Zack Radisic
421a4f37cd FIX the concurrent request bug 2025-09-16 21:55:05 -07:00
Alistair Smith
d0da7076e6 types 2025-09-16 16:35:41 -07:00
Dylan Conway
041f3e9df0 update security scanner link 2025-09-16 16:31:04 -07:00
Alistair Smith
ea78d564da bump react 2025-09-16 16:29:45 -07:00
Alistair Smith
6338d55f70 continue 2025-09-16 15:56:29 -07:00
Alistair Smith
d3bdc77274 types 2025-09-16 15:56:24 -07:00
Ciro Spaciari
768748ec2d fix(Server) check before downgrade (#22726)
### What does this PR do?
This fix assertion in debug mode, remove flag `has_js_deinited` since
js_value is tagged with finalized and is more reliable
### How did you verify your code works?
run `bun-debug test test/js/bun/http/serve.test.ts`

<img width="514" height="217" alt="Screenshot 2025-09-16 at 14 51 40"
src="https://github.com/user-attachments/assets/6a0e9d9a-eb98-4602-8c62-403a77dfcf76"
/>
2025-09-16 15:39:18 -07:00
Alistair Smith
ecd2fed665 try with redo of react-server-dom-bun 2025-09-16 15:11:22 -07:00
Michael H
31202ec210 In error messages, dim current cwd to help with identifying local code (#22469)
### What does this PR do?

<img width="577" height="273" alt="image"
src="https://github.com/user-attachments/assets/0b20f0a5-45d2-4acf-bb72-85d52f7f1bfb"
/>

not sure if its a good idea though.

### How did you verify your code works?

---------

Co-authored-by: Jarred Sumner <jarred@jarredsumner.com>
2025-09-15 23:41:50 -07:00
robobun
344a772ad5 Fix crypto.Sign exception with JWK EC keys and ieee-p1363 encoding (#22668)
Fixes https://github.com/oven-sh/bun/issues/21547

## Summary
- Fixes "Length out of range of buffer" error when using
`crypto.createSign().sign()` with JWK EC keys and `dsaEncoding:
"ieee-p1363"`
- The issue only occurred with the specific combination of JWK format
keys and IEEE P1363 signature encoding

## The Bug
When signing with EC keys in JWK format and requesting IEEE P1363
signature encoding, the code would:
1. Create a DER-encoded signature
2. Convert it to P1363 format (fixed-size raw r||s concatenation)
3. Replace the signature buffer with the P1363 buffer
4. **But incorrectly use the original DER signature length when creating
the final JSUint8Array**

This caused a buffer overflow since P1363 signatures are always 64 bytes
for P-256 curves, while DER signatures vary in length (typically 70-72
bytes).

## The Fix
Track the correct signature length after P1363 conversion and use it
when creating the final JSUint8Array.

## Test Plan
Added comprehensive tests in
`test/js/node/crypto/sign-jwk-ieee-p1363.test.ts` that:
- Verify the original failing case now works
- Test different encoding options (default DER, explicit DER, IEEE
P1363)
- Test with both JWK objects and KeyObject instances
- Verify signature lengths are correct for each format

The tests fail on the current main branch and pass with this fix.

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-15 23:38:24 -07:00
robobun
dd9d1530da Fix crash when plugin onResolve returns undefined (#22670)
## Summary
Fixes #22199

When a plugin's `onResolve` handler returns `undefined` or `null`, Bun
should continue to the next plugin or use default resolution. However,
the code was crashing with a segmentation fault.

## The Bug
The crash occurred when:
1. A plugin's `onResolve` handler returned `undefined` (especially from
an async function as a fulfilled promise)
2. The code extracted the promise result but didn't check if it was
undefined before expecting it to be an object
3. This caused an improper exception to be thrown, leading to a crash

## The Fix
1. **Main fix**: Added a check for `undefined/null` after extracting the
result from a fulfilled promise, allowing the code to continue to the
next plugin
2. **Promise rejection fix**: Changed rejected promise handling to
return the promise itself instead of throwing an exception (which was
causing hangs)
3. **Exception handling**: Standardized exception throwing throughout
the file to use the proper `throwException` pattern

## Test Plan
Added comprehensive regression tests in
`test/regression/issue/22199.test.ts` that verify:
-  Async function returning `undefined` doesn't crash
-  Async function returning `null` doesn't crash  
-  Sync function returning `undefined` doesn't crash
-  Async function throwing an error properly shows the error

All tests:
- **Fail (crash) with release Bun**: Segmentation fault
- **Pass with this fix**: All test cases pass

## Verification
```bash
# Crashes without the fix
bun test test/regression/issue/22199.test.ts  

# Passes with the fix
bun bd test test/regression/issue/22199.test.ts
```

🤖 Generated with [Claude Code](https://claude.ai/code)

---------

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-15 23:37:10 -07:00
Alistair Smith
a09c45396e bun whoami as alias for bun pm whoami (currently reserved) (#22613)
### What does this PR do?

Previously, 'bun whoami' showed a reservation message indicating it was
reserved for future use. This change updates the command to execute 'bun
pm whoami' directly, making it consistent with npm's behavior.

Fixes #22614

Changes:
- Route 'bun whoami' to PackageManagerCommand instead of ReservedCommand
- Update PackageManagerCommand.exec to handle direct 'whoami' invocation

### How did you verify your code works?

- Add tests to verify both 'bun whoami' and 'bun pm whoami' work
correctly

---------

Co-authored-by: Claude Bot <claude-bot@bun.sh>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-15 23:36:48 -07:00
Alistair Smith
28447ab578 Refactor HotReloadEvent and comment out unused code in BundleV2
- Updated `HotReloadEvent.zig` to use duplicated strings for extra files to prevent potential memory issues.
- Commented out unused code related to "bun:app" in `bundle_v2.zig` to improve clarity and maintainability.
2025-09-15 21:55:59 -07:00
Alistair Smith
3e798f1787 type only import 2025-09-15 21:24:12 -07:00
Alistair Smith
a64f073ad3 minimize 2025-09-15 21:13:45 -07:00
Alistair Smith
bb19610f0d Update Bun framework to use react-server-dom-webpack and upgrade dependencies
- Changed module imports from "react-server-dom-bun" to "react-server-dom-webpack" in multiple files.
- Updated dependencies in package.json and bun.lock to use newer versions of React, React DOM, React Refresh, and the new react-server-dom-webpack package.
- Adjusted type definitions in bun-types to reflect changes in import sources.

This update enhances compatibility with the latest React features and improves the overall framework structure.
2025-09-15 21:00:46 -07:00