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

10529 commits

Author SHA1 Message Date
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
David Sherret
972b3e8e65
perf: skip expanding exclude globs (#21817)
We were calling `expand_glob` on our excludes, which is very expensive
and unnecessary because we can pattern match while traversing instead.

1. Doesn't expand "exclude" globs. Instead pattern matches while walking
the directory.
2. Splits up the "include" into base paths and applicable file patterns.
This causes less pattern matching to occur because we're only pattern
matching on patterns that might match and not ones in completely
unrelated directories.
2024-01-12 13:22:06 +01:00
Nayeem Rahman
8a25d21380
perf(lsp): use host-owned cache for auto-import completions (#21852) 2024-01-12 13:22:06 +01:00
Bartek Iwańczuk
5ef16d0a08
fix(registry): wait for already pending publish (#21663)
Co-authored-by: Luca Casonato <hello@lcas.dev>
2024-01-12 13:22:06 +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
David Sherret
5b4418b628
chore: update LICENSE.md to 2024 (#21833) 2024-01-12 13:22:06 +01:00
Asher Gomez
f6fdb38d50
chore: define removal version in deprecated IO APIs (#21702)
This defines the removal version of v2 for the following APIs that
favour the Streams API:
* `Deno.copy()`
* `Deno.File`
* `Deno.iter()`
* `Deno.Buffer`
* `Deno.readAll()`
* `Deno.readAllSync()`
* `Deno.writeAll()`
* `Deno.writeAllSync()`
* `Deno.FsWatcher.return()`
2024-01-12 13:22:05 +01:00
Bartek Iwańczuk
f5c1a8f914
fix(compile): preserve granular unstable features (#21827)
Fix https://github.com/denoland/deno/issues/21814
2024-01-12 13:22:05 +01:00
Kitson Kelly
28e4f3d511
fix(kv): improve .listenQueue types (#21781)
Fixes: #21780
2024-01-12 13:22:05 +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
a32792d1b1
chore(build): document faster rebuilds with cargo plonk (#21823) 2024-01-12 13:22:04 +01:00
Jovi De Croock
8af30f9937
fix(cli): update import map url (#21824)
Fixes https://github.com/denoland/deno/issues/21822

This updates the import-maps help URL to the one mentioned in the issue
2024-01-12 13:22:04 +01:00
Divy Srivastava
1748033b59
fix(ext/node): add WriteStream.isTTY (#21801) 2024-01-12 13:22:04 +01:00
David Sherret
0a40c3c003
chore: update format script (#21811)
The PR referenced has been released so we can update this now.
2024-01-12 13:22:04 +01:00
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
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
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
Bartek Iwańczuk
1aea7a3e1a
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-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
fbeb45b37e
chore: update SECURITY.md (#21766) 2024-01-04 20:34:53 +01:00
Matt Mastracci
c1c7bd8cfe
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-04 20:34:53 +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
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