1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-01 16:51:13 -05:00
Commit graph

5618 commits

Author SHA1 Message Date
Bartek Iwańczuk
d3e1387ebb
refactor(tools/repl): reorganize code (#21810)
Some drive-by cleanup as I'm working through
https://github.com/denoland/deno_core/pull/415.
2024-01-12 13:22:04 +01:00
Divy Srivastava
1fcace13b9
fix(ext/node): add fs.cp, fs.cpSync, promises.cp (#21745)
Fixes https://github.com/denoland/deno/issues/20803
Fixes https://github.com/denoland/deno/issues/21723

Performance: copying a 48GiB rust `target` folder (recursive)
| Platform  | `deno` | `node v21.5` | Improvement |
| -------- | ------- | ------- | ------- |
| macOS (APFS) |   3.1secs  |  127.99 secs |  **42x** |
| Windows | 18.3secs | 67.2secs |  **3.8x** |

Copying files with varying sizes:


![image](https://github.com/denoland/deno/assets/34997667/58932652-6f7a-47f5-8504-896dc9ab4ddc)
2024-01-12 13:22:03 +01:00
Nayeem Rahman
7f68ea0e14
fix(lsp): show test code lens for template literal names (#21798) 2024-01-12 13:22:03 +01:00
denobot
6af25c0592
1.39.2 (#21791)
Bumped versions for 1.39.2

Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-01-04 21:40:03 +01:00
Matt Mastracci
6704a8e6fd
chore(cli): bump deno_core (#21790) 2024-01-04 20:34:55 +01:00
David Sherret
50d5a93c28
perf(coverage): faster source mapping (#21783)
I did not measure this change (O(n) to O(log n)), but mainly this should
be slightly more accurate at getting the line number.
2024-01-04 20:34:55 +01:00
Divy Srivastava
ed90e2baee
fix(ci): copyright year for console_test.ts (#21787)
Missed in
b2cd254c35 (diff-0c2dcdd1ce20382e6ddefe52956cf2f570f18063cf09067f8a7ca44abaf33122)
2024-01-04 20:34:55 +01:00
Kenta Moriuchi
ab60d9e6a3
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 20:34:55 +01:00
David Sherret
f45cf71fde
fix(unstable/byonm): support using an import map with byonm (#21786)
Supports mixing an import map with byonm.
2024-01-04 20:34:55 +01:00
Divy Srivastava
9c4431758d
fix(ext/node): UdpSocket ref and unref (#21777) 2024-01-04 20:34:55 +01:00
nokazn
7f9d870cc0
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-04 20:34:55 +01:00
Matt Mastracci
5d7ebea99f
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 20:34:54 +01:00
Nayeem Rahman
69ad4918e5
fix(lsp): support test code lens for Deno.test.{ignore,only}() (#21775) 2024-01-04 20:34:54 +01:00
David Sherret
38dda38a3b
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-04 20:34:54 +01:00
Matt Mastracci
cf148779f0
fix(cli): make signals tests more reliable (#21772)
Delivering POSIX signals too quickly may result in signal coalescing.
2024-01-04 20:34:54 +01:00
Jovi De Croock
53c876ffd3
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-04 20:34:54 +01:00
Nayeem Rahman
2d561a8cf3
chore: ignore hanging lsp jsx test (#21771) 2024-01-04 20:34:53 +01:00
Bartek Iwańczuk
2eb2d109ef
chore: upgrade deno_core to 0.241.0 (#21765) 2024-01-04 20:34:53 +01:00
Nayeem Rahman
04c9c6c1c6
feat(lsp): cache jsxImportSource automatically (#21687) 2024-01-04 20:34:53 +01:00
Bartek Iwańczuk
31318e9ae0
chore: increase unit test timeout to 3m (#21760)
Alternative to #21758 to fix timing out tests on Windows.
2024-01-04 20:34:53 +01:00
Divy Srivastava
551140e475
fix(ext/node): implement os.machine (#21751) 2024-01-04 20:34:52 +01:00
Divy Srivastava
4fa779f220
fix(ext/http): use arraybuffer binaryType for server websocket (#21741)
Ref
https://github.com/denoland/deno/issues/15340#issuecomment-1872353134
2024-01-04 20:34:52 +01:00
Divy Srivastava
eb8bf806b3
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-04 20:34:52 +01:00
Divy Srivastava
97604ef522
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-04 20:34:52 +01:00
林炳权
217b9ecb20
chore: update to Rust 1.75 (#21731) 2024-01-04 20:34:52 +01:00
David Sherret
21dd7f8a7f
chore: update copyright to 2024 (#21753) 2024-01-04 20:34:51 +01:00
Raashid Anwar
857cf1f154
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
2024-01-04 20:34:51 +01:00
Jovi De Croock
ce539e9189
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.
2024-01-04 20:34:51 +01:00
Jovi De Croock
2319c51dc0
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?
2024-01-04 20:34:51 +01:00
Leo Kettmeir
491f8e9731
chore: update deno_doc to 0.85.0 (#21678) 2024-01-04 20:34:50 +01:00
Joel Walker
a267225a17
fix: Object.groupBy return type should be a partial (#21680)
Signed-off-by: Joel Walker <joelwalker1995@gmail.com>
2024-01-04 20:34:50 +01:00
Bartek Iwańczuk
f9df3833c7
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.
2024-01-04 20:34:50 +01:00
Bartek Iwańczuk
b7f2bff5e3
fix(node): support nested tests in "node:test" (#21717)
Closes https://github.com/denoland/deno/issues/21679
2024-01-04 20:34:50 +01:00
Bartek Iwańczuk
53d33490b4
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.
2024-01-04 20:34:50 +01:00
Divy Srivastava
2df2cd10d2
fix(node): Implement os.cpus() (#21697)
Fixes https://github.com/denoland/deno/issues/21666

Zero added dependency and tries to match the libuv implementation
2024-01-04 20:34:49 +01:00
Nayeem Rahman
730835498c
perf(lsp): use LanguageServiceHost::getProjectVersion() (#21719) 2024-01-04 20:34:49 +01:00
Bartek Iwańczuk
69cc117015
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
2024-01-04 20:34:49 +01:00
Bartek Iwańczuk
c73abff4af
refactor: finish test_util server cleanup, simplify dependencies (#21714)
Closes https://github.com/denoland/deno/issues/21578
2024-01-04 20:34:49 +01:00
Lino Le Van
5efae447a4
fix(ext/node): Implement aes-192-ecb and aes-256-ecb (#21710) 2024-01-04 20:34:49 +01:00
Matt Mastracci
936d265f8a
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.
2024-01-04 20:34:48 +01:00
Bartek Iwańczuk
69bb85ce0d
refactor: change cli/ to use hyper 1.1 (#21705) 2024-01-04 20:34:48 +01:00
Divy Srivastava
1149ec8848
fix(ext/node): add ClientRequest#setNoDelay (#21694)
Fixes https://github.com/denoland/deno/issues/18316
2024-01-04 20:34:47 +01:00
Matt Mastracci
841b758d0d
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
2024-01-04 20:34:47 +01:00
Matt Mastracci
2b4307af35
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.
2024-01-04 20:34:47 +01:00
Bartek Iwańczuk
fa60ed1a8d
feat(lsp): allow to connect V8 inspector (#21482)
This commit adds a way to connect to the TS compiler host that is run
as part of the "deno lsp" subcommand. This can be done by specifying 
"DENO_LSP_INSPECTOR" variable.

---------

Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
2024-01-04 20:34:46 +01:00
Heyang Zhou
b30dc11c4f
fix(unstable): kv watch should stop when db is closed (#21665)
Fixes #21634.
2024-01-04 20:34:46 +01:00
denobot
68254ddc20
1.39.1 (#21667)
Bumped versions for 1.39.1

---------

Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-12-21 16:46:13 +01:00
Divy Srivastava
26cf06ed9f
fix(node): child_process kill cancel pending IPC reads (#21647) 2023-12-20 07:55:09 +05:30
Divy Srivastava
5aa27c45f1
fix(node): add crypto.pseudoRandomBytes (#21649) 2023-12-20 07:54:55 +05:30
Divy Srivastava
55fac9f5ea
fix(node): child_process IPC on Windows (#21597)
This PR implements the child_process IPC pipe between parent and child.
The implementation uses Windows named pipes created by parent and passes
the inheritable file handle to the child.

I've also replace parts of the initial implementation which passed the
raw parent fd to JS with resource ids instead. This way no file handle
is exposed to the JS land (both parent and child).

`IpcJsonStreamResource` can stream upto 800MB/s of JSON data on Win 11
AMD Ryzen 7 16GB (without `memchr` vectorization)
2023-12-19 13:37:22 +01:00