summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-05-23feat(cli/test): `deno test --clean` (#23519)Asher Gomez
The result of the call is ignored as it throws even when the directory does not exist. Closes #23491
2024-05-22chore: kill node.js tests if they run too long (#23956)Matt Mastracci
2024-05-23feat(ext/fetch): `Request.bytes()` and `Response.bytes()` (#23823)Asher Gomez
Closes #23790
2024-05-23feat: add lowercase `-v` version flag (#23750)David Sherret
Ref https://github.com/denoland/deno/issues/5289
2024-05-23feat(ext/fs): stabilize `Deno.FsFile.unlock[Sync]()` and ↵Asher Gomez
`Deno.FsFile.lock[Sync]()` (#23754) Related #22230 CC @dyedgreen
2024-05-22chore: update release doc template (#23934)Bartek Iwańczuk
Align to latest release process, add some more instructions.
2024-05-23fix(runtime): use more null proto objects (#23921)Luca Casonato
This is a primordialization effort to improve resistance against users tampering with the global `Object` prototype. --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-05-22feat(ext/fs): stabilize `Deno.FsFile.syncData[Sync]()` and ↵Asher Gomez
`Deno.FsFile.sync[Sync]()` (#23733) Closes #22230
2024-05-22fix(lsp): process Fenced Code Block in JSDoc on `completion` correctly (#23822)Hajime-san
partially fixing https://github.com/denoland/deno/issues/23820 https://github.com/denoland/deno/assets/41257923/0adb5d4e-cfd5-4195-9045-19d1c0a07a43 BTW, it is out of scope on this PR that to process type of `@param` to be an code block due to it's a bit complicated.
2024-05-22chore: Fix failing `task_npx_non_existent` test (#23945)Nathan Whitaker
Currently `task::task_npx_non_existent` is consistently failing in CI ([example](https://github.com/denoland/deno/actions/runs/9192958846/job/25282900321#step:43:2772)) due to the output changing slightly ``` -- OUTPUT START -- Task non-existent npx this-command-should-not-exist-for-you npm ERR! code E404 npm ERR! 404 Not Found - GET http://localhost:4260/this-command-should-not-exist-for-you npm ERR! 404 npm ERR! 404 'this-command-should-not-exist-for-you@*' is not in this registry. npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url. npm ERR! A complete log of this run can be found in: /Users/runner/.npm/_logs/2024-05-22T17_58_42_473Z-debug-0.log -- OUTPUT END -- -- EXPECTED START -- Task non-existent npx this-command-should-not-exist-for-you npm error code E404 npm error 404 Not Found - GET http://localhost:4260/this-command-should-not-exist-for-you [WILDCARD] -- EXPECTED END -- ``` I'm not sure what changed in CI to cause this (and I can't repro it locally, even matching the version of npm and node on the github runners), but fix it with more lenient expected output for that test.
2024-05-22chore(repl): maybe improve repl test flakiness on the CI (#23933)David Sherret
These repl tests are still a bit flaky. Let's try this. https://github.com/denoland/deno/actions/runs/9176525869/job/25232001263
2024-05-22feat(cli): Add slow test warning (#23874)Matt Mastracci
By default, uses a 60 second timeout, backing off 2x each time (can be overridden using the hidden `DENO_SLOW_TEST_TIMEOUT` which we implement only really for spec testing. ``` Deno.test(async function test() { await new Promise(r => setTimeout(r, 130_000)); }); ``` ``` $ target/debug/deno test /tmp/test_slow.ts Check file:///tmp/test_slow.ts running 1 test from ../../../../../../tmp/test_slow.ts test ...'test' is running very slowly (1m0s) 'test' is running very slowly (2m0s) ok (2m10s) ok | 1 passed | 0 failed (2m10s) ``` --------- Signed-off-by: Matt Mastracci <matthew@mastracci.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-05-22refactor(docs): use `@experimental` instead of `@tags unstable` (#23884)Leo Kettmeir
2024-05-22chore: forward v1.43.6 release commit to main (#23936)Bartek Iwańczuk
Bumped versions for 1.43.6 Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-05-21feat(node): buffer isUtf8/isAscii (#23928)snek
Fixes: https://github.com/denoland/deno/issues/23657 Implements `isUtf8` and `isAscii` as ops.
2024-05-21fix(lsp): Fix display of JSDoc named examples (#23927)Nathan Whitaker
We were wrapping the display string in an unnecessary pair of triple backticks, breaking highlighting Before: ![Screenshot 2024-05-21 at 12 16 12 PM](https://github.com/denoland/deno/assets/17734409/1cf5a3ce-56dd-443d-9d1a-bd33625ff1f2) After: ![Screenshot 2024-05-21 at 12 16 36 PM](https://github.com/denoland/deno/assets/17734409/646c4c48-9b5a-4326-bb95-b1374627d969)
2024-05-21refactor(jupyter): use runtimelib for Jupyter structures and directory paths ↵Kyle Kelley
(#23826) This brings in [`runtimelib`](https://github.com/runtimed/runtimed) to use: ## Fully typed structs for Jupyter Messages ```rust let msg = connection.read().await?; self .send_iopub( runtimelib::Status::busy().as_child_of(msg), ) .await?; ``` ## Jupyter paths Jupyter paths are implemented in Rust, allowing the Deno kernel to be installed completely via Deno without a requirement on Python or Jupyter. Deno users will be able to install and use the kernel with just VS Code or other editors that support Jupyter. ```rust pub fn status() -> Result<(), AnyError> { let user_data_dir = user_data_dir()?; let kernel_spec_dir_path = user_data_dir.join("kernels").join("deno"); let kernel_spec_path = kernel_spec_dir_path.join("kernel.json"); if kernel_spec_path.exists() { log::info!("✅ Deno kernel already installed"); Ok(()) } else { log::warn!("ℹ️ Deno kernel is not yet installed, run `deno jupyter --install` to set it up"); Ok(()) } } ``` Closes https://github.com/denoland/deno/issues/21619
2024-05-21fix(lsp): apply import fix to missing declaration code action (#23924)Nayeem Rahman
2024-05-21chore: add test to ensure parsing only happens once on first load (#23837)David Sherret
2024-05-21fix(task): do not error if node_modules folder not exists (#23920)David Sherret
Revealed https://github.com/denoland/deno/issues/23919 Closes #23914
2024-05-21fix(ext/web): fix potential leak of unread buffers (#23923)Matt Mastracci
Because the buffers are `MaybeUninit<V8Slice<u8>`, and the owner of the `BoundedBufferChannel` is not obligated to read each and every bit of data, we may find that some buffers were not automatically dropped if unread by the time the `BoundedBufferChannelInner` is dropped. Possible repro: ``` Deno.serve(() => new Response(new ReadableStream({ start(controller) { controller.enqueue(new Uint8Array(100_000_000)) } }))); ``` ```bash while true; do curl localhost:8000 | dd count=1; done ```
2024-05-21fix(cli): use CliNodeResolver::resolve() for managed node_modules (#23902)Nayeem Rahman
2024-05-21perf: resolver - skip cwd lookup if able (#23851)David Sherret
The cwd lookup was taking 2% of a flamegraph I was looking at.
2024-05-21perf: analyze cjs re-exports in parallel (#23894)David Sherret
2024-05-21fix(cli/coverage): invalid line id in html reporter (#23908)Simon Lecoq
2024-05-21chore: force import assertion support (#23855)Bartek Iwańczuk
https://github.com/denoland/deno/pull/23838 might accidentally disable import assertions support because of V8 12.6 unshipping it, but we want import assertions to be supported until Deno 2.
2024-05-20fix(ext/webgpu): Allow `depthClearValue` to be undefined when `depthLoadOp` ↵chirsz
is not "clear" (#23850)
2024-05-20perf(cache): compile ts to js in parallel for `deno cache` (#23892)David Sherret
Closes https://github.com/denoland/deno/issues/23860
2024-05-20fix(node): stub findSourceMap for `ava` (#23899)Marvin Hagemeister
This stubs `findSourceMap` in `node:module` by always returning `undefined` as if it never found a source map. This unblocks the `ava` test runner. Fixes https://github.com/denoland/deno/issues/18666
2024-05-20fix(node): track `SIG*` listeners in `process.listeners` (#23890)Marvin Hagemeister
Some npm libraries like `signal-exit` rely on the length of the listener array returned by `process.listeners("SIGNT")` to be correct to function. We weren't tracking `SIG*` events there, which broke those npm libraries. Fixes https://github.com/denoland/deno/issues/22892
2024-05-20fix(node): patch MessagePort in worker_thread message (#23871)Marvin Hagemeister
Our `MessagePort` to Node's `MessagePort` conversion logic was missing the case where a `MessagePort` is sent _inside_ the message. This broke `tinypool` which is used by `vitest` as it relies on some node specific methods on `MessagePort`. Fixes https://github.com/denoland/deno/issues/23854 , Fixes https://github.com/denoland/deno/pull/23871
2024-05-19fix: handle signal 0 in process.kill (#23473)Bedis Nbiba
the last commit had a regression, where it removed this branch, I haven't tested the code but I think it should work --------- Signed-off-by: Bedis Nbiba <bedisnbiba@gmail.com>
2024-05-19fix: add missing `URL.parse` types (#23893)Kenta Moriuchi
2024-05-18perf: analyze cjs exports and emit typescript in parallel (#23856)David Sherret
2024-05-17chore: forward v1.43.5 release commit to main (#23877)denobot
Co-authored-by: David Sherret <dsherret@gmail.com>
2024-05-17fix(npm): regression deserializing JSON for some npm packages (#23868)David Sherret
* https://github.com/denoland/deno_npm/pull/53 Closes https://github.com/denoland/deno/issues/23862
2024-05-17chore: bump deno_http version (#23866)Satya Rohith
2024-05-17fix(node): instantiating process class without new (#23865)Marvin Hagemeister
Popular test runners like Jest instantiate a new `Process` object themselves and expect the class constructor to be callable without the `new` keyword. This PR refactors our `Process` class implementation from a proper ES2015 class to an ES5-style class which can be invoked both with and without the `new` keyword like in Node. Fixes https://github.com/denoland/deno/issues/23863
2024-05-17fix: serve handler error with 0 arguments (#23652)Marvin Hagemeister
Fixes https://github.com/denoland/deno/issues/23651 Co-authored-by: Satya Rohith <me@satyarohith.com>
2024-05-17feat(serve): support `--port 0` to use an open port (#23846)Satya Rohith
Closes https://github.com/denoland/deno/issues/23845
2024-05-17chore: forward v1.43.4 commit to main (#23861)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com> Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-05-16fix(lsp): respect types dependencies for tsc roots (#23825)Nayeem Rahman
2024-05-16fix(ext/node): fix grpc error_handling example (#23755)Satya Rohith
gRPC depends only on the END_STREAM flag to emit "trailers" event which is responsible to propagate the errors correctly. This patch uses Body::is_end_stream() to determine if a stream will end and set the END_STREAM flag. Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-05-16fix(node): error when throwing `FS_EISDIR` (#23829)Marvin Hagemeister
The `EISDIR` error code is not available as a global variable, but must be accessed through the `osConstants.errno` object. Fixes https://github.com/denoland/deno/issues/23695
2024-05-16fix(node): seperate worker module cache (#23634)Divy Srivastava
Construct a new module graph container for workers instead of sharing it with the main worker. Fixes #17248 Fixes #23461 --------- Co-authored-by: David Sherret <dsherret@gmail.com>
2024-05-16fix(ext/node): homedir() `getpwuid`/`SHGetKnownFolderPath` fallback (#23841)Divy Srivastava
**Unix**: Returns the value of the HOME environment variable if it is set even if it is an empty string. Otherwise, it tries to determine the home directory by invoking the [getpwuid_r](https://linux.die.net/man/3/getpwuid_r) function with the UID of the current user. **Windows**: Returns the value of the USERPROFILE environment variable if it is set and it is not an empty string. Otherwise, it tries to determine the home directory by invoking the [SHGetKnownFolderPath](https://learn.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath) function with [FOLDERID_Profile](https://learn.microsoft.com/en-us/windows/win32/shell/knownfolderid). Fixes https://github.com/denoland/deno/issues/23824
2024-05-16fix(ext/node): export geteuid from node:process (#23840)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/23827
2024-05-15perf(compile): Do not checksum eszip content (#23839)Arnau Orriols
Related: https://github.com/denoland/eszip/pull/181 eszip < v0.69.0 hashes all its contents to ensure data integrity. This feature is not necessary in Deno CLI as the binary integrity guarantee is deemed an external responsibility (ie it is to be assumed that, if necessary, the compiled binary will be checksumed externally prior to being executed). eszip >= v0.69.0 no longer performs this checksum by default. This reduces the cold-start time of the compiled binaries, proportionally to their size.
2024-05-16perf(jsr): download metadata files as soon as possible and in parallel (#23836)David Sherret
* https://github.com/denoland/deno_graph/pull/471 * https://github.com/denoland/deno_graph/pull/473
2024-05-15fix(doc): --lint - private ref diagnostic was displaying incorrect ↵David Sherret
information (#23834) * https://github.com/denoland/deno_doc/pull/576 Closes #23303