terminal
Weekly Digest // JS_FRAMEWORKS — Week 25-2026
codeWeekly Report

Node.js 2026年6月Security Release — 2026年 第25週 JavaScript

JS frameworks, React/Vue/Svelte, and runtime updates

calendar_todaysummarizeWeek 25-2026bolt1 CRITICAL
セキュリティ

Node.js 2026年6月Security Release

Node.jsプロジェクトは2026年6月18日22.x、24.x、26.xの各リリースラインに対するセキュリティアップデートをリリースし、合計11件のCVEを修正しました。最も深刻な問題は2件あります。CVE-2026-48933はWebCrypto AESの整数オーバーフローで、入力が2GiBの倍数の場合にプロセスがクラッシュします。CVE-2026-48618はresolverとverifier間のホスト名正規化の不一致によるTLSワイルドカード深度認証バイパスです。中程度の深刻度の修正には、ERR_PROXY_TUNNELエラーメッセージでのプロキシ認証情報の漏洩、攻撃者が制御するORIGINフレームによるHTTP/2のメモリ無制限増加、GOAWAYセッションのクリーンアップバグ、mTLSホスト名の大文字小文字区別バイパスなどが含まれます。依存関係の更新にはllhttp 9.4.2nghttp2 1.69.0OpenSSL 3.5.7、各ラインのundiciバージョンアップが含まれます。サポートされているすべてのアクティブLTSラインが影響を受けるため、直ちにアップグレードすることを強く推奨します。

Node.js 2026年6月Security Release
Read Articlearrow_forward
Video · ブラウザAPI

WebMCP:50% Perfect

Jack HerringtonがWebMCPの最新改善点をデモし、この標準がまだポテンシャルの半分しか達成していないと説明します。chrome://flags2つの項目を有効化することで利用できる新しいChrome DevToolsサポートが、ApplicationタブにWebMCPパネルを追加します。このパネルは現在のページに登録されたすべてのツールを一覧表示し、入出力を確認しながら個別のツールを直接実行できます。新たに導入された宣言的APIは、JavaScriptコードなしでフォーム要素にtoolnametooldescriptiontoolparamdescription HTMLアトリビュートを追加するだけで、その要素をMCPツールとして自動登録します。これはインメモリのTodoリストでライブデモされました。命令型API(document.modelContext.registerTool)と宣言型アプローチが比較されます。Herringtonは、ChromeのGemini統合を含むブラウザのAIパネルがまだmodel contextオブジェクトを消費していないため、ブラウザ側のMCPインフラを駆動するAIクライアントが存在しないとして、この標準は半分しか完成していないと主張しています。

AI_INFOGRAPHIC
WebMCP:50% Perfect — infographicWATCH_VIDEOarrow_forward
Article · AngularREAD TIME: 19m

Angular 22最大の変化:OnPushがDefault Change Detection Strategyに

2026年6月3日にリリースされたAngular 22は、明示的な戦略を設定していないすべてのコンポーネントに対してChangeDetectionStrategy.OnPushをデフォルトとして適用します。これは以前の複数のバージョンにわたって導入されたシグナルベースのリアクティビティモデルを完成させる変更です。旧Defaultストラテジーはリストのポジションではなく動作を説明するChangeDetectionStrategy.Eagerに改名されました。ng updateを実行すると、既存のコンポーネントに自動的にEagerタグが追加されてアップグレード前の動作が維持されますが、node_modules内のコンパイル済みサードパーティライブラリコードは書き換えられません。RxJSサブスクリプション内でプレーンフィールドに書き込むライブラリコンポーネントは、アップグレード後にテンプレートバインディングの更新が静かに止まる可能性があります。推奨される修正方法はtoSignal()を介してオブザーバブルをシグナルにブリッジすることです。今回のリリースではResource API(resourcerxResourcehttpResource)が安定版に昇格し、実験的なdebounced()ヘルパーが追加され、ツールチェーンの最低要件がTypeScript 6およびNode 22+に引き上げられ、strictTemplatesのデフォルトがtrueに変更され、HttpClientがFetchバックエンドに切り替わります。

