|
| 1 | +--- |
| 2 | +title: "2026-04-06のJS: TypeScript 6.0、ES2026 RC、axiosサプライチェーン攻撃" |
| 3 | +author: "azu" |
| 4 | +layout: post |
| 5 | +date: 2026-04-06T01:32:51.276Z |
| 6 | +category: JSer |
| 7 | +tags: |
| 8 | +- TypeScript |
| 9 | +- nodejs |
| 10 | +- security |
| 11 | +- Tools |
| 12 | +- React |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +JSer.info #768 - TypeScript 6.0がリリースされました。 |
| 17 | + |
| 18 | +- [Announcing TypeScript 6.0 - TypeScript](https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/) |
| 19 | + |
| 20 | +現在のJavaScriptコードベースによる最後のリリースで、Goで書き直されたTypeScript 7.0への移行を準備するリリースとなっています。`strict`がデフォルトで`true`に、`target`のデフォルトが`es2025`に、`module`のデフォルトが`esnext`に変更されています。`target: es5`や`--moduleResolution node`(node10)、`--outFile`などが非推奨となりエラーに変更されました。新しい機能として、`es2025`ターゲットの追加、Temporal APIの型定義、Map/WeakMapの`getOrInsert()`/`getOrInsertComputed()`メソッドの追加、TypeScript 7.0の型順序に合わせる`--stableTypeOrdering`フラグの追加などが含まれています。 |
| 21 | + |
| 22 | +--- |
| 23 | + |
| 24 | +ECMAScript 2026のRelease Candidateが公開されました。 |
| 25 | + |
| 26 | +- [Release ES2026 Candidate March 31st 2026 · tc39/ecma262](https://github.com/tc39/ecma262/releases/tag/es2026-candidate-2026-03-31) |
| 27 | + |
| 28 | +TC39によって2026年3月に承認され、2026年6月のEcma General Assemblyでの承認を経て正式リリースとなる予定です。ES2026には、`Array.fromAsync`、JSON.parse source text access、Iterator Sequencing、`Uint8Array`のBase64変換、`Math.sumPrecise`、`Error.isError`、Upsert(`Map.prototype.getOrInsert`)などが含まれる予定です。 |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +axiosのnpmパッケージに対するサプライチェーン攻撃が発生しました。 |
| 33 | + |
| 34 | +- [axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity](https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan) |
| 35 | +- [Attackers Are Hunting High-Impact Node.js Maintainers in a C...](https://socket.dev/blog/attackers-hunting-high-impact-nodejs-maintainers) |
| 36 | +- [The Hidden Blast Radius of the Axios Compromise - Socket](https://socket.dev/blog/hidden-blast-radius-of-the-axios-compromise) |
| 37 | + |
| 38 | +ソーシャルエンジニアリングによりメンテナーアカウントが乗っ取られ、悪意のある`axios@1.14.1`と`axios@0.30.4`が公開されました。これらのバージョンには`plain-crypto-js`というマルウェアが依存関係として追加されており、postinstallフックを通じてmacOS/Windows/Linux向けのRemote Access Trojan(RAT)をインストールする仕組みになっていました。 |
| 39 | + |
| 40 | +影響を受けたかどうかの確認方法は次のページにまとめられています。 |
| 41 | + |
| 42 | +- [Am I affected? - StepSecurity](https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan#am-i-affected) |
| 43 | + |
| 44 | +---- |
| 45 | + |
| 46 | +{% include inline-support.html %} |
| 47 | + |
| 48 | +---- |
| 49 | + |
| 50 | +<h1 class="site-genre">ヘッドライン</h1> |
| 51 | + |
| 52 | +---- |
| 53 | + |
| 54 | +## Announcing TypeScript 6.0 - TypeScript |
| 55 | +[devblogs.microsoft.com/typescript/announcing-typescript-6-0/](https://devblogs.microsoft.com/typescript/announcing-typescript-6-0/ "Announcing TypeScript 6.0 - TypeScript") |
| 56 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">ReleaseNote</span></p> |
| 57 | + |
| 58 | +TypeScript 6.0リリース。 |
| 59 | +現在のJavaScriptコードベースによる最後のリリースで、Goで書き直されたTypeScript 7.0への移行を準備するリリースとなる。 |
| 60 | +`strict`がデフォルトで`true`に、`target`のデフォルトが`es2025`に、`module`のデフォルトが`esnext`に変更。 |
| 61 | +`target: es5`、`--moduleResolution node`(node10)、`--outFile`、`--esModuleInterop false`などが非推奨となりエラーに変更。 |
| 62 | +`es2025`ターゲットの追加、Temporal APIの型定義の追加、Map/WeakMapの`getOrInsert()`/`getOrInsertComputed()`メソッドの追加。 |
| 63 | +Node.jsのSubpath Importsの`#/`のサポート、`--moduleResolution bundler`と`--module commonjs`の組み合わせをサポート。 |
| 64 | +TypeScript 7.0の型順序に合わせる`--stableTypeOrdering`フラグの追加など |
| 65 | + |
| 66 | + |
| 67 | +---- |
| 68 | + |
| 69 | +## WebKit Features for Safari 26.4 | WebKit |
| 70 | +[webkit.org/blog/17862/webkit-features-for-safari-26-4/](https://webkit.org/blog/17862/webkit-features-for-safari-26-4/ "WebKit Features for Safari 26.4 | WebKit") |
| 71 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">safari</span> <span class="jser-tag">browser</span> <span class="jser-tag">CSS</span> <span class="jser-tag">WebTransport</span> <span class="jser-tag">WebAuthentication</span> <span class="jser-tag">ReleaseNote</span></p> |
| 72 | + |
| 73 | +Safari 26.4リリース。 |
| 74 | +CSS Grid Lanesによるmasonry/ウォーターフォールスタイルのレイアウトのサポート、名前のみの`@container`クエリのサポート。 |
| 75 | +`font-size: math`と`math-depth`プロパティのサポート。 |
| 76 | +CSS Zoomの修正、Scroll-driven Animationsのパフォーマンス改善。 |
| 77 | +WebTransportのサポート、Keyboard Lock APIのサポート、ReadableByteStreamのサポート。 |
| 78 | +Scoped Custom Element Registriesの改善、`Iterator.concat()`のサポート。 |
| 79 | +`<img>`の`sizes`属性でのmath関数(`min()`/`max()`/`clamp()`)のサポート、SVGの`lighter`合成演算子のサポート。 |
| 80 | +WebAuthnのPRF拡張のサポートなど。 |
| 81 | + |
| 82 | + |
| 83 | +---- |
| 84 | + |
| 85 | +## Release v20.0.0 · raineorshine/npm-check-updates |
| 86 | +[github.com/raineorshine/npm-check-updates/releases/tag/v20.0.0](https://github.com/raineorshine/npm-check-updates/releases/tag/v20.0.0 "Release v20.0.0 · raineorshine/npm-check-updates") |
| 87 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p> |
| 88 | + |
| 89 | +npm-check-updates v20.0.0リリース。 |
| 90 | +npm/yarn/pnpmの設定にあるminimum release ageの設定を自動的に読み取り、cooldownオプションとして適用するようになった。 |
| 91 | + |
| 92 | + |
| 93 | +---- |
| 94 | + |
| 95 | +## Release ES2026 Candidate March 31st 2026 · tc39/ecma262 |
| 96 | +[github.com/tc39/ecma262/releases/tag/es2026-candidate-2026-03-31](https://github.com/tc39/ecma262/releases/tag/es2026-candidate-2026-03-31 "Release ES2026 Candidate March 31st 2026 · tc39/ecma262") |
| 97 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ECMAScript</span> <span class="jser-tag">spec</span> <span class="jser-tag">ReleaseNote</span></p> |
| 98 | + |
| 99 | +ECMAScript 2026のRelease Candidateが公開された。 |
| 100 | +TC39によって2026年3月に承認され、2026年6月のEcma GAでの承認を経て正式リリースとなる予定。 |
| 101 | + |
| 102 | + |
| 103 | +---- |
| 104 | + |
| 105 | +## Release v15.0.0 · sindresorhus/got |
| 106 | +[github.com/sindresorhus/got/releases/tag/v15.0.0](https://github.com/sindresorhus/got/releases/tag/v15.0.0 "Release v15.0.0 · sindresorhus/got") |
| 107 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">HTTP</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 108 | + |
| 109 | +Got v15.0.0リリース。 |
| 110 | +Node.js 22未満のサポートを削除、 |
| 111 | +`promise.cancel()`を削除しAbortControllerの`signal`オプションに移行、`isStream`オプションの削除。 |
| 112 | +`responseType: 'buffer'`が`Buffer`の代わりに`Uint8Array`を返すように変更。 |
| 113 | +ネイティブのFormData APIを利用するように変更、`strictContentLength`のデフォルトを`true`に変更。 |
| 114 | +RFC 9110に準拠し300/304レスポンスの自動リダイレクトを廃止など |
| 115 | + |
| 116 | + |
| 117 | +---- |
| 118 | + |
| 119 | +## Release 4.18.0 · lodash/lodash |
| 120 | +[github.com/lodash/lodash/releases/tag/4.18.0](https://github.com/lodash/lodash/releases/tag/4.18.0 "Release 4.18.0 · lodash/lodash") |
| 121 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">lodash</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">security</span> <span class="jser-tag">ReleaseNote</span></p> |
| 122 | + |
| 123 | +lodash 4.18.0リリース。 |
| 124 | +`_.unset`と`_.omit`のPrototype Pollutionの脆弱性を修正、`_.template`のコードインジェクションの修正。 |
| 125 | +`lodash.unset`や`lodash.template`などの個別パッケージが古いままだったのを修正して再公開。 |
| 126 | + |
| 127 | + |
| 128 | +---- |
| 129 | + |
| 130 | +## Node.js — Node.js 25.9.0 (Current) |
| 131 | +[nodejs.org/en/blog/release/v25.9.0](https://nodejs.org/en/blog/release/v25.9.0 "Node.js — Node.js 25.9.0 (Current)") |
| 132 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p> |
| 133 | + |
| 134 | +Node.js v25.9.0リリース。 |
| 135 | +テストランナーのモックモジュールAPIで`defaultExport`と`namedExports`オプションを`exports`オプションに統合。 |
| 136 | +`--max-heap-size`フラグの追加、Web CryptoでTurboSHAKEとKangarooTwelveアルゴリズムのサポート。 |
| 137 | +SEA(Single Executable Applications)でESMエントリポイントのコードキャッシュをサポート、実験的な`stream/iter`モジュールの追加。 |
| 138 | +`AsyncLocalStorage`に`using`スコープの追加、REPLでのカスタムエラーハンドリングのサポートなど。 |
| 139 | + |
| 140 | + |
| 141 | +---- |
| 142 | + |
| 143 | +## Release v5.0.0 · lerna-lite/lerna-lite |
| 144 | +[github.com/lerna-lite/lerna-lite/releases/tag/v5.0.0](https://github.com/lerna-lite/lerna-lite/releases/tag/v5.0.0 "Release v5.0.0 · lerna-lite/lerna-lite") |
| 145 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">monorepo</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p> |
| 146 | + |
| 147 | +lerna-lite v5.0.0リリース。 |
| 148 | +Node.js 20のサポート終了、Conventional Changelogのレガシー設定ファイル読み込みの削除、`--remove-package-fields`オプションの削除。 |
| 149 | +内部依存を自前の実装に置き換えることでインストールサイズを削減など |
| 150 | + |
| 151 | + |
| 152 | +---- |
| 153 | +<h1 class="site-genre">アーティクル</h1> |
| 154 | + |
| 155 | +---- |
| 156 | + |
| 157 | +## Storybook MCP for React |
| 158 | +[storybook.js.org/blog/storybook-mcp-for-react/](https://storybook.js.org/blog/storybook-mcp-for-react/ "Storybook MCP for React") |
| 159 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">storybook</span> <span class="jser-tag">MCP</span> <span class="jser-tag">React</span> <span class="jser-tag">article</span></p> |
| 160 | + |
| 161 | +Storybook MCPサーバについて。 |
| 162 | +AIエージェントに既存のUIコンポーネントのメタデータ(ストーリー、API、ドキュメント)を提供するMCPサーバ。 |
| 163 | +複数のStorybookを組み合わせて使うCompositionにも対応している。 |
| 164 | +MCP Appsに対応して、チャットのレスポンスに直接Storyを埋め込めるようになっている。 |
| 165 | + |
| 166 | + |
| 167 | +---- |
| 168 | + |
| 169 | +## Node.js — Security Bug Bounty Program Paused Due to Loss of Funding |
| 170 | +[nodejs.org/en/blog/announcements/discontinuing-security-bug-bounties](https://nodejs.org/en/blog/announcements/discontinuing-security-bug-bounties "Node.js — Security Bug Bounty Program Paused Due to Loss of Funding") |
| 171 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">security</span> <span class="jser-tag">article</span></p> |
| 172 | + |
| 173 | +Node.jsのセキュリティバグバウンティプログラムの一時停止について。 |
| 174 | +2016年からHackerOneのInternet Bug Bounty(IBB)プログラムを通じて運用されていたが、IBBプログラムの終了により資金が枯渇したため一時停止となった。 |
| 175 | +資金の80%を発見、20%を修正へ割り当てているが、AIなどによる発見の拡大によりバランスが変わった。 |
| 176 | +脆弱性の報告自体はHackerOneを通じて引き続き受け付けるが、報告者への金銭的な報酬はなくなる。専用の資金が確保できた場合にプログラムの再開を検討する予定 |
| 177 | + |
| 178 | + |
| 179 | +---- |
| 180 | + |
| 181 | +## Signals, the push-pull based algorithm — Willy Brauner |
| 182 | +[willybrauner.com/journal/signal-the-push-pull-based-algorithm](https://willybrauner.com/journal/signal-the-push-pull-based-algorithm "Signals, the push-pull based algorithm — Willy Brauner") |
| 183 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">article</span></p> |
| 184 | + |
| 185 | +Signalにおけるpush-pullベースのリアクティブアルゴリズムについての解説記事。 |
| 186 | +Signalの基本的な仕組みとして、値の変更時にサブスクライバーへ通知するPush型と、計算値を実際にアクセスされるまで遅延評価するPull型の組み合わせについて解説している。 |
| 187 | + |
| 188 | + |
| 189 | +---- |
| 190 | + |
| 191 | +## Core JavaScript and TypeScript Features Become Free in IntelliJ IDEA | The IntelliJ IDEA Blog |
| 192 | +[blog.jetbrains.com/idea/2026/03/js-ts-free-support/](https://blog.jetbrains.com/idea/2026/03/js-ts-free-support/ "Core JavaScript and TypeScript Features Become Free in IntelliJ IDEA | The IntelliJ IDEA Blog") |
| 193 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JetBrains</span> <span class="jser-tag">IDE</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">TypeScript</span></p> |
| 194 | + |
| 195 | +IntelliJ IDEA v2026.1で、JavaScript/TypeScript/HTML/CSSのコア機能が無料で利用可能に。 |
| 196 | +これまでUltimate版のみで提供されていたWeb開発向けの機能が、Community Editionでも利用できるようになった。 |
| 197 | +JS/TSのコード補完やリファクタリング、ESLint/Prettierの統合、Viteでのプロジェクト作成、npmスクリプトの実行、依存関係の脆弱性検出などが含まれる。 |
| 198 | + |
| 199 | + |
| 200 | +---- |
| 201 | + |
| 202 | +## axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity |
| 203 | +[www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan](https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan "axios Compromised on npm - Malicious Versions Drop Remote Access Trojan - StepSecurity") |
| 204 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">security</span> <span class="jser-tag">article</span></p> |
| 205 | + |
| 206 | +axiosのnpmパッケージに対するサプライチェーン攻撃について。 |
| 207 | +ソーシャルエンジニアリングによりメンテナーアカウントが乗っ取られ、悪意のある`axios@1.14.1`と`axios@0.30.4`が公開された。 |
| 208 | +これらのバージョンには`plain-crypto-js`というマルウェアが依存関係として追加されている。 |
| 209 | +postinstallフックを通じてmacOS/Windows/Linux向けのRemote Access Trojan(RAT)をインストールする仕組みになっていた。 |
| 210 | + |
| 211 | +- [Attackers Are Hunting High-Impact Node.js Maintainers in a C...](https://socket.dev/blog/attackers-hunting-high-impact-nodejs-maintainers "Attackers Are Hunting High-Impact Node.js Maintainers in a C...") |
| 212 | +- [The Hidden Blast Radius of the Axios Compromise - Socket](https://socket.dev/blog/hidden-blast-radius-of-the-axios-compromise "The Hidden Blast Radius of the Axios Compromise - Socket") |
| 213 | + |
| 214 | +---- |
| 215 | +<h1 class="site-genre">サイト、サービス、ドキュメント</h1> |
| 216 | + |
| 217 | +---- |
| 218 | + |
| 219 | +## Introducing EmDash — the spiritual successor to WordPress that solves plugin security |
| 220 | +[blog.cloudflare.com/emdash-wordpress/](https://blog.cloudflare.com/emdash-wordpress/ "Introducing EmDash — the spiritual successor to WordPress that solves plugin security") |
| 221 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">cloudflare</span> <span class="jser-tag">CMS</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">astro</span> <span class="jser-tag">security</span> <span class="jser-tag">OpenSource</span> <span class="jser-tag">wordpress</span></p> |
| 222 | + |
| 223 | +CloudflareによるサーバーレスCMS。 |
| 224 | +TypeScriptで書かれ、Astro 6.0をベースにしたオープンソース(MITライセンス)のCMS。 |
| 225 | +プラグインを独立したサンドボックス環境(Dynamic Workers)で実行し、プラグイン起因のセキュリティ問題を解決するアーキテクチャを採用している。 |
| 226 | +MCPやCLIによるAIエージェント連携、x402プロトコルによる決済統合などの機能も備えている。 |
| 227 | + |
| 228 | + |
| 229 | +---- |
| 230 | + |
| 231 | +## vercel-labs/emulate: Local API emulation for CI and no-network sandboxes |
| 232 | +[github.com/vercel-labs/emulate](https://github.com/vercel-labs/emulate "vercel-labs/emulate: Local API emulation for CI and no-network sandboxes") |
| 233 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">vercel</span> <span class="jser-tag">API</span> <span class="jser-tag">testing</span> <span class="jser-tag">CI</span> <span class="jser-tag">Tools</span> <span class="jser-tag">nodejs</span> <span class="jser-tag">server</span></p> |
| 234 | + |
| 235 | +Vercel/GitHub/Google/Slack/AWS(S3/SQS)などのAPIをローカルでエミュレートするツール。 |
| 236 | +外部APIのモックサーバとして利用できる。 |
| 237 | +各サービスはステートフルにデータを保持し、OAuth 2.0フローやWebhookにも対応している。 |
| 238 | + |
| 239 | + |
| 240 | +---- |
| 241 | +<h1 class="site-genre">ソフトウェア、ツール、ライブラリ関係</h1> |
| 242 | + |
| 243 | +---- |
| 244 | + |
| 245 | +## ArrowJS — The first UI framework for the agentic era |
| 246 | +[arrow-js.com/](https://arrow-js.com/ "ArrowJS — The first UI framework for the agentic era") |
| 247 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">WebAssembly</span> <span class="jser-tag">library</span></p> |
| 248 | + |
| 249 | +ビルドステップなしで動作する軽量なUIフレームワーク。`reactive`、`html`、`component`の3つの関数で構成される。 |
| 250 | +AI向けにWebAssemblyサンドボックス内でコンポーネントロジックを分離して実行する機能を持つ。 |
| 251 | + |
| 252 | + |
| 253 | +---- |
| 254 | +<h1 class="site-genre">書籍関係</h1> |
| 255 | + |
| 256 | +---- |
| 257 | + |
| 258 | +## React本格入門 | 技術評論社 |
| 259 | +[gihyo.jp/book/2026/978-4-297-15523-0](https://gihyo.jp/book/2026/978-4-297-15523-0 "React本格入門 | 技術評論社") |
| 260 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">book</span></p> |
| 261 | + |
| 262 | +2026年4月15日発売。 |
| 263 | +React 19をベースにした入門書。 |
| 264 | + |
| 265 | + |
| 266 | +---- |
0 commit comments