{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-installation/installDeps.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport {\n  readProjectManifestOnly,\n  tryReadProjectManifest,\n} from '../cli-utils/index.ts';\nimport { type Config, getOptionsFromRootManifest } from '../config/index.ts';\nimport { checkDepsStatus } from '../deps.status/index.ts';\nimport { PnpmError } from '../error/index.ts';\nimport { arrayOfWorkspacePackagesToMap } from '../get-context/index.ts';\nimport { filterPkgsBySelectorObjects } from '../filter-workspace-packages/index.ts';\nimport { filterDependenciesByType } from '../manifest-utils/index.ts';\nimport { findWorkspacePackages } from '../workspace.find-packages/index.ts';\nimport type { LockfileObject } from '../lockfile.types/index.ts';\nimport { rebuildProjects } from '../plugin-commands-rebuild/index.ts';\nimport { requireHooks } from '../pnpmfile/index.ts';\nimport {\n  createOrConnectStoreController,\n  type CreateStoreControllerOptions,\n} from '../store-connection-manager/index.ts';\nimport type {\n  IncludedDependencies,\n  Project,\n  ProjectsGraph,\n  ProjectRootDir,\n  PrepareExecutionEnv,\n  ModulesDir,\n  ProjectId,\n  WorkspaceDir,\n} from '../types/index.ts';\nimport {\n  install,\n  mutateModulesInSingleProject,\n  type MutateModulesOptions,\n  type WorkspacePackages,\n} from '../core/index.ts';\nimport { globalInfo, logger } from '../logger/index.ts';\nimport { sequenceGraph } from '../sort-packages/index.ts';\nimport { createPkgGraph } from '../workspace.pkgs-graph/index.ts';\nimport {\n  updateWorkspaceState,\n  type WorkspaceStateSettings,\n} from '../workspace.state/index.ts';\nimport isSubdir from 'is-subdir';\nimport { IgnoredBuildsError } from './errors.ts';\nimport { getPinnedVersion } from './getPinnedVersion.ts';\nimport { getSaveType } from './getSaveType.ts';\nimport { getNodeExecPath } from './nodeExecPath.ts';\nimport {\n  type CommandFullName,\n  type RecursiveOptions,\n  type UpdateDepsMatcher,\n  createMatcher,\n  matchDependencies,\n  makeIgnorePatterns,\n  recursive,\n} from './recursive.ts';\nimport {\n  createWorkspaceSpecs,\n  updateToWorkspacePackagesFromManifest,\n} from './updateWorkspaceDependencies.ts';\nimport { installConfigDeps } from './installConfigDeps.ts';\nimport type { Catalog } from '../catalogs.types/index.ts';\n\nconst OVERWRITE_UPDATE_OPTIONS = {\n  allowNew: true,\n  update: false,\n};\n\nexport type InstallDepsOptions = Pick<\n  Config,\n  | 'allProjects'\n  | 'allProjectsGraph'\n  | 'autoInstallPeers'\n  | 'bail'\n  | 'bin'\n  | 'catalogs'\n  | 'cliOptions'\n  | 'dedupePeerDependents'\n  | 'depth'\n  | 'dev'\n  | 'engineStrict'\n  | 'excludeLinksFromLockfile'\n  | 'global'\n  | 'globalPnpmfile'\n  | 'hooks'\n  | 'ignoreCurrentPrefs'\n  | 'ignorePnpmfile'\n  | 'ignoreScripts'\n  | 'optimisticRepeatInstall'\n  | 'linkWorkspacePackages'\n  | 'lockfileDir'\n  | 'lockfileOnly'\n  | 'pnpmfile'\n  | 'production'\n  | 'preferWorkspacePackages'\n  | 'rawLocalConfig'\n  | 'registries'\n  | 'rootProjectManifestDir'\n  | 'rootProjectManifest'\n  | 'save'\n  | 'saveDev'\n  | 'saveExact'\n  | 'saveOptional'\n  | 'savePeer'\n  | 'savePrefix'\n  | 'saveProd'\n  | 'saveWorkspaceProtocol'\n  | 'lockfileIncludeTarballUrl'\n  | 'scriptsPrependNodePath'\n  | 'scriptShell'\n  | 'selectedProjectsGraph'\n  | 'sideEffectsCache'\n  | 'sideEffectsCacheReadonly'\n  | 'sort'\n  | 'sharedWorkspaceLockfile'\n  | 'shellEmulator'\n  | 'tag'\n  | 'optional'\n  | 'workspaceConcurrency'\n  | 'workspaceDir'\n  | 'workspacePackagePatterns'\n  | 'extraEnv'\n  | 'ignoreWorkspaceCycles'\n  | 'disallowWorkspaceCycles'\n  | 'configDependencies'\n> &\n  CreateStoreControllerOptions & {\n    argv: {\n      original: string[];\n    };\n    allowNew?: boolean | undefined;\n    forceFullResolution?: boolean | undefined;\n    frozenLockfileIfExists?: boolean | undefined;\n    include?: IncludedDependencies | undefined;\n    includeDirect?: IncludedDependencies | undefined;\n    latest?: boolean | undefined;\n    /**\n     * If specified, the installation will only be performed for comparison of the\n     * wanted lockfile. The wanted lockfile will not be updated on disk and no\n     * modules will be linked.\n     *\n     * The given callback is passed the wanted lockfile before installation and\n     * after. This allows functions to reasonably determine whether the wanted\n     * lockfile will change on disk after installation. The lockfile arguments\n     * passed to this callback should not be mutated.\n     */\n    lockfileCheck?:\n      | ((prev: LockfileObject, next: LockfileObject) => void)\n      | undefined;\n    update?: boolean;\n    updateToLatest?: boolean | undefined;\n    updateMatching?: ((pkgName: string) => boolean) | undefined;\n    updatePackageManifest?: boolean | undefined;\n    useBetaCli?: boolean | undefined;\n    recursive?: boolean | undefined;\n    dedupe?: boolean | undefined;\n    workspace?: boolean | undefined;\n    includeOnlyPackageFiles?: boolean | undefined;\n    prepareExecutionEnv: PrepareExecutionEnv;\n    fetchFullMetadata?: boolean | undefined;\n  } & Partial<Pick<Config, 'pnpmHomeDir' | 'strictDepBuilds'>>;\n\nexport async function installDeps(\n  opts: InstallDepsOptions,\n  params: string[]\n): Promise<void> {\n  let newParams = params;\n\n  if (\n    opts.update !== true &&\n    opts.dedupe !== true &&\n    newParams.length === 0 &&\n    opts.optimisticRepeatInstall === true\n  ) {\n    const { upToDate } = await checkDepsStatus({\n      ...opts,\n      ignoreFilteredInstallCache: true,\n    });\n\n    if (upToDate === true) {\n      globalInfo('Already up to date');\n      return;\n    }\n  }\n  if (opts.workspace === true) {\n    if (opts.latest === true) {\n      throw new PnpmError(\n        'BAD_OPTIONS',\n        'Cannot use --latest with --workspace simultaneously'\n      );\n    }\n    if (typeof opts.workspaceDir === 'undefined') {\n      throw new PnpmError(\n        'WORKSPACE_OPTION_OUTSIDE_WORKSPACE',\n        '--workspace can only be used inside a workspace'\n      );\n    }\n\n    if (\n      opts.linkWorkspacePackages === false &&\n      (opts.saveWorkspaceProtocol === false ||\n        typeof opts.saveWorkspaceProtocol === 'undefined')\n    ) {\n      if (opts.rawLocalConfig['save-workspace-protocol'] === false) {\n        throw new PnpmError(\n          'BAD_OPTIONS',\n          \"This workspace has link-workspace-packages turned off, \\\nso dependencies are linked from the workspace only when the workspace protocol is used. \\\nEither set link-workspace-packages to true or don't use the --no-save-workspace-protocol option \\\nwhen running add/update with the --workspace option\"\n        );\n      }\n\n      opts.saveWorkspaceProtocol = true;\n    }\n\n    // biome-ignore lint/complexity/noExtraBooleanCast: <explanation>\n    opts.saveWorkspaceProtocol = !Boolean(opts.linkWorkspacePackages);\n  }\n\n  let store = await createOrConnectStoreController(opts);\n\n  if (opts.configDependencies) {\n    await installConfigDeps(opts.configDependencies, {\n      registries: opts.registries,\n      rootDir: opts.lockfileDir, // ?? opts.rootProjectManifestDir,\n      store: store.ctrl,\n    });\n  }\n\n  if (opts.ignorePnpmfile !== true && !opts.hooks) {\n    opts.hooks = requireHooks(opts.lockfileDir, opts); //  ?? opts.dir\n\n    if (opts.hooks.fetchers != null || opts.hooks.importPackage != null) {\n      store = await createOrConnectStoreController(opts);\n    }\n  }\n\n  const includeDirect = opts.includeDirect ?? {\n    dependencies: true,\n    devDependencies: true,\n    optionalDependencies: true,\n  };\n\n  const forceHoistPattern =\n    typeof opts.rawLocalConfig['hoist-pattern'] !== 'undefined' ||\n    typeof opts.rawLocalConfig['hoist'] !== 'undefined';\n\n  const forcePublicHoistPattern =\n    typeof opts.rawLocalConfig['shamefully-hoist'] !== 'undefined' ||\n    typeof opts.rawLocalConfig['public-hoist-pattern'] !== 'undefined';\n\n  const allProjects =\n    opts.allProjects ??\n    (typeof opts.workspaceDir === 'string'\n      ? await findWorkspacePackages(opts.workspaceDir, {\n          ...opts,\n          patterns: opts.workspacePackagePatterns,\n        })\n      : []);\n\n  if (typeof opts.workspaceDir === 'string') {\n    const selectedProjectsGraph =\n      opts.selectedProjectsGraph ?? selectProjectByDir(allProjects, opts.dir);\n\n    if (selectedProjectsGraph != null) {\n      const sequencedGraph = sequenceGraph(selectedProjectsGraph);\n\n      // Check and warn if there are cyclic dependencies\n      if (opts.ignoreWorkspaceCycles !== true && sequencedGraph.safe !== true) {\n        const cyclicDependenciesInfo =\n          sequencedGraph.cycles.length > 0\n            ? `: ${sequencedGraph.cycles.map((deps) => deps.join(', ')).join('; ')}`\n            : '';\n\n        if (opts.disallowWorkspaceCycles === true) {\n          throw new PnpmError(\n            'DISALLOW_WORKSPACE_CYCLES',\n            `There are cyclic workspace dependencies${cyclicDependenciesInfo}`\n          );\n        }\n\n        logger.warn({\n          message: `There are cyclic workspace dependencies${cyclicDependenciesInfo}`,\n          prefix: opts.workspaceDir,\n        });\n      }\n\n      const didUserConfigureCatalogs = Object.values(opts.catalogs ?? {}).some(\n        (catalog: Catalog | undefined): boolean => {\n          return Object.keys(catalog ?? {}).length > 0;\n        }\n      );\n\n      // pnpm catalogs and dedupe-peer-dependents are features that require the\n      // allProjectsGraph to contain all projects to correctly update the wanted\n      // lockfile. Otherwise the wanted lockfile would be partially updated for\n      // only the selected projects specified for the filtered install.\n      //\n      // This should still be performance since only dependencies for the\n      // selectedProjectsGraph are installed. The allProjectsGraph is only used\n      // to compute the wanted lockfile.\n      let allProjectsGraph: ProjectsGraph | undefined;\n\n      if (didUserConfigureCatalogs || opts.dedupePeerDependents === true) {\n        allProjectsGraph =\n          opts.allProjectsGraph ??\n          createPkgGraph(allProjects, {\n            linkWorkspacePackages: Boolean(opts.linkWorkspacePackages),\n          }).graph;\n      } else {\n        allProjectsGraph = selectedProjectsGraph;\n\n        if (\n          typeof allProjectsGraph[\n            opts.workspaceDir as unknown as keyof typeof allProjectsGraph\n          ] === 'undefined'\n        ) {\n          allProjectsGraph = {\n            ...allProjectsGraph,\n            ...selectProjectByDir(allProjects, opts.workspaceDir),\n          };\n        }\n      }\n      await recursiveInstallThenUpdateWorkspaceState(\n        allProjects,\n        newParams,\n        {\n          ...opts,\n          ...getOptionsFromRootManifest(\n            opts.rootProjectManifestDir,\n            opts.rootProjectManifest\n          ),\n          forceHoistPattern,\n          forcePublicHoistPattern,\n          allProjectsGraph,\n          selectedProjectsGraph,\n          storeControllerAndDir: store,\n          workspaceDir: opts.workspaceDir,\n        },\n        opts.update === true\n          ? 'update'\n          : newParams.length === 0\n            ? 'install'\n            : 'add'\n      );\n      return;\n    }\n  }\n\n  // `pnpm install \"\"` is going to be just `pnpm install`\n  newParams = newParams.filter(Boolean);\n\n  const dir = opts.dir;\n\n  let workspacePackages: WorkspacePackages | undefined;\n\n  if (typeof opts.workspaceDir === 'string') {\n    workspacePackages = arrayOfWorkspacePackagesToMap(\n      allProjects\n    ) as WorkspacePackages;\n  }\n\n  const { manifest, writeProjectManifest } = await tryReadProjectManifest(\n    opts.dir,\n    opts\n  );\n\n  if (manifest === null) {\n    if (opts.update === true || newParams.length === 0) {\n      throw new PnpmError(\n        'NO_PKG_MANIFEST',\n        `No package.json found in ${opts.dir}`\n      );\n    }\n\n    return;\n  }\n\n  const rootManifestOptions = getOptionsFromRootManifest(\n    opts.dir,\n    opts.dir === opts.rootProjectManifestDir\n      ? (opts.rootProjectManifest ?? manifest)\n      : manifest\n  );\n\n  const installOpts: Omit<MutateModulesOptions, 'allProjects'> = {\n    ...opts,\n    tag: opts.tag ?? 'latest',\n    nodeVersion: opts.nodeVersion ?? 'system',\n    lockfileDir: opts.lockfileDir, // ?? (opts.dir as LockFileDir),\n    resolutionMode: opts.resolutionMode ?? 'highest',\n    userAgent: opts.userAgent ?? 'pnpm',\n    saveWorkspaceProtocol:\n      typeof opts.saveWorkspaceProtocol === 'undefined'\n        ? false\n        : opts.saveWorkspaceProtocol,\n    frozenLockfileIfExists: opts.frozenLockfileIfExists ?? false,\n    scriptsPrependNodePath: opts.scriptsPrependNodePath ?? false,\n    lockfileIncludeTarballUrl: opts.lockfileIncludeTarballUrl ?? false,\n    lockfileOnly: opts.lockfileOnly ?? false,\n    ignoreCurrentPrefs: opts.ignoreCurrentPrefs ?? false,\n    ignorePnpmfile: opts.ignorePnpmfile ?? false,\n    shellEmulator: opts.shellEmulator ?? false,\n    ignoreWorkspaceCycles: opts.ignoreWorkspaceCycles ?? false,\n    disallowWorkspaceCycles: opts.disallowWorkspaceCycles ?? false,\n    force: opts.force ?? false,\n    unsafePerm: opts.unsafePerm ?? false,\n    resolveSymlinksInInjectedDirs: opts.resolveSymlinksInInjectedDirs ?? false,\n    forceFullResolution: opts.forceFullResolution ?? false,\n    dedupe: opts.dedupe ?? false,\n    include: opts.include ?? {\n      dependencies: true,\n      devDependencies: true,\n      optionalDependencies: true,\n    },\n    includeDirect: opts.includeDirect ?? {\n      dependencies: true,\n      devDependencies: true,\n      optionalDependencies: true,\n    },\n    update: opts.update ?? false,\n    ...rootManifestOptions,\n    hooks: {\n      ...opts.hooks,\n      afterAllResolved: opts.hooks?.afterAllResolved ?? [],\n    },\n    packageExtensions: rootManifestOptions.packageExtensions ?? {},\n    allowNonAppliedPatches: rootManifestOptions.allowNonAppliedPatches ?? false,\n    ignoredOptionalDependencies:\n      rootManifestOptions.ignoredOptionalDependencies ?? [],\n    overrides: rootManifestOptions.overrides ?? {},\n    allowedDeprecatedVersions:\n      rootManifestOptions.allowedDeprecatedVersions ?? {},\n    autoInstallPeers: opts.autoInstallPeers ?? false,\n    forceHoistPattern,\n    forcePublicHoistPattern,\n    // In case installation is done in a multi-package repository\n    // The dependencies should be built first,\n    // so ignoring scripts for now\n    ignoreScripts:\n      typeof workspacePackages !== 'undefined' || opts.ignoreScripts === true,\n    linkWorkspacePackagesDepth:\n      opts.linkWorkspacePackages === 'deep'\n        ? Number.POSITIVE_INFINITY\n        : opts.linkWorkspacePackages\n          ? 0\n          : -1,\n    sideEffectsCacheRead:\n      opts.sideEffectsCache ?? opts.sideEffectsCacheReadonly ?? false,\n    sideEffectsCacheWrite: opts.sideEffectsCache ?? false,\n    storeController: store.ctrl,\n    storeDir: store.dir,\n    workspacePackages,\n    catalogs: opts.catalogs ?? {},\n    dedupePeerDependents: opts.dedupePeerDependents ?? false,\n    depth: opts.depth ?? 0,\n    engineStrict: opts.engineStrict ?? false,\n    // excludeLinksFromLockfile: opts.excludeLinksFromLockfile ?? false,\n    global: opts.global ?? false,\n    // ignoreCurrentPrefs: opts.ignoreCurrentPrefs ?? false,\n    // ignorePnpmfile: opts.ignorePnpmfile ?? false,\n  } satisfies Omit<MutateModulesOptions, 'allProjects'>;\n\n  if (opts.global === true) {\n    const nodeExecPath = await getNodeExecPath();\n\n    if (isSubdir(opts.pnpmHomeDir, nodeExecPath)) {\n      installOpts.nodeExecPath = nodeExecPath;\n    }\n  }\n\n  let updateMatch: UpdateDepsMatcher | null;\n\n  if (opts.update === true) {\n    if (newParams.length === 0) {\n      const ignoreDeps = manifest.pnpm?.updateConfig?.ignoreDependencies;\n\n      if (typeof ignoreDeps?.length === 'number' && ignoreDeps.length > 0) {\n        newParams = makeIgnorePatterns(ignoreDeps);\n      }\n    }\n\n    updateMatch = newParams.length ? createMatcher(newParams) : null;\n  } else {\n    updateMatch = null;\n  }\n\n  if (updateMatch !== null) {\n    newParams = matchDependencies(updateMatch, manifest, includeDirect);\n\n    if (newParams.length === 0) {\n      if (opts.latest === true) {\n        return;\n      }\n\n      if (opts.depth === 0) {\n        throw new PnpmError(\n          'NO_PACKAGE_IN_DEPENDENCIES',\n          'None of the specified packages were found in the dependencies.'\n        );\n      }\n    }\n  }\n\n  if (opts.update === true && opts.latest === true && newParams.length === 0) {\n    newParams = Object.keys(filterDependenciesByType(manifest, includeDirect));\n  }\n\n  if (opts.workspace === true && typeof workspacePackages !== 'undefined') {\n    if (newParams.length === 0) {\n      newParams = updateToWorkspacePackagesFromManifest(\n        manifest,\n        includeDirect,\n        workspacePackages\n      );\n    } else {\n      newParams = createWorkspaceSpecs(newParams, workspacePackages);\n    }\n  }\n\n  if (newParams.length) {\n    const mutatedProject = {\n      allowNew: opts.allowNew,\n      binsDir: opts.bin,\n      dependencySelectors: newParams,\n      manifest,\n      mutation: 'installSome' as const,\n      peer: opts.savePeer,\n      pinnedVersion: getPinnedVersion(opts),\n      rootDir: opts.dir as ProjectRootDir,\n      targetDependenciesField: getSaveType(opts),\n    };\n\n    const { updatedProject, ignoredBuilds } =\n      await mutateModulesInSingleProject(mutatedProject, installOpts);\n\n    if (\n      opts.save !== false &&\n      typeof updatedProject?.manifest !== 'undefined'\n    ) {\n      await writeProjectManifest(updatedProject.manifest);\n    }\n\n    if (opts.lockfileOnly !== true) {\n      await updateWorkspaceState({\n        allProjects,\n        settings: opts,\n        workspaceDir:\n          // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n          opts.workspaceDir ??\n          (opts.lockfileDir as unknown as WorkspaceDir) ??\n          (opts.dir as WorkspaceDir),\n        pnpmfileExists: opts.hooks?.calculatePnpmfileChecksum != null,\n        filteredInstall:\n          allProjects.length !==\n          Object.keys(opts.selectedProjectsGraph ?? {}).length,\n        configDependencies: opts.configDependencies,\n      });\n    }\n    if (\n      opts.strictDepBuilds === true &&\n      typeof ignoredBuilds?.length === 'number' &&\n      ignoredBuilds.length > 0\n    ) {\n      throw new IgnoredBuildsError(ignoredBuilds);\n    }\n    return;\n  }\n\n  const { updatedManifest, ignoredBuilds } = await install(manifest, {\n    ...installOpts,\n    binsDir: opts.bin,\n    hooks: {\n      ...installOpts.hooks,\n    },\n  });\n\n  if (\n    opts.update === true &&\n    opts.save !== false &&\n    typeof updatedManifest !== 'undefined'\n  ) {\n    await writeProjectManifest(updatedManifest);\n  }\n\n  if (\n    opts.strictDepBuilds === true &&\n    typeof ignoredBuilds?.length === 'number' &&\n    ignoredBuilds.length > 0\n  ) {\n    throw new IgnoredBuildsError(ignoredBuilds);\n  }\n\n  if (\n    opts.linkWorkspacePackages !== false &&\n    typeof opts.workspaceDir === 'string'\n  ) {\n    const { selectedProjectsGraph } = await filterPkgsBySelectorObjects(\n      allProjects,\n      [\n        {\n          excludeSelf: true,\n          includeDependencies: true,\n          parentDir: dir,\n        },\n      ],\n      {\n        workspaceDir: opts.workspaceDir,\n      }\n    );\n    await recursiveInstallThenUpdateWorkspaceState(\n      allProjects,\n      [],\n      {\n        ...opts,\n        ...OVERWRITE_UPDATE_OPTIONS,\n        allProjectsGraph: opts.allProjectsGraph,\n        selectedProjectsGraph,\n        workspaceDir: opts.workspaceDir, // Otherwise TypeScript doesn't understand that is not undefined\n      },\n      'install'\n    );\n\n    if (opts.ignoreScripts === true) return;\n\n    await rebuildProjects(\n      [\n        {\n          // TODO: fix id\n          id: '' as ProjectId,\n          // TODO: fix modulesDir\n          modulesDir: 'node_modules' as ModulesDir,\n          // TODO: fix binsDir\n          binsDir: '',\n          buildIndex: 0,\n          manifest: await readProjectManifestOnly(opts.dir, opts),\n          rootDir: opts.dir as ProjectRootDir,\n        },\n      ],\n      {\n        ...opts,\n        production: opts.production ?? false,\n        optional: opts.optional ?? false,\n        rootProjectManifest: opts.rootProjectManifest ?? manifest,\n        pending: true,\n        storeController: store.ctrl,\n        storeDir: store.dir,\n        skipIfHasSideEffectsCache: true,\n      }\n    );\n  } else {\n    if (opts.lockfileOnly !== true) {\n      await updateWorkspaceState({\n        allProjects,\n        settings: opts,\n\n        workspaceDir:\n          // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n          opts.workspaceDir ??\n          (opts.lockfileDir as unknown as WorkspaceDir) ??\n          (opts.dir as WorkspaceDir),\n        pnpmfileExists: opts.hooks?.calculatePnpmfileChecksum != null,\n        filteredInstall:\n          allProjects.length !==\n          Object.keys(opts.selectedProjectsGraph ?? {}).length,\n        configDependencies: opts.configDependencies,\n      });\n    }\n  }\n}\n\nfunction selectProjectByDir(\n  projects: Project[],\n  searchedDir: string\n): ProjectsGraph | undefined {\n  const project = projects.find(({ rootDir }: Project): boolean => {\n    return path.relative(rootDir, searchedDir) === '';\n  });\n\n  if (project == null) {\n    return undefined;\n  }\n\n  return { [searchedDir]: { dependencies: [], package: project } };\n}\n\nasync function recursiveInstallThenUpdateWorkspaceState(\n  allProjects: Project[],\n  params: string[],\n  opts: RecursiveOptions & WorkspaceStateSettings,\n  cmdFullName: CommandFullName\n): Promise<boolean | string> {\n  const recursiveResult = await recursive(\n    allProjects,\n    params,\n    opts,\n    cmdFullName\n  );\n\n  if (opts.lockfileOnly !== true && typeof opts.workspaceDir === 'string') {\n    await updateWorkspaceState({\n      allProjects,\n      settings: opts,\n      workspaceDir: opts.workspaceDir,\n      pnpmfileExists: opts.hooks?.calculatePnpmfileChecksum != null,\n      filteredInstall:\n        allProjects.length !== Object.keys(opts.selectedProjectsGraph).length,\n      configDependencies: opts.configDependencies,\n    });\n  }\n\n  return recursiveResult;\n}\n"],
  "mappings": "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",
  "names": ["ignoredBuilds"]
}
