Commit graph

2210 commits

Author SHA1 Message Date
Nayeem Rahman
757ef462f7
fix(lint): resolve plugin paths from proper config specifier (#28752) 2025-04-04 19:30:27 +00:00
David Sherret
becf24c8c2
fix(compile): ensure atime/birthtime/mtime/ctime is set in vfs (#28731)
Co-authored-by: XYCode <xycode-xyc@outlook.com>
2025-04-04 09:50:44 -04:00
WWRS
dca9f7c0c3
fix(fmt): use non-zero exit code when formatting fails (#28523) 2025-04-04 14:48:47 +01:00
Yoshiya Hinosawa
5a0693c4db
test(ext/http): reduce flakiness of serve_test (#28739)
This PR reduces the flakiness of the case `req.body.getReader().read()
throws the error with reasonable error message`.

The case tries to cause BadResource error by premature disconnection
from the client, but it sometimes completes the request when the reading
of tcp data happens quickly. This PR tries to prevent that scenario by
adding some delays when reading & writing http messages.
2025-04-04 11:13:58 +05:30
Nayeem Rahman
67a1029b3b
fix(lsp): url_to_uri() encoding on windows (#28737) 2025-04-04 05:24:53 +00:00
snek
ebc4f82eca
feat: v8js metrics (#28592)
Implement
https://opentelemetry.io/docs/specs/semconv/runtime/v8js-metrics/
2025-04-03 15:18:54 +02:00
Yoshiya Hinosawa
e94066ff32
chore: add metadata to node compat test report (#28719) 2025-04-03 14:04:31 +09:00
David Sherret
3b52f1afd8
chore: fix flaky tests checking for ms (#28718) 2025-04-03 09:49:05 +05:30
Nayeem Rahman
a0d6411088
fix(lsp): format vscode-userdata schemed documents (#28706) 2025-04-02 11:55:08 +01:00
Divy Srivastava
e10101347c
perf: remote symbolicate stack traces (#28470)
Fixes #28136 
Closes #28415

Publish symcache to GCS and generate trace URL during panic.

```
============================================================
Deno has panicked. This is a bug in Deno. Please report this
at https://github.com/denoland/deno/issues/new.
If you can reliably reproduce this panic, include the
reproduction steps and re-run with the RUST_BACKTRACE=1 env
var set and include the backtrace in your report.

Platform: windows x86_64
Version: 2.2.5
Args: ["C:\Users\divy\.deno\bin\deno.exe"]

View stack trace at:
https://panic.deno.com/v2.2.5/aarch64-apple-darwin/gszD49_B4utrqB4vrrqBozirqB49prqBwjkwqBw_jBg31Cw5tCg5sDoo3pqB41sDgkkB
```

## Design

<img
src=https://github.com/user-attachments/assets/396d53cd-1fe7-4d88-9ecd-ea7b74a9a1ed
height=500>

Example:
`https://panic.deno.com/v2.2.3/aarch64-apple-darwin/g4couawkboxb4tbg9oHwqbw6a`

Stack walking and symbolicate code is at
https://github.com/denoland/panic/
2025-04-02 08:42:28 +05:30
Yoshiya Hinosawa
f2d73abdd7
fix(ext/node): better dns.lookup compatibility (#27936) 2025-04-02 11:38:07 +09:00
Nathan Whitaker
5e20982a30
feat(add/install): --npm and --jsr flags for deno add/install (#28666)
Flags to set the default registry for "bare" package names (no `npm:` or
`jsr:` prefix)
```
deno add --npm chalk react @types/react jsr:@std/fs
deno add --jsr @std/fs @std/async @std/fmt npm:chalk
```
2025-04-01 19:12:48 +00:00
Divy Srivastava
5bc4266101
fix(ext/node): sqlite handle empty blob being NULL (#28674)
Fixes https://github.com/denoland/deno/issues/28672
2025-04-01 13:50:26 +00:00
Jake Champion
0f40ee7ff4
fix(ext/node): support the optional previousValue parameter for process.cpuUsage() (#28550) 2025-04-01 20:48:09 +09:00
Nayeem Rahman
d91658b45e
refactor(lsp): separate document and module storage (#28469) 2025-03-31 22:25:27 +01:00
David Sherret
1e65d21071
fix: show referrer for Wasm module dependency errors (#28653) 2025-03-28 09:13:39 -04:00
Divy Srivastava
66e03a39a3
fix(ext/websocket): cancel in-flight handshake on close() (#28598)
Fixes https://github.com/denoland/deno/issues/25126

---------

Co-authored-by: Ryan Dahl <ry@tinyclouds.org>
2025-03-28 03:43:32 +00:00
Yoshiya Hinosawa
f42b39d2cf
ci: set NODE_SKIP_FLAG_CHECK=1 in node_compat_test workflow (#28642) 2025-03-28 12:22:41 +09:00
Yoshiya Hinosawa
2b4de21ea0
ci: reduce the concurrency number of parallel runs to navigator.hardwareConcurrency (#28639) 2025-03-27 13:47:47 +09:00
Yoshiya Hinosawa
6c2f7835c0
fix(ext/node): emit 'close' event on ServerResponse object when client aborted the request (#28601) 2025-03-27 10:45:04 +09:00
Yoshiya Hinosawa
460e511e59
test(ext/node): run all node tests (unchanged) daily, upload reports to dl.deno.land (#28629) 2025-03-27 09:53:38 +09:00
Ryan Dahl
7aaec6a5af
chore: upgrade some dependencies (#28627) 2025-03-26 09:49:51 -07:00
Nathan Whitaker
863ab45436
fix(npm): set up bin entries for package even if it's already downloaded (#28626)
Fixes #28617
2025-03-25 22:32:15 +00:00
David Sherret
31f6c05c9c
feat(unstable/run): ability to lazily load statically analyzable dynamic imports (#28593)
This allows lazily loading statically analyzable dynamic imports when
not type checking.
2025-03-25 11:38:45 -04:00
David Sherret
c239d37d20
fix(npm): resolve non-version matching peer deps and warn instead (#28616)
This improves peer dependency resolution to be more relaxed and resolve
non-version matching ancestors similar to pnpm rather than introducing
duplicate dependencies. Deno will warn when this occurs. In the future,
we should look into introducing an option to have Deno error in this
scenario.
2025-03-25 11:10:13 -04:00
Divy Srivastava
52d528d21d
fix(ext/node): mkdir() parse file mode (#28609)
Fixes https://github.com/denoland/deno/issues/28604
2025-03-25 09:33:41 +05:30
Yoshiya Hinosawa
d07b7ea6f6
fix(ext/node): propagate 'close' event of IncomingMessage to Socket (#28582) 2025-03-24 10:56:34 +09:00
Gene Parmesan Thomas
5b5e93ff42
fix(ext/crypto): support cross-curve ECDSA sign and verify (#28574)
Fixes #20198

The Web Crypto implementation has been artificially limiting `ECDSA` to
only the “recommended” curve/hash pairs (`P‑256/SHA‑256` and
`P‑384/SHA‑384`). The underlying `ring` APIs enforced those pairs, so
any attempt to verify signatures produced with different digests (e.g.
`P‑384` with `SHA‑256`) failed with a “Not implemented” error.

This PR rewires the ECDSA sign/verify path to use RustCrypto’s `ecdsa`
crate instead of `ring`, computes digests separately, and uses the
prehash signing/verifying API so that any `sha1`, `sha256`, `sha384` or
`sha512` can be used with either curve. The JS `SubtleCrypto` bindings
were updated to drop the hard coded checks, and a new unit test
exercises `P‑384 + SHA‑256` to ensure non‑matching combos now round
trip.

---------

Signed-off-by: Gene Parmesan Thomas <201852096+gopoto@users.noreply.github.com>
Signed-off-by: gopoto <201852096+gopoto@users.noreply.github.com>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2025-03-22 17:17:44 +00:00
Divy Srivastava
48ccb67131
chore(ext/http): add "legacy_abort" runtime flag (#28371)
Deno.serve `Request` abort signals are aborted by default even when it
is finished successfully. This PR gates this behavior behind the
"legacy_abort" which is the default right now.

Turning the `no_legacy_abort` runtime option on is a **breaking change**
and will only abort request signals when there is a failure, thereby
cannot be used to determine if the request finished. This aligns with
`fetch` API.

Ref https://github.com/denoland/deno/issues/27005
2025-03-22 08:13:57 +05:30
snek
27363d389d
refactor: internal logging utility (#28567)
`import.meta.log` enables basic log filtering through
`env_logger`/`DENO_LOG`. Log levels are supported, and filenames can
also be used. for example: `DENO_LOG=ext:deno_http::00_serve.ts=warn`
2025-03-21 12:17:50 +01:00
David Sherret
94c9681385
feat(unstable): support using a local copy of npm packages (#28512)
This adds support for using a local copy of an npm package.

```js
// deno.json
{
  "patch": [
    "../path/to/local_npm_package"
  ],
  // required until Deno 2.3, but it will still be considered unstable
  "unstable": ["npm-patch"]
}
```

1. Requires using a node_modules folder.
2. When using `"nodeModulesDir": "auto"`, it recreates the folder in the
node_modules directory on each run which will slightly increase startup
time.
3. When using the default with a package.json (`"nodeModulesDir":
"manual"`), updating the package requires running `deno install`. This
is to get the package into the node_modules directory of the current
workspace. This is necessary instead of linking because packages can
have multiple "copy packages" due to peer dep resolution.

Caveat: Specifying a local copy of an npm package or making changes to
its dependencies will purge npm packages from the lockfile. This might
cause npm resolution to resolve differently and it may end up not using
the local copy of the npm package. It's very difficult to only
invalidate resolution midway through the graph and then only rebuild
that part of the resolution, so this is just a first pass that can be
improved in the future. In practice, this probably won't be an issue for
most people.

Another limitation is this also requires the npm package name to exist
in the registry at the moment.
2025-03-21 03:09:57 +00:00
snek
d4ee94962f
feat: upgrade deno_core and V8 (#28562)
includes V8 upgrade to 135
2025-03-21 00:19:44 +01:00
Yoshiya Hinosawa
6420e50cd0
fix(ext/node): add util.getCallSites (#28546)
This PR adds
[getCallSites](https://nodejs.org/api/util.html#utilgetcallsitesframecount-options)
API to "node:util".

This unblocks https://github.com/denoland/deno/issues/28318. Currently
the task is blocked by the unavailability of `util.getCallSites` because
it's used in
[`test/common/index.js`](8846b5392f/test/common/index.js (L31))
2025-03-20 21:39:04 +00:00
Lach
7ac8130854
feat(otel): basic event recording (#28552) 2025-03-20 13:58:08 -07:00
Divy Srivastava
fb3df15fc8
fix(ext/node): restrict ATTACH DATABASE statement (#28513)
Disable `ATTACH DATABASE` statement in `node:sqlite` since it is not
supervised by Deno's permission system
2025-03-18 22:03:35 +05:30
Yoshiya Hinosawa
8f7d56cf40
chore: upgrade node test to v23.9.0 (#28458) 2025-03-18 21:57:04 +09:00
Paolo Barbolini
1516e3ef58
refactor: reduce dependency on futures crate (#28515)
Over time many `futures` APIs have been stabilized in `std`. This
migrates most uses to the std variants.
2025-03-17 14:14:19 +00:00
letianpailove
aee38ab6e3
docs: fix a typo in specs README.md (#28524) 2025-03-17 17:46:22 +09:00
Divy Srivastava
c638f9ade1
fix(ext/node): reset statement immidiately in run() (#28506)
Fixes https://github.com/denoland/deno/issues/28492
2025-03-15 20:14:24 +05:30
Nayeem Rahman
30aa94010a
fix(lsp): auto-import from npm package exports with manual node_modules (#28414) 2025-03-13 20:29:17 +00:00
Leo Kettmeir
28e5c388b4
feat(otel): span context propagators (#28460)
Co-authored-by: Luca Casonato <hello@lcas.dev>
2025-03-13 16:32:45 +01:00
Yoshiya Hinosawa
dcfaba0f3a
fix(otel/unstable): trace error cases of fetch (#28480) 2025-03-13 17:47:00 +09:00
Yoshiya Hinosawa
c9930c591a
feat(unstable/otel): add otel tracing to node:http.request (#28463) 2025-03-13 17:43:37 +09:00
David Sherret
348900b8b7
fix(check): support typesVersions in npm dependencies (#28468) 2025-03-11 11:23:30 -04:00
Yoshiya Hinosawa
6ddf0f2f5f
test(otel): add test of otel integration of node http server (#28461) 2025-03-11 23:11:19 +09:00
David Sherret
9ea4f82643
fix(check): support types@ export conditions (#28450) 2025-03-10 13:20:48 -04:00
Nayeem Rahman
0ef3f6ba88
perf(lsp): lazily start the ts server (#28392) 2025-03-06 18:05:25 +00:00
Bartek Iwańczuk
e6637ab6f1
chore(internal): reland eszip changes (#28294)
Co-authored-by: David Sherret <dsherret@gmail.com>
2025-03-05 22:25:56 +00:00
David Sherret
2292eb1c92
fix(node): support re-exported esm modules in cjs export analysis (#28379)
Adds support for re-exporting an ES module from a CJS one and then
importing the CJS module from ESM. Also fixes a bug where require esm
wasn't working in deno compile.
2025-03-05 16:37:46 -05:00
Nathan Whitaker
0c0757fe66
fix(install): exclude npm workspace packages from graph roots in install (#28401)
Fixes #28374.
2025-03-05 20:41:05 +00:00