READ_FULL_LOGarrow_forward
Article · ReactREAD TIME: 21m

ReactでuseCallbackとuseMemoの使いすぎを避ける

ReactコードベースでuseCallbackとuseMemoを反射的に適用するケースが多いですが、各呼び出しはキャッシュされた値と依存配列のためのメモリを割り当て、関数生成や50件のソートといった軽い処理ではオーバーヘッドの方が大きくなります。このガイドでは、SearchPageコンポーネントがすべての状態、フェッチ、コールバックを管理するNext.js検索ページを例に、実際に必要なコンポーネントにロジックを移動するリファクタリングを段階的に解説します。ProductTableは自身のuseQueryとローカルソート状態を管理し、Filterコンポーネントはドロワー状態とcountries/colors/modesのフェッチ、activeFilterCountを統合管理します。Searchはデバウンスrefを内部化し、FilterChipsは独自にpriceLabelを計算します。これにより正確性を維持しながら、ほとんどのメモ化が不要になります。また、依存配列へのプリミティブ値の使用、コンポーネント外部でのオブジェクト定義、useMemoの代わりにuseStateを活用して不安定なオブジェクト参照による無限レンダーループを修正する方法も解説しています。

READ_FULL_LOGarrow_forward
Article · ツールREAD TIME: 5m

TanStack React向けStorybook:Router・Start・QueryをFirst-class Support

StorybookがTanStackコアチームと協力して、TanStack Router、Start、Queryへのネイティブ統合を提供する専用フレームワークパッケージ@storybook/tanstack-reactをリリースしました。すべてのストーリーはインメモリヒストリを使用するRouterProviderに自動でラップされ、ルートパラメーターと検索パラメーターはコンパイル時にルートの宣言済みスキーマに対して型チェックが行われます。createServerFn()で作成されたTanStack Startのサーバー関数は自動的に通常のモック関数にスタブ化され、実際のサーバー、データベース、認証レイヤーを起動せずに各ストーリーで成功、ローディング、空状態、エラー状態を設定できます。共有QueryClientデコレーターパターンによりストーリーごとのキャッシュシーディングが可能です。@tanstack/react-startのサーバー専用インポートはビルド時にViteプラグインを介してブラウザ安全なモックにリダイレクトされます。React 18以上とVite 7以上が必要で、automigrate CLIコマンドで既存の@storybook/react-viteプロジェクトに追加できます。

READ_FULL_LOGarrow_forward
Article · フレームワークREAD TIME: 10m

WaspでFull-stack LogicをTypeScript Specとして記述可能に

バッテリー同梱のフルスタックJS/TSフレームワークWaspが、独自DSLコンパイラをTypeScriptネイティブのスペックレイヤーに置き換えました。開発者は@wasp.sh/specからインポートしたpageroutequeryactionjobなどのスペックコンストラクターを使って*.wasp.tsファイルを作成し、単一のexportされたappオブジェクトに組み立てます。with { type: ref }インポート属性により、スペックビルド時に評価せずにReactやNode.jsの実装ファイルを参照できます。スペックは純粋なTypeScriptなので、forループ、サードパーティライブラリ、ディスク読み込み、フィーチャー縦型構造をすべてサポートします。記事では、スペックコードだけで実装したファイルベースルーティングの例を紹介し、配布可能なインターフェース定義のフルスタック垂直スライスであるFull Stack Modules(FSM)のロードマップも公開しています。

READ_FULL_LOGarrow_forward
Article · ReactREAD TIME: 5m

Async Form向けReact 19 useActionStateを使いこなす

