1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-11 18:17:48 -05:00
Commit graph

1660 commits

Author SHA1 Message Date
Bartek Iwańczuk
a840937403
chore: upgrade deno_core to 0.244.0 (#21859) 2024-01-12 13:22:08 +01:00
Divy Srivastava
289fe7b1b7
fix(ext/websocket): pass on uncaught errors in idleTimeout (#21846)
Fixes https://github.com/denoland/deno/issues/21840

The problem was hard to reproduce as its a race condition. I've added a
test that reproduces the problem 1/10 tries. We should move the
idleTimeout handling to Rust (maybe even built into fastwebsocket).
2024-01-12 13:22:08 +01:00
Asher Gomez
862dfd7cbe
chore: cleanup readAll() logic (#21862) 2024-01-12 13:22:07 +01:00
Marvin Hagemeister
fb651776e4
fix: cjs export rewritten to invalid identifier (#21853)
<!--
Before submitting a PR, please read https://deno.com/manual/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(std/http): Fix race condition in server
    - docs(console): Update docstrings
    - feat(doc): Handle nested reexports

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->

Fixes https://github.com/denoland/deno/issues/21836
2024-01-12 13:22:07 +01:00
Asher Gomez
e667497b6b
chore(ext/io): cleanup unused functions (#21844)
These functions don't appear to be used anywhere.
2024-01-12 13:22:06 +01:00
Kenta Moriuchi
51afa70236
fix(ext): enable prefer-primordials for internal TypeScript (#21813)
Enabled prefer-primordials lint for ext/cron and ext/kv.
2024-01-12 13:22:06 +01:00
Bartek Iwańczuk
777d8f5261
refactor: split runtime/98_global_scope.js (#21785) 2024-01-12 13:22:05 +01:00
Divy Srivastava
6e017dbba7
feat(ext/crypto): initial support for p521 in generateKey and importKey (#21815)
Part 1 of a potential 3 part series. Ref #13449 

The current implementation passes key material back and forth RustCrypto
group of crates and ring. ring does not implement p521 yet.

This PR adds support for P521 named curve in `generateKey` and
`importKey` where we use RustCrypto. Other parts should be moved over to
the RustGroup group of crates for consistency.
2024-01-12 13:22:05 +01:00
Divy Srivastava
1748033b59
fix(ext/node): add WriteStream.isTTY (#21801) 2024-01-12 13:22:04 +01:00
Kenta Moriuchi
4c2a00b034
chore: update deno_lint for CI (#21802) 2024-01-12 13:22:03 +01:00
Divy Srivastava
6d55d87be4
chore(ext/webgpu): include GPUCanvasContext in snapshot (#21773)
Part 1 of #21713 

Changes:

- Remove `.present()` and add a `presentGPUCanvasContext` (not exposed
yet to users)
- Move lazy load logic to `00_init.js`. This can be used to use webgpu
on-demand from future code (OffScreenCanvas)
2024-01-12 13:22:03 +01:00
Divy Srivastava
b938ea40fa
fix(ci): update copright year for _fs_cp.js (#21803) 2024-01-12 13:22:03 +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
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
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
Divy Srivastava
9c4431758d
fix(ext/node): UdpSocket ref and unref (#21777) 2024-01-04 20:34:55 +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
Divy Srivastava
63ae014dcc
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-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
林炳权
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
Divy Srivastava
73b703213e
fix(ext/node): add process.abort() (#21742) 2024-01-04 20:34:51 +01:00
Divy Srivastava
d3ef599c8f
chore(runtime): internalize pipe fd for ext/node (#21570)
Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
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
38fa2dbc1e
chore: update deno_core to 0.240.0 (#21726) 2024-01-04 20:34:49 +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
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
0f9056974f
refactor: fastwebsockets renames (#21707)
We now use only a single version of "fastwebsockets" crate, so we no
longer need to have an alias.
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
Bartek Iwańczuk
0533ae4380
refactor: migrate ext/websocket to hyper 1.1 (#21699) 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
Bartek Iwańczuk
3123634e91
refactor: use hyper 1.0 in grpc test server (#21584)
Ref https://github.com/denoland/deno/issues/21578
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
Heyang Zhou
16550f0825
feat(unstable): only allow http2 for kv remote backend (#21616) 2024-01-04 20:34:46 +01:00
Bartek Iwańczuk
c2446697f8
chore: update ext/http to hyper 1.0.1 and http 1.0 (#21588)
Closes https://github.com/denoland/deno/issues/21583.
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
Kenta Moriuchi
68241234fa
fix(console): inspect for {Set,Map}Iterator and Weak{Set,Map} (#21554) 2023-12-19 15:05:49 +09:00