1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-22 07:14:47 -05:00
denoland-deno/cli
David Sherret 40a72f3555
fix(npm): support non-all lowercase package names (#16669)
Supports package names that aren't all lowercase.

This stores the package with a leading underscore (since that's not
allowed in npm's registry and no package exists with a leading
underscore) then base32 encoded (A-Z0-9) so it can be lowercased and
avoid collisions.

Global cache dir:

```
$DENO_DIR/npm/registry.npmjs.org/_{base32_encode(package_name).to_lowercase()}/{version}
```

node_modules dir `.deno` folder:

```
node_modules/.deno/_{base32_encode(package_name).to_lowercase()}@{version}/node_modules/<package-name>
```

Within node_modules folder:

```
node_modules/<package-name>
```

So, direct childs of the node_modules folder can have collisions between
packages like `JSON` vs `json`, but this is already something npm itself
doesn't handle well. Plus, Deno doesn't actually ever resolve to the
`node_modules/<package-name>` folder, but just has that for
compatibility. Additionally, packages in the `.deno` dir could have
collissions if they have multiple dependencies that only differ in
casing or a dependency that has different casing, but if someone is
doing that then they're already going to have trouble with npm and they
are asking for trouble in general.
2022-11-16 18:44:31 +00:00
..
args fix(lock): add --no-lock flag to disable auto discovery of lock file (#16526) 2022-11-03 16:42:56 +01:00
bench perf(runtime/spawn): collect output using op_read_all (#16596) 2022-11-15 14:06:52 +01:00
cache perf: node cjs & esm analysis cache (#16097) 2022-10-01 12:15:56 +02:00
dts fix(cli): add a jsdoc tag for UnstableRunOptions (#16525) 2022-11-13 17:27:47 -05:00
lsp feat: remove --unstable flag requirement for npm: specifiers (#16473) 2022-11-10 17:57:10 +01:00
napi chore: upgrade rusty_v8 to 0.55.0 (#16604) 2022-11-12 05:37:37 +01:00
napi_sym 1.28.0 (#16620) 2022-11-13 15:31:36 -05:00
node fix(npm): don't fail if conditional exports don't contains types (#16651) 2022-11-16 01:40:03 +01:00
npm fix(npm): support non-all lowercase package names (#16669) 2022-11-16 18:44:31 +00:00
ops feat: Stabilize Deno.bench() and 'deno bench' subcommand (#16485) 2022-11-11 00:22:14 +01:00
schemas feat(lint): add a report lint config setting (#16045) 2022-10-25 14:21:20 +02:00
tests fix(npm): support non-all lowercase package names (#16669) 2022-11-16 18:44:31 +00:00
tools fix(install): support npm specifiers (#16634) 2022-11-14 22:40:05 -05:00
tsc fix(typescript): allow synthetic default imports when using ModuleKind.ESNext (#16438) 2022-10-27 08:12:40 -04:00
auth_tokens.rs chore: update copyright to 2022 (#13306) 2022-01-07 22:09:52 -05:00
build.rs fix(build) assume a custom compiler will support --export-dynamic-symbol-list linker flag. (#16387) 2022-10-22 23:41:11 +02:00
Cargo.toml fix(npm): support non-all lowercase package names (#16669) 2022-11-16 18:44:31 +00:00
cdp.rs docs: turn bare URLs into clickable links (#15347) 2022-07-30 12:20:29 +02:00
checksum.rs chore: update copyright to 2022 (#13306) 2022-01-07 22:09:52 -05:00
deno.ico fix(cli): add icon and metadata to deno.exe on Windows (#6693) 2020-07-15 21:54:38 +02:00
deno_dir.rs perf: node cjs & esm analysis cache (#16097) 2022-10-01 12:15:56 +02:00
deno_std.rs 1.28.0 (#16620) 2022-11-13 15:31:36 -05:00
diagnostics.rs feat(unstable): "Deno.Command()" API (#16516) 2022-11-13 14:00:24 -05:00
diff.rs refactor: update comment in diff.rs (#15142) 2022-07-10 22:49:18 -04:00
display.rs refactor: move deno info functionality from deno_graph to CLI (#16434) 2022-10-28 11:03:33 -04:00
emit.rs refactor: extract out check code from emit (#15729) 2022-09-02 10:54:40 -04:00
errors.rs chore: remove all pub(crate)s from the cli crate (#14083) 2022-03-23 09:54:22 -04:00
file_fetcher.rs feat(npm): add support for --reload=npm: and --reload=npm:<package> (#15972) 2022-09-22 10:39:58 -04:00
file_watcher.rs upgrade deps (#15914) 2022-09-16 19:11:30 -04:00
fs_util.rs feat(unstable/npm): support peer dependencies (#16561) 2022-11-08 14:17:24 -05:00
generated_symbol_exports_list_linux.def fix: move generated napi symbols to cli/ (#16330) 2022-10-18 13:20:11 +02:00
generated_symbol_exports_list_macos.def fix: move generated napi symbols to cli/ (#16330) 2022-10-18 13:20:11 +02:00
generated_symbol_exports_list_windows.def fix: move generated napi symbols to cli/ (#16330) 2022-10-18 13:20:11 +02:00
graph_util.rs feat(npm): require --unstable for npm specifiers in remote modules (#16612) 2022-11-13 10:42:15 -05:00
http_cache.rs chore(tests): use custom temp dir creation for the tests (#14153) 2022-04-01 11:15:37 -04:00
http_util.rs refactor: move out test files from root testdata directory into sub directories (#15949) 2022-09-19 10:32:21 -04:00
lockfile.rs feat(lock): don't require --unstable for auto discovery (#16582) 2022-11-10 00:28:01 +01:00
logger.rs chore: remove all pub(crate)s from the cli crate (#14083) 2022-03-23 09:54:22 -04:00
main.rs fix(install): support npm specifiers (#16634) 2022-11-14 22:40:05 -05:00
module_loader.rs perf: node cjs & esm analysis cache (#16097) 2022-10-01 12:15:56 +02:00
proc_state.rs feat(npm): require --unstable for npm specifiers in remote modules (#16612) 2022-11-13 10:42:15 -05:00
progress_bar.rs fix(cli): Fixed bug where the progress bar did not clear (#16401) 2022-10-24 18:40:27 +02:00
README.md Remove deno_typescript (#6813) 2020-07-20 19:49:57 -04:00
resolver.rs refactor: Combine ImportMapResolver and JsxResolver (#16508) 2022-11-02 15:47:02 +01:00
standalone.rs feat(runtime): support creating workers with custom v8 snapshots (#16553) 2022-11-10 12:46:26 +01:00
text_encoding.rs feat: emit files on demand and fix racy emit (#15220) 2022-07-19 11:58:18 -04:00
tsc.rs fix: upgrade swc_ecma_parser to 0.122.19 - deno_ast 0.20 (#16406) 2022-10-25 11:55:57 -04:00
unix_util.rs build: require safety comments on unsafe code (#13870) 2022-06-26 00:13:24 +02:00
version.rs feat(cli): check for updates in background (#15974) 2022-10-20 16:15:21 +02:00
windows_util.rs chore: fix Windows specific clippy errors (#15212) 2022-07-15 12:30:25 -04:00
worker.rs fix(install): support npm specifiers (#16634) 2022-11-14 22:40:05 -05:00

Deno CLI Crate

crates docs

This provides the actual deno executable and the user-facing APIs.

The deno crate uses the deno_core to provide the executable.