summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-13fix(node): add nul byte to statfs path on windows (#22905)Nayeem Rahman
2024-03-13fix: stop type checking during runtime (#22854)David Sherret
In addition to the reasons for this outlined by @nayeemrmn in #14877 (which I think are reasons alone to not do this), this simplifies things a lot because then we don't need to implement the following: 1. Need to handle a JSR module dynamically importing a module within it. 2. Need to handle importing an export of a JSR dep then another export dynamically loaded later. Additionally, people should be running `deno check dynamic_import.ts` instead of relying on this behaviour. Landing this as a fix because it's blocking people in some scenarios and the current behaviour is broken (I didn't even have to change any tests to remove this, which is bad). Closes #22852 Closes #14877 Closes #22580
2024-03-13perf(permissions): Fast exit from checks when permission is in ↵Matt Mastracci
"fully-granted" state (#22894) Skips the access check if the specific unary permission is in an all-granted state. Generally prevents an allocation or two. Hooks up a quiet "all" permission that is automatically inherited. This permission will be used in the future to indicate that the user wishes to accept all side-effects of the permissions they explicitly granted. The "all" permission is an "ambient flag"-style permission that states whether "allow-all" was passed on the command-line.
2024-03-13chore(lsp): remove enablePaths compat path (#22895)Nayeem Rahman
2024-03-13fix(ext/node): make worker ids sequential (#22884)Satya Rohith
2024-03-13fix(ext/node): allow automatic worker_thread termination (#22647)Satya Rohith
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2024-03-13chore: rough first pass on spec tests (#22877)David Sherret
2024-03-13chore(permissions): add allow_all flag (#22890)Matt Mastracci
Unlocking a potential perf optimization at a later date -- carry the `allow_all` flag into the permission container.
2024-03-13chore: upgrade deno_core to 0.270.0 (#22826)Divy Srivastava
Upgrade to V8 12.3
2024-03-13feat(node): implement fs.statfs() (#22862)Nayeem Rahman
2024-03-13fix(ext/node): initial `crypto.createPublicKey()` support (#22509)Asher Gomez
Closes #21807 Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-03-13feat(ext/node): add more named curves in `crypto.generateKeyPair[Sync]()` ↵Asher Gomez
(#22882) Towards fixing #21761
2024-03-13chore: explicitly type `state.put` for permissions (#22881)Divy Srivastava
2024-03-12fix(runtime): negate partial condition for deny flags (#22866)Nayeem Rahman
2024-03-12fix(slow-types): improved exports tracing and infer type literals in as ↵David Sherret
exprs (#22849) Several fixes in deno_graph: * https://github.com/denoland/deno_graph/pull/411 * https://github.com/denoland/deno_graph/pull/413 * https://github.com/denoland/deno_graph/pull/414 * https://github.com/denoland/deno_graph/pull/415 * https://github.com/denoland/deno_graph/pull/416 * https://github.com/denoland/deno_graph/pull/417 Also created https://github.com/denoland/publish_smoke_tests to help prevent regressions in the future. Closes https://github.com/denoland/deno/issues/22829 Closes https://github.com/denoland/deno/issues/22819 Closes https://github.com/denoland/deno/issues/22802
2024-03-12refactor: add `deno_permissions` crate (#22236)Divy Srivastava
Issue https://github.com/denoland/deno/issues/22222 ![image](https://github.com/denoland/deno/assets/34997667/2af8474b-b919-4519-98ce-9d29bc7829f2) This PR moves `runtime/permissions` code to a upstream crate called `deno_permissions`. The `deno_permissions::PermissionsContainer` is put into the OpState and can be used instead of the current trait-based permissions system. For this PR, I've migrated `deno_fetch` to the new crate but kept the rest of the trait-based system as a wrapper of `deno_permissions` crate. Doing the migration all at once is error prone and hard to review. Comparing incremental compile times for `ext/fetch` on Mac M1: | profile | `cargo build --bin deno` | `cargo plonk build --bin deno` | | --------- | ------------- | ------------------- | | `debug` | 20 s | 0.8s | | `release` | 4 mins 12 s | 1.4s |
2024-03-12fix(ext/node): flush brotli decompression stream (#22856)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/22259 The decompressed input size was not restored because of improper flushing of the CBrotliDecompressStream state.
2024-03-11chore: enable clippy unused_async rule (#22834)David Sherret
2024-03-12chore: make Node setup script less sensitive to changes (#22855)Asher Gomez
This change tweaks the Node setup script less sensitive to changes by removing the test counter line in `tools/node_compat/TODO.md`. Previously, this line would cause linting issues when two Node compat changes occured one after another. See https://github.com/denoland/deno/actions/runs/8226735149/job/22493585874 Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-03-11fix(cli): use Instant for test times (#22853)Matt Mastracci
Fixes https://github.com/denoland/deno_std/issues/4473
2024-03-11test(ext/node): add worker_threads test for SharedArrayBuffer (#22850)Bartek Iwańczuk
Follow up to https://github.com/denoland/deno/pull/22815
2024-03-11fix(ext/node): Match punycode module behavior to node (#22847)Nathan Whitaker
Fixes #19214. We were using the `idna` crate to implement our polyfill for `punycode.toASCII` and `punycode.toUnicode`. The `idna` crate is correct, and adheres to the IDNA2003/2008 spec, but it turns out `node`'s implementations don't really follow any spec! Instead, node splits the domain by `'.'` and punycode encodes/decodes each part. This means that node's implementations will happily work on codepoints that are disallowed by the IDNA specs, causing the error in #19214. While fixing this, I went ahead and matched the node behavior on all of the punycode functions and enabled node's punycode test in our `node_compat` suite.
2024-03-11fix(ext/node): make worker setup synchronous (#22815)Bartek Iwańczuk
This commit fixes race condition in "node:worker_threads" module were the first message did a setup of "threadId", "workerData" and "environmentData". Now this data is passed explicitly during workers creation and is set up before any user code is executed. Closes https://github.com/denoland/deno/issues/22783 Closes https://github.com/denoland/deno/issues/22672 --------- Co-authored-by: Satya Rohith <me@satyarohith.com>
2024-03-11fix(runtime): Restore default signal handler after user handlers are ↵Nathan Whitaker
unregistered (#22757) <!-- Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. --> Fixes #22724. Fixes #7164. This does add a dependency on `signal-hook`, but it's just a higher level API on top of `signal-hook-registry` (which we and `tokio` already depend on) and doesn't add any transitive deps.
2024-03-11chore: fix child_process test (#22845)David Sherret
This was failing in old versions of git.
2024-03-11chore: hidden tool for overwriting files with fast check output (#22822)David Sherret
Not sure if we should do this, but it's a nice hidden tool that overwrites the working tree with the fast check output.
2024-03-11build: fix node_compat/setup.ts check (#22842)Bartek Iwańczuk
2024-03-11fix(ext/node): worker_threads.parentPort is updated on startup (#20794)Bartek Iwańczuk
This addresses https://github.com/denoland/deno/issues/20613#issuecomment-1739962483.
2024-03-10chore: remove unused bench job (#22188)Luca Casonato
2024-03-11fix(ext/node) implement receiveMessageOnPort for node:worker_threads (#22766)mash-graz
Implementation of `receiveMessageOnPort` for `node:worker_threads` Fixes: #22702
2024-03-10fix(node:http) Export `validateHeaderName` and `validateHeaderValue` ↵mash-graz
functions (#22616) Modify `_http_outgoing.ts` to support the extended signature of `validateHeaderName()` used since node v19.5.0/v18.14.0 by adding the `label` parameter. (see: https://nodejs.org/api/http.html#httpvalidateheadernamename-label) Making both validation functions accessible as public exports of `node:http` Fixes: #22614
2024-03-10chore: update WPT expectations (#22838)Asher Gomez
Fixes the latest failure. See https://github.com/denoland/deno/actions/runs/8218359853/job/22475137521
2024-03-10chore: replace 'call' to 'execute' in error messages (#22579)Kenta Moriuchi
Since both "call" and "execute" were used in error messages, I replaced them with "execute," which is more used.
2024-03-09fix(publish): regression - publishing with vendor folder (#22830)David Sherret
In https://github.com/denoland/deno/pull/22720/files#diff-d62d85de2a7ffb816cd2fdbaa47e588352f521c7c43d058b75649bbb255e0ae1R70 , I copy and pasted from another area of the code and didn't think about removing how it ignores the vendor folder by default.
2024-03-10fix: fix crate vulnerabilities (#22825)Dimitris Apostolou
https://rustsec.org/advisories/RUSTSEC-2024-0003 https://rustsec.org/advisories/RUSTSEC-2024-0020
2024-03-09fix(node): require of pkg json imports was broken (#22821)David Sherret
2024-03-09fix(ext/websocket): do not continue reading if socket rid closes (#21849)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/21379
2024-03-09fix(ext/node): support junction symlinks on Windows (#22762)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/20609 Vitepress support! `vitepress dev` and `vitepress build` via BYONM
2024-03-08fix(ext/node): Implement `isBuiltin` in `node:module` (#22817)Nathan Whitaker
Fixes #22502 Implements the [`isBuiltin`](https://nodejs.org/api/module.html#moduleisbuiltinmodulename) function in `node:module`. I had to update the version of `@types/node` in the test registry in order to get the test I added to typecheck.
2024-03-08fix(ext/node): Add Immediate class to mirror NodeJS.Immediate (#22808)Nathan Whitaker
Fixes #21660 Adds a basic `Immediate` class to mirror `NodeJS.Immediate`, and changes `setImmediate` and `clearImmediate` to return and accept (respectively) `Immediate` objects. Note that for now {ref,unref,hasRef} are effectively stubs, as deno_core doesn't really natively support immediates (they're currently modeled as timers with delay of 0). Eventually we probably want to actually implement these properly.
2024-03-08fix(config): remove pkg name example and add pattern to schema (#22813)David Sherret
2024-03-08fix(config): add unstable features as examples to config schema (#22814)David Sherret
2024-03-08fix(publish): suggest using `--allow-dirty` on uncommitted changes (#22810)David Sherret
2024-03-08chore(test): add [WILDCHARS(x)] and [WILDLINE] (#22803)David Sherret
2024-03-08fix(cli): occasional panics on progress bar (#22809)tuhana
Uses `Instant` instead of `SystemTime` for `cli/util/progress_bar/mod.rs`. Fixes #22558
2024-03-08fix(publish): ability to un-exclude when .gitignore ignores everything (#22805)David Sherret
This is an unrealistic scenario, but it's still a good thing to fix and have a test for because it probably fixes some other underlying issues with how the gitignore was being resolved for the root directory. From https://github.com/denoland/deno/pull/22720#issuecomment-1986134425
2024-03-08fix(node): resolve .css files in npm packages when type checking (#22804)David Sherret
When type checking, we should just resolve css files in npm packages and not surface a type checking error on the specifier.
2024-03-08fix(publish): typo in `--allow-dirty` help text (#22799)mimikun
2024-03-08fix: support sloppy resolution to file where directory exists (#22800)Luca Casonato
Previously the sloppy resolver could not resolve the following: - foo/bar.ts - foo.ts - index.ts Where `index.ts` contains `import "./foo"`, because it did not consider `foo.ts` a valid target for this directory import. This commit fixes this bug.
2024-03-08refactor(ext/node): worker_threads.isMainThread setup (#22785)Bartek Iwańczuk
This commit changes how we figure out if we're running on main thread in `node:worker_threads` module. Instead of relying on quirky "magic variable" for a name to check if we're on main thread, we are now explicitly passing this information during bootstrapping of the runtime. As a side effect, `WorkerOptions.name` is more useful and matches what Node.js does more closely (though not fully). Towards https://github.com/denoland/deno/issues/22783