1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00
Commit graph

12909 commits

Author SHA1 Message Date
Yoshiya Hinosawa
350d9dce41
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
2024-12-19 17:39:20 +09:00
denobot
55d345baed
chore: release ext/ crates (#27419)
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-12-19 03:39:02 +01:00
Filip Stevanovic
8fc4796ed5
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
2024-12-18 14:52:37 -08:00
Sean McArthur
b1c685f4b7
fix(ext/fetch): retry some http/2 errors (#27417)
This brings some of the HTTP/2 retry behavior from reqwest to
`ext/fetch`. It will retry very specific HTTP/2 errors once, if the body
is able to be used again.

Closes #27332
2024-12-18 23:04:29 +01:00
snek
ae74407412
chore: upgrade libc (#27414)
need to do this for quic and they deprecated this method in libc without
actually providing an alternative so :/
2024-12-18 14:47:21 +01:00
Bartek Iwańczuk
8590aa9cee
fix(ext/node): sort list of built-in modules alphabetically (#27410) 2024-12-18 14:44:53 +01:00
Bartek Iwańczuk
14e4064986
fix(task): properly handle task name wildcards with --recursive (#27396)
This commit fixes `deno task` by checking if the provided
task name actually has a wildcard char ("*").

Previously, if the "--recursive" flag was passed, the task name
was treated as a regex, which lead to a situation where exact task
name resulted in a regex that matched all tasks with the specific
prefix.

This commit fixes it, by checking if the provided task name, is an exact
name, or is it a wildcard match.

Closes https://github.com/denoland/deno/issues/27370
Closes https://github.com/denoland/deno/issues/27401
Closes https://github.com/denoland/deno/issues/27408
2024-12-18 03:32:37 +01:00
Nathan Whitaker
9d7174e434
fix(outdated): ensure "Latest" version is greater than "Update" version (#27390)
Fixes #27038.

Previously, for NPM packages the latest version was the version with the
"latest" tag. For JSR packages, the latest version was the greatest
version that matched a `*` version requirement. Unfortunately, that
doesn't work well with pre-release versions.

This PR changes it so that the latest version is always > the currently
requested version.
For NPM: if "latest" tag > current then "latest" tag; otherwise the
greatest version that is >= current
For JSR: greatest version >= current

This is the most reasonable behavior I could come up with. For example,

```
versions:
2.0.0-beta.2
2.0.0-beta.1
1.0.0 => "latest" tag

with a version req `^2.0.0-beta.1`

previously:
"Update" column => 2.0.0-beta.2
"Latest" column => 1.0.0

now:
"Update" column => 2.0.0-beta.2
"Latest" column => 2.0.0-beta.2
```
2024-12-17 23:56:03 +00:00
Nayeem Rahman
2820ba1e22
fix(lsp): include "node:" prefix for node builtin auto-imports (#27404) 2024-12-17 18:55:17 +00:00
Bartek Iwańczuk
d632ec9e70
fix: deno_resolver crate without 'sync' feature (#27403) 2024-12-17 18:36:32 +01:00
denobot
ee9f24cdcd
chore: release "deno_*" crates (#27402)
Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-12-17 17:03:58 +01:00
Yusuke Tanaka
c56274285d
feat(permission): separate PermissionDeniedError to Retryable and Fatal (#27282)
This commit separates `PermissionDeniedError` into two kinds;
`Retryable` and `Fatal`.

The existing `PermissionDeniedError`s fall into `Retryable`, since
permission errors can be resolved by retrying with proper permissions in
Deno CLI. The motivation of adding `Fatal` is that in some environments
some operations are just disabled; for instance, in Deno Deploy, any
write operations to filesystem can never be granted, in which case
`Fatal` kind becomes useful.

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-12-17 11:45:18 +09:00
Bartek Iwańczuk
f9add94e17
refactor(lint): renames and code flattening (#27386)
Working on loading plugin configuration for
https://github.com/denoland/deno/pull/27203
I encountered a lot of complexity, so did some drive-by cleanups to make
it easier to grok the code and have fewer duplicate names.
2024-12-17 01:35:26 +00:00
David Sherret
59f263409e
refactor: use capacity_builder for writing deno compile data section (#27393) 2024-12-16 19:20:53 -05:00
David Sherret
95928c46eb
refactor: extract out FileFetcher to deno_cache_dir (#27263) 2024-12-16 23:39:40 +00:00
Nayeem Rahman
358bf566c2
fix(lsp): respect "typescript.suggestionActions.enabled" setting (#27373) 2024-12-16 17:25:49 +00:00
Divy Srivastava
f9f5a12a16
fix: upgrade deno_doc to 0.161.3 (#27377)
upgrades itoa requirement to `1.0.14`. needed for #27308
2024-12-16 10:12:07 -05:00
David Sherret
75945cbb86
fix(compile): display embedded file sizes and total (#27360)
Merging as a fix so that LTS gets this as it's a useful diagnostic tool.

The 1MB unique is because we deduplicate files that we store (ex. some
packages have the same file multiple times so we store that once).
2024-12-16 09:37:39 -05:00
Divy Srivastava
50871b2aa3
fix: FastString v8_string() should error when cannot allocated (#27375)
Upgrades deno_core to 0.326.0
2024-12-16 13:51:49 +00:00
Bartek Iwańczuk
7949f53cab
refactor: add 'sync' feature to deno_resolver crate (#27357) 2024-12-15 09:18:04 +01:00
David Sherret
39f7845d4e
ci: restore cargo home cache before rust install (#27356)
I think this makes more sense. We'll see if it makes it faster. It was
taking 1m 22s to install rust.
2024-12-14 11:38:19 -05:00
Nathan Whitaker
9d315f27ed
fix(outdated): support updating dependencies in external import maps (#27339)
Fixes #27331.

The support for it was already in `outdated`, but forgot to wire up the
updating part

Needs #27337
2024-12-13 12:25:05 -08:00
Nathan Whitaker
3946956b8c
fix(lockfile): include dependencies listed in external import map in lockfile (#27337) 2024-12-13 10:19:37 -08:00
Nayeem Rahman
32b57f7b82
fix(lsp): sql and component file formatting (#27350) 2024-12-13 14:14:55 +00:00
Yusuke Tanaka
369d68c848
chore: bump hyper-util to 0.1.10 (#27330)
This commit upgrades hyper-util to 0.1.10, the current latest version.

This also removes exact version specifier in hyper-util to allow library
consumers (e.g. one who wants to use `deno_fetch` as a dependency) to
decide which version to use as long as its version is 0.1.z where z >=
10.

Specifically, hyper-util 0.1.10 is required by Deno Deploy to tweak
`http2_max_header_list_size` (see [hyper-util v0.1.10
changelog](https://github.com/hyperium/hyper-util/releases/tag/v0.1.10))
2024-12-13 13:43:03 +01:00
Bartek Iwańczuk
05de351e9a
Revert "ci: use self-hosted mac arm runner only on main branch (#27347)" (#27354)
This reverts commit 3ddbea62c2.

Looks like VMs are now slightly different than before and require
additional setup. Reverting for now to unblock `main` branch.
2024-12-13 12:42:10 +00:00
Kenta Moriuchi
bf888d942a
feat(ext/web): add [[ErrorData]] slot to DOMException (#27342) 2024-12-13 13:22:29 +01:00
Bartek Iwańczuk
3ddbea62c2
ci: use self-hosted mac arm runner only on main branch (#27347)
We can have 2 concurrent runs now, so
it's worth trying it out on `main`.
2024-12-13 03:31:07 +01:00
David Sherret
e46f42d052
ci: try fix cache (#27348) 2024-12-13 01:12:13 +00:00
Satya Rohith
960776cd32
fix(ext/node): support createConnection option in node:http.request() (#25470)
This commit changes "node:http" module to add support
for the "createConnection" option when the "request()"
API is called.


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

---------

Signed-off-by: Yoshiya Hinosawa <stibium121@gmail.com>
Signed-off-by: Satya Rohith <me@satyarohith.com>
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: crowlkats <crowlkats@toaxl.com>
2024-12-13 01:44:42 +01:00
David Sherret
a63f8452e9
chore: mark ./tools/release/npm/build.ts as executable (#27349) 2024-12-13 00:30:21 +00:00
David Sherret
f4f64cbe2d
fix(npm): search node_modules folder for package matching npm specifier (#27345) 2024-12-12 23:58:14 +00:00
David Sherret
b7564636b5
chore: add npm distribution at deno package (#27346) 2024-12-12 23:43:43 +00:00
David Sherret
4cfa34052d
fix(compile): analyze modules in directory specified in --include (#27296)
I ended up changing the file system implementation to determine
its root directory as the last step of building it instead of being the
first step which makes it much more reliable.
2024-12-12 18:07:35 +00:00
snek
5f8be055db
refactor(unstable): otel configuration (#27333)
split up otel config into user configurable and runtime configurable
parts. user configurable part is now set via env vars parsed according
to the otel spec. otel is now enabled via `OTEL_DENO=true`, and
`--unstable-otel` only acts as a guard.

Fixes: https://github.com/denoland/deno/issues/27273
2024-12-12 09:17:26 +01:00
David Sherret
c6fa62896d
fix(compile): output contents of embedded file system (#27302) 2024-12-11 09:40:50 -05:00
denobot
9df6be8916
chore: forward v2.1.4 release commit to main (#27329)
This is the release commit being forwarded back to main for 2.1.4

Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-12-11 12:47:31 +00:00
Nathan Whitaker
6f506208f6
feat(unstable): support caching npm dependencies only as they're needed (#27300)
Currently deno eagerly caches all npm packages in the workspace's npm
resolution. So, for instance, running a file `foo.ts` that imports
`npm:chalk` will also install all dependencies listed in `package.json`
and all `npm` dependencies listed in the lockfile.

This PR refactors things to give more control over when and what npm
packages are automatically cached while building the module graph.

After this PR, by default the current behavior is unchanged _except_ for
`deno install --entrypoint`, which will only cache npm packages used by
the given entrypoint. For the other subcommands, this behavior can be
enabled with `--unstable-npm-lazy-caching`


Fixes #25782.

---------

Signed-off-by: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com>
Co-authored-by: Luca Casonato <hello@lcas.dev>
2024-12-10 18:24:23 -08:00
Bartek Iwańczuk
dd42a64c43
refactor(lint): manage schema files for linter in Deno repo (#27324)
This commit provides schema files for lint rules and lint tags
in this repo instead of pulling them from `deno_lint` repository.

A unit test was added to ensure all available rules are listed
in the schema file. A unit test for tags can be done once 
https://github.com/denoland/deno/pull/27162 lands.
2024-12-11 02:06:04 +01:00
Bartek Iwańczuk
7c8b55b584
fix(outdated): error when there are no config files (#27306)
This commit changes "deno outdated" subcommand to
error out if run in a directory that has no config file 
(including parent directories). This matches
"pnpm" behavior.

Also added tests for filtering that yields no results,
to ensure that it exists cleanly, that also matches "pnpm"
behavior.

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

---------

Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2024-12-10 23:25:29 +00:00
ingalless
fe1be715d8
chore(tests): Deprecate remaining usages of itest in check tests (#26962)
This PR progresses #22907 by deprecating the usage of `itest` in
`tests/integration/check_tests.rs`
2024-12-10 23:41:24 +01:00
David Sherret
4ab668ed06
fix(lint): do not error providing --allow-import (#27321)
Closes https://github.com/denoland/deno/issues/27318
2024-12-10 20:55:28 +00:00
Bartek Iwańczuk
7bab83d6c0
fix(outdated): respect --quiet flag for hints (#27317) 2024-12-10 18:22:42 +00:00
David Sherret
21a9e2d42b
perf(compile): improve FileBackedVfsFile (#27299) 2024-12-10 11:13:14 -05:00
Mohammad Sulaiman
59dd5d21d4
fix: replace the @deno-types with @ts-types (#27310) 2024-12-10 09:52:13 -05:00
Bartek Iwańczuk
c3af09821a
fix(outdated): show a suggestion for updating (#27304)
Show command to update dependencies based on the output
of "deno outdated" command.

Closes https://github.com/denoland/deno/issues/27256
2024-12-10 14:41:16 +01:00
David Sherret
94c7653d0e
fix(compile): correct read length for transpiled typescript files (#27301)
Extracted out of https://github.com/denoland/deno/pull/27296/files

It's hard to test for this, but a test for this is in that other PR.
2024-12-09 20:11:52 -05:00
David Sherret
d99b2d6f7d
chore: reduce allocations in a few places (#27288)
Probably doesn't have much impact. I didn't measure any of these, but
reducing allocations should always be good.
2024-12-09 19:28:53 -05:00
snek
1c0f236923
fix(unstable): don't unwrap optional state in otel (#27292)
otel global state may not be initialized if otel is not enabled, so bail
out instead of panicking.

Fixes: https://github.com/denoland/deno/issues/27272
2024-12-09 22:33:07 +01:00
David Sherret
da3a676d1c
fix: do not error when subpath has an @ symbol (#27290)
Closes https://github.com/denoland/deno/issues/27243
2024-12-09 13:19:08 -08:00