forked from denoland/deno
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create a new pull request by comparing changes across two branches #712
Merged
GulajavaMinistudio
merged 141 commits into
javascript-indonesias:main
from
denoland:main
Feb 3, 2025
Merged
Create a new pull request by comparing changes across two branches #712
GulajavaMinistudio
merged 141 commits into
javascript-indonesias:main
from
denoland:main
Feb 3, 2025
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes #27566 The close code wasn't sent if reason was None, defaulting to 1005. This patch allows sending close code without reason.
Populate `speed` using current scaling frequency and fix times multiplier. Fixes #27555 <table> <tr> <th>Node.js</th> <th>Deno</th> </tr> <tr> <td> ``` > os.cpus() [ { model: 'AMD Ryzen 5 7530U with Radeon Graphics', speed: 1396, times: { user: 1769930, nice: 20, sys: 525630, idle: 41325700, irq: 110060 } }, ``` </td> <td> ``` > os.cpus() [ { model: "AMD Ryzen 5 7530U with Radeon Graphics", speed: 1630, times: [Object: null prototype] { user: 1795620, nice: 20, sys: 537840, idle: 41589390, irq: 111230 } }, ``` </td> </tr> </table>
…olveDns` on some laptops with Ryzen CPU (#27572)
Closes #26171 --------- Co-authored-by: David Sherret <dsherret@gmail.com>
This splits away some npm resolution code from installation. It will allow for more easily extracting out resolution code in the future.
…27607) Moves the npm fs resolvers into the deno_resolution crate. This does not entirely move things out, but is a step in that direction.
As title. Will allow consumers to create this struct and use our behaviour. Closes #27409
Co-authored-by: dsherret <dsherret@users.noreply.github.com>
#27631) Fixes #25762. Note that some of the things in that issue are not resolved (vite/client types not working properly which has other root causes), but the wildcard module augmentation specifically is fixed by this. We were telling TSC that files with unknown media types had an extension of `.js`, so the ambient module declarations weren't applying. Instead, just don't resolve them, so the ambient declaration applies.
#27639) See the comment #25470 (comment) for the reason why we do this workaround to make `make-fetch-happen` work in Deno This PR applies the same workaround to `npm-check-updates` package. `npm-check-updates` internally uses [`npm-registry-fetch`](https://www.npmjs.com/package/npm-registry-fetch) which uses [`make-fetch-happen`](https://www.npmjs.com/package/make-fetch-happen) (the problematic package) for making http request to npm registry. The detection of `make-fetch-happen` doesn't work for `npm-check-updates` because we use call stack at `net.Socket` constructor to check if it's called from `make-fetch-happen`, but `npm-check-updates` bundles its dependency and the check doesn't work. This PR adds the check of `npm-check-updates` string in call stack in net.Socket constructor to trigger the workaroud. closes #27629
…nt environment (#27343) (#27340) Fixes #27343 Currently the node:child_process polyfill is always passing the full parent environment to all spawned subprocesses. In the case where `options.env` is provided those keys are overridden but the rest of the parent environment is still passed through. On Node the behaviour is for child processes to only inherit the parent environment when `options.env` isn't specified. When `options.env` is specified the child process inherits only those keys. This PR updates the internal node child_process polyfill so that the `clearEnv` argument is set to true when spawning the subprocess to prevent the parent environment always being inherited by default. It also fixes an issue where `normalizeSpawnArguments` wasn't returning the `env` option if `options.env` was unset.
This separates npm resolution code from npm installation (more work towards moving resolution code out of the CLI and cleaning up this code).
This PR changes the underlying buffer backed AST format we use for JavaScript-based linting plugins. It adds support for various new types, makes traversal code a lot easier and is more polished compared to previous iterations. Here is a quick summary (in no particular order): - Node prop data is separate from traversal, which makes traversal code so much easier to reason about. Previously, it was interleaved with node prop data - spans are in a separate table as well, as they are rarely needed. - schema is separate from SWC conversion logic, which makes - supports recursive plain objects - supports numbers - supports bigint - supports regex - adds all SWC nodes Apologies, this is kinda a big PR, but it's worth it imo. _Marking as draft because I need to update some tests tomorrow._
…27659) As title. After this PR all npm resolution will be out of the CLI crate.
This commit adds support for lscache backend for the Web cache API. The cache cab be configured using `DENO_CACHE_LSC_ENDPOINT` env var.
…ecking (#27853) 1. Allows resolving to `.ts` files for type checking. 2. Probes for `.ts` files to use for type checking. To emphasize, this is only for type checking.
Initial implementation of WebTransport client and server! This is very unstable because the interface should eventually shift to use hyper (h3 is on the [2025 roadmap](https://hyper.rs/contrib/roadmap/)) instead of manually messing with the the protocol, which will enable integration with Deno.serveHttp/etc and allow WebTransport over h2. This will also let us expose multiplexing. WebTransport stats will be a followup due to their complexity. Fixes: #9017
Implement [`crypto.hash`](https://nodejs.org/api/crypto.html#cryptohashalgorithm-data-outputencoding) - one-shot version of `createHash` Fixes #24945
This makes it so imports of ambient modules (e.g. `$app/environment` in svelte, any virtual module in vite, or other module provided by a bundler) don't error in the LSP. The way this works is that when we request diagnostics from TSC, we also respond with the list of ambient modules. Then, in the diagnostics code, we save diagnostics (produced by deno) that may be invalidated as an ambient module and wait to publish the diagnostics until we've received the ambient modules from TSC. The actual ambient modules you get from TSC can contain globs, e.g. `*.css`. So when we get new ambient modules, we compile them all into a regex and check erroring imports against that regex. Ambient modules should change rarely, so in most cases we should be using a pre-compiled regex, which executes in linear time (wrt the specifier length). TODO: - Ideally we should only publish once, right now we publish with the filtered specifiers and then the TSC ones - deno check (#27633)
This PR adds support for passing wildcard tasks. All matched tasks are sorted in case they have dependencies. Tasks already in the dependency tree will be pruned so that every task only runs once. ```json { "tasks": { "foo-1": "echo 'foo-1'", "foo-2": "echo 'foo-2'" } } ``` ```sh $ deno task "foo-*" Task foo-1 echo 'foo-1' foo-1 Task foo-2 echo 'foo-2' foo-2 ``` The changes in the PR look a little bigger than they really are due to formatting. For the most part, I've only needed to hoist up the task matching logic. Closes #26944 Closes #21530 --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
This is the release commit being forwarded back to main for 2.1.8 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Currently we are using the pure rust backend of `sha2`, which has subpar performance compared to asm implementations. We already depend on `ring`, so just use that instead of `sha2` for sha256/sha512 digests. This also speeds up things like S3 uploads, which calculate sha digests of the uploaded objects. On my local machine, this speeds up uploading a 100MB file (to a localhost s3 provider via`@aws-sdk/client-s3`) by about 2x <details> <summary>Benchmark:</summary> ```ts import { createHmac } from "node:crypto"; for ( const size of [1, 10, 100, 1_000, 10_000, 100_000, 1_000_000, 10_000_000] ) { const input = "a".repeat(size); Deno.bench({ name: `sha256-${size}`, fn() { const _hash = createHmac("sha256", input).update(input).digest(); }, }); Deno.bench({ name: `sha512-${size}`, fn() { const _hash = createHmac("sha512", input).update(input).digest(); }, }); } ``` </details> <details> <summary>Results (arm64 macOS):</summary> ``` --- sha256-1 --- ../../deno/target/release/deno 2.527 µs 1.240 times faster /Users/nathanwhit/.deno/bin/deno 3.132 µs --- sha512-1 --- ../../deno/target/release/deno 3.364 µs 1.071 times faster /Users/nathanwhit/.deno/bin/deno 3.603 µs --- sha256-10 --- ../../deno/target/release/deno 3.060 µs 1.027 times faster /Users/nathanwhit/.deno/bin/deno 3.144 µs --- sha512-10 --- ../../deno/target/release/deno 3.583 µs 1.047 times faster /Users/nathanwhit/.deno/bin/deno 3.751 µs --- sha256-100 --- ../../deno/target/release/deno 3.695 µs 1.244 times faster /Users/nathanwhit/.deno/bin/deno 4.598 µs --- sha512-100 --- ../../deno/target/release/deno 3.386 µs 1.188 times faster /Users/nathanwhit/.deno/bin/deno 4.021 µs --- sha256-1000 --- ../../deno/target/release/deno 4.007 µs 3.230 times faster /Users/nathanwhit/.deno/bin/deno 12.944 µs --- sha512-1000 --- ../../deno/target/release/deno 6.463 µs 1.466 times faster /Users/nathanwhit/.deno/bin/deno 9.477 µs --- sha256-10000 --- ../../deno/target/release/deno 11.674 µs 6.981 times faster /Users/nathanwhit/.deno/bin/deno 81.493 µs --- sha512-10000 --- ../../deno/target/release/deno 31.250 µs 1.740 times faster /Users/nathanwhit/.deno/bin/deno 54.364 µs --- sha256-100000 --- ../../deno/target/release/deno 82.800 µs 9.393 times faster /Users/nathanwhit/.deno/bin/deno 777.719 µs --- sha512-100000 --- ../../deno/target/release/deno 269.726 µs 1.851 times faster /Users/nathanwhit/.deno/bin/deno 499.243 µs --- sha256-1000000 --- ../../deno/target/release/deno 808.662 µs 9.427 times faster /Users/nathanwhit/.deno/bin/deno 7.623 ms --- sha512-1000000 --- ../../deno/target/release/deno 2.672 ms 1.795 times faster /Users/nathanwhit/.deno/bin/deno 4.795 ms --- sha256-10000000 --- ../../deno/target/release/deno 7.823 ms 9.868 times faster /Users/nathanwhit/.deno/bin/deno 77.201 ms --- sha512-10000000 --- ../../deno/target/release/deno 26.197 ms 1.846 times faster /Users/nathanwhit/.deno/bin/deno 48.356 ms ``` </details> <details> <summary>Results (x86_64 linux):</summary> ``` --- sha256-1 --- /home/nathanwhit/.deno/bin/deno 10.726 µs 1.229 times faster ../../../deno/target/release-lite/deno 13.184 µs --- sha512-1 --- /home/nathanwhit/.deno/bin/deno 13.177 µs 1.051 times faster ../../../deno/target/release-lite/deno 13.845 µs --- sha256-10 --- /home/nathanwhit/.deno/bin/deno 13.156 µs 1.047 times faster ../../../deno/target/release-lite/deno 13.780 µs --- sha512-10 --- /home/nathanwhit/.deno/bin/deno 14.386 µs 1.029 times faster ../../../deno/target/release-lite/deno 14.807 µs --- sha256-100 --- /home/nathanwhit/.deno/bin/deno 14.580 µs 1.083 times faster ../../../deno/target/release-lite/deno 15.789 µs --- sha512-100 --- /home/nathanwhit/.deno/bin/deno 13.477 µs 1.131 times faster ../../../deno/target/release-lite/deno 15.238 µs --- sha256-1000 --- ../../../deno/target/release-lite/deno 17.208 µs 1.116 times faster /home/nathanwhit/.deno/bin/deno 19.198 µs --- sha512-1000 --- ../../../deno/target/release-lite/deno 21.168 µs 1.026 times faster /home/nathanwhit/.deno/bin/deno 21.717 µs --- sha256-10000 --- ../../../deno/target/release-lite/deno 33.586 µs 1.990 times faster /home/nathanwhit/.deno/bin/deno 66.837 µs --- sha512-10000 --- ../../../deno/target/release-lite/deno 53.338 µs 1.009 times faster /home/nathanwhit/.deno/bin/deno 53.817 µs --- sha256-100000 --- ../../../deno/target/release-lite/deno 168.238 µs 3.063 times faster /home/nathanwhit/.deno/bin/deno 515.354 µs --- sha512-100000 --- ../../../deno/target/release-lite/deno 383.311 µs 1.036 times faster /home/nathanwhit/.deno/bin/deno 397.122 µs --- sha256-1000000 --- ../../../deno/target/release-lite/deno 1.474 ms 3.471 times faster /home/nathanwhit/.deno/bin/deno 5.115 ms --- sha512-1000000 --- ../../../deno/target/release-lite/deno 3.658 ms 1.057 times faster /home/nathanwhit/.deno/bin/deno 3.865 ms --- sha256-10000000 --- ../../../deno/target/release-lite/deno 16.438 ms 3.136 times faster /home/nathanwhit/.deno/bin/deno 51.556 ms --- sha512-10000000 --- ../../../deno/target/release-lite/deno 37.128 ms 1.056 times faster /home/nathanwhit/.deno/bin/deno 39.220 ms ``` </details>
This is the release commit being forwarded back to main for 2.1.9 Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Fixes `gcp-metadata@6.1.1` ``` % deno eval "import 'npm:gcp-metadata@6.1.1'" # main error: Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'GOOGLE_SDK_NODE_LOGGING') at Object.log (file:///Users/divy/Library/Caches/deno/npm/registry.npmjs.org/google-logging-utils/0.0.2/build/src/logging-utils.js:356:36) at Object.<anonymous> (file:///Users/divy/Library/Caches/deno/npm/registry.npmjs.org/gcp-metadata/6.1.1/build/src/index.js:52:20) at Object.<anonymous> (file:///Users/divy/Library/Caches/deno/npm/registry.npmjs.org/gcp-metadata/6.1.1/build/src/index.js:409:4) at Module._compile (node:module:745:34) at loadMaybeCjs (node:module:770:10) at Object.Module._extensions..js (node:module:755:12) at Module.load (node:module:662:32) at Function.Module._load (node:module:534:12) at Module.require (node:module:681:19) at require (node:module:812:16) % target/debug/deno eval "import 'npm:gcp-metadata@6.1.1'" # this PR ``` --------- Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com> Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
Fixes #27528 Can't really trigger the panic myself hence no test.
These have been failing locally for some time.
Co-authored-by: Kenta Moriuchi <moriken@kimamass.com>
require RW permission on the database path except when using in-memory mode.
f13f0ec
into
javascript-indonesias:main
7 of 17 checks passed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.