Fork me on GitHub

2020-03-31のJS: TypeScript 3.9 Beta、Safari 13.1、CS Web Securityコース

Edit on GitHub 編集履歴を見る

JSer.info #481 - TypeScript 3.9 Betaがリリースされました。

Promise.allの型改善、awaited typeの追加、ビルドパフォーマンスの改善などが行われています。
また// @ts-ignoreのように型チェックを無視するのではなく、Type Errorとなることを期待する// @ts-expect-errorコメントディレクティブの追加が行われています。

その他には、classのGetter/Setterをトランスパイルした際にenumrable: trueとなっているのを、ECMAScript仕様に合わせてenumerable: falseに変更されています。


iOS13.4/iPadOS13.4/macOSでそれぞれSafari 13.1がリリースされました。

Safari 13.1ではNullish coalescing operator(??)やString.prototype.replaceAllがサポートされています。
また、Web Animations、Async Clipboard API、Resize Observer、Picture-in-Picture APIなどのAPIも追加されています。

その他には、新しいIntelligent Tracking Prevention(ITP)の仕組みが導入されています。

過去のITPでは条件に基づくサードパーティクッキーのブロックでしたが、ITPの挙動を利用したトラッキングも可能であったため、
Safari 13.1からサードパーティクッキーを完全にブロックする仕組みに変更されています。

また、document.cookie、LocalStorage、Service Workerなどスクリプトから書き込めるストレージに7日間の上限が追加されました。
スクリプトからストレージに書き込み、そのサイトでユーザー操作がなくなってから7日間たつと、そのサイトのストレージを削除する仕組みとなっています。
この7-Day Capの制限もすべてのサイトに適用されますが、いくつかの例外があるようです。

  • ホーム画面に追加されたウェブアプリケーションはこの制限がない
  • WKWebViewなどのWebViewではこの制限がない
  • Safariを起動していない日は日付をカウントしない

参考: iOS 13.4 and Safari 13.1 persistent storage · Issue #943 · localForage/localForage


スタンフォード大学のウェブセキュリティコースの動画とスライドなど資料が公開されています。

Ferossによるウェブセキュリティに関するコースで、ブラウザ/サーバ/ネットワークなどのセキュリティに関する講義となっています。
幅広くウェブのセキュリティについて扱っているので興味がある人は見てみるとよさそうです。


ヘッドライン


Release v1.3.0 · reduxjs/redux-toolkit

github.com/reduxjs/redux-toolkit/releases/tag/v1.3.0

redux JavaScript library ReleaseNote

Redux Toolkit 1.3.0リリース。
ステートの正規化を管理を手助けするcreateEntityAdapter、非同期処理のパターンを提供するcreateAsyncThunkの追加。
Storeのmutationを検知してエラー通知する仕組みの追加など


Chrome Releases: Chrome and Chrome OS release updates

chromereleases.googleblog.com/2020/03/chrome-and-chrome-os-release-updates.html

Chrome news

延期していたChromeのリリーススケジュールについて。Chrome 82はキャンセルされ83に統合される予定。

  • Chrome 81: 2020-04-07
  • Chrome 82: キャンセル
  • Chrome 83: 2020-05-19

Node v13.12.0 (Current) | Node.js

nodejs.org/en/blog/release/v13.12.0/

node.js rlee

Node.js 13.12.0リリース。
npm 6.14.4へのアップデート、Object.prototype.__proto__の書き込みを無効化する--disable-protoオプションの追加など


Announcing TypeScript 3.9 Beta | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-3-9-beta/

TypeScript ReleaseNote

TypeScritp 3.9βリリース。
Promise.allの型改善、awaited typeの追加、ビルドパフォーマンスの改善、Type Errorとなることを期待する// @ts-expect-errorコメントの追加など。
また、ECMAScript仕様にあわせてGetter/Setterをトランスパイルするとenumerableだったのをnon-enumerableに変更するなど


Version 9.1 of Angular Now Available — TypeScript 3.8, faster builds, and more

