{
  "version": 3,
  "sources": ["../../../../src/packages/get-context/index.ts"],
  "sourcesContent": ["import { promises as fs } from 'node:fs';\nimport path from 'node:path';\nimport { contextLogger, packageManifestLogger } from '../core-loggers/index.ts';\nimport type { IncludedDependencies, Modules } from '../modules-yaml/index.ts';\nimport { readProjectsContext } from '../read-projects-context/index.ts';\nimport type { WorkspacePackages } from '../resolver-base/index.ts';\nimport type {\n  DepPath,\n  HoistedDependencies,\n  ProjectManifest,\n  ReadPackageHook,\n  Registries,\n  ProjectRootDir,\n  ProjectRootDirRealPath,\n  ProjectId,\n  ModulesDir,\n  GlobalPkgDir,\n  WorkspaceDir,\n  LockFileDir,\n} from '../types/index.ts';\nimport pathAbsolute from 'path-absolute';\nimport clone from 'ramda/src/clone';\nimport { readLockfiles } from './readLockfiles.ts';\nimport type { LockfileObject } from '../lockfile.types/index.ts';\n\n/**\n * Note that some fields are affected by modules directory state. Such fields should be used for\n * mutating the modules directory only or in a manner that does not influence dependency resolution.\n */\nexport type PnpmContext = {\n  currentLockfile: LockfileObject;\n  currentLockfileIsUpToDate: boolean;\n  existsCurrentLockfile: boolean;\n  existsWantedLockfile: boolean;\n  existsNonEmptyWantedLockfile: boolean;\n  extraBinPaths: string[];\n  /** Affected by existing modules directory, if it exists. */\n  extraNodePaths: string[];\n  lockfileHadConflicts: boolean;\n  hoistedDependencies: HoistedDependencies;\n  /** Required included dependencies or dependencies currently included by the modules directory. */\n  include: IncludedDependencies;\n  modulesFile: Modules | null;\n  pendingBuilds: string[];\n  projects: Record<string, ProjectOptions & HookOptions & { binsDir: string }>;\n  rootModulesDir: ModulesDir;\n  hoistPattern: string[] | undefined;\n  /** As applied to existing modules directory, if it exists. */\n  currentHoistPattern: string[] | undefined;\n  hoistedModulesDir: ModulesDir;\n  publicHoistPattern: string[] | undefined;\n  /** As applied to existing modules directory, if it exists. */\n  currentPublicHoistPattern: string[] | undefined;\n  lockfileDir?: LockFileDir | undefined;\n  virtualStoreDir: string;\n  /** As applied to existing modules directory, otherwise options. */\n  virtualStoreDirMaxLength: number;\n  /** As applied to existing modules directory, if it exists. */\n  skipped: Set<DepPath>;\n  storeDir: string;\n  wantedLockfile: LockfileObject;\n  wantedLockfileIsModified: boolean;\n  workspacePackages: WorkspacePackages;\n  registries: Registries;\n};\n\nexport type ProjectOptions = {\n  id: ProjectId;\n  buildIndex: number;\n  // binsDir?: string | undefined;\n  manifest?: ProjectManifest | undefined;\n  modulesDir: ModulesDir;\n  rootDir:\n    | ProjectRootDir\n    | ProjectRootDirRealPath\n    | GlobalPkgDir\n    | WorkspaceDir\n    | LockFileDir;\n\n  rootDirRealPath?: ProjectRootDirRealPath | undefined;\n};\n\nexport type HookOptions = {\n  originalManifest?: ProjectManifest | undefined;\n};\n\nexport type GetContextOptions = {\n  autoInstallPeers?: boolean | undefined;\n  excludeLinksFromLockfile?: boolean | undefined;\n  peersSuffixMaxLength?: number | undefined;\n  allProjects: Array<ProjectOptions & HookOptions & { binsDir: string }>;\n  confirmModulesPurge?: boolean | undefined;\n  force?: boolean | undefined;\n  frozenLockfile?: boolean | undefined;\n  extraBinPaths?: string[] | undefined;\n  extendNodePath?: boolean | undefined;\n  lockfileDir: LockFileDir;\n  modulesDir?: ModulesDir | undefined;\n  nodeLinker?: 'isolated' | 'hoisted' | 'pnp' | undefined;\n  readPackageHook?: ReadPackageHook | undefined;\n  include?: IncludedDependencies | undefined;\n  registries: Registries;\n  storeDir: string;\n  useLockfile: boolean;\n  useGitBranchLockfile?: boolean | undefined;\n  mergeGitBranchLockfiles?: boolean | undefined;\n  virtualStoreDir?: string | undefined;\n  virtualStoreDirMaxLength?: number | undefined;\n  workspacePackages?: WorkspacePackages | undefined;\n\n  hoistPattern?: string[] | undefined;\n  forceHoistPattern?: boolean | undefined;\n\n  publicHoistPattern?: string[] | undefined;\n  forcePublicHoistPattern?: boolean | undefined;\n  global?: boolean | undefined;\n};\n\nexport async function getContext(\n  opts: GetContextOptions\n): Promise<PnpmContext> {\n  const modulesDir = opts.modulesDir ?? 'node_modules';\n\n  const importersContext = await readProjectsContext(opts.allProjects, {\n    lockfileDir: opts.lockfileDir,\n    modulesDir,\n  });\n\n  const virtualStoreDir = pathAbsolute(\n    opts.virtualStoreDir ?? path.join(modulesDir, '.pnpm'),\n    opts.lockfileDir\n  );\n\n  await fs.mkdir(opts.storeDir, { recursive: true });\n\n  for (const project of opts.allProjects) {\n    packageManifestLogger.debug({\n      initial: project.manifest,\n      prefix: project.rootDir,\n    });\n  }\n\n  if (typeof opts.readPackageHook !== 'undefined') {\n    await Promise.all(\n      importersContext.projects.map(\n        async (project: ProjectOptions & HookOptions): Promise<void> => {\n          project.originalManifest = project.manifest;\n\n          if (typeof opts.readPackageHook === 'function') {\n            const cm = clone.default(project.manifest);\n\n            if (typeof cm !== 'undefined') {\n              project.manifest = await opts.readPackageHook(\n                cm,\n                project.rootDir\n              );\n            }\n          }\n        }\n      )\n    );\n  }\n\n  const extraBinPaths = [...(opts.extraBinPaths || [])];\n\n  const hoistedModulesDir: ModulesDir = path.join(\n    virtualStoreDir,\n    'node_modules'\n  ) as ModulesDir;\n\n  if (\n    typeof opts.hoistPattern?.length === 'number' &&\n    opts.hoistPattern.length > 0\n  ) {\n    extraBinPaths.unshift(path.join(hoistedModulesDir, '.bin'));\n  }\n\n  const ctx: PnpmContext = {\n    extraBinPaths,\n    extraNodePaths: getExtraNodePaths({\n      extendNodePath: opts.extendNodePath,\n      nodeLinker: opts.nodeLinker,\n      hoistPattern: importersContext.currentHoistPattern ?? opts.hoistPattern,\n      virtualStoreDir,\n    }),\n    hoistedDependencies: importersContext.hoistedDependencies,\n    hoistedModulesDir,\n    hoistPattern: opts.hoistPattern,\n    currentHoistPattern: importersContext.currentHoistPattern,\n    include: opts.include ?? importersContext.include,\n    lockfileDir: opts.lockfileDir,\n    modulesFile: importersContext.modules,\n    pendingBuilds: importersContext.pendingBuilds,\n    projects: Object.fromEntries(\n      importersContext.projects.map(\n        (\n          project: ProjectOptions & HookOptions & { binsDir: string }\n        ): [\n          (\n            | ProjectRootDir\n            | ProjectRootDirRealPath\n            | GlobalPkgDir\n            | WorkspaceDir\n            | LockFileDir\n          ),\n          ProjectOptions & HookOptions & { binsDir: string },\n        ] => {\n          return [project.rootDir, project];\n        }\n      )\n    ),\n    publicHoistPattern: opts.publicHoistPattern,\n    currentPublicHoistPattern: importersContext.currentPublicHoistPattern,\n    registries: opts.registries,\n    rootModulesDir: importersContext.rootModulesDir,\n    skipped: importersContext.skipped,\n    storeDir: opts.storeDir,\n    virtualStoreDir,\n    virtualStoreDirMaxLength:\n      importersContext.virtualStoreDirMaxLength ??\n      opts.virtualStoreDirMaxLength ??\n      0,\n    workspacePackages:\n      opts.workspacePackages ?? arrayOfWorkspacePackagesToMap(opts.allProjects),\n    ...(await readLockfiles({\n      autoInstallPeers: opts.autoInstallPeers,\n      excludeLinksFromLockfile: opts.excludeLinksFromLockfile,\n      peersSuffixMaxLength: opts.peersSuffixMaxLength,\n      force: opts.force,\n      frozenLockfile: opts.frozenLockfile === true,\n      lockfileDir: opts.lockfileDir,\n      projects: importersContext.projects,\n      registry: opts.registries.default,\n      useLockfile: opts.useLockfile,\n      useGitBranchLockfile: opts.useGitBranchLockfile,\n      mergeGitBranchLockfiles: opts.mergeGitBranchLockfiles,\n      virtualStoreDir,\n    })),\n  };\n\n  contextLogger.debug({\n    currentLockfileExists: ctx.existsCurrentLockfile,\n    storeDir: opts.storeDir,\n    virtualStoreDir,\n  });\n\n  return ctx;\n}\n\nexport interface PnpmSingleContext {\n  currentLockfile: LockfileObject;\n  currentLockfileIsUpToDate: boolean;\n  existsCurrentLockfile: boolean;\n  existsWantedLockfile: boolean;\n  existsNonEmptyWantedLockfile: boolean;\n  /** Affected by existing modules directory, if it exists. */\n  extraBinPaths: string[];\n  extraNodePaths: string[];\n  lockfileHadConflicts: boolean;\n  hoistedDependencies: HoistedDependencies;\n  hoistedModulesDir: string;\n  hoistPattern: string[] | undefined;\n  manifest: ProjectManifest;\n  modulesDir?: string | undefined;\n  importerId: string;\n  prefix: string;\n  /** Required included dependencies or dependencies currently included by the modules directory. */\n  include: IncludedDependencies;\n  modulesFile: Modules | null;\n  pendingBuilds: string[];\n  publicHoistPattern: string[] | undefined;\n  registries: Registries;\n  rootModulesDir: string;\n  lockfileDir: string;\n  virtualStoreDir: string;\n  /** As applied to existing modules directory, if it exists. */\n  skipped: Set<string>;\n  storeDir: string;\n  wantedLockfile: LockfileObject;\n  wantedLockfileIsModified: boolean;\n}\n\nexport async function getContextForSingleImporter(\n  manifest: ProjectManifest,\n  opts: {\n    autoInstallPeers: boolean;\n    excludeLinksFromLockfile: boolean;\n    peersSuffixMaxLength: number;\n    force: boolean;\n    confirmModulesPurge?: boolean | undefined;\n    extraBinPaths?: string[] | undefined;\n    extendNodePath?: boolean | undefined;\n    lockfileDir: LockFileDir;\n    nodeLinker: 'isolated' | 'hoisted' | 'pnp';\n    modulesDir: ModulesDir;\n    readPackageHook?: ReadPackageHook | undefined;\n    include?: IncludedDependencies | undefined;\n    dir: string;\n    registries: Registries;\n    storeDir: string;\n    useLockfile: boolean;\n    useGitBranchLockfile?: boolean | undefined;\n    mergeGitBranchLockfiles?: boolean | undefined;\n    virtualStoreDir?: string | undefined;\n    virtualStoreDirMaxLength: number;\n\n    hoistPattern?: string[] | undefined;\n    forceHoistPattern?: boolean | undefined;\n\n    publicHoistPattern?: string[] | undefined;\n    forcePublicHoistPattern?: boolean | undefined;\n  }\n): Promise<PnpmSingleContext> {\n  const {\n    currentHoistPattern,\n    hoistedDependencies,\n    projects,\n    include,\n    modules,\n    pendingBuilds,\n    registries,\n    skipped,\n    rootModulesDir,\n  } = await readProjectsContext(\n    [\n      {\n        // TODO: fix id\n        id: '' as ProjectId,\n        // TODO: fix buildIndex\n        buildIndex: 0,\n        // TODO: fix binsDir\n        binsDir: '',\n        manifest,\n        rootDir: opts.dir as ProjectRootDir,\n        modulesDir: opts.modulesDir,\n      },\n    ],\n    {\n      lockfileDir: opts.lockfileDir,\n      modulesDir: opts.modulesDir,\n    }\n  );\n\n  const storeDir = opts.storeDir;\n\n  const importer = projects[0];\n\n  const modulesDir = importer?.modulesDir;\n\n  const importerId = importer?.id;\n\n  if (typeof importerId !== 'string') {\n    throw new Error('importerId is required');\n  }\n\n  const virtualStoreDir = pathAbsolute(\n    opts.virtualStoreDir ?? 'node_modules/.pnpm',\n    opts.lockfileDir\n  );\n\n  await fs.mkdir(storeDir, { recursive: true });\n\n  const extraBinPaths = [...(opts.extraBinPaths || [])];\n\n  const hoistedModulesDir = path.join(virtualStoreDir, 'node_modules');\n\n  if (\n    typeof opts.hoistPattern?.length === 'number' &&\n    opts.hoistPattern.length > 0\n  ) {\n    extraBinPaths.unshift(path.join(hoistedModulesDir, '.bin'));\n  }\n\n  const ctx: PnpmSingleContext = {\n    extraBinPaths,\n    extraNodePaths: getExtraNodePaths({\n      extendNodePath: opts.extendNodePath,\n      nodeLinker: opts.nodeLinker,\n      hoistPattern: currentHoistPattern ?? opts.hoistPattern,\n      virtualStoreDir,\n    }),\n    hoistedDependencies,\n    hoistedModulesDir,\n    hoistPattern: opts.hoistPattern,\n    importerId,\n    include: opts.include ?? include,\n    lockfileDir: opts.lockfileDir,\n    manifest: (await opts.readPackageHook?.(manifest)) ?? manifest,\n    modulesDir,\n    modulesFile: modules,\n    pendingBuilds,\n    prefix: opts.dir,\n    publicHoistPattern: opts.publicHoistPattern,\n    registries: {\n      ...opts.registries,\n      ...registries,\n    },\n    rootModulesDir,\n    skipped,\n    storeDir,\n    virtualStoreDir,\n    ...(await readLockfiles({\n      autoInstallPeers: opts.autoInstallPeers,\n      excludeLinksFromLockfile: opts.excludeLinksFromLockfile,\n      peersSuffixMaxLength: opts.peersSuffixMaxLength,\n      force: opts.force,\n      frozenLockfile: false,\n      lockfileDir: opts.lockfileDir,\n      projects: [{ id: importerId, rootDir: opts.dir as ProjectRootDir }],\n      registry: opts.registries.default,\n      useLockfile: opts.useLockfile,\n      useGitBranchLockfile: opts.useGitBranchLockfile,\n      mergeGitBranchLockfiles: opts.mergeGitBranchLockfiles,\n      virtualStoreDir,\n    })),\n  };\n\n  packageManifestLogger.debug({\n    initial: manifest,\n    prefix: opts.dir,\n  });\n\n  contextLogger.debug({\n    currentLockfileExists: ctx.existsCurrentLockfile,\n    storeDir: opts.storeDir,\n    virtualStoreDir,\n  });\n\n  return ctx;\n}\n\nfunction getExtraNodePaths({\n  extendNodePath = true,\n  hoistPattern,\n  nodeLinker,\n  virtualStoreDir,\n}: {\n  extendNodePath?: boolean | undefined;\n  hoistPattern?: string[] | undefined;\n  nodeLinker?: 'isolated' | 'hoisted' | 'pnp' | undefined;\n  virtualStoreDir: string;\n}): string[] {\n  if (\n    extendNodePath &&\n    nodeLinker === 'isolated' &&\n    typeof hoistPattern?.length === 'number' &&\n    hoistPattern.length > 0\n  ) {\n    return [path.join(virtualStoreDir, 'node_modules')];\n  }\n\n  return [];\n}\n\nexport function arrayOfWorkspacePackagesToMap(\n  pkgs: Array<Pick<ProjectOptions, 'manifest' | 'rootDir'>>\n): WorkspacePackages {\n  const workspacePkgs: WorkspacePackages = new Map();\n\n  for (const { manifest, rootDir } of pkgs) {\n    if (\n      typeof manifest === 'undefined' ||\n      typeof manifest.name === 'undefined'\n    ) {\n      continue;\n    }\n\n    let workspacePkgsByVersion = workspacePkgs.get(manifest.name);\n\n    if (!workspacePkgsByVersion) {\n      workspacePkgsByVersion = new Map();\n\n      workspacePkgs.set(manifest.name, workspacePkgsByVersion);\n    }\n\n    workspacePkgsByVersion.set(manifest.version, {\n      manifest,\n      rootDir,\n    });\n  }\n\n  return workspacePkgs;\n}\n"],
  "mappings": "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",
  "names": []
}
