{
  "version": 3,
  "sources": ["../../src/main.ts"],
  "sourcesContent": ["export const REPORTER_INITIALIZED = Symbol('reporterInitialized');\n\nexport type Global = typeof globalThis & {\n  pnpm__startedAt?: number;\n  [REPORTER_INITIALIZED]?: ReporterType;\n};\ndeclare const global: Global;\n\nif (typeof global['pnpm__startedAt'] === 'undefined') {\n  global['pnpm__startedAt'] = Date.now();\n}\n\nimport process from 'node:process';\nimport loudRejection from 'loud-rejection';\nimport {\n  packageManager,\n  isExecutedByCorepack,\n} from './packages/cli-meta/index.ts';\nimport { getConfig } from './packages/cli-utils/index.ts';\nimport type { Config, WantedPackageManager } from './packages/config/index.ts';\nimport {\n  executionTimeLogger,\n  scopeLogger,\n} from './packages/core-loggers/index.ts';\nimport { PnpmError } from './packages/error/index.ts';\nimport { filterPackagesFromDir } from './packages/filter-workspace-packages/index.ts';\nimport { globalWarn, logger } from './packages/logger/index.ts';\nimport type { ParsedCliArgs } from './packages/parse-cli-args/index.ts';\nimport { prepareExecutionEnv } from './packages/plugin-commands-env/index.ts';\nimport { finishWorkers } from './packages/worker/index.ts';\nimport chalk from 'chalk';\nimport { isCI } from 'ci-info';\nimport path from 'node:path';\nimport isEmpty from 'ramda/src/isEmpty';\nimport { stripVTControlCharacters as stripAnsi } from 'node:util';\nimport { checkForUpdates } from './checkForUpdates.ts';\nimport {\n  pnpmCmds,\n  rcOptionsTypes,\n  skipPackageManagerCheckForCommand,\n} from './cmd/index.ts';\nimport { formatUnknownOptionsError } from './formatError.ts';\nimport { parseCliArgs } from './parseCliArgs.ts';\nimport { initReporter, type ReporterType } from './reporter/index.ts';\nimport { switchCliVersion } from './switchCliVersion.ts';\nimport type { WorkspaceDir } from './packages/types/project.ts';\n\nloudRejection();\n\nconst DEPRECATED_OPTIONS = new Set([\n  'independent-leaves',\n  'lock',\n  'resolution-strategy',\n]);\n\n// A workaround for the https://github.com/vercel/pkg/issues/897 issue.\n// biome-ignore lint/performance/noDelete: <explanation>\ndelete process.env.PKG_EXECPATH;\n\nexport async function main(inputArgv: string[]): Promise<void> {\n  let parsedCliArgs!: ParsedCliArgs;\n\n  try {\n    parsedCliArgs = await parseCliArgs(inputArgv);\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } catch (err: any) {\n    // Reporting is not initialized at this point, so just printing the error\n    printError(err.message, err['hint']);\n    process.exitCode = 1;\n    return;\n  }\n\n  const {\n    argv,\n    params: cliParams,\n    options: cliOptions,\n    cmd,\n    fallbackCommandUsed,\n    unknownOptions,\n    workspaceDir,\n  } = parsedCliArgs;\n\n  if (cmd !== null && !pnpmCmds[cmd]) {\n    printError(`Unknown command '${cmd}'`, 'For help, run: pnpm help');\n    process.exitCode = 1;\n    return;\n  }\n\n  if (unknownOptions.size > 0 && !fallbackCommandUsed) {\n    const unknownOptionsArray = Array.from(unknownOptions.keys());\n\n    if (unknownOptionsArray.every((option) => DEPRECATED_OPTIONS.has(option))) {\n      let deprecationMsg = `${chalk.bgYellow.black('\\u2009WARN\\u2009')}`;\n\n      if (unknownOptionsArray.length === 1) {\n        const deprecatedOption = unknownOptionsArray[0];\n\n        if (typeof deprecatedOption === 'string') {\n          deprecationMsg += ` ${chalk.yellow(`Deprecated option: '${deprecatedOption}'`)}`;\n        }\n      } else {\n        deprecationMsg += ` ${chalk.yellow(\n          `Deprecated options: ${unknownOptionsArray\n            .map((unknownOption: string): string => {\n              return `'${unknownOption}'`;\n            })\n            .join(', ')}`\n        )}`;\n      }\n\n      console.info(deprecationMsg);\n    } else {\n      printError(\n        formatUnknownOptionsError(unknownOptions),\n        `For help, run: pnpm help${typeof cmd === 'string' ? ` ${cmd}` : ''}`\n      );\n\n      process.exitCode = 1;\n\n      return;\n    }\n  }\n\n  let config: Config & {\n    argv?:\n      | { remain: string[]; cooked: string[]; original: string[] }\n      | undefined;\n    fallbackCommandUsed?: boolean | undefined;\n    parseable?: boolean | undefined;\n    json?: boolean | undefined;\n  };\n\n  try {\n    // When we just want to print the location of the global bin directory,\n    // we don't need the write permission to it. Related issue: #2700\n    const globalDirShouldAllowWrite = cmd !== 'root';\n\n    const isDlxCommand = cmd === 'dlx';\n\n    if (cmd === 'link' && cliParams.length === 0) {\n      cliOptions.global = true;\n    }\n\n    config = await getConfig(cliOptions, {\n      excludeReporter: false,\n      globalDirShouldAllowWrite,\n      rcOptionsTypes,\n      workspaceDir,\n      checkUnknownSetting: false,\n      ignoreNonAuthSettingsFromLocal: isDlxCommand || cmd === 'self-update',\n    });\n\n    if (\n      !isExecutedByCorepack() &&\n      cmd !== 'setup' &&\n      config.wantedPackageManager != null\n    ) {\n      if (\n        typeof config.managePackageManagerVersions !== 'undefined' &&\n        config.wantedPackageManager.name === 'pnpm'\n      ) {\n        await switchCliVersion(config);\n      } else if (cmd === null || !skipPackageManagerCheckForCommand.has(cmd)) {\n        checkPackageManager(config.wantedPackageManager, config);\n      }\n    }\n\n    if (isDlxCommand) {\n      config.useStderr = true;\n    }\n\n    config.argv = argv;\n\n    config.fallbackCommandUsed = fallbackCommandUsed;\n\n    // Set 'npm_command' env variable to current command name\n    if (typeof cmd === 'string') {\n      config.extraEnv = {\n        ...config.extraEnv,\n        // Follow the behavior of npm by setting it to 'run-script' when running scripts (e.g. pnpm run dev)\n        // and to the command name otherwise (e.g. pnpm test)\n        npm_command: cmd === 'run' ? 'run-script' : cmd,\n      };\n    }\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } catch (err: any) {\n    // Reporting is not initialized at this point, so just printing the error\n    const hint =\n      typeof err['hint'] === 'string'\n        ? err['hint']\n        : `For help, run: pnpm help${typeof cmd === 'string' ? ` ${cmd}` : ''}`;\n\n    printError(err.message, hint);\n\n    process.exitCode = 1;\n\n    return;\n  }\n\n  if (cmd == null && cliOptions.version === true) {\n    console.info(packageManager.version);\n\n    return;\n  }\n\n  let write: (text: string) => void = process.stdout.write.bind(process.stdout);\n\n  // chalk reads the FORCE_COLOR env variable\n  if (config.color === 'always') {\n    process.env.FORCE_COLOR = '1';\n  } else if (config.color === 'never') {\n    process.env.FORCE_COLOR = '0';\n\n    // In some cases, it is already late to set the FORCE_COLOR env variable.\n    // Some text might be already generated.\n    //\n    // A better solution might be to dynamically load all the code after the settings are read\n    // and the env variable set.\n    write = (text): boolean => {\n      return process.stdout.write(stripAnsi(text));\n    };\n  }\n\n  const reporterType: ReporterType = ((): ReporterType => {\n    if (config.loglevel === 'silent') {\n      return 'silent';\n    }\n\n    if (typeof config.reporter === 'string') {\n      return config.reporter;\n    }\n\n    if (isCI || !process.stdout.isTTY) {\n      return 'append-only';\n    }\n\n    return 'default';\n  })();\n\n  const printLogs = config['parseable'] !== true && config['json'] !== true;\n\n  if (printLogs) {\n    initReporter(reporterType, {\n      cmd,\n      config,\n    });\n\n    global[REPORTER_INITIALIZED] = reporterType;\n  }\n\n  if (cmd === 'self-update') {\n    await pnpmCmds.server?.(config, ['stop']);\n  }\n\n  if (\n    [\n      'install',\n      'import',\n      'dedupe',\n      'patch-commit',\n      'patch',\n      'patch-remove',\n      'approve-builds',\n    ].includes(cmd === null ? '' : cmd) &&\n    typeof workspaceDir === 'string'\n  ) {\n    cliOptions.recursive = true;\n\n    config.recursive = true;\n\n    if (\n      config.recursiveInstall !== true &&\n      // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n      !config.filter &&\n      // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n      !config.filterProd\n    ) {\n      config.filter = ['{.}...'];\n    }\n  }\n\n  if (cliOptions.recursive === true) {\n    const wsDir: WorkspaceDir = workspaceDir ?? (process.cwd() as WorkspaceDir);\n\n    config.filter = Array.isArray(config.filter)\n      ? config.filter\n      : typeof config.filter === 'string'\n        ? [config.filter]\n        : [];\n\n    config.filterProd = Array.isArray(config.filterProd)\n      ? config.filterProd\n      : typeof config.filterProd === 'string'\n        ? [config.filterProd]\n        : [];\n\n    const filters = [\n      ...config.filter.map(\n        (filter: string): { filter: string; followProdDepsOnly: boolean } => {\n          return { filter, followProdDepsOnly: false };\n        }\n      ),\n      ...config.filterProd.map(\n        (filter: string): { filter: string; followProdDepsOnly: boolean } => {\n          return {\n            filter,\n            followProdDepsOnly: true,\n          };\n        }\n      ),\n    ];\n\n    function relativeWSDirPath(): string {\n      return path.relative(process.cwd(), wsDir) || '.';\n    }\n\n    if (config.workspaceRoot === true) {\n      filters.push({\n        filter: `{${relativeWSDirPath()}}`,\n        followProdDepsOnly: Boolean(config.filterProd.length),\n      });\n    } else if (\n      typeof workspaceDir === 'string' &&\n      config.includeWorkspaceRoot !== true &&\n      ['run', 'exec', 'add', 'test'].includes(cmd ?? '')\n    ) {\n      filters.push({\n        filter: `!{${relativeWSDirPath()}}`,\n        followProdDepsOnly: Boolean(config.filterProd.length),\n      });\n    }\n\n    const filterResults = await filterPackagesFromDir(wsDir, filters, {\n      engineStrict: config.engineStrict,\n      nodeVersion: config.nodeVersion ?? config.useNodeVersion,\n      patterns: config.workspacePackagePatterns,\n      linkWorkspacePackages:\n        typeof config.linkWorkspacePackages === 'string'\n          ? false\n          : config.linkWorkspacePackages,\n      prefix: process.cwd(),\n      workspaceDir: wsDir,\n      testPattern: config.testPattern,\n      changedFilesIgnorePattern: config.changedFilesIgnorePattern,\n      useGlobDirFiltering: config.legacyDirFiltering !== true,\n      sharedWorkspaceLockfile: config.sharedWorkspaceLockfile,\n    });\n\n    if (filterResults.allProjects.length === 0) {\n      if (printLogs) {\n        console.info(`No projects found in \"${wsDir}\"`);\n      }\n\n      process.exitCode = config.failIfNoMatch ? 1 : 0;\n\n      return;\n    }\n\n    config.allProjectsGraph = filterResults.allProjectsGraph;\n\n    config.selectedProjectsGraph = filterResults.selectedProjectsGraph;\n\n    if (isEmpty.default(config.selectedProjectsGraph)) {\n      if (printLogs) {\n        console.info(`No projects matched the filters in \"${wsDir}\"`);\n      }\n\n      process.exitCode = config.failIfNoMatch ? 1 : 0;\n\n      return;\n    }\n\n    if (filterResults.unmatchedFilters.length !== 0 && printLogs) {\n      console.info(\n        `No projects matched the filters \"${filterResults.unmatchedFilters.join(', ')}\" in \"${wsDir}\"`\n      );\n    }\n\n    config.allProjects = filterResults.allProjects;\n\n    config.workspaceDir = wsDir;\n  }\n\n  let { output, exitCode }: { output?: string | null; exitCode: number } =\n    await (async (): Promise<\n      { output?: string; exitCode: number } | { output: null; exitCode: number }\n    > => {\n      // NOTE: we defer the next stage, otherwise reporter might not catch all the logs\n      await new Promise<void>((resolve): NodeJS.Timeout => {\n        return globalThis.setTimeout((): void => {\n          resolve();\n        }, 0);\n      });\n\n      if (\n        config.updateNotifier !== false &&\n        !isCI &&\n        cmd !== 'self-update' &&\n        config.offline !== true &&\n        config.preferOffline !== true &&\n        config.fallbackCommandUsed !== true &&\n        (cmd === 'install' || cmd === 'add')\n      ) {\n        checkForUpdates(config).catch(() => {\n          /* Ignore */\n        });\n      }\n\n      if (config.force === true && config.fallbackCommandUsed !== true) {\n        logger.warn({\n          message: 'using --force I sure hope you know what you are doing',\n          prefix: config.dir,\n        });\n      }\n\n      scopeLogger.debug({\n        ...(cliOptions.recursive === true\n          ? {\n              selected: Object.keys(config.selectedProjectsGraph ?? {}).length,\n              total: config.allProjects?.length,\n            }\n          : { selected: 1 }),\n        ...(typeof workspaceDir === 'string'\n          ? { workspacePrefix: workspaceDir }\n          : {}),\n      });\n\n      if (config.useNodeVersion != null) {\n        if ('webcontainer' in process.versions) {\n          globalWarn(\n            'Automatic installation of different Node.js versions is not supported in WebContainer'\n          );\n        } else {\n          config.extraBinPaths = (\n            await prepareExecutionEnv(config, {\n              extraBinPaths: config.extraBinPaths,\n              executionEnv: {\n                nodeVersion: config.useNodeVersion,\n              },\n            })\n          ).extraBinPaths;\n\n          config.nodeVersion = config.useNodeVersion;\n        }\n      }\n\n      let result = pnpmCmds[cmd ?? 'help']?.(\n        // TypeScript doesn't currently infer that the type of config\n        // is `Omit<typeof config, 'reporter'>` after the `delete config.reporter` statement\n        config,\n        cliParams\n      );\n\n      if (result instanceof Promise) {\n        result = await result;\n      }\n\n      executionTimeLogger.debug({\n        startedAt: global['pnpm__startedAt'],\n        endedAt: Date.now(),\n      });\n\n      if (typeof result === 'undefined') {\n        return { output: null, exitCode: 0 };\n      }\n\n      if (typeof result === 'string') {\n        return { output: result, exitCode: 0 };\n      }\n\n      return result;\n    })();\n\n  // When use-node-version is set and \"pnpm run\" is executed,\n  // this will be the only place where the tarball worker pool is finished.\n  await finishWorkers();\n\n  if (typeof output === 'string') {\n    if (!output.endsWith('\\n')) {\n      output = `${output}\\n`;\n    }\n\n    write(output);\n  }\n\n  if (cmd === null) {\n    exitCode = 1;\n  }\n\n  if (exitCode) {\n    process.exitCode = exitCode;\n  }\n}\n\nfunction printError(message: string, hint?: string): void {\n  const ERROR = chalk.bgRed.black('\\u2009ERROR\\u2009');\n\n  console.error(\n    `${message.startsWith(ERROR) ? '' : `${ERROR} `}${chalk.red(message)}`\n  );\n\n  if (typeof hint === 'string') {\n    console.error(hint);\n  }\n}\n\nfunction checkPackageManager(pm: WantedPackageManager, config: Config): void {\n  if (!pm.name) return;\n\n  if (pm.name === 'pnpm') {\n    const currentPnpmVersion =\n      packageManager.name === 'pnpm' ? packageManager.version : undefined;\n\n    if (\n      typeof currentPnpmVersion === 'string' &&\n      config.packageManagerStrictVersion === true &&\n      typeof pm.version === 'string' &&\n      pm.version !== currentPnpmVersion\n    ) {\n      const msg = `This project is configured to use v${pm.version} of pnpm. Your current pnpm is v${currentPnpmVersion}`;\n\n      if (config.packageManagerStrict === true) {\n        throw new PnpmError('BAD_PM_VERSION', msg, {\n          hint: 'If you want to bypass this version check, you can set the \"package-manager-strict\" configuration to \"false\" or set the \"COREPACK_ENABLE_STRICT\" environment variable to \"0\"',\n        });\n      }\n\n      globalWarn(msg);\n    }\n    return;\n  }\n\n  const msg = `This project is configured to use ${pm.name}`;\n\n  if (config.packageManagerStrict === true) {\n    throw new PnpmError('OTHER_PM_EXPECTED', msg);\n  }\n\n  globalWarn(msg);\n}\n"],
  "mappings": "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",
  "names": ["relativeWSDirPath", "msg"]
}
