# Takumi Guard を Yarn v1 で利用する際の挙動の改善

Yarn クライアント利用時に、Takumi Guard を迂回した通信が発生しにくいよう、Yarn クライアントに対する挙動を改善しました。この変更は透過的ですが、Yarn v1 ユーザー・新規パッケージの追加シナリオで**のみ**、ロックファイル（`yarn.lock`）にTakumi Guard のレジストリ URL が記録されるようになります。

## 変更内容

Yarn クライアントのみを対象に、ロックファイル内に対するメタデータ書き換えの挙動を変更しました。具体的には、メタデータ配信時に、tarball dist URLs を Takumi Guard レジストリの URL に書き換えるように変更されました。

## 変更背景

Yarn v1 は tarball dist URLs を lockfile 内に含める挙動を取り、Yarn v2+ クライアントは、レジストリから得られるパッケージメタデータファイル内の tarball dist URLs とレジストリURLに乖離がある場合に lockfile 内に `__archiveUrl` フィールドを追加します。この挙動により、yarn 実行時にロックファイルのみが参照されるシナリオで、yarn クライアントが Takumi Guard を迂回する挙動をとる場合がございます。

## 変更の影響範囲

### npm・pnpm・Bun 等への影響

影響はありません。

### Yarn v1 への影響: 新規パッケージの追加・更新時に有

`yarn.lock` のエントリに、従来のアップストリームレジストリ URL ではなく Takumi Guard のレジストリ URL が記録されるようになります。 これは他パッケージマネージャの利用時には起こらない挙動ですが、Yarn v1 においてのみ発生します。これはロックファイル経由の依存解決シナリオで、安定してブロック対象パッケージのインストールを防止するために必要な変更でございますので、ご理解いただけますと幸いです。

### Yarn v2–v4（Berry）への影響: 無

既存の `yarn.lock` 内の `__archiveUrl` フィールドが、次回のパッケージ更新時に削除されるようになります。この点以外には、既知の影響はありません。
