Deno v2.5.5 & Deno v2.5.6
Deno v2.5.5とDeno 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.jsonのminimumDependencyAgeフィールドまたは--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 checkにcompilerOptions.skipLibCheck及びcompilerOptions.isolatedDeclarationsのサポートが追加されています (#30989, #31061)
deno lsp
textDocument/codeActionでsource.organizeImportsコードアクションがサポートされています。importの並び替えや未使用のimportの削除ができます (#31016)
また、deno lspがtsconfig.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)