{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-installation/recursive.ts"],
  "sourcesContent": ["import { promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport {\n  type RecursiveSummary,\n  throwOnCommandFail,\n} from '../cli-utils/index.ts';\nimport {\n  type Config,\n  getOptionsFromRootManifest,\n  readLocalConfig,\n} from '../config/index.ts';\nimport { PnpmError } from '../error/index.ts';\nimport {\n  arrayOfWorkspacePackagesToMap,\n  type HookOptions,\n  type ProjectOptions,\n} from '../get-context/index.ts';\nimport { logger } from '../logger/index.ts';\nimport { filterDependenciesByType } from '../manifest-utils/index.ts';\nimport { createMatcherWithIndex } from '../matcher/index.ts';\nimport { rebuild } from '../plugin-commands-rebuild/index.ts';\nimport type {\n  ImportIndexedPackageAsync,\n  PackageResponse,\n  StoreController,\n} from '../package-store/index.ts';\nimport { requireHooks } from '../pnpmfile/index.ts';\nimport { sortPackages } from '../sort-packages/index.ts';\nimport {\n  createOrConnectStoreController,\n  type CreateStoreControllerOptions,\n} from '../store-connection-manager/index.ts';\nimport type {\n  IncludedDependencies,\n  PackageManifest,\n  Project,\n  ProjectManifest,\n  ProjectsGraph,\n  ProjectRootDir,\n  ProjectRootDirRealPath,\n  ProjectId,\n  ModulesDir,\n  GlobalPkgDir,\n  WorkspaceDir,\n  LockFileDir,\n} from '../types/index.ts';\nimport type {\n  InstallOptions,\n  MutatedProjectInstall,\n  MutatedProjectInstallSome,\n  UpdateMatchingFunction,\n  WorkspacePackages,\n} from '../core/index.ts';\nimport isSubdir from 'is-subdir';\nimport mem from 'mem';\nimport pFilter from 'p-filter';\nimport pLimit from 'p-limit';\nimport {\n  createWorkspaceSpecs,\n  updateToWorkspacePackagesFromManifest,\n} from './updateWorkspaceDependencies.js';\nimport { getSaveType } from './getSaveType.js';\nimport { getPinnedVersion } from './getPinnedVersion.js';\nimport type { PreferredVersions } from '../resolver-base/index.ts';\nimport { IgnoredBuildsError } from './errors.js';\nimport { install } from '@pnpm/tabtab';\nimport {\n  mutateModules,\n  type MutatedProject,\n  addDependenciesToPackage,\n  type UpdatedProject,\n  type MutateModulesOptions,\n} from '../core/install/index.ts';\nimport type { Log } from '../core-loggers/index.ts';\nimport type { CustomFetchers } from '../fetcher-base/index.ts';\nimport type { LockfileObject } from '../lockfile.types/index.ts';\nimport type { PreResolutionHookContext } from '../hooks.types/index.ts';\n\nexport type RecursiveOptions = CreateStoreControllerOptions &\n  Pick<\n    Config,\n    | 'bail'\n    | 'configDependencies'\n    | 'dedupePeerDependents'\n    | 'depth'\n    | 'globalPnpmfile'\n    | 'hoistPattern'\n    | 'hooks'\n    | 'ignorePnpmfile'\n    | 'ignoreScripts'\n    | 'linkWorkspacePackages'\n    | 'lockfileDir'\n    | 'lockfileOnly'\n    | 'modulesDir'\n    | 'pnpmfile'\n    | 'rawLocalConfig'\n    | 'registries'\n    | 'rootProjectManifest'\n    | 'rootProjectManifestDir'\n    | 'save'\n    | 'saveDev'\n    | 'saveExact'\n    | 'saveOptional'\n    | 'savePeer'\n    | 'savePrefix'\n    | 'saveProd'\n    | 'saveWorkspaceProtocol'\n    | 'lockfileIncludeTarballUrl'\n    | 'sharedWorkspaceLockfile'\n    | 'tag'\n  > & {\n    include?: IncludedDependencies | undefined;\n    includeDirect?: IncludedDependencies | undefined;\n    latest?: boolean | undefined;\n    pending?: boolean | undefined;\n    workspace?: boolean | undefined;\n    allowNew?: boolean | undefined;\n    forceHoistPattern?: boolean | undefined;\n    forcePublicHoistPattern?: boolean | undefined;\n    ignoredPackages?: Set<string> | undefined;\n    update?: boolean | undefined;\n    updatePackageManifest?: boolean | undefined;\n    updateMatching?: UpdateMatchingFunction | undefined;\n    useBetaCli?: boolean | undefined;\n    allProjectsGraph?: ProjectsGraph | undefined;\n    selectedProjectsGraph: ProjectsGraph;\n    preferredVersions?: PreferredVersions | undefined;\n    pruneDirectDependencies?: boolean | undefined;\n    storeControllerAndDir?:\n      | {\n          ctrl: StoreController<\n            PackageResponse,\n            PackageResponse,\n            {\n              isBuilt: boolean;\n              importMethod?: string | undefined;\n            }\n          >;\n          dir: string;\n        }\n      | undefined;\n  } & Partial<\n    Pick<Config, 'sort' | 'strictDepBuilds' | 'workspaceConcurrency'>\n  > &\n  Required<Pick<Config, 'workspaceDir'>>;\n\nexport type CommandFullName =\n  | 'install'\n  | 'add'\n  | 'remove'\n  | 'update'\n  | 'import';\n\nexport async function recursive(\n  allProjects: Project[],\n  params: string[],\n  opts: RecursiveOptions,\n  cmdFullName: CommandFullName\n): Promise<boolean | string> {\n  let newParams = [...params];\n\n  if (allProjects.length === 0) {\n    // It might make sense to throw an exception in this case\n    return false;\n  }\n\n  const pkgs = Object.values(opts.selectedProjectsGraph).map(\n    (wsPkg) => wsPkg.package\n  );\n\n  if (pkgs.length === 0) {\n    return false;\n  }\n  const manifestsByPath = getManifestsByPath(allProjects);\n\n  const throwOnFail = throwOnCommandFail.bind(\n    null,\n    `pnpm recursive ${cmdFullName}`\n  );\n\n  const store =\n    opts.storeControllerAndDir ?? (await createOrConnectStoreController(opts));\n\n  const workspacePackages: WorkspacePackages =\n    arrayOfWorkspacePackagesToMap(allProjects);\n\n  const targetDependenciesField = getSaveType(opts);\n\n  const rootManifestDir = opts.lockfileDir; // ?? opts.dir;\n\n  const installOpts = Object.assign(opts, {\n    ...getOptionsFromRootManifest(\n      rootManifestDir,\n      manifestsByPath[rootManifestDir]?.manifest\n    ),\n    allProjects: getAllProjects(\n      manifestsByPath,\n      opts.allProjectsGraph ?? {},\n      opts.sort\n    ),\n    linkWorkspacePackagesDepth:\n      opts.linkWorkspacePackages === 'deep'\n        ? Number.POSITIVE_INFINITY\n        : opts.linkWorkspacePackages\n          ? 0\n          : -1,\n    ownLifecycleHooksStdio: 'pipe' as const,\n    peer: opts.savePeer,\n    pruneLockfileImporters:\n      (opts.ignoredPackages == null || opts.ignoredPackages.size === 0) &&\n      pkgs.length === allProjects.length,\n    storeController: store.ctrl,\n    storeDir: store.dir,\n    targetDependenciesField,\n    workspacePackages,\n\n    forceHoistPattern:\n      typeof opts.rawLocalConfig['hoist-pattern'] !== 'undefined' ||\n      typeof opts.rawLocalConfig['hoist'] !== 'undefined',\n    forceShamefullyHoist:\n      typeof opts.rawLocalConfig['shamefully-hoist'] !== 'undefined',\n  });\n\n  const result: RecursiveSummary = {};\n\n  const memReadLocalConfig = mem(readLocalConfig);\n\n  const updateToLatest = opts.update === true && opts.latest === true;\n\n  const includeDirect = opts.includeDirect ?? {\n    dependencies: true,\n    devDependencies: true,\n    optionalDependencies: true,\n  };\n\n  let updateMatch: UpdateDepsMatcher | null;\n\n  if (cmdFullName === 'update') {\n    if (newParams.length === 0 && typeof opts.workspaceDir !== 'undefined') {\n      const ignoreDeps =\n        manifestsByPath[opts.workspaceDir]?.manifest.pnpm?.updateConfig\n          ?.ignoreDependencies;\n\n      if (typeof ignoreDeps?.length === 'number' && ignoreDeps.length > 0) {\n        newParams = makeIgnorePatterns(ignoreDeps);\n      }\n    }\n    updateMatch = newParams.length ? createMatcher(newParams) : null;\n  } else {\n    updateMatch = null;\n  }\n\n  // For a workspace with shared lockfile\n  if (\n    typeof opts.lockfileDir === 'string' &&\n    typeof opts.workspaceDir === 'string' &&\n    ['add', 'install', 'remove', 'update', 'import'].includes(cmdFullName)\n  ) {\n    let importers = getImporters(opts);\n\n    const calculatedRepositoryRoot = await fs.realpath(\n      calculateRepositoryRoot(\n        opts.workspaceDir,\n        importers.map(\n          (\n            x\n          ):\n            | ProjectRootDir\n            | ProjectRootDirRealPath\n            | GlobalPkgDir\n            | WorkspaceDir => {\n            return x.rootDir;\n          }\n        )\n      )\n    );\n\n    const isFromWorkspace = isSubdir.bind(null, calculatedRepositoryRoot);\n\n    importers = await pFilter(\n      importers,\n      async ({\n        rootDirRealPath,\n      }: {\n        rootDir:\n          | ProjectRootDir\n          | ProjectRootDirRealPath\n          | GlobalPkgDir\n          | WorkspaceDir;\n        rootDirRealPath?: ProjectRootDirRealPath | undefined;\n      }): Promise<boolean> => {\n        return (\n          typeof rootDirRealPath === 'string' &&\n          isFromWorkspace(rootDirRealPath)\n        );\n      }\n    );\n\n    if (importers.length === 0) {\n      return true;\n    }\n\n    let mutation!: string;\n\n    switch (cmdFullName) {\n      case 'remove': {\n        mutation = 'uninstallSome';\n        break;\n      }\n      case 'import': {\n        mutation = 'install';\n        break;\n      }\n      default: {\n        mutation =\n          newParams.length === 0 && updateToLatest !== true\n            ? 'install'\n            : 'installSome';\n        break;\n      }\n    }\n\n    const mutatedImporters: (MutatedProject & {\n      modulesDir?: ModulesDir | undefined;\n    })[] = [];\n\n    await Promise.all(\n      importers.map(\n        async ({\n          rootDir,\n        }: {\n          rootDir:\n            | ProjectRootDir\n            | ProjectRootDirRealPath\n            | GlobalPkgDir\n            | WorkspaceDir\n            | LockFileDir;\n          rootDirRealPath?: ProjectRootDirRealPath | undefined;\n        }): Promise<void> => {\n          const localConfig = await memReadLocalConfig(rootDir);\n\n          const modulesDir = localConfig.modulesDir ?? opts.modulesDir;\n\n          const manifest = manifestsByPath[rootDir]?.manifest;\n\n          if (typeof manifest === 'undefined') {\n            return;\n          }\n\n          let currentInput = [...newParams];\n\n          if (updateMatch != null) {\n            currentInput = matchDependencies(\n              updateMatch,\n              manifest,\n              includeDirect\n            );\n            if (\n              currentInput.length === 0 &&\n              (typeof opts.depth === 'undefined' || opts.depth <= 0)\n            ) {\n              installOpts.pruneLockfileImporters = false;\n              return;\n            }\n          }\n          if (updateToLatest && newParams.length === 0) {\n            currentInput = Object.keys(\n              filterDependenciesByType(manifest, includeDirect)\n            );\n          }\n\n          if (opts.workspace === true) {\n            if (currentInput.length === 0) {\n              currentInput = updateToWorkspacePackagesFromManifest(\n                manifest,\n                includeDirect,\n                workspacePackages\n              );\n            } else {\n              currentInput = createWorkspaceSpecs(\n                currentInput,\n                workspacePackages\n              );\n            }\n          }\n\n          switch (mutation) {\n            case 'uninstallSome': {\n              const mp: MutatedProject & {\n                modulesDir?: ModulesDir | undefined;\n              } = {\n                dependencyNames: currentInput,\n                modulesDir,\n                mutation,\n                rootDir,\n                targetDependenciesField,\n              };\n\n              mutatedImporters.push(mp);\n\n              return;\n            }\n\n            case 'installSome': {\n              const mp: MutatedProjectInstallSome & {\n                modulesDir?: ModulesDir | undefined;\n              } = {\n                allowNew: cmdFullName === 'install' || cmdFullName === 'add',\n                dependencySelectors: currentInput,\n                modulesDir,\n                mutation,\n                peer: opts.savePeer,\n                pinnedVersion: getPinnedVersion({\n                  saveExact:\n                    typeof localConfig.saveExact === 'boolean'\n                      ? localConfig.saveExact\n                      : opts.saveExact,\n                  savePrefix:\n                    typeof localConfig.savePrefix === 'string'\n                      ? localConfig.savePrefix\n                      : opts.savePrefix,\n                }),\n                rootDir,\n                targetDependenciesField,\n                update: opts.update,\n                updateMatching: opts.updateMatching,\n                updatePackageManifest: opts.updatePackageManifest,\n                updateToLatest: opts.latest,\n              };\n\n              mutatedImporters.push(mp);\n\n              return;\n            }\n\n            case 'install': {\n              const mp: MutatedProjectInstall & {\n                modulesDir?: ModulesDir | undefined;\n              } = {\n                modulesDir,\n                mutation,\n                pruneDirectDependencies: opts.pruneDirectDependencies,\n                rootDir,\n                update: opts.update,\n                updateMatching: opts.updateMatching,\n                updatePackageManifest: opts.updatePackageManifest,\n                updateToLatest: opts.latest,\n              };\n\n              mutatedImporters.push(mp);\n            }\n          }\n        }\n      )\n    );\n\n    if (\n      !opts.selectedProjectsGraph[opts.workspaceDir] &&\n      typeof manifestsByPath[opts.workspaceDir] !== 'undefined'\n    ) {\n      const mp: MutatedProject = {\n        mutation: 'install',\n        rootDir: opts.workspaceDir,\n        update: false,\n      };\n\n      mutatedImporters.push(mp);\n    }\n\n    if (\n      mutatedImporters.length === 0 &&\n      cmdFullName === 'update' &&\n      opts.depth === 0\n    ) {\n      throw new PnpmError(\n        'NO_PACKAGE_IN_DEPENDENCIES',\n        'None of the specified packages were found in the dependencies of any of the projects.'\n      );\n    }\n\n    const { updatedProjects: mutatedPkgs, ignoredBuilds } = await mutateModules(\n      mutatedImporters,\n      {\n        ...installOpts,\n        update: installOpts.update ?? opts.update ?? false,\n        bin: '',\n        include: installOpts.include ?? {\n          dependencies: true,\n          devDependencies: true,\n          optionalDependencies: true,\n        },\n        includeDirect: installOpts.includeDirect ?? {\n          dependencies: true,\n          devDependencies: true,\n          optionalDependencies: true,\n        },\n        ignoreScripts: installOpts.ignoreScripts ?? false,\n        unsafePerm: installOpts.unsafePerm ?? false,\n        dedupePeerDependents: installOpts.dedupePeerDependents ?? false,\n        allowNonAppliedPatches: installOpts.allowNonAppliedPatches ?? false,\n        tag: installOpts.tag ?? '',\n        resolveSymlinksInInjectedDirs:\n          installOpts.resolveSymlinksInInjectedDirs ?? false,\n        resolutionMode: installOpts.resolutionMode ?? 'highest',\n        overrides: installOpts.overrides ?? {},\n        userAgent: installOpts.userAgent ?? 'pnpm',\n        hooks: installOpts.hooks ?? {},\n        allowedDeprecatedVersions: installOpts.allowedDeprecatedVersions ?? {},\n        ignoredOptionalDependencies:\n          installOpts.ignoredOptionalDependencies ?? [],\n        packageExtensions: installOpts.packageExtensions ?? {},\n        nodeVersion: installOpts.nodeVersion ?? '',\n        depth: installOpts.depth ?? 0,\n        ignorePnpmfile: installOpts.ignorePnpmfile ?? false,\n        force: installOpts.force ?? false,\n        engineStrict: installOpts.engineStrict ?? false,\n        lockfileDir: installOpts.lockfileDir,\n        modulesDir: installOpts.modulesDir ?? ('node_modules' as ModulesDir),\n        forcePublicHoistPattern: installOpts.forcePublicHoistPattern ?? false,\n        lockfileIncludeTarballUrl:\n          installOpts.lockfileIncludeTarballUrl ?? false,\n        saveWorkspaceProtocol: installOpts.saveWorkspaceProtocol ?? false,\n        lockfileOnly: installOpts.lockfileOnly ?? false,\n        storeDir: installOpts.storeDir,\n        storeController: store.ctrl,\n      }\n    );\n\n    if (opts.save !== false) {\n      await Promise.all(\n        mutatedPkgs.map(\n          async ({\n            originalManifest,\n            manifest,\n            rootDir,\n          }: UpdatedProject): Promise<void> => {\n            const m = originalManifest ?? manifest;\n            const p = manifestsByPath[rootDir];\n\n            if (typeof p === 'undefined' || typeof m === 'undefined') {\n              return;\n            }\n\n            return p.writeProjectManifest(m);\n          }\n        )\n      );\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    return true;\n  }\n\n  const pkgPaths = (\n    Object.keys(opts.selectedProjectsGraph) as ProjectRootDir[]\n  ).sort();\n\n  const limitInstallation = pLimit(opts.workspaceConcurrency ?? 4);\n\n  await Promise.all(\n    pkgPaths.map(async (rootDir: ProjectRootDir): Promise<void> => {\n      return limitInstallation(async (): Promise<void> => {\n        const hooks =\n          opts.ignorePnpmfile === true\n            ? {}\n            : ((): {\n                afterAllResolved: ((\n                  arg: LockfileObject,\n                  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                  ...otherArgs: any[]\n                ) => LockfileObject | Promise<LockfileObject>)[];\n                // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                readPackage: ((arg: any, ...otherArgs: any[]) => any)[];\n                preResolution?:\n                  | ((\n                      arg: PreResolutionHookContext,\n                      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                      ...otherArgs: any[]\n                    ) => Promise<void>)\n                  | undefined;\n                filterLog?: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n                Array<(arg: Log, ...otherArgs: any[]) => boolean> | undefined;\n                importPackage?: ImportIndexedPackageAsync | undefined;\n                fetchers?: CustomFetchers | undefined;\n                calculatePnpmfileChecksum?:\n                  | (() => Promise<string | undefined>)\n                  | undefined;\n              } => {\n                const pnpmfileHooks = requireHooks(rootDir, opts);\n\n                return {\n                  ...opts.hooks,\n                  ...pnpmfileHooks,\n                  afterAllResolved: [\n                    ...(pnpmfileHooks.afterAllResolved ?? []),\n                    ...(opts.hooks?.afterAllResolved ?? []),\n                  ],\n                  readPackage: [\n                    ...(pnpmfileHooks.readPackage ?? []),\n                    ...(opts.hooks?.readPackage ?? []),\n                  ],\n                };\n              })();\n        try {\n          if (opts.ignoredPackages?.has(rootDir) === true) {\n            return;\n          }\n\n          result[rootDir] = { status: 'running' };\n\n          const m = manifestsByPath[rootDir];\n\n          if (typeof m === 'undefined') {\n            return;\n          }\n\n          const { manifest, writeProjectManifest } = m;\n\n          let currentInput = [...params];\n\n          if (updateMatch != null) {\n            currentInput = matchDependencies(\n              updateMatch,\n              manifest,\n              includeDirect\n            );\n\n            if (currentInput.length === 0) {\n              return;\n            }\n          }\n\n          if (updateToLatest && newParams.length === 0) {\n            currentInput = Object.keys(\n              filterDependenciesByType(manifest, includeDirect)\n            );\n          }\n\n          if (opts.workspace === true) {\n            if (currentInput.length === 0) {\n              currentInput = updateToWorkspacePackagesFromManifest(\n                manifest,\n                includeDirect,\n                workspacePackages\n              );\n            } else {\n              currentInput = createWorkspaceSpecs(\n                currentInput,\n                workspacePackages\n              );\n            }\n          }\n\n          // let action:\n          //   | ((\n          //       _manifest: PackageManifest,\n          //       opts: MutateModulesOptions\n          //     ) => Promise<{\n          //       updatedManifest?: ProjectManifest | undefined;\n          //       ignoredBuilds?: string[] | undefined;\n          //     }>)\n          //   | ((options: {\n          //       name: string;\n          //       completer: string;\n          //       shell?: 'bash' | 'fish' | 'pwsh' | 'zsh' | undefined;\n          //     }) => Promise<void>)\n          //   | undefined;\n\n          const localConfig = await memReadLocalConfig(rootDir);\n\n          switch (cmdFullName) {\n            case 'remove': {\n              const action = async (\n                _manifest: PackageManifest,\n                opts: MutateModulesOptions\n              ): Promise<{\n                updatedManifest?: ProjectManifest | undefined;\n                ignoredBuilds: string[] | undefined;\n              }> => {\n                const mutationResult = await mutateModules(\n                  [\n                    {\n                      dependencyNames: currentInput,\n                      mutation: 'uninstallSome',\n                      rootDir,\n                    },\n                  ],\n                  opts\n                );\n\n                return {\n                  updatedManifest: mutationResult.updatedProjects[0]?.manifest,\n                  ignoredBuilds: mutationResult.ignoredBuilds,\n                };\n              };\n\n              const rootOptions = getOptionsFromRootManifest(rootDir, manifest);\n\n              const { updatedManifest: newManifest, ignoredBuilds } =\n                await action(manifest, {\n                  ...installOpts,\n                  ...localConfig,\n                  nodeVersion: installOpts.nodeVersion ?? '',\n                  engineStrict: installOpts.engineStrict ?? false,\n                  lockfileDir: installOpts.lockfileDir,\n                  depth: installOpts.depth ?? 0,\n                  forcePublicHoistPattern:\n                    installOpts.forcePublicHoistPattern ?? false,\n                  force: installOpts.force ?? false,\n                  lockfileIncludeTarballUrl:\n                    installOpts.lockfileIncludeTarballUrl ?? false,\n                  saveWorkspaceProtocol:\n                    installOpts.saveWorkspaceProtocol ?? false,\n                  lockfileOnly: installOpts.lockfileOnly ?? false,\n                  ...rootOptions,\n                  ...opts.allProjectsGraph?.[rootDir]?.package,\n                  allowedDeprecatedVersions:\n                    rootOptions.allowedDeprecatedVersions ?? {},\n                  allowNonAppliedPatches:\n                    rootOptions.allowNonAppliedPatches ?? false,\n                  resolveSymlinksInInjectedDirs:\n                    installOpts.resolveSymlinksInInjectedDirs ?? false,\n                  resolutionMode: installOpts.resolutionMode ?? 'highest',\n                  dedupePeerDependents:\n                    installOpts.dedupePeerDependents ?? false,\n                  update: installOpts.update ?? false,\n                  bin: path.join(rootDir, 'node_modules', '.bin'),\n                  dir: rootDir,\n                  hooks,\n                  overrides: installOpts.overrides ?? {},\n                  tag: installOpts.tag ?? '',\n                  unsafePerm: installOpts.unsafePerm ?? false,\n                  userAgent: installOpts.userAgent ?? '',\n                  include: installOpts.include ?? {\n                    optionalDependencies: true,\n                    dependencies: true,\n                    devDependencies: true,\n                  },\n                  includeDirect: installOpts.includeDirect ?? {\n                    optionalDependencies: false,\n                    dependencies: true,\n                    devDependencies: false,\n                  },\n                  ignoreScripts: true,\n                  ignorePnpmfile: installOpts.ignorePnpmfile ?? false,\n                  ignoredOptionalDependencies:\n                    installOpts.ignoredOptionalDependencies ?? [],\n                  packageExtensions: installOpts.packageExtensions ?? {},\n                  modulesDir:\n                    localConfig.modulesDir ?? ('node_modules' as ModulesDir),\n                  // pinnedVersion: getPinnedVersion({\n                  //   saveExact:\n                  //     typeof localConfig.saveExact === 'boolean'\n                  //       ? localConfig.saveExact\n                  //       : opts.saveExact,\n                  //   savePrefix:\n                  //     typeof localConfig.savePrefix === 'string'\n                  //       ? localConfig.savePrefix\n                  //       : opts.savePrefix,\n                  // }),\n                  rawConfig: {\n                    ...installOpts.rawConfig,\n                    ...localConfig,\n                  },\n                  storeController: store.ctrl,\n                });\n\n              if (opts.save !== false && typeof newManifest !== 'undefined') {\n                await writeProjectManifest(newManifest);\n              }\n\n              if (\n                opts.strictDepBuilds === true &&\n                typeof ignoredBuilds !== 'undefined' &&\n                ignoredBuilds.length > 0\n              ) {\n                throw new IgnoredBuildsError(ignoredBuilds);\n              }\n\n              break;\n            }\n\n            default: {\n              // const action =\n              //   ;\n\n              const response = await (currentInput.length === 0\n                ? install\n                : async (\n                    manifest: PackageManifest,\n                    opts: Omit<InstallOptions, 'allProjects'> & {\n                      bin: string;\n                    }\n                  ): Promise<{\n                    updatedManifest?: ProjectManifest | undefined;\n                    ignoredBuilds?: string[] | undefined;\n                  }> => {\n                    return addDependenciesToPackage(\n                      manifest,\n                      currentInput,\n                      opts\n                    );\n                  })(\n                {\n                  ...manifest,\n                  completer: '',\n                },\n                {\n                  ...installOpts,\n                  ...localConfig,\n                  ...getOptionsFromRootManifest(rootDir, manifest),\n                  ...opts.allProjectsGraph?.[rootDir]?.package,\n                  modulesDir:\n                    installOpts.modulesDir ?? ('node_modules' as ModulesDir),\n                  lockfileOnly: installOpts.lockfileOnly ?? false,\n                  saveWorkspaceProtocol:\n                    installOpts.saveWorkspaceProtocol ?? false,\n                  lockfileIncludeTarballUrl:\n                    installOpts.lockfileIncludeTarballUrl ?? false,\n                  force: installOpts.force ?? false,\n                  forcePublicHoistPattern:\n                    installOpts.forcePublicHoistPattern ?? false,\n                  engineStrict: installOpts.engineStrict ?? false,\n                  ignorePnpmfile: installOpts.ignorePnpmfile ?? false,\n                  unsafePerm: installOpts.unsafePerm ?? false,\n                  resolveSymlinksInInjectedDirs:\n                    installOpts.resolveSymlinksInInjectedDirs ?? false,\n                  dedupePeerDependents:\n                    installOpts.dedupePeerDependents ?? false,\n                  allowNonAppliedPatches:\n                    installOpts.allowNonAppliedPatches ?? false,\n                  depth: 0,\n                  lockfileDir: opts.lockfileDir,\n                  bin: path.join(rootDir, 'node_modules', '.bin'),\n                  dir: rootDir,\n                  nodeVersion: opts.nodeVersion ?? '',\n                  packageExtensions: {},\n                  ignoredOptionalDependencies: [],\n                  include: installOpts.include ?? {\n                    optionalDependencies: true,\n                    dependencies: true,\n                    devDependencies: true,\n                  },\n                  includeDirect: installOpts.includeDirect ?? {\n                    optionalDependencies: false,\n                    dependencies: true,\n                    devDependencies: false,\n                  },\n                  userAgent: opts.userAgent ?? '',\n                  tag: installOpts.tag ?? '',\n                  resolutionMode: installOpts.resolutionMode ?? 'highest',\n                  overrides: installOpts.overrides ?? {},\n                  allowedDeprecatedVersions:\n                    installOpts.allowedDeprecatedVersions ?? {},\n                  hooks,\n                  ignoreScripts: true,\n                  // pinnedVersion: getPinnedVersion({\n                  //   saveExact:\n                  //     typeof localConfig.saveExact === 'boolean'\n                  //       ? localConfig.saveExact\n                  //       : opts.saveExact,\n                  //   savePrefix:\n                  //     typeof localConfig.savePrefix === 'string'\n                  //       ? localConfig.savePrefix\n                  //       : opts.savePrefix,\n                  // }),\n                  rawConfig: {\n                    ...installOpts.rawConfig,\n                    ...localConfig,\n                  },\n                  storeController: store.ctrl,\n                }\n              );\n\n              if (typeof response === 'undefined') {\n                return;\n              }\n\n              const { updatedManifest: newManifest, ignoredBuilds } = response;\n\n              if (opts.save !== false && typeof newManifest !== 'undefined') {\n                await writeProjectManifest(newManifest);\n              }\n\n              if (\n                opts.strictDepBuilds === true &&\n                typeof ignoredBuilds !== 'undefined' &&\n                ignoredBuilds.length > 0\n              ) {\n                throw new IgnoredBuildsError(ignoredBuilds);\n              }\n\n              break;\n            }\n          }\n\n          // const { updatedManifest: newManifest, ignoredBuilds } = await action(\n          //   manifest,\n          //   {\n          //     ...installOpts,\n          //     ...localConfig,\n          //     ...getOptionsFromRootManifest(rootDir, manifest),\n          //     ...opts.allProjectsGraph?.[rootDir]?.package,\n          //     bin: path.join(rootDir, 'node_modules', '.bin'),\n          //     dir: rootDir,\n          //     hooks,\n          //     ignoreScripts: true,\n          //     pinnedVersion: getPinnedVersion({\n          //       saveExact:\n          //         typeof localConfig.saveExact === 'boolean'\n          //           ? localConfig.saveExact\n          //           : opts.saveExact,\n          //       savePrefix:\n          //         typeof localConfig.savePrefix === 'string'\n          //           ? localConfig.savePrefix\n          //           : opts.savePrefix,\n          //     }),\n          //     rawConfig: {\n          //       ...installOpts.rawConfig,\n          //       ...localConfig,\n          //     },\n          //     storeController: store.ctrl,\n          //   }\n          // );\n\n          // if (opts.save !== false) {\n          //   await writeProjectManifest(newManifest);\n          // }\n\n          // if (\n          //   opts.strictDepBuilds === true &&\n          //   (ignoredBuilds?.length ?? 0) > 0\n          // ) {\n          //   throw new IgnoredBuildsError(ignoredBuilds);\n          // }\n\n          result[rootDir].status = 'passed';\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        } catch (err: any) {\n          logger.info(err);\n\n          if (!opts.bail) {\n            result[rootDir] = {\n              status: 'failure',\n              error: err,\n              message: err.message,\n              prefix: rootDir,\n            };\n            return;\n          }\n\n          err['prefix'] = rootDir;\n          throw err;\n        }\n      });\n    })\n  );\n\n  if (\n    opts.lockfileOnly !== true &&\n    opts.ignoreScripts !== true &&\n    ['add', 'install', 'update'].includes(cmdFullName)\n  ) {\n    await rebuild.handler(\n      {\n        ...opts,\n        pending: opts.pending === true,\n        skipIfHasSideEffectsCache: true,\n      },\n      []\n    );\n  }\n\n  throwOnFail(result);\n\n  if (\n    !Object.values(result).filter(({ status }) => status === 'passed').length &&\n    cmdFullName === 'update' &&\n    opts.depth === 0\n  ) {\n    throw new PnpmError(\n      'NO_PACKAGE_IN_DEPENDENCIES',\n      'None of the specified packages were found in the dependencies of any of the projects.'\n    );\n  }\n\n  return true;\n}\n\nfunction calculateRepositoryRoot(\n  workspaceDir: string,\n  projectDirs: string[]\n): string {\n  // assume repo root is workspace dir\n  let relativeRepoRoot = '.';\n  for (const rootDir of projectDirs) {\n    const relativePartRegExp = new RegExp(`^(\\\\.\\\\.\\\\${path.sep})+`);\n    const relativePartMatch = relativePartRegExp.exec(\n      path.relative(workspaceDir, rootDir)\n    );\n    if (relativePartMatch != null) {\n      const relativePart = relativePartMatch[0];\n      if (relativePart.length > relativeRepoRoot.length) {\n        relativeRepoRoot = relativePart;\n      }\n    }\n  }\n  return path.resolve(workspaceDir, relativeRepoRoot);\n}\n\nexport function matchDependencies(\n  match: (input: string) => string | null,\n  manifest: ProjectManifest,\n  include: IncludedDependencies\n): string[] {\n  const deps = Object.keys(filterDependenciesByType(manifest, include));\n  const matchedDeps = [];\n  for (const dep of deps) {\n    const spec = match(dep);\n    if (spec === null) continue;\n    matchedDeps.push(spec ? `${dep}@${spec}` : dep);\n  }\n  return matchedDeps;\n}\n\nexport type UpdateDepsMatcher = (input: string) => string | null;\n\nexport function createMatcher(params: string[]): UpdateDepsMatcher {\n  const patterns: string[] = [];\n\n  const specs: string[] = [];\n\n  for (const param of params) {\n    const { pattern, versionSpec } = parseUpdateParam(param);\n\n    patterns.push(pattern);\n\n    specs.push(versionSpec ?? '');\n  }\n\n  const matcher = createMatcherWithIndex(patterns);\n\n  return (depName: string): string | null => {\n    const index = matcher(depName);\n\n    if (index === -1) {\n      return null;\n    }\n\n    return specs[index] ?? null;\n  };\n}\n\nexport function parseUpdateParam(param: string): {\n  pattern: string;\n  versionSpec: string | undefined;\n} {\n  const atIndex = param.indexOf('@', param[0] === '!' ? 2 : 1);\n\n  if (atIndex === -1) {\n    return {\n      pattern: param,\n      versionSpec: undefined,\n    };\n  }\n\n  return {\n    pattern: param.slice(0, atIndex),\n    versionSpec: param.slice(atIndex + 1),\n  };\n}\n\nexport function makeIgnorePatterns(ignoredDependencies: string[]): string[] {\n  return ignoredDependencies.map((depName) => `!${depName}`);\n}\n\nfunction getAllProjects(\n  manifestsByPath: ManifestsByPath,\n  allProjectsGraph: ProjectsGraph,\n  sort?: boolean | undefined\n): (ProjectOptions & HookOptions & { binsDir: string })[] {\n  const chunks: ProjectRootDir[][] =\n    sort === true\n      ? sortPackages(allProjectsGraph)\n      : [Object.keys(allProjectsGraph).sort() as ProjectRootDir[]];\n\n  return chunks.flatMap(\n    (\n      prefixes: ProjectRootDir[],\n      buildIndex: number\n    ): (ProjectOptions & HookOptions & { binsDir: string })[] => {\n      return prefixes\n        .map(\n          (\n            rootDir:\n              | ProjectRootDir\n              | ProjectRootDirRealPath\n              | GlobalPkgDir\n              | WorkspaceDir\n              | LockFileDir\n          ):\n            | (ProjectOptions & HookOptions & { binsDir: string })\n            | undefined => {\n            const pkg = allProjectsGraph[rootDir]?.package;\n\n            if (typeof pkg === 'undefined') {\n              return;\n            }\n\n            const { rootDirRealPath, modulesDir } = pkg;\n\n            const manifest = manifestsByPath[rootDir]?.manifest;\n\n            if (\n              typeof manifest === 'undefined' ||\n              typeof modulesDir === 'undefined'\n            ) {\n              return;\n            }\n\n            return {\n              // TODO: fix id\n              id: '' as ProjectId,\n              // TODO: fix binsDir\n              binsDir: '',\n              buildIndex,\n              manifest,\n              rootDir,\n              rootDirRealPath,\n              modulesDir,\n            };\n          }\n        )\n        .filter(Boolean);\n    }\n  );\n}\n\ntype ManifestsByPath = {\n  [dir: string]: Omit<Project, 'rootDir' | 'rootDirRealPath'>;\n};\n\nfunction getManifestsByPath(\n  projects: Project[]\n): Record<\n  | ProjectRootDir\n  | ProjectRootDirRealPath\n  | GlobalPkgDir\n  | WorkspaceDir\n  | LockFileDir,\n  Omit<Project, 'rootDir' | 'rootDirRealPath'>\n> {\n  const manifestsByPath: Record<\n    string,\n    Omit<Project, 'rootDir' | 'rootDirRealPath'>\n  > = {};\n  for (const { rootDir, manifest, writeProjectManifest } of projects) {\n    manifestsByPath[rootDir] = { manifest, writeProjectManifest };\n  }\n  return manifestsByPath;\n}\n\nfunction getImporters(\n  opts: Pick<RecursiveOptions, 'selectedProjectsGraph' | 'ignoredPackages'>\n): Array<{\n  rootDir:\n    | ProjectRootDir\n    | ProjectRootDirRealPath\n    | GlobalPkgDir\n    | WorkspaceDir;\n  rootDirRealPath?: ProjectRootDirRealPath | undefined;\n}> {\n  let rootDirs: ProjectRootDir[] = Object.keys(\n    opts.selectedProjectsGraph\n  ) as ProjectRootDir[];\n\n  if (opts.ignoredPackages != null) {\n    rootDirs = rootDirs.filter(\n      (\n        rootDir:\n          | ProjectRootDir\n          | ProjectRootDirRealPath\n          | GlobalPkgDir\n          | WorkspaceDir\n      ): boolean => {\n        return opts.ignoredPackages?.has(rootDir) !== true;\n      }\n    );\n  }\n\n  return rootDirs.map(\n    (\n      rootDir:\n        | ProjectRootDir\n        | ProjectRootDirRealPath\n        | GlobalPkgDir\n        | WorkspaceDir\n    ): {\n      rootDir:\n        | ProjectRootDir\n        | ProjectRootDirRealPath\n        | GlobalPkgDir\n        | WorkspaceDir;\n      rootDirRealPath: ProjectRootDirRealPath | undefined;\n    } => {\n      return {\n        rootDir,\n        rootDirRealPath:\n          opts.selectedProjectsGraph[rootDir]?.package.rootDirRealPath,\n      };\n    }\n  );\n}\n"],
  "mappings": "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",
  "names": ["opts", "manifest"]
}
