refactor buildResolveInfo into a lazy class (#4530)
<img width="840" height="142" alt="image"
src="https://github.com/user-attachments/assets/b55da6ae-d50b-40b6-b454-dc949ec4faf0"
/>
this is a breaking change only because `buildResolveInfo()` is
technically accessible via deep import