summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2023-12-19fix(console): inspect for `{Set,Map}Iterator` and `Weak{Set,Map}` (#21554)Kenta Moriuchi
2023-12-15refactor: setup child process pipe in Rust (#21579)Divy Srivastava
Avoid passing the fd into JS and back into Rust. Instead we setup the child's end of the pipe directly using a special Rust op.
2023-12-15fix(net): remove unstable check for unix socket listen (#21592)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/21587 It seems this was missed in https://github.com/denoland/deno/pull/21463. cc @bartlomieju
2023-12-14refactor(ext/http): fork fly_accept_encodings crate (#21586)Bartek Iwańczuk
Blocks update to Hyper 1.0. It's a really small library, no need to pull it as a dependency. Blocker for #21583
2023-12-14fix(node): support resolving a package.json import to a builtin node module ↵David Sherret
(#21576) Closes https://github.com/denoland/deno/issues/21501
2023-12-14chore(node): remove process.on("disconnect") not implemented warning (#21569)Divy Srivastava
2023-12-14fix(node): return false from vm.isContext (#21568)Divy Srivastava
https://github.com/denoland/deno/issues/20851#issuecomment-1779226106 for `jsdom`
2023-12-131.39.0 (#21560)denobot
Bumped versions for 1.39.0 Please ensure: - [x] Target branch is correct (`vX.XX` if a patch release, `main` if minor) - [x] Crate versions are bumped correctly - [x] deno_std version is incremented in the code (see `cli/deno_std.rs`) - [x] Releases.md is updated correctly (think relevancy and remove reverts) To make edits to this PR: ```shell git fetch upstream release_1_39.0 && git checkout -b release_1_39.0 upstream/release_1_39.0 ``` cc @mmastrac --------- Co-authored-by: mmastrac <mmastrac@users.noreply.github.com> Co-authored-by: Matt Mastracci <matthew@mastracci.com>
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-13fix(websockets): server socket field initialization (#21433)Divy Srivastava
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-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-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: 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-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-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-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-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(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-06chore: bump deno_core and update tests (#21467)Matt Mastracci
Landing changes required for https://github.com/denoland/deno_core/pull/359 We needed to update 99_main.js and a whole load of tests. API changes: - setPromiseRejectCallback becomes setUnhandledPromiseRejectionHandler. The function is now called from eventLoopTick. - The promiseRejectMacrotaskCallback no longer exists, as this is automatically handled in eventLoopTick. - ops.op_dispatch_exception now takes a second parameter: in_promise. The preferred way to call this op is now reportUnhandledException or reportUnhandledPromiseRejection.
2023-12-06feat: stabilize Deno.HttpServer.shutdown and Unix socket support (#21463)Bartek Iwańczuk
This commit stabilizes "Deno.HttpServer.shutdown" API as well as Unix socket support in "Deno.serve" API. --------- Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-12-06feat(ext/web): add ImageData Web API (#21183)Jamie
Fixes #19288 Adds the `ImageData` Web API. This would be beneficial to projects using `ImageData` as a convenient transport layer for pixel data. This is common in Web Assembly projects that manipulate images. Having this global available in Deno would improve compatibility of existing JS libraries. **References** - [MDN ImageData Web API](https://developer.mozilla.org/en-US/docs/Web/API/ImageData) - [whatwg HTML Standard Canvas Spec](https://html.spec.whatwg.org/multipage/canvas.html#pixel-manipulation)
2023-12-06feat(ext/fetch): allow `Deno.HttpClient` to be declared with `using` (#21453)Yusuke Tanaka
This commit adds a method of `Symbol.dispose` to the object returned from `Deno.createHttpClient`, so we can make use of [explicit resource management](https://github.com/tc39/proposal-explicit-resource-management) by declaring it with `using`.
2023-12-06chore: forward v1.38.5 release commit to main (#21472)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
2023-12-05fix(ext/kv): throw error if already closed (#21459)Raashid Anwar
If KV is closed and tries to listen queue should throw an error closes #20991
2023-12-05feat(unstable): kv.watch() (#21147)Luca Casonato
This commit adds support for a new `kv.watch()` method that allows watching for changes to a key-value pair. This is useful for cases where you want to be notified when a key-value pair changes, but don't want to have to poll for changes. --------- Co-authored-by: losfair <zhy20000919@hotmail.com>
2023-12-04perf(node/fs): faster `existsSync` when not exists (#21458)David Sherret
2023-12-03fix(ext/node): sign with PEM private keys (#21287)Divy Srivastava
Add support for signing with a RSA PEM private key: `pkcs8` and `pkcs1`. Fixes https://github.com/denoland/deno/issues/18972 Ref #21124 Verified fix with `npm:sshpk`. Unverfied but fixes `npm:google-auth-library`, `npm:web-push` & `oracle/oci-typescript-sdk` --------- Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
2023-12-02fix(node): setting process.exitCode should change exit code of process (#21429)David Sherret
2023-12-02chore: update std to 0.208.0 (#21318)Asher Gomez
Re-attempt at #21284. I was more thorough this time. --------- Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2023-12-01refactor: use resourceForReadableStream for fetch (#20217)Matt Mastracci
Switch `ext/fetch` over to `resourceForReadableStream` to simplify and unify implementation with `ext/serve`. This allows us to work in Rust with resources only. Two additional changes made to `resourceForReadableStream` were required: - Add an optional length to `resourceForReadableStream` which translates to `size_hint` - Fix a bug where writing to a closed stream that was full would panic
2023-12-01fix(ext/node): add stubbed process.report (#21373)Daniel Mizerski
Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2023-11-30chore: forward v1.38.4 release commit to main (#21400)Bartek Iwańczuk
Co-authored-by: denobot <33910674+denobot@users.noreply.github.com>
2023-11-30feat(cron): added the support for json type schedule to cron api (#21340)Raashid Anwar
Added the support for JSON type schedule to cron API; previously it was string only. fixes #21122
2023-11-30perf(ext/web): Avoid changing prototype by setting hostObjectBrand directly ↵Laurence Rowe
(#21358)
2023-11-30refactor (parseCssColor): use parseInt, avoid unnecessary coercion (#20856)Jordan Harband
Upstream some changes from https://github.com/nodejs/node/pull/49205 Signed-off-by: Jordan Harband <ljharb@gmail.com>
2023-11-30fix(ext/node): fix os.freemem (#21347)Yoshiya Hinosawa
2023-11-29fix(ext/node): add util.parseArgs (#21342)Yoshiya Hinosawa
2023-11-28chore(ext/kv): update denokv crates (#21357)Igor Zinkovsky
2023-11-28Reland "fix(ext/console): fix inspecting iterators error. (#20720)" (#21370)Leo Kettmeir
2023-11-28fix(ext/node): fix Buffer.copy when sourceStart > source.length (#21345)Yoshiya Hinosawa
2023-11-28fix(ext/node): fix duplexify compatibility (#21346)Yoshiya Hinosawa