From 1a205cb0a857c24959f7d15a547007656f400084 Mon Sep 17 00:00:00 2001 From: mayank agarwal Date: Wed, 30 Dec 2020 19:04:37 +0530 Subject: [PATCH] Commit to adapt the feature to #8622 and #8710 --- Cargo.lock | 696 ++++---- Cargo.toml | 1 + README.md | 4 +- Releases.md | 102 +- cli/Cargo.toml | 49 +- cli/ast.rs | 92 +- cli/build.rs | 21 +- cli/disk_cache.rs | 26 +- cli/dts/README.md | 2 +- cli/dts/lib.deno.ns.d.ts | 4 +- cli/dts/lib.deno.shared_globals.d.ts | 17 - cli/dts/lib.deno.unstable.d.ts | 22 +- cli/dts/lib.es5.d.ts | 2 +- cli/errors.rs | 195 +-- cli/file_fetcher.rs | 13 +- cli/file_watcher.rs | 13 +- cli/flags.rs | 222 ++- cli/fmt_errors.rs | 4 +- cli/fs_util.rs | 16 + cli/http_cache.rs | 6 +- cli/http_util.rs | 182 +- cli/js.rs | 27 - cli/lsp/README.md | 16 + cli/lsp/analysis.rs | 354 ++++ cli/lsp/capabilities.rs | 76 + cli/lsp/config.rs | 54 + cli/lsp/diagnostics.rs | 339 ++++ cli/lsp/language_server.rs | 1146 +++++++++++++ cli/lsp/memory_cache.rs | 121 ++ cli/lsp/mod.rs | 29 + cli/lsp/sources.rs | 393 +++++ cli/lsp/text.rs | 515 ++++++ cli/lsp/tsc.rs | 1490 +++++++++++++++++ cli/lsp/utils.rs | 52 + cli/main.rs | 457 +++-- cli/module_graph.rs | 436 +++-- cli/module_loader.rs | 82 +- cli/ops/errors.rs | 6 +- cli/ops/io.rs | 473 ------ cli/ops/mod.rs | 49 +- cli/ops/runtime_compiler.rs | 12 +- cli/program_state.rs | 163 +- cli/resolve_addr.rs | 72 - cli/signal.rs | 62 - cli/specifier_handler.rs | 88 +- cli/standalone.rs | 201 +++ cli/tests/034_onload/main.ts | 3 + cli/tests/DenoWinRunner.cs | 12 +- cli/tests/bundle/fixture02.out | 1 + cli/tests/dynamic_import/b.js | 2 + cli/tests/dynamic_import/c.js | 2 + cli/tests/echo_server.ts | 2 +- cli/tests/error_004_missing_module.ts | 2 + .../error_005_missing_dynamic_import.ts.out | 3 +- .../error_015_dynamic_import_permissions.out | 3 +- cli/tests/fix_dynamic_import_errors.js | 7 + cli/tests/fix_dynamic_import_errors.js.out | 2 + cli/tests/integration_tests.rs | 379 ++++- cli/tests/lsp/did_open_notification.json | 12 + .../lsp/did_open_notification_unstable.json | 12 + cli/tests/lsp/exit_notification.json | 5 + cli/tests/lsp/hover_request.json | 14 + cli/tests/lsp/initialize_request.json | 29 + .../lsp/initialize_request_disabled.json | 29 + .../lsp/initialize_request_unstable.json | 30 + cli/tests/lsp/initialized_notification.json | 5 + cli/tests/lsp/shutdown_request.json | 6 + cli/tests/raw_mode_cbreak.ts | 15 + cli/tests/redirect_cache.out | 1 - cli/tests/runtime_decorators.ts | 42 + cli/tests/runtime_decorators.ts.out | 7 + cli/tests/standalone_error.ts | 9 + cli/tests/standalone_import.ts | 2 + cli/tests/stdout_write_all.out | 1 + cli/tests/stdout_write_all.ts | 8 + cli/tests/test_coverage.out | 8 +- cli/tests/test_run_test_coverage.out | 32 + cli/tests/test_run_test_coverage.ts | 14 + cli/tests/tls/README.md | 4 +- cli/tests/type_directives_01.ts.out | 2 +- cli/tests/type_directives_02.ts.out | 2 +- cli/tests/unit/chown_test.ts | 4 +- cli/tests/unit/error_stack_test.ts | 99 -- cli/tests/unit/fetch_test.ts | 131 +- cli/tests/unit/net_test.ts | 60 +- cli/tests/unit/process_test.ts | 566 ++++--- .../unsupported_dynamic_import_scheme.out | 2 +- cli/tests/websocket_test.ts | 4 +- cli/tools/coverage.rs | 134 +- cli/tools/installer.rs | 6 +- cli/tools/lint.rs | 2 +- cli/tools/repl.rs | 14 +- cli/tools/upgrade.rs | 4 +- cli/tsc.rs | 8 +- cli/tsc/00_typescript.js | 16 +- cli/tsc/99_main_compiler.js | 274 ++- cli/tsc/README.md | 11 +- cli/tsc/compiler.d.ts | 117 ++ cli/tsc_config.rs | 4 +- cli/version.rs | 4 - core/Cargo.toml | 11 +- core/async_cancel.rs | 710 ++++++++ core/async_cell.rs | 91 +- cli/rt/40_error_stack.js => core/error.js | 142 +- core/error.rs | 5 - core/examples/http_bench_bin_ops.rs | 103 +- core/examples/http_bench_json_ops.js | 1 + core/examples/http_bench_json_ops.rs | 103 +- core/gotham_state.rs | 13 + core/lib.rs | 16 +- core/modules.rs | 4 +- core/ops.rs | 15 +- core/resources.rs | 253 ++- core/resources2.rs | 141 -- core/runtime.rs | 32 +- docs/contributing/release_schedule.md | 6 +- docs/contributing/style_guide.md | 4 +- docs/examples.md | 26 +- docs/examples/import_export.md | 4 +- .../getting_started/setup_your_environment.md | 109 ++ docs/getting_started/typescript.md | 33 +- docs/images/deno3.png | Bin 0 -> 17540 bytes docs/runtime/program_lifecycle.md | 3 +- docs/runtime/workers.md | 2 +- docs/toc.json | 3 +- docs/tools.md | 1 + docs/tools/compiler.md | 18 + docs/tools/linter.md | 9 +- docs/tools/repl.md | 2 +- docs/tools/script_installer.md | 2 +- op_crates/crypto/Cargo.toml | 4 +- op_crates/fetch/11_streams.js | 2 +- op_crates/fetch/20_headers.js | 8 +- op_crates/fetch/26_fetch.js | 8 +- op_crates/fetch/Cargo.toml | 4 +- op_crates/fetch/lib.rs | 107 +- op_crates/web/01_event.js | 16 +- op_crates/web/03_global_interfaces.js | 2 +- op_crates/web/Cargo.toml | 4 +- op_crates/web/event_test.js | 20 + op_crates/web/lib.deno_web.d.ts | 17 + runtime/Cargo.toml | 73 + runtime/README.md | 44 + runtime/build.rs | 81 + runtime/colors.rs | 130 ++ runtime/errors.rs | 215 +++ runtime/examples/hello_runtime.js | 2 + runtime/examples/hello_runtime.rs | 55 + runtime/fs_util.rs | 80 + runtime/http_util.rs | 46 + {cli => runtime}/inspector.rs | 259 ++- runtime/js.rs | 31 + .../js}/00_bootstrap_namespace.js | 0 {cli/rt => runtime/js}/01_build.js | 0 {cli/rt => runtime/js}/01_colors.js | 0 {cli/rt => runtime/js}/01_errors.js | 0 {cli/rt => runtime/js}/01_internals.js | 0 {cli/rt => runtime/js}/01_version.js | 0 {cli/rt => runtime/js}/01_web_util.js | 4 +- {cli/rt => runtime/js}/02_console.js | 0 {cli/rt => runtime/js}/06_util.js | 0 {cli/rt => runtime/js}/10_dispatch_minimal.js | 0 {cli/rt => runtime/js}/11_timers.js | 5 +- {cli/rt => runtime/js}/11_workers.js | 0 {cli/rt => runtime/js}/12_io.js | 0 {cli/rt => runtime/js}/13_buffer.js | 0 {cli/rt => runtime/js}/27_websocket.js | 0 {cli/rt => runtime/js}/30_files.js | 0 {cli/rt => runtime/js}/30_fs.js | 0 {cli/rt => runtime/js}/30_metrics.js | 0 {cli/rt => runtime/js}/30_net.js | 32 +- {cli/rt => runtime/js}/30_os.js | 0 {cli/rt => runtime/js}/40_compiler_api.js | 0 {cli/rt => runtime/js}/40_diagnostics.js | 0 runtime/js/40_error_stack.js | 23 + {cli/rt => runtime/js}/40_fs_events.js | 2 + {cli/rt => runtime/js}/40_net_unstable.js | 0 {cli/rt => runtime/js}/40_performance.js | 3 +- {cli/rt => runtime/js}/40_permissions.js | 0 {cli/rt => runtime/js}/40_plugins.js | 0 {cli/rt => runtime/js}/40_process.js | 0 {cli/rt => runtime/js}/40_read_file.js | 0 {cli/rt => runtime/js}/40_signals.js | 11 +- {cli/rt => runtime/js}/40_testing.js | 0 {cli/rt => runtime/js}/40_tls.js | 0 {cli/rt => runtime/js}/40_tty.js | 9 +- {cli/rt => runtime/js}/40_write_file.js | 0 {cli/rt => runtime/js}/41_prompt.js | 0 {cli/rt => runtime/js}/90_deno_ns.js | 0 {cli/rt => runtime/js}/99_main.js | 101 +- {cli/rt => runtime/js}/README.md | 0 runtime/lib.rs | 26 + {cli => runtime}/metrics.rs | 0 {cli => runtime}/ops/crypto.rs | 0 {cli => runtime}/ops/dispatch_minimal.rs | 0 {cli => runtime}/ops/fetch.rs | 9 +- {cli => runtime}/ops/fs.rs | 20 +- {cli => runtime}/ops/fs_events.rs | 58 +- runtime/ops/io.rs | 612 +++++++ runtime/ops/mod.rs | 89 + {cli => runtime}/ops/net.rs | 262 ++- {cli => runtime}/ops/net_unix.rs | 106 +- {cli => runtime}/ops/os.rs | 0 {cli => runtime}/ops/permissions.rs | 0 {cli => runtime}/ops/plugin.rs | 12 +- {cli => runtime}/ops/process.rs | 130 +- {cli => runtime}/ops/runtime.rs | 28 +- {cli => runtime}/ops/signal.rs | 74 +- {cli => runtime}/ops/timers.rs | 42 +- {cli => runtime}/ops/tls.rs | 250 ++- {cli => runtime}/ops/tty.rs | 169 +- {cli => runtime}/ops/web_worker.rs | 0 {cli => runtime}/ops/websocket.rs | 204 +-- {cli => runtime}/ops/worker_host.rs | 308 ++-- {cli => runtime}/permissions.rs | 45 +- runtime/resolve_addr.rs | 134 ++ runtime/tokio_util.rs | 25 + {cli => runtime}/web_worker.rs | 338 ++-- {cli => runtime}/worker.rs | 198 ++- std/archive/tar.ts | 4 +- std/bytes/README.md | 77 +- std/bytes/mod.ts | 85 +- std/bytes/test.ts | 117 +- std/datetime/formatter.ts | 25 +- std/datetime/mod.ts | 13 +- std/datetime/test.ts | 8 +- std/encoding/README.md | 18 +- std/encoding/_yaml/example/inout.ts | 2 +- std/encoding/_yaml/loader/loader.ts | 2 +- std/encoding/_yaml/type/float.ts | 2 +- std/encoding/ascii85.ts | 6 +- std/encoding/ascii85_test.ts | 12 +- std/encoding/binary.ts | 4 +- std/encoding/csv_stringify.ts | 2 +- std/encoding/hex.ts | 6 +- std/encoding/testdata/string.toml | 2 + std/encoding/toml.ts | 150 +- std/encoding/toml_test.ts | 11 + std/fs/walk.ts | 17 +- std/fs/walk_test.ts | 5 +- std/http/cookie.ts | 28 + std/http/cookie_test.ts | 38 + std/io/README.md | 12 +- std/io/bufio.ts | 22 +- std/io/bufio_test.ts | 16 +- std/mime/multipart.ts | 26 +- std/node/_stream/readable.ts | 2 +- std/node/global.d.ts | 5 + std/node/global.ts | 15 + std/node/global_test.ts | 19 + std/node/os.ts | 13 +- std/node/os_test.ts | 14 +- std/tsconfig_test.json | 5 - std/version.ts | 2 +- std/wasi/snapshot_preview1.ts | 207 ++- std/wasi/snapshot_preview1_test.ts | 98 +- std/wasi/testdata | 2 +- std/ws/test.ts | 2 +- test_util/Cargo.toml | 4 +- test_util/src/lib.rs | 848 +++++++--- 260 files changed, 14039 insertions(+), 4875 deletions(-) create mode 100644 cli/lsp/README.md create mode 100644 cli/lsp/analysis.rs create mode 100644 cli/lsp/capabilities.rs create mode 100644 cli/lsp/config.rs create mode 100644 cli/lsp/diagnostics.rs create mode 100644 cli/lsp/language_server.rs create mode 100644 cli/lsp/memory_cache.rs create mode 100644 cli/lsp/mod.rs create mode 100644 cli/lsp/sources.rs create mode 100644 cli/lsp/text.rs create mode 100644 cli/lsp/tsc.rs create mode 100644 cli/lsp/utils.rs delete mode 100644 cli/ops/io.rs delete mode 100644 cli/resolve_addr.rs delete mode 100644 cli/signal.rs create mode 100644 cli/standalone.rs create mode 100644 cli/tests/dynamic_import/b.js create mode 100644 cli/tests/dynamic_import/c.js create mode 100644 cli/tests/fix_dynamic_import_errors.js create mode 100644 cli/tests/fix_dynamic_import_errors.js.out create mode 100644 cli/tests/lsp/did_open_notification.json create mode 100644 cli/tests/lsp/did_open_notification_unstable.json create mode 100644 cli/tests/lsp/exit_notification.json create mode 100644 cli/tests/lsp/hover_request.json create mode 100644 cli/tests/lsp/initialize_request.json create mode 100644 cli/tests/lsp/initialize_request_disabled.json create mode 100644 cli/tests/lsp/initialize_request_unstable.json create mode 100644 cli/tests/lsp/initialized_notification.json create mode 100644 cli/tests/lsp/shutdown_request.json create mode 100644 cli/tests/raw_mode_cbreak.ts create mode 100644 cli/tests/runtime_decorators.ts create mode 100644 cli/tests/runtime_decorators.ts.out create mode 100644 cli/tests/standalone_error.ts create mode 100644 cli/tests/standalone_import.ts create mode 100644 cli/tests/stdout_write_all.out create mode 100644 cli/tests/stdout_write_all.ts create mode 100644 cli/tests/test_run_test_coverage.out create mode 100644 cli/tests/test_run_test_coverage.ts create mode 100644 cli/tsc/compiler.d.ts create mode 100644 core/async_cancel.rs rename cli/rt/40_error_stack.js => core/error.js (67%) delete mode 100644 core/resources2.rs create mode 100644 docs/images/deno3.png create mode 100644 docs/tools/compiler.md create mode 100644 runtime/Cargo.toml create mode 100644 runtime/README.md create mode 100644 runtime/build.rs create mode 100644 runtime/colors.rs create mode 100644 runtime/errors.rs create mode 100644 runtime/examples/hello_runtime.js create mode 100644 runtime/examples/hello_runtime.rs create mode 100644 runtime/fs_util.rs create mode 100644 runtime/http_util.rs rename {cli => runtime}/inspector.rs (81%) create mode 100644 runtime/js.rs rename {cli/rt => runtime/js}/00_bootstrap_namespace.js (100%) rename {cli/rt => runtime/js}/01_build.js (100%) rename {cli/rt => runtime/js}/01_colors.js (100%) rename {cli/rt => runtime/js}/01_errors.js (100%) rename {cli/rt => runtime/js}/01_internals.js (100%) rename {cli/rt => runtime/js}/01_version.js (100%) rename {cli/rt => runtime/js}/01_web_util.js (96%) rename {cli/rt => runtime/js}/02_console.js (100%) rename {cli/rt => runtime/js}/06_util.js (100%) rename {cli/rt => runtime/js}/10_dispatch_minimal.js (100%) rename {cli/rt => runtime/js}/11_timers.js (98%) rename {cli/rt => runtime/js}/11_workers.js (100%) rename {cli/rt => runtime/js}/12_io.js (100%) rename {cli/rt => runtime/js}/13_buffer.js (100%) rename {cli/rt => runtime/js}/27_websocket.js (100%) rename {cli/rt => runtime/js}/30_files.js (100%) rename {cli/rt => runtime/js}/30_fs.js (100%) rename {cli/rt => runtime/js}/30_metrics.js (100%) rename {cli/rt => runtime/js}/30_net.js (91%) rename {cli/rt => runtime/js}/30_os.js (100%) rename {cli/rt => runtime/js}/40_compiler_api.js (100%) rename {cli/rt => runtime/js}/40_diagnostics.js (100%) create mode 100644 runtime/js/40_error_stack.js rename {cli/rt => runtime/js}/40_fs_events.js (90%) rename {cli/rt => runtime/js}/40_net_unstable.js (100%) rename {cli/rt => runtime/js}/40_performance.js (99%) rename {cli/rt => runtime/js}/40_permissions.js (100%) rename {cli/rt => runtime/js}/40_plugins.js (100%) rename {cli/rt => runtime/js}/40_process.js (100%) rename {cli/rt => runtime/js}/40_read_file.js (100%) rename {cli/rt => runtime/js}/40_signals.js (94%) rename {cli/rt => runtime/js}/40_testing.js (100%) rename {cli/rt => runtime/js}/40_tls.js (100%) rename {cli/rt => runtime/js}/40_tty.js (61%) rename {cli/rt => runtime/js}/40_write_file.js (100%) rename {cli/rt => runtime/js}/41_prompt.js (100%) rename {cli/rt => runtime/js}/90_deno_ns.js (100%) rename {cli/rt => runtime/js}/99_main.js (84%) rename {cli/rt => runtime/js}/README.md (100%) create mode 100644 runtime/lib.rs rename {cli => runtime}/metrics.rs (100%) rename {cli => runtime}/ops/crypto.rs (100%) rename {cli => runtime}/ops/dispatch_minimal.rs (100%) rename {cli => runtime}/ops/fetch.rs (73%) rename {cli => runtime}/ops/fs.rs (99%) rename {cli => runtime}/ops/fs_events.rs (74%) create mode 100644 runtime/ops/io.rs create mode 100644 runtime/ops/mod.rs rename {cli => runtime}/ops/net.rs (67%) rename {cli => runtime}/ops/net_unix.rs (56%) rename {cli => runtime}/ops/os.rs (100%) rename {cli => runtime}/ops/permissions.rs (100%) rename {cli => runtime}/ops/plugin.rs (95%) rename {cli => runtime}/ops/process.rs (64%) rename {cli => runtime}/ops/runtime.rs (84%) rename {cli => runtime}/ops/signal.rs (70%) rename {cli => runtime}/ops/timers.rs (82%) rename {cli => runtime}/ops/tls.rs (61%) rename {cli => runtime}/ops/tty.rs (67%) rename {cli => runtime}/ops/web_worker.rs (100%) rename {cli => runtime}/ops/websocket.rs (63%) rename {cli => runtime}/ops/worker_host.rs (54%) rename {cli => runtime}/permissions.rs (96%) create mode 100644 runtime/resolve_addr.rs create mode 100644 runtime/tokio_util.rs rename {cli => runtime}/web_worker.rs (58%) rename {cli => runtime}/worker.rs (64%) delete mode 100644 std/tsconfig_test.json diff --git a/Cargo.lock b/Cargo.lock index 2c3e8cf042a1f8..f74fe8436ad2dd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -60,9 +60,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.34" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf8dcb5b4bbaa28653b647d8c77bd4ed40183b48882e130c1f1ffb73de069fd7" +checksum = "2c0df63cb2955042487fad3aefd2c6e3ae7389ac5dc1beb28921de0b69f779d4" [[package]] name = "anymap" @@ -110,6 +110,17 @@ dependencies = [ "pin-project-lite 0.1.7", ] +[[package]] +name = "async-trait" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.48", +] + [[package]] name = "atty" version = "0.2.14" @@ -122,10 +133,16 @@ dependencies = [ ] [[package]] -name = "autocfg" -version = "0.1.7" +name = "auto_impl" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +checksum = "42cbf586c80ada5e5ccdecae80d3ef0854f224e2dd74435f8d87e6831b8d0a38" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.48", +] [[package]] name = "autocfg" @@ -151,34 +168,13 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -[[package]] -name = "block-buffer" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" -dependencies = [ - "block-padding", - "byte-tools", - "byteorder", - "generic-array 0.12.3", -] - [[package]] name = "block-buffer" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "block-padding" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" -dependencies = [ - "byte-tools", + "generic-array", ] [[package]] @@ -202,16 +198,6 @@ dependencies = [ "alloc-stdlib", ] -[[package]] -name = "buf_redux" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f" -dependencies = [ - "memchr", - "safemem", -] - [[package]] name = "build_const" version = "0.2.1" @@ -224,12 +210,6 @@ version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820" -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - [[package]] name = "byteorder" version = "1.3.4" @@ -256,9 +236,9 @@ checksum = "5ba7d7f7b201dfcbc314b14f2176c92f8ba521dab538b40e426ffed25ed7cd80" [[package]] name = "cc" -version = "1.0.59" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381" +checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" [[package]] name = "cfg-if" @@ -298,15 +278,6 @@ dependencies = [ "vec_map", ] -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - [[package]] name = "cloudabi" version = "0.1.0" @@ -376,7 +347,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "autocfg 1.0.1", + "autocfg", "cfg-if 0.1.10", "lazy_static", ] @@ -429,22 +400,20 @@ dependencies = [ [[package]] name = "deno" -version = "1.5.4" +version = "1.6.2" dependencies = [ "atty", "base64 0.12.3", "byteorder", - "bytes 0.5.6", "chrono", "clap", "deno_core", - "deno_crypto", "deno_doc", "deno_fetch", "deno_lint", + "deno_runtime", "deno_web", "dissimilar", - "dlopen", "dprint-plugin-typescript", "encoding_rs", "env_logger", @@ -457,9 +426,11 @@ dependencies = [ "lazy_static", "libc", "log", + "lspower", "nix", "notify", "os_pipe", + "percent-encoding", "regex", "ring", "rustyline", @@ -471,25 +442,22 @@ dependencies = [ "swc_bundler", "swc_common", "swc_ecmascript", - "sys-info", "tempfile", "termcolor", "test_util", "tokio 0.2.22", "tokio-rustls", "tokio-tungstenite", + "tower-test", "uuid", "walkdir", - "warp", - "webpki", - "webpki-roots", "winapi 0.3.9", "winres", ] [[package]] name = "deno_core" -version = "0.69.0" +version = "0.74.0" dependencies = [ "anyhow", "futures", @@ -497,27 +465,28 @@ dependencies = [ "lazy_static", "libc", "log", + "pin-project 1.0.2", "rusty_v8", "serde", "serde_json", "smallvec", - "tokio 0.3.4", + "tokio 0.3.5", "url", ] [[package]] name = "deno_crypto" -version = "0.3.0" +version = "0.8.0" dependencies = [ "deno_core", - "rand 0.7.3", + "rand", ] [[package]] name = "deno_doc" -version = "0.1.17" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d9f85238450c18dcd5fef41926800fe7d80fc83fd4a6d5416549527cca044b2" +checksum = "68b5a8d931f83afd08af0ed58a3a95d23d6ed5122934db9fa0625bc15a8bed02" dependencies = [ "futures", "lazy_static", @@ -531,7 +500,7 @@ dependencies = [ [[package]] name = "deno_fetch" -version = "0.12.0" +version = "0.17.0" dependencies = [ "deno_core", "reqwest", @@ -540,9 +509,9 @@ dependencies = [ [[package]] name = "deno_lint" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc89fe2e4200cb29a572ff8a35e6ff3779ee8dfcc2b094de4ac180e631743f67" +checksum = "e5fb9a8a07a58414172fdf46eaa88551f238575f52a2fd39bebbfa00626be608" dependencies = [ "anyhow", "derive_more", @@ -556,9 +525,51 @@ dependencies = [ "swc_ecmascript", ] +[[package]] +name = "deno_runtime" +version = "0.4.0" +dependencies = [ + "atty", + "deno_core", + "deno_crypto", + "deno_fetch", + "deno_web", + "dlopen", + "encoding_rs", + "env_logger", + "filetime", + "fwdansi", + "http", + "hyper", + "indexmap", + "lazy_static", + "libc", + "log", + "nix", + "notify", + "percent-encoding", + "regex", + "ring", + "rustyline", + "rustyline-derive", + "serde", + "shell-escape", + "sys-info", + "termcolor", + "test_util", + "tokio 0.2.22", + "tokio-rustls", + "tokio-tungstenite", + "uuid", + "webpki", + "webpki-roots", + "winapi 0.3.9", + "winres", +] + [[package]] name = "deno_web" -version = "0.20.0" +version = "0.25.0" dependencies = [ "deno_core", "futures", @@ -577,22 +588,13 @@ dependencies = [ "syn 1.0.48", ] -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.3", -] - [[package]] name = "digest" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.4", + "generic-array", ] [[package]] @@ -635,9 +637,9 @@ dependencies = [ [[package]] name = "dprint-plugin-typescript" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15a5a28bd6eca62b901835ad9add8cb0be18f345cb27ea46192dc8b57e3ffee8" +checksum = "8344f63ab5f12f9f8cffa78c90e0aad001361cdddfa12bb733e2d5f0424c36d6" dependencies = [ "dprint-core", "serde", @@ -733,12 +735,6 @@ dependencies = [ "libc", ] -[[package]] -name = "fake-simd" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" - [[package]] name = "filetime" version = "0.2.12" @@ -775,6 +771,16 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding", +] + [[package]] name = "from_variant" version = "0.1.2" @@ -816,12 +822,6 @@ dependencies = [ "libc", ] -[[package]] -name = "fuchsia-cprng" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" - [[package]] name = "fuchsia-zircon" version = "0.3.3" @@ -958,15 +958,6 @@ version = "0.3.55" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" -[[package]] -name = "generic-array" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" -dependencies = [ - "typenum", -] - [[package]] name = "generic-array" version = "0.14.4" @@ -1014,28 +1005,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00d63df3d41950fb462ed38308eea019113ad1508da725bbedcd0fa5a85ef5f7" [[package]] -name = "headers" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed18eb2459bf1a09ad2d6b1547840c3e5e62882fa09b9a6a20b1de8e3228848f" -dependencies = [ - "base64 0.12.3", - "bitflags", - "bytes 0.5.6", - "headers-core", - "http", - "mime", - "sha-1 0.8.2", - "time", -] - -[[package]] -name = "headers-core" -version = "0.2.0" +name = "heck" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" dependencies = [ - "http", + "unicode-segmentation", ] [[package]] @@ -1074,6 +1049,12 @@ version = "1.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +[[package]] +name = "httpdate" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "494b4d60369511e7dea41cf646832512a94e542f68bb9c49e54518e0f468eb47" + [[package]] name = "humantime" version = "1.3.0" @@ -1085,9 +1066,9 @@ dependencies = [ [[package]] name = "hyper" -version = "0.13.7" +version = "0.13.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb" +checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf" dependencies = [ "bytes 0.5.6", "futures-channel", @@ -1097,10 +1078,10 @@ dependencies = [ "http", "http-body", "httparse", + "httpdate", "itoa", - "pin-project 0.4.23", + "pin-project 1.0.2", "socket2", - "time", "tokio 0.2.22", "tower-service", "tracing", @@ -1152,7 +1133,7 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2" dependencies = [ - "autocfg 1.0.1", + "autocfg", "hashbrown", ] @@ -1239,9 +1220,9 @@ dependencies = [ [[package]] name = "jsdoc" -version = "0.11.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e220ced55f8e93f0a3fb6b6f7c5829235299d818dac283535760a4182b5f0a" +checksum = "8dd6d090c0140363cb94f672def08187d731ecdf28b84a1fc8e55386a2ca2c77" dependencies = [ "nom", "serde", @@ -1314,6 +1295,54 @@ dependencies = [ "cfg-if 0.1.10", ] +[[package]] +name = "lsp-types" +version = "0.85.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "857650f3e83fb62f89d15410414e0ed7d0735445020da398d37f65d20a5423b9" +dependencies = [ + "base64 0.12.3", + "bitflags", + "serde", + "serde_json", + "serde_repr", + "url", +] + +[[package]] +name = "lspower" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64106b17ca8f6f73cc21a3d1f39684ff65293a291aa96026aee85eaae02339a5" +dependencies = [ + "async-trait", + "auto_impl", + "bytes 0.5.6", + "dashmap", + "futures", + "log", + "lsp-types", + "lspower-macros", + "nom", + "serde", + "serde_json", + "tokio 0.2.22", + "tokio-util", + "tower-service", +] + +[[package]] +name = "lspower-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10b77a3b4fcd1a014a7a7a1043a5c3646068abfc75b46a9f2c4ab813d53f7c3c" +dependencies = [ + "heck", + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.48", +] + [[package]] name = "matches" version = "0.1.8" @@ -1355,7 +1384,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9" dependencies = [ "adler", - "autocfg 1.0.1", + "autocfg", ] [[package]] @@ -1447,24 +1476,6 @@ dependencies = [ "winapi 0.3.9", ] -[[package]] -name = "multipart" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8209c33c951f07387a8497841122fc6f712165e3f9bda3e6be4645b58188f676" -dependencies = [ - "buf_redux", - "httparse", - "log", - "mime", - "mime_guess", - "quick-error", - "rand 0.6.5", - "safemem", - "tempfile", - "twoway", -] - [[package]] name = "net2" version = "0.2.35" @@ -1540,7 +1551,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg 1.0.1", + "autocfg", "num-integer", "num-traits", "serde", @@ -1552,7 +1563,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" dependencies = [ - "autocfg 1.0.1", + "autocfg", "num-traits", ] @@ -1562,7 +1573,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" dependencies = [ - "autocfg 1.0.1", + "autocfg", ] [[package]] @@ -1581,12 +1592,6 @@ version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0" -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - [[package]] name = "opaque-debug" version = "0.3.0" @@ -1639,7 +1644,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b" dependencies = [ "cfg-if 0.1.10", - "cloudabi 0.1.0", + "cloudabi", "instant", "libc", "redox_syscall", @@ -1681,7 +1686,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526" dependencies = [ "phf_shared", - "rand 0.7.3", + "rand", ] [[package]] @@ -1788,6 +1793,30 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.48", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "version_check", +] + [[package]] name = "proc-macro-hack" version = "0.5.19" @@ -1858,25 +1887,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426" -[[package]] -name = "rand" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" -dependencies = [ - "autocfg 0.1.7", - "libc", - "rand_chacha 0.1.1", - "rand_core 0.4.2", - "rand_hc 0.1.0", - "rand_isaac", - "rand_jitter", - "rand_os", - "rand_pcg 0.1.2", - "rand_xorshift", - "winapi 0.3.9", -] - [[package]] name = "rand" version = "0.7.3" @@ -1885,20 +1895,10 @@ checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ "getrandom", "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", - "rand_pcg 0.2.1", -] - -[[package]] -name = "rand_chacha" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" -dependencies = [ - "autocfg 0.1.7", - "rand_core 0.3.1", + "rand_chacha", + "rand_core", + "rand_hc", + "rand_pcg", ] [[package]] @@ -1908,24 +1908,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ "ppv-lite86", - "rand_core 0.5.1", + "rand_core", ] -[[package]] -name = "rand_core" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" -dependencies = [ - "rand_core 0.4.2", -] - -[[package]] -name = "rand_core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" - [[package]] name = "rand_core" version = "0.5.1" @@ -1935,66 +1920,13 @@ dependencies = [ "getrandom", ] -[[package]] -name = "rand_hc" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" -dependencies = [ - "rand_core 0.3.1", -] - [[package]] name = "rand_hc" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_isaac" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rand_jitter" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" -dependencies = [ - "libc", - "rand_core 0.4.2", - "winapi 0.3.9", -] - -[[package]] -name = "rand_os" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" -dependencies = [ - "cloudabi 0.0.3", - "fuchsia-cprng", - "libc", - "rand_core 0.4.2", - "rdrand", - "winapi 0.3.9", -] - -[[package]] -name = "rand_pcg" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" -dependencies = [ - "autocfg 0.1.7", - "rand_core 0.4.2", + "rand_core", ] [[package]] @@ -2003,25 +1935,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_xorshift" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" -dependencies = [ - "rand_core 0.3.1", -] - -[[package]] -name = "rdrand" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" -dependencies = [ - "rand_core 0.3.1", + "rand_core", ] [[package]] @@ -2108,9 +2022,9 @@ checksum = "e005d658ad26eacc2b6c506dfde519f4e277e328d0eb3379ca61647d70a8f531" [[package]] name = "ring" -version = "0.16.15" +version = "0.16.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "952cd6b98c85bbc30efa1ba5783b8abf12fec8b3287ffa52605b9432313e34e4" +checksum = "024a1e66fea74c66c66624ee5622a7ff0e4b73a13b4f5c326ddb50c708944226" dependencies = [ "cc", "libc", @@ -2145,9 +2059,9 @@ dependencies = [ [[package]] name = "rusty_v8" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf06ea79ead18b3f81707b78e6d7813e83c772d0cb4b43caf3fa35a5df7eaab" +checksum = "6bdaa4aeeae3253c3b34486af66527d9982105d79ba57cf9b50b217e7b47a8b6" dependencies = [ "bitflags", "cargo_gn", @@ -2158,9 +2072,9 @@ dependencies = [ [[package]] name = "rustyline" -version = "7.0.0" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a5f54deba50e65ee4cf786dbc37e8b3c63bdccccbcf9d3a8a9fd0c1bb7e1984" +checksum = "8227301bfc717136f0ecbd3d064ba8199e44497a0bdd46bb01ede4387cfd2cec" dependencies = [ "bitflags", "cfg-if 1.0.0", @@ -2192,12 +2106,6 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" -[[package]] -name = "safemem" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" - [[package]] name = "same-file" version = "1.0.6" @@ -2252,18 +2160,18 @@ checksum = "b46e1121e8180c12ff69a742aabc4f310542b6ccb69f1691689ac17fdf8618aa" [[package]] name = "serde" -version = "1.0.117" +version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a" +checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.117" +version = "1.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e" +checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", @@ -2272,9 +2180,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95" +checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779" dependencies = [ "indexmap", "itoa", @@ -2282,6 +2190,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc6b7951b17b051f3210b063f12cc17320e2fe30ae05b0fe2a3abb068551c76" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.48", +] + [[package]] name = "serde_urlencoded" version = "0.6.1" @@ -2294,29 +2213,17 @@ dependencies = [ "url", ] -[[package]] -name = "sha-1" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha-1" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770" dependencies = [ - "block-buffer 0.9.0", + "block-buffer", "cfg-if 0.1.10", "cpuid-bool", - "digest 0.9.0", - "opaque-debug 0.3.0", + "digest", + "opaque-debug", ] [[package]] @@ -2461,9 +2368,9 @@ dependencies = [ [[package]] name = "swc_bundler" -version = "0.17.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82147399b2eb2657714b5d9f59fa8fd11ffa0a510953c4eb5593bd7006128cec" +checksum = "65fac08904af807442e8f08c50f46a95d346a09db69a94f83670f5ae7e5945ec" dependencies = [ "anyhow", "crc", @@ -2487,9 +2394,9 @@ dependencies = [ [[package]] name = "swc_common" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c341ef776c6a3dde1cab58b30a8e0ce12f4c7553879105b554260882f43ddd" +checksum = "96d63837c3d3d226ec338338a8fc32c6c8aabefd0c4d32e6b0bcd1ed991c6963" dependencies = [ "ast_node", "cfg-if 0.1.10", @@ -2508,9 +2415,9 @@ dependencies = [ [[package]] name = "swc_ecma_ast" -version = "0.35.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d14f5b7769eb53a98276475ca72d188f5fa0fbf1819d3e9241b9e295ae0542" +checksum = "b65d3a2852e7c496d3e1dfc38719a31e90ae03a58ce891faf48ccb9c1ddff7ee" dependencies = [ "enum_kind", "is-macro", @@ -2523,9 +2430,9 @@ dependencies = [ [[package]] name = "swc_ecma_codegen" -version = "0.41.1" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e655391ee7b9e7e01fde2f64bfc1dbcf8b712510fc09edc6c00de52704e6a9" +checksum = "19ae0f17cc128399269387d00e9aa6731f7a5397d6e86fd4262a941dc219b5aa" dependencies = [ "bitflags", "num-bigint", @@ -2534,6 +2441,7 @@ dependencies = [ "swc_common", "swc_ecma_ast", "swc_ecma_codegen_macros", + "swc_ecma_parser", ] [[package]] @@ -2551,9 +2459,9 @@ dependencies = [ [[package]] name = "swc_ecma_dep_graph" -version = "0.9.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06d740540964d8ac8d2d2c603223f49b31a1ae9803d2cdcff0796c210085ecc0" +checksum = "da3afd18873ffd61f995b182be524d20cfd051014ac8a4641c7b10ec4b1621bf" dependencies = [ "swc_atoms", "swc_common", @@ -2563,9 +2471,9 @@ dependencies = [ [[package]] name = "swc_ecma_parser" -version = "0.43.1" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d22c8f6cf8f45b8f2c1c09713f5d0d2e007394c1e8a9fe8ce20d8be5b57dc6a" +checksum = "e2ec412ebca8caa62ae98f90d5829d3f85d4db4b31c7339cdae72bbc063c42ea" dependencies = [ "either", "enum_kind", @@ -2597,9 +2505,9 @@ dependencies = [ [[package]] name = "swc_ecma_transforms" -version = "0.30.3" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49e8cfe7e5e05795c3647534e68036a1764bea326611db40451507529db68528" +checksum = "fc476391a584d3a4f94038f8f09d37686727ff1706ac1247de6de28d677bda61" dependencies = [ "Inflector", "arrayvec", @@ -2645,9 +2553,9 @@ dependencies = [ [[package]] name = "swc_ecma_utils" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64fd3d84ee287900f37fd06a1856f57cd0d65b37bb0557abde2c91d8a9b28155" +checksum = "a37310926374783577b62865546ddccbe6c5f1700586151a8a6d953ef45b5bcb" dependencies = [ "once_cell", "scoped-tls", @@ -2660,9 +2568,9 @@ dependencies = [ [[package]] name = "swc_ecma_visit" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee22eeb8c6987f9e740e1867292bd45785408f62ded95e1dc57b9c6c26e85a96" +checksum = "88671e165a87ae2c7d9194b1715c9502e0c1c82eb559951e95ef76586a195cd6" dependencies = [ "num-bigint", "swc_atoms", @@ -2673,9 +2581,9 @@ dependencies = [ [[package]] name = "swc_ecmascript" -version = "0.14.4" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b4658cfd64f6931c38d283d3ee65e2f3f964e07c711782eab2a8c71f35d2ba1" +checksum = "22a63164105d73e729bc426f6982571d800f3e14770c848a7ee0f6e8a8d821a8" dependencies = [ "swc_ecma_ast", "swc_ecma_codegen", @@ -2762,7 +2670,7 @@ checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ "cfg-if 0.1.10", "libc", - "rand 0.7.3", + "rand", "redox_syscall", "remove_dir_all", "winapi 0.3.9", @@ -2770,9 +2678,9 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" dependencies = [ "winapi-util", ] @@ -2792,13 +2700,15 @@ version = "0.1.0" dependencies = [ "bytes 0.5.6", "futures", + "hyper", "lazy_static", "os_pipe", "pty", "regex", "tempfile", "tokio 0.2.22", - "warp", + "tokio-rustls", + "tokio-tungstenite", ] [[package]] @@ -2882,11 +2792,11 @@ dependencies = [ [[package]] name = "tokio" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dfe2523e6fa84ddf5e688151d4e5fddc51678de9752c6512a24714c23818d61" +checksum = "a12a3eb39ee2c231be64487f1fcbe726c8f2514876a55480a5ab8559fc374252" dependencies = [ - "autocfg 1.0.1", + "autocfg", "bytes 0.6.0", "futures-core", "lazy_static", @@ -2936,6 +2846,17 @@ dependencies = [ "webpki", ] +[[package]] +name = "tokio-test" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed0049c119b6d505c4447f5c64873636c7af6c75ab0d45fd9f618d82acb8016d" +dependencies = [ + "bytes 0.5.6", + "futures-core", + "tokio 0.2.22", +] + [[package]] name = "tokio-tungstenite" version = "0.11.0" @@ -2972,12 +2893,32 @@ dependencies = [ "serde", ] +[[package]] +name = "tower-layer" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a35d656f2638b288b33495d1053ea74c40dc05ec0b92084dd71ca5566c4ed1dc" + [[package]] name = "tower-service" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" +[[package]] +name = "tower-test" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ba4bbc2c1e4a8543c30d4c13a4c8314ed72d6e07581910f665aa13fde0153c8" +dependencies = [ + "futures-util", + "pin-project 0.4.23", + "tokio 0.2.22", + "tokio-test", + "tower-layer", + "tower-service", +] + [[package]] name = "tracing" version = "0.1.19" @@ -2998,16 +2939,6 @@ dependencies = [ "lazy_static", ] -[[package]] -name = "tracing-futures" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c" -dependencies = [ - "pin-project 0.4.23", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.3" @@ -3027,21 +2958,12 @@ dependencies = [ "httparse", "input_buffer", "log", - "rand 0.7.3", - "sha-1 0.9.1", + "rand", + "sha-1", "url", "utf-8", ] -[[package]] -name = "twoway" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1" -dependencies = [ - "memchr", -] - [[package]] name = "typenum" version = "1.12.0" @@ -3107,22 +3029,17 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ + "form_urlencoded", "idna", "matches", "percent-encoding", "serde", ] -[[package]] -name = "urlencoding" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9232eb53352b4442e40d7900465dfc534e8cb2dc8f18656fcb2ac16112b5593" - [[package]] name = "utf-8" version = "0.7.5" @@ -3141,7 +3058,7 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11" dependencies = [ - "rand 0.7.3", + "rand", ] [[package]] @@ -3177,35 +3094,6 @@ dependencies = [ "try-lock", ] -[[package]] -name = "warp" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f41be6df54c97904af01aa23e613d4521eed7ab23537cede692d4058f6449407" -dependencies = [ - "bytes 0.5.6", - "futures", - "headers", - "http", - "hyper", - "log", - "mime", - "mime_guess", - "multipart", - "pin-project 0.4.23", - "scoped-tls", - "serde", - "serde_json", - "serde_urlencoded", - "tokio 0.2.22", - "tokio-rustls", - "tokio-tungstenite", - "tower-service", - "tracing", - "tracing-futures", - "urlencoding", -] - [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" diff --git a/Cargo.toml b/Cargo.toml index 3281be1af6a658..b7b8adae579258 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ members = [ "cli", "core", + "runtime", "test_plugin", "test_util", "op_crates/fetch", diff --git a/README.md b/README.md index 2a722c56d38013..ae71067fdc883f 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build Status - Cirrus][]][Build status] [![Twitter handle][]][Twitter badge] - + Deno is a _simple_, _modern_ and _secure_ runtime for **JavaScript** and **TypeScript** that uses V8 and is built in Rust. @@ -83,7 +83,7 @@ More in-depth info can be found in the runtime We appreciate your help! -To contribute, please read the our +To contribute, please read our [guidelines](https://github.com/denoland/deno/blob/master/docs/contributing/style_guide.md). [Build Status - Cirrus]: https://github.com/denoland/deno/workflows/ci/badge.svg?branch=master&event=push diff --git a/Releases.md b/Releases.md index 6b2684f4bf7a9b..166c5162de216b 100644 --- a/Releases.md +++ b/Releases.md @@ -6,6 +6,94 @@ https://github.com/denoland/deno/releases We also have one-line install commands at: https://github.com/denoland/deno_install +### 1.6.2 / 2020.12.22 + +- feat(lsp): support the unstable setting (#8851) +- feat(unstable): record raw coverage into a directory (#8642) +- feat(unstable): support in memory certificate data for Deno.createHttpClient + (#8739) +- fix: atomically write files to $DENO_DIR (#8822) +- fix: implement ReadableStream fetch body handling (#8855) +- fix: make DNS resolution async (#8743) +- fix: make dynamic import errors catchable (#8750) +- fix: respect enable flag for requests in lsp (#8850) +- refactor: rename runtime/rt to runtime/js (#8806) +- refactor: rewrite lsp to be async (#8727) +- refactor: rewrite ops to use ResourceTable2 (#8512) +- refactor: optimise static assets in lsp (#8771) +- upgrade TypeScript to 4.1.3 (#8785) + +Changes in std version 0.82.0: + +- feat(std/node): Added os.type (#8591) + +### 1.6.1 / 2020.12.14 + +- feat(lsp): support import maps (#8683) +- fix: show canary string in long version (#8675) +- fix: zsh completions (#8718) +- fix(compile): error when the output path already exists (#8681) +- fix(lsp): only resolve sources with supported schemas (#8696) +- fix(op_crates/fetch): support non-ascii response headers value (#8600) +- fix(repl): recover from invalid input (#8759) +- refactor: deno_runtime crate (#8640) +- upgrade: swc_ecmascript to 0.15.0 (#8688) + +Changes in std version 0.81.0: + +- fix(std/datetime): partsToDate (#8553) +- fix(std/wasi): disallow multiple starts (#8712) + +### 1.6.0 / 2020.12.08 + +- BREAKING: Make "isolatedModules" setting non-configurable (#8482) +- feat: Add mvp language server (#8515, #8651) +- feat: deno compile (#8539, #8563, #8581) +- feat: Update to TypeScript 4.1 (#7573) +- feat: EventTarget signal support (#8616) +- feat: Add canary support to upgrade subcommand (#8476) +- feat(unstable): Add cbreak option to Deno.setRaw (#8383) +- fix: "onload" event order (#8376) +- fix: Add file URL support for Deno.readLink (#8423) +- fix: Add hygiene pass to transpile pipeline (#8586) +- fix: Require allow-write permissions for unixpackets datagrams & unix socket + (#8511) +- fix: Highlight `async` and `of` in REPL (#8569) +- fix: Make output of deno info --json deterministic (#8483) +- fix: Panic in worker when closing at top level (#8510) +- fix: Support passing cli arguments under `deno eval` (#8547) +- fix: `redirect: "manual"` fetch should return `type: "default"` response + (#8353) +- fix: close() calls sometimes prints results in REPL (#8558) +- fix: watcher doesn't exit when module resolution fails (#8521) +- fix: Fix PermissionDenied error being caught in Websocket constructor (#8402) +- fix: Set User-Agent header in Websocket (#8502, #8470) +- perf: Use minimal op with performance.now() (#8619) +- core: Implement new ResourceTable (#8273) +- core: Add FsModuleLoader that supports loading from filesystem (#8523) +- upgrade rusty_v8 to 0.14.0 (#8663) +- upgrade: deno_doc, deno_lint, dprint, swc (#8552, #8575, #8588) + +Changes in std version 0.80.0: + +- BREAKING(std/bytes): Adjust APIs based on std-wg discussion (#8612) +- feat(std/encoding/csv): Add stringify functionality (#8408) +- feat(std/fs): Re-enable `followSymlinks` on `walk()` (#8479) +- feat(std/http): Add Cookie value validation (#8471) +- feat(std/node): Add "setImmediate" and "clearImmediate" to global scope + (#8566) +- feat(std/node): Port most of node errors (#7934) +- feat(std/node/stream): Add Duplex, Transform, Passthrough, pipeline, finished + and promises (#7940) +- feat(std/wasi): Add return on exit option (#8605) +- feat(std/wasi): Add support for initializing reactors (#8603) +- feat(std/ws): protocol & version support (#8505) +- fix(std/bufio): Remove '\r' at the end of Windows lines (#8447) +- fix(std/encoding): Rewrite toml parser not to use eval() (#8624) +- fix(std/encoding/csv): Correct readme formatting due to dprint issues (#8503) +- fix(std/http): Prevent path traversal (#8474) +- fix(std/node): Inline default objects to ensure correct prototype (#8513) + ### 1.5.4 / 2020.11.23 - feat(unstable): Add deno test --no-run (#8093) @@ -358,7 +446,7 @@ Changes in std version 0.69.0: - fix: Don't expose globalThis.__bootstrap (#7344) - fix: Handle bad redirects more gracefully (#7342) - fix: Handling of + character in URLSearchParams (#7314) -- fix: Regex for TS refereces and deno-types (#7333) +- fix: Regex for TS references and deno-types (#7333) - fix: Set maximum size of thread pool to 31 (#7290) - fix: Support missing features in --no-check (#7289) - fix: Use millisecond precision for Deno.futime and Deno.utime (#7299) @@ -579,7 +667,7 @@ Changes in std version 0.61.0: - fix(std/http): Properly return port 80 in \_parseAddrFromStr (#6635) - fix(std/mime): Boundary random hex values (#6646) - fix(std/node): Add encoding argument to Buffer.byteLength (#6639) -- fix(std/tesing/asserts): AssertEquals/NotEquals should use milliseconds in +- fix(std/testing/asserts): AssertEquals/NotEquals should use milliseconds in Date (#6644) - fix(std/wasi): Return errno::success from fd_tell (#6636) @@ -1078,7 +1166,7 @@ Read more about this release at https://deno.land/v1 ### v0.41.0 / 2020.04.16 - BREAKING: Improve readdir() and FileInfo interfaces (#4763) -- BREAKING: Remove depracated APIs for mkdir and mkdirSync (#4615) +- BREAKING: Remove deprecated APIs for mkdir and mkdirSync (#4615) - BREAKING: Make fetch API more web compatible (#4687) - BREAKING: Remove std/testing/format.ts (#4749) - BREAKING: Migrate std/types to deno.land/x/types/ (#4713, #4771) @@ -1232,7 +1320,7 @@ Read more about this release at https://deno.land/v1 - feat: Add Deno.umask (#4290) - feat: Add global --quiet flag (#4135) - feat: Improvements to std/flags. (#4279) -- feat: Make internel error frames dimmer (#4201) +- feat: Make internal error frames dimmer (#4201) - feat: Support async function and EventListenerObject as listeners (#4240) - feat: add actual error class to fail message (#4305) - feat: seek should return cursor position (#4211) @@ -1260,7 +1348,7 @@ Read more about this release at https://deno.land/v1 - refactor: Rename Option -> Options (#4226) - refactor: cleanup compiler runtimes (#4230) - refactor: preliminary cleanup of Deno.runTests() (#4237) -- refactor: reduce unnecesarry output in cli/js tests (#4182) +- refactor: reduce unnecessary output in cli/js tests (#4182) - refactor: reorganize cli/js (#4317, #4316, #4310, #4250, #4302, #4283, #4264) - refactor: rewrite testPerm into unitTest (#4231) - refactor: uncomment tests broken tests, use skip (#4311) @@ -1555,7 +1643,7 @@ Read more about this release at https://deno.land/v1 - feat: Add ResourceTable in core (#3150) - feat: Re-enable standard stream support for fetch bodies (#3192) - feat: Add CustomInspect for Headers (#3130) -- fix: Cherry-pick depot_tools 6a1d778 to fix macOS Cataliona issues (#3175) +- fix: Cherry-pick depot_tools 6a1d778 to fix macOS Catalina issues (#3175) - fix: Remove runtime panics in op dispatch (#3176, #3202, #3131) - fix: BufReader.readString to actually return Deno.EOF at end (#3191) - perf: faster TextDecoder (#3180, #3204) @@ -1936,7 +2024,7 @@ In deno: In deno_std - Clean up HTTP async iterator code (denoland/deno_std#411) -- fix: add exnext lib to tsconfig.json (denoland/deno_std#416) +- fix: add esnext lib to tsconfig.json (denoland/deno_std#416) - feat(fs): add copy/copySync (denoland/deno_std#278) - feat: add Tar and Untar classes (denoland/deno_std#388) - ws: make acceptable() more robust (denoland/deno_std#404) diff --git a/cli/Cargo.toml b/cli/Cargo.toml index a00a6b76967010..0e56c61265d147 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -2,7 +2,7 @@ [package] name = "deno" -version = "1.5.4" +version = "1.6.2" license = "MIT" authors = ["the Deno authors"] edition = "2018" @@ -20,10 +20,9 @@ harness = false path = "./bench/main.rs" [build-dependencies] -deno_crypto = { path = "../op_crates/crypto", version = "0.3.0" } -deno_core = { path = "../core", version = "0.69.0" } -deno_web = { path = "../op_crates/web", version = "0.20.0" } -deno_fetch = { path = "../op_crates/fetch", version = "0.12.0" } +deno_core = { path = "../core", version = "0.74.0" } +deno_fetch = { path = "../op_crates/fetch", version = "0.17.0" } +deno_web = { path = "../op_crates/web", version = "0.25.0" } regex = "1.3.9" serde = { version = "1.0.116", features = ["derive"] } @@ -32,22 +31,19 @@ winres = "0.1.11" winapi = "0.3.9" [dependencies] -deno_crypto = { path = "../op_crates/crypto", version = "0.3.0" } -deno_core = { path = "../core", version = "0.69.0" } -deno_doc = "0.1.17" -deno_lint = "0.2.12" -deno_web = { path = "../op_crates/web", version = "0.20.0" } -deno_fetch = { path = "../op_crates/fetch", version = "0.12.0" } +deno_core = { path = "../core", version = "0.74.0" } +deno_doc = "0.1.19" +deno_lint = "0.2.14" +deno_runtime = { path = "../runtime", version = "0.4.0" } atty = "0.2.14" base64 = "0.12.3" -bytes = "0.5.6" byteorder = "1.3.4" clap = "2.33.3" dissimilar = "1.0.2" -dlopen = "0.1.8" +dprint-plugin-typescript = "0.36.0" encoding_rs = "0.8.24" -dprint-plugin-typescript = "0.35.0" +env_logger = "0.7.1" filetime = "0.2.12" http = "0.2.1" indexmap = "1.6.0" @@ -55,31 +51,26 @@ jsonc-parser = "0.14.0" lazy_static = "1.4.0" libc = "0.2.77" log = "0.4.11" -env_logger = "0.7.1" +lspower = "0.1.0" notify = "5.0.0-pre.3" +percent-encoding = "2.1.0" regex = "1.3.9" -ring = "0.16.15" -rustyline = { version = "7.0.0", default-features = false } +ring = "0.16.19" +rustyline = { version = "7.1.0", default-features = false } rustyline-derive = "0.4.0" +semver-parser = "0.9.0" serde = { version = "1.0.116", features = ["derive"] } shell-escape = "0.1.5" -sys-info = "0.7.0" sourcemap = "6.0.1" -swc_bundler = "=0.17.1" -swc_common = { version = "0.10.6", features = ["sourcemap"] } -swc_ecmascript = { version = "0.14.4", features = ["codegen", "dep_graph", "parser", "react", "transforms", "visit"] } +swc_bundler = "0.18.0" +swc_common = { version = "0.10.7", features = ["sourcemap"] } +swc_ecmascript = { version = "0.16.0", features = ["codegen", "dep_graph", "parser", "react", "transforms", "visit"] } tempfile = "3.1.0" termcolor = "1.1.0" tokio = { version = "0.2.22", features = ["full"] } tokio-rustls = "0.14.1" -# Keep in-sync with warp. -tokio-tungstenite = "0.11.0" -webpki = "0.21.3" -webpki-roots = "=0.19.0" # Pinned to v0.19.0 to match 'reqwest'. -walkdir = "2.3.1" -warp = { version = "0.2.5", features = ["tls"] } -semver-parser = "0.9.0" uuid = { version = "0.8.1", features = ["v4"] } +walkdir = "2.3.1" [target.'cfg(windows)'.dependencies] winapi = { version = "0.3.9", features = ["knownfolders", "mswsock", "objbase", "shlobj", "tlhelp32", "winbase", "winerror", "winsock2"] } @@ -93,6 +84,8 @@ nix = "0.19.0" chrono = "0.4.15" os_pipe = "0.9.2" test_util = { path = "../test_util" } +tokio-tungstenite = "0.11.0" +tower-test = "0.3.0" [target.'cfg(unix)'.dev-dependencies] exec = "0.3.1" # Used in test_raw_tty diff --git a/cli/ast.rs b/cli/ast.rs index 4b8989d70705c1..d4837bb6f0d0e2 100644 --- a/cli/ast.rs +++ b/cli/ast.rs @@ -42,6 +42,7 @@ use swc_ecmascript::parser::Syntax; use swc_ecmascript::parser::TsConfig; use swc_ecmascript::transforms::fixer; use swc_ecmascript::transforms::helpers; +use swc_ecmascript::transforms::hygiene; use swc_ecmascript::transforms::pass::Optional; use swc_ecmascript::transforms::proposals; use swc_ecmascript::transforms::react; @@ -244,6 +245,7 @@ pub struct ParsedModule { leading_comments: Vec, module: Module, source_map: Rc, + source_file: Rc, } impl fmt::Debug for ParsedModule { @@ -304,6 +306,7 @@ impl ParsedModule { helpers::inject_helpers(), typescript::strip(), fixer(Some(&self.comments)), + hygiene(), ); let program = swc_common::GLOBALS.set(&Globals::new(), || { @@ -351,24 +354,12 @@ impl ParsedModule { } } -/// For a given specifier, source, and media type, parse the source of the -/// module and return a representation which can be further processed. -/// -/// # Arguments -/// -/// - `specifier` - The module specifier for the module. -/// - `source` - The source code for the module. -/// - `media_type` - The media type for the module. -/// -// NOTE(bartlomieju): `specifier` has `&str` type instead of -// `&ModuleSpecifier` because runtime compiler APIs don't -// require valid module specifiers -pub fn parse( +pub fn parse_with_source_map( specifier: &str, source: &str, media_type: &MediaType, + source_map: Rc, ) -> Result { - let source_map = SourceMap::default(); let source_file = source_map.new_source_file( FileName::Custom(specifier.to_string()), source.to_string(), @@ -405,11 +396,33 @@ pub fn parse( Ok(ParsedModule { leading_comments, module, - source_map: Rc::new(source_map), + source_map, comments, + source_file, }) } +/// For a given specifier, source, and media type, parse the source of the +/// module and return a representation which can be further processed. +/// +/// # Arguments +/// +/// - `specifier` - The module specifier for the module. +/// - `source` - The source code for the module. +/// - `media_type` - The media type for the module. +/// +// NOTE(bartlomieju): `specifier` has `&str` type instead of +// `&ModuleSpecifier` because runtime compiler APIs don't +// require valid module specifiers +pub fn parse( + specifier: &str, + source: &str, + media_type: &MediaType, +) -> Result { + let source_map = Rc::new(SourceMap::default()); + parse_with_source_map(specifier, source, media_type, source_map) +} + pub enum TokenOrComment { Token(Token), Comment { kind: CommentKind, text: String }, @@ -483,40 +496,12 @@ pub fn transpile_module( globals: &Globals, cm: Rc, ) -> Result<(Rc, Module), AnyError> { - // TODO(@kitsonk) DRY-up with ::parse() - let error_buffer = ErrorBuffer::new(); - let handler = Handler::with_emitter_and_flags( - Box::new(error_buffer.clone()), - HandlerFlags { - can_emit_warnings: true, - dont_buffer_diagnostics: true, - ..HandlerFlags::default() - }, - ); - let comments = SingleThreadedComments::default(); - let syntax = get_syntax(media_type); - let source_file = - cm.new_source_file(FileName::Custom(filename.to_string()), src.to_string()); - let lexer = Lexer::new( - syntax, - TARGET, - StringInput::from(&*source_file), - Some(&comments), - ); - let mut parser = swc_ecmascript::parser::Parser::new_from(lexer); - let sm = cm.clone(); - let module = parser.parse_module().map_err(move |err| { - let mut diagnostic = err.into_diagnostic(&handler); - diagnostic.emit(); + let parsed_module = + parse_with_source_map(filename, src, media_type, cm.clone())?; - DiagnosticBuffer::from_error_buffer(error_buffer, |span| { - sm.lookup_char_pos(span.lo) - }) - })?; - // TODO(@kitsonk) DRY-up with ::transpile() let jsx_pass = react::react( cm, - Some(&comments), + Some(&parsed_module.comments), react::Options { pragma: emit_options.jsx_factory.clone(), pragma_frag: emit_options.jsx_fragment_factory.clone(), @@ -534,8 +519,12 @@ pub fn transpile_module( }), helpers::inject_helpers(), typescript::strip(), - fixer(Some(&comments)), + fixer(Some(&parsed_module.comments)), ); + + let source_file = parsed_module.source_file.clone(); + let module = parsed_module.module; + let module = swc_common::GLOBALS.set(globals, || { helpers::HELPERS.set(&helpers::Helpers::new(false), || { module.fold_with(&mut passes) @@ -567,6 +556,7 @@ impl swc_bundler::Hook for BundleHook { value: Box::new(ast::Expr::Lit(ast::Lit::Str(ast::Str { span, value: value.into(), + kind: ast::StrKind::Synthesized, has_escape: false, }))), }, @@ -621,7 +611,9 @@ mod tests { leading_comments: Vec::new(), col: 0, line: 1, - specifier: "./test.ts".into() + specifier: "./test.ts".into(), + specifier_col: 21, + specifier_line: 1, }, DependencyDescriptor { kind: DependencyKind::Import, @@ -629,7 +621,9 @@ mod tests { leading_comments: Vec::new(), col: 22, line: 2, - specifier: "./foo.ts".into() + specifier: "./foo.ts".into(), + specifier_col: 29, + specifier_line: 2, } ] ); diff --git a/cli/build.rs b/cli/build.rs index b0088a9d83ad6c..45221281ff37bc 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -13,14 +13,13 @@ use std::env; use std::path::Path; use std::path::PathBuf; +// TODO(bartlomieju): this module contains a lot of duplicated +// logic with `runtime/build.rs`, factor out to `deno_core`. fn create_snapshot( mut js_runtime: JsRuntime, snapshot_path: &Path, files: Vec, ) { - deno_web::init(&mut js_runtime); - deno_fetch::init(&mut js_runtime); - deno_crypto::init(&mut js_runtime); // TODO(nayeemrmn): https://github.com/rust-lang/cargo/issues/3946 to get the // workspace root. let display_root = Path::new(env!("CARGO_MANIFEST_DIR")).parent().unwrap(); @@ -43,14 +42,6 @@ fn create_snapshot( println!("Snapshot written to: {} ", snapshot_path.display()); } -fn create_runtime_snapshot(snapshot_path: &Path, files: Vec) { - let js_runtime = JsRuntime::new(RuntimeOptions { - will_snapshot: true, - ..Default::default() - }); - create_snapshot(js_runtime, snapshot_path, files); -} - #[derive(Debug, Deserialize)] struct LoadArgs { /// The fully qualified specifier that should be loaded. @@ -236,8 +227,8 @@ fn git_commit_hash() -> String { } fn main() { - // Don't build V8 if "cargo doc" is being run. This is to support docs.rs. - if env::var_os("RUSTDOCFLAGS").is_some() { + // Skip building from docs.rs. + if env::var_os("DOCS_RS").is_some() { return; } @@ -265,12 +256,8 @@ fn main() { let o = PathBuf::from(env::var_os("OUT_DIR").unwrap()); // Main snapshot - let runtime_snapshot_path = o.join("CLI_SNAPSHOT.bin"); let compiler_snapshot_path = o.join("COMPILER_SNAPSHOT.bin"); - let js_files = get_js_files("rt"); - create_runtime_snapshot(&runtime_snapshot_path, js_files); - let js_files = get_js_files("tsc"); create_compiler_snapshot(&compiler_snapshot_path, js_files, &c); diff --git a/cli/disk_cache.rs b/cli/disk_cache.rs index 96a4ff41aad2c0..81b86c0ae7c8c6 100644 --- a/cli/disk_cache.rs +++ b/cli/disk_cache.rs @@ -46,7 +46,7 @@ impl DiskCache { }) } - pub fn get_cache_filename(&self, url: &Url) -> PathBuf { + fn get_cache_filename(&self, url: &Url) -> Option { let mut out = PathBuf::new(); let scheme = url.scheme(); @@ -105,31 +105,25 @@ impl DiskCache { out = out.join(remaining_components); } - scheme => { - unimplemented!( - "Don't know how to create cache name for scheme: {}\n Url: {}", - scheme, - url - ); - } + _ => return None, }; - out + Some(out) } pub fn get_cache_filename_with_extension( &self, url: &Url, extension: &str, - ) -> PathBuf { - let base = self.get_cache_filename(url); + ) -> Option { + let base = self.get_cache_filename(url)?; match base.extension() { - None => base.with_extension(extension), + None => Some(base.with_extension(extension)), Some(ext) => { let original_extension = OsStr::to_str(ext).unwrap(); let final_extension = format!("{}.{}", original_extension, extension); - base.with_extension(final_extension) + Some(base.with_extension(final_extension)) } } } @@ -145,7 +139,7 @@ impl DiskCache { Some(ref parent) => self.ensure_dir_exists(parent), None => Ok(()), }?; - fs_util::write_file(&path, data, crate::http_cache::CACHE_PERM) + fs_util::atomic_write_file(&path, data, crate::http_cache::CACHE_PERM) .map_err(|e| with_io_context(&e, format!("{:#?}", &path))) } } @@ -234,7 +228,7 @@ mod tests { for test_case in &test_cases { let cache_filename = cache.get_cache_filename(&Url::parse(test_case.0).unwrap()); - assert_eq!(cache_filename, PathBuf::from(test_case.1)); + assert_eq!(cache_filename, Some(PathBuf::from(test_case.1))); } } @@ -280,7 +274,7 @@ mod tests { &Url::parse(test_case.0).unwrap(), test_case.1 ), - PathBuf::from(test_case.2) + Some(PathBuf::from(test_case.2)) ) } } diff --git a/cli/dts/README.md b/cli/dts/README.md index 006282a90ff3f7..9d07188f7d480e 100644 --- a/cli/dts/README.md +++ b/cli/dts/README.md @@ -4,7 +4,7 @@ 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 typescript repo in a seperate directory. +1. Checkout typescript repo in a separate directory. 2. Copy typescript.js into Deno repo. 3. Copy d.ts files into dts directory. diff --git a/cli/dts/lib.deno.ns.d.ts b/cli/dts/lib.deno.ns.d.ts index e42fb855d42c89..12d804f9220461 100644 --- a/cli/dts/lib.deno.ns.d.ts +++ b/cli/dts/lib.deno.ns.d.ts @@ -1079,7 +1079,7 @@ declare namespace Deno { export function makeTempDir(options?: MakeTempOptions): Promise; /** Synchronously creates a new temporary file in the default directory for - * temporary files (see also `Deno.dir("temp")`), unless `dir` is specified. + * temporary files, unless `dir` is specified. * Other optional options include prefixing and suffixing the directory name * with `prefix` and `suffix` respectively. * @@ -1098,7 +1098,7 @@ declare namespace Deno { export function makeTempFileSync(options?: MakeTempOptions): string; /** Creates a new temporary file in the default directory for temporary - * files (see also `Deno.dir("temp")`), unless `dir` is specified. Other + * files, unless `dir` is specified. Other * optional options include prefixing and suffixing the directory name with * `prefix` and `suffix` respectively. * diff --git a/cli/dts/lib.deno.shared_globals.d.ts b/cli/dts/lib.deno.shared_globals.d.ts index 6eb9019ad89689..433e90113aee2f 100644 --- a/cli/dts/lib.deno.shared_globals.d.ts +++ b/cli/dts/lib.deno.shared_globals.d.ts @@ -643,12 +643,6 @@ interface PostMessageOptions { transfer?: any[]; } -interface ProgressEventInit extends EventInit { - lengthComputable?: boolean; - loaded?: number; - total?: number; -} - interface AbstractWorkerEventMap { "error": ErrorEvent; } @@ -840,17 +834,6 @@ declare class PerformanceMeasure extends PerformanceEntry { readonly entryType: "measure"; } -/** Events measuring progress of an underlying process, like an HTTP request - * (for an XMLHttpRequest, or the loading of the underlying resource of an - * ,