2025/10/20〜2025/10/26の最新情報

Denoの直近のアップデート typescript-goのサポートがマージ (--unstable-tsgo) 以前に紹介した、deno checkコマンドでtypescript-goをサポートするPRがマージされています (#30920)。まだリリースはされていませんが、canary バージョンで動作を試すことが可能です。 deno checkを実行する際に--unstable-tsgoオプションを指定することで、まずdenoland/typescript-goが${DENO_DIR}/dlへダウンロードされます。 その後、--apiオプションを指定して起動されたtsgoとプロセス間で通信することによって型チェックが実行されているようです (microsoft/typescript-go/cmd/tsgo/main.go#L19-L20) $ deno check --unstable-tsgo mod.ts 詳細はdenoland/deno/docs/tsgo.mdにて解説されています。 deno.jsonでのminimumDependencyAgeのサポート 先週に紹介した、deno.jsonでのminimumDependencyAgeのサポートがマージされています (#31007) さらに、特定のパッケージを対象から除外できるよう、minimumDependencyAgeにおいてオブジェクト形式での設定がサポートされています: feat(unstable): ability to exclude packages from minimum dependency age constraint #31031 minimumDependencyAge.ageフィールドに猶予期間、minimumDependencyAge.excludeフィールドに適用対象から除外したいパッケージを指定できます。 { "minimumDependencyAge": { "age": "PT5H", "exclude": ["npm:preact"] } } deno auditコマンド 以前に紹介した、deno auditコマンドの実装がマージされています。 feat(unstable): add deno audit subcommand #30966 npmレジストリの Full Audit エンドポイント (/-/npm/v1/security/audits) を利用したパッケージの検査がサポートされています。 内部的には firewall-api.socket.dev を使用した検証の実装も含まれているようですが、現時点ではまだユーザーから利用するための手段は提供されていなさそうです。 ecosystem_compat_test 内部的な変更ではありますが、日次でnpm/ yarn/pnpmをDenoで実行し、互換性を検証する仕組みが導入されています:...

October 26, 2025

2025/10/13〜2025/10/19の最新情報

サプライチェーン攻撃関連の対応について --minimum-dependency-age 以前に紹介した--minimum-dependency-ageオプションを実装するPRがマージされています (#30752) 以前に紹介した時点からの差分として、ISO 8601 durationやRFC 3339形式での日付の指定がサポートされています。 # (1) ISO 8601 duration 形式で5時間を指定 (`--minimum-dependency-age=300`と等価) $ deno install --minimum-dependency-age=PT5H npm:preact # (2) 指定された日付以前にリリースされたバージョンをインストール $ deno install --minimum-dependency-age=2025-10-19T21:00:00.000Z npm:preact このオプションは unstable という扱いのようなので、次のv2.5.5あたりでリリースされる可能性がありそうです。 deno.jsonへのminimumDependencyAgeの追加 まだマージはされていませんが、deno.jsonにminimumDependencyAgeというフィールドを追加するPRが作成されています。 feat(unstable): ability to specify minimum dependency age in deno.json file #31007 b9ad4e6a9c630b46f18aa541140cfcdc14ae622e時点での実装によると、このフィールドに--minimum-dependency-ageと同様のフォーマットで期間を指定しておくことで、--minimum-dependency-ageと同様にインストールされるパッケージのバージョンを制御できるようです。 deno.jsonのminimumDependencyAgeと--minimum-dependency-ageを同時に指定した場合、--minimum-dependency-ageの方が優先されるようです。--minimum-dependency-age=0を指定することで、minimumDependencyAgeを無効化できます。 Hono v4.10.0 Hono v4.10.0がリリースされています。 hono/client Middlewareが返却したレスポンスの型定義をhono/clientが推論できるよう改善されています (#4393) hono/request hono/requestにcloneRawRequest()が追加されています。HonoRequestが保持しているRequestオブジェクトに関して、bodyがすでに使用された場合とそうでない場合をそれぞれ考慮して、賢くRequestをクローンしてくれるようです (#4382) hono/ssg hono/ssgにdefaultPluginが追加されています。これはユーザーがプラグインを指定しなかった際にデフォルトで適用され、ステータスとして200が返却されなかったページの生成をスキップしてくれるようです (#4394) Hono CLI Hono CLIが公開されています。 リポジトリ: honojs/cli 参考: Introduce Hono CLI 主にAIコーディングエージェント向けに使用されることが想定されたhono searchコマンドやHonoアプリケーションを最適化するためのhono optimizeコマンドなど、様々なコマンドが提供されているようです。

October 19, 2025

2025/10/06〜2025/10/12の最新情報

Deno v2.5.4 Deno v2.5.4がリリースされています。 deno update deno updateでバージョンレンジとして~が指定されたパッケージを更新した際に、更新後にも~が維持されるよう改善されています (#30946) Node.js互換性の改善 node:fs WindowsにおいてStatsオブジェクトのino/nlink/blocksの3つのプロパティーが設定されるよう改善されています (#30866)。Deno.FileInfoにも同様の改善が実施されています。 また、cp()におけるoptions引数のサポート (#30502) やrealpath()におけるencodingオプションのサポート (#30885) も実施されています。 node:crypto X509CertificateのvalidFromDate及びvalidToDateプロパティーが実装されています (#30882) node:zlib 入力が巨大な場合に gunzip() がスタックオーバーフローを起こす問題が修正されています (#30865) その他の改善 JSXプラグマコメントに関するバグの修正 @jsxRuntimeにclassicやautomatic以外の値が設定されている場合や@jsxFrag nullが指定された際などにプロセスがパニックする問題が修正されています (#30935) --tunnelオプションについて 細かな内容ですが、deno runなどの--helpに--tunnelオプション (--connected) の情報が表示されるよう変更されています (#30940)。ローカルから Deno Deploy へセキュアな接続を確立するための機能のようです。 deno_stdのリリース deno_stdのリリースが行われています (release-2025.10.07, release-2025.10.07a) @std/assert@1.0.15 @std/assert@1.0.15がリリースされています。 @std/assert/unstable-equalsと@std/assert/unstable-strict-equalsが追加されています。通常の@std/assert/equals及び@std/assert/strict-equalsとの違いとして、任意でDIFF_CONTEXT_LENGTH環境変数に行数を指定することで、エラーメッセージ中のdiffの省略表示を有効化することが可能です (#6835) また、@std/assert/equalでArrayBufferの比較がサポートされています。assertEquals()などのAPIにも適用されます (#6821) @std/async@1.0.15 @std/async@1.0.15がリリースされています。 @std/async/unstable-throttleにensureLastCallオプションが追加されています。trueを指定すると、タイムフレーム中に複数回throttleされた関数が呼ばれた際に、最後の呼び出しが実行されることが保証されます (#6800) また、@std/async/unstable-wait-forでpredicateにPromiseを返す関数が渡された場合、常にtrueであるとみなされる問題が修正されています (#6839) @std/html@1.0.5 @std/html@1.0.5がリリースされています。 新規APIとしてescapeCss() (@std/html/unstable-escape-css) とescapeJs() (@std/html/unstable-escape-js) が追加されています。escapeCss()はCSS.escape()と同様のロジックで文字列をエスケープし、escapeJs()は<script>タグの中に安全に埋め込めるようにオブジェクトや文字列をエスケープしてくれます (#6782) @std/testing@1.0.16 @std/testing@1.0.16がリリースされています。 @std/testing/unstable-bddで下記APIが追加されています (#6712) describe.todo() it....

October 12, 2025

2025/09/29〜2025/10/05の最新情報

Deno v2.5.3 Deno v2.5.3がリリースされています。 パーミッションブローカー (DENO_PERMISSION_BROKER_PATH) 先週に紹介したパーミッションブローカーがリリースされました (#30826) 先週に紹介した時点からの差分として、追加で以下の改善が実施されています: レスポンスでreasonフィールドがサポート (#30902) 任意でこのフィールドに文字列を設定することで、権限が拒否された際にユーザーへ表示されるメッセージをカスタマイズできるようです。 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 checkでtypescript-goを利用できるようにするPRが作成されています: feat(unstable): typescript-go integration for deno check #30920 c0fde0e81ec6c7b5e5e7512b2958be93bb3e41fbの時点においては、--apiオプションを指定して子プロセスとして起動したtsgoとプロセス間で通信することによって統合が実現されているようです。...

October 5, 2025

2025/09/22〜2025/09/28の最新情報

Deno v2.5.2 Deno v2.5.2がリリースされています。 deno lsp deno lspでdescribe()/it()で定義されたテストの検出と実行がサポートされています (#30802) deno bundle deno bundle --watchにHTMLエントリーポイントを指定している場合、変更の検出時に出力されたHTMLファイルが適切にビルドされない問題が修正されています (#30790) また、deno bundleで--frozenのサポートが追加されています (#30825) deno coverage Worker内のコードに対してもカバレッジが計測されるよう改善されています (#30807) TypeScript compilerOptions.pathsのサポート deno checkコマンドでcompilerOptions.pathsがサポートされています (#30766) Uint8Arrayに Base64/Hex 関連のAPIに関する型定義が追加 Deno v2.5.0におけるV8のアップデートに伴い、下記APIの型定義が追加されました (#30686): Uint8Array#toBase64() Uint8Array#setFromBase64() Uint8Array#toHex() Uint8Array#setFromHex() Uint8Array.fromBase64() Uint8Array.fromHex() Promise<undefined> から Promise<void> への変更 TypeScript 公式の型定義に合わせて、以下の各プロパティーの型定義が Promise<undefined> から Promise<void> へ変更されています (#30820): ReadableStreamGenericReader#closed WritableStreamDefaultWriter#closed WritableStreamDefaultWriter#ready WebTransport#ready WebSocket Deno 2.5.1からWebSocketの接続時にUser-Agentヘッダーが送信されなくなっていた問題が修正されています (#30758) node:fs statfs()でpath引数にBufferの指定がサポートされています (#30662) また、readFile()でencoding: "binary"の指定時にStringを返すよう挙動が修正されています (#30830) node:crypto timingSafeEqual()にArrayBufferのサポートが追加されています (#30773)...

September 28, 2025

2025/09/15〜2025/09/21の最新情報

Deno v2.5.1 Deno v2.5.1がリリースされています。 Deno API Deno.HttpClient WebSocketでclientオプション (Deno.HttpClient) がサポートされています (#30692)。 これにより、プロキシーの利用やallowHostオプションによりHostヘッダーのカスタマイズなどが可能です。この改善にあわせてHTTP_PROXYなどのプロキシー関連の環境変数がWebSocketにも適用されるよう改善されています。 また、Deno.createHttpClient()でproxy.transport: "tcp"がサポートされています (#30700) Deno.serve() DENO_SERVE_ADDRESSにduplicate,<address>形式のアドレスが指定された際に、signalやonErrorオプションも引き継がれるよう改善されています (#30680) Deno.bundle() --unstable-bundleなしでDeno.bundle()を使用した際に--unstable-bundleの指定が促されるように改善されています (#30682) deno init macOSでdeno init --npmが動作しなくなっていた問題が修正されています (#30730) deno lsp deno.cacheOnSaveによる依存関係のキャッシュ時はdeno.lockを更新しないよう挙動が変更されています (#30733) deno check SvelteKit における$app/environmentなど、bare specifier 形式の ambient module でエラーが発生しないよう挙動が変更されています (#30690) node:fs 以下の改善が実施されています。 Windowsでfchmod()がサポートされています (#30704) glob()のcwd引数でURLオブジェクトの指定がサポートされています (#30705) callback引数を指定せずにclose()を呼ぶとエラーが発生する問題が修正されています (#30720) readlink()のpath引数でBufferの指定がサポートされています (#30691) node:process process.envにおいて空文字列などの falsy な値を持つ環境変数がObject.keys()などで返却されない問題が修正されています (#30708) Fresh v2.1.0 Fresh v2.1.0のリリースが実施されています。 @fresh/core@2.1.0 @fresh/core@2.1.0がリリースされています。 CSPミドルウェア csp()ミドルウェアが追加されています (#3421) 指定されたオプションに基づいてContent-Security-Policyヘッダーを設定してくれます。 複数ミドルウェアのサポート Fresh v1 でサポートされていた_middleware....

September 21, 2025

2025/09/08〜2025/09/14の最新情報

Deno v2.5 Deno v2.5.0がリリースされました。 以下のページに変更内容をまとめているため、よろしければ参照ください: Deno v2.5 Fresh v2 が正式にリリース Fresh v2 (@fresh/core@2.0.0) のリリースについて 2025/09/10 に Fresh v2 (@fresh/core@2.0.0)が正式にリリースされました。 2.0.0 chore: release 2.0.0 (#3371) 注意点として、Viteプラグイン (@fresh/plugin-vite)やTailwind CSSプラグイン (@fresh/plugin-tailwind)についてはFreshの本体である@fresh/coreパッケージとは独立してバージョニングされており、これらのパッケージの現時点での最新メジャーバージョンはv2ではなくv1です。 その後のアップデート Fresh v2 の正式リリース後も引き続き開発が進められています。 @fresh/plugin-vite@1.0.2では.envの読み込みがサポートされています (#3416)。.envに加えて、環境に応じて追加で以下のファイルも読み込まれるようです: .env.local .env.{development,production} .env.{development,production}.local また、Fresh v2 アプリケーションをdeno compileできるよう、ビルド後に_fresh/compiled-entry.jsというファイルを生成する改善も実施されています (#3410)

September 14, 2025

Deno v2.5

はじめに Deno v2.5がリリースされました。 この記事では主な変更点などについて解説します。 deno bundle Deno.bundle()APIが追加 deno bundleコマンドの機能をプログラムから利用するためのDeno.bundle()APIが正式にリリースされました (#29949) Deno.bundle()を利用するためには--unstable-bundleによって明示的に有効化が必要です: const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "deno", }); console.assert(result.success); const [outputFile] = result.outputFiles; const bundledCode = outputFile.text(); console.assert(typeof bundledCode === "string"); outputPathやoutputDirオプションを指定することで、バンドル結果がファイルシステムへ書き込まれます (--allow-writeの指定は不要なようです): const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "browser", minify: true, sourcemap: "external", outputDir: "dist", }); console.assert(result.success); HTMLエントリーポイントのサポート deno bundleでHTMLエントリーポイントのサポートが追加されています (#29856) 例として、バンドル対象のHTMLとJavaScriptモジュールを準備しておきます。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> <script type="module" src="....

September 14, 2025

2025/09/01〜2025/09/07の最新情報

Deno v2.5 向けの機能の追加について Deno v2.5 向けに直近でマージされた内容について紹介します (⚠️まだ正式にはリリースされていないため、今後、APIの使い方に変更が発生する可能性があります) Deno.bundle()APIが追加 deno bundleコマンドの機能をプログラムから動的に利用するために、Deno.bundle()というAPIが追加されています。 feat(bundle): runtime API for deno bundle #29949 Deno.bundle()を利用するためには--unstable-bundleによって明示的に有効化が必要です: const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "deno", }); console.assert(result.success); const [outputFile] = result.outputFiles; const bundledCode = outputFile.text(); console.assert(typeof bundledCode === "string"); outputPathやoutputDirオプションを指定することで、バンドル結果がファイルシステムへ書き込まれます (--allow-writeの指定は不要なようです): const result = await Deno.bundle({ entrypoints: ["./mod.ts"], platform: "browser", minify: true, sourcemap: "external", outputDir: "dist", }); console.assert(result.success); まだマージはされていませんが、現在、プラグイン (pluginsオプション) のサポートに関する実装も進められているようです:...

September 7, 2025

2025/08/25〜2025/08/31の最新情報

Deno v2.5 向けの機能の追加について Deno 2.5.0 向けのマイルストーンに関連して、新機能を実装するためのPRがいくつか作成されているため、紹介します。 Deno.testへのbefore*/after*フックのサポート まだマージはされていませんが、Deno.test配下に Vitest や Jest ライクなbefore*/after*APIをサポートするPRが作成されています: feat(test): Add setup and teardown APIs to Deno.test API #30504 af75749のコミットの時点では、以下の4つのフックが実装されています: Deno.test.beforeAll() Deno.test.afterAll() Deno.test.beforeEach() Deno.test.afterEach() Deno.ChildProcess.{stdout,stderr}へのResponseライクな問い合わせメソッドの追加 Deno.ChildProcessのstdout及びstderrプロパティーにおいて、Responseライクに出力内容を取得するためのユーティティーメソッドを追加するPRが作成されています: feat(ext/process): add collector utilities to ChildProcess.stdout & ChildProcess.stderr #30552 const command = new Deno.Command(Deno.execPath(), { args: ["json_reference"], stdout: "piped", }).spawn(); const json = await command.stdout.json(); 852714eのコミットの時点においては、以下の4つのメソッドが実装されています: arrayBuffer bytes json text Fresh v2 関連のアップデート @fresh/init@2....

August 31, 2025