Commit graph

221 commits

Author SHA1 Message Date
Daniel Osvaldo Rahmanto
54bda9febc
fix(ext/node): readline line separators (#30630)
Some checks failed
ci / pre-build (push) Has been cancelled
ci / build libs (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
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 / 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 / publish canary (push) Has been cancelled
2025-09-06 11:48:54 -04:00
Daniel Osvaldo Rahmanto
e60f5d2c52
fix(ext/node): fs.mkdtemp and fs.mkdtempSync compatibility (#30602)
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
`fs.mkdtemp` and `fs.mkdtempSync` now accept `Buffer` and `Uint8Array`
path. The implementation has been moved to Rust, including directory
suffix generation and directory creation.
2025-09-05 16:12:42 -04:00
Daniel Osvaldo Rahmanto
e843a115fd
fix(ext/node): fs.symlink and fs.symlinkSync compatibility (#30555) 2025-09-03 17:48:13 -04:00
gitstart-app[bot]
e85fc18273
feat(node): implement async hooks for nextTick TickObject tracking (#30578)
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
test-stream-writable-samecb-singletick.js passes
---------

Co-authored-by: gitstart-app[bot] <80938352+gitstart-app[bot]@users.noreply.github.com>
2025-09-03 10:44:10 +02:00
Daniel Osvaldo Rahmanto
a9fd667cf6
chore(test): add reason field to node compat test config (#30469)
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 was done so we can show it later on `node-test-viewer`.

Other notable changes:
- Move ignored test list from `run_all_test_unmodified.ts` to
`config.toml`
- Add `parallel/test-os-checked-function.js` to the ignore list
- Adjust the `README.md`
2025-09-01 23:44:11 +02:00
Daniel Osvaldo Rahmanto
1ef0d0838e
fix(ext/node): implement http.res.setHeaders (#30586)
Closes #30540

Also fixes res.writeHead implementation to parse array values correctly.
For example, `res.writeHead(200, [["foo", "bar"]])` and
`res.writeHead(200, ["foo", "bar"])` should produce the same result.

These changes allows
[parallel/test-http-response-setheaders.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-http-response-setheaders.js)
to pass.
2025-09-01 23:13:03 +02:00
Daniel Osvaldo Rahmanto
6d49e26d60
fix(ext/node): path.relative compatibility (#30566)
Forked from Node.js implementation:
-
591ba692bf/lib/path.js (L548)
-
591ba692bf/lib/path.js (L1294)

This allows `parallel/test-path-relative.js` test to pass.
2025-09-01 11:44:51 +02:00
gitstart-app[bot]
c1f873dc4f
fix(ext/node): Readable adapter cancel semantics (#30526)
Fix WebStreams adapter race condition when canceling during stream close

---------

Co-authored-by: gitstart-app[bot] <80938352+gitstart-app[bot]@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-09-01 09:29:06 +00:00
Daniel Osvaldo Rahmanto
5e1427c397
fix(ext/node): path.normalize compatibility (#30537)
Forked from Node.js implementation:
-
591ba692bf/lib/path.js (L76)
-
591ba692bf/lib/path.js (L1231)

This allows `parallel/test-path-normalize.js` test to pass.
2025-08-27 10:16:29 +02:00
Daniel Osvaldo Rahmanto
e463e57b0e
fix(ext/node): fs.exists and fs.existsSync compatibility (#30507)
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
Closes #30506

Other changes:
- Emit deprecation warning.
- Allows
[parallel/test-fs-exists.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-fs-exists.js)
to pass.
- Allows
[test-fs-symlink-dir-junction.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-fs-symlink-dir-junction.js)
to pass. Previously it always fail due to invalid assertion using
`existsSync`.
2025-08-26 15:31:39 +02:00
Daniel Osvaldo Rahmanto
55f43d0373
fix(ext/node): fs.path' makelong and resolve compatibility (#30503)
Changes are based on Node.js' implementation
https://github.com/nodejs/node/tree/v24.2.0/lib/path.js.

It allows this tests to pass:
-
[parallel/test-path-makelong.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-path-makelong.js)
-
[parallel/test-path-resolve.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-path-resolve.js)
2025-08-25 10:59:52 +02:00
Daniel Osvaldo Rahmanto
51f2bf6e9b
chore(test): preserve node test fixtures line endings (#30488) 2025-08-22 10:38:06 -04:00
Daniel Osvaldo R
0849b95ad3
fix(ext/node): validate callback on fs.mkdtemp and fs.stat (#30454)
This allows
[parallel/test-fs-makeStatsCallback.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-fs-makeStatsCallback.js)
and
[parallel/test-fs-make-callback.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-fs-make-callback.js)
tests to pass.
2025-08-20 09:38:06 -04:00
Bartek Iwańczuk
f0a006ff34
test: add ability to ignore Node compat tests (#30439)
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
This commits adds a way to ignore Node compat tests in
`tests/node_compat/config.toml` like so:
```toml
[tests]
"abort/test-addon-register-signal-handler.js" = { windows = false }
"abort/test-addon-uv-handle-leak.js" = { linux = false }
"es-module/test-cjs-prototype-pollution.js" = { darwin = false }
"es-module/test-esm-assert-strict.mjs" = { windows = false, linux = false }
```
2025-08-19 08:35:10 +00:00
Daniel Osvaldo R
9b1d8d5f2b
fix(ext/node): os.setPriority and os.getPriority compatibility (#30383)
Closes #30405

Changes in this PR:
- Fixes `os.setPriority()` on Windows.
- Validates the function parameters correctly and constructs
`NodeSystemError` on op call error.
- Allows [parallel/test-os-process-priority.js](https://github.com/nodejs/node/blob/v24.2.0/test/parallel/test-os-process-priority.js) to pass.

---------

Signed-off-by: Daniel Osvaldo R <daniel.rahmanto@gmail.com>
2025-08-18 19:07:28 +02:00
Daniel Osvaldo R
5c30409a42
fix(test): set cwd when running node compatibility tests (#30422)
Allows tests to resolve path correctly, such as this one
591ba692bf/test/parallel/test-fs-cp.mjs (L35)
2025-08-16 11:36:20 +00:00
Divy
044b62f702
fix(ext/node): tls upgrades for used sockets (#30418)
Fixes `npm:postgres` support

Fixes https://github.com/denoland/deno/issues/30417
Fixes https://github.com/denoland/deno/issues/28551
Fixes https://github.com/denoland/deno/issues/28526

```
$ target/debug/deno -A repro.mjs
Result(1) [
  {
    current_database: "testdb",
    version: "PostgreSQL 14.17 (Homebrew) on aarch64-apple-darwin24.2.0, compiled by Apple clang version 16.0.0 (clang-1600.0.26.6), 64-bit"
  }
]
```
2025-08-16 16:04:52 +05:30
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
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
Divy
56d6a74894
fix: upgrade @node/types to 24 (#30343)
Some checks failed
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
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
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-08-07 16:08:47 +00: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
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
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
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 / 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 / publish canary (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
Daniel Osvaldo R
af55e069ef
fix(ext/node): fs.rename and fs.renameSync compatibility (#30245) 2025-07-31 10:24:59 -04:00
Daniel Osvaldo R
eef8835e36
fix(ext/node): fs readv promisify compatibility (#30149) 2025-07-31 10:17:56 -04:00
Daniel Osvaldo R
d642f84203
fix(ext/node): fs.unlink and fs.unlinkSync compatibility (#30257)
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
Improves compatibility with Node.js by validating the input parameters,
accepting Buffer type paths, and converting thrown errors correctly.
This PR also addresses `prefer-primordials` lint rule. These changes
allow parallel/test-fs-unlink-type-check.js test to pass.

Towards https://github.com/denoland/deno/issues/29972,
https://github.com/denoland/deno/issues/24236.
2025-07-31 10:56:11 +02:00
Daniel Osvaldo R
a941d3ff23
fix(ext/node): validate fd is integer on fsync and fdatasync (#30215)
Some checks are pending
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 / 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 / publish canary (push) Blocked by required conditions
2025-07-28 11:01:00 -04:00
Divy
5cfe47abc3
fix(ext/node): use Zlib base for brotli handles (#30112)
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 / 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 / publish canary (push) Blocked by required conditions
Fixes #28507 
Closes https://github.com/denoland/deno/issues/28836

```
$ ../deno/target/debug/deno run -A npm:pnpm i --save yargs
Packages: +297
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 381, reused 257, downloaded 41, added 297, done

dependencies:
+ @deno/astro-adapter 0.2.1 (0.3.1 is available)
+ astro 5.12.0
+ yargs 18.0.0
```
2025-07-28 10:11:59 +05:30
Daniel Osvaldo R
d66b1cb89b
test: avoid race condition on node compat test runner (#30201) 2025-07-25 15:31:31 +09:00
David Sherret
990dbc6e4e
Revert "fix(unstable): always require --allow-read permissions for raw imports (#30184)" (#30196)
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-07-24 22:38:04 +00:00
David Sherret
1b755d5948
chore: mark some node compat tests as flaky (#30190) 2025-07-24 09:58:43 -04:00
Divy
84136f41bd
fix(ext/node): implement TLSSocket.getPeerCertificate (#30146)
Fixes https://github.com/denoland/deno/issues/22181

Depends on https://github.com/denoland/rustls-tokio-stream/pull/46

```
# google.com
[Object: null prototype] {
  ca: false,
  raw: Uint8Array(3634) [
     48, 130,  14,  46,  48, 130,  13,  22, 160,   3,   2,   1,
      2,   2,  17,   0, 139, 141,  66,  93, 177, 192,  98, 133,
     16,  71,  29,  49, 153, 205, 184, 162,  48,  13,   6,   9,
     42, 134,  72, 134, 247,  13,   1,   1,  11,   5,   0,  48,
     59,  49,  11,  48,   9,   6,   3,  85,   4,   6,  19,   2,
     85,  83,  49,  30,  48,  28,   6,   3,  85,   4,  10,  19,
     21,  71, 111, 111, 103, 108, 101,  32,  84, 114, 117, 115,
    116,  32,  83, 101, 114, 118, 105,  99, 101, 115,  49,  12,
     48,  10,   6,   3,
    ... 3534 more items
  ],
  subject: [Object: null prototype] { CN: "*.google.com" },
  issuer: [Object: null prototype] {
    C: "US",
    O: "Google Trust Services",
    CN: "WR2"
  },
  valid_from: "Jun 23 08:40:16 2025 +00:00",
  valid_to: "Sep 15 08:40:15 2025 +00:00",
  serialNumber: "8B8D425DB1C0628510471D3199CDB8A2",
  fingerprint: "B9:AB:CF:25:07:76:A5:52:8A:C6:4E:00:9A:A3:2B:D3:B6:32:A6:32",
  fingerprint256: "BD:DA:50:EC:92:BD:74:5E:26:6B:7B:A3:D1:57:18:4D:FA:93:28:23:4E:B5:B5:B3:8E:11:6B:16:D9:66:FD:7E",
  fingerprint512: "22:AD:69:06:72:DA:B2:8C:10:9D:6E:83:74:2D:9F:5B:10:A1:C6:EB:4F:CA:A6:97:F0:F2:98:2A:16:56:32:0E:E2:F1:FB:A6:B9:AB:53:20:2A:78:0F:11:B3:FD:38:9D:8D:43:97:3A:2F:4F:F4:F1:48:CE:D5:54:DF:3E:D2:7E",
  subjectaltname: "DNS:*.google.com, DNS:*.appengine.google.com, DNS:*.bdn.dev, DNS:*.origin-test.bdn.dev, DNS:*.cloud.google.com, DNS:*.crowdsource.google.com, DNS:*.datacompute.google.com, DNS:*.google.ca, DNS:*.google.cl, DNS:*.google.co.in, DNS:*.google.co.jp, DNS:*.google.co.uk, DNS:*.google.com.ar, DNS:*.google.com.au, DNS:*.google.com.br, DNS:*.google.com.co, DNS:*.google.com.mx, DNS:*.google.com.tr, DNS:*.google.com.vn, DNS:*.google.de, DNS:*.google.es, DNS:*.google.fr, DNS:*.google.hu, DNS:*.google.it, DNS:*.google.nl, DNS:*.google.pl, DNS:*.google.pt, DNS:*.googleapis.cn, DNS:*.googlevideo.com, DNS:*.gstatic.cn, DNS:*.gstatic-cn.com, DNS:googlecnapps.cn, DNS:*.googlecnapps.cn, DNS:googleapps-cn.com, DNS:*.googleapps-cn.com, DNS:gkecnapps.cn, DNS:*.gkecnapps.cn, DNS:googledownloads.cn, DNS:*.googledownloads.cn, DNS:recaptcha.net.cn, DNS:*.recaptcha.net.cn, DNS:recaptcha-cn.net, DNS:*.recaptcha-cn.net, DNS:widevine.cn, DNS:*.widevine.cn, DNS:ampproject.org.cn, DNS:*.ampproject.org.cn, DNS:ampproject.net.cn, DNS:*.ampproject.net.cn, DNS:google-analytics-cn.com, DNS:*.google-analytics-cn.com, DNS:googleadservices-cn.com, DNS:*.googleadservices-cn.com, DNS:googlevads-cn.com, DNS:*.googlevads-cn.com, DNS:googleapis-cn.com, DNS:*.googleapis-cn.com, DNS:googleoptimize-cn.com, DNS:*.googleoptimize-cn.com, DNS:doubleclick-cn.net, DNS:*.doubleclick-cn.net, DNS:*.fls.doubleclick-cn.net, DNS:*.g.doubleclick-cn.net, DNS:doubleclick.cn, DNS:*.doubleclick.cn, DNS:*.fls.doubleclick.cn, DNS:*.g.doubleclick.cn, DNS:dartsearch-cn.net, DNS:*.dartsearch-cn.net, DNS:googletraveladservices-cn.com, DNS:*.googletraveladservices-cn.com, DNS:googletagservices-cn.com, DNS:*.googletagservices-cn.com, DNS:googletagmanager-cn.com, DNS:*.googletagmanager-cn.com, DNS:googlesyndication-cn.com, DNS:*.googlesyndication-cn.com, DNS:*.safeframe.googlesyndication-cn.com, DNS:app-measurement-cn.com, DNS:*.app-measurement-cn.com, DNS:gvt1-cn.com, DNS:*.gvt1-cn.com, DNS:gvt2-cn.com, DNS:*.gvt2-cn.com, DNS:2mdn-cn.net, DNS:*.2mdn-cn.net, DNS:googleflights-cn.net, DNS:*.googleflights-cn.net, DNS:admob-cn.com, DNS:*.admob-cn.com, DNS:googlesandbox-cn.com, DNS:*.googlesandbox-cn.com, DNS:*.safenup.googlesandbox-cn.com, DNS:*.gstatic.com, DNS:*.metric.gstatic.com, DNS:*.gvt1.com, DNS:*.gcpcdn.gvt1.com, DNS:*.gvt2.com, DNS:*.gcp.gvt2.com, DNS:*.url.google.com, DNS:*.youtube-nocookie.com, DNS:*.ytimg.com, DNS:ai.android, DNS:android.com, DNS:*.android.com, DNS:*.flash.android.com, DNS:g.cn, DNS:*.g.cn, DNS:g.co, DNS:*.g.co, DNS:goo.gl, DNS:www.goo.gl, DNS:google-analytics.com, DNS:*.google-analytics.com, DNS:google.com, DNS:googlecommerce.com, DNS:*.googlecommerce.com, DNS:ggpht.cn, DNS:*.ggpht.cn, DNS:urchin.com, DNS:*.urchin.com, DNS:youtu.be, DNS:youtube.com, DNS:*.youtube.com, DNS:music.youtube.com, DNS:*.music.youtube.com, DNS:youtubeeducation.com, DNS:*.youtubeeducation.com, DNS:youtubekids.com, DNS:*.youtubekids.com, DNS:yt.be, DNS:*.yt.be, DNS:android.clients.google.com, DNS:*.android.google.cn, DNS:*.chrome.google.cn, DNS:*.developers.google.cn, DNS:*.aistudio.google.com",
  bits: 256,
  pubkey: Uint8Array(65) [
      4,  82, 124,  91,  44,  55, 150,  59, 173,  66,   3,  42,
      3,  48, 243, 252, 242, 238,  62,  56,  67,  45, 186,  88,
    195, 170, 129, 209,  39,  72, 148,  35,  52, 252,  65, 115,
     34, 178,   1,  58,  68,  24, 148,  49,   1, 117, 194, 133,
    159, 182, 255, 197,  61,  22, 246, 124,  52, 140,  25, 111,
     76, 127,  24, 123,  77
  ],
  asn1Curve: "1.2.840.10045.3.1.7",
  nistCurve: "secp256r1"
}
```
2025-07-23 13:41:19 +05:30
Daniel Osvaldo R
a8ef9e151d
fix(ext/node): fs.read and fs.write promisify compatibility (#30152)
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
Towards #29972
2025-07-22 10:56:27 +02:00
Bartek Iwańczuk
6390c8a13b
test: add ability to mark Node compat tests as flaky (#30158)
This commit updates test harness for Node.js compat tests to
allow marking certain tests as flaky. 

This is done by adding `flaky = true` to dict entries in
the `tests/node_compat/config.toml` file.
2025-07-21 14:24:57 +00:00
Daniel Osvaldo R
0a01d63080
fix(ext/node): validate path parameters on link and linkSync (#30061)
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-07-11 11:35:43 +09:00
Daniel Osvaldo R
1c16fde60f
fix(ext/node): don't throw error on invalid path input on exists and existsSync (#29971)
Currently `fs.exists` and `fs.existsSync` throws error when invalid path
is given to the input.

The expected behavior is to:
- Call the callback with false on `fs.exists`.
- Return false on `fs.existsSync`.

Towards #29972, #24236
2025-07-08 12:30:45 +02:00
David Sherret
11f4109344
ci: try to make running node compat tests a little more reliable on CI (#29957) 2025-07-01 19:04:14 +00:00
Jeff Hykin
2f72884425
feat(node API): add fs.glob, fs.globSync, fs.promises.glob (#28972)
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-07-01 11:35:45 +02:00
Yoshiya Hinosawa
f033cc116d
chore(ext/node): clean up dead code (#29920)
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-06-30 09:45:14 +09:00
Yoshiya Hinosawa
dd9a9db0b0
chore(ext/node): re-enable node compat test (#29936)
This PR re-enables node compat test run with the below cases excluded:

- flaky tests
  - `parallel/test-dgram-connect-send-empty-packet.js`
  - `parallel/test-fs-read-stream-concurrent-reads.js`
  - `parallel/test-http-agent-maxtotalsockets.js`
- internet dependent tests
  - `internet/test-dgram-connect.js`
  - `internet/test-dns-lookup.js`
  - `internet/test-dns-promises-resolve.js`
  - `internet/test-dns-regress-6244.js`
  - `internet/test-dns-setserver-in-callback-of-resolve4.js`
  - `internet/test-http-dns-fail.js`
  - `internet/test-http-https-default-ports.js`
  - `internet/test-https-autoselectfamily-slow-timeout.js`
  - `internet/test-inspector-help-page.js`
  - `internet/test-net-autoselectfamily-events-timeout.js`
  - `internet/test-net-connect-unref.js`
  - `internet/test-tls-autoselectfamily-servername.js`

The list (`tests/node_compat/config.toml`) might include a few more
flaky tests. Let's keep excluding such test as they are found.
2025-06-28 14:17:10 +02:00
Yoshiya Hinosawa
e786e7ac64
chore(ext/node): disable node compat CI check temporarily (#29932) 2025-06-28 13:17:45 +09:00
Nathan Whitaker
c36a20f6bb
feat(run): resolve main module with workspace resolver (#29928)
Closes https://github.com/denoland/deno/issues/29897.
Closes https://github.com/denoland/deno/issues/14066.
Closes https://github.com/denoland/deno/issues/19955.

With this PR we'll attempt to resolve bare specifiers passed to `run` or
`serve` with the workspace resolver. This means you can run specifiers
that are defined in your import map/package.json.

If the specifier looks like a path (starts with `.`, or is an absolute
path) then we won't try to resolve it via the import map.

This does have the potential to break someone, in the case that you have
something like

```
{
  "imports": { "foo.ts": "./bar.ts" }
}
```

and you have a file named `foo.ts`, previously `deno run foo.ts` would
run `./foo.ts`, now we would run `./bar.ts`. I can't see a way around
that without doing an extra stat to see if the file exists, or deferring
this to module load time (which seems complex). I don't think many
people would hit that, and if someone does there's a simple fix – just
add `./` to the front.

From my benchmarking, this change has no effect on startup time
2025-06-27 19:14:30 -07:00
Yoshiya Hinosawa
c73b91318b
chore(ext/node): reorg node compat test CI check (#29893)
This PR reorganizes the node compat test CI check.

Now we don't copy (or modify) tests from the vendored dir
(`tests/node_compat/runner/suite`), instead run them directly.

There seem currently 1.4K test cases which pass without modification in
all OSes. The list of such test files are now stored in
`tests/node_compat/config.toml`, and `tests/node_compat/test.ts` run
them as `Deno.test` cases.

(Note: `config.toml` is created by this script:
https://github.com/denoland/node_test_viewer/blob/main/get_consistently_passing_test_names_as_toml.ts.
It checks the daily node compat test runs for the last 10 days, and
retrieves consistently passing test cases.)

closes #29857
2025-06-27 21:06:18 +09:00
Yoshiya Hinosawa
9026234a23
fix(ext/node): keep BOM in buffer.toString('utf8') (#29896)
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-06-27 12:41:27 +09:00
Yoshiya Hinosawa
7d36d8e8ff
fix(ext/node): fix reference error in node:stream (#29894) 2025-06-27 09:45:52 +09:00
Yoshiya Hinosawa
65e1aaefba
fix(ext/node): add type check to LibuvStreamWrap.writeBuffer (#29879)
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 / 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 / publish canary (push) Blocked by required conditions
2025-06-27 08:48:57 +09:00