Commit Graph

54 Commits

Author SHA1 Message Date
Zoltan Kochan
56a59df674 perf: persist bundled manifest in store index to avoid reading package.json from CAFS (#10473)
close #10461
2026-02-17 12:03:08 +01:00
3w36zj6
bb8baa7cff fix(npm-resolver): request full metadata for optional dependencies (#10455)
close #9950

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2026-01-26 01:13:06 +01:00
Zoltan Kochan
40b107efa7 perf: migrate internal cache and index files to MessagePack serialization (#10500) 2026-01-23 01:31:09 +01:00
Trevor Burnham
88263a8be7 refactor: force re-fetch when resolution integrity changes (#10454)
* 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>
2026-01-20 01:57:16 +01:00
Vedant Madane
29a3151b60 feat: show available workspace versions on mismatch (#10466) 2026-01-16 17:47:30 +01:00
Zoltan Kochan
da112f7cb2 revert: "perf: use v8 serialize/deserialize instead of JSON (#9971)" (#10420)
close #10409
2026-01-13 15:16:33 +01:00
Zoltan Kochan
0bcbaf9994 refactor: move out skip resolution logic from package requester (#10439) 2026-01-12 13:08:50 +01:00
Zoltan Kochan
c5d4d81f56 refactor: rename FilesIndex to FilesMap (#10427) 2026-01-08 18:17:57 +01:00
Zoltan Kochan
9aba854cbc test(package-requester): fix 2026-01-08 15:29:17 +01:00
Zoltan Kochan
d71174a4fa perf: calculate the package file maps in the workers (#10422) 2026-01-08 14:53:47 +01:00
Brandon Cheng
2b81a4f09d feat: improve filtered install performance with an optimistic lookup of package metadata from store (#10408) 2026-01-08 00:36:00 +01:00
Zoltan Kochan
0048667db4 refactor: use Maps instead of Records (#10312) 2025-12-15 11:48:19 +01:00
Oren
98a0410aa1 fix(tarball-resolver): add integrity hash to HTTP tarball dependencies (#10287)
* 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
2025-12-08 23:38:27 +01:00
Zoltan Kochan
9b344c8982 perf: use v8 serialize/deserialize instead of JSON (#9971)
close #9965
2025-11-06 01:01:06 +01:00
Zoltan Kochan
cf9f14aa9e fix: update tempy 2025-08-28 14:00:51 +02:00
Zoltan Kochan
3df6702bcb fix: update load-json-file, write-json-file, write-pkg 2025-08-28 11:37:38 +02:00
Zoltan Kochan
491a84fb26 feat: use ESM instead of commonjs (#9870) 2025-08-25 10:02:00 +02:00
Zoltan Kochan
27cbc09206 style: fix jest-related linting issues (#9894) 2025-08-22 21:56:49 +02:00
Zoltan Kochan
facd7656e8 refactor: always use extensions in relative imports (#9878) 2025-08-19 15:25:11 +02:00
Zoltan Kochan
1a07b8fc7c feat: install Node.js runtime as a dependency (#9755) 2025-07-19 15:11:40 +02:00
Khải
6627b95cf8 test: correct some assertions (#9494) 2025-05-06 22:14:20 +02:00
Zoltan Kochan
8a9f3a4835 refactor: rename pref to bare specifier (#9445) 2025-04-20 22:58:08 +02:00
Khải
3b0b740e87 refactor: use toMatchObject (#9431) 2025-04-18 18:00:18 +02:00
Zoltan Kochan
5b73df1eb1 refactor: resolvers should calculate the specifiers that are saved into package.json (#9426)
* refactor: resolvers should return specifier templates

* refactor: updating workspace protocol specs in package.json

* refactor: move workspace selector calculation logic to npm-resolver

* refactor: move workspace selector calculation logic to npm-resolver

* refactor: calculating range in npm-resolver

* refactor: rename normalizedPref and specifierTemplate to specifier

* refactor: specifiers creation

* refactor: npm-resolver

* refactor: remove which-version-is-pinned package

* refactor: which version is pinned

* docs: add changesets

* refactor: implement suggestions

* refactor: revert regex usage
2025-04-18 17:48:03 +02:00
Khải
72cff38486 refactor: pass whole registries to the resolver (#9375) 2025-04-04 01:20:16 +02:00
Fotis Papadogeorgopoulos
dde650b96f fix: ensure that recursive pnpm update --latest <pkg> updates only the specified package (#8933)
* 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>
2025-01-07 02:08:26 +01:00
Zoltan Kochan
7ec017e13f chore: move all tarball files out from Git LFS to a package dependency (#8885) 2024-12-18 03:06:51 +01:00
Brandon Cheng
5fea44486e chore: use Git LFS for pnpm development (#8509)
* 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
2024-10-14 08:49:30 +02:00
Khải
9b4f73caaf chore(scripts): typecheck-only (#8395)
* chore(scripts): typecheck-only

* feat: change all configuration

* feat: include pnpm/ and pnpm/test/

* chore(deps): remove unused dependency

* refactor(typescript-only): use find-packages

* refactor(typescript-only): refactor paths

* fix: typescript-only

* fix: update compile-only

* fix: compile pnpm

* fix: windows

* fix: windows

* chore: meta-updater

* refactor(tsconfig): remove explicit composite

* fix: path in windows

* feat: don't depend on cwd

---------

Co-authored-by: Zoltan Kochan <z@kochan.io>
2024-08-11 08:26:01 +02:00
Brandon Cheng
c7e1b6fae8 chore: configure TypeScript project references for tests (#8128)
* 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
2024-05-31 12:48:13 +02:00
Zoltan Kochan
45f4262f03 refactor: create a separate type for NodeId (#8092) 2024-05-17 11:23:52 +02:00
Zoltan Kochan
9719a42d0e feat: configurable max length of directories inside node_modules/.pnpm (#7994)
close #7355
2024-04-28 11:07:29 +02:00
Khải
984b976672 refactor: replace deprecated jest methods (#7840) 2024-03-29 00:03:58 +01:00
Zoltan Kochan
21878e7ae4 feat(lockfile)!: change the keys format (#7752) 2024-03-17 23:01:39 +01:00
Zoltan Kochan
053fc12f5a fix: don't fetch tarballs when lockfile-only install is run (#7715)
close #1328
2024-03-14 02:41:10 +01:00
Zoltan Kochan
53594a3787 feat!: package ID should be an exact version spec (#7748) 2024-03-10 14:46:25 +01:00
Zoltan Kochan
0e6b757cf5 feat!: remove requiresBuild from the lockfile (#7710)
close #7707
2024-02-27 11:50:43 +01:00
Zoltan Kochan
a5a3b995c1 test: use sync fs operations in tests (#7664) 2024-02-16 19:43:04 +01:00
Zoltan Kochan
cdd83654dd feat!: don't include registry URL in package ID (#7476) 2024-01-08 11:57:44 +01:00
Zoltan Kochan
d381a6001c feat!: use dependency path format from lockfile v6 (#7470)
Drop lockfile v5 support.
2024-01-08 11:57:44 +01:00
Steven Petryk
4c2450208d fix(lockfile): remove registry from tarball resolutions (#7262)
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>
2023-10-31 23:57:17 +02:00
Zoltan Kochan
733d612ad1 test: check spelling with cspell (#7229) 2023-10-20 15:58:27 +03:00
Zoltan Kochan
9caa33d535 feat: new option for disabling local directory dependencies relinking (#7083)
Removed `disableRelinkFromStore` and `relinkLocalDirDeps`. Replaced them with `disableRelinkLocalDirDeps`.
2023-09-13 12:23:03 +03:00
Zoltan Kochan
494f875449 refactor: package requester (#7036)
ref https://github.com/pnpm/pnpm/issues/6808
2023-09-04 00:55:27 +03:00
Zoltan Kochan
69430e13ae perf: verify package integrity with a worker (#7022) 2023-09-02 19:34:19 +03:00
Zoltan Kochan
4c959b7122 test: do not finish the workers after each test run 2023-08-25 18:13:41 +03:00
Zoltan Kochan
083bbf5907 perf: extract packages in a worker pool (#6850) 2023-08-14 02:07:39 +03:00
Zoltan Kochan
5ce333519d refactor: rename cafs to store.cafs 2023-07-19 01:53:42 +03:00
Zoltan Kochan
ee61ca4cb7 style: update eslint (#6236) 2023-03-18 14:57:29 +02:00
Zoltan Kochan
583e3954be fix: remove suppressImplicitAnyIndexErrors from typescript settings (#5991) 2023-01-28 18:19:26 +02:00