0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-20 20:33:42 -05:00
Commit graph

1095 commits

Author SHA1 Message Date
Divy Srivastava
2b27d342d8
fix(ext/node): fix panic when invalid AES GCM key size (#27818)
Fixes https://github.com/denoland/deno/issues/27807
2025-01-30 15:34:56 +01:00
Divy Srivastava
2f13542b69
fix(ext/node): fix async variant of brotliDecompress (#27815)
Fixes https://github.com/denoland/deno/issues/27729
2025-01-30 15:34:55 +01:00
Divy Srivastava
331f2c77c2
chore(ext/node): remove internal/streams/buffer_list.mjs (#27822)
This was never used internally and not supposed to be public either.
2025-01-30 15:34:55 +01:00
Divy Srivastava
b3c7ee4504
fix(ext/node): scrypt panic when log_n > 64 (#27816)
Throws an error instead of panic. Ref
https://github.com/denoland/deno/issues/27716
2025-01-30 15:34:55 +01:00
Yoshiya Hinosawa
1baa33f1ee
fix(ext/node): npm:mqtt compatibility (#27792) 2025-01-30 15:34:55 +01:00
David Sherret
a63f614ba1
refactor: add WorkspaceFactory and ResolverFactory (#27766)
Allows easily constructing a `DenoResolver` using the exact same logic
that we use in the CLI (useful for dnt and for external bundlers). This
code is then used in the CLI to ensure the logic is always up-to-date.

```rs
use std::rc::Rc;

use deno_resolver:🏭:ResolverFactory;
use deno_resolver:🏭:WorkspaceFactory;
use sys_traits::impls::RealSys;

let sys = RealSys;
let cwd = sys.env_current_dir()?;
let workspace_factory = Rc::new(WorkspaceFactory::new(sys, cwd, Default::default()));
let resolver_factory = ResolverFactory::new(workspace_factory.clone(), Default::default());
let deno_resolver = resolver_factory.deno_resolver().await?;
```
2025-01-30 15:34:53 +01:00
Divy Srivastava
7ec06b541e
fix(ext/node): reference error in zlib.crc32 (#27777)
Fixes https://github.com/denoland/deno/issues/27774
2025-01-30 15:34:52 +01:00
Yoshiya Hinosawa
73691487e7
fix(ext/node): fix formatting of debug logs (#27772) 2025-01-30 15:34:51 +01:00
denobot
1c02412270
2.1.7 (#27765)
Bumped versions for 2.1.7

Please ensure:
- [x] Target branch is correct (`vX.XX` if a patch release, `main` if
minor)
- [x] Crate versions are bumped correctly
- [x] Releases.md is updated correctly (think relevancy and remove
reverts)

To make edits to this PR:
```shell
git fetch upstream release_2_1.7 && git checkout -b release_2_1.7 upstream/release_2_1.7
```

cc @crowlKats

Co-authored-by: crowlKats <crowlKats@users.noreply.github.com>
2025-01-21 16:13:36 -08:00
ZYSzys
ddaf2955c4
fix(ext/node): add FileHandle#sync (#27677)
(cherry picked from commit 4e0bf4b093)
2025-01-22 00:24:24 +01:00
Divy Srivastava
a4003a5292
fix(ext/node): GCM auth tag check on DechiperIv#final (#27733)
(cherry picked from commit 4f27d7cdc0)
2025-01-22 00:24:22 +01:00
David Sherret
39d9047834
refactor: move denort to separate crate (#27688)
This slightly degrades the performance of CJS export analysis on
subsequent runs because I changed it to no longer cache in the DENO_DIR
with this PR (denort now properly has no idea about the DENO_DIR). We'll
have to change it to embed this data in the binary and that will also
allow us to get rid of swc in denort (will do that in a follow-up PR).

(cherry picked from commit 57dd66ec3d)
2025-01-22 00:24:19 +01:00
Leo Kettmeir
4fe353c961
refactor: update deno_core and use more concrete errors (#27620)
waiting for https://github.com/denoland/deno_core/pull/1043

Fixes #27672

(cherry picked from commit 054075730c)
2025-01-22 00:24:19 +01:00
Yoshiya Hinosawa
b4ea2fdf8d
fix(ext/node): tls.connect regression (#27707)
The TLS start sequence has been broken since #26661 because of the way
how we wrap TCP handle to create TLS handle.

#26661 introduced happy-eyeballs algorithm and some connection could be
dropped because of happy-eyeball attempt timeout. The current
implementation doesn't consider that case and it could start TLS
handshake with timed out TCP connection. That caused #27652 .

This PR fixes it by changing the initialization steps. Now `wrapHandle`
of TLSSocket set up `afterConnectTls` callback in TCP handle, and
`afterConnect` of TCP handle calls it at `connect` event timing if it
exists. This avoids starting TLS session with timed out connection.

closes #27652

(cherry picked from commit b55451b178)
2025-01-22 00:24:18 +01:00
Bartek Iwańczuk
b197dcf4e9
refactor: add 'deno_process' crate (#27680)
Untangled the whole `runtime/ops/process.rs` from `ext/node/` and moved
to a separate `ext/process` crate.

(cherry picked from commit 0050857f51)
2025-01-22 00:24:16 +01:00
Yoshiya Hinosawa
bde9515fdc
fix(ext/node): propagate socket error to client request object (#27678)
Co-authored-by: Satya Rohith <me@satyarohith.com>
(cherry picked from commit 339bc44c58)
2025-01-22 00:24:12 +01:00
denobot
4ee86d8d12
2.1.6 (#27704)
Bumped versions for 2.1.6

Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-01-17 00:35:01 +01:00
Masato Yoshioka
928200fcce
fix(ext/node): add chown method to FileHandle class (#27638) 2025-01-16 23:32:12 +01:00
Bartek Iwańczuk
e763b374ef
refactor: add 'deno_os' crate (#27655)
This commit creates "deno_os" extension crate and moves
numerous ops from "runtime/" crate to the new crate.
2025-01-16 23:32:11 +01:00
Yoshiya Hinosawa
a49c1d1c4e
fix(ext/node): fix playwright http client (#27662) 2025-01-16 23:32:11 +01:00
David Sherret
1bd66b09cc
refactor: move CliNpmResolver to deno_resolver::npm::NpmResolver (#27659)
As title. After this PR all npm resolution will be out of the CLI crate.
2025-01-16 23:32:11 +01:00
siaeyy
a96c06fdc4
fix(node/fs): add utimes method to the FileHandle class (#27582) 2025-01-16 23:32:10 +01:00
Aaron Ang
30c99a7a22
fix(ext/node): add writev method to FileHandle (#27563)
Part of #25554
2025-01-16 23:32:10 +01:00
TateKennington
706c397ffd
fix(node): Prevent node:child_process from always inheriting the parent environment (#27343) (#27340)
Fixes #27343

Currently the node:child_process polyfill is always passing the full
parent environment to all spawned subprocesses. In the case where
`options.env` is provided those keys are overridden but the rest of the
parent environment is still passed through.

On Node the behaviour is for child processes to only inherit the parent
environment when `options.env` isn't specified. When `options.env` is
specified the child process inherits only those keys.

This PR updates the internal node child_process polyfill so that the
`clearEnv` argument is set to true when spawning the subprocess to
prevent the parent environment always being inherited by default. It
also fixes an issue where `normalizeSpawnArguments` wasn't returning the
`env` option if `options.env` was unset.
2025-01-16 23:32:10 +01:00
Yoshiya Hinosawa
25e0a2e567
fix(ext/node): apply @npmcli/agent workaround to npm-check-updates (#27639)
See the comment
https://github.com/denoland/deno/pull/25470#issuecomment-2435077722 for
the reason why we do this workaround to make `make-fetch-happen` work in
Deno

This PR applies the same workaround to `npm-check-updates` package.
`npm-check-updates` internally uses
[`npm-registry-fetch`](https://www.npmjs.com/package/npm-registry-fetch)
which uses
[`make-fetch-happen`](https://www.npmjs.com/package/make-fetch-happen)
(the problematic package) for making http request to npm registry.

The detection of `make-fetch-happen` doesn't work for
`npm-check-updates` because we use call stack at `net.Socket`
constructor to check if it's called from `make-fetch-happen`, but
`npm-check-updates` bundles its dependency and the check doesn't work.

This PR adds the check of `npm-check-updates` string in call stack in
net.Socket constructor to trigger the workaroud.

closes #27629
2025-01-16 23:32:09 +01:00
Rajhans Jadhao
d82c1ecdac
fix(ext/node): use primordials in ext/node/polyfills/_fs_common.ts (#27589)
Related to #24236
2025-01-16 23:32:08 +01:00
denobot
e842e5a59f
2.1.5 (#27611)
Co-authored-by: dsherret <dsherret@users.noreply.github.com>
2025-01-09 15:27:39 -05:00
Leo Kettmeir
5064e9051b refactor: update deno_core for error refactor (#26867)
Closes #26171

---------

Co-authored-by: David Sherret <dsherret@gmail.com>
2025-01-09 15:19:21 -05:00
Divy Srivastava
fa2c8e08d8 fix(ext/node): Fix os.cpus() on Linux (#27592)
Populate `speed` using current scaling frequency and fix times
multiplier.

Fixes https://github.com/denoland/deno/issues/27555

<table>
<tr>
<th>Node.js</th>
<th>Deno</th>
</tr>
<tr>
<td>

```
> os.cpus()
[
  {
    model: 'AMD Ryzen 5 7530U with Radeon Graphics',
    speed: 1396,
    times: {
      user: 1769930,
      nice: 20,
      sys: 525630,
      idle: 41325700,
      irq: 110060
    }
  },
```

</td>
<td>

```
> os.cpus()
[
  {
    model: "AMD Ryzen 5 7530U with Radeon Graphics",
    speed: 1630,
    times: [Object: null prototype] {
      user: 1795620,
      nice: 20,
      sys: 537840,
      idle: 41589390,
      irq: 111230
    }
  },
```

</td>
</tr>
</table>
2025-01-09 15:19:20 -05:00
Yusuke Tanaka
9ead0b867f fix(ext/node): have process global available in Node context (#27562)
This commit makes `process` global always available in Node context.

`process` global was previously available explicitly in `deno_node`, but then
got removed in #25291 and made globally available regardless of whether it's in
Deno or Node context, so this commit does not have any effect on Deno CLI.
However, for users who want to use `deno_node` ext only, it makes sense to have
`process` available to simulate the Node environment individually.

This change may bring some negative performance impact. To measure how large the
impact would be, a very simple benchmark was performed whose results can be
found at https://github.com/magurotuna/process_global_bench.
2025-01-09 15:19:20 -05:00
Nikolay Karadzhov
fa20ffb556 feat(node/fs): Add a chmod method to the FileHandle class (#27522)
Add the chmod method to the FileHandle class in node compat as part of
#25554
2025-01-09 15:19:19 -05:00
David Sherret
330d72a715 refactor: remove use of home crate (#27516)
The two places mentioned in the issue are now consolidated.

Closes https://github.com/denoland/deno/issues/24385
2025-01-09 15:19:17 -05:00
Kenta Moriuchi
a39c83170f chore: Happy New Year 2025 (#27509) 2025-01-09 15:19:16 -05:00
David Sherret
0bbb302318 chore: cargo fmt - turn on group_imports=StdExternalCrate (#26646) 2025-01-09 15:19:15 -05:00
David Sherret
118fd69988 refactor: do not use deno_fs::FileSystem everywhere (#27508)
This changes the cli to mostly use `std::fs` via `sys_traits` instead of
the implemention of `deno_fs::FileSystem`.
2025-01-09 15:19:15 -05:00
Bartek Iwańczuk
787646d486 fix(ext/node): support private key export in JWK format (#27325)
Closes https://github.com/denoland/deno/issues/26643

---------

Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2025-01-09 15:19:15 -05:00
Je Xia
1dd49e2875 fix(node): Add missing inspector/promises (#27491)
Add missing `inspector/promises` in node builtin module list, that
causes types checking error.
2025-01-09 15:19:14 -05:00
David Sherret
68287ab9b1 refactor: use sys_traits (#27480) 2025-01-09 15:19:14 -05:00
Divy Srivastava
f00965456f fix(ext/node): convert brotli chunks with proper byte offset (#27455)
Fixes https://github.com/denoland/deno/issues/27029
Fixes https://github.com/denoland/deno/issues/26086
2025-01-09 15:19:14 -05:00
Yoshiya Hinosawa
13c240c41d fix(ext/node): add support of any length IV for aes-(128|256)-gcm ciphers (#27476) 2025-01-09 15:19:14 -05:00
Divy Srivastava
9302840e6c fix(ext/node): RangeError timingSafeEqual with different byteLength (#27470)
Fixes https://github.com/denoland/deno/issues/27214
2025-01-09 15:19:13 -05:00
Yoshiya Hinosawa
1aefb16fd4 fix(ext/node): make getCiphers return supported ciphers (#27466)
Currently we only supports 7 ciphers (`aes-(128|192|256)-ecb` and
`aes-(128|256)-(cbc|gcm)`) in `node:crypto`, but `crypto.getCiphers`
returns other supported cipher names. That confuses `npm:openpgp`
package and causes https://github.com/denoland/deno/issues/26875.

This PR makes `getCiphers` return actually supported cipher names.

With this change, the example given in #26875 can create private and
public key files.

closes #26875
2025-01-09 15:19:13 -05:00
Filip Stevanovic
17878e79fd fix(ext/node): add truncate method to the FileHandle class (#27389) 2025-01-09 15:19:12 -05:00
Yoshiya Hinosawa
cc8e339c25 fix(ext/node): do not exit worker thread when there is pending async op (#27378)
This change fixes the premature exit of worker threads when there are still
remaining pending ops.

This change reuses the idea of #22647 (unref'ing `op_worker_recv_message` in
worker threads if closeOnIdle specified) and uses
`web_worker.has_message_event_listener` check in the opposite way as
#22944. (Now we continue the worker when `has_message_event_listener` is
true instead of stopping it when `has_message_event_listener` is false.

closes #23061
closes #26154
2025-01-09 15:19:11 -05:00
denobot
1e38520e4e chore: release ext/ crates (#27419)
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-01-09 15:19:11 -05:00
Filip Stevanovic
a71c268271 fix(ext/node): Fix fs.access/fs.promises.access with X_OK mode parameter on Windows (#27407)
- Fixes an issue on Windows where the `fs.constants.X_OK` flag caused
`fs.access` and `fs.promises.access` to incorrectly throw a "permission
denied" error
- Introduced formatting changes due to the formatting tool
- Fixed the issue by always removing the `X_OK` bit from the mode
variable m (not sure if it's necessary to check for the presence of it
in the `mode` param first?)
- Updated unit tests to handle the mentioned constant
- `X_OK` bit is ignored in the Node implementation and should behave
like `F_OK`

fs constants Node documentation:
https://nodejs.org/api/fs.html#fsconstants

fixes https://github.com/denoland/deno/issues/27405
2025-01-09 15:19:11 -05:00
snek
e482c77a31 chore: upgrade libc (#27414)
need to do this for quic and they deprecated this method in libc without
actually providing an alternative so :/
2025-01-09 15:19:10 -05:00
Bartek Iwańczuk
028a84672d fix(ext/node): sort list of built-in modules alphabetically (#27410) 2025-01-09 15:19:10 -05:00
denobot
11df8e3257 chore: release "deno_*" crates (#27402)
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-01-09 15:19:10 -05:00
Divy Srivastava
2e0c4a38d6 fix: FastString v8_string() should error when cannot allocated (#27375)
Upgrades deno_core to 0.326.0
2025-01-09 15:19:08 -05:00