0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-12 16:59:32 -05:00
Commit graph

11003 commits

Author SHA1 Message Date
Matt Mastracci
aaba2b6b67
perf(permissions): Fast exit from checks when permission is in "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-14 10:11:31 -07:00
Nayeem Rahman
b7f8f9ac1a
chore(lsp): remove enablePaths compat path (#22895) 2024-03-14 10:11:31 -07:00
Satya Rohith
4f41d6abeb
fix(ext/node): make worker ids sequential (#22884) 2024-03-14 10:11:31 -07:00
Satya Rohith
dd88f6a7da
fix(ext/node): allow automatic worker_thread termination (#22647)
Co-authored-by: Matt Mastracci <matthew@mastracci.com>
2024-03-14 10:11:31 -07:00
David Sherret
316339f40e
chore: rough first pass on spec tests (#22877) 2024-03-14 10:11:31 -07:00
Matt Mastracci
3d2f5b2c2d
chore(permissions): add allow_all flag (#22890)
Unlocking a potential perf optimization at a later date -- carry the
`allow_all` flag into the permission container.
2024-03-14 10:11:31 -07:00
Divy Srivastava
7e9da01b16
chore: upgrade deno_core to 0.270.0 (#22826)
Upgrade to V8 12.3
2024-03-14 10:11:31 -07:00
Nayeem Rahman
49eaeede47
feat(node): implement fs.statfs() (#22862) 2024-03-14 10:11:30 -07:00
Asher Gomez
cae190b92b
fix(ext/node): initial crypto.createPublicKey() support (#22509)
Closes #21807

Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-03-14 10:11:30 -07:00
Asher Gomez
9f8f87f27a
feat(ext/node): add more named curves in crypto.generateKeyPair[Sync]() (#22882)
Towards fixing #21761
2024-03-14 10:11:30 -07:00
Divy Srivastava
c3dbc0b38d
chore: explicitly type state.put for permissions (#22881) 2024-03-14 10:11:30 -07:00
Nayeem Rahman
8e6044ecc3
fix(runtime): negate partial condition for deny flags (#22866) 2024-03-14 10:11:30 -07:00
David Sherret
5b3658f448
fix(slow-types): improved exports tracing and infer type literals in as 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-14 10:11:30 -07:00
Divy Srivastava
c8034cef73
refactor: add deno_permissions crate (#22236)
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-14 10:11:30 -07:00
Divy Srivastava
530f073688
fix(ext/node): flush brotli decompression stream (#22856)
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-14 10:11:30 -07:00
David Sherret
ba48299f81
chore: enable clippy unused_async rule (#22834) 2024-03-14 10:11:30 -07:00
Asher Gomez
66f57efaf6
chore: make Node setup script less sensitive to changes (#22855)
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-14 10:11:30 -07:00
Matt Mastracci
915546bea8
fix(cli): use Instant for test times (#22853)
Fixes https://github.com/denoland/deno_std/issues/4473
2024-03-14 10:11:30 -07:00
Bartek Iwańczuk
cd918c482b
test(ext/node): add worker_threads test for SharedArrayBuffer (#22850)
Follow up to https://github.com/denoland/deno/pull/22815
2024-03-14 10:11:30 -07:00
Nathan Whitaker
93c6f927d4
fix(ext/node): Match punycode module behavior to node (#22847)
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-14 10:11:30 -07:00
Bartek Iwańczuk
5d1bb44929
fix(ext/node): make worker setup synchronous (#22815)
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-14 10:11:30 -07:00
Nathan Whitaker
54fd0e3a42
fix(runtime): Restore default signal handler after user handlers are 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-14 10:11:29 -07:00
David Sherret
88fab1829a
chore: fix child_process test (#22845)
This was failing in old versions of git.
2024-03-14 10:11:29 -07:00
David Sherret
465af5cedf
chore: hidden tool for overwriting files with fast check output (#22822)
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-14 10:11:29 -07:00
Bartek Iwańczuk
ed20d2bc73
build: fix node_compat/setup.ts check (#22842) 2024-03-14 10:11:29 -07:00
Bartek Iwańczuk
6263bcb8bd
fix(ext/node): worker_threads.parentPort is updated on startup (#20794)
This addresses
https://github.com/denoland/deno/issues/20613#issuecomment-1739962483.
2024-03-14 10:11:29 -07:00
mash-graz
9e49afb2c8
fix(ext/node) implement receiveMessageOnPort for node:worker_threads (#22766)
Implementation of `receiveMessageOnPort` for `node:worker_threads`

Fixes: #22702
2024-03-14 10:11:29 -07:00
mash-graz
6057dddbaf
fix(node:http) Export validateHeaderName and validateHeaderValue 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-14 10:11:29 -07:00
Asher Gomez
df69c2b98a
chore: update WPT expectations (#22838)
Fixes the latest failure.

See
https://github.com/denoland/deno/actions/runs/8218359853/job/22475137521
2024-03-14 10:11:29 -07:00
Kenta Moriuchi
730e0acee4
chore: replace 'call' to 'execute' in error messages (#22579)
Since both "call" and "execute" were used in error messages, I replaced them with "execute," which is more used.
2024-03-14 10:11:29 -07:00
David Sherret
109d66bb78
fix(publish): regression - publishing with vendor folder (#22830)
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-14 10:11:29 -07:00
Dimitris Apostolou
3b21518f93
fix: fix crate vulnerabilities (#22825)
https://rustsec.org/advisories/RUSTSEC-2024-0003
https://rustsec.org/advisories/RUSTSEC-2024-0020
2024-03-14 10:11:29 -07:00
David Sherret
84b36001b8
fix(node): require of pkg json imports was broken (#22821) 2024-03-14 10:11:29 -07:00
Divy Srivastava
010272a6c2
fix(ext/websocket): do not continue reading if socket rid closes (#21849)
Fixes https://github.com/denoland/deno/issues/21379
2024-03-14 10:11:29 -07:00
Divy Srivastava
4419fc340b
fix(ext/node): support junction symlinks on Windows (#22762)
Fixes https://github.com/denoland/deno/issues/20609

Vitepress support! `vitepress dev` and `vitepress build` via BYONM
2024-03-14 10:11:28 -07:00
Nathan Whitaker
7f99b968fc
fix(ext/node): Implement isBuiltin in node:module (#22817)
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-14 10:11:28 -07:00
Nathan Whitaker
1e1d0410a4
fix(ext/node): Add Immediate class to mirror NodeJS.Immediate (#22808)
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-14 10:11:28 -07:00
David Sherret
8b9a9a7411
fix(config): remove pkg name example and add pattern to schema (#22813) 2024-03-14 10:11:28 -07:00
David Sherret
776d756472
fix(config): add unstable features as examples to config schema (#22814) 2024-03-14 10:11:28 -07:00
David Sherret
49998341b4
fix(publish): suggest using --allow-dirty on uncommitted changes (#22810) 2024-03-14 10:11:28 -07:00
David Sherret
9a4b096073
chore(test): add [WILDCHARS(x)] and [WILDLINE] (#22803) 2024-03-14 10:11:28 -07:00
tuhana
de3be86053
fix(cli): occasional panics on progress bar (#22809)
Uses `Instant` instead of `SystemTime` for
`cli/util/progress_bar/mod.rs`. Fixes #22558
2024-03-14 10:11:28 -07:00
David Sherret
b36ebdca23
fix(publish): ability to un-exclude when .gitignore ignores everything (#22805)
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-14 10:11:28 -07:00
David Sherret
67b90891fd
fix(node): resolve .css files in npm packages when type checking (#22804)
When type checking, we should just resolve css files in npm packages and
not surface a type checking error on the specifier.
2024-03-14 10:11:28 -07:00
mimikun
5548576cdb
fix(publish): typo in --allow-dirty help text (#22799) 2024-03-14 10:11:28 -07:00
Luca Casonato
36672b16f2
fix: support sloppy resolution to file where directory exists (#22800)
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-14 10:11:28 -07:00
Bartek Iwańczuk
3bb357ef31
refactor(ext/node): worker_threads.isMainThread setup (#22785)
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
2024-03-14 10:11:28 -07:00
Satya Rohith
59e23a9c68
refactor(ext/node): use worker ops directly in worker_threads (#22794) 2024-03-14 10:11:28 -07:00
denobot
6d062cf0c7
1.41.2 (#22791)
Bumped versions for 1.41.2

Signed-off-by: Divy Srivastava <dj.srivastava23@gmail.com>
Co-authored-by: Divy Srivastava <dj.srivastava23@gmail.com>
2024-03-08 13:02:21 +05:30
David Sherret
630ef77ada fix(publish): include explicitly specified .gitignored files and directories (#22790)
This allows explicitly overriding a .gitignore by specifying files and
directories in "include". This does not apply to globs in an include as
files matching those will still be gitignored. Additionally,
individually gitignored files within an included directory will still be
ignored.
2024-03-08 12:38:25 +05:30