summaryrefslogtreecommitdiff
path: root/cli/tools
AgeCommit message (Collapse)Author
2024-09-18feat: require jsr prefix for `deno install` and `deno add` (#25698)Leo Kettmeir
2024-09-18fix(flags): don't treat empty run command as task subcommand (#25708)Leo Kettmeir
2024-09-17feat(cli): evaluate code snippets in JSDoc and markdown (#25220)Yusuke Tanaka
This commit lets `deno test --doc` command actually evaluate code snippets in JSDoc and markdown files. ## How it works 1. Extract code snippets from JSDoc or code fences 2. Convert them into pseudo files by wrapping them in `Deno.test(...)` 3. Register the pseudo files as in-memory files 4. Run type-check and evaluation We apply some magic at the step 2 - let's say we have the following file named `mod.ts` as an input: ````ts /** * ```ts * import { assertEquals } from "jsr:@std/assert/equals"; * * assertEquals(add(1, 2), 3); * ``` */ export function add(a: number, b: number) { return a + b; } ```` This is virtually transformed into: ```ts import { assertEquals } from "jsr:@std/assert/equals"; import { add } from "files:///path/to/mod.ts"; Deno.test("mod.ts$2-7.ts", async () => { assertEquals(add(1, 2), 3); }); ``` Note that a new import statement is inserted here to make `add` function available. In a nutshell, all items exported from `mod.ts` become available in the generated pseudo file with this automatic import insertion. The intention behind this design is that, from library user's standpoint, it should be very obvious that this `add` function is what this example code is attached to. Also, if there is an explicit import statement like `import { add } from "./mod.ts"`, this import path `./mod.ts` is not helpful for doc readers because they will need to import it in a different way. The automatic import insertion has some edge cases, in particular where there is a local variable in a snippet with the same name as one of the exported items. This case is addressed by employing swc's scope analysis (see test cases for more details). ## "type-checking only" mode stays around This change will likely impact a lot of existing doc tests in the ecosystem because some doc tests rely on the fact that they are not evaluated - some cause side effects if executed, some throw errors at runtime although they do pass the type check, etc. To help those tests gradually transition to the ones runnable with the new `deno test --doc`, we will keep providing the ability to run type-checking only via `deno check --doc`. Additionally there is a `--doc-only` option added to the `check` subcommand too, which is useful when you want to type-check on code snippets in markdown files, as normal `deno check` command doesn't accept markdown. ## Demo https://github.com/user-attachments/assets/47e9af73-d16e-472d-b09e-1853b9e8f5ce --- Closes #4716
2024-09-17feat(fmt): sort type-only named import/exports last (#25690)David Sherret
Closes #22583
2024-09-16refactor(permissions): split up Descriptor into Allow, Deny, and Query (#25508)David Sherret
This makes the permission system more versatile.
2024-09-15fix(cli): `deno task` exit with status 0 (#25637)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/25632 Exit code 1 indiciates some sort of failure but `deno task` (without arguments) is used to list available commands. --------- Co-authored-by: Yoshiya Hinosawa <stibium121@gmail.com>
2024-09-14feat: TypeScript 5.6 and `npm:@types/node@22` (#25614)David Sherret
2024-09-12feat(upgrade): support LTS release channel (#25123)David Sherret
Signed-off-by: David Sherret <dsherret@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-09-11feat(upgrade): better error message on failure (#25503)Bartek Iwańczuk
Co-authored-by: crowlkats <crowlkats@toaxl.com>
2024-09-10fix: update malva in deno to support astro css comments (#25553)HasanAlrimawi
This PR addresses issue #25534 **Code Changes** - Updated malva version to the latest in cli/Cargo.toml. - Updated LanguageOptions to match new Malva config. - Added test case same as the issue to assure changes success.
2024-09-09BREAKING(fs): remove `Deno.fsync[Sync]()` (#25448)Asher Gomez
Towards #22079 --------- Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-09-09BREAKING: Remove `--unstable` flag (#25522)Bartek Iwańczuk
This commit effectively removes the --unstable flag. It's still being parsed, but it only prints a warning that a granular flag should be used instead and doesn't actually enable any unstable feature. Closes https://github.com/denoland/deno/issues/25485 Closes https://github.com/denoland/deno/issues/23237
2024-09-09fix(fmt): fix tabs in YAML (#25536)Pig Fang
Fixes #25176
2024-09-09BREAKING(fs): remove `Deno.fdatasync[Sync]()` (#25520)Asher Gomez
2024-09-07feat(add/install): Flag to add dev dependency to package.json (#25495)Nathan Whitaker
``` deno install --dev npm:chalk ``` Adds to `devDependencies` if a `package.json` is present, otherwise it just adds to `imports` in `deno.json`
2024-09-06feat(add): Add npm packages to package.json if present (#25477)Nathan Whitaker
Closes https://github.com/denoland/deno/issues/25321 Ended up being a larger refactoring, since we're now juggling (potentially) two config files in the same `add`, instead of choosing one. I don't love the shape of the code, but I think it's good enough Some smaller side improvements: - `deno remove` supports `jsonc` - `deno install --dev` will be a really simple change - if `deno remove` removes the last import/dependency in the `imports`/`dependencies`/`devDependencies` field, it removes the field instead of leaving an empty object
2024-09-05BREAKING: remove "emit" and "map" from deno info output (#25468)David Sherret
The map field has been empty for years now and we don't want the emit file to be exposed so it allows us to iterate on making the cache faster. Additionally, it's racy/unreliable to rely on this information. Instead, people should emit the TS files themselves using tools like deno_emit, typescript, esbuild, etc. Closes https://github.com/denoland/deno/issues/17703
2024-09-05feat(uninstall): alias to 'deno remove' if -g flag missing (#25461)Bartek Iwańczuk
Close https://github.com/denoland/deno/issues/25457
2024-09-05BREAKING(fs): remove `Deno.funlock[Sync]()` (#25442)Asher Gomez
Towards #22079 --------- Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-09-05BREAKING(fs): remove `Deno.seek[Sync]()` (#25449)Asher Gomez
Towards #22079
2024-09-05feat: include version number in all --json based outputs (#25335)Kamil Ogórek
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-09-04feat(install): deno install with entrypoint (#25411)Nathan Whitaker
``` deno install --entrypoint one.ts two.ts ``` effectively equivalent to `deno cache`
2024-09-04BREAKING(config): make supported compilerOptions an allow list (#25432)David Sherret
Deno has been using a deny list, which doesn't make sense because a lot of these options don't even work. Closes #25363
2024-09-04feat(add): strip package subpath when adding a package (#25419)Bartek Iwańczuk
These now works: ``` $ deno add @std/dotenv/load $ deno add npm:preact/hooks ``` Previously we were erroring out, because this is a "package reference" including a subpath. Closes https://github.com/denoland/deno/issues/25385 --------- Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2024-09-04BREAKING(fs): remove `Deno.ftruncate[Sync]()` (#25412)Asher Gomez
Towards #22079 Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-09-04BREAKING(fs): remove `Deno.fstat[Sync]()` (#25351)Asher Gomez
Towards #22079 Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-09-03fix(install): recommend using `deno install -g` when using a single http url ↵Bartek Iwańczuk
(#25388) Closes https://github.com/denoland/deno/issues/25361
2024-09-03fix(task): correct name for scoped npm package binaries (#25390)David Sherret
This is for when not using a node_modules directory or when using auto install for a node_modules dir.
2024-09-03chore(fs): remove `Deno.flock[Sync]()` (#25350)Asher Gomez
Towards #22079
2024-09-03BREAKING: remove `deno vendor` (#25343)Asher Gomez
2024-09-02fix(cli/tools): correct `deno init --serve` template behavior (#25318)Coty
2024-09-02BREAKING: remove `--allow-none` flag (#25337)Asher Gomez
Towards #22079 Signed-off-by: Luca Casonato <hello@lcas.dev> Co-authored-by: Luca Casonato <hello@lcas.dev>
2024-09-02BREAKING: remove `deno bundle` (#25339)Asher Gomez
`deno bundle` now produces: ``` error: ⚠️ `deno bundle` was removed in Deno 2. See the Deno 1.x to 2.x Migration Guide for migration instructions: https://docs.deno.com/runtime/manual/advanced/migrate_deprecations ``` `deno bundle --help` now produces: ``` ⚠️ `deno bundle` was removed in Deno 2. See the Deno 1.x to 2.x Migration Guide for migration instructions: https://docs.deno.com/runtime/manual/advanced/migrate_deprecations Usage: deno bundle [OPTIONS] Options: -q, --quiet Suppress diagnostic output --unstable Enable all unstable features and APIs. Instead of using this flag, consider enabling individual unstable features To view the list of individual unstable feature flags, run this command again with --help=unstable ```
2024-08-31fix(publish): ensure provenance is spec compliant (#25200)Bob Callaway
Fixes: #25199 Ensures that for the SLSA provenance document generated on publishing, `subject` is an array of ResourceDescriptor objects per the in-toto specification [requirements](https://github.com/in-toto/attestation/blob/main/spec/v1/statement.md#fields). --------- Signed-off-by: Bob Callaway <bcallaway@google.com>
2024-08-31chore(fs): remove `Deno.futime[Sync]()` (#25252)Asher Gomez
2024-08-31fix(upgrade): more informative information on invalid version (#25319)Bartek Iwańczuk
Before: ``` $ deno upgrade v1.xx error: Invalid version passed ``` After: ``` $ deno upgrade v1.xx error: Invalid version passed (v1.xx) Example usage: deno upgrade | deno upgrade 1.46 | deno upgrade canary ``` Also updates help text to use "shorthand version" without flags, but a positional arg.
2024-08-30refactor: remove DENO_FUTURE (#25314)David Sherret
2024-08-30fix: upgrade deno_ast 0.42 (#25313)David Sherret
2024-08-30feat(upgrade): print info links for Deno 2 RC releases (#25225)Bartek Iwańczuk
In addition to printing a blog post information (if it's available), this will also print a link to migration guide and the bug tracker. --------- Signed-off-by: Bartek Iwańczuk <biwanczuk@gmail.com> Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-08-29feat(config): Node modules option for 2.0 (#25299)Nathan Whitaker
2024-08-28fix(fmt): fix incorrect quotes in components (#25249)Pig Fang
Unlike in dprint, `single_quote` option is shared between all formatters, so we shouldn't change this option when formatting attributes in components. This PR fixes this. This problem doesn't affect formatting HTML.
2024-08-28feat: remove `--lock-write` flag (#25214)Bartek Iwańczuk
This commit remove `--lock-write` that was deprecated in v1.45 release. Closes https://github.com/denoland/deno/issues/24167. --------- Co-authored-by: Asher Gomez <ashersaupingomez@gmail.com>
2024-08-26fix(bench): Fix table column alignments and NO_COLOR=1 (#25190)Armaan Salam
Fix table layout for `deno bench` command with and without color (`NO_COLOR=1`). Fixes issue in #25156
2024-08-24refactor(lsp): changes for lsp_types 0.97.0 (#25169)Nayeem Rahman
2024-08-21fix(add): Handle packages without root exports (#25102)Nathan Whitaker
Fixes #24607. This PR makes the logic that caches top level dependencies (things present in import map) smarter, so we handle JSR dependencies without root exports.
2024-08-21fix(upgrade): better error message when check_exe fails (#25133)Divy Srivastava
Fixes https://github.com/denoland/deno/issues/24971 Fixes the panic. We can give a more personalized error by checking the macOS version but probably not worth the effort.
2024-08-21feat(flags): improve help output and make `deno run` list tasks (#25108)Leo Kettmeir
- rewrite flag help - use gray for indentation - reorganize permission flags and split them up - make help subcommand act like help flag - `deno run` outputs list of tasks - Fixes #25120 error handling for `deno run` in case of no config file being found needs to be improved --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2024-08-20fix(add): error when config file contains importMap field (#25115)David Sherret
The "imports" field has higher precedence than "importMap", so we should error when `deno add` goes to add an `"imports"` field. Closes https://github.com/denoland/deno/issues/24264 Closes https://github.com/denoland/deno/pull/24478
2024-08-20feat(config): Support frozen lockfile config option in deno.json (#25100)Nathan Whitaker
Closes #24544
2024-08-20feat(unstable): ability to use a local copy of jsr packages (#25068)David Sherret