Deno v2.1.8/v2.1.9

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

OpenTelemetry

HTTPSエンドポイントのサポート

HTTPSエンドポイントへのSignalsの送信がサポートされています (#27743)

以下の環境変数によって設定が可能です:

  • OTEL_EXPORTER_OTLP_CERTIFICATE
  • OTEL_EXPORTER_OTLP_CLIENT_KEY
  • OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE

deno check

ワークスペースの各メンバーでのcompilerOptionsのサポート

ワークスペースの各メンバーのdeno.jsonにおけるcompilerOptionsの定義がサポートされています (#27785)

今まではワークスペースのルートでしかcompilerOptionsを定義できませんでしたが、今後は各メンバーごとに柔軟に型チェックなどに関する振る舞いを設定できそうです。

npmパッケージに含まれる.tsファイルの取り扱いの改善

型チェックにおけるnpmパッケージ中の.tsファイルの取り扱いが改善されています (#27853)

deno checkの実行時に限定して、型チェック時に.d.tsが見つからない際は追加で.tsファイルも探索してくれるようです。

deno install

-gが指定され かつ deno.jsonが検出された際の警告について

deno install -gの実行時にdeno.jsonが検出され かつ--configオプションが指定されていない場合に以下の警告が表示されるよう改善されています (#27745)

Warning discovered config file will be ignored in the installed command. Use the --config flag if you wish to include it.

deno lsp

Ambient modulesに関する修正

Ambient modulesに対するimportでエラーが発生しないように修正されています (#27855)

SvelteKitなどを使用したプロジェクトを想定した修正のようです。

deno publish

.d.tsに関する改善

jsrパッケージのモジュール内でsloppy importsが使用されており かつ 対応する.d.tsファイルが存在する場合に、unfurling (specifierの正規化)が行われるよう改善されています (#27793)

例えば、export type { foo } from './foo' かつ ./foo.d.tsが存在されば、パッケージ公開時にexport type { foo } from './foo.d.ts'へ変換されます。

Deno API

Deno.readDirSync()の型定義の改善

Deno.readDirSync()の戻り値の型がIterable<Deno.DirEntry>からIteratorObject<Deno.DirEntry>へ変更されています (#27805)

Web Crypto API

SubtleCrypto#exportKeyの改善

SubtleCrypto#exportKeyでX25519形式の秘密鍵をJWK形式でエクスポート出来るように改善されています (#27828)

Node.js互換性の改善

ホームディレクトリの.npmrcに関するサポート

ホームディレクトリに.npmrcが存在する場合、プロジェクトの.npmrcと設定内容がマージされるよう改善されています (#27119)

Playwrightサポートの改善

BrowserType#launch (chromium.launch()など)が動作しない問題が修正されています (#27779)

playwright installコマンドやchromium.launch()のテストも追加されており、Playwrightの動作に関する安定性が改善されています。

node:process

process.env.TZの取り扱いの改善

process.env.TZの設定時に時刻の変換情報が初期化(tzset()が呼ばれます)されるよう修正されています (#27826)

node:http

ClientRequestの改善

ClientRequestinformationイベントがサポートされています (#27381)

Serverの改善

ServercheckContinue/checkExpectationイベントがサポートされています (#27381)

node:zlib

brotliDecompress()の改善

brotliDecompress()callback引数がサポートされています (#27815)

crc32()のバグ修正

crc32()の実行時にReferenceErrorが発生する問題が修正されています (#27777)

node:util

debuglog()の改善

debuglog()でメッセージが'...'で囲まれて表示されないよう修正されています (#27772)

node:crypto

新規API

以下のAPIやアルゴリズムが実装されています:

  • X509Certificate#checkHost (#27821)
  • hash() (#27858)
  • aes-128-ctr/aes-192-ctr/aes-256-ctr (#27630)
aes-128-gcm/aes-256-gcmに関するバグ修正

aes-128-gcm/aes-256-gcmの使用時に不正なサイズのキーが指定されたら、プロセスがパニックする問題が修正されています (#27818)

wsパッケージに関する修正

Deno v2.1.5からwsパッケージのWebSocketクライアントが動作しなくなっていた問題が修正されています (#27792)

node_modules中のTypeScriptファイルを含むnpmパッケージに関する修正

node_modules中のnpmパッケージにTypeScriptモジュールが含まれていた際に、Node.jsと同様のERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPINGエラーが発生するよう改善されています (#27809)

DenoにおけるTypeScript v5.7のサポートについて

まだリリースはされていないものの、Deno本体のTypeScriptをv5.7にアップデートするPRがmainブランチへマージされています:

おそらく、Deno v2.2でリリースされるのではないかと思います。

このPRでは、新しくサポートされたes2024ターゲット向けにTypedArrayに関連する型定義の修正が実施されています。後述するdeno_stdにおいてもTypeScript v5.7に向けた対応が進められています。


deno_stdのリリース

deno_stdのリリースが実施されています (release-2025.01.31)

TypeScript 5.7に向けた対応

Deno本体におけるTypeScript 5.7サポートに合わせて、以下のパッケージがリリースされています:

TypeScript v5.7におけるTypedArrayの型定義の変更に合わせ、各APIの型定義が調整されています (#6372)

@std/log@0.224.14

@std/log@0.224.14がリリースされています。

@std/logの非推奨化について

このリリースでは実装などの変更は行われていませんが、ドキュメントの修正が行われています:

Deno本体でのOpenTelemetryサポートに合わせて、今後、@std/logは削除されることが検討されているようです。以下のissueで議論などが行われいます:

@std/cli@1.0.12

@std/cli@1.0.12がリリースされています。

@std/cli/unstable-spinner - 標準エラー出力のサポート

Spinneroutputオプションが追加されています。

このオプションにはデフォルト値としてDeno.stdoutが設定されており、任意でDeno.stderrを指定することによりスピナーを標準エラー出力へ表示できます。

@std/fmt@1.0.5

@std/fmt@1.0.5がリリースされています。

@std/fmt/printf@std/fmt/colorsの併用

@std/fmt/printf@std/fmt/colorsと併用すると、意図せぬ内容が出力される問題が修正されています (#6360)

@std/fs@1.0.11

@std/fs@1.0.11がリリースされています。

Node.js向けサポートの改善

@std/fsのNode.jsサポートの改善に向けて、以下のモジュールが追加されています:

  • @std/fs/unstable-read-link (readLink()/readLinkSync()が提供されます)
  • @std/fs/unstable-link (link()/linkSync()が提供されます)
  • @std/fs/unstable-real-path (realPath()/realPathSync()が提供されます)