1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-22 15:10:44 -05:00
Commit graph

1451 commits

Author SHA1 Message Date
Ian Bull
aa100070a4
refactor(ext/fs): align error messages (#25414)
Aligns the error messages in the ext/fs folder to be in-line with the
Deno style guide.
2024-12-05 23:03:51 +01:00
Marvin Hagemeister
da64aa9e6d
fix(node/timers): error when passing id to clearTimeout/clearInterval (#27130)
As pointed out in https://github.com/denoland/deno/issues/27126 we used
a variable which could potentially be of type `number` instead of the
`Timeout` class instance. Ensure that we're always setting `_destroyed`
on the class instead instead.

Fixes https://github.com/denoland/deno/issues/27126
2024-11-28 15:47:29 +01:00
Luca Casonato
4a0bbd0a71
fix: support bun specifiers in JSR publish (#24588)
Fixes https://github.com/denoland/deno/issues/26989

---------

Co-authored-by: Nathan Whitaker <nathan@deno.com>
2024-11-28 15:47:29 +01:00
Divy Srivastava
52bcd35d9d
fix(ext/node): tls.connect socket upgrades (#27125)
Fixes https://github.com/denoland/deno/issues/27087
Fixes https://github.com/denoland/deno/issues/26685
Fixes https://github.com/denoland/deno/issues/26660
2024-11-28 15:47:29 +01:00
Nathan Whitaker
27757e83e0
fix(info): resolve bare specifier pointing to workspace member (#27020)
Fixes https://github.com/denoland/deno/issues/26721

Previously, we were applying only the import map, which would result in
`@scope/foo` expanding to (e.g.) `jsr:@scope/foo@1.0.0`. Since that
didn't exist it would error and fail to resolve.
2024-11-28 15:47:29 +01:00
David Sherret
cfd13b0f87
chore: fix lint step due to node compat test changes (#27111)
Seems due to merging this:
https://github.com/denoland/deno/actions/runs/12052779514/job/33606893423
2024-11-28 15:47:28 +01:00
Marvin Hagemeister
9edce4db77
fix(node/http): casing ignored in ServerResponse.hasHeader() (#27105)
We didn't respect casing when checking if a HTTP header is present in
Node's `ServerResponse.hasHeader()`. This lead to us returning incorrect
results when the header was present. Koa assumed that the `Content-Type`
header wasn't present when it actually was and defaulted to a different
`Content-Type` value.

Fixes https://github.com/denoland/deno/issues/27101
2024-11-28 15:47:28 +01:00
Bartek Iwańczuk
a24ce0ec93
fix(task): strip ansi codes and control chars when printing tasks (#27100) 2024-11-28 15:47:28 +01:00
Yoshiya Hinosawa
f64e176d69
test(ext/node): enable parallel/test-fs-promises-file-handle-stat.js (#27074) 2024-11-28 15:47:28 +01:00
David Sherret
bb3e918f4a
feat(unstable): repurpose --unstable-detect-cjs to attempt loading more modules as cjs (#27094)
This resurrects the `--unstable-detect-cjs` flag (which became stable),
and repurposes it to attempt loading .js/.jsx/.ts/.tsx files as CJS in
the following additional scenarios:

1. There is no package.json
1. There is a package.json without a "type" field

Also cleans up the implementation of this in the LSP a lot by hanging
`resolution_mode()` off `Document` (didn't think about doing that until
now).
2024-11-28 15:47:28 +01:00
Divy Srivastava
8171b761c2
perf(ext/webstorage): use object wrap for Storage (#26931)
![image](https://github.com/user-attachments/assets/3f86e2fd-9026-4965-8f3b-512423362f1e)


Depends on:
- https://github.com/denoland/deno_core/pull/970
- https://github.com/denoland/deno_core/pull/976
- https://github.com/denoland/deno_core/pull/980
- https://github.com/denoland/deno_core/pull/981

---------

Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-11-28 15:47:27 +01:00
Leo Kettmeir
dbb6263c18
fix(tools/doc): HTML resolve main entrypoint from config file (#27103)
Fixes #26901
2024-11-28 15:47:27 +01:00
Marvin Hagemeister
317aa50476
fix(node/fs): add missing stat path argument validation (#27086)
We didn't validate the `path` argument that's passed to `fs.stat()` and
`fs.statSync()` which lead to wrong errors being thrown. The
`@rollup/plugin-node-resolve` code calls it with `undefined` quite a lot
which lead to `nitro` and `nuxt` failing.

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

---------

Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-11-28 15:47:27 +01:00
Leo Kettmeir
6f69f36924
chore(lint): add .out file reference checker (#27078)
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-11-28 15:47:27 +01:00
Bartek Iwańczuk
e01df2510c
fix(task): handle carriage return in task description (#27099)
Ref https://github.com/denoland/deno/pull/27069#discussion_r1857702814
2024-11-28 15:47:27 +01:00
David Sherret
461c9a8898
chore: fix flaky specs::publish::npm_workspace_jsr_pkg_with_npm_dep::dep_and_workspace_dep (#27098)
Closes https://github.com/denoland/deno/issues/27097
2024-11-28 15:47:27 +01:00
Kenta Moriuchi
2ee6b1a732
fix(streams): reject string in ReadableStream.from type (#25116)
WebIDL `async iterable<T>` type rejects `string`

Ref https://github.com/whatwg/webidl/pull/1397, #24623
2024-11-28 15:47:26 +01:00
David Sherret
8cd9fa6aae
fix(node): correct resolution of dynamic import of esm from cjs (#27071)
Ensures a dynamic import in a CJS file will consider the referrer as an import for node resolution.

Also adds fixes (adds) support for `"resolution-mode"` in TypeScript.
2024-11-28 15:47:26 +01:00
Leo Kettmeir
525d231c84
fix(ext/webgpu): normalize limits to number (#27072)
Fixes #22029
2024-11-28 15:47:26 +01:00
Divy Srivastava
f34e76a300
fix(ext/fetch): don't throw when bodyUsed inspect after upgrade (#27088)
Fixes https://github.com/denoland/deno/issues/27083
2024-11-28 15:47:26 +01:00
David Sherret
389cde8326
chore(node/tests): increase tolerance of timers test on CI (#27077)
Increases the tolerance of the interval test on the CI.
2024-11-28 15:47:25 +01:00
Yoshiya Hinosawa
f88057643f
chore: update node_compat setup script, show remaining percentage (#27053) 2024-11-28 15:47:25 +01:00
Nayeem Rahman
ec81cbbd86
fix(lsp): support task object notation for tasks request (#27076) 2024-11-28 15:47:25 +01:00
Bartek Iwańczuk
594f59dc1d
fix(task): handle multiline descriptions properly (#27069)
Closes https://github.com/denoland/deno/issues/27049
2024-11-28 15:47:25 +01:00
David Sherret
467bbedf06
fix(check): support jsdoc @import tag (#26991)
* https://github.com/denoland/deno_graph/pull/544

Closes https://github.com/denoland/deno/issues/25516
2024-11-28 15:47:24 +01:00
David Sherret
3a887225ca
fix(compile): do not error embedding same symlink via multiple methods (#27015)
Closes https://github.com/denoland/deno/issues/27012
2024-11-28 15:47:24 +01:00
Espen Hovlandsdal
c380447de7
Merge commit from fork
* fix: drop auth headers, cookies on redirect to different origin

* refactor: destructure StringPrototypeEndsWith

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-11-28 15:47:24 +01:00
ctrl+d
60760abd87
fix(runtime/ops): Fix watchfs remove event (#27041)
Fix related to #26906. 
Currently, if a file is removed, no event is emitted because the file
path no longer exists. As a result, [this
check](12b377247b/runtime/ops/fs_events.rs (L149))
returns false.

With this PR, an additional check is introduced to verify if the file
exists. If the file does not exist, a custom "remove" event is emitted.
This change is necessary because, based on tests conducted on macOS and
Linux (Ubuntu 24.04.1 LTS), Linux emits a "rename" event instead of a
"remove" event when a file is deleted. Introducing a dedicated "remove"
event ensures consistent and clearer behavior across platforms.
2024-11-28 15:47:24 +01:00
snek
7c9a556922
feat(unstable): Instrument fetch (#27057)
Add basic tracing to `fetch`. Also fix span kinds so that we can
differentiate fetch and serve.
2024-11-28 15:47:24 +01:00
David Sherret
1f1b16d548
fix(compile): handle TypeScript file included as asset (#27032)
Closes #27024
2024-11-28 15:47:23 +01:00
Yoshiya Hinosawa
58c96d3ecb
chore: update node_compat setup script (#27051)
This PR updates the node_compat setup script. Now the copied version in
each test file is corrected. Also `TODO.md` links to the correct files
in Node.js repo.
2024-11-28 15:47:23 +01:00
snek
f64aa29099
feat: Instrument Deno.serve (#26964)
Add basic trace to Deno.serve. Also updates a bit of the testing infra
to make it easier to deal with.
2024-11-28 15:47:23 +01:00
Trevor Manz
3f0e7c6dde
fix(ext/node): add fs.promises.fstat and FileHandle#stat (#26719)
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-11-28 15:47:23 +01:00
David Sherret
d6661884fd
chore: update to file_test_runner 0.7.3 (#27016) 2024-11-28 15:47:23 +01:00
João Baptista
0a104c2630
fix(fmt): return None if sql fmt result is the same (#27014)
Similar with https://github.com/denoland/deno/pull/25848, we need to
make `format_sql` to return `None` so we do not flag well formatted sql
files as being wrong.

Signed-off-by: m4rc3l05 <15786310+M4RC3L05@users.noreply.github.com>
2024-11-28 15:47:22 +01:00
Marvin Hagemeister
56e57c9428
fix(node/fs): missing uv error context for readFile (#27011)
Dart's Node wrapper code in `npm:sass` does string slicing on the thrown
error message which broke because of our missing uv error context.

Code in question:

```js
_systemErrorToFileSystemException0(callback) {
  var error, t1, exception, t2;
  try {
    t1 = callback.call$0();
    return t1;
  } catch (exception) {
    error = A.unwrapException(exception);
    if (!type$.JsSystemError._is(error))
      throw exception;
    t1 = error;
    t2 = J.getInterceptor$x(t1);
    throw A.wrapException(new A.FileSystemException0(J.substring$2$s(t2.get$message(t1), (A.S(t2.get$code(t1)) + ": ").length, J.get$length$asx(t2.get$message(t1)) - (", " + A.S(t2.get$syscall(t1)) + " '" + A.S(t2.get$path(t1)) + "'").length), J.get$path$x(error)));
  }
}
```

Fixes https://github.com/denoland/deno/issues/26994
2024-11-28 15:47:22 +01:00
David Sherret
7a54251199
fix(compile): correct buffered reading of assets and files (#27008)
Closes #27006
2024-11-28 15:47:22 +01:00
David Sherret
1030cae455
chore(check): add test for Wasm memory and table (#26996) 2024-11-28 15:47:22 +01:00
Bartek Iwańczuk
9236786d56
fix: support non-function exports in Wasm modules (#26992)
Closes https://github.com/denoland/deno/issues/26986
2024-11-28 15:47:22 +01:00
Charlie Bellini
7499525ed0
fix(ext/websocket): don't throw exception when sending to closed socket (#26932)
[The WebSocket specification for the `send`
function](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send)
says:

> The browser will throw an exception if you call `send()` when the
connection is in the `CONNECTING` state. If you call `send()` when the
connection is in the `CLOSING` or `CLOSED` states, the browser will
silently discard the data.

and:

> ### Exceptions
> 
> `InvalidStateError`
[`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)
> 
> Thrown if
[`WebSocket.readyState`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/readyState)
is `CONNECTING`.

This pull request fixes the current behavior to match the specification.
Also, I believe it fixes #17586.
2024-11-28 15:47:21 +01:00
David Sherret
77bcb97a38 fix(node): regression where ts files were sometimes resolved instead of js (#26971) 2024-11-21 12:13:17 -05:00
Luca Casonato
1e03722914 chore: update url + idna (#26963)
They were pinned to old versions. This commit removes the pin.
2024-11-21 12:13:16 -05:00
Bartek Iwańczuk
5f787957b1 fix: Buffer global in --unstable-node-globals (#26973) 2024-11-21 12:13:16 -05:00
Cornelius Krassow
7e94dcd9b5 fix(cli): Fix typo in doc subcommand help output (#26321) 2024-11-21 12:13:16 -05:00
David Sherret
cb188cab7a fix(task): ensure root config always looks up dependencies in root (#26959)
We were accidentally looking up dependencies in the member.
2024-11-21 12:13:16 -05:00
David Sherret
be10901dfc
docs: fix casing of Wasm (#26954) 2024-11-21 01:02:58 +00:00
Bartek Iwańczuk
d17f4590a2
feat(init): add --npm flag to initialize npm projects (#26896)
This commit adds support for `deno init --npm <package>`.

Running this will actually call to `npm:create-<package>` package that
is equivalent to running `npm create <package>`.

User will be prompted if they want to allow all permissions and
lifecycle scripts to be executed.
Closes https://github.com/denoland/deno/issues/26461

---------

Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: crowlkats <crowlkats@toaxl.com>
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2024-11-21 00:03:11 +00:00
Marvin Hagemeister
f0b245c8ee
feat(task): workspace support with --filter and --recursive (#26949)
This commit adds workspace support to "deno taks".

Two new flags were added:
- "--recursive" - allows to run a specified task in workspace members,
eg. "deno task --recursive dev"
- "--filter" - allows to run a specified task only in specific workspace members,
eg. "deno task --recursive --filter 'client/*' dev"

"--filter" flag implies "--recursive" flag.

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

---------

Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Signed-off-by: David Sherret <dsherret@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com>
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-11-21 00:35:12 +01:00
Yazan AbdAl-Rahman
b729bf0ad9
feat(permission): support suffix wildcards in --allow-env flag (#25255)
This commit adds support for suffix wildcard for `--allow-env` flag.

Specifying flag like `--allow-env=DENO_*` will enable access to all
environmental variables starting with `DENO_*`.

Closes #24847

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-11-20 23:30:43 +00:00
Nathan Whitaker
56f31628f7
feat: subcommand to view and update outdated dependencies (#26942)
Closes #20487

Currently spelled

```
deno outdated
```
and
```
deno outdated --update
```

Works across package.json and deno.json, and in workspaces.

There's a bit of duplicated code, I'll refactor to reduce this in follow
ups

## Currently supported:
### Printing outdated deps (current output below which basically mimics
pnpm, but requesting feedback / suggestions)

```
deno outdated
```
![Screenshot 2024-11-19 at 2 01
56 PM](https://github.com/user-attachments/assets/51fea83a-181a-4082-b388-163313ce15e7)

### Updating deps

semver compatible:
```
deno outdated --update
```
latest:
```
deno outdated --latest
```
current output is basic, again would love suggestions
![Screenshot 2024-11-19 at 2 13
46 PM](https://github.com/user-attachments/assets/e4c4db87-cd67-4b74-9ea7-4bd80106d5e9)

#### Filters
```
deno outdated --update "@std/*"
deno outdated --update --latest "@std/* "!@std/fmt"
```
#### Update to specific versions
```
deno outdated --update @std/fmt@1.0.2 @std/cli@^1.0.3
```

### Include all workspace members
```
deno outdated --recursive
deno outdated --update --recursive
```

## Future work
- interactive update
- update deps in js/ts files
- better support for transitive deps

Known issues (to be fixed in follow ups):
- If no top level dependencies have changed, we won't update transitive
deps (even if they could be updated)
- Can't filter transitive deps, or update them to specific versions

## TODO (in this PR):
- ~~spec tests for filters~~
- ~~spec test for mixed workspace (have tested manually)~~
- tweak output
- suggestion when you try `deno update`

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-11-20 15:22:15 -08:00