Deno v2.5.3

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

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

先週に紹介したパーミッションブローカーがリリースされました (#30826)

先週に紹介した時点からの差分として、追加で以下の改善が実施されています:

  1. レスポンスでreasonフィールドがサポート (#30902)
  • 任意でこのフィールドに文字列を設定することで、権限が拒否された際にユーザーへ表示されるメッセージをカスタマイズできるようです。
  1. Windows でのパーミッションブローカーのサポート (#30894)
  • DENO_PERMISSION_BROKER_PATHに名前付きパイプへのパスを指定することで有効化できるようです。

deno check

cloudflare:などのDenoがサポートしないURLスキームが検出されるとエラーが発生する問題が修正されています (#30904)。v2.5.2によるリグレッションであったようです (#30898)

また、deno checkコマンドで--v8-flagsオプションがサポートされています (#30868)

deno run

--watchオプションが指定され かつ Deno.addSignalListener()によってSIGINTへのリスナーを登録してる場合、プロセスがSIGINTで終了しなくなる問題が修正されています (#30635)

Deno API

Deno.FsFile#stat()のパーミッションの見直し

read: falseを指定して実行したDeno.open()から返却されたDeno.FsFileに対してstat()メソッドを呼んだ際に、該当ファイルに対する--allow-read権限が要求されるよう挙動が変更されています (#30876)

Deno.FsFile#utime()のパーミッションの見直し

write: falseを指定して実行したDeno.open()から返却されたDeno.FsFileに対してutime()メソッドを呼んだ際に、該当ファイルに対する--allow-write権限が要求されるよう挙動が変更されています (#30872)

Node.js互換性の改善

node:sqlite

--allow-allが指定されている場合のみ ATTACH DATABASE の実行がサポートされました (#30763)

node:timers/promises

setTimeout()signalオプションがサポートされています (#30855)

bundleDependencies

bundleDependenciesおよびbundledDependenciesの両方が定義されたnpmパッケージをインストールするとエラーが発生する問題が修正されています (#30875)

Tunnelling

Deno v2.4.1で実装された--connectedオプションが--tunnelにリネームされています (#30786)

typescript-goとの統合について (--unstable-tsgo)

まだマージはされていないですが、deno checktypescript-goを利用できるようにするPRが作成されています:

c0fde0e81ec6c7b5e5e7512b2958be93bb3e41fbの時点においては、--apiオプションを指定して子プロセスとして起動したtsgoとプロセス間で通信することによって統合が実現されているようです。

typescript-go--unstable-tsgoを指定してdeno checkがはじめて実行された際に動的にダウンロードされ、キャッシュされるようです。

現時点ではtypescript-goのフォーク版 (denoland/typescript-go)が利用されています。

Deno Deploy EA に関するアップデート

Prisma Postgresのサポート

先週に紹介した Deno Deploy EAにおけるデータベースのプロビジョニング機能にPrisma Postgresのサポートが追加されたようです:

上記PRで公式ドキュメントが追加されています。

repository_dispatch

Deno Deploy EAがアプリケーションのビルドの開始または終了時に、GitHubリポジトリに対してrepository_dispatchイベントを送信してくれる機能がサポートされたようです:

Deno Deploy EA の名称について

Deno Deploy EA (Early Access)に関するドキュメントの構成などが更新されています:

この更新では Deno Deploy EA を Deno Deploy, 今までのバージョンの Deno Deploy を Deno Deploy Classic と呼ぶように表現が変更されています。