fix: dependencies that were added to onlyBuiltDependencies should be built on install (#10256)

This commit is contained in:
Zoltan Kochan
2025-12-02 15:31:52 +01:00
parent 78f12ef920
commit 033a2561eb
12 changed files with 222 additions and 59 deletions

View File

@@ -0,0 +1,10 @@
---
"@pnpm/plugin-commands-rebuild": patch
"@pnpm/default-reporter": patch
"@pnpm/headless": patch
"@pnpm/build-modules": patch
"@pnpm/core": patch
"pnpm": patch
---
`pnpm install` should build any dependencies that were added to `onlyBuiltDependencies` and were not built yet [#10256](https://github.com/pnpm/pnpm/pull/10256).

View File

@@ -8,6 +8,7 @@ import { reportContext } from './reportContext.js'
import { reportExecutionTime } from './reportExecutionTime.js'
import { reportDeprecations } from './reportDeprecations.js'
import { reportHooks } from './reportHooks.js'
import { reportIgnoredBuilds } from './reportIgnoredBuilds.js'
import { reportInstallChecks } from './reportInstallChecks.js'
import { reportInstallingConfigDeps } from './reportInstallingConfigDeps.js'
import { reportLifecycleScripts } from './reportLifecycleScripts.js'
@@ -156,9 +157,14 @@ export function reporterForClient (
env: opts.env,
filterPkgsDiff: opts.filterPkgsDiff,
pnpmConfig: opts.pnpmConfig,
approveBuildsInstructionText: opts.approveBuildsInstructionText,
}))
}
outputs.push(
reportIgnoredBuilds(log$, {
pnpmConfig: opts.pnpmConfig,
approveBuildsInstructionText: opts.approveBuildsInstructionText,
})
)
}
return outputs

View File

@@ -0,0 +1,34 @@
import { type Config } from '@pnpm/config'
import { type IgnoredScriptsLog } from '@pnpm/core-loggers'
import { lexCompare } from '@pnpm/util.lex-comparator'
import * as Rx from 'rxjs'
import { map } from 'rxjs/operators'
import boxen from 'boxen'
export function reportIgnoredBuilds (
log$: {
ignoredScripts: Rx.Observable<IgnoredScriptsLog>
},
opts: {
pnpmConfig?: Config
// This is used by Bit CLI
approveBuildsInstructionText?: string
}
): Rx.Observable<Rx.Observable<{ msg: string }>> {
return log$.ignoredScripts.pipe(
map((ignoredScripts) => {
if (ignoredScripts.packageNames && ignoredScripts.packageNames.length > 0 && !opts.pnpmConfig?.strictDepBuilds) {
const msg = boxen(`Ignored build scripts: ${Array.from(ignoredScripts.packageNames).sort(lexCompare).join(', ')}.
${opts.approveBuildsInstructionText ?? `Run "pnpm approve-builds${opts.pnpmConfig?.cliOptions?.global ? ' -g' : ''}" to pick which dependencies should be allowed to run scripts.`}`, {
title: 'Warning',
padding: 1,
margin: 0,
borderStyle: 'round',
borderColor: 'yellow',
})
return Rx.of({ msg })
}
return Rx.NEVER
})
)
}

View File

