summaryrefslogtreecommitdiff
path: root/ext
AgeCommit message (Collapse)Author
2024-11-19feat(ext/node): perf_hooks.monitorEventLoopDelay() (#26905)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/20961 Depends on https://github.com/denoland/deno_core/pull/965 and https://github.com/denoland/deno_core/pull/966
2024-11-18feat(ext/fetch): Make fetch client parameters configurable (#26909)Yusuke Tanaka
This commit makes HTTP client parameters used in `fetch` API configurable on the extension initialization via a callback `client_builder_hook` that users can provide. The main motivation behind this change is to allow `deno_fetch` users to tune the HTTP/2 client to suit their needs, although Deno CLI users will not benefit from it as no JavaScript interface is exposed to set these parameters currently. It is up to users whether to provide a hook function. If not provided, the default configuration from hyper crate will be used. Ref #26785
2024-11-18feat(ext/http): Make http server parameters configurable (#26785)Yusuke Tanaka
This commit makes http server parameters configurable on the extension initialization via two callbacks users can provide. The main motivation behind this change is to allow `deno_http` users to tune the HTTP/2 server to suit their needs, although Deno CLI users will not benefit from it as no JavaScript interface is exposed to set these parameters currently. It is up to users whether to provide hook functions. If not provided, the default configuration from hyper crate will be used.
2024-11-19fix(node/crypto): support promisify on generateKeyPair (#26913)Marvin Hagemeister
Calling `promisify(generateKeyPair)` didn't work as expected. It requires a custom promisify implementation. This was easy to fix thanks to the excellent debugging investigation in https://github.com/denoland/deno/issues/26910 Fixes https://github.com/denoland/deno/issues/26910 Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-11-18feat(runtime): remove public OTEL trace API (#26854)Luca Casonato
This PR removes the public Deno.tracing.Span API. We are not confident we can ship an API that is better than the `@opentelemetry/api` API, because V8 CPED does not support us using `using` to manage span context. If this changes, we can revisit this decision. For now, users wanting custom spans can instrument their code using the `@opentelemetry/api` API and `@deno/otel`. This PR also speeds up the OTEL trace generation by a 30% by using Uint8Array instead of strings for the trace ID and span ID.
2024-11-17chore: Make ext/net/tcp.rs public (#26891)Benjamin Swerdlow
2024-11-17fix(ext/webgpu): Create GPUQuerySet converter before usage (#26883)reczkok
Converter for `GPUComputePassTimestampWrites` uses converter for `GPUQuerySet` before it is defined making it impossible to use. This PR simply reorders converter creation to resolve this issue. Logging the `GPUQuerySet` still fails (as mentioned in #26769) but it is now usable inside pass descriptors and works when used.
2024-11-16fix(ext/node): New async setInterval function to improve the nodejs ↵/usr/bin/cat
compatibility (#26703) Closes #26499
2024-11-16fix(ext/cache): gracefully error when cache creation failed (#26895)Bartek Iwańczuk
Removes panic reported in https://github.com/denoland/deno/issues/26893
2024-11-15refactor: use boxed_error in some places (#26887)David Sherret
2024-11-15feat(fetch): accept async iterables for body (#26882)Luca Casonato
Reland of #24623, but with a fix for `String` objects. Co-authored-by: crowlkats <crowlkats@toaxl.com>
2024-11-15feat(ext/fetch): allow embedders to use `hickory_dns_resolver` instead of ↵Sahand Akbarzadeh
default `GaiResolver` (#26740) Allows embedders to use `hickory-dns-resolver` instead of threaded "getaddrinfo" resolver in the `fetch()` implementation.
2024-11-14refactor(resolver): move more resolution code into deno_resolver (#26873)David Sherret
Follow-up to cjs refactor. This moves most of the resolution code into the deno_resolver crate. Still pending is the npm resolution code.
2024-11-14fix: otel resiliency (#26857)snek
Improving the breadth of collected data, and ensuring that the collected data is more likely to be successfully reported. - Use `log` crate in more places - Hook up `log` crate to otel - Switch to process-wide otel processors - Handle places that use `process::exit` Also adds a more robust testing framework, with a deterministic tracing setting. Refs: https://github.com/denoland/deno/issues/26852
2024-11-13feat(node): stabilize detecting if CJS via `"type": "commonjs"` in a ↵David Sherret
package.json (#26439) This will respect `"type": "commonjs"` in a package.json to determine if `.js`/`.jsx`/`.ts`/.tsx` files are CJS or ESM. If the file is found to be ESM it will be loaded as ESM though.
2024-11-13fix(ext/node): zlib.crc32() (#26856)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/26845
2024-11-13fix(ext/node): use ERR_NOT_IMPLEMENTED for notImplemented (#26853)Divy Srivastava
2024-11-13feat: OpenTelemetry Tracing API and Exporting (#26710)snek
Initial import of OTEL code supporting tracing. Metrics soon to come. Implements APIs for https://jsr.io/@deno/otel so that code using OpenTelemetry.js just works tm. There is still a lot of work to do with configuration and adding built-in tracing to core APIs, which will come in followup PRs. --------- Co-authored-by: Luca Casonato <hello@lcas.dev>
2024-11-13feat(ext/fs): add ctime to Deno.stats and use it in node compat layer (#24801)Łukasz Czerniawski
This PR fixes #24453, by introducing a ctime (using ctime for UNIX and ChangeTime for Windows) to Deno.stats. Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-11-13fix(ext/node): process.getBuiltinModule (#26833)Divy Srivastava
Closes https://github.com/denoland/deno/issues/26832
2024-11-12chore: make fields public on `PermissionDeniedError` and ↵Richard Carson
`deno_kv::KvConfig` (#26798) A few small changes to avoid needing unsafe mem transmutes to instantiate the extensions --------- Signed-off-by: Richard Carson <Rscarson@rogers.com>
2024-11-12fix(ext/websocket): initialize `error` attribute of WebSocket ErrorEvent ↵Divy Srivastava
(#26796) Fixes https://github.com/denoland/deno/issues/26216 Not required by the spec but Discord.js depends on it, see https://github.com/denoland/deno/issues/26216#issuecomment-2466060306
2024-11-12fix(ext/node): add autoSelectFamily option to net.createConnection (#26661)Yoshiya Hinosawa
2024-11-12fix(ext/http): prefer brotli for `accept-encoding: gzip, deflate, br, zstd` ↵Satya Rohith
(#26814) Closes https://github.com/denoland/deno/issues/26813
2024-11-10chore: forward v2.0.6 release commit to main (#26804)denobot
This is the release commit being forwarded back to main for 2.0.6 Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com> Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-11-08fix: performance.timeOrigin (#26787)snek
`performance.timeOrigin` was being set from when JS started executing, but `op_now` measures from an `std::time::Instant` stored in `OpState`, which is created at a completely different time. This caused `performance.timeOrigin` to be very incorrect. This PR corrects the origin and also cleans up some of the timer code. Compared to `Date.now()`, `performance`'s time origin is now consistently within 5us (0.005ms) of system time. ![image](https://github.com/user-attachments/assets/0a7be04a-4f6d-4816-bd25-38a2e6136926)
2024-11-08feat(ext/http): abort event when request is cancelled (#26781)Divy Srivastava
```js Deno.serve(async (req) => { const { promise, resolve } = Promise.withResolvers<void>(); req.signal.addEventListener("abort", () => { resolve(); }); await promise; return new Response("Ok"); }); ```
2024-11-08fix(ext/cache): don't panic when creating cache (#26780)Divy Srivastava
2024-11-07feat(ext/http): abort signal when request is cancelled (#26761)Divy Srivastava
Closes https://github.com/denoland/deno/issues/21653
2024-11-06refactor: use concrete error type for remaining ops (#26746)Leo Kettmeir
2024-11-06refactor(ext/net): Use hickory dns instead of unmaintained trust-dns (#26741)Kaveh
This PR replaces the unmaintained and rebranded `trust-dns` to `hickory` for resolver in `deno_net`.
2024-11-06fix(node:zlib): gzip & gzipSync should accept ArrayBuffer (#26762)Satya Rohith
Closes https://github.com/denoland/deno/issues/26638
2024-11-06fix(ext/node): better inspector support (#26471)snek
implement local inspector future changes: - wire up InspectorServer to enable open/close/url - wire up connectToMainThread Fixes https://github.com/denoland/deno/issues/25004
2024-11-06chore: forward v2.0.5 release commit to main (#26755)denobot
This is the release commit being forwarded back to main for 2.0.5 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-11-04fix(ext/node): add `findSourceMap` to the default export of `node:module` ↵Nathan Whitaker
(#26720) Next.js 15.0.2 tries to use this and errors out
2024-11-04refactor(runtime/permissions): use concrete error types (#26464)Leo Kettmeir
2024-11-04chore: update dlint to v0.68.0 for internal (#26711)Kenta Moriuchi
2024-11-01fix: improved support for cjs and cts modules (#26558)David Sherret
* cts support * better cjs/cts type checking * deno compile cjs/cts support * More efficient detect cjs (going towards stabilization) * Determination of whether .js, .ts, .jsx, or .tsx is cjs or esm is only done after loading * Support `import x = require(...);` Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-11-01chore: upgrade to rust 1.82 and LLVM 19 (#26615)Divy Srivastava
Upgrade to rust 1.82 and LLVM 19 . Removes one webusb test because `requestAdapter` not working on new ubuntu 24 runners
2024-10-31fix(node): Implement `os.userInfo` properly, add missing `toPrimitive` (#24702)Nathan Whitaker
Fixes the implementation of `os.userInfo`, and adds a missing `toPrimitive` for `tmpdir`. This allows us to enable the corresponding node_compat test.
2024-10-31fix(ext/node): resolve exports even if parent module filename isn't present ↵Nathan Whitaker
(#26553) Fixes https://github.com/denoland/deno/issues/26505 I'm not exactly sure how this case comes about (I tried to write tests for it but couldn't manage to reproduce it), but what happens is the parent filename ends up null, and we bail out of resolving the specifier in package exports. I've checked, and in node the parent filename is also null (so that's not a bug on our part), but node continues to resolve even in that case. So this PR should match node's behavior more closely than we currently do.
2024-10-31fix(ext/node): convert errors from `fs.readFile/fs.readFileSync` to node ↵Nathan Whitaker
format (#26632) Fixes the original issue reported in #26404. storybook runs into other errors after this PR (the new errors will be fixed in other PRs). Some code used by a dependency of storybook does a [string comparison on the error message](https://github.com/chromaui/chromatic-cli/blob/ce30b2be343cb96a0826390b95ea42befb2be547/node-src/lib/getConfiguration.ts#L88-L92) thrown here to check for a file not found error.
2024-10-31fix: clamp smi in fast calls by default (#26506)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/26480 Ref https://github.com/denoland/deno_core/commit/d2945fb65bca56ebfa7bb80556a4c8f4330d2315
2024-10-30fix: remove permission check in op_require_node_module_paths (#26645)David Sherret
2024-10-30fix(ext/node): return `this` from `http.Server.ref/unref()` (#26647)Nathan Whitaker
Fixes https://github.com/denoland/deno/issues/26642
2024-10-30chore: forward v2.0.4 release commit to main (#26636)denobot
This is the release commit being forwarded back to main for 2.0.4 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com>
2024-10-29Revert "fix(ext/node): fix dns.lookup result ordering (#26264)" (#26621)Yoshiya Hinosawa
This reverts commit d59599fc187c559ee231882773e1c5a2b932fc3d. Closes #26588
2024-10-29fix(ext/napi): export dynamic symbols list for {Free,Open}BSD (#26605)Volker Schlecht
The two BSD ports are reusing the Linux code here.
2024-10-29fix(ext/node): compatibility with {Free,Open}BSD (#26604)Volker Schlecht
Ports for both BSDs contain patches to the same effect. See https://github.com/freebsd/freebsd-ports/blob/main/www/deno/files/patch-ext_node_ops_fs.rs and https://github.com/openbsd/ports/blob/8644910cae24458306b6a7c4ef4ef7811bc3d1f5/lang/deno/patches/patch-ext_node_ops_fs_rs
2024-10-29Revert "fix(ext/node): use primordials in `ext/node/polyfills/https.ts` ↵Bartek Iwańczuk
(#26323)" (#26613) …s` (#26323)" This reverts commit afb33b3c2597c9ec943f71218b236486fbc86e23. Reverting because it caused a regression - https://github.com/denoland/deno/issues/26612. Closes https://github.com/denoland/deno/issues/26612.