deno/cli/tsc
Bartek Iwańczuk f781796402
feat: Deno.execPath() no longer requires --allow-read permission (#29620)
This commit changes `Deno.execPath()` API to no longer require
read permission.

This change is dictated by the fact that in common scenarios, requiring
read permission is less secure than not requiring permissions - if
a user wants to spawn a Deno subprocess using the current executable,
they would do something like:

```
new Deno.Command(Deno.execPath(), { args: ["eval", "1+1"] }).outputSync();
```

To run this program, currently one needs to pass `--allow-read
--allow-run=deno` flags.
It's possible to limit scope of `--allow-read` flag, but it's really
cumbersome to do,
so most users will opt to give a blanket `--allow-read` permission.

Not requiring read permissions allows the above program to be run with
just `--allow-run=deno` flag.

This change is in similar to relaxing of permissions in `Deno.cwd()` API
done in https://github.com/denoland/deno/pull/27192.

Ref
https://github.com/denoland/deno/issues/20061#issuecomment-2942497783
2025-06-25 20:57:35 +02:00
..
dts feat: Deno.execPath() no longer requires --allow-read permission (#29620) 2025-06-25 20:57:35 +02:00
00_typescript.js feat: TypeScript 5.8 (#29041) 2025-04-25 10:09:31 -04:00
97_ts_host.js fix(check): don't assert unique normalized specifiers (#29274) 2025-05-13 16:16:38 +00:00
98_lsp.js refactor: rename ts_config to compiler_options (#29769) 2025-06-17 02:07:43 +01:00
99_main_compiler.js fix(check): ignore errors on ambient modules (#29135) 2025-05-16 15:06:34 +09:00
_analyze_types_node.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
compiler.d.ts chore: Happy New Year 2025 (#27509) 2024-12-31 19:12:39 +00:00
diagnostics.rs fix(check): ignore errors on ambient modules (#29135) 2025-05-16 15:06:34 +09:00
mod.rs refactor: rename ts_config to compiler_options (#29769) 2025-06-17 02:07:43 +01:00
README.md feat: TypeScript 5.4 (#23086) 2024-03-26 18:52:57 -04:00

tsc

This directory contains the typescript compiler and a small compiler host for the runtime snapshot.

How to upgrade TypeScript.

The files in this directory are mostly from the TypeScript repository. We currently (unfortunately) have a rather manual process for upgrading TypeScript. It works like this currently:

  1. Checkout denoland/TypeScript repo in a separate directory.
  2. Add Microsoft/TypeScript as a remote and fetch its latest tags
  3. Checkout a new branch based on this tag.
  4. Cherry pick the custom commit we made in a previous release to the new one.
  5. This commit has a "deno.ts" file in it. Read the instructions in it.
  6. Copy typescript.js into Deno repo.
  7. Copy d.ts files into dts directory.
  8. Review the copied files, removing and reverting what's necessary

So that might look something like this:

git clone https://github.com/denoland/TypeScript.git
cd typescript
git remote add upstream https://github.com/Microsoft/TypeScript
git fetch upstream
git checkout v3.9.7
git checkout -b branch_v3.9.7
git cherry pick <previous-release-branch-commit-we-did>
npm install
npx hereby
rsync built/local/typescript.js ~/src/deno/cli/tsc/00_typescript.js
rsync --exclude=protocol.d.ts --exclude=tsserverlibrary.d.ts --exclude=typescriptServices.d.ts built/local/*.d.ts ~/src/deno/cli/tsc/dts/