summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2024-08-12fix(ext/node): don't concat set-cookie in ServerResponse.appendHeader (#25000)Luca Casonato
Follow-on to https://github.com/denoland/deno/pull/24216/files#r1642188672
2024-08-11fix(ext/node): rewrite X509Certificate resource and add `publicKey()` (#24988)Divy Srivastava
**Changes**: - Remove unsafe usage, rewrite Rust representation with `yoke`. - Implement `X509Certificate.prototype.publicKey()` Fixes https://github.com/denoland/deno/issues/23307
2024-08-11fix(ext/node): support ieee-p1363 ECDSA signatures and pss salt len (#24981)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/22919
2024-08-11fix(ext/node): createBrotliCompress params (#24984)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/24416
2024-08-09fix(ext/node): use pem private keys in createPublicKey (#24969)Luca Casonato
2024-08-09fix: stub `node:module.register()` (#24965)Marvin Hagemeister
This is commonly used to register loading non standard file types. But some libs also register TS loaders which Deno supports natively, like the npm `payload` package. This PR unblocks those. Fixes https://github.com/denoland/deno/issues/24902
2024-08-09fix(ext/node): ed25519 signing and cipheriv autopadding fixes (#24957)Luca Casonato
- Return auth tag for GCM ciphers from auto padding shortcircuit - Use _ring_ for ed25519 signing --------- Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-08-09chore: make node:http.OutgoingMessage a function (#24853)snek
For dd-trace tests to succeed, `OutgoingMessage` should be a function instead of a class.
2024-08-08fix(ext/fetch): include TCP src/dst socket info in error messages (#24939)Yusuke Tanaka
This commit makes `fetch` error messages include source and destination TCP socket info i.e. port number and IP address for better debuggability. Closes #24922
2024-08-08fix(ext/node): add `CipherIv.setAutoPadding()` (#24940)Divy Srivastava
Co-Authored-By: Luca Casonato <hello@lcas.dev> Fixes https://github.com/denoland/deno/issues/21804 Ref https://github.com/denoland/deno/issues/20924 --------- Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com> Co-authored-by: Luca Casonato <hello@lcas.dev>
2024-08-08fix(node/util): add missing `debug` alias of `debuglog` (#24944)Marvin Hagemeister
Add the missing `node:util.debug` export which is an alias of `node:util.debuglog`, see https://nodejs.org/api/util.html#utildebugsection
2024-08-08fix(ext/node): client closing streaming request shouldn't terminate http ↵Satya Rohith
server (#24946) Closes https://github.com/denoland/deno/issues/22820
2024-08-08fix(node/crypto): Assign publicKey and privateKey with let instead of const ↵Birk Skyum
(#24943) Because public/private key are reassigned, they should be `let` instead of `const`. Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-08-08fix(ext/node): add crypto.diffieHellman (#24938)Luca Casonato
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com> Closes #21806
2024-08-07fix(ext/fetch): include URL and error details on fetch failures (#24910)Yusuke Tanaka
This commit improves error messages that `fetch` generates on failure. Fixes #24835
2024-08-07fix: `rename` watch event missing (#24893)Marvin Hagemeister
This PR ensures that we forward a `rename` event in our file watcher. The rust lib we use combines that with the `modify` event. This fixes a compatibility issue with Node too, which sends the `rename` event as well. Fixes https://github.com/denoland/deno/issues/24880
2024-08-07fix(webgpu): Fix `GPUAdapter#isFallbackAdapter` and `GPUAdapter#info` ↵Kenta Moriuchi
properties (#24914) Fixed `GPUAdapter` bugs: * `GPUAdapter#isFallbackAdapter` being `undefined` * `GPUAdapter#info` throwing `TypeError` * introduced by #24783 * `GPUAdapter#info` closing adapter resources * introduced by #23752
2024-08-07feat(ext/node): rewrite crypto keys (#24463)Luca Casonato
This completely rewrites how we handle key material in ext/node. Changes in this PR: - **Signing** - RSA - RSA-PSS 🆕 - DSA 🆕 - EC - ED25519 🆕 - **Verifying** - RSA - RSA-PSS 🆕 - DSA 🆕 - EC 🆕 - ED25519 🆕 - **Private key import** - Passphrase encrypted private keys 🆕 - RSA - PEM - DER (PKCS#1) 🆕 - DER (PKCS#8) 🆕 - RSA-PSS - PEM - DER (PKCS#1) 🆕 - DER (PKCS#8) 🆕 - DSA 🆕 - EC - PEM - DER (SEC1) 🆕 - DER (PKCS#8) 🆕 - X25519 🆕 - ED25519 🆕 - DH - **Public key import** - RSA - PEM - DER (PKCS#1) 🆕 - DER (PKCS#8) 🆕 - RSA-PSS 🆕 - DSA 🆕 - EC 🆕 - X25519 🆕 - ED25519 🆕 - DH 🆕 - **Private key export** - RSA 🆕 - DSA 🆕 - EC 🆕 - X25519 🆕 - ED25519 🆕 - DH 🆕 - **Public key export** - RSA - DSA 🆕 - EC 🆕 - X25519 🆕 - ED25519 🆕 - DH 🆕 - **Key pair generation** - Overhauled, but supported APIs unchanged This PR adds a lot of new individual functionality. But most importantly because of the new key material representation, it is now trivial to add new algorithms (as shown by this PR). Now, when adding a new algorithm, it is also widely supported - for example previously we supported ED25519 key pair generation, but we could not import, export, sign or verify with ED25519. We can now do all of those things.
2024-08-06feat: vm rewrite (#24596)snek
rewrite vm implementation to increase compat. vm.Module+importModuleDynamically callbacks should be added in a followup.
2024-08-06BREAKING(webgpu/unstable): Replace async .requestAdapterInfo() with sync ↵Divy Srivastava
.info (#24783) Closes https://github.com/denoland/deno/issues/24779 Ref https://github.com/gpuweb/gpuweb/pull/4662
2024-08-06docs: improve TextDecoder and TextEncoder jsdoc (#24890)Ryan Dahl
2024-08-06fix(ext/web): make TextDecoderResource use cppgc (#24888)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/24878
2024-08-06feat(fetch): accept async iterables for body (#24623)Leo Kettmeir
Implements https://github.com/whatwg/webidl/pull/1397 Fixes #21454 Closes #24849
2024-08-06fix(ext/web): make CompressionResource garbage collectable (#24884)Divy Srivastava
2024-08-06docs(ext/canvas): document public Canvas APIs (#24895)Yoshiya Hinosawa
2024-08-05fix(node): Fix node IPC serialization for objects with undefined values (#24894)Nathan Whitaker
We were serializing `{ a: undefined }` to `{ a: null }` instead of `{}`
2024-08-05feat: upgrade deno_core (#24886)snek
Fixes: https://github.com/denoland/deno/issues/24869 Includes changes for `node:vm` rewrite.
2024-08-05fix(urlpattern): correct typings for added APIs (#24881)Leo Kettmeir
2024-08-05feat(urlpattern): add ignoreCase option & hasRegExpGroups property, and fix ↵Leo Kettmeir
spec discrepancies (#24741) Fixes #20906 Fixes #24266 Closes #21073 --------- Signed-off-by: Leo Kettmeir <crowlkats@toaxl.com> Co-authored-by: Luca Casonato <lucacasonato@yahoo.com>
2024-08-02Revert "feat: async context" (#24856)snek
Reverts denoland/deno#24402 deno_web can't depend on code in runtime
2024-08-02feat: async context (#24402)snek
We are switching to ContinuationPreservedEmbedderData. This allows adding async context tracking to the various async operations that deno provides. Fixes: https://github.com/denoland/deno/issues/7010 Fixes: https://github.com/denoland/deno/issues/22886 Fixes: https://github.com/denoland/deno/issues/24368
2024-08-02fix(ext/node): node:zlib coerces quality 10 to 9.5 (#24850)Bartek Iwańczuk
Fixes https://github.com/denoland/deno/issues/24572
2024-08-02Revert "perf(ext/node): improve `Buffer` from string performance" (#24851)Luca Casonato
2024-08-02docs: fix typos (#24820)Andreas Deininger
This PR fixes various typos I spotted in the project.
2024-08-02perf(ext/http): Reduce size of `ResponseBytesInner` (#24840)Nathan Whitaker
I noticed [`set_response_body`](https://github.com/nathanwhit/deno/blob/ce42f82b5a985e5f1482dff97a7268019a8e79ea/ext/http/service.rs#L439-L443) was unexpectedly hot in profiles, with most of the time being spent in `memmove`. It turns out that `ResponseBytesInner` was _massive_ (5624 bytes), so every time we moved a `ResponseBytesInner` (for instance in `set_response_body`) we were doing a >5kb memmove, which adds up pretty quickly. This PR boxes the two larger variants (the compression streams), shrinking `ResponseBytesInner` to a reasonable 48 bytes. --- Benchmarked with a simple hello world server: ```ts // hello-server.ts Deno.serve((_req) => { return new Response("Hello world"); }); // run with `deno run -A hello-server.ts` // in separate terminal `wrk -d 10s http://127.0.0.1:8000` ``` Main: ``` Running 10s test @ http://127.0.0.1:8000/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 53.39us 9.53us 0.98ms 92.78% Req/Sec 86.57k 3.56k 91.58k 91.09% 1739319 requests in 10.10s, 248.81MB read Requests/sec: 172220.92 Transfer/sec: 24.64MB ``` This PR: ``` Running 10s test @ http://127.0.0.1:8000/ 2 threads and 10 connections Thread Stats Avg Stdev Max +/- Stdev Latency 45.44us 8.49us 0.91ms 90.04% Req/Sec 100.65k 2.26k 102.65k 96.53% 2022296 requests in 10.10s, 289.29MB read Requests/sec: 200226.20 Transfer/sec: 28.64MB ``` So a nice ~15% bump. (With response body compression, the gain is ~10% for gzip and neutral for brotli)
2024-08-01fix: regressions around Error.prepareStackTrace (#24839)Bartek Iwańczuk
Includes: - https://github.com/denoland/deno_core/pull/858 - https://github.com/denoland/deno_core/pull/856 Fixes https://github.com/denoland/deno/issues/24782 Fixes https://github.com/denoland/deno/issues/24825
2024-08-01fix(ext/webgpu): assign missing `constants` property of shader about ↵Hajime-san
`GPUDevice.createRenderPipeline[Async]` (#24803) fixes https://github.com/denoland/deno/issues/24287
2024-08-01fix(ext/console): render properties of Intl.Locale (#24827)Leo Kettmeir
Fixes #21271 --------- Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-08-01fix(ext/http): correctly consume response body in `Deno.serve` (#24811)Luca Casonato
Prior to this commit, you could return a `Response` created from a string or Uint8Array multiple times. Now you can't do that anymore.
2024-08-01fix(ext/crypto): respect offsets when writing into ab views in ↵Luca Casonato
randomFillSync (#24816)
2024-07-31feat: upgrade V8 to 12.8 (#24693)snek
- upgrade to v8 12.8 - optimizes DataView bigint methods - fixes global interceptors - includes CPED methods for ALS - fix global resolution - makes global resolution consistent using host_defined_options. originally a separate patch but due to the global interceptor bug it needs to be included in this pr for all tests to pass.
2024-08-01fix(ext/fetch): use correct ALPN to socks5 proxies (#24817)Sean McArthur
Closes #24632 Closes #24719
2024-07-31chore: forward v1.45.5 release commit to main (#24818)denobot
2024-07-31perf(ext/fetch): speed up `resp.clone()` (#24812)Luca Casonato
2024-07-31fix(ext/node): handle node child_process with --v8-options flag (#24804)Luca Casonato
Makes `v8flags` package from NPM work.
2024-07-31fix(ext/webgpu): don't crash while constructing GPUOutOfMemoryError (#24807)Luca Casonato
2024-07-31fix(node/fs/promises): watch should be async iterable (#24805)Marvin Hagemeister
The way `fs.watch` works is different in `node:fs/promises` than `node:fs`. It has a different function signature and it returns an async iterable instead, see https://nodejs.org/api/fs.html#fspromiseswatchfilename-options Fixes https://github.com/denoland/deno/issues/24661
2024-07-31fix(node/timers/promises): add scheduler APIs (#24802)Marvin Hagemeister
This PR adds the experimental `scheduler` APIs in Node's `timers/promises` module. See https://nodejs.org/api/timers.html#timerspromisesschedulerwaitdelay-options Fixes https://github.com/denoland/deno/issues/24800
2024-07-30fix(node): Rework node:child_process IPC (#24763)Nathan Whitaker
Fixes https://github.com/denoland/deno/issues/24756. Fixes https://github.com/denoland/deno/issues/24796. This also gets vitest working when using [`--pool=forks`](https://vitest.dev/guide/improving-performance#pool) (which is the default as of vitest 2.0). Ref https://github.com/denoland/deno/issues/23882. --- This PR resolves a handful of issues with child_process IPC. In particular: - We didn't support sending typed array views over IPC - Opening an IPC channel resulted in the event loop never exiting - Sending a `null` over IPC would terminate the channel - There was some UB in the read implementation (transmuting an `&[u8]` to `&mut [u8]`) - The `send` method wasn't returning anything, so there was no way to signal backpressure (this also resulted in the benchmark `child_process_ipc.mjs` being misleading, as it tried to respect backpressure. That gave node much worse results at larger message sizes, and gave us much worse results at smaller message sizes). - We weren't setting up the `channel` property on the `process` global (or on the `ChildProcess` object), and also didn't have a way to ref/unref the channel - Calling `kill` multiple times (or disconnecting the channel, then calling kill) would throw an error - Node couldn't spawn a deno subprocess and communicate with it over IPC
2024-07-30fix(compile/windows): handle cjs re-export of relative path with parent ↵David Sherret
component (#24795) Closes https://github.com/denoland/deno/issues/24785