0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-10-29 08:58:01 -04:00
A modern runtime for JavaScript and TypeScript. https://deno.com/
Find a file
Asher Gomez 6fb7e8d93b
feat(permissions): add "--deny-*" flags (#19070)
This commit adds new "--deny-*" permission flags. These are complimentary to
"--allow-*" flags.

These flags can be used to restrict access to certain resources, even if they
were granted using "--allow-*" flags or the "--allow-all" ("-A") flag.

Eg. specifying "--allow-read --deny-read" will result in a permission error,
while "--allow-read --deny-read=/etc" will allow read access to all FS but the
"/etc" directory.

Runtime permissions APIs ("Deno.permissions") were adjusted as well, mainly
by adding, a new "PermissionStatus.partial" field. This field denotes that
while permission might be granted to requested resource, it's only partial (ie.
a "--deny-*" flag was specified that excludes some of the requested resources).
Eg. specifying "--allow-read=foo/ --deny-read=foo/bar" and then querying for
permissions like "Deno.permissions.query({ name: "read", path: "foo/" })"
will return "PermissionStatus { state: "granted", onchange: null, partial: true }",
denoting that some of the subpaths don't have read access.

Closes #18804.

---------

Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
Co-authored-by: Nayeem Rahman <nayeemrmn99@gmail.com>
2023-08-03 13:19:19 +02:00
.cargo fix: reload config files on watcher restarts (#19487) 2023-06-14 22:29:19 +00:00
.devcontainer chore: update devcontainer configuration (#15751) 2022-09-03 02:21:41 +02:00
.github ci: lint on all operating systems (#20012) 2023-08-01 16:08:41 -04:00
bench_util refactor: update core extension api usage (#19952) 2023-07-31 18:19:15 +00:00
cli feat(permissions): add "--deny-*" flags (#19070) 2023-08-03 13:19:19 +02:00
ext feat(permissions): add "--deny-*" flags (#19070) 2023-08-03 13:19:19 +02:00
runtime feat(permissions): add "--deny-*" flags (#19070) 2023-08-03 13:19:19 +02:00
test_ffi chore: update to Rust 1.71 (#19822) 2023-07-13 15:16:24 -06:00
test_napi fix(napi): update env_test.js (#19876) 2023-07-19 12:36:52 +02:00
test_util feat(unstable/lsp): support navigating to deno_modules folder (#20030) 2023-08-02 16:57:25 -04:00
third_party@7f1a41fee1 chore: upgrade to dprint 0.40 internally (#19998) 2023-07-31 17:10:10 +02:00
tools fix: call setIsTrusted for generated events (MessageEvent) (#19919) 2023-07-31 23:22:07 +02:00
.dlint.json chore: update dlint to v0.37.0 for GitHub Actions (#17295) 2023-01-16 17:17:18 +01:00
.dprint.json chore: upgrade dprint-plugin-exec to 0.4.3 (#20001) 2023-07-31 17:09:13 +00:00
.editorconfig editorconfig: Don't insert final newline in .out files (#1686) 2019-02-07 11:31:49 -05:00
.gitattributes fix(test): support typechecking docs with CRLF line endings (#12748) 2021-11-15 09:58:04 -05:00
.gitignore feat(cli): Adding JUnit test reports (#19747) 2023-07-27 00:12:35 +02:00
.gitmodules chore: check node_compat config diff in CI (#19119) 2023-05-15 21:22:53 +09:00
.rustfmt.toml chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
Cargo.lock fix: regression in workers using dynamic imports (#20006) 2023-08-02 01:19:44 +00:00
Cargo.toml fix: regression in workers using dynamic imports (#20006) 2023-08-02 01:19:44 +00:00
LICENSE.md chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
README.md docs: nitpick README (#19912) 2023-07-25 14:44:50 +09:00
Releases.md 1.35.3 (#19947) 2023-07-26 10:18:02 -04:00
rust-toolchain.toml chore: update to Rust 1.71 (#19822) 2023-07-13 15:16:24 -06:00

Deno

Twitter badge Discord badge YouTube badge

the deno mascot dinosaur standing in the rain

Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

Features

Install

Shell (Mac, Linux):

curl -fsSL https://deno.land/install.sh | sh

PowerShell (Windows):

irm https://deno.land/install.ps1 | iex

Homebrew (Mac):

brew install deno

Chocolatey (Windows):

choco install deno

Scoop (Windows):

scoop install deno

Build and install from source using Cargo:

cargo install deno --locked

See deno_install and releases for other options.

Getting Started

Try running a simple program:

deno run https://deno.land/std/examples/welcome.ts

Or setup a simple HTTP server:

Deno.serve((_req) => new Response("Hello, World!"));

More Examples

Additional Resources

Contributing

We appreciate your help!

To contribute, please read our contributing instructions.