blog.angular.io/version-9-1-of-angular-now-available-typescript-3-8-faster-builds-and-more-eb292f989428

Angular ReleaseNote

Angular 9.1リリース。
TypeScript 3.8サポート、ビルドパフォーマンスの改善、ng e2egrepオプションをサポート、rtlのサポートなど


アーティクル


SecretlintでAPIトークンや秘密鍵などのコミットを防止する | Web Scratch

efcl.info/2020/03/24/secretlint/

security node.js Tools Docker article

ファイル内にAWSやGCPなどのCredentialsを含んでいないかチェックできるLintツール。
DockerやNode.jsから利用できる。プロジェクトや個人環境にpre-commit hookで組み込んだり、CIでうっかり秘匿情報が入ってないかをチェックできる。
ルールはNode.jsで自作して追加できる。


webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/

safari security privacy article

iOS 13.4、Safari 13.1のITPについて。
3rd-party cookieは基本的にブロック、LocalStorageを含むストレージは最後のインタラクションから7日後に削除され、document.referrerはoriginのみとなった。
ストレージ削除のカウントのルールについてはホームに追加したアプリやSafariを起動していない日はカウントしないなどの例外がある


🐛よくハマったFlexboxのバグまとめ|たかもそ|note

note.com/takamoso/n/n32c4e6904cf7

CSS article

CSS Flexboxのブラウザの挙動の違いや仕様についてなど


What’s new in react-query v1.0 - LogRocket Blog

blog.logrocket.com/whats-new-in-react-query-v1-0/

JavaScript React library article

React Hooksで非同期処理を扱うreact-query 1.0の変更点について


UI Fabric is evolving into Fluent UI - Microsoft 365 Developer Blog

developer.microsoft.com/en-us/office/blogs/ui-fabric-is-evolving-into-fluent-ui/

JavaScript React library article

MSのUIフレームワークであるUI FabricがFluent UIにリネームした。
パッケージネームも@fluentuiのscopeで公開されるが、互換性のために@uifabricも公開され続ける。
また、今後のロードマップについて


HTML DOM - Common tasks of managing HTML DOM with vanilla JavaScript

htmldom.dev/

JavaScript DOM document

ライブラリを使わずにDOM API使ってできることを逆引きリファレンス的に紹介しているサイト


スライド、動画関係


CS253 - Web Security

web.stanford.edu/class/cs253/

browser web server security slide video

スタンフォード大学のWeb Securityコースのスライドと動画。
ブラウザからサーバまで攻撃/防御視点でのセキュリティについて学ぶ


サイト、サービス、ドキュメント


Chrome DevTools // slidr.io

slidr.io/bmeurer/chrome-devtools#1

Chrome debug ESLint

Chrome DevToolsについてのスライド。
DevToolsのアーキテクチャ、機能の紹介など


ソフトウェア、ツール、ライブラリ関係


chrvadala/node-ble: Bluetooth Low Energy (BLE) library written with pure Node.js (no bindings) - baked by Bluez via DBus

github.com/chrvadala/node-ble

node.js Bluetooth library

Pure Node.jsなBLEライブラリ


kriasoft/node-sqlite at v4

github.com/kriasoft/node-sqlite/tree/v4

SQLite node.js library

Node.jsのSQLiteクライアントライブラリ


heremaps/harp.gl: harp.gl - web map rendering engine

github.com/heremaps/harp.gl

JavaScript WebGL library

three.jsを使った3Dマップレンダリングエンジンライブラリ


書籍関係


TypeScript Weekly

www.typescript-weekly.com/

TypeScript mail

TypeScriptについてのWeeklyメールマガジン


初心者からちゃんとしたプロになる JavaScript基礎入門 | 西畑 一馬, 須郷 晋也, 岡島 美咲, 扇 克至, 岩本 大樹 | 工学 | Kindleストア | Amazon

www.amazon.co.jp/dp/B0863LYNQQ/

JavaScript Vue book

2020年3月25日発売
JavaScriptとVueについての書籍


この記事へ修正リクエストをする
JSer.info Slackに参加する