1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-30 11:16:38 -05:00
denoland-deno/runtime/js
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
..
01_errors.js feat: add more Deno.errors classes (#19514) 2023-06-29 01:46:16 +02:00
01_version.ts refactor: internal runtime code TS support (#17672) 2023-02-08 22:40:18 +01:00
06_util.js feat(runtime): add WorkerLogLevel (#19316) 2023-05-30 15:34:50 +00:00
10_permissions.js feat(permissions): add "--deny-*" flags (#19070) 2023-08-03 13:19:19 +02:00
11_workers.js fix: call setIsTrusted for generated events (MessageEvent) (#19919) 2023-07-31 23:22:07 +02:00
13_buffer.js chore: Turn back on dlintPreferPrimordials (#17715) 2023-04-02 19:41:41 +02:00
30_os.js fix(core): Use primordials for methods (#18839) 2023-05-01 15:30:02 +02:00
40_fs_events.js refactor: Use ES modules for internal runtime code (#17648) 2023-02-07 20:22:46 +01:00
40_http.js refactor: rename InternalModuleLoader to ExtModuleLoader, use ext: scheme for snapshotted modules (#18041) 2023-03-08 12:44:54 +01:00
40_process.js fix(runtime): ChildProcess::kill() doesn't require additional perms (#15339) 2023-05-11 14:53:45 +02:00
40_signals.js fix(core): Use safe primordials wrappers (#18687) 2023-04-14 22:23:28 +02:00
40_tty.js refactor: Use ES modules for internal runtime code (#17648) 2023-02-07 20:22:46 +01:00
41_prompt.js chore: restore pty tests and make them run on the Linux CI (#18424) 2023-03-28 21:49:00 +00:00
90_deno_ns.js fix(tsc): more informative diagnostic when Deno does not exist (#19825) 2023-07-13 23:29:51 +00:00
98_global_scope.js refactor: remove ext/console/01_colors.js (#18927) 2023-04-30 09:11:37 +00:00
99_main.js fix: call setIsTrusted for generated events (MessageEvent) (#19919) 2023-07-31 23:22:07 +02:00
README.md feat: add --location=<href> and globalThis.location (#7369) 2021-01-07 19:06:08 +01:00

Runtime JavaScript Code

This directory contains Deno runtime code written in plain JavaScript.

Each file is a plain, old script, not ES modules. The reason is that snapshotting ES modules is much harder, especially if one needs to manipulate global scope (like in case of Deno).

Each file is prefixed with a number, telling in which order scripts should be loaded into V8 isolate. This is temporary solution and we're striving not to require specific order (though it's not 100% obvious if that's feasible).

Deno Web APIs

This directory facilities Web APIs that are available in Deno.

Please note, that some implementations might not be completely aligned with specification.

Some Web APIs are using ops under the hood, eg. console, performance.

Implemented Web APIs