Commit graph

14196 commits

Author SHA1 Message Date
Luke Swithenbank
b2fd724c46
feat(kv): implement custom inspect for AtomicOperation (#30077)
## Summary

Adds a custom inspect method to `AtomicOperation` to provide a readable
string representation of the queued operations (checks, mutations,
enqueues). This improves developer experience when debugging atomic
operations by showing the internal state in a human-readable format.

The implementation adds a custom `[Symbol.for("Deno.customInspect")]`
method that formats the operations into a structured string showing:
- Check operations with their keys and versionstamps
- Mutation operations (set, delete, sum) with keys and values
- Enqueue operations with payloads and options

Fixes #21034
2025-08-13 10:09:22 +02:00
Laurence Rowe
e421451a70
fix(tests): use correct path separator on unix for code_cache cleanup.ts (#30378)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This has been causing failures on multiple PRs.
2025-08-12 09:20:52 -07:00
cions
ebfd3c3d7c
fix: android build (#30360)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Fix build error on Android.

Patches from https://github.com/cions/termux-deno
2025-08-12 15:47:18 +02:00
snek
c69a8fa414
fix(unstable): update deno_tunnel for better reconnect errors (#30381) 2025-08-12 11:45:37 +02:00
Daniel Osvaldo R
6344dcffad
fix(ext/node): make some os exported properties read only (#30374)
These only occurs when importing using `require('os')`, since ES module
imports already make it non-writeable. Changes are based on Node.js
original implementation
[here](591ba692bf/lib/os.js (L333-L356)).
This allows
[test-os-eol.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-os-eol.js)
to pass.
2025-08-12 10:21:31 +02:00
Kenta Moriuchi
e2889e01f0
fix: upgrade deno_core to 0.355.0 (#30352)
Some checks are pending
ci / publish canary (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
2025-08-11 11:12:43 +02:00
David Sherret
93d0cff559
chore: improve pr title verification (#30367)
Some checks are pending
ci / publish canary (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
2025-08-10 09:19:18 -04:00
Daniel Osvaldo R
62bb429cbf
fix(ext/node): accept base64url encoding on StringDecoder (#30366)
Also remove a duplicated `normalizedEncoding` function. These node
compatibility tests are now passing:
-
[test-string-decoder-end.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-string-decoder-end.js)
-
[test-string-decoder-fuzz.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-string-decoder-fuzz.js)
2025-08-10 18:49:14 +05:30
Daniel Osvaldo R
9371d7bcf3
fix(ext/node): handle large buffer correctly (#30369)
Previously, Deno throws error when creating `Buffer.allocUnsafe` or
`Buffer.allocUnsafeSlow` with size of `2**31` where that's not the case
with Node.js.

The changes allow these tests to pass:
-
[test-buffer-large-size-buffer-alloc-unsafe-slow.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-buffer-large-size-buffer-alloc-unsafe-slow.js)
-
[test-buffer-large-size-buffer-alloc-unsafe.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-buffer-large-size-buffer-alloc-unsafe.js)
-
[test-string-decoder-large-buffer.js](https://github.com/nodejs/node/blob/v24.2.0/test/pummel/test-string-decoder-large-buffer.js)

<!--
Before submitting a PR, please read
https://docs.deno.com/runtime/manual/references/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(std/http): Fix race condition in server
    - docs(console): Update docstrings
    - feat(doc): Handle nested reexports

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
2025-08-10 14:02:43 +02:00
林炳权
68297b5f10
chore: Rust 1.89.0 (#30364)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Related PR: https://github.com/denoland/deno/pull/30354
2025-08-09 11:11:48 +00:00
Divy
56d6a74894
fix: upgrade @node/types to 24 (#30343)
Some checks failed
ci / lint debug macos-x86_64 (push) Has been cancelled
ci / lint debug windows-x86_64 (push) Has been cancelled
ci / test debug linux-x86_64 (push) Has been cancelled
ci / test release linux-x86_64 (push) Has been cancelled
ci / test debug macos-x86_64 (push) Has been cancelled
ci / test release macos-x86_64 (push) Has been cancelled
ci / test debug windows-x86_64 (push) Has been cancelled
ci / test release windows-x86_64 (push) Has been cancelled
ci / build libs (push) Has been cancelled
ci / publish canary (push) Has been cancelled
ci / pre-build (push) Has been cancelled
ci / test debug linux-aarch64 (push) Has been cancelled
ci / test release linux-aarch64 (push) Has been cancelled
ci / test debug macos-aarch64 (push) Has been cancelled
ci / test release macos-aarch64 (push) Has been cancelled
ci / bench release linux-x86_64 (push) Has been cancelled
ci / lint debug linux-x86_64 (push) Has been cancelled
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-07 16:08:47 +00:00
David Sherret
a17c53cfe4
fix: reduce progress bar flickering (#30349)
Also goes back to showing a single line instead of 3 lines.
2025-08-07 17:13:29 +02:00
Asher Gomez
e282367f67
chore: cleanup unused dependencies (#30059)
Done using `udeps`. Possibility of false positives so we'll see how CI
goes.

---------

Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2025-08-07 14:48:42 +00:00
Divy
53510f874c
fix(io): do not autoClose stdin readable stream (#30345)
Fixes https://github.com/denoland/deno/issues/28867
2025-08-07 18:27:56 +05:30
David Sherret
e27d025dc8
chore: remove zlib feature from flate2 dep in npm_cache (#30348)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-07 12:17:59 +00:00
David Sherret
180480c06b
perf: reduce heap allocations and memory creating cjs wrapper module (#30344) 2025-08-07 13:00:38 +02:00
David Sherret
0f865b474b
fix(publish): remove incorrect relative-package-import diagnostic when root of workspace is package (#30333) 2025-08-07 08:25:57 +00:00
David Sherret
2b50970347
refactor: improve getting WatchFlags/WatchFlagsWithPaths (#30337) 2025-08-07 09:58:15 +02:00
David Sherret
baa4acdcea
refactor: move fill_graph into deno_resolver (#30338)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-06 15:30:08 +00:00
David Sherret
ff8bdcd987
fix(compile): ensure Deno.build.standalone is set in workers (#30335)
Closes https://github.com/denoland/deno/issues/30318
2025-08-06 16:12:57 +02:00
Garret Thompson
038d5a5331
fix(ext/node): avoid panic when crypto.randomInt has no arguments (#30314)
Some checks are pending
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
Closes https://github.com/denoland/deno/issues/30313
2025-08-05 17:09:39 +02:00
Nayeem Rahman
0171066978
fix(lsp): use referrer compiler options for node_modules files (#30275) 2025-08-05 15:33:53 +01:00
Heyang Zhou
678d118bdc
feat(ext/kv): allow specifying default path and path prefix (#30320)
The `Deno.openKv()` API now checks these env vars:

- `DENO_KV_DEFAULT_PATH` - if set, when no database path is specified,
use the provided path.
- `DENO_KV_PATH_PREFIX` - if set, prepend this to the provided database
path - e.g. if `DENO_KV_PATH_PREFIX=https://example.com/db/`,
`Deno.openKv("default")` will open the database at
`https://example.com/db/default`.
2025-08-05 16:20:08 +02:00
James Bronder
9a1ab9849c
fix(ext/node): use primordials in ext/node/polyfills/internal_binding/buffer.ts (#30287)
Towards #24236. Replaces JS builtins with equivalent primordials.
2025-08-05 13:10:45 +00:00
snek
3cba20f254
feat(unstable): add json repl (#30307)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-05 10:16:07 +00:00
Divy
5b5141056b
fix(ext/node): use custom allocator for brotli (#30277)
Fixes https://github.com/denoland/deno/issues/30259

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-05 09:33:56 +00:00
David Sherret
fc8622032b
fix: make unmet peer dep error message less verbose (#30312) 2025-08-05 11:31:31 +02:00
Daniel Osvaldo R
55f74e809b
fix(ext/node): parse fs open options correctly (#30300)
Fixes #30299 

I decided to build the `OpenOptions` on the Rust side, because it's
cheaper to pass integers to the op function and we can enable the fast
op call. Also the tests that I added to the `config.toml` were already
passing before this PR.
2025-08-05 11:12:22 +02:00
Divy
963bc4bd8a
chore: rewrite tls_wrap internals to JS (#30303) 2025-08-05 09:02:45 +00:00
David Sherret
01bbe9c66a
fix(check): do not surface code resolution errors in declaration file dependencies (#30296) 2025-08-05 08:35:20 +00:00
Bartek Iwańczuk
efb5617d15
fix(ext/node): assign 'ERR_BUFFER_TOO_LARGE' to codes (#30311)
Some checks are pending
ci / build libs (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Closes https://github.com/denoland/deno/issues/30310
2025-08-04 18:19:46 +02:00
Daniel Osvaldo R
45f64df6c1
fix(ext/node): incorrect ERR_INVALID_ARG_VALUE constructor arguments position (#30309)
This allows
[parallel/test-fs-internal-assertencoding.js](https://github.com/nodejs/node/blob/v23.9.0/test/parallel/test-fs-internal-assertencoding.js)
to pass.

Towards #29972
2025-08-04 16:05:41 +00:00
David Sherret
94a953e62f
fix: improve handling of linked jsr packages in lockfile (#30289)
Some checks are pending
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-04 11:30:48 +02:00
Will (Newby) Atlas
c86e277fc1
feat(ci): migrate to Cirrus medium runners (#30070)
Some checks are pending
ci / build libs (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
For #30068

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-03 11:30:44 +02:00
Nathan Whitaker
1e34986455
perf(napi): misc napi optimizations (#30291)
Some checks are pending
ci / build libs (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
before
```
❯ deno run -A perf-turso.js
cpu: Apple M3 Max
runtime: deno 2.4.3+6ae4eda (aarch64-apple-darwin)

benchmark                                            time (avg)             (min … max)       p75       p99      p999
--------------------------------------------------------------------------------------- -----------------------------
Statement.get() with bind parameters [expanded]   4'544 ns/iter   (4'424 ns … 4'801 ns)  4'599 ns  4'801 ns  4'801 ns
Statement.get() with bind parameters [raw]        4'484 ns/iter   (4'409 ns … 4'667 ns)  4'527 ns  4'667 ns  4'667 ns
Statement.run() with bind parameters              5'424 ns/iter   (4'833 ns … 4'518 µs)  5'292 ns  8'042 ns 15'292 ns
```

after
```
❯ devdeno run -A perf-turso.js
cpu: Apple M3 Max
runtime: deno 2.4.3 (aarch64-apple-darwin)

benchmark                                            time (avg)             (min … max)       p75       p99      p999
--------------------------------------------------------------------------------------- -----------------------------
Statement.get() with bind parameters [expanded]   1'141 ns/iter   (1'057 ns … 3'223 ns)  1'126 ns  2'910 ns  3'223 ns
Statement.get() with bind parameters [raw]        1'015 ns/iter     (975 ns … 1'112 ns)  1'017 ns  1'093 ns  1'112 ns
Statement.run() with bind parameters              1'560 ns/iter   (1'295 ns … 8'840 ns)  1'433 ns  8'752 ns  8'840 ns
```

Optimizations are:
- don't log napi entry/exit in release builds (this ends up being very
expensive, as it checks whether logging is enabled twice per call into
NAPI)
- use internalized strings to speed up property accesses (matches node's
behavior as well)
- change order we check value types (matches node now)
- don't unnecessarily validate utf8
- don't get handle scopes when an isolate will do
- reuse handle scope within a function
- use the faster APIs that don't require handle scopes for getting
uint32 / int32 values

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-02 17:07:46 -07:00
Bartek Iwańczuk
dcdd1d6139
fix(ext/node): worker_threads handles basic require calls (#30279)
Some checks are pending
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This is not a full-fledged and fully correct `require`/CJS support
for `node:worker_threads`, but unlocks certain scenarios that
were not working at all previously.
2025-08-02 11:27:06 +00:00
Leo Kettmeir
43b376cd47
Revert "fix(ext/node): support TLS for unix sockets" (#30284)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Reverts denoland/deno#30169

Causes issues with playwright's installation of browsers
2025-08-02 09:11:23 +00:00
David Sherret
5c947b07b4
chore(node): resolution mode for cjs export analysis should be require (#30252)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-08-01 08:16:36 -04:00
Leo Kettmeir
48259956ce
feat(unstable): allow setting headers on EventSource (#30278) 2025-08-01 12:24:22 +02:00
Bartek Iwańczuk
b05e8b20ac
fix(ext/node): support TLS for unix sockets (#30169)
This commit adds initial support for connecting Unix socket over
TLS in `node:tls.connect()` API

---------

Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2025-08-01 12:00:14 +02:00
Bartek Iwańczuk
56f2055c3f
perf: Use more efficient structuredClone API (#30258)
Some checks are pending
ci / build libs (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This PR builds on top of https://github.com/denoland/deno_core/pull/1167
that provided 16% perf improvement for structured clone algorithm by avoid round-trip
serialization and deserialization.

This was applied to the internal `structuredClone` helper, as well as
for `MessagePort.postMessage` which is what Web worker 
and `node:worker_thread` APIs are using.
2025-08-01 09:58:42 +02:00
David Sherret
efb16e70d3
fix(bundle): support importing directories with a package.json from an es module when bundling (#30273)
Some checks are pending
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-07-31 22:33:25 +00:00
Daniel Osvaldo R
6ae4eda86a
fix(ext/node): define fs constants correctly across platforms (#30113) 2025-07-31 17:11:01 -04:00
Nathan Whitaker
fc5e39aaf4
chore(ci): mark some tests flaky (#30268)
From failures in recent CI runs on main
2025-07-31 20:01:13 +00:00
Nathan Whitaker
e58c8ed20a
fix(update): update version reqs even if locked to latest version (#30249) 2025-07-31 19:22:01 +00:00
David Sherret
462151f16f
chore: remove wait dependency in scripts (#30267)
Logging is fine here to reduce the dependency (which is currently
failing to load for some reason)
2025-07-31 18:30:20 +00:00
Daniel Osvaldo R
8680d97b38
fix(ext/node): fs.open and fs.openSync compatibility (#30191)
Some checks are pending
ci / build libs (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
Notable changes:
- Introduces a separate op between `Deno.open` and `node:fs.open`.
- Removes redundant `existenceCheckRequired` and `Deno.lstatSync` calls,
as the op layer already handles that when `options.create_new` is true
and uses synchronous I/O when `O_SYNC` is passed.
- Allows passing custom flags to the op (e.g. `O_SYNC`).
- Addresses `prefer-primordials` lint rule.
- Allows
[parallel/test-fs-open.js](https://github.com/nodejs/node/blob/v23.9.0/test/parallel/test-fs-open.js)
test to pass. There are also several tests that have passed before that
I added to the config.toml.
2025-07-31 15:10:10 +00:00
David Sherret
afe149e071
fix(bundle): require of sub directory in npm package should consult package.json (#30253) 2025-07-31 14:48:51 +00:00
James Bronder
c66fea5606
fix(ext/node): use primordials in ext/node/polyfills/internal_binding/node_file.ts (#30066) 2025-07-31 10:28:58 -04:00
Daniel Osvaldo R
af55e069ef
fix(ext/node): fs.rename and fs.renameSync compatibility (#30245) 2025-07-31 10:24:59 -04:00