JSer.info #611 - TypeScript 4.9 betaがリリースされました。
型キャストはせずに型の一致をチェックできるsatisfies
演算子の追加、in
演算子での型の絞り込みの改善、== NaN
をコンパイルエラーに変更などが行われています。
satisfies
演算子については次の記事が詳しいです。
また、--watch
でのファイル監視のデフォルトをuseFsEvents
に変更、exports
フィールドのtypeVersions
の優先度を修正なども含まれています。
Cloudflare Workersのruntimeであるworkerdがオープンソースとして公開されました。
これに合わせて、Miniflare 3.0.0がαリリースされ、JSを使って実装していた部分もworkerdを使うものになっています。
これによってローカルでの開発時と本番の動作が異なるケースが少なくなっていきそうです。
HTTP Archiveのデータを元にしたウェブのステータスをまとめたレポートであるWeb Almanacの2022年版が公開されました。
HTML/CSS/JSなどやアクセシビリティ/セキュリティ/サードパーティなど幅広いデータについて書かれています。
2021年版は日本語にも翻訳されており、電子書籍として読むこともできます。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
September 22nd 2022 Security Releases | Node.js
nodejs.org/en/blog/vulnerability/september-2022-security-releases/
Node.jsのセキュリティ修正としてv14.20.1 (LTS)、v16.17.1 (LTS)、v18.9.1 (Current)がリリースされた。
--inspect
におけるDNS rebinding、HTTP Request Smuggling、WebCryptoのWeak randomnessの問題の修正など
Announcing TypeScript 4.9 Beta - TypeScript
devblogs.microsoft.com/typescript/announcing-typescript-4-9-beta/
TypeScript 4.9 betaリリース。
型キャストはせずに型の一致をチェックできるsatisfies
演算子の追加、in
演算子での型の絞り込みの改善、== NaN
をコンパイルエラーに変更など。
--watch
でのファイル監視のデフォルトをuseFsEvents
に変更、exports
フィールドのtypeVersions
の優先度を修正など
Introducing workerd: the Open Source Workers runtime
blog.cloudflare.com/workerd-open-source-workers-runtime/
Cloudflare WorkersのJavaScript/WebAssembly runtimeであるworkerdが公開された。
MiniflareでJSを使って実装していた部分もworkerdを使うものが公開されている。
workerd自体はSandboxではないが、SSRF防止するためのBindingとFetchの仕組みなども持っている。
Release Add support for engines.node and Volta · actions/setup-node
github.com/actions/setup-node/releases/tag/v3.5.0
GitHub Actionsのsetup-node 3.5.0リリース。
package.json
のengines.node
とVoltaで指定したNode.jsのバージョンをサポート
Release Notes for Safari Technology Preview 154 | WebKit
webkit.org/blog/13207/release-notes-for-safari-technology-preview-154/
Safari Technology Preview 154リリース。
CSS :dir
の有効化、InputEvent.isComposing
のサポート、Scroll To Text Fragmentの有効化など
Release v0.5.0 · facebook/lexical
github.com/facebook/lexical/releases/tag/v0.5.0
lexical v0.5.0リリース。
NotionライクなDraggable Blocksのサポート、LexicalTablePluginの安定化、Shadow Rootの対応など。
一部のAPIには破壊的な変更も含まれている
アーティクル
Next.js Layouts RFC in 5 minutes – Vercel
vercel.com/blog/next-js-layouts-rfc-in-5-minutes
Next.jsのLayouts RFCについての解説記事
The Anatomy of an Isolate Cloud
deno.com/blog/anatomy-isolate-cloud
Deno DeployのIsolationのアプローチについて。
V8のプロセスが独立していて、Runnerがリクエストに対して起動中のプロセス or プロセスを起動して実行する。
基本的にはV8 Sandboxに依存していて、fsやnetの制限を設けている
Introducing Ezno
kaleidawave.github.io/posts/introducing-ezno/
Rustで実装しているTypeScript互換の型チェッカーとコンパイラであるEnzoについて。
スライド、動画関係
Zod Tutorial | Total TypeScript
www.totaltypescript.com/tutorials/zod
TypeScriptを使ったスキーマバリデーションライブラリのzodのチュートリアル動画。
それぞれ練習問題を見ながら進めていくないようになっている
SPAセキュリティ超入門 | ドクセル
www.docswell.com/s/ockeghem/K2PPNK-phpconf2022
SPAにおいてよく起きるセキュリティの問題についてのスライド。
クライアントサイドでのみバリデーションしている場合の認可制御不備、任意のHTMLを描画してしまうことによるXSS、CSRFについてなど
ソフトウェア、ツール、ライブラリ関係
gioboa/vite-module-federation: Module Federation with Vite now is possible
github.com/gioboa/vite-module-federation
Module FederationをするVite Plugin
Japa - A simple yet powerful testing framework for Node.js
Node.js向けのテストフレームワーク。
node
コマンドでテストが実行できる。
基本的なテスト機能に加え、パラメタライズドテスト、テストへのタグ付けとフィルタリングなどをもつ。
またプラグインの仕組みをサポートしており、失敗したテストのみを再実行やTypeScriptの型チェックのテストなどをプラグインでサポートしている。
書籍関係
The 2022 Web Almanac
almanac.httparchive.org/en/2022/
Web Almanacの2022年版が公開された。
HTTP Archiveのデータを元にしたウェブのステータスをまとめたレポート。
HTML/CSS/JSなどやアクセシビリティ/セキュリティ/サードパーティなど幅広いデータを扱ってる
Shell scripting with Node.js
exploringjs.com/nodejs-shell-scripting/
Node.jsでshell scriptingを扱う書籍