feat: update module lists - #31
Conversation
The list stops at Bun 1.2.6. Bun implements these modules since then: - `_stream_*` (6 modules): `>= 1.1.45` - `_http_*` (6 modules): `>= 1.2.11` - `inspector`, `inspector/promises`: `>= 1.3.7` - `_tls_common`, `_tls_wrap`, `repl`, `trace_events`, `node:sqlite`, `node:quic`: `>= 1.4.0` Each module is listed with and without the `node:` prefix, except `node:sqlite` and `node:quic`. Bun, like Node.js, resolves these two only with the prefix (the same as the `node:test` entry). A module is listed from the first Bun release whose module exports what the Node.js module exports. Older releases that only ship a stub that throws, or an alias of the parent module, do not count. This is the same rule the `node:test` entry uses. Each version was checked by loading the module in the Bun binaries published to npm (every release from 1.1.40 through 1.3.14, plus a 1.4.0 canary build) and by matching the implementing commit in the Bun repository to its first release tag.
Bun 1.3.5 added `import { feature } from "bun:bundle"` (oven-sh/bun#25462). The import works
with `bun run`, `bun test` and `bun build`, and `@types/bun` declares the module. Bun 1.3.4 fails
to resolve it.
No Bun release resolves this specifier (checked 1.0.0 through 1.3.14 and a 1.4.0 canary build), and Node.js has no such module either. `async_context` is only the name of the Node.js documentation page for `AsyncLocalStorage`, which lives in `async_hooks`.
|
😲 |
|
@robobun I cannot find a type declaration for the |
Remove expectation for 'node:sqlite' in version 1.4.0.
Updated version requirements for _tls_common and added node:_tls_common.
Removed several test cases for modules that are no longer relevant and updated some expected values to reflect changes in implementation.
SunsetTechuila
left a comment
There was a problem hiding this comment.
_http_* modules you've added were implemented before the version 1.2.11. I tried the version 1.2.0 and they were available. Find the version in which they were first implemented
Removed outdated dependencies from the implemented-node-modules.json file.
Removed tests for the '_tls_wrap' module from both true and false cases.
Removed version constraint for 'node:_tls_wrap'.
|
Thanks for the quick review and merge! On On the I checked the merged |
Hello! I'm Robobun, an AI assistant run by the Bun maintainers. Bun has gained a few Node.js modules since the last
is-bun-modulerelease, so they asked me to send you an update. Thanks for maintaining this package!New entries in
implemented-node-modules.json, each with and without thenode:prefix:inspector,inspector/promises>= 1.3.7node:sqlite,node:quic(prefix only, likenode:test)>= 1.4.0The PR also adds
bun:bundle(>= 1.3.5) and removesasync_hooks/async_context, which has never existed in Bun or in Node.js. The removal is a separate commit, so feel free to drop it. ✅A few notes:
node:testentry, a module counts from the version that implements it, not from an older stub.bun run check-allpasses.Happy to change anything. Thanks!
Bun changes behind each entry
inspector: feat(node:inspector): implement Profiler API oven-sh/bun#25939, oven-sh/bun@4feede9 (1.3.7) ✅bun:bundle: feat(bundler): add statically-analyzable dead-code elimination via feature flags oven-sh/bun#25462 (1.3.5) ✅Not released yet (1.4.0):
node:sqlitenode:sqlite: implement the module and pass the Node v26.3.0 test suite oven-sh/bun#32498 ✅node:quicnode:quic on lsquic — Node v26 compat, HTTP/3 oven-sh/bun#32602, oven-sh/bun@5638c62 ✅replnode:repl: replace the stub with Node v26.3.0's REPL — v26 readline stack, acorn recoverable-parse + top-level await, completion, history, --interactive (82 vendored upstream tests) oven-sh/bun#31827 ✅trace_eventstrace_events: implement Node's trace-events subsystem and port the v26.3.0 trace tests — JSON trace writer, --trace-event-* / --trace-env / --trace-exit flags, per-subsystem events, worker tids, NodeTracing inspector domain (+34 tests, 100% passing) oven-sh/bun#31824 ✅