summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-12-13chore: deprecate `Deno.Reader`, `Deno.ReaderSync`, `Deno.Writer`, ↵Asher Gomez
`Deno.WriterSync` and `Deno.Closer` (#21465) This change deprecates `Deno.Reader`, `Deno.ReaderSync`, `Deno.Writer`, `Deno.WriterSync` and `Deno.Closer` in favour of the [Web Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API). After discussing with Yoshiya, we both thought now might be the right time to deprecate these interfaces with v2 getting closer.
2023-12-13fix (doc): Typo in `runtime/README.md` (#20020)pk
2023-12-13fix(zlib): handle no flush flag in handle_.write (#21432)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/21096
2023-12-14feat(unstable): append commit versionstamp to key (#21556)Heyang Zhou
2023-12-13refactor(cli): update to new deno_core promise/call methods (#21519)Matt Mastracci
2023-12-13fix(websockets): server socket field initialization (#21433)Divy Srivastava
2023-12-13fix(runtime): Make native modal keyboard interaction consistent with ↵lionel-rowe
browsers (#18453) Fixes https://github.com/denoland/deno/issues/18223. Fixes https://github.com/denoland/deno/issues/21477 --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: David Sherret <dsherret@gmail.com>
2023-12-13fix: implement child_process IPC (#21490)Divy Srivastava
This PR implements the Node child_process IPC functionality in Deno on Unix systems. For `fd > 2` a duplex unix pipe is set up between the parent and child processes. Currently implements data passing via the channel in the JSON serialization format.
2023-12-13test: integration tests for tarring/unfurling (#21544)Bartek Iwańczuk
2023-12-12feat(ext/kv) add backoffSchedule to enqueue (#21474)Igor Zinkovsky
Also reduces the time to run `kv_queue_undelivered_test.ts` test from 100 seconds down to 3 seconds. closes #21437
2023-12-12refactor: suggest entrypoint on missing 'exports' (#21549)Bartek Iwańczuk
2023-12-12refactor: nicer warning display (#21547)Bartek Iwańczuk
2023-12-12refactor: better handling for registry urls (#21545)Bartek Iwańczuk
2023-12-12fix(coverage): rename --pretty to --detailed (#21543)Yoshiya Hinosawa
2023-12-12perf(lsp): use null types instead of stub modules (#21541)Nayeem Rahman
2023-12-12perf(lsp): collect counts and durations of all requests (#21540)Bartek Iwańczuk
In addition to collecting details per-request metrics of the last 3000 request this commit adds aggregate metrics for all requests.
2023-12-12chore: modify editorconfig settings (#21533)Yoshiya Hinosawa
2023-12-12feat(coverage): add summary reporter (#21535)Yoshiya Hinosawa
2023-12-12perf(ext/ffi): switch from middleware to tasks (#21239)Matt Mastracci
Deno-side changes for https://github.com/denoland/deno_core/pull/350 --------- Co-authored-by: Aapo Alasuutari <aapo.alasuutari@gmail.com>
2023-12-11perf(ext/napi): port NAPI to v8 tasks (#21406)Matt Mastracci
Part 2 of removing middleware. This is somewhat awkward because `V8CrossThreadTaskSpawner` requires tasks to be `Send`, but NAPI makes heavy use of `!Send` pointers. In addition, Rust causes a closure to be `!Send` if you pull a `!Send` value out of a struct. --------- Signed-off-by: Matt Mastracci <matthew@mastracci.com> Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-12-11fix: ignore more paths in dynamic arg module search (#21539)David Sherret
Upgrades deno_doc for https://github.com/denoland/deno_graph/pull/344
2023-12-11perf(lsp): instrument all ops with performance marks (#21536)Bartek Iwańczuk
Adds performance measurements for all ops used by the LSP. Also changes output of "Language server status" page to include more precise information. Current suspicion is that computing "script version" takes a long time for some users.
2023-12-11fix: allow reserved word 'mod' in exports (#21537)Ryan Dahl
This problem occurred trying to load tensorflow.js ``` > import * as tf from 'npm:@tensorflow/tfjs'; Uncaught SyntaxError: Identifier 'mod' has already been declared at file:///Users/ry/Library/Caches/deno/npm/registry.npmjs.org/@tensorflow/tfjs/4.14.0/dist/tf.node.js:167:14 at async <anonymous>:1:33 ```
2023-12-11perf(lsp): simplify some of the startup code (#21538)Bartek Iwańczuk
Remove some dead code in "99_main_compiler.js". Eagerly start the LSP TSC host, it was adding some not needed complexity around the TSC thread code.
2023-12-11fix(doc): ambient namespaces should have members as exports (#21483)David Sherret
2023-12-11fix(coverage): escape source code in html coverage report (#21531)Yoshiya Hinosawa
2023-12-11test(ext/node): enable some compat test cases (#21532)Yoshiya Hinosawa
This change uncomments Node.js compat test cases which was enabled by the addition of `vm.runInNewContext` https://github.com/denoland/deno/pull/21527
2023-12-11fix(ext/node): basic vm.runInNewContext implementation (#21527)Divy Srivastava
Simple implementation to support webpack (& Next.js): https://github.com/webpack/webpack/blob/87660921808566ef3b8796f8df61bd79fc026108/lib/javascript/JavascriptParser.js#L4329
2023-12-11fix(ext/websocket): don't panic on bad resource id (#21431)Divy Srivastava
https://github.com/denoland/deno/issues/21379
2023-12-11fix(ext/node): ServerResponse getHeader() return undefined (#21525)Divy Srivastava
Matches Node's return type. Next.js check for `if (header === undefined)`: https://github.com/vercel/next.js/blob/e02fe314dcd0ae614c65b505c6daafbdeebb920e/packages/next/src/server/base-http/node.ts#L93
2023-12-11fix(ext/node): stub ServerResponse#flushHeaders (#21526)Divy Srivastava
This commit adds a no-op flushHeaders method to the ServerResponse object. It is a nop because the ServerResponse implementation is based on top of the Deno server API instead of the Node `OutgoingMessage` base. Fixes #21509
2023-12-11refactor(coverage): separate reporter-related structs (#21528)Yoshiya Hinosawa
2023-12-09feat: bring back WebGPU (#20812)Leo Kettmeir
Signed-off-by: Leo Kettmeir <crowlkats@toaxl.com> Co-authored-by: Kenta Moriuchi <moriken@kimamass.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-12-08feat(lsp): debug log file (#21500)Nayeem Rahman
2023-12-08feat(lsp): provide quick fixes for specifiers that could be resolved ↵David Sherret
sloppily (#21506)
2023-12-08chore: update a bunch of crates (#21270)Luca Casonato
Fixes #21217 --------- Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-12-08fix(unstable): Honor granular unstable flags in js runtime (#21466)Julien Cayzac
This fixes #21434 for `BroadcastChannel` and `WebSocketStream`. `--unstable` still enable both, but granular unstable flags now also work: * `--unstable-net` now enables `WebSocketStream`. * `--unstable-broadcast-channel` now enables `BroadcastChannel`. * Additionally, there are now tests for all granular unstable flags. Since `unsafe-proto` already had tests, so I didn't add any for this one. It also introduces a map to keep track of granular unstable ids without having to sync multiple places.
2023-12-08perf(ext/url): improve URLPattern perf (#21488)Luca Casonato
This significantly optimizes URLPattern in the case where the same URL is matched against many patterns (like in a router). Also minor speedups to other use-cases.
2023-12-08fix(ext/node): use primordials in ext/node/polyfills/_util (#21444)Kenta Moriuchi
2023-12-08fix(ext/node): allow null value for req.setHeader (#21391)Yoshiya Hinosawa
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-12-08feat(test): add default to --coverage option (#21510)Yoshiya Hinosawa
2023-12-08feat(coverage): add html reporter (#21495)Yoshiya Hinosawa
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-12-08chore: use primordials in 40_testing.js (#21422)Divy Srivastava
This commit brings back usage of primordials in "40_testing.js" by turning it back into an ES module and using new "lazy loading" functionality of ES modules coming from "deno_core". The same approach was applied to "40_jupyter.js". Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-12-08fix(node/tls): fix NotValidForName for host set via socket / servername (#21441)Max Goodhart
This PR is an attempt to fix https://github.com/denoland/deno/issues/20293, in which node modules connecting to databases fail due to TLS errors. I ran into this attempting to use [node-postgres](https://github.com/brianc/node-postgres) to connect to a [Neon](https://neon.tech) database. Investigating via `--inspect-brk` led me to notice that the hostname eventually passed to `Deno.startTls` was null. The hostname is determined by the following code: https://github.com/denoland/deno/blob/f6b889b43219e3c9be770c8b2758bff3048ddcbd/ext/node/polyfills/_tls_wrap.ts#L87-L89 This logic doesn't appear to be correct. I couldn't find reference to `servername` existing on the `secureContext` in either Node's or Deno's docs. There's a lot of scope here, and it's my first time reading through this code, so I could be missing something! Node uses [the following logic](https://github.com/nodejs/node/blob/2e458d973638d01fcb6a0d7d611e0120a94f4d35/lib/_tls_wrap.js#L1679-L1682 ) to determine the hostname for certificate validation: ``` const hostname = options.servername || options.host || (options.socket && options.socket._host) || 'localhost'; ``` This PR updates the `TLSSocket` polyfill to use behave similarly (though I omitted the default to `localhost` at the end; I'm not sure if including it is necessary or correct). With this change, `node-postgres` connects to my TLS endpoint successfully (aside: Neon requires SNI, which also works as expected). --- I tried to update the tests in https://github.com/denoland/deno/blob/main/cli/tests/unit_node/tls_test.ts to exercise this change, but the test fails for me on `main` on Linux. I investigated briefly and noticed that the test fixture `cli/tests/testdata/tls/localhost.crt` doesn't appear to include the `subjectAltName` specified in `domains.txt`. I believe the certificate isn't matching `localhost`, but that's where I ended investigating.
2023-12-07fix: add more warnings when using sloppy imports (#21503)David Sherret
One warning for when using it with `deno compile` and another when using it with `deno run`.
2023-12-07chore: bump rust to 1.74.1 (#21499)Leo Kettmeir
2023-12-07feat: add suggestions to module not found error messages for file urls (#21498)David Sherret
2023-12-07fix(ext/node): include non-enumerable keys in `Reflect.ownKeys(globalThis)` ↵ud2
(#21485) Closes #21484.
2023-12-07refactor: pull 'core', 'internals', 'primordials' from ES module (#21462)Bartek Iwańczuk
This commit refactors how we access "core", "internals" and "primordials" objects coming from `deno_core`, in our internal JavaScript code. Instead of capturing them from "globalThis.__bootstrap" namespace, we import them from recently added "ext:core/mod.js" file.
2023-12-07chore: update deno_core (#21487)Leo Kettmeir
For #20812