0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-13 01:06:00 -05:00
Commit graph

1479 commits

Author SHA1 Message Date
Divy Srivastava
14081fb953
fix(ext/crypto): export private x25519 JWK key (#27828)
Ref https://github.com/denoland/deno/issues/26431
2025-01-30 15:34:56 +01:00
Divy Srivastava
6fe2341897
fix(ext/node): implement X509Certificate#checkHost (#27821)
Fixes https://github.com/denoland/deno/issues/27619
2025-01-30 15:34:56 +01:00
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
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
Kenta Moriuchi
77f6bd0db3
chore: remove LSP global symbols count tests (#27806)
Closes #23102
2025-01-30 15:34:54 +01:00
David Sherret
20a910e5f8
fix(node): align type stripping in node_modules error message with Node (#27809) 2025-01-30 15:34:54 +01:00
Kenta Moriuchi
84429352da
fix(types): Deno.readDirSync's type returns an IteratorObject (#27805) 2025-01-30 15:34:54 +01:00
Yoshiya Hinosawa
134f5e1282
chore: update ensure_registry_files_local to handle scoped packages (#27801) 2025-01-30 15:34:54 +01:00
Yoshiya Hinosawa
d06e41ea9d
chore: trim registry.json files in tests/registry/npm (#27798) 2025-01-30 15:34:53 +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
Luca Casonato
e01719ba60
fix(publish): unfurl sloppy imports in d.ts files and type imports (#27793)
Fixes a bug discovered while trying to publish a package with .js +
.d.ts with sloppy imports.
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
snek
9ddb8315a5
feat(unstable): support https otlp endpoints (#27743)
Support HTTPS protocol for otel exporting. Includes support for
`OTEL_EXPORTER_OTLP_CERTIFICATE`, `OTEL_EXPORTER_OTLP_CLIENT_KEY`, and
`OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`

Fixes: https://github.com/denoland/deno/issues/27703
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
Ian Bull
0589e7d73f
chore: note in flags output that unstable is deprecated (#27334) 2025-01-30 15:34:51 +01:00
ZYSzys
ddaf2955c4
fix(ext/node): add FileHandle#sync (#27677)
(cherry picked from commit 4e0bf4b093)
2025-01-22 00:24:24 +01:00
Dimitris Apostolou
96feacd9b8
fix(deps): update yanked crates (#27512)
Update yanked crates `bytemuck`, `futures-util`, `pest`, `pest_derive`
and `url`.

(cherry picked from commit 6ba99be819)
2025-01-22 00:24:23 +01:00
David Sherret
a4476b4677
fix(install/global): remove importMap field from specified config file (#27744)
Closes https://github.com/denoland/deno/issues/27734

(cherry picked from commit 0d3d4f5466)
2025-01-22 00:24:23 +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
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
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
Nathan Whitaker
5ed8092948
fix(outdated): Use latest tag even when it's the same as the current version (#27699)
Fixes https://github.com/denoland/deno/issues/27696.

Just a `>` that should've been a `>=`. Also made sure to filter out
deprecated versions.
2025-01-16 23:32:14 +01:00
Nathan Whitaker
4fb82de38e
fix(outdated): retain strict semver specifier when updating (#27701)
Fixes https://github.com/denoland/deno/issues/27697

If it's a strict bound (e.g. `1.0.0` as opposed to `^1.0.0` or other),
retain the strictness when we update
2025-01-16 23:32:13 +01:00
Nathan Whitaker
56fd15d92e
fix(check/lsp): fix bugs with tsc type resolution, allow npm packages to augment ImportMeta (#27690)
Fixes #26224.
Fixes #27042.

There were three bugs here:
- we were only resolving `/// <reference types` directives starting with
`npm:`, which meant we failed to resolve bare specifiers (this broke the
`/// <reference types="vite/client">` directive in most of the vite
templates)
- the `$node_modules` workaround caused us to fail to read files for
tsc. For instance tsc would construct new paths based on specifiers
containing `$node_modules`, and since we hadn't created those we weren't
mapping them back to the original (this broke some type resolution
within `vite/client`)
- our separation of `ImportMeta` across node and deno globals in tsc
meant that npm packages couldn't augment `ImportMeta` (this broke
`vite/client`'s augmentation to add `import.meta.env` and others)


After this, the only remaining issue in the vanilla vite template is our
error on `/vite.svg` (which is an ambient module), and I'll look into
that next.
2025-01-16 23:32:13 +01:00
Nathan Whitaker
d2a3319939
fix(check/lsp): correctly resolve compilerOptions.types (#27686)
Fixes https://github.com/denoland/deno/issues/27062

In the LSP we were passing `npm` specifiers to TSC as roots, but TSC
needs fully resolved specifiers (like the actual file path).

In `deno check` we were often excluding the specifiers entirely from the
roots.

In both cases, we need to resolve the specifiers fully and then pass
them to tsc
2025-01-16 23:32:12 +01:00
Masato Yoshioka
928200fcce
fix(ext/node): add chown method to FileHandle class (#27638) 2025-01-16 23:32:12 +01:00
David Sherret
8a75fade0b
chore: fix ci by removing remote server dependent test (#27674)
This was using the lockfile and esm.sh changed breaking the lockfile. We
could pin to a specific esm.sh version, but ideally we shouldn't have
the test suite dependent on remote servers.
2025-01-16 23:32:11 +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
Marvin Hagemeister
526c66dd4e
feat(unstable): refactor js lint plugin AST (#27615)
This PR changes the underlying buffer backed AST format we use for
JavaScript-based linting plugins. It adds support for various new types,
makes traversal code a lot easier and is more polished compared to
previous iterations.

Here is a quick summary (in no particular order):

- Node prop data is separate from traversal, which makes traversal code
so much easier to reason about. Previously, it was interleaved with node
prop data
- spans are in a separate table as well, as they are rarely needed.
- schema is separate from SWC conversion logic, which makes 
- supports recursive plain objects
- supports numbers
- supports bigint
- supports regex
- adds all SWC nodes

Apologies, this is kinda a big PR, but it's worth it imo.

_Marking as draft because I need to update some tests tomorrow._
2025-01-16 23:32:11 +01:00
David Sherret
f6820dec52
refactor: deno_config 0.45 (#27660) 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
David Sherret
d5d1353084
fix(compile): store embedded fs case sensitivity (#27653) 2025-01-16 23:32:10 +01:00
Nayeem Rahman
6fc6f5ebee
fix(lsp): handle pathless untitled URIs (#27637) 2025-01-16 23:32:09 +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
Nathan Whitaker
53d7f039ef
fix(lsp/check): don't resolve unknown media types to a .js extension (#27631)
Fixes https://github.com/denoland/deno/issues/25762. Note that some of
the things in that issue are not resolved (vite/client types not working
properly which has other root causes), but the wildcard module
augmentation specifically is fixed by this.

We were telling TSC that files with unknown media types had an extension
of `.js`, so the ambient module declarations weren't applying. Instead,
just don't resolve them, so the ambient declaration applies.
2025-01-16 23:32:09 +01:00
David Sherret
95c130baa1
fix(regression): show bare-node-builtin hint when using an import map (#27632) 2025-01-16 23:32:09 +01:00
Nayeem Rahman
2a508da4d4 fix(lsp): use verbatim specifier for URL auto-imports (#27605) 2025-01-09 15:19:21 -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
f813ab947e fix(ext/websocket): Fix close code without reason (#27578)
Fixes https://github.com/denoland/deno/issues/27566

The close code wasn't sent if reason was None, defaulting to 1005. This
patch allows sending close code without reason.
2025-01-09 15:19:20 -05:00
Marvin Hagemeister
6b9f627d73 fix(lint): fix single char selectors being ignored (#27576)
The selector splitting code that's used for JS linting plugins didn't
properly account for selectors being a single character. This can happen
in the case of `*`.

Instead of comparing against the length, we'll now check if the
remaining string portion is not empty, which is more robust. It also
allows us to detect trailing whitespace, which we didn't before.
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
Yoshiya Hinosawa
ee5e1db138 test(ext/node): disable flaky dgram tests (#27549)
Closes #27316
2025-01-09 15:19:19 -05:00
Luca Casonato
00719ecef7 feat(unstable): no config npm:@opentelemetry/api integration (#27541)
After this PR, one does not need to import `jsr:@deno/otel` anymore.
2025-01-09 15:19:19 -05:00
snek
5eff7df78d refactor(quic): introduce endpoint, 0rtt, cleanup (#27444)
A QUIC endpoint is a UDP socket which multiplexes QUIC sessions, which
may be initiated in either direction. This PR exposes endpoints and
moves things around as needed.

Now that endpoints can be reused between client connections, we have a
way to share tls tickets between them and allow 0rtt. This interface
currently works by conditionally returning a promise.

Also cleaned up the rust op names, fixed some lingering problems in the
data transmission, and switched to explicit error types.
2025-01-09 15:19:19 -05:00
Luca Casonato
2a54c08182 feat(unstable): replace SpanExporter with TracerProvider (#27473) 2025-01-09 15:19:18 -05:00