Commit graph

2210 commits

Author SHA1 Message Date
Bartek Iwańczuk
46ec01374e
test: add shorthand script to run all Node test and filtering to it (#29224)
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 wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This commit adds a new "tools/node_compat_tests.js" script that runs
"tests/node_compat/node_compat_test.ts" file.

Additionally ability to filter tests has been added (that only works
if we're not running in CI), that can be enabled like so:
```
$ tools/node_compat_tests.js --filter timers-unref-active
```
2025-05-17 02:08:21 +02:00
chirsz
cd68e7dd17
feat(ext/webgpu): implement GPUQueue.onSubmittedWorkDone (#29255) 2025-05-17 01:48:03 +02:00
David Sherret
c4412ffb13
refactor: add deno_npm_installer crate (#29319)
More changes/improvements will following in follow-up PRs.
2025-05-16 18:11:05 -04:00
Nayeem Rahman
2b0d44d8da
fix(lsp): lookup bare workspace specifiers for auto-import (#29304) 2025-05-16 21:38:14 +01:00
Leo Kettmeir
97b84669a8
fix(node): use JsErrorClass for code property on node resolver errors (#29294)
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 / 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 / test debug macos-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 / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Superseeds #26631

---------

Signed-off-by: Leo Kettmeir <crowlkats@toaxl.com>
Co-authored-by: David Sherret <dsherret@gmail.com>
2025-05-16 20:54:47 +02:00
Bartek Iwańczuk
db1028bdc1
ci: update Slack bot action (#29333)
This was showing double "minus" (`-`) sign
2025-05-16 15:00:10 +02:00
Yoshiya Hinosawa
637bcffea7
fix(check): ignore errors on ambient modules (#29135)
This commit makes `deno check` ignore `Cannot find module` diagnostic if the
missing module specifier matches one of ambient module pattern. (For
example if there's `declare module "*.svg" { ... }` declaration in one
of d.ts files, importing of `<any>.svg` doesn't cause type error with
this change. This is necessary for passing the type checking of default
vite template.)

---------

Co-authored-by: David Sherret <dsherret@gmail.com>
2025-05-16 15:06:34 +09:00
Bartek Iwańczuk
7e77546d6d
ci: Show percentage diff for Node compat tests (#29310)
Some checks are pending
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build wasm32 (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 / publish canary (push) Blocked by required conditions
This is for internal Slack automation
2025-05-15 13:24:00 +00:00
Yoshiya Hinosawa
fab9b06878
fix(fmt): fail command when embedded language has syntax error (#29259)
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 / 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 / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-05-15 10:51:48 +09:00
Cyan
938803ae6e
fix(repl): use object_id for repl internal (#29163)
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 / 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 / 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 / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
Closes https://github.com/denoland/deno/issues/26599
Closes https://github.com/denoland/deno/issues/29121

This PR use object_id to interact with repl internal, instead of global
variable (`__DENO_REPL_INTERNALS_{seconds}__`),
so we don't need to hide this in completions, etc.

---------

Signed-off-by: Cyan <contact@cyans.me>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-05-14 15:44:24 +00:00
David Sherret
784c6a5296
fix(check): do not add @types/node@* to lockfile if a @types/node req already exists (#29270) 2025-05-13 18:44:54 -04:00
Bartek Iwańczuk
5ea90de199
feat(jupyter): allow to install and maintain multiple kernels (#29249)
Some checks are pending
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 / test debug macos-aarch64 (push) Blocked by required conditions
ci / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
This commit changes the `deno jupyter` subcommand:
- `deno jupyter` now accepts additional `--name` argument to 
allow installing and maintaing multiple kernelsspec - useful when 
one wants to install a stable kernel and a debug/canary kernel
- `deno jupyter --install` now accepts additional `--display` 
argument to allow customizing display name of the kernel - the 
default one is "Deno"
- `deno jupyter --install` no longer blindly installs kernelspec, 
instead it first checks if a kernelspec already exists and if so, 
returns an error suggesting to use `--force` flag
- `deno jupyter --help` no longer shows `--unstable` flag

Closes https://github.com/denoland/deno/issues/29219
Closes https://github.com/denoland/deno/issues/29220
2025-05-13 16:56:16 +00:00
Nayeem Rahman
9b0707baa2
fix(check): don't assert unique normalized specifiers (#29274) 2025-05-13 16:16:38 +00:00
Divy Srivastava
e6c2ad1431
fix(ext/node): TLS server unref (#29279)
Fixes https://github.com/denoland/deno/issues/29230
2025-05-13 21:38:41 +05:30
Luca Casonato
3b6c70e5b2
feat(ext/fetch): add support for fetch on unix sockets (#29154)
This commit adds support for using Unix socket proxies in `fetch` API.

This is facilitated by passing an appropriate `Deno.HttpClient` instance
to the `fetch` API:
```
const client = Deno.createHttpClient({
  proxy: {
    transport: "unix",
    path: "/path/to/unix.sock",
  },
});

await fetch("http://localhost/ping", { client });
```

Closes https://github.com/denoland/deno/issues/8821

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-05-13 18:06:17 +02:00
Divy Srivastava
6002d2624e
fix(ext/node): allow rejectUnauthorized: false in node:tls (#29245)
Fix #29228

Allow disable TLS cert verification using `options.rejectUnauthorized`.
If passed. `--unsafely-ignore-certificate-errors` overrides
`rejectUnauthorized: false`
2025-05-13 17:43:58 +05:30
Yoshiya Hinosawa
1022decc79
fix(ext/node): align input validation of Buffer.compare (#29275)
Some checks are pending
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / test debug macos-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 / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
2025-05-13 17:14:19 +09:00
Divy Srivastava
acd0c94b46
fix(ext/node): add AES CTR to supported ciphers list (#29273)
Fix https://github.com/denoland/deno/issues/29047
2025-05-13 09:45:36 +05:30
Yoshiya Hinosawa
363223aa6a
fix(ext/node): export CallTracker as named export (#29271) 2025-05-13 10:15:48 +09:00
narumincho
2f876b52d1
feat(lsp): add description in TaskDefinition (#29244) 2025-05-12 23:33:38 +01:00
David Sherret
1b36304381
fix(check): write lockfile after type checking (#29265)
Type checking might discover `npm:@types/node`, so write after type
checking.
2025-05-12 15:31:38 -04:00
Divy Srivastava
9cb72064d3
fix(ext/node): implement dgram setMulticastLoopback (#29241)
`npm:multicast-dns` works in Deno now.

Ref https://github.com/denoland/deno/issues/18324
2025-05-12 08:53:15 +05:30
David Sherret
e601df6bfb
fix: allow specifying otel config in --env-file (#29240)
Alternative to https://github.com/denoland/deno/pull/28127 that does cli
flag parsing, then env file loading, then resolves config with env vars.

This also fixes several other issues related to env vars in the
--env-file not being used for certain config.

Closes https://github.com/denoland/deno/issues/27851
Closes https://github.com/denoland/deno/issues/29171
Closes https://github.com/denoland/deno/pull/28127
Closes #29256
2025-05-11 21:09:52 -04:00
Bartek Iwańczuk
2fe200f6ef
fix(coverage): don't panic if all covered files are ignored via directive (#29250)
Closes https://github.com/denoland/deno/issues/29218
2025-05-12 02:47:32 +02:00
Divy Srivastava
c27aaf9f26
fix(ext/node): implement dgram socket setMulticastTTL (#29232)
Ref https://github.com/ipfs/helia/issues/73#issuecomment-2864091259
2025-05-10 09:22:02 +05:30
Divy Srivastava
5044f2f355
fix(ext/node): hold weak reference to sqlite database in instances (#29210)
Deterministic close and releases file lock on Windows.

Fixes https://github.com/denoland/deno/issues/29033
2025-05-10 09:21:53 +05:30
Divy Srivastava
b14e104306
fix(ext/node): use "localhost" as default tls hostname (#29231)
Fixes https://github.com/denoland/deno/issues/29229
2025-05-10 09:21:49 +05:30
Divy Srivastava
7852806c3a
fix(ext/node): Fix export loadEnvFile from node:process (#29237)
Fixes https://github.com/denoland/deno/issues/29236
2025-05-10 09:21:26 +05:30
Bartek Iwańczuk
784be1511b
test: Capture output of failing node compat tests (#29227)
Will actually show test error instead of "error: Test failed"
2025-05-09 16:16:25 +02:00
David Sherret
cd877fd16f
fix(node/test): basic support for t.skip and t.todo (#29222)
Adds basic support for `t.skip` and `t.todo`
2025-05-09 01:40:16 +02:00
Elias Rhouzlane
9188c79ab4
fix(cli/hmr): print compile error with exception details (#27597)
Fix https://github.com/denoland/deno/issues/27577

---------

Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-05-08 23:39:31 +00:00
Jonh Alexis
f8615e404c
fix(fmt): indent width should be ignored when formatting with use tabs set to true (#29205) 2025-05-08 22:00:13 +00:00
snek
c28cb56357
fix: inspector rewrite resource name to url (#29216)
Fixes: https://github.com/denoland/deno/issues/27003
2025-05-08 21:12:54 +00:00
Marvin Hagemeister
c015b8affd
feat(unstable): support comments in lint plugin (#29189)
This PR adds support for comments in the AST for lint plugins.

- The `Program` node has a `comments` field pointing to an array of all
comments.
- `SourceCode.getAllComments()`: Returns all comments (same as
`program.comments`)
- `SourceCode.getCommentsBefore(node)`: Get all comments before this
Node
- `SourceCode.getCommentsAfter(node)`: Get all comments after this Node
- `SourceCode.getCommentsInside(node)`: Get all comments inside this
Node

ESLint docs:
-
https://eslint.org/docs/latest/extend/custom-rules#accessing-the-source-code
- https://eslint.org/docs/latest/extend/custom-rules#accessing-comments
2025-05-08 21:59:36 +02:00
Divy Srivastava
9d0a833e7b
fix: bump default @types/node version range to 22.15.14 (#28407)
Fixes https://github.com/denoland/deno/pull/28168#discussion_r1982740706

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2025-05-08 17:44:22 +00:00
Marvin Hagemeister
ed55e915a2
fix(node:http): ServerResponse.req not set (#29211)
This PR sets `ServerRsposne.req` properly. See
e38ce27f3c/lib/_http_server.js (L201)

Fixes https://github.com/denoland/deno/issues/29209
2025-05-08 18:42:04 +02:00
Divy Srivastava
e2047941f7
fix(ext/node): dgram multicast group membership (#29207)
Closes https://github.com/denoland/deno/issues/28421
Ref https://github.com/denoland/deno/issues/18324
2025-05-08 22:07:40 +05:30
Satya Rohith
5f139910a1
fix(ext/node): support http over unix sockets (#29182)
Closes https://github.com/denoland/deno/issues/20255

---------

Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2025-05-08 22:07:28 +05:30
Nayeem Rahman
59ffc1987c
fix(lsp): discard quick fixes importing /node_modules/ paths (#29194) 2025-05-08 17:08:10 +01:00
Nayeem Rahman
fc74cfe885
fix(lsp): use correct resolution kind when checking for no-export-npm (#29180) 2025-05-08 16:30:15 +01:00
Hajime-san
53b51113f5
fix(ext/canvas): createImageBitmap must ignore the Blob.type value (#28741)
fixes https://github.com/denoland/deno/issues/28723

I might misunderstood the spec. We should always sniff the MIME type
from the byte sequence when the input is `Blob`.
2025-05-08 15:57:28 +02:00
Divy Srivastava
f334f903ef
fix(ext/node): arrayBufferViewHasBuffer internal util (#28827) 2025-05-08 09:58:08 +05:30
Divy Srivastava
802826e54e
fix(ext/node): implement dgram setBroadcast (#29195) 2025-05-08 09:03:43 +05:30
Satya Rohith
19c5cca65e
fix(ext/process): suppress child process kill errors in onAbort handler (#29193)
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2025-05-07 05:26:58 +00:00
Divy Srivastava
5b037f1bed
fix(ext/node): getColorDepth for writable stdio streams (#29176)
Fixes https://github.com/denoland/deno/issues/28605
Fixes https://github.com/denoland/deno/issues/29175

` ../deno/target/debug/deno run -A npm:create-vue@latest DIR` works now
2025-05-06 21:42:14 +05:30
snek
842a07710f
fix: terminate control sock event with newline (#29184)
these should be newline terminated
2025-05-06 14:51:40 +00:00
nana4gonta
730f48b170
fix(ext/node): Support mTLS connections node compatibility (#28937)
Support for running Node.js code that requires mTLS connections on Deno.

Ref #21497 

Closes https://github.com/denoland/deno/issues/26472
Closes https://github.com/denoland/deno/issues/29148

---------

Co-authored-by: Satya Rohith <me@satyarohith.com>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2025-05-06 14:25:18 +05:30
Divy Srivastava
2edc70e679
fix(ext/node): Fix dns.lookup when promisified with options.all (#29167)
Fixes https://github.com/denoland/deno/issues/29074

Co-authored-by: Satya Rohith <me@satyarohith.com>
2025-05-06 09:16:00 +05:30
snek
f47c4ea5e7
feat(unstable): notify control sock on serving (#29173)
send an event over the control socket when deno.serve is listening.
2025-05-05 17:27:17 +00:00
Laurence Rowe
8b0b3e9567
chore(cli): test support --single-threaded v8 flag (#29099) 2025-05-02 10:33:26 -04:00