mirror of
https://github.com/denoland/deno.git
synced 2024-12-02 17:01:14 -05:00
Merge branch 'main' into support_create_connection
This commit is contained in:
commit
e8ee448e23
64 changed files with 1032 additions and 482 deletions
2
.github/workflows/ci.generate.ts
vendored
2
.github/workflows/ci.generate.ts
vendored
|
@ -5,7 +5,7 @@ import { stringify } from "jsr:@std/yaml@^0.221/stringify";
|
|||
// Bump this number when you want to purge the cache.
|
||||
// Note: the tools/release/01_bump_crate_versions.ts script will update this version
|
||||
// automatically via regex, so ensure that this line maintains this format.
|
||||
const cacheVersion = 17;
|
||||
const cacheVersion = 18;
|
||||
|
||||
const ubuntuX86Runner = "ubuntu-22.04";
|
||||
const ubuntuX86XlRunner = "ubuntu-22.04-xl";
|
||||
|
|
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
|
@ -361,8 +361,8 @@ jobs:
|
|||
path: |-
|
||||
~/.cargo/registry/index
|
||||
~/.cargo/registry/cache
|
||||
key: '17-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}'
|
||||
restore-keys: '17-cargo-home-${{ matrix.os }}-${{ matrix.arch }}'
|
||||
key: '18-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}'
|
||||
restore-keys: '18-cargo-home-${{ matrix.os }}-${{ matrix.arch }}'
|
||||
if: '!(matrix.skip)'
|
||||
- name: Restore cache build output (PR)
|
||||
uses: actions/cache/restore@v4
|
||||
|
@ -375,7 +375,7 @@ jobs:
|
|||
!./target/*/*.zip
|
||||
!./target/*/*.tar.gz
|
||||
key: never_saved
|
||||
restore-keys: '17-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-'
|
||||
restore-keys: '18-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-'
|
||||
- name: Apply and update mtime cache
|
||||
if: '!(matrix.skip) && (!startsWith(github.ref, ''refs/tags/''))'
|
||||
uses: ./.github/mtime_cache
|
||||
|
@ -685,7 +685,7 @@ jobs:
|
|||
!./target/*/*.zip
|
||||
!./target/*/*.sha256sum
|
||||
!./target/*/*.tar.gz
|
||||
key: '17-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-${{ github.sha }}'
|
||||
key: '18-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-${{ github.sha }}'
|
||||
publish-canary:
|
||||
name: publish canary
|
||||
runs-on: ubuntu-22.04
|
||||
|
|
444
Cargo.lock
generated
444
Cargo.lock
generated
|
@ -128,19 +128,6 @@ version = "0.2.18"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
|
||||
|
||||
[[package]]
|
||||
name = "ammonia"
|
||||
version = "3.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170"
|
||||
dependencies = [
|
||||
"html5ever",
|
||||
"maplit",
|
||||
"once_cell",
|
||||
"tendril",
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "android_system_properties"
|
||||
version = "0.1.5"
|
||||
|
@ -651,12 +638,13 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "cc"
|
||||
version = "1.1.10"
|
||||
version = "1.0.106"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292"
|
||||
checksum = "066fce287b1d4eafef758e89e09d724a24808a9196fe9756b8ca90e86d0719a2"
|
||||
dependencies = [
|
||||
"jobserver",
|
||||
"libc",
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -860,9 +848,9 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
|||
|
||||
[[package]]
|
||||
name = "comrak"
|
||||
version = "0.26.0"
|
||||
version = "0.28.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "395ab67843c57df5a4ee29d610740828dbc928cc64ecf0f2a1d5cd0e98e107a9"
|
||||
checksum = "c93ab3577cca16b4a1d80a88c2e0cd8b6e969e51696f0bbb0d1dcb0157109832"
|
||||
dependencies = [
|
||||
"caseless",
|
||||
"derive_builder",
|
||||
|
@ -1166,7 +1154,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno"
|
||||
version = "2.0.0-rc.10"
|
||||
version = "2.0.0"
|
||||
dependencies = [
|
||||
"anstream",
|
||||
"async-trait",
|
||||
|
@ -1242,7 +1230,7 @@ dependencies = [
|
|||
"p256",
|
||||
"pathdiff",
|
||||
"percent-encoding",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"pretty_assertions",
|
||||
"pretty_yaml",
|
||||
"quick-junit",
|
||||
|
@ -1295,9 +1283,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_ast"
|
||||
version = "0.42.1"
|
||||
version = "0.42.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "89ea2fd038c9c7e3e87e624fd708303cd33f39c33707f6c48fa9a65d65fefc47"
|
||||
checksum = "b2b9d03b1bbeeecdac54367f075d572131736d06c5be3bc49037855bc5ab1bbb"
|
||||
dependencies = [
|
||||
"base64 0.21.7",
|
||||
"deno_media_type",
|
||||
|
@ -1339,7 +1327,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_bench_util"
|
||||
version = "0.164.0"
|
||||
version = "0.165.0"
|
||||
dependencies = [
|
||||
"bencher",
|
||||
"deno_core",
|
||||
|
@ -1348,7 +1336,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_broadcast_channel"
|
||||
version = "0.164.0"
|
||||
version = "0.165.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"deno_core",
|
||||
|
@ -1358,7 +1346,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_cache"
|
||||
version = "0.102.0"
|
||||
version = "0.103.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"deno_core",
|
||||
|
@ -1390,7 +1378,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_canvas"
|
||||
version = "0.39.0"
|
||||
version = "0.40.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"deno_webgpu",
|
||||
|
@ -1415,7 +1403,7 @@ dependencies = [
|
|||
"jsonc-parser",
|
||||
"log",
|
||||
"percent-encoding",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
|
@ -1424,7 +1412,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_console"
|
||||
version = "0.170.0"
|
||||
version = "0.171.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
]
|
||||
|
@ -1469,7 +1457,7 @@ checksum = "a13951ea98c0a4c372f162d669193b4c9d991512de9f2381dd161027f34b26b1"
|
|||
|
||||
[[package]]
|
||||
name = "deno_cron"
|
||||
version = "0.50.0"
|
||||
version = "0.51.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -1481,7 +1469,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_crypto"
|
||||
version = "0.184.0"
|
||||
version = "0.185.0"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"aes-gcm",
|
||||
|
@ -1516,11 +1504,10 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_doc"
|
||||
version = "0.150.1"
|
||||
version = "0.153.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0841188bc852535b76e53be6c3d13c61cfc6751a731969b8959fe31fa696c73f"
|
||||
checksum = "6925db7ad16bee4bdcb7e654d2475e2fbd5e1d7dd4c6ee5f030ee858b4a2a8ee"
|
||||
dependencies = [
|
||||
"ammonia",
|
||||
"anyhow",
|
||||
"cfg-if",
|
||||
"comrak",
|
||||
|
@ -1536,13 +1523,23 @@ dependencies = [
|
|||
"regex",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"syntect",
|
||||
"termcolor",
|
||||
"tree-sitter-bash",
|
||||
"tree-sitter-css",
|
||||
"tree-sitter-highlight",
|
||||
"tree-sitter-html",
|
||||
"tree-sitter-javascript",
|
||||
"tree-sitter-json",
|
||||
"tree-sitter-md",
|
||||
"tree-sitter-regex",
|
||||
"tree-sitter-rust",
|
||||
"tree-sitter-typescript",
|
||||
"tree-sitter-xml",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "deno_fetch"
|
||||
version = "0.194.0"
|
||||
version = "0.195.0"
|
||||
dependencies = [
|
||||
"base64 0.21.7",
|
||||
"bytes",
|
||||
|
@ -1574,7 +1571,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_ffi"
|
||||
version = "0.157.0"
|
||||
version = "0.158.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"deno_permissions",
|
||||
|
@ -1591,7 +1588,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_fs"
|
||||
version = "0.80.0"
|
||||
version = "0.81.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"base32",
|
||||
|
@ -1612,9 +1609,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_graph"
|
||||
version = "0.83.1"
|
||||
version = "0.83.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c62ce152f24a4c0580e7a91431f75de48281157cf645459de8e9d7268dd95b2"
|
||||
checksum = "77163c46755676d8f793fc19e365537ba660a8db173cd1e02d21eb010c0b3cef"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -1641,7 +1638,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_http"
|
||||
version = "0.168.0"
|
||||
version = "0.169.0"
|
||||
dependencies = [
|
||||
"async-compression",
|
||||
"async-trait",
|
||||
|
@ -1666,7 +1663,7 @@ dependencies = [
|
|||
"mime",
|
||||
"once_cell",
|
||||
"percent-encoding",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"pin-project",
|
||||
"rand",
|
||||
"ring",
|
||||
|
@ -1680,7 +1677,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_io"
|
||||
version = "0.80.0"
|
||||
version = "0.81.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"deno_core",
|
||||
|
@ -1701,7 +1698,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_kv"
|
||||
version = "0.78.0"
|
||||
version = "0.79.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -1741,7 +1738,7 @@ dependencies = [
|
|||
"if_chain",
|
||||
"log",
|
||||
"once_cell",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"regex",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
@ -1772,7 +1769,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_napi"
|
||||
version = "0.101.0"
|
||||
version = "0.102.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"deno_permissions",
|
||||
|
@ -1794,7 +1791,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_net"
|
||||
version = "0.162.0"
|
||||
version = "0.163.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"deno_permissions",
|
||||
|
@ -1810,7 +1807,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_node"
|
||||
version = "0.107.0"
|
||||
version = "0.108.0"
|
||||
dependencies = [
|
||||
"aead-gcm-stream",
|
||||
"aes",
|
||||
|
@ -1948,9 +1945,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_path_util"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4889646c1ce8437a6fde3acb057fd7e2d039e62c61f5063fc125ed1ede114dc6"
|
||||
checksum = "ff25f6e08e7a0214bbacdd6f7195c7f1ebcd850c87a624e4ff06326b68b42d99"
|
||||
dependencies = [
|
||||
"percent-encoding",
|
||||
"thiserror",
|
||||
|
@ -1959,7 +1956,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_permissions"
|
||||
version = "0.30.0"
|
||||
version = "0.31.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"deno_path_util",
|
||||
|
@ -1976,7 +1973,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_resolver"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base32",
|
||||
|
@ -1992,7 +1989,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_runtime"
|
||||
version = "0.179.0"
|
||||
version = "0.180.0"
|
||||
dependencies = [
|
||||
"deno_ast",
|
||||
"deno_broadcast_channel",
|
||||
|
@ -2107,7 +2104,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_tls"
|
||||
version = "0.157.0"
|
||||
version = "0.158.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"deno_native_certs",
|
||||
|
@ -2155,7 +2152,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_url"
|
||||
version = "0.170.0"
|
||||
version = "0.171.0"
|
||||
dependencies = [
|
||||
"deno_bench_util",
|
||||
"deno_console",
|
||||
|
@ -2166,7 +2163,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_web"
|
||||
version = "0.201.0"
|
||||
version = "0.202.0"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"base64-simd 0.8.0",
|
||||
|
@ -2187,7 +2184,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_webgpu"
|
||||
version = "0.137.0"
|
||||
version = "0.138.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"raw-window-handle",
|
||||
|
@ -2199,7 +2196,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_webidl"
|
||||
version = "0.170.0"
|
||||
version = "0.171.0"
|
||||
dependencies = [
|
||||
"deno_bench_util",
|
||||
"deno_core",
|
||||
|
@ -2207,7 +2204,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_websocket"
|
||||
version = "0.175.0"
|
||||
version = "0.176.0"
|
||||
dependencies = [
|
||||
"bytes",
|
||||
"deno_core",
|
||||
|
@ -2228,7 +2225,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "deno_webstorage"
|
||||
version = "0.165.0"
|
||||
version = "0.166.0"
|
||||
dependencies = [
|
||||
"deno_core",
|
||||
"deno_web",
|
||||
|
@ -3180,16 +3177,6 @@ version = "2.0.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
|
||||
|
||||
[[package]]
|
||||
name = "futf"
|
||||
version = "0.1.5"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "df420e2e84819663797d1ec6544b13c5be84629e7bb00dc960d6917db2987843"
|
||||
dependencies = [
|
||||
"mac",
|
||||
"new_debug_unreachable",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "futures"
|
||||
version = "0.3.30"
|
||||
|
@ -3488,9 +3475,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "handlebars"
|
||||
version = "5.1.2"
|
||||
version = "6.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b"
|
||||
checksum = "ce25b617d1375ef96eeb920ae717e3da34a02fc979fe632c75128350f9e1f74a"
|
||||
dependencies = [
|
||||
"heck 0.5.0",
|
||||
"log",
|
||||
|
@ -3606,7 +3593,7 @@ dependencies = [
|
|||
"hashbrown",
|
||||
"new_debug_unreachable",
|
||||
"once_cell",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"rustc-hash 1.1.0",
|
||||
"triomphe",
|
||||
]
|
||||
|
@ -3620,20 +3607,6 @@ dependencies = [
|
|||
"utf8-width",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "html5ever"
|
||||
version = "0.26.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
|
||||
dependencies = [
|
||||
"log",
|
||||
"mac",
|
||||
"markup5ever",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 1.0.109",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "http"
|
||||
version = "0.2.12"
|
||||
|
@ -4212,9 +4185,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "libsqlite3-sys"
|
||||
version = "0.30.1"
|
||||
version = "0.30.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "2e99fb7a497b1e3339bc746195567ed8d3e24945ecd636e3619d20b9de9e9149"
|
||||
checksum = "6b694a822684ddb75df4d657029161431bcb4a85c1856952f845b76912bc6fec"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"pkg-config",
|
||||
|
@ -4246,9 +4219,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "libz-sys"
|
||||
version = "1.1.16"
|
||||
version = "1.1.20"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5e143b5e666b2695d28f6bca6497720813f699c9602dd7f5cac91008b8ada7f9"
|
||||
checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"cmake",
|
||||
|
@ -4316,12 +4289,6 @@ dependencies = [
|
|||
"serde_repr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mac"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
|
||||
|
||||
[[package]]
|
||||
name = "malloc_buf"
|
||||
version = "0.0.6"
|
||||
|
@ -4344,26 +4311,6 @@ dependencies = [
|
|||
"tiny_pretty",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "maplit"
|
||||
version = "1.0.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
|
||||
|
||||
[[package]]
|
||||
name = "markup5ever"
|
||||
version = "0.11.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
|
||||
dependencies = [
|
||||
"log",
|
||||
"phf 0.10.1",
|
||||
"phf_codegen",
|
||||
"string_cache",
|
||||
"string_cache_codegen",
|
||||
"tendril",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "markup_fmt"
|
||||
version = "0.13.1"
|
||||
|
@ -4541,7 +4488,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "napi_sym"
|
||||
version = "0.100.0"
|
||||
version = "0.101.0"
|
||||
dependencies = [
|
||||
"quote",
|
||||
"serde",
|
||||
|
@ -4610,7 +4557,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "node_resolver"
|
||||
version = "0.9.0"
|
||||
version = "0.10.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async-trait",
|
||||
|
@ -4786,28 +4733,6 @@ version = "1.19.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
||||
|
||||
[[package]]
|
||||
name = "onig"
|
||||
version = "6.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f"
|
||||
dependencies = [
|
||||
"bitflags 1.3.2",
|
||||
"libc",
|
||||
"once_cell",
|
||||
"onig_sys",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "onig_sys"
|
||||
version = "69.8.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "opaque-debug"
|
||||
version = "0.3.1"
|
||||
|
@ -5059,15 +4984,6 @@ dependencies = [
|
|||
"indexmap",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf"
|
||||
version = "0.10.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
|
||||
dependencies = [
|
||||
"phf_shared 0.10.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf"
|
||||
version = "0.11.2"
|
||||
|
@ -5075,27 +4991,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
|
||||
dependencies = [
|
||||
"phf_macros",
|
||||
"phf_shared 0.11.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf_codegen"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
|
||||
dependencies = [
|
||||
"phf_generator 0.10.0",
|
||||
"phf_shared 0.10.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf_generator"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
|
||||
dependencies = [
|
||||
"phf_shared 0.10.0",
|
||||
"rand",
|
||||
"phf_shared",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -5104,7 +5000,7 @@ version = "0.11.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
|
||||
dependencies = [
|
||||
"phf_shared 0.11.2",
|
||||
"phf_shared",
|
||||
"rand",
|
||||
]
|
||||
|
||||
|
@ -5114,22 +5010,13 @@ version = "0.11.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b"
|
||||
dependencies = [
|
||||
"phf_generator 0.11.2",
|
||||
"phf_shared 0.11.2",
|
||||
"phf_generator",
|
||||
"phf_shared",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn 2.0.72",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf_shared"
|
||||
version = "0.10.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
|
||||
dependencies = [
|
||||
"siphasher",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "phf_shared"
|
||||
version = "0.11.2"
|
||||
|
@ -5252,12 +5139,6 @@ version = "0.2.17"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
||||
|
||||
[[package]]
|
||||
name = "precomputed-hash"
|
||||
version = "0.1.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
|
||||
|
||||
[[package]]
|
||||
name = "pretty_assertions"
|
||||
version = "1.4.0"
|
||||
|
@ -5891,9 +5772,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "rusqlite"
|
||||
version = "0.32.1"
|
||||
version = "0.32.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7753b721174eb8ff87a9a0e799e2d7bc3749323e773db92e0984debb00019d6e"
|
||||
checksum = "1cdbe9230a57259b37f7257d0aff38b8c9dbda3513edba2105e59b130189d82f"
|
||||
dependencies = [
|
||||
"bitflags 2.6.0",
|
||||
"fallible-iterator",
|
||||
|
@ -6588,32 +6469,6 @@ version = "1.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
||||
|
||||
[[package]]
|
||||
name = "string_cache"
|
||||
version = "0.8.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
|
||||
dependencies = [
|
||||
"new_debug_unreachable",
|
||||
"once_cell",
|
||||
"parking_lot",
|
||||
"phf_shared 0.10.0",
|
||||
"precomputed-hash",
|
||||
"serde",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "string_cache_codegen"
|
||||
version = "0.5.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
|
||||
dependencies = [
|
||||
"phf_generator 0.10.0",
|
||||
"phf_shared 0.10.0",
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "string_enum"
|
||||
version = "0.4.4"
|
||||
|
@ -6800,7 +6655,7 @@ dependencies = [
|
|||
"bitflags 2.6.0",
|
||||
"is-macro",
|
||||
"num-bigint",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"scoped-tls",
|
||||
"serde",
|
||||
"string_enum",
|
||||
|
@ -6864,7 +6719,7 @@ dependencies = [
|
|||
"new_debug_unreachable",
|
||||
"num-bigint",
|
||||
"num-traits",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"serde",
|
||||
"smallvec",
|
||||
"smartstring",
|
||||
|
@ -6886,7 +6741,7 @@ dependencies = [
|
|||
"bitflags 2.6.0",
|
||||
"indexmap",
|
||||
"once_cell",
|
||||
"phf 0.11.2",
|
||||
"phf",
|
||||
"rustc-hash 1.1.0",
|
||||
"serde",
|
||||
"smallvec",
|
||||
|
@ -7166,26 +7021,6 @@ dependencies = [
|
|||
"syn 2.0.72",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "syntect"
|
||||
version = "5.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1"
|
||||
dependencies = [
|
||||
"bincode",
|
||||
"bitflags 1.3.2",
|
||||
"flate2",
|
||||
"fnv",
|
||||
"once_cell",
|
||||
"onig",
|
||||
"regex-syntax",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"walkdir",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tap"
|
||||
version = "1.0.1"
|
||||
|
@ -7215,17 +7050,6 @@ dependencies = [
|
|||
"windows-sys 0.52.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tendril"
|
||||
version = "0.4.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d24a120c5fc464a3458240ee02c299ebcb9d67b5249c8848b09d639dca8d7bb0"
|
||||
dependencies = [
|
||||
"futf",
|
||||
"mac",
|
||||
"utf-8",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "termcolor"
|
||||
version = "1.4.1"
|
||||
|
@ -7628,6 +7452,128 @@ dependencies = [
|
|||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter"
|
||||
version = "0.22.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"regex",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-bash"
|
||||
version = "0.21.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b5244703ad2e08a616d859a0557d7aa290adcd5e0990188a692e628ffe9dce40"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-css"
|
||||
version = "0.21.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5e08e324b1cf60fd3291774b49724c66de2ce8fcf4d358d0b4b82e37b41b1c9b"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-highlight"
|
||||
version = "0.22.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "eaca0fe34fa96eec6aaa8e63308dbe1bafe65a6317487c287f93938959b21907"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
"regex",
|
||||
"thiserror",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-html"
|
||||
version = "0.20.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8766b5ad3721517f8259e6394aefda9c686aebf7a8c74ab8624f2c3b46902fd5"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-javascript"
|
||||
version = "0.21.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8710a71bc6779e33811a8067bdda3ed08bed1733296ff915e44faf60f8c533d7"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-json"
|
||||
version = "0.21.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5b737dcb73c35d74b7d64a5f3dde158113c86a012bf3cee2bfdf2150d23b05db"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-md"
|
||||
version = "0.2.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d9c3cfd068f2527250bbd8ff407431164e12b17863e7eafb76e311dd3f96965a"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-regex"
|
||||
version = "0.21.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5ff1286fe9651b2797484839ffa37aa76c8618d4ccb6836d7e31765dfd60c0d5"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-rust"
|
||||
version = "0.21.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "277690f420bf90741dea984f3da038ace46c4fe6047cba57a66822226cde1c93"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-typescript"
|
||||
version = "0.21.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ecb35d98a688378e56c18c9c159824fd16f730ccbea19aacf4f206e5d5438ed9"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tree-sitter-xml"
|
||||
version = "0.6.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "65c3a1b08e9842143f84fde1a18ac40ee77ca80a80b14077e4ca67a3b4808b8b"
|
||||
dependencies = [
|
||||
"cc",
|
||||
"tree-sitter",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "triomphe"
|
||||
version = "0.1.13"
|
||||
|
|
62
Cargo.toml
62
Cargo.toml
|
@ -45,19 +45,19 @@ license = "MIT"
|
|||
repository = "https://github.com/denoland/deno"
|
||||
|
||||
[workspace.dependencies]
|
||||
deno_ast = { version = "=0.42.1", features = ["transpiling"] }
|
||||
deno_ast = { version = "=0.42.2", features = ["transpiling"] }
|
||||
deno_core = { version = "0.311.0" }
|
||||
|
||||
deno_bench_util = { version = "0.164.0", path = "./bench_util" }
|
||||
deno_bench_util = { version = "0.165.0", path = "./bench_util" }
|
||||
deno_lockfile = "=0.23.1"
|
||||
deno_media_type = { version = "0.1.4", features = ["module_specifier"] }
|
||||
deno_npm = "=0.25.3"
|
||||
deno_path_util = "=0.2.0"
|
||||
deno_permissions = { version = "0.30.0", path = "./runtime/permissions" }
|
||||
deno_runtime = { version = "0.179.0", path = "./runtime" }
|
||||
deno_path_util = "=0.2.1"
|
||||
deno_permissions = { version = "0.31.0", path = "./runtime/permissions" }
|
||||
deno_runtime = { version = "0.180.0", path = "./runtime" }
|
||||
deno_semver = "=0.5.14"
|
||||
deno_terminal = "0.2.0"
|
||||
napi_sym = { version = "0.100.0", path = "./cli/napi/sym" }
|
||||
napi_sym = { version = "0.101.0", path = "./cli/napi/sym" }
|
||||
test_util = { package = "test_server", path = "./tests/util/server" }
|
||||
|
||||
denokv_proto = "0.8.1"
|
||||
|
@ -66,32 +66,32 @@ denokv_remote = "0.8.1"
|
|||
denokv_sqlite = { default-features = false, version = "0.8.2" }
|
||||
|
||||
# exts
|
||||
deno_broadcast_channel = { version = "0.164.0", path = "./ext/broadcast_channel" }
|
||||
deno_cache = { version = "0.102.0", path = "./ext/cache" }
|
||||
deno_canvas = { version = "0.39.0", path = "./ext/canvas" }
|
||||
deno_console = { version = "0.170.0", path = "./ext/console" }
|
||||
deno_cron = { version = "0.50.0", path = "./ext/cron" }
|
||||
deno_crypto = { version = "0.184.0", path = "./ext/crypto" }
|
||||
deno_fetch = { version = "0.194.0", path = "./ext/fetch" }
|
||||
deno_ffi = { version = "0.157.0", path = "./ext/ffi" }
|
||||
deno_fs = { version = "0.80.0", path = "./ext/fs" }
|
||||
deno_http = { version = "0.168.0", path = "./ext/http" }
|
||||
deno_io = { version = "0.80.0", path = "./ext/io" }
|
||||
deno_kv = { version = "0.78.0", path = "./ext/kv" }
|
||||
deno_napi = { version = "0.101.0", path = "./ext/napi" }
|
||||
deno_net = { version = "0.162.0", path = "./ext/net" }
|
||||
deno_node = { version = "0.107.0", path = "./ext/node" }
|
||||
deno_tls = { version = "0.157.0", path = "./ext/tls" }
|
||||
deno_url = { version = "0.170.0", path = "./ext/url" }
|
||||
deno_web = { version = "0.201.0", path = "./ext/web" }
|
||||
deno_webgpu = { version = "0.137.0", path = "./ext/webgpu" }
|
||||
deno_webidl = { version = "0.170.0", path = "./ext/webidl" }
|
||||
deno_websocket = { version = "0.175.0", path = "./ext/websocket" }
|
||||
deno_webstorage = { version = "0.165.0", path = "./ext/webstorage" }
|
||||
deno_broadcast_channel = { version = "0.165.0", path = "./ext/broadcast_channel" }
|
||||
deno_cache = { version = "0.103.0", path = "./ext/cache" }
|
||||
deno_canvas = { version = "0.40.0", path = "./ext/canvas" }
|
||||
deno_console = { version = "0.171.0", path = "./ext/console" }
|
||||
deno_cron = { version = "0.51.0", path = "./ext/cron" }
|
||||
deno_crypto = { version = "0.185.0", path = "./ext/crypto" }
|
||||
deno_fetch = { version = "0.195.0", path = "./ext/fetch" }
|
||||
deno_ffi = { version = "0.158.0", path = "./ext/ffi" }
|
||||
deno_fs = { version = "0.81.0", path = "./ext/fs" }
|
||||
deno_http = { version = "0.169.0", path = "./ext/http" }
|
||||
deno_io = { version = "0.81.0", path = "./ext/io" }
|
||||
deno_kv = { version = "0.79.0", path = "./ext/kv" }
|
||||
deno_napi = { version = "0.102.0", path = "./ext/napi" }
|
||||
deno_net = { version = "0.163.0", path = "./ext/net" }
|
||||
deno_node = { version = "0.108.0", path = "./ext/node" }
|
||||
deno_tls = { version = "0.158.0", path = "./ext/tls" }
|
||||
deno_url = { version = "0.171.0", path = "./ext/url" }
|
||||
deno_web = { version = "0.202.0", path = "./ext/web" }
|
||||
deno_webgpu = { version = "0.138.0", path = "./ext/webgpu" }
|
||||
deno_webidl = { version = "0.171.0", path = "./ext/webidl" }
|
||||
deno_websocket = { version = "0.176.0", path = "./ext/websocket" }
|
||||
deno_webstorage = { version = "0.166.0", path = "./ext/webstorage" }
|
||||
|
||||
# resolvers
|
||||
deno_resolver = { version = "0.2.0", path = "./resolvers/deno" }
|
||||
node_resolver = { version = "0.9.0", path = "./resolvers/node" }
|
||||
deno_resolver = { version = "0.3.0", path = "./resolvers/deno" }
|
||||
node_resolver = { version = "0.10.0", path = "./resolvers/node" }
|
||||
|
||||
aes = "=0.8.3"
|
||||
anyhow = "1.0.57"
|
||||
|
@ -139,7 +139,7 @@ ipnet = "2.3"
|
|||
jsonc-parser = { version = "=0.23.0", features = ["serde"] }
|
||||
lazy-regex = "3"
|
||||
libc = "0.2.126"
|
||||
libz-sys = { version = "1.1", default-features = false }
|
||||
libz-sys = { version = "1.1.20", default-features = false }
|
||||
log = "0.4.20"
|
||||
lsp-types = "=0.97.0" # used by tower-lsp and "proposed" feature is unstable in patch releases
|
||||
memmem = "0.1.1"
|
||||
|
|
343
Releases.md
343
Releases.md
|
@ -6,6 +6,349 @@ https://github.com/denoland/deno/releases
|
|||
We also have one-line install commands at:
|
||||
https://github.com/denoland/deno_install
|
||||
|
||||
### 2.0.0 / 2024.10.09
|
||||
|
||||
Read announcement blog post at: https://deno.com/blog/v2
|
||||
|
||||
- BREAKING: `DENO_FUTURE=1` by default, or welcome to Deno 2.0 (#25213)
|
||||
- BREAKING: disallow `new Deno.FsFile()` (#25478)
|
||||
- BREAKING: drop support for Deno.run.{clearEnv,gid,uid} (#25371)
|
||||
- BREAKING: improve types for `Deno.serve` (#25369)
|
||||
- BREAKING: improved error code accuracy (#25383)
|
||||
- BREAKING: make supported compilerOptions an allow list (#25432)
|
||||
- BREAKING: move `width` and `height` options to `UnsafeWindowSurface`
|
||||
constructor (#24200)
|
||||
- BREAKING: remove --allow-hrtime (#25367)
|
||||
- BREAKING: remove "emit" and "map" from deno info output (#25468)
|
||||
- BREAKING: remove `--allow-none` flag (#25337)
|
||||
- BREAKING: remove `--jobs` flag (#25336)
|
||||
- BREAKING: remove `--trace-ops` (#25344)
|
||||
- BREAKING: remove `--ts` flag (#25338)
|
||||
- BREAKING: remove `--unstable` flag (#25522)
|
||||
- BREAKING: remove `deno bundle` (#25339)
|
||||
- BREAKING: remove `deno vendor` (#25343)
|
||||
- BREAKING: remove `Deno.[Tls]Listener.prototype.rid` (#25556)
|
||||
- BREAKING: remove `Deno.{Conn,TlsConn,TcpConn,UnixConn}.prototype.rid` (#25446)
|
||||
- BREAKING: remove `Deno.{Reader,Writer}[Sync]` and `Deno.Closer` (#25524)
|
||||
- BREAKING: remove `Deno.Buffer` (#25441)
|
||||
- BREAKING: remove `Deno.close()` (#25347)
|
||||
- BREAKING: remove `Deno.ConnectTlsOptions.{certChain,certFile,privateKey}` and
|
||||
`Deno.ListenTlsOptions.certChain,certFile,keyFile}` (#25525)
|
||||
- BREAKING: remove `Deno.copy()` (#25345)
|
||||
- BREAKING: remove `Deno.customInspect` (#25348)
|
||||
- BREAKING: remove `Deno.fdatasync[Sync]()` (#25520)
|
||||
- BREAKING: remove `Deno.File` (#25447)
|
||||
- BREAKING: remove `Deno.flock[Sync]()` (#25350)
|
||||
- BREAKING: remove `Deno.FsFile.prototype.rid` (#25499)
|
||||
- BREAKING: remove `Deno.fstat[Sync]()` (#25351)
|
||||
- BREAKING: remove `Deno.FsWatcher.prototype.rid` (#25444)
|
||||
- BREAKING: remove `Deno.fsync[Sync]()` (#25448)
|
||||
- BREAKING: remove `Deno.ftruncate[Sync]()` (#25412)
|
||||
- BREAKING: remove `Deno.funlock[Sync]()` (#25442)
|
||||
- BREAKING: remove `Deno.futime[Sync]()` (#25252)
|
||||
- BREAKING: remove `Deno.iter[Sync]()` (#25346)
|
||||
- BREAKING: remove `Deno.read[Sync]()` (#25409)
|
||||
- BREAKING: remove `Deno.readAll[Sync]()` (#25386)
|
||||
- BREAKING: remove `Deno.seek[Sync]()` (#25449)
|
||||
- BREAKING: remove `Deno.Seeker[Sync]` (#25551)
|
||||
- BREAKING: remove `Deno.shutdown()` (#25253)
|
||||
- BREAKING: remove `Deno.write[Sync]()` (#25408)
|
||||
- BREAKING: remove `Deno.writeAll[Sync]()` (#25407)
|
||||
- BREAKING: remove deprecated `UnsafeFnPointer` constructor type with untyped
|
||||
`Deno.PointerObject` parameter (#25577)
|
||||
- BREAKING: remove deprecated files config (#25535)
|
||||
- BREAKING: Remove obsoleted Temporal APIs part 2 (#25505)
|
||||
- BREAKING: remove remaining web types for compatibility (#25334)
|
||||
- BREAKING: remove support for remote import maps in deno.json (#25836)
|
||||
- BREAKING: rename "deps" remote cache folder to "remote" (#25969)
|
||||
- BREAKING: soft-remove `Deno.isatty()` (#25410)
|
||||
- BREAKING: soft-remove `Deno.run()` (#25403)
|
||||
- BREAKING: soft-remove `Deno.serveHttp()` (#25451)
|
||||
- BREAKING: undeprecate `Deno.FsWatcher.prototype.return()` (#25623)
|
||||
- feat: add `--allow-import` flag (#25469)
|
||||
- feat: Add a hint on error about 'Relative import path ... not prefixed with
|
||||
...' (#25430)
|
||||
- feat: Add better error messages for unstable APIs (#25519)
|
||||
- feat: Add suggestion for packages using Node-API addons (#25975)
|
||||
- feat: Allow importing .cjs files (#25426)
|
||||
- feat: default to TS for file extension and support ext flag in more scenarios
|
||||
(#25472)
|
||||
- feat: deprecate import assertions (#25281)
|
||||
- feat: Don't warn about --allow-script when using esbuild (#25894)
|
||||
- feat: hide several --unstable-* flags (#25378)
|
||||
- feat: improve lockfile v4 to store normalized version constraints and be more
|
||||
terse (#25247)
|
||||
- feat: improve warnings for deprecations and lifecycle script for npm packages
|
||||
(#25694)
|
||||
- feat: include version number in all --json based outputs (#25335)
|
||||
- feat: lockfile v4 by default (#25165)
|
||||
- feat: make 'globalThis.location' a configurable property (#25812)
|
||||
- feat: print `Listening on` messages on stderr instead of stdout (#25491)
|
||||
- feat: remove `--lock-write` flag (#25214)
|
||||
- feat: require jsr prefix for `deno install` and `deno add` (#25698)
|
||||
- feat: require(esm) (#25501)
|
||||
- feat: Show hints when using `window` global (#25805)
|
||||
- feat: stabilize `Deno.createHttpClient()` (#25569)
|
||||
- feat: suggest `deno install --entrypoint` instead of `deno cache` (#25228)
|
||||
- feat: support DENO_LOG env var instead of RUST_LOG (#25356)
|
||||
- feat: TypeScript 5.6 and `npm:@types/node@22` (#25614)
|
||||
- feat: Update no-window lint rule (#25486)
|
||||
- feat: update warning message for --allow-run with no list (#25693)
|
||||
- feat: warn when using `--allow-run` with no allow list (#25215)
|
||||
- feat(add): Add npm packages to package.json if present (#25477)
|
||||
- feat(add): strip package subpath when adding a package (#25419)
|
||||
- feat(add/install): Flag to add dev dependency to package.json (#25495)
|
||||
- feat(byonm): support `deno run npm:<package>` when package is not in
|
||||
package.json (#25981)
|
||||
- feat(check): turn on noImplicitOverride (#25695)
|
||||
- feat(check): turn on useUnknownInCatchVariables (#25465)
|
||||
- feat(cli): evaluate code snippets in JSDoc and markdown (#25220)
|
||||
- feat(cli): give access to `process` global everywhere (#25291)
|
||||
- feat(cli): use NotCapable error for permission errors (#25431)
|
||||
- feat(config): Node modules option for 2.0 (#25299)
|
||||
- feat(ext/crypto): import and export p521 keys (#25789)
|
||||
- feat(ext/crypto): X448 support (#26043)
|
||||
- feat(ext/kv): configurable limit params (#25174)
|
||||
- feat(ext/node): add abort helpers, process & streams fix (#25262)
|
||||
- feat(ext/node): add rootCertificates to node:tls (#25707)
|
||||
- feat(ext/node): buffer.transcode() (#25972)
|
||||
- feat(ext/node): export 'promises' symbol from 'node:timers' (#25589)
|
||||
- feat(ext/node): export missing constants from 'zlib' module (#25584)
|
||||
- feat(ext/node): export missing symbols from domain, puncode, repl, tls
|
||||
(#25585)
|
||||
- feat(ext/node): export more symbols from streams and timers/promises (#25582)
|
||||
- feat(ext/node): expose ES modules for _ modules (#25588)
|
||||
- feat(flags): allow double commas to escape values in path based flags (#25453)
|
||||
- feat(flags): support user provided args in repl subcommand (#25605)
|
||||
- feat(fmt): better error on malfored HTML files (#25853)
|
||||
- feat(fmt): stabilize CSS, HTML and YAML formatters (#25753)
|
||||
- feat(fmt): support vto and njk extensions (#25831)
|
||||
- feat(fmt): upgrade markup_fmt (#25768)
|
||||
- feat(install): deno install with entrypoint (#25411)
|
||||
- feat(install): warn repeatedly about not-run lifecycle scripts on explicit
|
||||
installs (#25878)
|
||||
- feat(lint): add `no-process-global` lint rule (#25709)
|
||||
- feat(lsp): add a message when someone runs 'deno lsp' manually (#26051)
|
||||
- feat(lsp): auto-import types with 'import type' (#25662)
|
||||
- feat(lsp): html/css/yaml file formatting (#25353)
|
||||
- feat(lsp): quick fix for @deno-types="npm:@types/*" (#25954)
|
||||
- feat(lsp): turn on useUnknownInCatchVariables (#25474)
|
||||
- feat(lsp): unstable setting as list (#25552)
|
||||
- feat(permissions): `Deno.mainModule` doesn't require permissions (#25667)
|
||||
- feat(permissions): allow importing from cdn.jsdelivr.net by default (#26013)
|
||||
- feat(serve): Support second parameter in deno serve (#25606)
|
||||
- feat(tools/doc): display subitems in symbol overviews where applicable
|
||||
(#25885)
|
||||
- feat(uninstall): alias to 'deno remove' if -g flag missing (#25461)
|
||||
- feat(upgrade): better error message on failure (#25503)
|
||||
- feat(upgrade): print info links for Deno 2 RC releases (#25225)
|
||||
- feat(upgrade): support LTS release channel (#25123)
|
||||
- fix: add link to env var docs (#25557)
|
||||
- fix: add suggestion how to fix importing CJS module (#21764)
|
||||
- fix: add test ensuring als works across dynamic import (#25593)
|
||||
- fix: better error for Deno.UnsafeWindowSurface, correct HttpClient name,
|
||||
cleanup unused code (#25833)
|
||||
- fix: cjs resolution cases (#25739)
|
||||
- fix: consistent with deno_config and treat `"experimentalDecorators"` as
|
||||
deprecated (#25735)
|
||||
- fix: delete old Deno 1.x headers file when loading cache (#25283)
|
||||
- fix: do not panic running invalid file specifier (#25530)
|
||||
- fix: don't include extensionless files in file collection for lint & fmt by
|
||||
default (#25721)
|
||||
- fix: don't prompt when using `Deno.permissions.request` with `--no-prompt`
|
||||
(#25811)
|
||||
- fix: eagerly error for specifier with empty version constraint (#25944)
|
||||
- fix: enable `Win32_Security` feature in `windows-sys` (#26007)
|
||||
- fix: error on unsupported compiler options (#25714)
|
||||
- fix: error out if a valid flag is passed before a subcommand (#25830)
|
||||
- fix: fix jupyter display function type (#25326)
|
||||
- fix: Float16Array type (#25506)
|
||||
- fix: handle showing warnings while the progress bar is shown (#25187)
|
||||
- fix: Hide 'deno cache' from help output (#25960)
|
||||
- fix: invalid ipv6 hostname on `deno serve` (#25482)
|
||||
- fix: linux canonicalization checks (#24641)
|
||||
- fix: lock down allow-run permissions more (#25370)
|
||||
- fix: make some warnings more standard (#25324)
|
||||
- fix: no cmd prefix in help output go links (#25459)
|
||||
- fix: only enable byonm if workspace root has pkg json (#25379)
|
||||
- fix: panic when require(esm) (#25769)
|
||||
- fix: precompile preserve SVG camelCase attributes (#25945)
|
||||
- fix: reland async context (#25140)
|
||||
- fix: remove --allow-run warning when using deno without args or subcommand
|
||||
(#25684)
|
||||
- fix: remove entrypoint hack for Deno 2.0 (#25332)
|
||||
- fix: remove recently added deno.json node_modules aliasing (#25542)
|
||||
- fix: remove the typo in the help message (#25962)
|
||||
- fix: removed unstable-htttp from deno help (#25216)
|
||||
- fix: replace `npm install` hint with `deno install` hint (#25244)
|
||||
- fix: trim space around DENO_AUTH_TOKENS (#25147)
|
||||
- fix: update deno_doc (#25290)
|
||||
- fix: Update deno_npm to fix `deno install` with crossws (#25837)
|
||||
- fix: update hint for `deno add <package>` (#25455)
|
||||
- fix: update malva in deno to support astro css comments (#25553)
|
||||
- fix: update nodeModulesDir config JSON schema (#25653)
|
||||
- fix: update patchver to 0.2 (#25952)
|
||||
- fix: update sui to 0.4 (#25942)
|
||||
- fix: upgrade deno_ast 0.42 (#25313)
|
||||
- fix: upgrade deno_core to 0.307.0 (#25287)
|
||||
- fix(add/install): default to "latest" tag for npm packages in
|
||||
`deno add npm:pkg` (#25858)
|
||||
- fix(bench): Fix table column alignments and NO_COLOR=1 (#25190)
|
||||
- fix(BREAKING): make dns record types have consistent naming (#25357)
|
||||
- fix(byonm): resolve npm deps of jsr deps (#25399)
|
||||
- fix(check): ignore noImplicitOverrides in remote modules (#25854)
|
||||
- fix(check): move is cjs check from resolving to loading (#25597)
|
||||
- fix(check): properly surface dependency errors in types file of js file
|
||||
(#25860)
|
||||
- fix(cli): `deno task` exit with status 0 (#25637)
|
||||
- fix(cli): Default to auto with --node-modules-dir flag (#25772)
|
||||
- fix(cli): handle edge cases around `export`s in doc tests and default export
|
||||
(#25720)
|
||||
- fix(cli): Map error kind to `PermissionDenied` when symlinking fails due to
|
||||
permissions (#25398)
|
||||
- fix(cli): Only set allow net flag for deno serve if not already allowed all
|
||||
(#25743)
|
||||
- fix(cli): Warn on not-run lifecycle scripts with global cache (#25786)
|
||||
- fix(cli/tools): correct `deno init --serve` template behavior (#25318)
|
||||
- fix(compile): support 'deno compile' in RC and LTS releases (#25875)
|
||||
- fix(config): validate export names (#25436)
|
||||
- fix(coverage): ignore urls from doc testing (#25736)
|
||||
- fix(doc): surface graph errors as warnings (#25888)
|
||||
- fix(dts): stabilize `fetch` declaration for use with `Deno.HttpClient`
|
||||
(#25683)
|
||||
- fix(ext/console): more precision in console.time (#25723)
|
||||
- fix(ext/console): prevent duplicate error printing when the cause is assigned
|
||||
(#25327)
|
||||
- fix(ext/crypto): ensure EC public keys are exported uncompressed (#25766)
|
||||
- fix(ext/crypto): fix identity test for x25519 derive bits (#26011)
|
||||
- fix(ext/crypto): reject empty usages in SubtleCrypto#importKey (#25759)
|
||||
- fix(ext/crypto): support md4 digest algorithm (#25656)
|
||||
- fix(ext/crypto): throw DataError for invalid EC key import (#25181)
|
||||
- fix(ext/fetch): fix lowercase http_proxy classified as https (#25686)
|
||||
- fix(ext/fetch): percent decode userinfo when parsing proxies (#25229)
|
||||
- fix(ext/http): do not set localhost to hostname unnecessarily (#24777)
|
||||
- fix(ext/http): gracefully handle Response.error responses (#25712)
|
||||
- fix(ext/node): add `FileHandle#writeFile` (#25555)
|
||||
- fix(ext/node): add `vm.constants` (#25630)
|
||||
- fix(ext/node): Add missing `node:path` exports (#25567)
|
||||
- fix(ext/node): Add missing node:fs and node:constants exports (#25568)
|
||||
- fix(ext/node): add stubs for `node:trace_events` (#25628)
|
||||
- fix(ext/node): attach console stream properties (#25617)
|
||||
- fix(ext/node): avoid showing `UNKNOWN` error from TCP handle (#25550)
|
||||
- fix(ext/node): close upgraded socket when the underlying http connection is
|
||||
closed (#25387)
|
||||
- fix(ext/node): delay accept() call 2 ticks in net.Server#listen (#25481)
|
||||
- fix(ext/node): don't throw error for unsupported signal binding on windows
|
||||
(#25699)
|
||||
- fix(ext/node): emit `online` event after worker thread is initialized (#25243)
|
||||
- fix(ext/node): export `process.allowedNodeEnvironmentFlags` (#25629)
|
||||
- fix(ext/node): export JWK public key (#25239)
|
||||
- fix(ext/node): export request and response clases from `http2` module (#25592)
|
||||
- fix(ext/node): fix `Cipheriv#update(string, undefined)` (#25571)
|
||||
- fix(ext/node): fix Decipheriv when autoPadding disabled (#25598)
|
||||
- fix(ext/node): fix process.stdin.pause() (#25864)
|
||||
- fix(ext/node): Fix vm sandbox object panic (#24985)
|
||||
- fix(ext/node): http2session ready state (#25143)
|
||||
- fix(ext/node): Implement detached option in `child_process` (#25218)
|
||||
- fix(ext/node): import EC JWK keys (#25266)
|
||||
- fix(ext/node): import JWK octet key pairs (#25180)
|
||||
- fix(ext/node): import RSA JWK keys (#25267)
|
||||
- fix(ext/node): register `node:wasi` built-in (#25134)
|
||||
- fix(ext/node): remove unimplemented promiseHook stubs (#25979)
|
||||
- fix(ext/node): report freemem() on Linux in bytes (#25511)
|
||||
- fix(ext/node): Rewrite `node:v8` serialize/deserialize (#25439)
|
||||
- fix(ext/node): session close during stream setup (#25170)
|
||||
- fix(ext/node): Stream should be instance of EventEmitter (#25527)
|
||||
- fix(ext/node): stub `inspector/promises` (#25635)
|
||||
- fix(ext/node): stub `process.cpuUsage()` (#25462)
|
||||
- fix(ext/node): stub cpu_info() for OpenBSD (#25807)
|
||||
- fix(ext/node): support x509 certificates in `createPublicKey` (#25731)
|
||||
- fix(ext/node): throw when loading `cpu-features` module (#25257)
|
||||
- fix(ext/node): update aead-gcm-stream to 0.3 (#25261)
|
||||
- fix(ext/node): use primordials in `ext/node/polyfills/console.ts` (#25572)
|
||||
- fix(ext/node): use primordials in ext/node/polyfills/wasi.ts (#25608)
|
||||
- fix(ext/node): validate input lengths in `Cipheriv` and `Decipheriv` (#25570)
|
||||
- fix(ext/web): don't ignore capture in EventTarget.removeEventListener (#25788)
|
||||
- fix(ext/webgpu): allow to build on unsupported platforms (#25202)
|
||||
- fix(ext/webgpu): sync category comment (#25580)
|
||||
- fix(ext/webstorage): make `getOwnPropertyDescriptor` with symbol return
|
||||
`undefined` (#13348)
|
||||
- fix(flags): --allow-all should conflict with lower permissions (#25909)
|
||||
- fix(flags): don't treat empty run command as task subcommand (#25708)
|
||||
- fix(flags): move some content from docs.deno.com into help output (#25951)
|
||||
- fix(flags): properly error out for urls (#25770)
|
||||
- fix(flags): require global flag for permission flags in install subcommand
|
||||
(#25391)
|
||||
- fix(fmt): --check was broken for CSS, YAML and HTML (#25848)
|
||||
- fix(fmt): fix incorrect quotes in components (#25249)
|
||||
- fix(fmt): fix tabs in YAML (#25536)
|
||||
- fix(fmt/markdown): fix regression with multi-line footnotes and inline math
|
||||
(#25222)
|
||||
- fix(info): error instead of panic for npm specifiers when using byonm (#25947)
|
||||
- fix(info): move "version" field to top of json output (#25890)
|
||||
- fix(inspector): Fix panic when re-entering runtime ops (#25537)
|
||||
- fix(install): compare versions directly to decide whether to create a child
|
||||
node_modules dir for a workspace member (#26001)
|
||||
- fix(install): Make sure target node_modules exists when symlinking (#25494)
|
||||
- fix(install): recommend using `deno install -g` when using a single http url
|
||||
(#25388)
|
||||
- fix(install): store tags associated with package in node_modules dir (#26000)
|
||||
- fix(install): surface package.json dependency errors (#26023)
|
||||
- fix(install): Use relative symlinks in deno install (#25164)
|
||||
- fix(installl): make bin entries executable even if not put in
|
||||
`node_modules/.bin` (#25873)
|
||||
- fix(jupyter): allow unstable flags (#25483)
|
||||
- fix(lint): correctly handle old jsx in linter (#25902)
|
||||
- fix(lint): support linting jsr pkg without version field (#25230)
|
||||
- fix(lockfile): use loose deserialization for version constraints (#25660)
|
||||
- fix(lsp): encode url parts before parsing as uri (#25509)
|
||||
- fix(lsp): exclude missing import quick fixes with bad resolutions (#26025)
|
||||
- fix(lsp): panic on url_to_uri() (#25238)
|
||||
- fix(lsp): properly resolve jsxImportSource for caching (#25688)
|
||||
- fix(lsp): update diagnostics on npm install (#25352)
|
||||
- fix(napi): Don't run microtasks in napi_resolve_deferred (#25246)
|
||||
- fix(napi): Fix worker threads importing already-loaded NAPI addon (#25245)
|
||||
- fix(no-slow-types): better `override` handling (#25989)
|
||||
- fix(node): Don't error out if we fail to statically analyze CJS re-export
|
||||
(#25748)
|
||||
- fix(node): fix worker_threads issues blocking Angular support (#26024)
|
||||
- fix(node): implement libuv APIs needed to support `npm:sqlite3` (#25893)
|
||||
- fix(node): Include "node" condition during CJS re-export analysis (#25785)
|
||||
- fix(node): Pass NPM_PROCESS_STATE to subprocesses via temp file instead of env
|
||||
var (#25896)
|
||||
- fix(node/byonm): do not accidentally resolve bare node built-ins (#25543)
|
||||
- fix(node/cluster): improve stubs to make log4js work (#25146)
|
||||
- fix(npm): better error handling for remote npm deps (#25670)
|
||||
- fix(npm): root package has peer dependency on itself (#26022)
|
||||
- fix(permissions): disallow any `LD_` or `DYLD_` prefixed env var without full
|
||||
--allow-run permissions (#25271)
|
||||
- fix(permissions): disallow launching subprocess with LD_PRELOAD env var
|
||||
without full run permissions (#25221)
|
||||
- fix(publish): ensure provenance is spec compliant (#25200)
|
||||
- fix(regression): do not expose resolved path in Deno.Command permission denied
|
||||
error (#25434)
|
||||
- fix(runtime): don't error `child.output()` on consumed stream (#25657)
|
||||
- fix(runtime): use more null proto objects again (#25040)
|
||||
- fix(runtime/web_worker): populate `SnapshotOptions` for `WebWorker` when
|
||||
instantiated without snapshot (#25280)
|
||||
- fix(task): correct name for scoped npm package binaries (#25390)
|
||||
- fix(task): support tasks with colons in name in `deno run` (#25233)
|
||||
- fix(task): use current executable for deno even when not named deno (#26019)
|
||||
- fix(types): simplify mtls related types (#25658)
|
||||
- fix(upgrade): more informative information on invalid version (#25319)
|
||||
- fix(windows): Deno.Command - align binary resolution with linux and mac
|
||||
(#25429)
|
||||
- fix(workspace): handle when config has members when specified via --config
|
||||
(#25988)
|
||||
- perf: fast path for cached dyn imports (#25636)
|
||||
- perf: Use -O3 for sui in release builds (#26010)
|
||||
- perf(cache): single cache file for remote modules (#24983)
|
||||
- perf(cache): single cache file for typescript emit (#24994)
|
||||
- perf(ext/fetch): improve decompression throughput by upgrading `tower_http`
|
||||
(#25806)
|
||||
- perf(ext/node): reduce some allocations in require (#25197)
|
||||
- perf(ext/web): optimize performance.measure() (#25774)
|
||||
|
||||
### 1.46.3 / 2024.09.04
|
||||
|
||||
- feat(upgrade): print info links for Deno 2 RC releases (#25225)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_bench_util"
|
||||
version = "0.164.0"
|
||||
version = "0.165.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno"
|
||||
version = "2.0.0-rc.10"
|
||||
version = "2.0.0"
|
||||
authors.workspace = true
|
||||
default-run = "deno"
|
||||
edition.workspace = true
|
||||
|
@ -67,8 +67,8 @@ deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "proposa
|
|||
deno_cache_dir = { workspace = true }
|
||||
deno_config = { version = "=0.37.1", features = ["workspace", "sync"] }
|
||||
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
|
||||
deno_doc = { version = "0.150.1", features = ["html", "syntect"] }
|
||||
deno_graph = { version = "=0.83.1" }
|
||||
deno_doc = { version = "0.153.0", features = ["html"] }
|
||||
deno_graph = { version = "=0.83.3" }
|
||||
deno_lint = { version = "=0.67.0", features = ["docs"] }
|
||||
deno_lockfile.workspace = true
|
||||
deno_npm.workspace = true
|
||||
|
|
|
@ -44,6 +44,7 @@ use std::cmp::Ordering;
|
|||
use std::collections::HashMap;
|
||||
use std::collections::HashSet;
|
||||
use std::path::Path;
|
||||
use text_lines::LineAndColumnIndex;
|
||||
use tower_lsp::lsp_types as lsp;
|
||||
use tower_lsp::lsp_types::Position;
|
||||
use tower_lsp::lsp_types::Range;
|
||||
|
@ -1187,6 +1188,34 @@ impl CodeActionCollection {
|
|||
range: &lsp::Range,
|
||||
language_server: &language_server::Inner,
|
||||
) {
|
||||
fn import_start_from_specifier(
|
||||
document: &Document,
|
||||
import: &deno_graph::Import,
|
||||
) -> Option<LineAndColumnIndex> {
|
||||
// find the top level statement that contains the specifier
|
||||
let parsed_source = document.maybe_parsed_source()?.as_ref().ok()?;
|
||||
let text_info = parsed_source.text_info_lazy();
|
||||
let specifier_range = SourceRange::new(
|
||||
text_info.loc_to_source_pos(LineAndColumnIndex {
|
||||
line_index: import.specifier_range.start.line,
|
||||
column_index: import.specifier_range.start.character,
|
||||
}),
|
||||
text_info.loc_to_source_pos(LineAndColumnIndex {
|
||||
line_index: import.specifier_range.end.line,
|
||||
column_index: import.specifier_range.end.character,
|
||||
}),
|
||||
);
|
||||
|
||||
match parsed_source.program_ref() {
|
||||
deno_ast::swc::ast::Program::Module(module) => module
|
||||
.body
|
||||
.iter()
|
||||
.find(|i| i.range().contains(&specifier_range))
|
||||
.map(|i| text_info.line_and_column_index(i.range().start)),
|
||||
deno_ast::swc::ast::Program::Script(_) => None,
|
||||
}
|
||||
}
|
||||
|
||||
async fn deno_types_for_npm_action(
|
||||
document: &Document,
|
||||
range: &lsp::Range,
|
||||
|
@ -1207,14 +1236,15 @@ impl CodeActionCollection {
|
|||
range.end.line as usize,
|
||||
range.end.character as usize,
|
||||
);
|
||||
let import_range = dependency.imports.iter().find_map(|i| {
|
||||
let import_start = dependency.imports.iter().find_map(|i| {
|
||||
if json!(i.kind) != json!("es") && json!(i.kind) != json!("tsType") {
|
||||
return None;
|
||||
}
|
||||
if !i.specifier_range.includes(&position) {
|
||||
return None;
|
||||
}
|
||||
i.full_range.as_ref()
|
||||
|
||||
import_start_from_specifier(document, i)
|
||||
})?;
|
||||
let referrer = document.specifier();
|
||||
let file_referrer = document.file_referrer();
|
||||
|
@ -1301,8 +1331,8 @@ impl CodeActionCollection {
|
|||
.specifier_to_uri(referrer, file_referrer)
|
||||
.ok()?;
|
||||
let position = lsp::Position {
|
||||
line: import_range.start.line as u32,
|
||||
character: import_range.start.character as u32,
|
||||
line: import_start.line_index as u32,
|
||||
character: import_start.column_index as u32,
|
||||
};
|
||||
let new_text = format!(
|
||||
"{}// @deno-types=\"{}\"\n",
|
||||
|
|
|
@ -200,15 +200,11 @@ pub async fn get_import_completions(
|
|||
{
|
||||
// completions for import map specifiers
|
||||
Some(lsp::CompletionResponse::List(completion_list))
|
||||
} else if text.starts_with("./")
|
||||
|| text.starts_with("../")
|
||||
|| text.starts_with('/')
|
||||
} else if let Some(completion_list) =
|
||||
get_local_completions(specifier, &text, &range, resolver)
|
||||
{
|
||||
// completions for local relative modules
|
||||
Some(lsp::CompletionResponse::List(CompletionList {
|
||||
is_incomplete: false,
|
||||
items: get_local_completions(specifier, &text, &range, resolver)?,
|
||||
}))
|
||||
Some(lsp::CompletionResponse::List(completion_list))
|
||||
} else if !text.is_empty() {
|
||||
// completion of modules from a module registry or cache
|
||||
check_auto_config_registry(
|
||||
|
@ -363,15 +359,15 @@ fn get_local_completions(
|
|||
text: &str,
|
||||
range: &lsp::Range,
|
||||
resolver: &LspResolver,
|
||||
) -> Option<Vec<lsp::CompletionItem>> {
|
||||
) -> Option<CompletionList> {
|
||||
if base.scheme() != "file" {
|
||||
return None;
|
||||
}
|
||||
let parent = base.join(text).ok()?.join(".").ok()?;
|
||||
let parent = &text[..text.char_indices().rfind(|(_, c)| *c == '/')?.0 + 1];
|
||||
let resolved_parent = resolver
|
||||
.as_graph_resolver(Some(base))
|
||||
.resolve(
|
||||
parent.as_str(),
|
||||
parent,
|
||||
&Range {
|
||||
specifier: base.clone(),
|
||||
start: deno_graph::Position::zeroed(),
|
||||
|
@ -381,62 +377,62 @@ fn get_local_completions(
|
|||
)
|
||||
.ok()?;
|
||||
let resolved_parent_path = url_to_file_path(&resolved_parent).ok()?;
|
||||
let raw_parent =
|
||||
&text[..text.char_indices().rfind(|(_, c)| *c == '/')?.0 + 1];
|
||||
if resolved_parent_path.is_dir() {
|
||||
let cwd = std::env::current_dir().ok()?;
|
||||
let items = std::fs::read_dir(resolved_parent_path).ok()?;
|
||||
Some(
|
||||
items
|
||||
.filter_map(|de| {
|
||||
let de = de.ok()?;
|
||||
let label = de.path().file_name()?.to_string_lossy().to_string();
|
||||
let entry_specifier = resolve_path(de.path().to_str()?, &cwd).ok()?;
|
||||
if entry_specifier == *base {
|
||||
return None;
|
||||
}
|
||||
let full_text = format!("{raw_parent}{label}");
|
||||
let text_edit = Some(lsp::CompletionTextEdit::Edit(lsp::TextEdit {
|
||||
range: *range,
|
||||
new_text: full_text.clone(),
|
||||
}));
|
||||
let filter_text = Some(full_text);
|
||||
match de.file_type() {
|
||||
Ok(file_type) if file_type.is_dir() => Some(lsp::CompletionItem {
|
||||
label,
|
||||
kind: Some(lsp::CompletionItemKind::FOLDER),
|
||||
detail: Some("(local)".to_string()),
|
||||
filter_text,
|
||||
sort_text: Some("1".to_string()),
|
||||
text_edit,
|
||||
commit_characters: Some(
|
||||
IMPORT_COMMIT_CHARS.iter().map(|&c| c.into()).collect(),
|
||||
),
|
||||
..Default::default()
|
||||
}),
|
||||
Ok(file_type) if file_type.is_file() => {
|
||||
if is_importable_ext(&de.path()) {
|
||||
Some(lsp::CompletionItem {
|
||||
label,
|
||||
kind: Some(lsp::CompletionItemKind::FILE),
|
||||
detail: Some("(local)".to_string()),
|
||||
filter_text,
|
||||
sort_text: Some("1".to_string()),
|
||||
text_edit,
|
||||
commit_characters: Some(
|
||||
IMPORT_COMMIT_CHARS.iter().map(|&c| c.into()).collect(),
|
||||
),
|
||||
..Default::default()
|
||||
})
|
||||
} else {
|
||||
None
|
||||
}
|
||||
let entries = std::fs::read_dir(resolved_parent_path).ok()?;
|
||||
let items = entries
|
||||
.filter_map(|de| {
|
||||
let de = de.ok()?;
|
||||
let label = de.path().file_name()?.to_string_lossy().to_string();
|
||||
let entry_specifier = resolve_path(de.path().to_str()?, &cwd).ok()?;
|
||||
if entry_specifier == *base {
|
||||
return None;
|
||||
}
|
||||
let full_text = format!("{parent}{label}");
|
||||
let text_edit = Some(lsp::CompletionTextEdit::Edit(lsp::TextEdit {
|
||||
range: *range,
|
||||
new_text: full_text.clone(),
|
||||
}));
|
||||
let filter_text = Some(full_text);
|
||||
match de.file_type() {
|
||||
Ok(file_type) if file_type.is_dir() => Some(lsp::CompletionItem {
|
||||
label,
|
||||
kind: Some(lsp::CompletionItemKind::FOLDER),
|
||||
detail: Some("(local)".to_string()),
|
||||
filter_text,
|
||||
sort_text: Some("1".to_string()),
|
||||
text_edit,
|
||||
commit_characters: Some(
|
||||
IMPORT_COMMIT_CHARS.iter().map(|&c| c.into()).collect(),
|
||||
),
|
||||
..Default::default()
|
||||
}),
|
||||
Ok(file_type) if file_type.is_file() => {
|
||||
if is_importable_ext(&de.path()) {
|
||||
Some(lsp::CompletionItem {
|
||||
label,
|
||||
kind: Some(lsp::CompletionItemKind::FILE),
|
||||
detail: Some("(local)".to_string()),
|
||||
filter_text,
|
||||
sort_text: Some("1".to_string()),
|
||||
text_edit,
|
||||
commit_characters: Some(
|
||||
IMPORT_COMMIT_CHARS.iter().map(|&c| c.into()).collect(),
|
||||
),
|
||||
..Default::default()
|
||||
})
|
||||
} else {
|
||||
None
|
||||
}
|
||||
_ => None,
|
||||
}
|
||||
})
|
||||
.collect(),
|
||||
)
|
||||
_ => None,
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
Some(CompletionList {
|
||||
is_incomplete: false,
|
||||
items,
|
||||
})
|
||||
} else {
|
||||
None
|
||||
}
|
||||
|
@ -921,11 +917,11 @@ mod tests {
|
|||
},
|
||||
},
|
||||
&Default::default(),
|
||||
);
|
||||
assert!(actual.is_some());
|
||||
let actual = actual.unwrap();
|
||||
assert_eq!(actual.len(), 3);
|
||||
for item in actual {
|
||||
)
|
||||
.unwrap();
|
||||
assert!(!actual.is_incomplete);
|
||||
assert_eq!(actual.items.len(), 3);
|
||||
for item in actual.items {
|
||||
match item.text_edit {
|
||||
Some(lsp::CompletionTextEdit::Edit(text_edit)) => {
|
||||
assert!(["./b", "./f.mjs", "./g.json"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "napi_sym"
|
||||
version = "0.100.0"
|
||||
version = "0.101.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -195,7 +195,7 @@ pub async fn doc(
|
|||
kind_with_drilldown:
|
||||
deno_doc::html::DocNodeKindWithDrilldown::Other(node.kind()),
|
||||
inner: Rc::new(node),
|
||||
drilldown_parent_kind: None,
|
||||
drilldown_name: None,
|
||||
parent: None,
|
||||
})
|
||||
.collect::<Vec<_>>(),
|
||||
|
@ -262,7 +262,7 @@ pub async fn doc(
|
|||
}
|
||||
|
||||
struct DocResolver {
|
||||
deno_ns: std::collections::HashSet<Vec<String>>,
|
||||
deno_ns: std::collections::HashMap<Vec<String>, Option<Rc<ShortPath>>>,
|
||||
strip_trailing_html: bool,
|
||||
}
|
||||
|
||||
|
@ -286,7 +286,7 @@ impl deno_doc::html::HrefResolver for DocResolver {
|
|||
}
|
||||
|
||||
fn resolve_global_symbol(&self, symbol: &[String]) -> Option<String> {
|
||||
if self.deno_ns.contains(symbol) {
|
||||
if self.deno_ns.contains_key(symbol) {
|
||||
Some(format!(
|
||||
"https://deno.land/api@v{}?s={}",
|
||||
env!("CARGO_PKG_VERSION"),
|
||||
|
@ -455,7 +455,7 @@ impl deno_doc::html::HrefResolver for NodeDocResolver {
|
|||
fn generate_docs_directory(
|
||||
doc_nodes_by_url: IndexMap<ModuleSpecifier, Vec<doc::DocNode>>,
|
||||
html_options: &DocHtmlFlag,
|
||||
deno_ns: std::collections::HashSet<Vec<String>>,
|
||||
deno_ns: std::collections::HashMap<Vec<String>, Option<Rc<ShortPath>>>,
|
||||
rewrite_map: Option<IndexMap<ModuleSpecifier, String>>,
|
||||
) -> Result<(), AnyError> {
|
||||
let cwd = std::env::current_dir().context("Failed to get CWD")?;
|
||||
|
@ -513,7 +513,6 @@ fn generate_docs_directory(
|
|||
rewrite_map,
|
||||
href_resolver,
|
||||
usage_composer: None,
|
||||
composable_output: false,
|
||||
category_docs,
|
||||
disable_search: internal_env.is_some(),
|
||||
symbol_redirect_map,
|
||||
|
|
|
@ -357,56 +357,74 @@ pub struct JupyterReplSession {
|
|||
|
||||
impl JupyterReplSession {
|
||||
pub async fn start(&mut self) {
|
||||
let mut poll_worker = true;
|
||||
loop {
|
||||
let Some(msg) = self.rx.recv().await else {
|
||||
break;
|
||||
};
|
||||
let resp = match msg {
|
||||
JupyterReplRequest::LspCompletions {
|
||||
line_text,
|
||||
position,
|
||||
} => JupyterReplResponse::LspCompletions(
|
||||
self.lsp_completions(&line_text, position).await,
|
||||
),
|
||||
JupyterReplRequest::JsGetProperties { object_id } => {
|
||||
JupyterReplResponse::JsGetProperties(
|
||||
self.get_properties(object_id).await,
|
||||
)
|
||||
}
|
||||
JupyterReplRequest::JsEvaluate { expr } => {
|
||||
JupyterReplResponse::JsEvaluate(self.evaluate(expr).await)
|
||||
}
|
||||
JupyterReplRequest::JsGlobalLexicalScopeNames => {
|
||||
JupyterReplResponse::JsGlobalLexicalScopeNames(
|
||||
self.global_lexical_scope_names().await,
|
||||
)
|
||||
}
|
||||
JupyterReplRequest::JsEvaluateLineWithObjectWrapping { line } => {
|
||||
JupyterReplResponse::JsEvaluateLineWithObjectWrapping(
|
||||
self.evaluate_line_with_object_wrapping(&line).await,
|
||||
)
|
||||
}
|
||||
JupyterReplRequest::JsCallFunctionOnArgs {
|
||||
function_declaration,
|
||||
args,
|
||||
} => JupyterReplResponse::JsCallFunctionOnArgs(
|
||||
self
|
||||
.call_function_on_args(function_declaration, &args)
|
||||
.await,
|
||||
),
|
||||
JupyterReplRequest::JsCallFunctionOn { arg0, arg1 } => {
|
||||
JupyterReplResponse::JsCallFunctionOn(
|
||||
self.call_function_on(arg0, arg1).await,
|
||||
)
|
||||
}
|
||||
};
|
||||
tokio::select! {
|
||||
biased;
|
||||
|
||||
let Ok(()) = self.tx.send(resp) else {
|
||||
break;
|
||||
};
|
||||
maybe_message = self.rx.recv() => {
|
||||
let Some(msg) = maybe_message else {
|
||||
break;
|
||||
};
|
||||
if self.handle_message(msg).await.is_err() {
|
||||
break;
|
||||
}
|
||||
poll_worker = true;
|
||||
},
|
||||
_ = self.repl_session.run_event_loop(), if poll_worker => {
|
||||
poll_worker = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
async fn handle_message(
|
||||
&mut self,
|
||||
msg: JupyterReplRequest,
|
||||
) -> Result<(), AnyError> {
|
||||
let resp = match msg {
|
||||
JupyterReplRequest::LspCompletions {
|
||||
line_text,
|
||||
position,
|
||||
} => JupyterReplResponse::LspCompletions(
|
||||
self.lsp_completions(&line_text, position).await,
|
||||
),
|
||||
JupyterReplRequest::JsGetProperties { object_id } => {
|
||||
JupyterReplResponse::JsGetProperties(
|
||||
self.get_properties(object_id).await,
|
||||
)
|
||||
}
|
||||
JupyterReplRequest::JsEvaluate { expr } => {
|
||||
JupyterReplResponse::JsEvaluate(self.evaluate(expr).await)
|
||||
}
|
||||
JupyterReplRequest::JsGlobalLexicalScopeNames => {
|
||||
JupyterReplResponse::JsGlobalLexicalScopeNames(
|
||||
self.global_lexical_scope_names().await,
|
||||
)
|
||||
}
|
||||
JupyterReplRequest::JsEvaluateLineWithObjectWrapping { line } => {
|
||||
JupyterReplResponse::JsEvaluateLineWithObjectWrapping(
|
||||
self.evaluate_line_with_object_wrapping(&line).await,
|
||||
)
|
||||
}
|
||||
JupyterReplRequest::JsCallFunctionOnArgs {
|
||||
function_declaration,
|
||||
args,
|
||||
} => JupyterReplResponse::JsCallFunctionOnArgs(
|
||||
self
|
||||
.call_function_on_args(function_declaration, &args)
|
||||
.await,
|
||||
),
|
||||
JupyterReplRequest::JsCallFunctionOn { arg0, arg1 } => {
|
||||
JupyterReplResponse::JsCallFunctionOn(
|
||||
self.call_function_on(arg0, arg1).await,
|
||||
)
|
||||
}
|
||||
};
|
||||
|
||||
self.tx.send(resp).map_err(|e| e.into())
|
||||
}
|
||||
|
||||
pub async fn lsp_completions(
|
||||
&mut self,
|
||||
line_text: &str,
|
||||
|
|
|
@ -130,8 +130,10 @@ impl NpmConfig {
|
|||
fn add(&mut self, selected: SelectedPackage, dev: bool) {
|
||||
let (name, version) = package_json_dependency_entry(selected);
|
||||
if dev {
|
||||
self.dependencies.swap_remove(&name);
|
||||
self.dev_dependencies.insert(name, version);
|
||||
} else {
|
||||
self.dev_dependencies.swap_remove(&name);
|
||||
self.dependencies.insert(name, version);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_broadcast_channel"
|
||||
version = "0.164.0"
|
||||
version = "0.165.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
2
ext/cache/Cargo.toml
vendored
2
ext/cache/Cargo.toml
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_cache"
|
||||
version = "0.102.0"
|
||||
version = "0.103.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_canvas"
|
||||
version = "0.39.0"
|
||||
version = "0.40.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -1301,7 +1301,9 @@ function getKeys(value, showHidden) {
|
|||
ArrayPrototypePushApply(keys, ArrayPrototypeFilter(symbols, filter));
|
||||
}
|
||||
}
|
||||
keys = ArrayPrototypeFilter(keys, (key) => key !== "cause");
|
||||
if (ObjectPrototypeIsPrototypeOf(ErrorPrototype, value)) {
|
||||
keys = ArrayPrototypeFilter(keys, (key) => key !== "cause");
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_console"
|
||||
version = "0.170.0"
|
||||
version = "0.171.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_cron"
|
||||
version = "0.50.0"
|
||||
version = "0.51.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_crypto"
|
||||
version = "0.184.0"
|
||||
version = "0.185.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_fetch"
|
||||
version = "0.194.0"
|
||||
version = "0.195.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_ffi"
|
||||
version = "0.157.0"
|
||||
version = "0.158.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_fs"
|
||||
version = "0.80.0"
|
||||
version = "0.81.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_http"
|
||||
version = "0.168.0"
|
||||
version = "0.169.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_io"
|
||||
version = "0.80.0"
|
||||
version = "0.81.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_kv"
|
||||
version = "0.78.0"
|
||||
version = "0.79.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_napi"
|
||||
version = "0.101.0"
|
||||
version = "0.102.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_net"
|
||||
version = "0.162.0"
|
||||
version = "0.163.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_node"
|
||||
version = "0.107.0"
|
||||
version = "0.108.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -173,7 +173,7 @@ export function readSync(
|
|||
validateBuffer(buffer);
|
||||
|
||||
if (length == null) {
|
||||
length = 0;
|
||||
length = buffer.byteLength;
|
||||
}
|
||||
|
||||
if (typeof offsetOrOpt === "number") {
|
||||
|
|
|
@ -63,6 +63,10 @@ export function createWritableStdioStream(writer, name, warmup = false) {
|
|||
stream.destroySoon = stream.destroy;
|
||||
stream._isStdio = true;
|
||||
stream.once("close", () => writer?.close());
|
||||
|
||||
// We cannot call `writer?.isTerminal()` eagerly here
|
||||
let getIsTTY = () => writer?.isTerminal();
|
||||
|
||||
ObjectDefineProperties(stream, {
|
||||
columns: {
|
||||
__proto__: null,
|
||||
|
@ -81,7 +85,11 @@ export function createWritableStdioStream(writer, name, warmup = false) {
|
|||
__proto__: null,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
get: () => writer?.isTerminal(),
|
||||
// Allow users to overwrite it
|
||||
get: () => getIsTTY(),
|
||||
set: (value) => {
|
||||
getIsTTY = () => value;
|
||||
},
|
||||
},
|
||||
getWindowSize: {
|
||||
__proto__: null,
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_tls"
|
||||
version = "0.157.0"
|
||||
version = "0.158.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_url"
|
||||
version = "0.170.0"
|
||||
version = "0.171.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_web"
|
||||
version = "0.201.0"
|
||||
version = "0.202.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_webgpu"
|
||||
version = "0.137.0"
|
||||
version = "0.138.0"
|
||||
authors = ["the Deno authors"]
|
||||
edition.workspace = true
|
||||
license = "MIT"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_webidl"
|
||||
version = "0.170.0"
|
||||
version = "0.171.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_websocket"
|
||||
version = "0.175.0"
|
||||
version = "0.176.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_webstorage"
|
||||
version = "0.165.0"
|
||||
version = "0.166.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_resolver"
|
||||
version = "0.2.0"
|
||||
version = "0.3.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "node_resolver"
|
||||
version = "0.9.0"
|
||||
version = "0.10.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_runtime"
|
||||
version = "0.179.0"
|
||||
version = "0.180.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -269,7 +269,13 @@ function serializePermissions(permissions) {
|
|||
if (typeof permissions == "object" && permissions != null) {
|
||||
const serializedPermissions = { __proto__: null };
|
||||
for (
|
||||
const key of new SafeArrayIterator(["read", "write", "run", "ffi"])
|
||||
const key of new SafeArrayIterator([
|
||||
"read",
|
||||
"write",
|
||||
"run",
|
||||
"ffi",
|
||||
"import",
|
||||
])
|
||||
) {
|
||||
if (ArrayIsArray(permissions[key])) {
|
||||
serializedPermissions[key] = ArrayPrototypeMap(
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
[package]
|
||||
name = "deno_permissions"
|
||||
version = "0.30.0"
|
||||
version = "0.31.0"
|
||||
authors.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
|
|
|
@ -628,3 +628,37 @@ async fn jupyter_store_history_false() -> Result<()> {
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn jupyter_http_server() -> Result<()> {
|
||||
let (_ctx, client, _process) = setup().await;
|
||||
client
|
||||
.send(
|
||||
Shell,
|
||||
"execute_request",
|
||||
json!({
|
||||
"silent": false,
|
||||
"store_history": false,
|
||||
"code": r#"Deno.serve({ port: 10234 }, (req) => Response.json({ hello: "world" }))"#,
|
||||
}),
|
||||
)
|
||||
.await?;
|
||||
|
||||
let reply = client.recv(Shell).await?;
|
||||
assert_eq!(reply.header.msg_type, "execute_reply");
|
||||
assert_json_subset(
|
||||
reply.content,
|
||||
json!({
|
||||
"status": "ok",
|
||||
"execution_count": 0,
|
||||
}),
|
||||
);
|
||||
|
||||
for _ in 0..3 {
|
||||
let resp = reqwest::get("http://localhost:10234").await.unwrap();
|
||||
let text: serde_json::Value = resp.json().await.unwrap();
|
||||
assert_eq!(text, json!({ "hello": "world" }));
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -1342,6 +1342,7 @@ fn lsp_import_map_import_completions() {
|
|||
"/#/": "./src/",
|
||||
"fs": "https://example.com/fs/index.js",
|
||||
"std/": "https://example.com/std@0.123.0/",
|
||||
"lib/": "./lib/",
|
||||
},
|
||||
"scopes": {
|
||||
"file:///": {
|
||||
|
@ -1364,17 +1365,18 @@ fn lsp_import_map_import_completions() {
|
|||
"uri": uri,
|
||||
"languageId": "typescript",
|
||||
"version": 1,
|
||||
"text": "import * as a from \"/~/b.ts\";\nimport * as b from \"\""
|
||||
}
|
||||
"text": r#"
|
||||
import * as b from "";
|
||||
import * as b from "/~/";
|
||||
import * as b from "lib/";
|
||||
"#,
|
||||
},
|
||||
}));
|
||||
|
||||
let res = client.get_completion(
|
||||
&uri,
|
||||
(1, 20),
|
||||
json!({
|
||||
"triggerKind": 2,
|
||||
"triggerCharacter": "\""
|
||||
}),
|
||||
(1, 28),
|
||||
json!({ "triggerKind": 2, "triggerCharacter": "\"" }),
|
||||
);
|
||||
assert_eq!(
|
||||
json!(res),
|
||||
|
@ -1409,6 +1411,13 @@ fn lsp_import_map_import_completions() {
|
|||
"sortText": "std",
|
||||
"insertText": "std",
|
||||
"commitCharacters": ["\"", "'"],
|
||||
}, {
|
||||
"label": "lib",
|
||||
"kind": 19,
|
||||
"detail": "(import map)",
|
||||
"sortText": "lib",
|
||||
"insertText": "lib",
|
||||
"commitCharacters": ["\"", "'"],
|
||||
}, {
|
||||
"label": "fs",
|
||||
"kind": 17,
|
||||
|
@ -1435,32 +1444,10 @@ fn lsp_import_map_import_completions() {
|
|||
})
|
||||
);
|
||||
|
||||
client.write_notification(
|
||||
"textDocument/didChange",
|
||||
json!({
|
||||
"textDocument": {
|
||||
"uri": uri,
|
||||
"version": 2
|
||||
},
|
||||
"contentChanges": [
|
||||
{
|
||||
"range": {
|
||||
"start": { "line": 1, "character": 20 },
|
||||
"end": { "line": 1, "character": 20 }
|
||||
},
|
||||
"text": "/~/"
|
||||
}
|
||||
]
|
||||
}),
|
||||
);
|
||||
|
||||
let res = client.get_completion(
|
||||
uri,
|
||||
(1, 23),
|
||||
json!({
|
||||
"triggerKind": 2,
|
||||
"triggerCharacter": "/"
|
||||
}),
|
||||
&uri,
|
||||
(2, 31),
|
||||
json!({ "triggerKind": 2, "triggerCharacter": "/" }),
|
||||
);
|
||||
assert_eq!(
|
||||
json!(res),
|
||||
|
@ -1475,15 +1462,44 @@ fn lsp_import_map_import_completions() {
|
|||
"filterText": "/~/b.ts",
|
||||
"textEdit": {
|
||||
"range": {
|
||||
"start": { "line": 1, "character": 20 },
|
||||
"end": { "line": 1, "character": 23 }
|
||||
"start": { "line": 2, "character": 28 },
|
||||
"end": { "line": 2, "character": 31 },
|
||||
},
|
||||
"newText": "/~/b.ts"
|
||||
"newText": "/~/b.ts",
|
||||
},
|
||||
"commitCharacters": ["\"", "'"],
|
||||
}
|
||||
]
|
||||
})
|
||||
},
|
||||
],
|
||||
}),
|
||||
);
|
||||
|
||||
let res = client.get_completion(
|
||||
&uri,
|
||||
(3, 32),
|
||||
json!({ "triggerKind": 2, "triggerCharacter": "/" }),
|
||||
);
|
||||
assert_eq!(
|
||||
json!(res),
|
||||
json!({
|
||||
"isIncomplete": false,
|
||||
"items": [
|
||||
{
|
||||
"label": "b.ts",
|
||||
"kind": 17,
|
||||
"detail": "(local)",
|
||||
"sortText": "1",
|
||||
"filterText": "lib/b.ts",
|
||||
"textEdit": {
|
||||
"range": {
|
||||
"start": { "line": 3, "character": 28 },
|
||||
"end": { "line": 3, "character": 32 },
|
||||
},
|
||||
"newText": "lib/b.ts",
|
||||
},
|
||||
"commitCharacters": ["\"", "'"],
|
||||
},
|
||||
],
|
||||
}),
|
||||
);
|
||||
|
||||
client.shutdown();
|
||||
|
|
|
@ -1136,3 +1136,22 @@ fn eval_file_promise_error() {
|
|||
assert_contains!(out, "Uncaught undefined");
|
||||
assert!(err.is_empty());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn repl_json_imports() {
|
||||
let context = TestContextBuilder::default().use_temp_cwd().build();
|
||||
let temp_dir = context.temp_dir();
|
||||
temp_dir.write("./data.json", r#"{"hello": "world"}"#);
|
||||
context
|
||||
.new_command()
|
||||
.env("NO_COLOR", "1")
|
||||
.args_vec(["repl", "-A"])
|
||||
.with_pty(|mut console| {
|
||||
console.write_line_raw(
|
||||
"import data from './data.json' with { type: 'json' };",
|
||||
);
|
||||
console.expect("undefined");
|
||||
console.write_line_raw("data");
|
||||
console.expect(r#"{ hello: "world" }"#);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -5150,6 +5150,8 @@ fn emit_failed_readonly_file_system() {
|
|||
output.assert_matches_text("[WILDCARD]Error saving emit data ([WILDLINE]main.ts)[WILDCARD]Skipped emit cache save of [WILDLINE]other.ts[WILDCARD]hi[WILDCARD]");
|
||||
}
|
||||
|
||||
// todo(dsherret): waiting on fix in https://github.com/servo/rust-url/issues/505
|
||||
#[ignore]
|
||||
#[cfg(windows)]
|
||||
#[test]
|
||||
fn handle_invalid_path_error() {
|
||||
|
|
16
tests/specs/install/install_add_dep_existing/__test__.jsonc
Normal file
16
tests/specs/install/install_add_dep_existing/__test__.jsonc
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"tempDir": true,
|
||||
"steps": [
|
||||
{
|
||||
"args": "install npm:@denotest/esm-basic",
|
||||
"output": "install.out"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"eval",
|
||||
"console.log(Deno.readTextFileSync('package.json').trim())"
|
||||
],
|
||||
"output": "package.json.out"
|
||||
}
|
||||
]
|
||||
}
|
4
tests/specs/install/install_add_dep_existing/install.out
Normal file
4
tests/specs/install/install_add_dep_existing/install.out
Normal file
|
@ -0,0 +1,4 @@
|
|||
Add npm:@denotest/esm-basic@1.0.0
|
||||
Download http://localhost:4260/@denotest/esm-basic
|
||||
Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz
|
||||
Initialize @denotest/esm-basic@1.0.0
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"devDependencies": { "@denotest/esm-basic": "^1.0.0" }
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"@denotest/esm-basic": "^1.0.0"
|
||||
}
|
||||
}
|
16
tests/specs/install/install_add_dev_existing/__test__.jsonc
Normal file
16
tests/specs/install/install_add_dev_existing/__test__.jsonc
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"tempDir": true,
|
||||
"steps": [
|
||||
{
|
||||
"args": "install --dev npm:@denotest/esm-basic",
|
||||
"output": "install.out"
|
||||
},
|
||||
{
|
||||
"args": [
|
||||
"eval",
|
||||
"console.log(Deno.readTextFileSync('package.json').trim())"
|
||||
],
|
||||
"output": "package.json.out"
|
||||
}
|
||||
]
|
||||
}
|
4
tests/specs/install/install_add_dev_existing/install.out
Normal file
4
tests/specs/install/install_add_dev_existing/install.out
Normal file
|
@ -0,0 +1,4 @@
|
|||
Add npm:@denotest/esm-basic@1.0.0
|
||||
Download http://localhost:4260/@denotest/esm-basic
|
||||
Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz
|
||||
Initialize @denotest/esm-basic@1.0.0
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"dependencies": { "@denotest/esm-basic": "^1.0.0" }
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"devDependencies": {
|
||||
"@denotest/esm-basic": "^1.0.0"
|
||||
}
|
||||
}
|
13
tests/specs/permission/allow_import_worker/__test__.jsonc
Normal file
13
tests/specs/permission/allow_import_worker/__test__.jsonc
Normal file
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"tests": {
|
||||
"allowed": {
|
||||
"args": "run -A --unstable-worker-options --quiet main.ts",
|
||||
"output": "1\n"
|
||||
},
|
||||
"denied": {
|
||||
"args": "run -A --unstable-worker-options --quiet main_denied.ts",
|
||||
"output": "denied.out",
|
||||
"exitCode": 1
|
||||
}
|
||||
}
|
||||
}
|
7
tests/specs/permission/allow_import_worker/denied.out
Normal file
7
tests/specs/permission/allow_import_worker/denied.out
Normal file
|
@ -0,0 +1,7 @@
|
|||
error: Uncaught (in worker "") (in promise) TypeError: JSR package manifest for '@std/assert' failed to load. Requires import access to "127.0.0.1:4250", run again with the --allow-import flag
|
||||
await import(specifier);
|
||||
^
|
||||
at async file:///[WILDLINE]
|
||||
error: Uncaught (in promise) Error: Unhandled error in child worker.
|
||||
at [WILDLINE]
|
||||
at [WILDLINE]
|
8
tests/specs/permission/allow_import_worker/main.ts
Normal file
8
tests/specs/permission/allow_import_worker/main.ts
Normal file
|
@ -0,0 +1,8 @@
|
|||
new Worker(import.meta.resolve("./worker.ts"), {
|
||||
type: "module",
|
||||
deno: {
|
||||
permissions: {
|
||||
import: ["127.0.0.1:4250"],
|
||||
},
|
||||
},
|
||||
});
|
|
@ -0,0 +1,8 @@
|
|||
new Worker(import.meta.resolve("./worker.ts"), {
|
||||
type: "module",
|
||||
deno: {
|
||||
permissions: {
|
||||
import: [],
|
||||
},
|
||||
},
|
||||
});
|
4
tests/specs/permission/allow_import_worker/worker.ts
Normal file
4
tests/specs/permission/allow_import_worker/worker.ts
Normal file
|
@ -0,0 +1,4 @@
|
|||
const specifier = "jsr:@std/assert/assert";
|
||||
await import(specifier);
|
||||
console.log(1);
|
||||
close();
|
|
@ -1913,6 +1913,21 @@ Deno.test(function consoleLogWhenCauseIsAssignedShouldNotPrintCauseTwice() {
|
|||
});
|
||||
});
|
||||
|
||||
Deno.test(function consoleLogCauseNotFilteredOnNonError() {
|
||||
mockConsole((console, out) => {
|
||||
const foo = {
|
||||
a: 1,
|
||||
b: 2,
|
||||
cause: 3,
|
||||
};
|
||||
console.log(foo);
|
||||
|
||||
const result = stripAnsiCode(out.toString());
|
||||
const expected = "{ a: 1, b: 2, cause: 3 }\n";
|
||||
assertEquals(result.trim(), expected.trim());
|
||||
});
|
||||
});
|
||||
|
||||
// console.log(new Proxy(new RegExp(), {}))
|
||||
Deno.test(function consoleLogShouldNotThrowErrorWhenInputIsProxiedRegExp() {
|
||||
mockConsole((console, out) => {
|
||||
|
|
|
@ -4,13 +4,16 @@ import { assert, assertEquals, assertThrows } from "@std/assert";
|
|||
import { join } from "node:path";
|
||||
import { tmpdir } from "node:os";
|
||||
import {
|
||||
closeSync,
|
||||
constants,
|
||||
createWriteStream,
|
||||
existsSync,
|
||||
lstatSync,
|
||||
mkdtempSync,
|
||||
openSync,
|
||||
promises,
|
||||
readFileSync,
|
||||
readSync,
|
||||
Stats,
|
||||
statSync,
|
||||
writeFileSync,
|
||||
|
@ -201,3 +204,11 @@ Deno.test(
|
|||
assertEquals(res, [0, 1, 2, 3, 4, 5]);
|
||||
},
|
||||
);
|
||||
|
||||
Deno.test("[node/fs] readSync works", () => {
|
||||
const fd = openSync("tests/testdata/assets/hello.txt", "r");
|
||||
const buf = new Uint8Array(256);
|
||||
const bytesRead = readSync(fd!, buf);
|
||||
assertEquals(bytesRead, 12);
|
||||
closeSync(fd!);
|
||||
});
|
||||
|
|
|
@ -691,6 +691,16 @@ Deno.test({
|
|||
assertStrictEquals(process.stdout.clearLine, undefined);
|
||||
assertStrictEquals(process.stdout.clearScreenDown, undefined);
|
||||
}
|
||||
|
||||
// Allows overwriting `process.stdout.isTTY`
|
||||
// https://github.com/denoland/deno/issues/26123
|
||||
const original = process.stdout.isTTY;
|
||||
try {
|
||||
process.stdout.isTTY = !isTTY;
|
||||
assertEquals(process.stdout.isTTY, !isTTY);
|
||||
} finally {
|
||||
process.stdout.isTTY = original;
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
@ -11625,9 +11625,6 @@
|
|||
"ctor-1.html": false,
|
||||
"ctor-null.html": false,
|
||||
"ctor-undefined.html": false,
|
||||
"same-origin.html": [
|
||||
"non-parsable URL"
|
||||
],
|
||||
"terminate.html": true,
|
||||
"use-base-url.html": false
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue