* fix: force re-fetch when resolution integrity changes
When a resolver returns a resolution with a different integrity than
the current package's resolution, automatically force re-fetching the
package. This allows custom resolvers to trigger re-fetches by simply
returning the updated integrity, without needing to explicitly set
a forceFetch flag.
Closes#10451
* refactor: remove forceFetch
* test: fix
---------
Co-authored-by: Zoltan Kochan <z@kochan.io>
* fix(tarball-resolver): add integrity hash to HTTP tarball dependencies
* Refactor to download tarball just once
* Fix tests
* fix: only calc hash when it is not passed in to the fetcher
* docs: update changesets
* test(pnpm): expand dedupePeers test to account for other dependencies in same package
Previously, this test only asserted that _other_ monorepo packages were unaffected,
but it did not check other dependencies of the _same_ monorepo package.
* fix: ensure that recursive update --latest only updates matched packages
* fix: move update check to resolveDependendency
* refactor: move updateToLatest conditional up in resolveDependency
* refactor: make update types mutually exclusive in resolveDependencies
* refactor: rename 'in-range' update type to 'compatible'
Co-authored-by: Zoltan Kochan <z@kochan.io>
* refactor: use update union type in package-requester and store-controller-type
* docs: add changesets
---------
Co-authored-by: Zoltan Kochan <z@kochan.io>
* chore: set up git-lfs hooks
* ci: checkout lfs files on CI
According to https://github.com/actions/checkout, checkout out LFS files
defaults to false.
* chore: track .tgz files in Git LFS
* refactor: store link values before converting to references
* fix: use .sort() without localeCompare
https://github.com/pnpm/pnpm/pull/8128#discussion_r1614031566
> Nit, but you probably just want to call sort without a comparison
> function; these are already strings and locale compare is not a good
> comparison for anything but human readable strings since it will
> differ on different people's machines based on their language setting.
> I've hit this too many times before for code gen.
* feat: configure meta-updater to write test/tsconfig.json files
* fix: relative imports for __typings__
* chore: `pnpm run meta-updater`
* fix: explicitly use test/tsconfig.json for ts-jest
In some cases, pnpm would add a `registry` field to tarball resolutions
in pnpm-lock.yaml. This field is no longer used, so it was removed,
which should make lockfiles smaller and their generation more
deterministic.
---------
Co-authored-by: Zoltan Kochan <z@kochan.io>