gt-sanity@4.0.0
概要
gt-sanity v4 は Sanity 6 Studio 向けです。Sanity は 6.9.2 で @sanity/ui 3 から @sanity/ui 4 に移行しました。この変更を含む Studio パッケージはランタイムシングルトンであるため、プラグインは独自のコピーをバンドルするのではなく、Studio から解決するようになりました。
Sanity 6.0〜6.8 の Studio は引き続き @sanity/ui 3 世代を使用しているため、gt-sanity 3.1.x を引き続き使用してください。まず Sanity を 6.9.2 以降にアップグレードしてから、v4 に移行してください。
v4 では、プラグインの API や保存済みコンテンツに変更はありません。Studio が Sanity 6.9.2 以降であれば、アップグレードはインストールだけで完了します。
破壊的変更
Sanity 6.9.2 と @sanity/ui 4 が必要
sanity のピア依存バージョン範囲は ^6.9.2 になりました。以前は >=5.0.0 で、プラグインの依存関係が Sanity 5 世代に固定されているにもかかわらず、Sanity 6 も許容していました。インストール時に警告なく正常に解決されるため、明確な兆候がないまま Studio ランタイムが重複する可能性がありました。
必要なのは任意の Sanity 6 ではなく、Sanity 6.9.2 です。@sanity/ui 4 は 6.9.2 で導入されたため、6.0 から 6.8 の Studio では引き続き @sanity/ui 3 世代が使用されています。まず Sanity をアップグレードしてから、gt-sanity 4 に移行してください。
Studio パッケージは peer dependencies になりました
@sanity/ui、@sanity/icons、@sanity/schema、@sanity/mutator は通常の dependencies でしたが、現在はホスト Studio から解決される peer dependencies です。異なる世代の Sanity と併せてインストールすると、2 つ目のコピーがネストされ、スキーマレジストリや styled-components のテーマコンテキストが重複していました。Sanity 6.9.2 以降の Studio にはすでにこの 4 つがすべて含まれているため、新たにインストールする必要はありません。
@sanity/document-internationalization と sanity-plugin-internationalized-array の最低バージョンは、それぞれ ^6.2.30 と ^5.1.27 に引き上げられました。以前の最低バージョンでは、Sanity 5 のみをサポートするリリースに解決される可能性があり、ランタイムが重複する別の原因となっていました。未使用の @sanity/util dependency は削除されました。
ESM のみ
@sanity/ui 4 に合わせて、CommonJS ビルドおよび require エクスポート条件を削除しました。プラグインは ESM の import 構文でインポートしてください。
Node.js 22.12 以降
最小バージョンを 18 から引き上げ、sanity および @sanity/ui 4 に合わせています。
Sanity 5 を継続して使用する
gt-sanity 3.1.x は、Sanity 5 Studio および Sanity 6.0~6.8 で引き続きサポートされる系統です。非推奨ではないため、Studio を移行する準備ができていない場合は、このバージョンに固定することも有効な選択肢です。
npm install gt-sanity@^3.1v3 の機能セットは変更されません。Sanity を 6.9.2 以降にアップグレードすれば、v4 への移行にコードやコンテンツの変更は必要ありません。
修正
アップグレードに合わせて、いくつかのバグも修正しました。
- ソースロケールのラベルが変更された場合 (例:
enからen-US) 、翻訳を公開で翻訳グループ全体が失われていました。公開処理では言語ラベルでtranslation.metadata内のソースエントリを識別していたため、変更前に作成されたメタデータドキュメントは一致せず、エラーなくグループがスキップされていました。現在は、参照先のドキュメントに基づいてソースエントリと翻訳エントリを区別します。 - すべて翻訳とすべてインポートで進行状況が表示されるようになりました。以前は、それぞれキューに追加された作業ではなく自身のリクエストだけを追跡していたため、実行中のrunがあってもアイドル状態に見えていました。
- **
gtStructureItems**でSanity APIバージョンを固定し、Sanityが将来的にエラーになると予告していた非推奨警告を解消しました。