fix(deps): update all non-major dependencies - #84
renovate[bot] wants to merge 1 commit into
Conversation
612ce7b to
9ab60b6
Compare
01b64f6 to
e4a662b
Compare
195cdea to
642ba6a
Compare
0565bf3 to
46abfe8
Compare
7afb255 to
75d61f4
Compare
72a3a50 to
d917bc4
Compare
| "@prisma/adapter-pg": "^7.9.1", | ||
| "@prisma/client": "^7.9.1", | ||
| "@sapphire/result": "^2.8.0", | ||
| "@sapphire/utilities": "^3.18.2", | ||
| "@wolfstar/env-utilities": "^2.0.2", | ||
| "@wolfstar/http-framework": "^3.0.0", | ||
| "@wolfstar/http-framework-i18n": "^1.2.2", | ||
| "@wolfstar/logger": "^2.0.5", | ||
| "@wolfstar/env-utilities": "^2.0.5", | ||
| "@wolfstar/http-framework": "^3.1.2", | ||
| "@wolfstar/http-framework-i18n": "^1.2.5", | ||
| "@wolfstar/logger": "^2.1.3", | ||
| "@wolfstar/plugin-api": "^1.0.0", | ||
| "@wolfstar/shared-http-pieces": "^1.2.6", | ||
| "@wolfstar/start-banner": "^2.0.3", | ||
| "@wolfstar/shared-http-pieces": "^1.2.8", | ||
| "@wolfstar/start-banner": "^2.0.6", | ||
| "discord-api-types": "^0.38.47", | ||
| "gradient-string": "^3.0.0", | ||
| "husky": "^9.1.7", | ||
| "ioredis": "^5.11.1", |
There was a problem hiding this comment.
🚨 Bug: package.json bumped but pnpm-lock.yaml not updated
package.json (and pnpm-workspace.yaml override) were bumped to new versions, but pnpm-lock.yaml was not updated in this PR — it still pins the old specifiers/versions (e.g. untun specifier ^0.1.3, @prisma/adapter-pg/@prisma/client/prisma 7.8.0, @wolfstar/env-utilities 2.0.2, etc.). The CI step pnpm install --filter . --ignore-scripts runs with pnpm's CI default of --frozen-lockfile, so this mismatch will fail with ERR_PNPM_OUTDATED_LOCKFILE. Regenerate and commit pnpm-lock.yaml (pnpm install --lockfile-only) so the lockfile matches the updated manifests.
Was this helpful? React with 👍 / 👎
| "nano-staged": "^1.0.2", | ||
| "tslib": "^2.8.1", | ||
| "untun": "^0.1.3" | ||
| "untun": "^0.2.2" |
There was a problem hiding this comment.
💡 Edge Case: untun 0.1.x→0.2.x is a pre-1.0 minor that may break tunnel
untun moves from ^0.1.3 to ^0.2.2; for 0.x packages a minor bump can contain breaking API changes. tsdown.config.ts relies on startTunnel({ port, acceptCloudflareNotice }) and tunnel.getURL(). If that surface changed, the --tunnel dev flow breaks. This is dev-only tooling, so impact is limited, but verify the tunnel still starts after the bump.
Was this helpful? React with 👍 / 👎
Code Review 🚫 Blocked 0 resolved / 2 findingsUpdates non-major project dependencies and actions across the workspace. Blocked due to a missing lockfile update for package.json and a pre-1.0 minor version change in untun. 🚨 Bug: package.json bumped but pnpm-lock.yaml not updated📄 package.json:33-47 📄 package.json:92 📄 pnpm-workspace.yaml:4 package.json (and pnpm-workspace.yaml override) were bumped to new versions, but pnpm-lock.yaml was not updated in this PR — it still pins the old specifiers/versions (e.g. 💡 Edge Case: untun 0.1.x→0.2.x is a pre-1.0 minor that may break tunnel
🤖 Prompt for agentsOptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
There was a problem hiding this comment.
Configure merge blocking · Maintainers can dismiss this review.
be44399 to
efc0da5
Compare
efc0da5 to
bd2cb9d
Compare
|
All alerts resolved. Learn more about Socket for GitHub. This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. |
f5820b6 to
48298b1
Compare
19514b2 to
22dcb2a
Compare
◈ PR LensNote This drawing shows
Architecture 0 components touched across 4 lanes. Data flow No data-flow sequence changed in this PR. View
Tip Switch GitHub to dark mode and the diagrams follow. The moving dots are this pull request's data in motion. 🪧 More tips
Thanks for using PR Lens! It's built by Coldtea, free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
This PR contains the following updates:
^21.2.2→^21.2.3^21.2.2→^21.2.3^24.13.5→^24.19.0^2.1.1→^2.2.02.2.1^5.0.0→^5.1.15.1.2^5.0.0→^5.1.15.1.2^1.1.5→^1.1.61.1.72.0.3→2.1.02.1.12.0.3→2.1.02.1.12.0.4→2.0.72.0.9v7.0.0→v7.0.1^6.2.2→^6.3.06.4.0^10.10.0→^10.11.0^3.3.0→^3.3.1^0.68.0→^0.70.00.71.0^1.83.0→^1.85.01.86.012.4.2→12.7.012.8.1(+1)v6.0.9→v6.1.0Release Notes
conventional-changelog/commitlint (@commitlint/cli)
v21.2.3Compare Source
Bug Fixes
conventional-changelog/commitlint (@commitlint/config-conventional)
v21.2.3Compare Source
Bug Fixes
wolfstar-project/stars-components (@wolfstar/env-utilities)
v2.2.0Minor Changes
95a5fa1- feat: add experimental support for varlock as an alternative todotenv, opt-in via theloader: 'varlock'option (or theDOTENV_LOADERenvironment variable) Thanks @RedStar071!wolfstar-project/stars-components (@wolfstar/http-framework)
v5.1.1Patch Changes
4c4138e- fix(auto-imports): stop auto-importing@wolfstar/env-utilities'setup, which clashed with thesetup()scaffolded projects export fromsrc/lib/setup/all.tsand printed a duplicated import warning on every build (#219) Thanks @RedStar071!v5.1.0Minor Changes
#209
6d970e5- Align configuration entry points with Nuxt: add framework schema and package metadata exports, provide a lightweight schema/config helper, and separate schema input types from config resolution while preserving existing exports. Thanks @RedStar071!#209
6d970e5- Split thestars.config.*schema and loader (defineConfig,loadStarsConfig,configDiagnosticsand friends) outof
@wolfstar/http-frameworkinto a new package,@wolfstar/schema,and made
@wolfstar/http-frameworkdepend on@wolfstar/clifor its ownstarsbinary — the same split Nuxt hasbetween
nuxt,@nuxt/cliand@nuxt/schema.@wolfstar/http-framework/configre-exports@wolfstar/schema's public surface unchanged, so existingimport { defineConfig } from '@wolfstar/http-framework/config'code keeps working with no changes needed.@wolfstar/http-frameworknow depends on@wolfstar/cliand ships astarsbin (bin/stars.mjs, re-exporting@wolfstar/cli/cli), the waynuxtshipsnuxi's binary — installing@wolfstar/http-frameworkis now enough toget the
starscommand, no separate@wolfstar/cliinstall required.@wolfstar/cli: it no longer depends on@wolfstar/http-framework(matching@nuxt/clihaving nodependency on
nuxt) — it now depends on@wolfstar/schemafor the config schema/loader instead. Projectsthat installed
@wolfstar/cliwithout also depending on@wolfstar/http-frameworkdirectly (uncommon, since theCLI has nothing to build without it) now need to add
@wolfstar/http-frameworkthemselves; every project scaffoldedby
@wolfstar/create-http-framework, or that already depends on@wolfstar/http-framework, is unaffected.@wolfstar/cli's own public exports (loadStarsConfig,configDiagnostics,ConfigDiagnosticCode,ResolvedStarsConfig, re-exported from@wolfstar/schema) are unchanged.This was needed because
@wolfstar/clialready depended on@wolfstar/http-framework: adding the reverse dependency(for the new
starsbin) without this split would have made the two packages depend on each other, which thismonorepo's build graph (and any tool resolving workspace dependencies) cannot build. Thanks @RedStar071!
Patch Changes
6d970e5,6d970e5,6d970e5]:wolfstar-project/plugins (@wolfstar/plugin-api)
v1.1.6Compare Source
Patch Changes
80bf45b- fix(deps): update all non-major dependencies Thanks @renovate!wolfstar-project/plugins (@wolfstar/plugin-i18next)
v2.1.0Compare Source
Minor Changes
56ead81- feat: exportT,FT,resolveKey,resolveUserKey,TypedTandTypedFTagain as deprecated compatibility shims with@wolfstar/http-framework-i18n's names and signatures, so a migration only has to rename the module specifier instead of failing at load time withdoes not provide an export named 'T'(#114)Patch Changes
#60
0540e1c- fix(deps): update dependency i18next to v26 Thanks @renovate!#116
56ead81- fix: accept@wolfstar/http-frameworkv5 as a peer dependency (^3.1.0 || ^5.0.0), so v5 projects no longer install the plugin with an unmet peer (#115)v2.0.4Compare Source
Patch Changes
#86
15332ef- Fix TypeScript overload resolution ingetSupportedLanguageT,getSupportedUserLanguageT, andfetchKeywhenkeyis a union type (such as a ternary expression).Previously, these functions used a single generic signature with a union-typed rest parameter. When
keywas a union, TypeScript failed to resolve the candidate tuple properly and rejected valid options objects as if they were positionaldefaultValuestrings. Each call shape is now declared as an independent overload, while the original generic signature is retained as a deprecated trailing overload for full backward compatibility.wolfstar-project/stars-components (@wolfstar/shared-http-pieces)
v2.0.7Patch Changes
4c4138e- fix: keep the bundled locales when@wolfstar/plugin-i18next/registeris imported before@wolfstar/shared-http-pieces/register(#218) Thanks @RedStar071!4c4138e]:v2.0.6Patch Changes
7f15974- fix(deps): update all non-major dependencies Thanks @renovate!v2.0.5Patch Changes
9b71e86,18eda16]:actions/checkout (actions/checkout)
v7.0.1Compare Source
chalk/ansi-regex (ansi-regex)
v6.3.0Compare Source
f1bf1f0eslint/eslint (eslint)
v10.11.0Compare Source
ota-meshi/eslint-plugin-regexp (eslint-plugin-regexp)
v3.3.1Compare Source
Patch Changes
oxc-project/oxc (oxfmt)
v0.70.0: oxfmt v0.70.0Compare Source
🚀 Features
415b742oxlint,oxfmt: Do not discover nested config in Vite+ mode (#26763) (leaysgur)v0.69.0Compare Source
oxc-project/oxc (oxlint)
v1.85.0Compare Source
v1.84.0Compare Source
pnpm/pnpm (pnpm)
v12.7.0: pnpm 12.7Compare Source
pnpm 12.7.0 ships with
.nvmrcand.node-versionsupport in the globalnodeshim,pnpm install --allow-build,pnpm publish --publish-wait-timeout, andpnpm-workspace.yamlcreated from theworkspacesfield.pnpm install --forceno longer installs optional dependencies built for other platforms. This release also carries security fixes for bin shims on Nix, for lifecycle scripts of packages in astoreDirinside the workspace, and foruserAgentplaceholders inpnpm-workspace.yaml.Minor Changes
pnpm install --forcenow keeps skipping optional dependencies whoseos,cpuorlibcdo not match the host. It still refetches every package and liftsengineStrict. The newforceIgnoresPlatformsetting restores the previous behaviour, installing optional dependencies of every platform under--force#6133.The global
nodeshim created by pnpm now uses the Node.js version from the nearest.nvmrcor.node-versionfile when the project does not declare a Node.js runtime indevEngines.runtimeorengines.runtime#4471. The nearest directory with a Node.js runtime declaration decides the version. Within one directory,package.jsontakes precedence over.node-version, which takes precedence over.nvmrc. An.nvmrcvalue that only nvm can act on, such assystemor a custom alias, is ignored.pnpm installnow supports the--allow-buildoption to selectively allow or deny package lifecycle scripts and record them inpnpm-workspace.yaml#15388.Added
pnpm publish --publish-wait-timeout <milliseconds>to wait for published versions and their tarballs to become available from the registry. SetpublishWaitTimeoutinpnpm-workspace.yamlto configure a default. A value of0disables the check.Recursive publishing confirms availability before publishing dependent packages. If confirmation times out, the command fails.
When
pnpm publish -r --report-summaryfails after some uploads were accepted, the summary file now lists those packages.pnpm installnow createspnpm-workspace.yamlfrom theworkspacesfield of the rootpackage.jsonwhen the repository has nopnpm-workspace.yaml. The projects the field lists are linked on that same install. An existingpnpm-workspace.yamlis never changed. With--ignore-workspace, no file is created. If theworkspacesfield later differs frompackagesinpnpm-workspace.yaml, pnpm prints a warning #2255.When a project pins a pnpm version or a runtime that another pnpm process is installing at that moment, pnpm now waits a few seconds and then installs and runs a private copy of its own. It used to wait up to five minutes and then use the shared install directory without the lock. The private copy is removed once the command has run.
pnpm store pruneremoves any private copy that a killed process left behind #15413.pnpm now keeps the blank lines between entries of
package.jsonwhen it updates the file, for example onpnpm add#5602.Patch Changes
Security
pnpm no longer expands environment variables in a
userAgentset in a project'spnpm-workspace.yaml. AuserAgentwith a placeholder in that file is now ignored. Before this fix, pnpm sent the variable's value to the configured registry #15415.On Nix, a dependency's bin named like a system utility such as
sedcan no longer redirect a POSIX bin shim or thepnpm,pn,pnpx, andpnxlaunchers. The shims and launchers now ignorenode_modulesand relativePATHentries while they locate their own files. Installing again replaces the shims already innode_modules#14883.pnpm no longer treats manifests inside its store, cache, state, or modules directories as workspace projects. Before, a
storeDirinside the workspace could let lifecycle scripts of packages in the store run withoutallowBuildsapproval #15033.Packages that run a lifecycle script are no longer hard-linked into the virtual store, so a build script can no longer rewrite the workspace source of an injected package or the store copy it was imported from #15483.
Installing packages
Fixed
pnpm install,pnpm add,pnpm remove, andpnpm peers checkrunning out of memory when many packages share a missing peer dependency. This mostly affected projects withautoInstallPeers: false#15362.pnpm no longer hangs for up to 5 minutes after a pnpm process was killed while setting up the pnpm version pinned in
packageManagerordevEngines#15360, #15393. The killed process left behind a lock that every later pnpm command in the project waited on. pnpm now detects that the process holding a lock is gone and takes the lock over at once. The same applies to the locks pnpm takes while installing a managed runtime or writing the global bin directory. Two pnpm processes that are both still running keep waiting for each other as before.Requests to a registry or tarball server whose TLS certificate fails verification now fail at once. Such requests were retried for more than a minute without any output #9134.
On macOS, pnpm now falls back to its bundled CA roots when system trust evaluation is unavailable, such as in a sandbox or when macOS cannot create an SSL policy for a registry connection. Installs failed or crashed on the first registry request in that case. Custom
cacertificates are now honored directly #15329, #14461.pnpm installnow caps concurrent connections to a proxy at 50 sockets by default #15280. It also immediately retries transient connection resets when downloading package archives.pnpm installnow reuses a package already present in the store when an existing lockfile entry satisfies the dependency, avoiding registry requests that fail without authorization #2522.Installing or adding dependencies no longer fails when a previously installed local tarball file was deleted from disk #8367.
pnpm installnow installs the new version of a local tarball dependency whose file was replaced at the same path #2437.pnpm install --frozen-lockfilerejects such a changed tarball, even when the previous archive contents are in the store #1889.pnpm installnow fetches committed submodules of git dependencies #1470.pnpm installnow applies patches produced bypnpm patch-commitwhen an edit removes the trailing lines of a file along with its newline. The install no longer fails withERR_PNPM_INVALID_PATCH("expected end of hunk") #12451.pnpm installnow preserves existingnode_modulesdirectories when a cross-device move reportsEXDEV#14504.pnpm installno longer fails when writing the workspace state file encounters an error. Failures to update the state file now emit a warning instead of aborting the install #14550.Interrupting
pnpm installwith Ctrl+C or SIGTERM no longer leaves a temporary lockfile (.pnpm-lock.yaml.*.tmp) behind in the project #1418.pnpm installnow relinks a direct dependency whose link innode_modulespoints to a missing target. Before, it reported "Already up to date" and left the broken link #9758.pnpm installuses less CPU when it links packages from a warm store. On Windows, a warm install could take several times longer than with pnpm 11 #15439.pnpm installnow runsnode --versiononce per run. A workspace whose projects keep their own lockfiles (sharedWorkspaceLockfile: false) previously ran the probe once or twice for every project, and on macOS the concurrent launches waited on each other, so a project could wait several seconds before its linking started.A repeat
pnpm install --frozen-lockfilewithnodeLinker: hoistedin a workspace no longer re-linksnode_moduleswhen nothing changed.Custom fetcher hooks no longer run a second time during installation when an archive was already fetched during dependency resolution #15025.
Fixed a package resolved by a
resolverspnpmfile hook installing without its own dependencies. This happened when the hook returned nomanifestand afetchershook handled the resolution #15552.pnpm install --prodand other installs that skipdevDependenciesno longer run thepnpm:devPreinstallscript #7065. They skippreparelifecycle scripts too, as do installs given package arguments.pnpm prune --prodand production installs now remove devDependencies whenlockfile: falseis configured #2677.pnpm install --prod,pnpm fetch --prodandpnpm deploy --prodno longer install a devDependency that is only there to satisfy an optional peer dependency of a production dependency.pnpm list,pnpm why,pnpm licenses,pnpm sbomandpnpm auditleave it out of--prodresults too. The same applies to--dev. A peer that is not optional is still installed and audited #15344.pnpm installno longer skips optional dependencies that the Node.js version locked for adevEngines.runtimerange supports, when the range usesonFail: download. An explicitly setnodeVersionstill takes priority #14628.pnpm fetchnow also installs the pnpm version thatpnpm-lock.yamlpins, when it differs from the running pnpm. A laterpnpm install --offlinethat switches to the pinned version no longer fails because that version is missing from the store #11808.A dependency that ships a
binding.gypand setsgypfile: falseno longer gets thenode-gyp rebuildinstall script pnpm synthesizes for it. Such a dependency needs noallowBuildsentry and is no longer listed under "Ignored build scripts".pnpm installno longer addsallowBuildsplaceholder entries topnpm-workspace.yamlwhen it runs in CI or without a terminal. Interactive installs still add them #11574.pnpm now detects the same CI environments as pnpm 11, including AWS CodeBuild, which does not set
CI. On these servicespnpm installuses a frozen lockfile by default and fails withERR_PNPM_OUTDATED_LOCKFILEwhen the lockfile is outdated.Resolving and linking dependencies
Installing through a pnpr server now installs a project's peer dependencies when
autoInstallPeersis enabled. A project that declared only peer dependencies failed withERR_PNPM_OUTDATED_LOCKFILEor skipped its peers #14833.pnpm now installs a dependency that a package also declares as an optional peer dependency, for example
lightningcssin some vite builds. The dependency was missing fromnode_modules, so the package failed to import it #8912.Removal overrides such as
"parent>peer": "-"now prevent optional peers from being installed from another workspace package #15008.Removing an entry from
overridesnow re-resolves the packages it targeted. A version the override had locked is no longer kept just because the declared range still accepts it #4587.packageExtensionsandoverridesentries with a ranged selector (such as@<Xor@*) no longer match a dependency that has nopackage.json, such as a local directory dependency #15007.Trim leading and trailing whitespace from dependency override selectors in
pnpm.overrides#6356.With
trustPolicy: no-downgrade, pnpm now resolves the newest matching version that is not a trust downgrade. Previously a dependency failed withERR_PNPM_TRUST_DOWNGRADEeven when an older version satisfied its range.pnpm self-updatepicks its target version the same way. A request for an exact version still fails #14176.pnpm installnow re-resolves a dependency when its manifest range is updated from a prerelease to a stable version. The lockfile previously retained the prerelease version and caused--frozen-lockfileto fail #15528.pnpm install --ignore-pnpmfileno longer removespnpmfileChecksumfrom an up-to-datepnpm-lock.yaml.pnpm install --frozen-lockfile --ignore-pnpmfileno longer fails withERR_PNPM_LOCKFILE_CONFIG_MISMATCHwhen the lockfile records apnpmfileChecksum. A command that resolves dependencies with the pnpmfile ignored still writes the lockfile without it #10944.pnpm installandpnpm peers checknow use local tarball packages' actual versions when checking peer dependencies. Compatible packages no longer fail withstrictPeerDependenciesenabled.pnpm peers checkand the install-time peer dependency check now resolve peer dependencies from the workspace root whenresolvePeersFromWorkspaceRootis enabled #14982.autoDedupeandpnpm dedupenow move transitive dependencies to the version acatalog:dependency pins, as they already did for versions written directly inpackage.json. Previously they could move those dependencies to a higher version and keep both versions in the lockfile.pnpm dedupenow produces a stable lockfile when a dependency's range matches both a direct dependency and annpm:alias of the same package. The dependency resolves to the version of the direct dependency. Repeated runs previously alternated between two lockfiles #15588.Merging lockfiles now preserves recorded configuration fields such as
overrides,neverBuiltDependencies,patchedDependencies,packageExtensionsChecksum,settings, andcatalogs#8366.A lockfile entry whose resolution is unchanged now keeps its recorded
deprecatedmessage #5772.pnpm no longer writes a package's legacy array-form
engines, such as["node >= 0.8"], to the lockfile. It was recorded as an object keyed by index, such as{'0': node >= 0.8}#4518.Tarball URLs recorded in the lockfile now strip default HTTP and HTTPS ports (
:80and:443) #15539.node_modules/.package-map.jsonno longer contains entries that point at directories that do not exist. Such entries appeared for packages installed only with peer dependencies, most visibly withenableGlobalVirtualStore#14938.With
nodeLinker: hoisted,hoistWorkspacePackagesnow links each workspace project thathoistPatternorpublicHoistPatternselects into the rootnode_modules, unless a hoisted package or a root dependency already uses its name. The project's bins are linked into the rootnode_modules/.bin#7553.With
nodeLinker: hoisted,pnpm installnow removes the commands of the packages it removes fromnode_modules/.bin, such as a nested copy deduped into the rootnode_modules#7568.pnpm installno longer puts a dependency's bin onPATHfor that dependency's own lifecycle scripts before the bin's file exists. pnpm links such a bin after the dependency's build has run. It also removes such a bin left by an earlier install. This fixes installing thenodepackage on Windows #15501.Dependencies and executable binaries are now correctly linked and accessible for workspace packages using
publishConfig.directoryandpublishConfig.linkDirectory#8338.Bin linking leaves workspace and linked dependency files outside node_modules unchanged. Already executable bin files no longer receive redundant permission changes.
Workspaces and filtering
pnpm installnow finds workspace projects reached through a symlink, such as apackagesdirectory that links to a folder outside the workspace. It installs their dependencies, and the links in theirnode_modulesresolve #1044.A dependency declared with
catalog:now counts as a workspace dependency when its catalog entry points at a workspace project, for exampleworkspace:*#15587. WithlinkWorkspacePackagesenabled, so does annpm:alias of a workspace project, such as"math-alias": "npm:math@^1.0.0".pnpm -r runruns that project first.--filter <pkg>...selects it.A
workspace:dependency now resolves to a workspace project whose version is not valid semver, such as1or1.0.workspace:*,workspace:^, andworkspace:~match it. A range identical to the version also matches it #4567.A
workspace:dependency with an exact version now resolves to a workspace project whose version carries SemVer build metadata. For example,workspace:0.5.6-next.3matches a project at0.5.6-next.3+f60facc#6483.Secondary dependencies now prefer the version resolved by the local project's direct dependencies over versions from sibling workspace projects #7191.
pnpm installnow re-resolves a workspace project's auto-installed peer dependency when another workspace project changes its specifier for that package to one that excludes the locked version but still overlaps the peer range. The peer then resolves to the version a fresh install would pick #11800.pnpm install --frozen-lockfilenow fails withERR_PNPM_OUTDATED_LOCKFILEwhenpnpm-lock.yamllists a workspace project whose directory or manifest file is missing. The install used to report success without installing that project's dependencies #7667.pnpm install -rnow installs every workspace project whenrecursiveInstallis set tofalseinpnpm-workspace.yaml#7504.pnpm installwith--filternow installs only the dependencies of the selected projects when usingnodeLinker: hoisted#8882.pnpm installnow updates an injected workspace dependency after that package's own dependencies change, whenshared-workspace-lockfileisfalse#7209.pnpm installnow copies the output of a workspace package's ownprepare,install, orpostinstallscript into the injected copies of that package. Before, the injected copies kept only the files that existed before the script ran.syncInjectedDepsAfterScriptsnow also works whenmodulesDiris set #9464.syncInjectedDepsAfterScriptsnow copies files into injected dependencies whennode_modulesis on another filesystem than the package sources. The sync previously failed with a cross-device link error and made the script run exit with an error #14703.A
modulesDirwith several path segments, such aswww/modules, now puts each workspace project's dependencies in<project>/www/moduleson both fresh and frozen installs, andpnpm binprints<project>/www/modules/.bin#15484.With
nodeLinker: hoisted, pnpm now installs the root project's dependencies into a custommodulesDirinstead ofnode_modules. With a custommodulesDir, the virtual store and itslock.yamlnow default to<modulesDir>/.pnpm.A repeat
pnpm installin a workspace with a custommodulesDirnow takes the up-to-date fast path. Before, pnpm looked for each workspace project's dependencies innode_modulesand ran a full install every time.pnpm now warns when a workspace install covers a project that has its own
pnpm-workspace.yaml. The nested file's settings, such aspatchedDependencies, do not apply when the outer workspace installs that project. pnpm reads settings only from thepnpm-workspace.yamlat the workspace root #11724.The
[<since>]filter selector now compares against the commit where the current branch forked from<since>. Projects changed only by newer commits on<since>are no longer selected. Uncommitted changes are still included. In a shallow clone without that commit, pnpm compares against<since>directly, as before #9907.--filter "[<since>]"now selects workspace packages when dependency versions change in a catalog inpnpm-workspace.yaml#8718. It also selects projects that files were moved out of when git detects the move as a rename #15481.--filternow evaluates selectors in order, so later inclusion filters can re-include packages that an earlier exclusion filter excluded #9354.Adding, updating, and removing dependencies
pnpm addnow saves changes topackage.jsonbefore running lifecycle scripts, so a postinstall script failure leaves the added dependency inpackage.json#8627.pnpm addnow saves the requested exact version when adding a dependency, even when the manifest already contains a version range #6040.pnpm add <pkg>@<version>andpnpm update <pkg>@<version>now move the catalog entry onto the named version when the entry's range already covers it. For example,^7.22.17becomes^7.29.6, the same waypnpm update <pkg>moves an entry to the version it resolves #13715.pnpm addandpnpm installkeep an emptypeerDependencies,dependencies,devDependencies, oroptionalDependenciesfield that was already inpackage.json. pnpm still drops such a field when it removes the last entry itself, aspnpm removedoes #5096.pnpm updatenow keeps a version range whose shape has no save prefix, such as<= 3.0.0or>=1.0.0 <2.0.0, when the updated version still satisfies it. Before,<= 3.0.0became^3.0.0#6714.pnpm update <pkg>now moves a package off a locked version the registry no longer serves, such as an unpublished release. The lockfile check for supply-chain policies such asminimumReleaseAgeused to reject that version before the update could replace it #9953.pnpm update --prodno longer installs devDependencies when run in a project installed with--prod#8038.pnpm update --interactive --workspacenow allows external dependencies to be updated.pnpm outdatedandpnpm updatenow applyminimumReleaseAgeto GitHub Actions.minimumReleaseAgeExcludeentries match action names such asactions/checkout#13923.pnpm removenow accepts--trust-lockfileand--no-trust-lockfileto control supply-chain policy checks while removing a package #14406.pnpm unlinknow removes thelink:dependency thatpnpm link <dir>added topackage.json. The linked package is removed fromnode_modulesand the lockfile. Alink:dependency to another directory is kept #4219.pnpm installnow prunes unreferenced catalog entries frompnpm-workspace.yamlwhencatalogPrune: trueis configured #15273.minimumReleaseAgeExcludePruneandtrustPolicyExcludePrunenow work in workspaces withshared-workspace-lockfile=false. Once every project has been installed, pnpm drops an entry only if no project lockfile records it. UndecidedallowBuildsentries are pruned the same way #14612.Exclude entries that pnpm writes to
pnpm-workspace.yamlnow match the file's list indentation and dominant quote style #15571, #15079.pnpm importnow converts dependencies that use Yarn'spatch:protocol. The dependency keeps the version it patches, and the patch file is added topatchedDependenciesinpnpm-workspace.yaml. If the patch file is missing, pnpm prints a warning and imports the dependency without the patch #10278.pnpm importin a workspace now keeps the versions pinned by the rootyarn.lock,package-lock.json, ornpm-shrinkwrap.jsonwhen another workspace project's range allows a newer version. Before, the root project got the newest version in its range #4385.pnpm patch,pnpm patch-commit, andpnpm patch-removenow work in a project of a workspace withsharedWorkspaceLockfile: false.pnpm patchfailed there withERR_PNPM_PATCH_NO_LOCKFILEafter a successful install. The reinstall after committing or removing a patch left the project's ownnode_modulesunchanged #9926.pnpm patch-commitnow resolves default patch directory locations when passed a package name or package specifier (such aspnpm patch-commit <pkg>orpnpm patch-commit <pkg>@<version>).pnpm patch-commitnow updates the lockfile snapshot and prunes removed dependencies when the patch modifiespackage.json#6866.pnpm patch-commitnow falls back to copying package files when hard linking fails.Running scripts and commands
A script that pnpm runs without a terminal now ends when pnpm itself is killed. Killing pnpm's process group, as Playwright's
webServerdoes to stop the command it started, used to leave the script running and holding the caller's output pipes open #15555.pnpm --filter <project> <command>andpnpm -r <command>now run a command installed in the selected projects' dependencies when none of them has a script by that name. This matchespnpm <command>in a single project.pnpm runwith--filteror-rstill reports the missing script #10151.pnpm execandpnpm dlxnow setnpm_execpath,INIT_CWD,npm_node_execpath, andNODEin child environments when Node.js is available. Stale inheritedNODEandnpm_node_execpathvariables are cleared when Node.js cannot be found on PATH #7037. Scripts thatpnpxandpnxrun now get pnpm itself asnpm_execpath. A script that ran$npm_execpath installthere ranpnpm dlx install.pnpm execnow sets thePWDenvironment variable to the directory the command runs in. Shells and tools that readPWDnow report the logical path of a workspace package reached through a symlink #1550.A script that runs
pnpm runno longer adds duplicatenode_modules/.binandnode-gyp-binentries toPATH#5352.Concurrent
pnpm runandpnpm execcommands now serialize their dependency installs #14551.pnpm runandpnpm execwithverifyDepsBeforeRunnow accept a moved project whose store is on the project's volume. Before, the check reported that the workspace structure had changed whenever the default store was not on the home volume.verifyDepsBeforeRunchecks now account for project-specificpackageConfigsoverrides in workspaces withsharedWorkspaceLockfile: false[#15545](https://redirect.github.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.