Deno v2.5.5 & Deno v2.5.6

Deno v2.5.5Deno v2.5.6がリリースされています。

typescript-goの実験的サポート (--unstable-tsgo)

typescript-goの実験的サポートが行われています (#30920)

deno checkコマンドに--unstable-tsgoを指定すると、typescript-goを使用した型チェックが実施されます。

$ deno check --unstable-tsgo mod.ts

minimumDependencyAge

あるパッケージの最新バージョンがインストールされるまでの猶予期間の設定がサポートされています (#30752, #31007, #31031)

deno.jsonminimumDependencyAgeフィールドまたは--minimum-dependency-ageオプションによって猶予期間を指定可能です。

{
  "minimumDependencyAge": {
    // 公開されてから最低でも1日 (=1440分) 以上経過しているバージョンのみをインストールします
    "age": 1440,
    // `minimumDependencyAge`の適用を除外したいパッケージを指定します
    "exclude": ["npm:@my-company/some-package"]
  }
}
$ deno install --minimum-dependency-age=1440 npm:preact

deno audit

deno auditコマンドが実装されています (#30966)

npmレジストリの Full Audit エンドポイント (/-/npm/v1/security/audits) を利用したパッケージの検査を行うことができます。

$ deno audit
No known vulnerabilities found

$ deno audit --level=critical
No known vulnerabilities found

まだマージはされていませんが、deno auditコマンドに--socketオプションを実装するPRが作成されています。

--socketを指定すると、firewall-api.socket.devを使用した検証が有効化される想定のようです。

パーミッションブローカー (DENO_PERMISSION_BROKER_PATH)

パーミッションブローカーのリクエストにpidフィールドが追加されています (#31050)

DenoのプロセスIDが設定されます。

deno completions - --dynamicオプションが追加

deno completionsコマンドで--dynamicオプションがサポートされています (#30670)

deno taskコマンドにおけるタスク名の動的な補完を行うためのシェルスクリプトを生成してくれるようです。

現状、--dynamicオプションがサポートされるシェルはbash/zsh/fishの3種類です。

$ deno completions --dynamic zsh

deno check

deno checkcompilerOptions.skipLibCheck及びcompilerOptions.isolatedDeclarationsのサポートが追加されています (#30989, #31061)

deno lsp

textDocument/codeActionsource.organizeImportsコードアクションがサポートされています。importの並び替えや未使用のimportの削除ができます (#31016)

また、deno lsptsconfig.jsonの変更をリアルタイムで認識してくれるよう改善されています (#30993)

deno coverage

blob:URLに対してカバレッジの計測が実施されないよう修正されています (#31035)

Deno API

Deno.upgradeWebSocket() - レスポンスヘッダーの変更がサポート

Deno.upgradeWebSocket()で返却されたresponseのヘッダーを変更できるよう改善されています (#31000)

const { response } = Deno.upgradeWebSocket(request);
response.headers.set("x-foo", "1");

Deno.serve() - tcpBacklogのサポート

Deno v2.5で実装されたtcpBacklogオプションがDeno.serve()においてのみ動作していなかった問題が修正されています (#30748)

Deno.openKv() - --allow-all指定時の挙動の修正

--allow-allが指定された状態でDeno.openKv()に相対形式のパスを指定するとエラーが発生する問題が修正されています (#31021)

ReadableStream - メモリリークの修正

Responseコンストラクタのbody引数にReadableStreamを指定した際に、メモリリークが発生することがある問題が修正されています (#30871)

Node.js互換性の改善

node:sqlite

StatementSync#columns()backup()が実装されています (#31119, #29842)

node:fs/promises

FileHandle#readLines()が実装されています (#31107)

node:fs

write()options引数がサポートされています (#30999)

また、read()においてoptions引数を適切に取り扱うための改善とwrite()position引数に負数が指定された際に0と同様に取り扱う修正が実施されています (#31013)

node:path

matchesGlob()がサポートされました。実装はされていたもののexportされていなかったようです (#30976)

node:crypto

createHmac()の使用時に警告が表示される問題が修正されています (#31025)

npm

あるnpmパッケージの複数バージョンが意図せず重複して読まれてしまうことのある問題への改善が実施されています (#30973)

また、bats のようにdirectories.binだけが定義されたパッケージにおいてCLIがうまく検出できない問題が修正されています (#30919)

freshのリリース

freshのリリースが行われています (2.1.4)

@fresh/init@2.2.2

@fresh/init@2.2.2がリリースされています。

@fresh/initが生成するnodeModulesDirの設定がautoからmanualに変更されています (#3588)

@fresh/core@2.1.4

@fresh/core@2.1.4がリリースされています。

form外のf-partial属性を持つボタンをクリックした際は、URLは更新せずに Partial のレンダリングのみが実行されるよう修正されています (#3584)

また、ある Route でGETメソッド向けのハンドラーしか登録されてないときは、そのハンドラーがHEADメソッド向けにも使用されるよう挙動が改善されています (#3587)

@fresh/plugin-vite@1.0.7

@fresh/plugin-vite@1.0.7がリリースされています。

@fresh/plugin-viteが処理したCommonJS形式のモジュールで__esModuleが定義されるよう改善されています。stripeパッケージなどが動作しない問題があったようです (#3575)

また、Viteのbuild.outDirが無視されてしまう問題が修正されています (#3570)