Kenta Moriuchi
b2cd254c35
fix: strict type check for cross realms ( #21669 )
...
Deno v1.39 introduces `vm.runInNewContext`. This may cause problems when
using `Object.prototype.isPrototypeOf` to check built-in types.
```js
import vm from "node:vm";
const err = new Error();
const crossErr = vm.runInNewContext(`new Error()`);
console.assert( !(crossErr instanceof Error) );
console.assert( Object.getPrototypeOf(err) !== Object.getPrototypeOf(crossErr) );
```
This PR changes to check using internal slots solves them.
---
current:
```
> import vm from "node:vm";
undefined
> vm.runInNewContext(`new Error("message")`)
Error {}
> vm.runInNewContext(`new Date("2018-12-10T02:26:59.002Z")`)
Date {}
```
this PR:
```
> import vm from "node:vm";
undefined
> vm.runInNewContext(`new Error("message")`)
Error: message
at <anonymous>:1:1
> vm.runInNewContext(`new Date("2018-12-10T02:26:59.002Z")`)
2018-12-10T02:26:59.002Z
```
---------
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-01-04 09:42:38 +05:30
David Sherret
4855674857
fix(unstable/byonm): support using an import map with byonm ( #21786 )
...
Supports mixing an import map with byonm.
2024-01-04 09:20:58 +05:30
Divy Srivastava
ad65440092
fix(ext/node): UdpSocket ref and unref ( #21777 )
2024-01-04 08:51:39 +05:30
nokazn
a0b6872359
fix(cli): respect exclude
option for deno check
command ( #21779 )
...
This PR fixes #21658 .
- `check` subcommand sees `exclude` option in `deno.json`. When some
paths passed with `check` command listed in `exclude`, they are ignored.
- When some files are listed in `exclude` and imported indirectly among
module graph, they are checked.
2024-01-03 20:43:17 -05:00
Matt Mastracci
00970daea2
fix(cli): harden permission stdio check ( #21778 )
...
Harden the code that does permission checks to protect against
re-opening of stdin.
Code that runs FFI is vulnerable to an attack where fd 0 is closed
during a permission check and re-opened with a file that contains a
positive response (ie: `y` or `A`). While FFI code is dangerous in
general, we can make it more difficult for FFI-enabled code to bypass
additional permission checks.
- Checks to see if the underlying file for stdin has changed from the
start to the end of the permission check (detects races)
- Checks to see if the message is excessively long (lowering the window
for races)
- Checks to see if stdin and stderr are still terminals at the end of
the function (making races more difficult)
2024-01-04 00:31:39 +01:00
Bartek Iwańczuk
7f1c41d245
chore: make test server less noisy ( #21782 )
...
Test server was printing a lot of "early eof" messages eg when running
`cargo test integration::npm`. This commit filters out these messages.
2024-01-03 22:43:34 +00:00
Nayeem Rahman
9526520cf0
fix(lsp): support test code lens for Deno.test.{ignore,only}() ( #21775 )
2024-01-03 16:34:21 +00:00
David Sherret
97937a097e
fix(jupyter): error message when install fails due to jupyter command not being on PATH ( #21767 )
...
We were failing silently in this scenario.
2024-01-03 14:45:10 +00:00
Matt Mastracci
a387efa46e
fix(cli): make signals tests more reliable ( #21772 )
...
Delivering POSIX signals too quickly may result in signal coalescing.
2024-01-03 07:41:58 -07:00
Jovi De Croock
f5ad15b504
fix(node/zlib): accept dataview and buffer in zlib bindings ( #21756 )
...
Fixes #20516
Follow up to #21747 and #21746
This tackles the last point of #20516 where certain inputs weren't
accepted in the other zlib methods
This adds the `toU8` conversion of `_brotli` to `_zlib.mjs`, when we
create the ZLibBuffer, we'll sanitize the input. I noticed that the
async had no handler for `string` input so I added that as well.
2024-01-03 19:03:51 +05:30
Nayeem Rahman
59cfe20f3b
chore: ignore hanging lsp jsx test ( #21771 )
2024-01-03 04:47:59 +00:00
Bartek Iwańczuk
1ee01d57d6
chore: upgrade deno_core to 0.241.0 ( #21765 )
2024-01-03 01:34:41 +00:00
Nayeem Rahman
261f32ef65
feat(lsp): cache jsxImportSource automatically ( #21687 )
2024-01-02 23:48:34 +00:00
Bartek Iwańczuk
42e2e318ab
chore: update SECURITY.md ( #21766 )
2024-01-02 17:53:01 -05:00
Matt Mastracci
001f0df7ee
chore(ext/net): bump rustls-tokio-stream to fix panic ( #21763 )
...
Pull in https://github.com/denoland/rustls-tokio-stream/pull/22 to fix
https://github.com/denoland/deno/issues/21762
2024-01-02 14:17:16 -07:00
Divy Srivastava
60403faaf3
fix(ext/node): use node:process in _streams.mjs ( #21755 )
...
Fixes https://github.com/denoland/deno/issues/21644
`next build` works:
```
~/gh/deno/target/debug/deno run -A --unstable-byonm ./node_modules/.bin/next build
Warning: Not implemented: process.on("rejectionHandled")
▲ Next.js 14.0.4
✓ Creating an optimized production build
✓ Compiled successfully
✓ Linting and checking validity of types
Collecting page data ..Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
✓ Collecting page data
Generating static pages (0/5) [ ]Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
Warning: Not implemented: process.on("rejectionHandled")
✓ Generating static pages (5/5)
✓ Collecting build traces
✓ Finalizing page optimization
Route (app) Size First Load JS
┌ ○ / 5.32 kB 87.4 kB
└ ○ /_not-found 875 B 83 kB
+ First Load JS shared by all 82.1 kB
├ chunks/938-5e061ba0d46125b1.js 26.8 kB
├ chunks/fd9d1056-735d320b4b8745cb.js 53.5 kB
├ chunks/main-app-2945f337109ea73c.js 220 B
└ chunks/webpack-e3c6517d4ab8d680.js 1.68 kB
○ (Static) prerendered as static content
```
2024-01-02 19:08:05 +01:00
Bartek Iwańczuk
3e68114736
chore: increase unit test timeout to 3m ( #21760 )
...
Alternative to #21758 to fix timing out tests on Windows.
2024-01-02 16:56:52 +01:00
Divy Srivastava
9f7586a206
fix(ext/node): implement os.machine ( #21751 )
2024-01-02 14:57:54 +01:00
Divy Srivastava
8e4feacd25
fix(ext/http): use arraybuffer binaryType for server websocket ( #21741 )
...
Ref
https://github.com/denoland/deno/issues/15340#issuecomment-1872353134
2024-01-02 10:30:09 +05:30
Divy Srivastava
642c4a44a5
fix(ext/node): querystring stringify without encode callback ( #21740 )
...
Fixes https://github.com/denoland/deno/issues/21734
Changes:
- Use default encode when options do not provide a encode callback.
- Remove internal TS for `node:querystring`. Its not helping catching
bugs like this because of invalid type assumptions and use of `any`,
more of a maintenance burden.
2024-01-02 04:54:11 +00:00
Divy Srivastava
b21462355a
Revert "fix(runtime): Make native modal keyboard interaction consistent with browsers" ( #21739 )
...
Reverts denoland/deno#18453
Fixes https://github.com/denoland/deno/issues/21602
https://github.com/denoland/deno/issues/21631
https://github.com/denoland/deno/issues/21641
Reasons for revert:
- alert() and confirm() swallowed ^C with raw mode.
- prompt() did not re-raise the interrupt signal from rustyline.
- Default 'Y' on confirm() is a bad default and breaking change.
cc @lionel-rowe
2024-01-02 09:36:05 +05:30
林炳权
96b581bdd2
chore: update to Rust 1.75 ( #21731 )
2024-01-01 23:22:48 +01:00
David Sherret
7e72f3af61
chore: update copyright to 2024 ( #21753 )
2024-01-01 19:58:21 +00:00
Raashid Anwar
8ba828b41e
fix(http_client): Fix Deno.createHttpClient to accept poolIdleTimeout parameter ( #21603 )
...
Fixed the bug `Deno.createHttpClient` to accept `poolIdleTimeout` parameter.
Fixes https://github.com/denoland/deno/issues/21546
2023-12-31 12:45:12 +00:00
Jovi De Croock
4339a6c55d
fix(node/zlib): consistently return buffer ( #21747 )
...
This fixes point 3 of https://github.com/denoland/deno/issues/20516
This PR creates consistency between the sync and async versions of the
brotli compress where we will always return a buffer like Node.
2023-12-31 17:23:09 +05:30
Jovi De Croock
08fc8d50e3
fix(node/zlib): cast Dataview and Buffer to uint8 ( #21746 )
...
This fixes point 2 of #20516
This adds a conversion from Dataview/Buffer by returning `obj.buffer`
which can be converted to a `UInt8Array`.
Question: Regarding point 4 of the mentioned issue would it be
appropriate to copy the toU8 helper to the `zlib.mjs` methods?
2023-12-31 17:20:37 +05:30
Divy Srivastava
3db9c8742d
fix(ext/node): add process.abort() ( #21742 )
2023-12-30 20:30:55 +05:30
Divy Srivastava
a7b21760fc
chore(runtime): internalize pipe fd for ext/node ( #21570 )
...
Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-12-30 05:32:30 +00:00
Leo Kettmeir
4de9ddcf21
chore: update deno_doc to 0.85.0 ( #21678 )
2023-12-30 00:04:50 +00:00
Joel Walker
4740929950
fix: Object.groupBy
return type should be a partial ( #21680 )
...
Signed-off-by: Joel Walker <joelwalker1995@gmail.com>
2023-12-30 00:41:40 +01:00
Bartek Iwańczuk
fa3a12a805
chore: disable PTR_HOST dns test for Node compat ( #21735 )
...
These tests started failing on CI on Dec 28th, 2023 returning
ENOTFOUND. It's unclear what's going on, since `dig -x
8.8.8.8.in-addr.arpa`.
It needs a deeper investigation, but I want to unblock main branch
in the meantime.
2023-12-29 21:15:22 +00:00
Bartek Iwańczuk
1dd1aba244
fix(node): support nested tests in "node:test" ( #21717 )
...
Closes https://github.com/denoland/deno/issues/21679
2023-12-29 16:18:08 +01:00
Bartek Iwańczuk
576b20aa00
fix: allow npm: specifiers in import.meta.resolve ( #21716 )
...
Closes https://github.com/denoland/deno/issues/21298 .
"npm:" specifiers are matched against import map entries
and if no match is found they are passed through.
2023-12-28 20:37:10 +01:00
Bartek Iwańczuk
f85d65e066
chore: update deno_core to 0.240.0 ( #21726 )
2023-12-28 19:30:07 +00:00
Divy Srivastava
c08319262a
fix(node): Implement os.cpus() ( #21697 )
...
Fixes https://github.com/denoland/deno/issues/21666
Zero added dependency and tries to match the libuv implementation
2023-12-28 09:08:50 +05:30
Nayeem Rahman
48dae2441c
perf(lsp): use LanguageServiceHost::getProjectVersion() ( #21719 )
2023-12-28 00:13:57 +00:00
Bartek Iwańczuk
c2414db1f6
refactor: simplify hyper, http, h2 deps ( #21715 )
...
Main change is that:
- "hyper" has been renamed to "hyper_v014" to signal that it's legacy
- "hyper1" has been renamed to "hyper" and should be the default
2023-12-27 11:59:57 -05:00
Bartek Iwańczuk
33acd437f5
refactor: finish test_util server cleanup, simplify dependencies ( #21714 )
...
Closes https://github.com/denoland/deno/issues/21578
2023-12-27 14:38:44 +01:00
Lino Le Van
d5f6e271ff
fix(ext/node): Implement aes-192-ecb
and aes-256-ecb
( #21710 )
2023-12-27 17:24:52 +05:30
Bartek Iwańczuk
4f4dcf5291
refactor: rewrite remaining test server to Hyper 1.1 ( #21708 )
...
Ref https://github.com/denoland/deno/issues/21578
2023-12-27 11:45:12 +01:00
Matt Mastracci
0efe438f7c
perf: remove opAsync ( #21690 )
...
`opAsync` requires a lookup by name on each async call. This is a
mechanical translation of all opAsync calls to ensureFastOps.
The `opAsync` API on Deno.core will be removed at a later time.
2023-12-27 02:30:26 +01:00
Bartek Iwańczuk
e33c5eb704
refactor: fastwebsockets renames ( #21707 )
...
We now use only a single version of "fastwebsockets" crate, so we no
longer need to have an alias.
2023-12-26 21:53:28 +01:00
Bartek Iwańczuk
8fbac67395
refactor: change cli/ to use hyper 1.1 ( #21705 )
2023-12-26 14:32:21 +01:00
Bartek Iwańczuk
753777b4af
refactor: migrate ext/websocket to hyper 1.1 ( #21699 )
2023-12-26 11:20:49 +01:00
Bartek Iwańczuk
d1f4d81dcf
refactor: use hyper 1.0 in WS test server ( #21698 )
2023-12-25 17:38:48 +01:00
Divy Srivastava
60da9d493c
fix(ext/node): add ClientRequest#setNoDelay ( #21694 )
...
Fixes https://github.com/denoland/deno/issues/18316
2023-12-25 08:58:51 +05:30
Matt Mastracci
8702894feb
chore: bump deno_core ( #21675 )
2023-12-24 14:44:40 +01:00
Bartek Iwańczuk
e1bfb29868
refactor: use hyper 1.0 in grpc test server ( #21584 )
...
Ref https://github.com/denoland/deno/issues/21578
2023-12-24 14:14:29 +01:00
Matt Mastracci
92b2e28c64
chore: ensure that each op provided to ensureFastOps is only used once ( #21689 )
...
When we migrate to op-import-per-extension, we will want to ensure that
ops have one and only one place where they are imported. This tackles
the ops that are imported via `ensureFastOps`, but does not yet tackle
direct `ops` imports.
Landing ahead of https://github.com/denoland/deno_core/pull/393
2023-12-24 13:04:32 +00:00
Matt Mastracci
1297c9a8f3
chore(ext/node): use BufView natively in http2 ( #21688 )
...
Node HTTP/2 was using the default h2 `Bytes` datatype when we can be
making using of `BufView` like we do in `Deno.serve`.
`fetch` and `Deno.serverHttp` can't make use of `BufView` because they
are using `reqwest` which is stuck on hyper 0.x at this time.
2023-12-23 08:58:20 -07:00