React 19useActionStateフックは、非同期フォーム処理における繰り返しのボイラープレート — ローディングフラグ、エラー状態、成功状態、try/catchブロック — をstatesubmitAction関数、isPendingブール値の3つの値からなる単一のAPIに統合します。アクション関数はpreviousStateFormDataオブジェクトを受け取り次の状態を返し、Reactが非同期遷移全体を調整します。このガイドでは、useActionStateが「use server」で宣言されたServer Actionsと直接連携して、カスタムAPIルートや手動fetchなしにクリーンなフルスタックワークフローを実現する方法を示します。useActionStateuseReducerを比較し、useReducerは同期的な有限状態ロジックに適しており、useActionStateはI/Oバウンドの非同期ワークフロー向けであることを説明します。useActionStateuseOptimisticを組み合わせることで、サーバー確認前の即時UI更新が可能です。アクションはReactのトランジションシステムを通じて実行されるため、長時間の処理中もUIはインタラクティブな状態を維持し、更新は中断可能です。

READ_FULL_LOGarrow_forward
summarizeDigest_Summary

第25週のJavaScriptニュースはセキュリティが中心となりました。Node.jsがすべてのアクティブLTSライン(22.x、24.x、26.x)にわたって11件のCVEを修正する緊急パッチをリリースしました。2つの深刻な脆弱性であるCVE-2026-48933(WebCrypto AES整数オーバーフロー)CVE-2026-48618(TLSワイルドカード深度認証バイパス)、そしてHTTP/2メモリ増大やERR_PROXY_TUNNELメッセージでのプロキシ認証情報漏洩に対する中程度の修正は、ランタイムレベルのセキュリティ管理が依然として欠かせないことを示しています。依存関係の更新にはOpenSSL 3.5.7llhttp 9.4.2nghttp2 1.69.0が含まれます。

フレームワーク面では、Angular 22が明示的な戦略を持たないすべてのコンポーネントにChangeDetectionStrategy.OnPushをデフォルトとして適用することでシグナルベースのリアクティビティへの移行を完了しました。旧DefaultストラテジーはEagerに改名されました。ng updateによるマイグレーションは既存の動作を維持しますが、RxJSサブスクリプション内でプレーンフィールドに書き込むコンパイル済みサードパーティライブラリは、toSignal()でブリッジしなければ静かにレンダリングが止まる可能性があります。一方Waspは独自DSLコンパイラを*.wasp.tsファイルと@wasp.sh/specコンストラクターを使うTypeScriptネイティブのスペックレイヤーに置き換え、forループ、サードパーティインポート、そして分離されたフルスタック契約のためのwith { type: ref }インポート属性をサポートするようになりました。

Reactのツール面では2つの注目すべき追加がありました。Storybookがゼロコンフィグでのintegrationを提供する@storybook/tanstack-reactをリリースし、ストーリーごとにcreateServerFn()のサーバー関数を自動スタブ化します。またReact 19useActionStateに関する詳細なガイドでは、このフックが非同期フォームのボイラープレートをServer Actionsと直接連携する3値のAPIに統合する方法が示されました。WebMCP標準は率直な評価を受けました。Chrome DevToolsがWebMCPパネルと宣言的HTMLアトリビュートAPIをサポートするようになりましたが、ブラウザのAIパネルがまだmodel contextオブジェクトを消費していないため、標準は半分しか機能していない状態です。

Key Takeaways
  • 直ちにNode.jsをアップグレードしてください。CVE-2026-48933(WebCrypto AESオーバーフロー)とCVE-2026-48618(TLSワイルドカードバイパス)がすべてのアクティブLTSラインに影響し、OpenSSLは3.5.7になりました。
  • Angular 22のOnPushデフォルト化により、RxJSサブスクリプション内でプレーンフィールドを変更するコンパイル済みサードパーティライブラリのコンポーネントが静かに壊れます。アップグレード前にtoSignal()でブリッジしてください。
  • Storybookの@storybook/tanstack-reactはTanStack Startのサーバー関数をストーリーごとに自動スタブ化し、コンポーネントテストで実際のサーバー、データベース、認証レイヤーが不要になります。