{
  "version": 3,
  "sources": ["../../../../src/packages/core/getPeerDependencyIssues.ts"],
  "sourcesContent": ["import { getPreferredVersionsFromLockfileAndManifests } from '../lockfile.preferred-versions/index.ts';\nimport {\n  resolveDependencies,\n  getWantedDependencies,\n  type WantedDependency,\n} from '../resolve-dependencies/index.ts';\nimport type {\n  GlobalPkgDir,\n  LockFileDir,\n  PeerDependencyIssuesByProjects,\n  ProjectManifest,\n  ProjectRootDir,\n  ProjectRootDirRealPath,\n  WorkspaceDir,\n} from '../types/index.ts';\nimport {\n  getContext,\n  type HookOptions,\n  type ProjectOptions,\n  type GetContextOptions,\n} from '../get-context/index.ts';\nimport { createReadPackageHook } from '../hooks.read-package-hook/index.ts';\nimport { DEFAULT_REGISTRIES } from '../normalize-registries/index.ts';\nimport { parseOverrides } from '../parse-overrides/index.ts';\nimport type { InstallOptions } from './install/extendInstallOptions.ts';\n\nexport type ListMissingPeersOptions = Partial<GetContextOptions> &\n  Pick<\n    InstallOptions,\n    | 'hooks'\n    | 'catalogs'\n    | 'dedupePeerDependents'\n    | 'ignoreCompatibilityDb'\n    | 'linkWorkspacePackagesDepth'\n    | 'nodeVersion'\n    | 'nodeLinker'\n    | 'overrides'\n    | 'packageExtensions'\n    | 'ignoredOptionalDependencies'\n    | 'preferWorkspacePackages'\n    | 'saveWorkspaceProtocol'\n    | 'storeController'\n    | 'useGitBranchLockfile'\n    | 'peersSuffixMaxLength'\n  > &\n  Partial<Pick<InstallOptions, 'supportedArchitectures'>> &\n  Pick<\n    GetContextOptions,\n    'autoInstallPeers' | 'excludeLinksFromLockfile' | 'storeDir'\n  > &\n  Required<\n    Pick<InstallOptions, 'virtualStoreDirMaxLength' | 'peersSuffixMaxLength'>\n  >;\n\nexport type RequiredDefined<T> = { [P in keyof T]-?: Exclude<T[P], undefined> };\n\nexport async function getPeerDependencyIssues(\n  projects: (ProjectOptions & HookOptions & { binsDir: string })[],\n  opts: ListMissingPeersOptions\n): Promise<PeerDependencyIssuesByProjects> {\n  const lockfileDir:\n    | ProjectRootDir\n    | ProjectRootDirRealPath\n    | GlobalPkgDir\n    | WorkspaceDir\n    | LockFileDir = opts.lockfileDir ?? (process.cwd() as LockFileDir);\n\n  const ctx = await getContext({\n    force: false,\n    extraBinPaths: [],\n    lockfileDir,\n    registries: DEFAULT_REGISTRIES,\n    useLockfile: true,\n    allProjects: projects,\n    ...opts,\n    nodeLinker: opts.nodeLinker ?? 'isolated',\n  });\n\n  const projectsToResolve = Object.values(ctx.projects)\n    .map(\n      (\n        project: ProjectOptions & HookOptions & { binsDir: string }\n      ):\n        | (ProjectOptions &\n            HookOptions & {\n              binsDir: string;\n              updatePackageManifest?: boolean | undefined;\n              wantedDependencies: Array<WantedDependency>;\n            })\n        | undefined => {\n        if (typeof project.manifest === 'undefined') {\n          return undefined;\n        }\n\n        return {\n          ...project,\n          updatePackageManifest: false,\n          wantedDependencies: getWantedDependencies(project.manifest, opts),\n        };\n      }\n    )\n    .filter(Boolean);\n\n  const preferredVersions = getPreferredVersionsFromLockfileAndManifests(\n    ctx.wantedLockfile.packages,\n    Object.values(ctx.projects)\n      .map(\n        ({\n          manifest,\n        }: ProjectOptions & HookOptions): ProjectManifest | undefined => {\n          return manifest;\n        }\n      )\n      .filter(Boolean)\n  );\n\n  const overrides = parseOverrides(opts.overrides ?? {}, opts.catalogs ?? {});\n\n  const { peerDependencyIssuesByProjects, waitTillAllFetchingsFinish } =\n    await resolveDependencies(projectsToResolve, {\n      currentLockfile: ctx.currentLockfile,\n      allowedDeprecatedVersions: {},\n      allowNonAppliedPatches: false,\n      allowUnusedPatches: false,\n      catalogs: opts.catalogs,\n      defaultUpdateDepth: -1,\n      dedupePeerDependents: opts.dedupePeerDependents,\n      dryRun: true,\n      engineStrict: false,\n      force: false,\n      forceFullResolution: true,\n      hooks: {\n        readPackage: createReadPackageHook({\n          ignoreCompatibilityDb: opts.ignoreCompatibilityDb,\n          lockfileDir,\n          overrides,\n          packageExtensions: opts.packageExtensions,\n          readPackageHook: opts.hooks?.readPackage,\n          ignoredOptionalDependencies: opts.ignoredOptionalDependencies,\n        }),\n      },\n      linkWorkspacePackagesDepth:\n        opts.linkWorkspacePackagesDepth ??\n        (opts.saveWorkspaceProtocol !== false &&\n        typeof opts.saveWorkspaceProtocol !== 'undefined'\n          ? 0\n          : -1),\n      lockfileDir,\n      nodeVersion: opts.nodeVersion ?? process.version,\n      pnpmVersion: '',\n      preferWorkspacePackages: opts.preferWorkspacePackages,\n      preferredVersions,\n      preserveWorkspaceProtocol: false,\n      registries: ctx.registries,\n      saveWorkspaceProtocol: false, // this doesn't matter in our case. We won't write changes to package.json files\n      storeController: opts.storeController,\n      tag: 'latest',\n      virtualStoreDir: ctx.virtualStoreDir,\n      virtualStoreDirMaxLength: ctx.virtualStoreDirMaxLength,\n      wantedLockfile: ctx.wantedLockfile,\n      workspacePackages: ctx.workspacePackages,\n      supportedArchitectures: opts.supportedArchitectures,\n      peersSuffixMaxLength: opts.peersSuffixMaxLength,\n    });\n\n  await waitTillAllFetchingsFinish();\n\n  return peerDependencyIssuesByProjects;\n}\n"],
  "mappings": "AAAA,SAAS,oDAAoD;AAC7D;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AAUP;AAAA,EACE;AAAA,OAIK;AACP,SAAS,6BAA6B;AACtC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAiC/B,eAAsB,wBACpB,UACA,MACyC;AACzC,QAAM,cAKY,KAAK,eAAgB,QAAQ,IAAI;AAEnD,QAAM,MAAM,MAAM,WAAW;AAAA,IAC3B,OAAO;AAAA,IACP,eAAe,CAAC;AAAA,IAChB;AAAA,IACA,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,GAAG;AAAA,IACH,YAAY,KAAK,cAAc;AAAA,EACjC,CAAC;AAED,QAAM,oBAAoB,OAAO,OAAO,IAAI,QAAQ,EACjD;AAAA,IACC,CACE,YAQe;AACf,UAAI,OAAO,QAAQ,aAAa,aAAa;AAC3C,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,QACL,GAAG;AAAA,QACH,uBAAuB;AAAA,QACvB,oBAAoB,sBAAsB,QAAQ,UAAU,IAAI;AAAA,MAClE;AAAA,IACF;AAAA,EACF,EACC,OAAO,OAAO;AAEjB,QAAM,oBAAoB;AAAA,IACxB,IAAI,eAAe;AAAA,IACnB,OAAO,OAAO,IAAI,QAAQ,EACvB;AAAA,MACC,CAAC;AAAA,QACC;AAAA,MACF,MAAiE;AAC/D,eAAO;AAAA,MACT;AAAA,IACF,EACC,OAAO,OAAO;AAAA,EACnB;AAEA,QAAM,YAAY,eAAe,KAAK,aAAa,CAAC,GAAG,KAAK,YAAY,CAAC,CAAC;AAE1E,QAAM,EAAE,gCAAgC,2BAA2B,IACjE,MAAM,oBAAoB,mBAAmB;AAAA,IAC3C,iBAAiB,IAAI;AAAA,IACrB,2BAA2B,CAAC;AAAA,IAC5B,wBAAwB;AAAA,IACxB,oBAAoB;AAAA,IACpB,UAAU,KAAK;AAAA,IACf,oBAAoB;AAAA,IACpB,sBAAsB,KAAK;AAAA,IAC3B,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,OAAO;AAAA,IACP,qBAAqB;AAAA,IACrB,OAAO;AAAA,MACL,aAAa,sBAAsB;AAAA,QACjC,uBAAuB,KAAK;AAAA,QAC5B;AAAA,QACA;AAAA,QACA,mBAAmB,KAAK;AAAA,QACxB,iBAAiB,KAAK,OAAO;AAAA,QAC7B,6BAA6B,KAAK;AAAA,MACpC,CAAC;AAAA,IACH;AAAA,IACA,4BACE,KAAK,+BACJ,KAAK,0BAA0B,SAChC,OAAO,KAAK,0BAA0B,cAClC,IACA;AAAA,IACN;AAAA,IACA,aAAa,KAAK,eAAe,QAAQ;AAAA,IACzC,aAAa;AAAA,IACb,yBAAyB,KAAK;AAAA,IAC9B;AAAA,IACA,2BAA2B;AAAA,IAC3B,YAAY,IAAI;AAAA,IAChB,uBAAuB;AAAA;AAAA,IACvB,iBAAiB,KAAK;AAAA,IACtB,KAAK;AAAA,IACL,iBAAiB,IAAI;AAAA,IACrB,0BAA0B,IAAI;AAAA,IAC9B,gBAAgB,IAAI;AAAA,IACpB,mBAAmB,IAAI;AAAA,IACvB,wBAAwB,KAAK;AAAA,IAC7B,sBAAsB,KAAK;AAAA,EAC7B,CAAC;AAEH,QAAM,2BAA2B;AAEjC,SAAO;AACT;",
  "names": []
}
