Takumi Guard を npm v11.15.0 以降で利用する際の挙動の改善
npm v11.15.0 以降のクライアントでも Takumi Guard を引き続き利用できるよう、npm クライアントに対するレジストリの挙動を改善しました。この変更により、npm v11.15.0 以 降をご利用の場合、ロックファイル(package-lock.json)に Takumi Guard のレジストリ URL が記録されるようになります。
変更背景
npm v11.15.0 では、サプライチェーン保護機構である --allow-remote チェックの強制が導入されました。このチェックでは、設定されたレジストリと異なるホストを指す tarball ダウンロード URL を持つ依存パッケージは「remote」として分類され、推移的依存パッケージのダウンロードが拒否されます。
従来の Takumi Guard は、npm クライアントに対してアップストリーム(registry.npmjs.org)の tarball URL をそのまま配信していました。新しいチェックの下では、設定されたレジストリ(npm.flatt.tech)と tarball のホストが一致しないため、npm v11.15.0 以降では Takumi Guard 経由のインストールが EALLOWREMOTE エラーで失敗する場合がありました。
今回の変更により、npm v11.15.0 以降のクライアントに対しては tarball URL を Takumi Guard 自身のホストに書き換えて配信するようになり、正しく「registry」として分類されるようになります。今後の npm のリリースではこのチェックがさらに強化される予定であり(tarball URL がレジストリのパス配下にあることの検証など)、現在および将来の npm バージョンとの互換性を保つために必要な変更となります。
