summaryrefslogtreecommitdiff
path: root/ext/node
AgeCommit message (Collapse)Author
2024-09-09fix(ext/node): Stream should be instance of EventEmitter (#25527)Satya Rohith
Closes https://github.com/denoland/deno/issues/25526
2024-09-08fix(ext/node): delay accept() call 2 ticks in net.Server#listen (#25481)Yoshiya Hinosawa
A workaround for the issue #25480 `Deno.Listener` can't be closed synchronously after `accept()` is called. This PR delays the `accept` call 2 ticks (The listener callback is called 1 tick later. So the 1 tick delay is not enough), and makes `net.Server` capable of being closed synchronously. This unblocks `npm:detect-port` and `npm:portfinder` closes #18301 closes #25175
2024-09-06feat(add): Add npm packages to package.json if present (#25477)Nathan Whitaker
Closes https://github.com/denoland/deno/issues/25321 Ended up being a larger refactoring, since we're now juggling (potentially) two config files in the same `add`, instead of choosing one. I don't love the shape of the code, but I think it's good enough Some smaller side improvements: - `deno remove` supports `jsonc` - `deno install --dev` will be a really simple change - if `deno remove` removes the last import/dependency in the `imports`/`dependencies`/`devDependencies` field, it removes the field instead of leaving an empty object
2024-09-06fix(runtime): use more null proto objects again (#25040)Kenta Moriuchi
proceed with #23921 This PR is a preparation for https://github.com/denoland/deno_lint/pull/1307 --------- Signed-off-by: Kenta Moriuchi <moriken@kimamass.com> Co-authored-by: Luca Casonato <hello@lcas.dev>
2024-09-05fix(ext/node): stub `process.cpuUsage()` (#25462)Yoshiya Hinosawa
closes #23401
2024-09-05BREAKING(fs): remove `Deno.seek[Sync]()` (#25449)Asher Gomez
Towards #22079
2024-09-05feat(ext/node): add abort helpers, process & streams fix (#25262)Luca Casonato
This commit adds: - `addAbortListener` in `node:events` - `aborted` in `node:util` - `execPath` and `execvArgs` named export from `node:process` - `getDefaultHighWaterMark` from `node:stream` The `execPath` is very hacky - because module namespaces can not have real getters, `execPath` is an object with a `toString()` method that on call returns the actual `execPath`, and replaces the `execPath` binding with the string. This is done so that we don't require the `execPath` permission on startup.
2024-09-05fix(ext/node): close upgraded socket when the underlying http connection is ↵Yoshiya Hinosawa
closed (#25387) This change fixes the handling of upgraded socket from `node:http` module. In `op_node_http_fetch_response_upgrade`, we create DuplexStream paired with `hyper::upgrade::Upgraded`. When the connection is closed from the server, the read result from `Upgraded` becomes 0. However because we don't close the paired DuplexStream at that point, the Socket object in JS side keeps alive even after the server closed. That caused the issue #20179 This change fixes it by closing the paired DuplexStream when the `Upgraded` stream returns 0 read result. closes #20179
2024-09-04chore: forward v1.46.3 release commit to main (#25425)denobot
This is the release commit being forwarded back to main for 1.46.3
2024-09-04feat(cli): give access to `process` global everywhere (#25291)Luca Casonato
2024-09-02BREAKING: remove `deno bundle` (#25339)Asher Gomez
`deno bundle` now produces: ``` error: ⚠️ `deno bundle` was removed in Deno 2. See the Deno 1.x to 2.x Migration Guide for migration instructions: https://docs.deno.com/runtime/manual/advanced/migrate_deprecations ``` `deno bundle --help` now produces: ``` ⚠️ `deno bundle` was removed in Deno 2. See the Deno 1.x to 2.x Migration Guide for migration instructions: https://docs.deno.com/runtime/manual/advanced/migrate_deprecations Usage: deno bundle [OPTIONS] Options: -q, --quiet Suppress diagnostic output --unstable Enable all unstable features and APIs. Instead of using this flag, consider enabling individual unstable features To view the list of individual unstable feature flags, run this command again with --help=unstable ```
2024-09-02fix(BREAKING): make dns record types have consistent naming (#25357)David Sherret
Closes https://github.com/denoland/deno/issues/15207
2024-08-30fix(ext/node): session close during stream setup (#25170)Caleb Lloyd
Signed-off-by: Caleb Lloyd <caleblloyd@gmail.com>
2024-08-29feat(config): Node modules option for 2.0 (#25299)Nathan Whitaker
2024-08-29chore: forward v1.46.2 release commit to main (#25296)denobot
This is the release commit being forwarded back to main for 1.46.2
2024-08-29fix: reland async context (#25140)snek
This reverts commit 71ca61e189cca9215982ce4598b7a4da8430c584. Now uses a shared implementation from deno_core.
2024-08-28refactor(ext): throw new error instead of throw error (#25272)Ian Bull
To ensure consistency across the codebase, this commit refactors the code in the `ext` folder to use `throw new Error`` instead of `throw` for throwing errors. Fixes https://github.com/denoland/deno/issues/25270
2024-08-28refactor: don't virtualize the `console` global for node mode (#25263)Luca Casonato
Turns out we only virtualized it so one could have a `Console` property, and the other one not. We can just make this `console.Console` available everywhere.
2024-08-28fix(ext/node): import RSA JWK keys (#25267)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/24129
2024-08-28fix(ext/node): export JWK public key (#25239)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/18928 Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-08-28fix(ext/node): import EC JWK keys (#25266)Divy Srivastava
2024-08-28fix(ext/node): update aead-gcm-stream to 0.3 (#25261)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/25260 Fixes https://github.com/denoland/deno/issues/25254 Fixes https://github.com/denoland/deno/issues/23693 Verified that `web-push` GCM decryption works in the browser. See `aead-gcm-stream` changes [here](https://github.com/littledivy/aead-gcm-stream/commit/a9ffd0c07c14e4b566c87bf51a20ff799b9e7f5e)
2024-08-28fix(ext/node): throw when loading `cpu-features` module (#25257)Divy Srivastava
It crashes because of NAN usage, we want to trigger the fallback case in ssh2 by throwing an error. Fixes https://github.com/denoland/deno/issues/25236
2024-08-28fix(ext/node): emit `online` event after worker thread is initialized (#25243)Nathan Whitaker
Fixes #23281. Part of #20613. We were emitting the `online` event in the constructor, so the caller could never receive it (since there was no time for them to add a listener). Instead, emit the event where it's intended – after the worker is initialized. --- After this parcel no longer freezes, but still will fail due to other bugs (which will be fixed in other PRs)
2024-08-26perf(ext/node): reduce some allocations in require (#25197)David Sherret
2024-08-26fix(node/cluster): improve stubs to make log4js work (#25146)Marvin Hagemeister
- Add missing exports to `node:cluster` - Fix default export not being an instance of `EventEmitter` - Fix aliasing of properties - Fix `disconnected` -> `disconnect` export naming This makes `log4js` work in Deno. `karma` starts too, but somehow the server isn't responding. That looks like a different issue. Fixes https://github.com/denoland/deno/issues/24858
2024-08-23chore(ext/node): use array instead of Vec to avoid wrong capacity allocation ↵Yusuke Tanaka
(#25183) This commit gets deno_node's customizer to use fixed-length array instead of `Vec` to avoid wrong capacity allocation. In the previous code we reserve a capacity of 14 for `external_references`. However, after pushing all the necessary `ExternalReference`s, it ends up with a length of 21, not 14. This means another allocation happens even though we reserve some space. To make sure that there will no longer be extra allocation, it should be a good idea to use fixed-length array here.
2024-08-23fix(ext/node): import JWK octet key pairs (#25180)Divy Srivastava
Ref https://github.com/denoland/deno/issues/24129 `kty: "okp"` is defined in [rfc8037](https://www.rfc-editor.org/rfc/rfc8037.html)
2024-08-22chore(ext/node): bump minimum required version of `dsa` to 0.6.3 (#25154)Yusuke Tanaka
This commit bumps the minimum required version of `dsa` crate to 0.6.3. This is preferable because `SigningKey::sign_prehashed_rfc6979` function we use in `deno_node` is available from this version. Ref: [dsa's CHANGELOG.md](https://github.com/RustCrypto/signatures/blob/132b04631409db1ca805aba2f62830c8e359b29f/dsa/CHANGELOG.md#063-2024-01-28)
2024-08-22refactor: remove unused AllowAllNodePermissions (#25159)David Sherret
2024-08-22chore: forward v1.46.1 release commit to main (#25155)denobot
2024-08-22fix(ext/node): http2session ready state (#25143)Caleb Lloyd
Fixes #25142 Signed-off-by: Caleb Lloyd <caleblloyd@gmail.com>
2024-08-22fix(ext/node): register `node:wasi` built-in (#25134)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/23531
2024-08-221.46.0 (#25139)denobot
Bumped versions for 1.46.0 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-08-21feat: Upgrade V8 to 12.9 (#25138)Bartek Iwańczuk
2024-08-21fix(ext/node): pass content-disposition header as string instead of bytes ↵Satya Rohith
(#25128) Closes https://github.com/denoland/deno/issues/25117
2024-08-20chore: enable no-console dlint rule (#25113)David Sherret
2024-08-20chore: Remove stray `console.error` log in `node:child_process` (#25111)Nathan Whitaker
Missed removing it before committing
2024-08-19fix(node/tty): fix `tty.WriteStream.hasColor` with different args (#25094)Marvin Hagemeister
The check in `tty.WriteStream.prototype.hasColors()` was incorrect leading to the [`yoctocolors`](https://github.com/sindresorhus/yoctocolors) package not printing any colors. Fixes https://github.com/denoland/deno/issues/24407
2024-08-18fix(node/http): wrong `req.url` value (#25081)Marvin Hagemeister
This PR addresses a regression introduced in https://github.com/denoland/deno/pull/25021 that would cause the `req.url` parameter in Node's http server to always be a single character instead of the expected value. The regression was caused by effectively calling `.indexOf()` on an empty string and thus passing the wrong index for slicing. ```js "".indexOf("/") // -> -1 request.url.slice(-1) // effectively only giving us the last character ``` Fixes https://github.com/denoland/deno/issues/25080
2024-08-17fix(ext/node): fix prismjs compatibiliy in Web Worker (#25062)Yoshiya Hinosawa
PrismJS uses `WorkerGlobalScope` and `self` for detecting browser's Web Worker context: https://github.com/PrismJS/prism/blob/59e5a3471377057de1f401ba38337aca27b80e03/prism.js#L11 Now the detection logic above is broken when it's imported from Deno's Web Worker context because we only hide `self` (Prism assumes when `WorkerGlobalScope` is available, `self` is also available). This change fixes the above by also hiding `WorkerGlobalScope` global in Node compat mode. closes #25008
2024-08-16fix(node/fs): Use correct offset and length in node:fs.read and write (#25049)Nathan Whitaker
My fix in #25030 was buggy, I forgot to pass the `byteOffset` and `byteLength`. Whoops. I also discovered that fs.read was not respecting the `offset` argument, and we were constructing a new `Buffer` for the callback instead of just passing the original one (which is what node does, and the @types/node definitions also indicate the callback should get the same type). Fixes #25028.
2024-08-15fix(node): Create additional pipes for child processes (#25016)Nathan Whitaker
Linux/macos only currently. Part of https://github.com/denoland/deno/issues/23524 (fixes it on platforms other than windows). Part of #16899 (fixes it on platforms other than windows). After this PR, playwright is functional on mac/linux.
2024-08-14feat(ext/node): support http2session.socket (#24786)Sean McArthur
Co-authored-by: Satya Rohith <me@satyarohith.com>
2024-08-14fix(node/fs): node:fs.read and write should accept typed arrays other than ↵Nathan Whitaker
Uint8Array (#25030) Part of #25028. Our underlying read/write operations in `io` assume the buffer is a Uint8Array, but we were passing in other typed arrays (in the case above it was `Int8Array`).
2024-08-14fix(node/inspector): Session constructor should not throw (#25041)Marvin Hagemeister
There is no constructor code when creating an inspector `Session` instance in Node. Also get rid of some symbols which should've been private properties. This PR doesn't yet add any new implementations though as these are mostly cosmetic changes.
2024-08-14fix: `node:inspector` not being registered (#25007)Marvin Hagemeister
For some reason we didn't register the `node:inspector` module, which lead to a panic when trying to import it. This PR registers it. Related: https://github.com/denoland/deno/issues/25004
2024-08-14fix(ext/node): don't throw when calling PerformanceObserver.observe (#25036)Luca Casonato
2024-08-14fix: dd-trace http message compat (#25021)snek
make this http incoming constructor match with node, and also handle arbitrary duplex inputs
2024-08-12chore: update the copyright of c, mjs, and jsx (#25005)Kenta Moriuchi