@@ -1,16 +1,13 @@
import path from 'path'
import {
type IgnoredScriptsLog,
type DeprecationLog,
type PackageManifestLog,
type RootLog,
type SummaryLog,
} from '@pnpm/core-loggers'
import { type Config } from '@pnpm/config'
import { lexCompare } from '@pnpm/util.lex-comparator'
import * as Rx from 'rxjs'
import { map, take } from 'rxjs/operators'
import boxen from 'boxen'
import chalk from 'chalk'
import semver from 'semver'
import { EOL } from '../constants.js'
@@ -40,7 +37,6 @@ export function reportSummary (
summary: Rx.Observable<SummaryLog>
root: Rx.Observable<RootLog>
packageManifest: Rx.Observable<PackageManifestLog>
ignoredScripts: Rx.Observable<IgnoredScriptsLog>
},
opts: {
cmd: string
@@ -48,8 +44,6 @@ export function reportSummary (
env: NodeJS.ProcessEnv
filterPkgsDiff?: FilterPkgsDiff
pnpmConfig?: Config
// This is used by Bit CLI
approveBuildsInstructionText?: string
}
): Rx.Observable<Rx.Observable<{ msg: string }>> {
const pkgsDiff$ = getPkgsDiff(log$, { prefix: opts.cwd })
@@ -59,12 +53,11 @@ export function reportSummary (
return Rx.combineLatest(
pkgsDiff$,
log$.ignoredScripts.pipe(Rx.startWith({ packageNames: undefined })),
summaryLog$
)
.pipe(
take(1),
map(([pkgsDiff, ignoredScripts]) => {
map(([pkgsDiff]) => {
let msg = ''
for (const depType of ['prod', 'optional', 'peer', 'dev', 'nodeModulesOnly'] as const) {
let diffs: PackageDiff[] = Object.values(pkgsDiff[depType as keyof typeof pkgsDiff])
@@ -89,18 +82,6 @@ export function reportSummary (
msg += EOL
}
}
if (ignoredScripts.packageNames && ignoredScripts.packageNames.length > 0 && !opts.pnpmConfig?.strictDepBuilds) {
msg += EOL
msg += boxen(`Ignored build scripts: ${Array.from(ignoredScripts.packageNames).sort(lexCompare).join(', ')}.
${opts.approveBuildsInstructionText ?? `Run "pnpm approve-builds${opts.pnpmConfig?.cliOptions?.global ? ' -g' : ''}" to pick which dependencies should be allowed to run scripts.`}`, {
title: 'Warning',
padding: 1,
margin: 0,
borderStyle: 'round',
borderColor: 'yellow',
})
msg += EOL
}
return Rx.of({ msg })
})
)

View File

@@ -3,7 +3,7 @@ import path from 'path'
import util from 'util'
import { calcDepState, type DepsStateCache } from '@pnpm/calc-dep-state'
import { getWorkspaceConcurrency } from '@pnpm/config'
import { skippedOptionalDependencyLogger, ignoredScriptsLogger } from '@pnpm/core-loggers'
import { skippedOptionalDependencyLogger } from '@pnpm/core-loggers'
import { runPostinstallHooks } from '@pnpm/lifecycle'
import { linkBins, linkBinsOfPackages } from '@pnpm/link-bins'
import { logger } from '@pnpm/logger'
@@ -97,7 +97,6 @@ export async function buildModules<T extends string> (
}
}
const packageNames = Array.from(ignoredPkgs)
ignoredScriptsLogger.debug({ packageNames })
return { ignoredBuilds: packageNames }
}

View File

@@ -92,7 +92,7 @@ export async function rebuildSelectedPkgs (
projects: Array<{ buildIndex: number, manifest: ProjectManifest, rootDir: ProjectRootDir }>,
pkgSpecs: string[],
maybeOpts: RebuildOptions
): Promise<void> {
): Promise<{ ignoredBuilds?: string[] }> {
const reporter = maybeOpts?.reporter
if ((reporter != null) && typeof reporter === 'function') {
streamParser.on('data', reporter)
@@ -100,7 +100,7 @@ export async function rebuildSelectedPkgs (
const opts = await extendRebuildOptions(maybeOpts)
const ctx = await getContext({ ...opts, allProjects: projects })
if (ctx.currentLockfile?.packages == null) return
if (ctx.currentLockfile?.packages == null) return {}
const packages = ctx.currentLockfile.packages
const searched: PackageSelector[] = pkgSpecs.map((arg) => {
@@ -149,6 +149,9 @@ export async function rebuildSelectedPkgs (
virtualStoreDir: ctx.virtualStoreDir,
virtualStoreDirMaxLength: ctx.virtualStoreDirMaxLength,
})
return {
ignoredBuilds: ignoredPkgs,
}
}
export async function rebuildProjects (

View File

@@ -62,6 +62,7 @@
"@pnpm/catalogs.protocol-parser": "workspace:*",
"@pnpm/catalogs.resolver": "workspace:*",
"@pnpm/catalogs.types": "workspace:*",
"@pnpm/config.version-policy": "workspace:*",
"@pnpm/constants": "workspace:*",
"@pnpm/core-loggers": "workspace:*",
"@pnpm/crypto.hash": "workspace:*",
@@ -96,6 +97,7 @@
"@pnpm/parse-wanted-dependency": "workspace:*",
"@pnpm/patching.config": "workspace:*",
"@pnpm/pkg-manager.direct-dep-linker": "workspace:*",
"@pnpm/plugin-commands-rebuild": "workspace:*",
"@pnpm/read-modules-dir": "workspace:*",
"@pnpm/read-project-manifest": "workspace:*",
"@pnpm/remove-bins": "workspace:*",

View File

@@ -4,6 +4,7 @@ import { createAllowBuildFunction } from '@pnpm/builder.policy'
import { parseCatalogProtocol } from '@pnpm/catalogs.protocol-parser'
import { resolveFromCatalog, matchCatalogResolveResult, type CatalogResultMatcher } from '@pnpm/catalogs.resolver'
import { type Catalogs } from '@pnpm/catalogs.types'
import { createPackageVersionPolicy } from '@pnpm/config.version-policy'
import {
LAYOUT_VERSION,
LOCKFILE_VERSION,
@@ -48,6 +49,7 @@ import { logger, globalInfo, streamParser } from '@pnpm/logger'
import { getAllDependenciesFromManifest, getAllUniqueSpecs } from '@pnpm/manifest-utils'
import { writeModulesManifest } from '@pnpm/modules-yaml'
import { type PatchGroupRecord, groupPatchedDependencies } from '@pnpm/patching.config'
import { rebuildSelectedPkgs } from '@pnpm/plugin-commands-rebuild'
import { safeReadProjectManifestOnly } from '@pnpm/read-project-manifest'
import {
getWantedDependencies,
@@ -342,20 +344,27 @@ export async function mutateModules (
// @ts-expect-error
globalInfo(`The integrity of ${global['verifiedFileIntegrity']} files was checked. This might have caused installation to take longer.`)
}
if ((reporter != null) && typeof reporter === 'function') {
streamParser.removeListener('data', reporter)
}
if (opts.mergeGitBranchLockfiles) {
await cleanGitBranchLockfiles(ctx.lockfileDir)
}
let ignoredBuilds = result.ignoredBuilds
if (!opts.ignoreScripts && ignoredBuilds?.length) {
ignoredBuilds = await runUnignoredDependencyBuilds(opts, ignoredBuilds)
}
ignoredScriptsLogger.debug({ packageNames: ignoredBuilds })
if ((reporter != null) && typeof reporter === 'function') {
streamParser.removeListener('data', reporter)
}
return {
updatedCatalogs: result.updatedCatalogs,
updatedProjects: result.updatedProjects,
stats: result.stats ?? { added: 0, removed: 0, linkedToRoot: 0 },
depsRequiringBuild: result.depsRequiringBuild,
ignoredBuilds: result.ignoredBuilds,
ignoredBuilds,
}
interface InnerInstallResult {
@@ -853,6 +862,30 @@ Note that in CI environments, this setting is enabled by default.`,
}
}
async function runUnignoredDependencyBuilds (opts: StrictInstallOptions, previousIgnoredBuilds: string[]): Promise<string[]> {
if (!opts.onlyBuiltDependencies?.length) {
return previousIgnoredBuilds
}
const onlyBuiltDeps = createPackageVersionPolicy(opts.onlyBuiltDependencies)
const pkgsToBuild = previousIgnoredBuilds.flatMap((ignoredPkg) => {
const matchResult = onlyBuiltDeps(ignoredPkg)
if (matchResult === true) {
return [ignoredPkg]
} else if (Array.isArray(matchResult)) {
return matchResult.map(version => `${ignoredPkg}@${version}`)
}
return []
})
if (pkgsToBuild.length) {
return (await rebuildSelectedPkgs(opts.allProjects, pkgsToBuild, {
...opts,
reporter: undefined, // We don't want to attach the reporter again, it was already attached.
rootProjectManifestDir: opts.lockfileDir,
})).ignoredBuilds ?? previousIgnoredBuilds
}
return previousIgnoredBuilds
}
function cacheExpired (prunedAt: string, maxAgeInMinutes: number): boolean {
return ((Date.now() - new Date(prunedAt).valueOf()) / (1000 * 60)) > maxAgeInMinutes
}
@@ -1340,7 +1373,6 @@ const _installInContext: InstallFunction = async (projects, ctx, opts) => {
})).ignoredBuilds
if (ignoredBuilds == null && ctx.modulesFile?.ignoredBuilds?.length) {
ignoredBuilds = ctx.modulesFile.ignoredBuilds
ignoredScriptsLogger.debug({ packageNames: ignoredBuilds })
}
}
}

View File

@@ -763,3 +763,32 @@ test('run pre/postinstall scripts in a project that uses node-linker=hoisted. Sh
message: `An error occurred while uploading ${path.resolve('node_modules/@pnpm.e2e/pre-and-postinstall-scripts-example')}`,
}))
})
test('build dependencies that were not previously built after onlyBuiltDependencies changes', async () => {
prepareEmpty()
const neverBuiltDependencies: string[] | undefined = undefined
const { updatedManifest: manifest } = await addDependenciesToPackage({},
['@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0', '@pnpm.e2e/install-script-example'],
testDefaults({
fastUnpack: false,
onlyBuiltDependencies: ['@pnpm.e2e/install-script-example'],
neverBuiltDependencies,
})
)
expect(fs.existsSync('node_modules/@pnpm.e2e/pre-and-postinstall-scripts-example/generated-by-preinstall.js')).toBeFalsy()
expect(fs.existsSync('node_modules/@pnpm.e2e/pre-and-postinstall-scripts-example/generated-by-postinstall.js')).toBeFalsy()
expect(fs.existsSync('node_modules/@pnpm.e2e/install-script-example/generated-by-install.js')).toBeTruthy()
await install(manifest, testDefaults({
fastUnpack: false,
frozenLockfile: true,
ignoredBuiltDependencies: [],
neverBuiltDependencies,
onlyBuiltDependencies: ['@pnpm.e2e/install-script-example', '@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'],
}))
expect(fs.existsSync('node_modules/@pnpm.e2e/pre-and-postinstall-scripts-example/generated-by-preinstall.js')).toBeTruthy()
expect(fs.existsSync('node_modules/@pnpm.e2e/pre-and-postinstall-scripts-example/generated-by-postinstall.js')).toBeTruthy()
expect(fs.existsSync('node_modules/@pnpm.e2e/install-script-example/generated-by-install.js')).toBeTruthy()
})

View File

@@ -45,6 +45,9 @@
{
"path": "../../config/parse-overrides"
},
{
"path": "../../config/version-policy"
},
{
"path": "../../crypto/hash"
},
@@ -60,6 +63,9 @@
{
"path": "../../exec/lifecycle"
},
{
"path": "../../exec/plugin-commands-rebuild"
},
{
"path": "../../fs/read-modules-dir"
},

View File

@@ -8,7 +8,6 @@ import {
WANTED_LOCKFILE,
} from '@pnpm/constants'
import {
ignoredScriptsLogger,
packageManifestLogger,
progressLogger,
stageLogger,
@@ -565,7 +564,6 @@ export async function headlessInstall (opts: HeadlessOptions): Promise<Installat
})).ignoredBuilds
if (ignoredBuilds == null && opts.modulesFile?.ignoredBuilds?.length) {
ignoredBuilds = opts.modulesFile.ignoredBuilds
ignoredScriptsLogger.debug({ packageNames: ignoredBuilds })
}
}

117
pnpm-lock.yaml generated
View File

@@ -1164,7 +1164,7 @@ importers:
dependencies:
'@pnpm/workspace.find-packages':
specifier: 'catalog:'
version: 1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
version: 1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/workspace.read-manifest':
specifier: 'catalog:'
version: 1000.1.5
@@ -4846,6 +4846,9 @@ importers:
'@pnpm/catalogs.types':
specifier: workspace:*
version: link:../../catalogs/types
'@pnpm/config.version-policy':
specifier: workspace:*
version: link:../../config/version-policy
'@pnpm/constants':
specifier: workspace:*
version: link:../../packages/constants
@@ -4948,6 +4951,9 @@ importers:
'@pnpm/pkg-manager.direct-dep-linker':
specifier: workspace:*
version: link:../direct-dep-linker
'@pnpm/plugin-commands-rebuild':
specifier: workspace:*
version: link:../../exec/plugin-commands-rebuild
'@pnpm/read-modules-dir':
specifier: workspace:*
version: link:../../fs/read-modules-dir
@@ -9991,6 +9997,12 @@ packages:
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/create-cafs-store@1000.0.24':
resolution: {integrity: sha512-5GnPramKi6/KrwbjkoLE63dSwSOrxDMgICJUrxGtZQb8LAYwCYxbGK+4Yotup2Y1I8FZwBc8O80FOp8H/c1oXA==}
engines: {node: '>=18.12'}
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/crypto.hash@1000.1.1':
resolution: {integrity: sha512-lb5kwXaOXdIW/4bkLLmtM9HEVRvp2eIvp+TrdawcPoaptgA/5f0/sRG0P52BF8dFqeNDj+1tGdqH89WQEqJnxA==}
engines: {node: '>=18.12'}
@@ -10083,12 +10095,24 @@ packages:
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/fs.hard-link-dir@1000.0.5':
resolution: {integrity: sha512-MtEzlHc2tRvom2/fXFpjpLj3XMN2AzgIm+udEpkxm2VWaRKiY+7br5xBO8NT2h2fADg2chBSgE3W96VaDgLUag==}
engines: {node: '>=18.12'}
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/fs.indexed-pkg-importer@1000.1.17':
resolution: {integrity: sha512-rData6UjMwHMK4oXKyqgr8YIAOAodD3YOA/dZVGJxb3vo7uycSocDDUHHdPl9RBh6LCE5+TBJnJ0Eq5OPMRICg==}
engines: {node: '>=18.12'}
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/fs.indexed-pkg-importer@1000.1.18':
resolution: {integrity: sha512-RZmWjvPfwbd7SHE9Mg/frcEdg54k7oJ9yhM7za7vOBhn0oeF63YBsZj6W4IqbfUxyVOE/RhNye9elDxoKGTwZw==}
engines: {node: '>=18.12'}
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/fs.indexed-pkg-importer@1000.1.8':
resolution: {integrity: sha512-VwsjBhAyW+5TQO6Ndon1y8kyvSLQJyyWzwNRENQN+UkbrybsjNXHX1vcMV4Li/+pQ0VBYFVxYl/cx+EkU8H9hQ==}
engines: {node: '>=18.12'}
@@ -10440,6 +10464,12 @@ packages:
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/worker@1000.4.0':
resolution: {integrity: sha512-y/dFfiEh5iWEomurikjsmCZ5DM9cefzE0vA+NHQKn6tM6PLaBS8QVVMqRzzTEdkw44LoCO/nRZ6OdSkq1AwJtw==}
engines: {node: '>=18.12'}
peerDependencies:
'@pnpm/logger': '>=1001.0.0 <1002.0.0'
'@pnpm/workspace.find-packages@1000.0.25':
resolution: {integrity: sha512-dKXeM46nSXKOzIIvofAhrcZqivxeJIqG27MX2nQoYYtccdJw6IBWozPqDJIPw0V3WLt9DAEQOqooEasbBmB5wg==}
engines: {node: '>=18.12'}
@@ -17086,11 +17116,11 @@ snapshots:
- supports-color
- typanion
'@pnpm/cli-utils@1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
'@pnpm/cli-utils@1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
dependencies:
'@pnpm/cli-meta': 1000.0.8
'@pnpm/config': 1003.1.1(@pnpm/logger@1001.0.0)
'@pnpm/config.deps-installer': 1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/config.deps-installer': 1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/default-reporter': 1002.0.1(@pnpm/logger@1001.0.0)
'@pnpm/error': 1000.0.2
'@pnpm/logger': 1001.0.0
@@ -17098,7 +17128,7 @@ snapshots:
'@pnpm/package-is-installable': 1000.0.10(@pnpm/logger@1001.0.0)
'@pnpm/pnpmfile': 1001.2.2(@pnpm/logger@1001.0.0)
'@pnpm/read-project-manifest': 1000.0.11
'@pnpm/store-connection-manager': 1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/store-connection-manager': 1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/types': 1000.6.0
chalk: 4.1.2
load-json-file: 6.2.0
@@ -17127,16 +17157,16 @@ snapshots:
- supports-color
- typanion
'@pnpm/client@1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
'@pnpm/client@1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
dependencies:
'@pnpm/default-resolver': 1002.0.2(@pnpm/logger@1001.0.0)
'@pnpm/directory-fetcher': 1000.1.7(@pnpm/logger@1001.0.0)
'@pnpm/fetch': 1000.2.2(@pnpm/logger@1001.0.0)
'@pnpm/fetching-types': 1000.1.0
'@pnpm/git-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/git-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/network.auth-header': 1000.0.3
'@pnpm/resolver-base': 1003.0.1
'@pnpm/tarball-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/tarball-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/types': 1000.6.0
ramda: '@pnpm/ramda@0.28.1'
transitivePeerDependencies:
@@ -17179,7 +17209,7 @@ snapshots:
- domexception
- supports-color
'@pnpm/config.deps-installer@1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))':
'@pnpm/config.deps-installer@1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))':
dependencies:
'@pnpm/config.config-writer': 1000.0.5
'@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0)
@@ -17188,7 +17218,7 @@ snapshots:
'@pnpm/logger': 1001.0.0
'@pnpm/network.auth-header': 1000.0.3
'@pnpm/npm-resolver': 1004.0.1(@pnpm/logger@1001.0.0)
'@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/parse-wanted-dependency': 1001.0.0
'@pnpm/pick-registry-for-package': 1000.0.8
'@pnpm/read-modules-dir': 1000.0.0
@@ -17275,6 +17305,18 @@ snapshots:
path-temp: 2.1.0
ramda: '@pnpm/ramda@0.28.1'
'@pnpm/create-cafs-store@1000.0.24(@pnpm/logger@1001.0.0)':
dependencies:
'@pnpm/exec.pkg-requires-build': 1000.0.13
'@pnpm/fetcher-base': 1001.0.5
'@pnpm/fs.indexed-pkg-importer': 1000.1.18(@pnpm/logger@1001.0.0)
'@pnpm/logger': 1001.0.0
'@pnpm/store-controller-types': 1004.3.1
'@pnpm/store.cafs': 1000.0.22
mem: 8.1.1
path-temp: 2.1.0
ramda: '@pnpm/ramda@0.28.1'
'@pnpm/crypto.hash@1000.1.1':
dependencies:
'@pnpm/crypto.polyfill': 1000.1.0
@@ -17426,6 +17468,13 @@ snapshots:
path-temp: 2.1.0
rename-overwrite: 6.0.3
'@pnpm/fs.hard-link-dir@1000.0.5(@pnpm/logger@1001.0.0)':
dependencies:
'@pnpm/graceful-fs': 1000.0.1
'@pnpm/logger': 1001.0.0
path-temp: 2.1.0
rename-overwrite: 6.0.3
'@pnpm/fs.indexed-pkg-importer@1000.1.17(@pnpm/logger@1001.0.0)':
dependencies:
'@pnpm/core-loggers': 1001.0.6(@pnpm/logger@1001.0.0)
@@ -17441,6 +17490,21 @@ snapshots:
rename-overwrite: 6.0.3
sanitize-filename: 1.6.3
'@pnpm/fs.indexed-pkg-importer@1000.1.18(@pnpm/logger@1001.0.0)':
dependencies:
'@pnpm/core-loggers': 1001.0.6(@pnpm/logger@1001.0.0)
'@pnpm/graceful-fs': 1000.0.1
'@pnpm/logger': 1001.0.0
'@pnpm/store-controller-types': 1004.3.1
'@reflink/reflink': 0.1.19
'@zkochan/rimraf': 3.0.2
fs-extra: 11.3.2
make-empty-dir: 3.0.2
p-limit: 3.1.0
path-temp: 2.1.0
rename-overwrite: 6.0.3
sanitize-filename: 1.6.3
'@pnpm/fs.indexed-pkg-importer@1000.1.8(@pnpm/logger@1001.0.0)':
dependencies:
'@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0)
@@ -17477,13 +17541,13 @@ snapshots:
- supports-color
- typanion
'@pnpm/git-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
'@pnpm/git-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
dependencies:
'@pnpm/fetcher-base': 1000.0.11
'@pnpm/fs.packlist': 2.0.0
'@pnpm/logger': 1001.0.0
'@pnpm/prepare-package': 1000.0.16(@pnpm/logger@1001.0.0)(typanion@3.14.0)
'@pnpm/worker': 1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
'@pnpm/worker': 1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
'@zkochan/rimraf': 3.0.2
execa: safe-execa@0.1.2
transitivePeerDependencies:
@@ -17806,7 +17870,7 @@ snapshots:
semver: 7.7.2
ssri: 10.0.5
'@pnpm/package-requester@1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))':
'@pnpm/package-requester@1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))':
dependencies:
'@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0)
'@pnpm/dependency-path': 1000.0.9
@@ -17821,7 +17885,7 @@ snapshots:
'@pnpm/store-controller-types': 1003.0.2
'@pnpm/store.cafs': 1000.0.13
'@pnpm/types': 1000.6.0
'@pnpm/worker': 1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
'@pnpm/worker': 1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
p-defer: 3.0.0
p-limit: 3.1.0
p-queue: 6.6.2
@@ -17846,17 +17910,17 @@ snapshots:
ramda: '@pnpm/ramda@0.28.1'
ssri: 10.0.5
'@pnpm/package-store@1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))':
'@pnpm/package-store@1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))':
dependencies:
'@pnpm/create-cafs-store': 1000.0.14(@pnpm/logger@1001.0.0)
'@pnpm/fetcher-base': 1000.0.11
'@pnpm/logger': 1001.0.0
'@pnpm/package-requester': 1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/package-requester': 1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/resolver-base': 1003.0.1
'@pnpm/store-controller-types': 1003.0.2
'@pnpm/store.cafs': 1000.0.13
'@pnpm/types': 1000.6.0
'@pnpm/worker': 1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
'@pnpm/worker': 1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
'@zkochan/rimraf': 3.0.2
load-json-file: 6.2.0
ramda: '@pnpm/ramda@0.28.1'
@@ -18022,14 +18086,14 @@ snapshots:
- supports-color
- typanion
'@pnpm/store-connection-manager@1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
'@pnpm/store-connection-manager@1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
dependencies:
'@pnpm/cli-meta': 1000.0.8
'@pnpm/client': 1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/client': 1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/config': 1003.1.1(@pnpm/logger@1001.0.0)
'@pnpm/error': 1000.0.2
'@pnpm/logger': 1001.0.0
'@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))
'@pnpm/server': 1001.0.4(@pnpm/logger@1001.0.0)
'@pnpm/store-path': 1000.0.2
'@zkochan/diable': 1.0.2
@@ -18126,7 +18190,7 @@ snapshots:
- supports-color
- typanion
'@pnpm/tarball-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
'@pnpm/tarball-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
dependencies:
'@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0)
'@pnpm/error': 1000.0.2
@@ -18136,7 +18200,7 @@ snapshots:
'@pnpm/graceful-fs': 1000.0.0
'@pnpm/logger': 1001.0.0
'@pnpm/prepare-package': 1000.0.16(@pnpm/logger@1001.0.0)(typanion@3.14.0)
'@pnpm/worker': 1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
'@pnpm/worker': 1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30)
'@zkochan/retry': 0.2.0
lodash.throttle: 4.1.1
p-map-values: 1.0.0
@@ -18191,14 +18255,14 @@ snapshots:
transitivePeerDependencies:
- '@types/node'
'@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30)':
'@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30)':
dependencies:
'@pnpm/cafs-types': 1000.0.0
'@pnpm/create-cafs-store': 1000.0.23(@pnpm/logger@1001.0.0)
'@pnpm/create-cafs-store': 1000.0.24(@pnpm/logger@1001.0.0)
'@pnpm/crypto.polyfill': 1000.1.0
'@pnpm/error': 1000.0.5
'@pnpm/exec.pkg-requires-build': 1000.0.13
'@pnpm/fs.hard-link-dir': 1000.0.4(@pnpm/logger@1001.0.0)
'@pnpm/fs.hard-link-dir': 1000.0.5(@pnpm/logger@1001.0.0)
'@pnpm/graceful-fs': 1000.0.1
'@pnpm/logger': 1001.0.0
'@pnpm/store.cafs': 1000.0.22
@@ -18207,7 +18271,6 @@ snapshots:
is-windows: 1.0.2
load-json-file: 6.2.0
p-limit: 3.1.0
shlex: 2.1.2
transitivePeerDependencies:
- '@types/node'
@@ -18225,9 +18288,9 @@ snapshots:
- supports-color
- typanion
'@pnpm/workspace.find-packages@1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
'@pnpm/workspace.find-packages@1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)':
dependencies:
'@pnpm/cli-utils': 1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.3(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/cli-utils': 1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.4.0(@pnpm/logger@1001.0.0)(@types/node@22.15.30))(typanion@3.14.0)
'@pnpm/constants': 1001.1.0
'@pnpm/fs.find-packages': 1000.0.11
'@pnpm/logger': 1001.0.0