{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-script-runners/run.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport pLimit from 'p-limit';\nimport {\n  docsUrl,\n  readProjectManifestOnly,\n  tryReadProjectManifest,\n} from '../cli-utils/index.ts';\nimport type { CompletionFunc } from '../command/index.ts';\nimport { prepareExecutionEnv } from '../plugin-commands-env/index.ts';\nimport {\n  FILTERING,\n  UNIVERSAL_OPTIONS,\n} from '../common-cli-options-help/index.ts';\nimport { type Config, types as allTypes } from '../config/index.ts';\nimport { PnpmError } from '../error/index.ts';\nimport type { CheckDepsStatusOptions } from '../deps.status/index.ts';\nimport {\n  runLifecycleHook,\n  makeNodeRequireOption,\n  type RunLifecycleHookOptions,\n} from '../lifecycle/index.ts';\nimport { syncInjectedDeps } from '../workspace.injected-deps-syncer/index.ts';\nimport type {\n  LockFileDir,\n  PackageScripts,\n  ProjectManifest,\n} from '../types/index.ts';\nimport pick from 'ramda/src/pick';\nimport realpathMissing from 'realpath-missing';\nimport renderHelp from 'render-help';\nimport {\n  runRecursive,\n  type RecursiveRunOpts,\n  getSpecifiedScripts as getSpecifiedScriptWithoutStartCommand,\n} from './runRecursive.ts';\nimport { existsInDir } from './existsInDir.ts';\nimport { handler as exec } from './exec.ts';\nimport { buildCommandNotFoundHint } from './buildCommandNotFoundHint.ts';\nimport { runDepsStatusCheck } from './runDepsStatusCheck.ts';\n\nexport const IF_PRESENT_OPTION: Record<string, unknown> = {\n  'if-present': Boolean,\n};\n\nexport interface DescriptionItem {\n  shortAlias?: string;\n  name: string;\n  description?: string;\n}\n\nexport const IF_PRESENT_OPTION_HELP: DescriptionItem = {\n  description:\n    'Avoid exiting with a non-zero exit code when the script is undefined',\n  name: '--if-present',\n};\n\nexport const PARALLEL_OPTION_HELP: DescriptionItem = {\n  description:\n    'Completely disregard concurrency and topological sorting, \\\nrunning a given script immediately in all matching packages \\\nwith prefixed streaming output. This is the preferred flag \\\nfor long-running processes such as watch run over many packages.',\n  name: '--parallel',\n};\n\nexport const RESUME_FROM_OPTION_HELP: DescriptionItem = {\n  description: 'Command executed from given package',\n  name: '--resume-from',\n};\n\nexport const SEQUENTIAL_OPTION_HELP: DescriptionItem = {\n  description: 'Run the specified scripts one by one',\n  name: '--sequential',\n};\n\nexport const REPORT_SUMMARY_OPTION_HELP: DescriptionItem = {\n  description:\n    'Save the execution results of every package to \"pnpm-exec-summary.json\". Useful to inspect the execution time and status of each package.',\n  name: '--report-summary',\n};\n\nexport const REPORTER_HIDE_PREFIX_HELP: DescriptionItem = {\n  description:\n    'Hide project name prefix from output of running scripts. Useful when running in CI like GitHub Actions and the output from a script may create an annotation.',\n  name: '--reporter-hide-prefix',\n};\n\nexport const shorthands: Record<string, string[]> = {\n  parallel: [\n    '--workspace-concurrency=Infinity',\n    '--no-sort',\n    '--stream',\n    '--recursive',\n  ],\n  sequential: ['--workspace-concurrency=1'],\n};\n\nexport function rcOptionsTypes(): Record<string, unknown> {\n  return {\n    ...pick.default(['npm-path', 'use-node-version'], allTypes),\n  };\n}\n\nexport function cliOptionsTypes(): Record<string, unknown> {\n  return {\n    ...pick.default(\n      [\n        'bail',\n        'sort',\n        'unsafe-perm',\n        'use-node-version',\n        'workspace-concurrency',\n        'scripts-prepend-node-path',\n      ],\n      allTypes\n    ),\n    ...IF_PRESENT_OPTION,\n    recursive: Boolean,\n    reverse: Boolean,\n    'resume-from': String,\n    'report-summary': Boolean,\n    'reporter-hide-prefix': Boolean,\n  };\n}\n\nexport const completion: CompletionFunc = async (\n  cliOpts: Record<string, unknown>,\n  params: string[]\n): Promise<\n  {\n    name: string;\n  }[]\n> => {\n  if (params.length > 0) {\n    return [];\n  }\n\n  if (typeof cliOpts.dir !== 'string') {\n    return [];\n  }\n\n  const manifest = await readProjectManifestOnly(cliOpts.dir, cliOpts);\n\n  return Object.keys(manifest.scripts ?? {}).map((name): { name: string } => {\n    return { name };\n  });\n};\n\nexport const commandNames = ['run', 'run-script'];\n\nexport function help(): string {\n  return renderHelp({\n    aliases: ['run-script'],\n    description: 'Runs a defined package script.',\n    descriptionLists: [\n      {\n        title: 'Options',\n\n        list: [\n          {\n            description:\n              'Run the defined package script in every package found in subdirectories \\\nor every workspace package, when executed inside a workspace. \\\nFor options that may be used with `-r`, see \"pnpm help recursive\"',\n            name: '--recursive',\n            shortAlias: '-r',\n          },\n          {\n            description:\n              'The command will exit with a 0 exit code even if the script fails',\n            name: '--no-bail',\n          },\n          IF_PRESENT_OPTION_HELP,\n          PARALLEL_OPTION_HELP,\n          RESUME_FROM_OPTION_HELP,\n          ...UNIVERSAL_OPTIONS,\n          SEQUENTIAL_OPTION_HELP,\n          REPORT_SUMMARY_OPTION_HELP,\n          REPORTER_HIDE_PREFIX_HELP,\n        ],\n      },\n      FILTERING,\n    ],\n    url: docsUrl('run'),\n    usages: ['pnpm run <command> [<args>...]'],\n  });\n}\n\nexport type RunOpts = Omit<\n  RecursiveRunOpts,\n  'allProjects' | 'selectedProjectsGraph' | 'workspaceDir'\n> & { recursive?: boolean | undefined } & Pick<\n    Config,\n    | 'bin'\n    | 'verifyDepsBeforeRun'\n    | 'dir'\n    | 'enablePrePostScripts'\n    | 'engineStrict'\n    | 'extraBinPaths'\n    | 'extraEnv'\n    | 'nodeOptions'\n    | 'pnpmHomeDir'\n    | 'reporter'\n    | 'scriptShell'\n    | 'scriptsPrependNodePath'\n    | 'shellEmulator'\n    | 'syncInjectedDepsAfterScripts'\n    | 'userAgent'\n  > &\n  (\n    | ({ recursive?: false | undefined } & Partial<\n        Pick<Config, 'allProjects' | 'selectedProjectsGraph' | 'workspaceDir'>\n      >)\n    | ({ recursive: true } & Required<\n        Pick<Config, 'allProjects' | 'selectedProjectsGraph' | 'workspaceDir'>\n      >)\n  ) & {\n    argv?:\n      | {\n          original: string[];\n        }\n      | undefined;\n    fallbackCommandUsed?: boolean | undefined;\n  } & CheckDepsStatusOptions;\n\nexport async function handler(\n  opts: RunOpts,\n  params: string[]\n  // biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\n): Promise<string | { exitCode: number } | void> {\n  let dir: string | undefined;\n\n  if (\n    opts.fallbackCommandUsed === true &&\n    (params[0] === 't' || params[0] === 'tst')\n  ) {\n    params[0] = 'test';\n  }\n\n  const [scriptName, ...passedThruArgs] = params;\n\n  if (typeof opts.verifyDepsBeforeRun !== 'undefined') {\n    await runDepsStatusCheck(opts);\n  }\n\n  if (opts.recursive === true) {\n    if (\n      typeof scriptName === 'string' ||\n      Object.keys(opts.selectedProjectsGraph ?? {}).length > 1\n    ) {\n      return runRecursive(params, opts);\n    }\n\n    dir = Object.keys(opts.selectedProjectsGraph ?? {})[0];\n  } else {\n    dir = opts.dir;\n  }\n\n  if (typeof dir !== 'string') {\n    return;\n  }\n\n  const manifest = await readProjectManifestOnly(dir, opts);\n\n  if (typeof scriptName !== 'string') {\n    const rootManifest =\n      typeof opts.workspaceDir === 'string' && opts.workspaceDir !== dir\n        ? (await tryReadProjectManifest(opts.workspaceDir, opts)).manifest\n        : undefined;\n\n    return printProjectCommands(manifest, rootManifest ?? undefined);\n  }\n\n  const specifiedScripts = getSpecifiedScripts(\n    manifest.scripts ?? {},\n    scriptName\n  );\n\n  if (specifiedScripts.length < 1) {\n    if (opts.ifPresent === true) {\n      return;\n    }\n\n    if (opts.fallbackCommandUsed === true) {\n      if (opts.argv == null) {\n        throw new Error(\n          'Could not fallback because opts.argv.original was not passed to the script runner'\n        );\n      }\n\n      const params = opts.argv.original.slice(1);\n\n      while (\n        params.length > 0 &&\n        params[0]?.startsWith('-') === true &&\n        params[0] !== '--'\n      ) {\n        params.shift();\n      }\n\n      if (params.length > 0 && params[0] === '--') {\n        params.shift();\n      }\n\n      if (params.length === 0) {\n        throw new PnpmError(\n          'UNEXPECTED_BEHAVIOR',\n          'Params should not be an empty array',\n          {\n            hint: 'This was a bug caused by programmer error. Please report it',\n          }\n        );\n      }\n\n      return exec(\n        {\n          lockfileDir: '' as LockFileDir,\n          selectedProjectsGraph: {},\n          implicitlyFellbackFromRun: true,\n          ...opts,\n        },\n        params\n      );\n    }\n\n    if (typeof opts.workspaceDir === 'string') {\n      const { manifest: rootManifest } = await tryReadProjectManifest(\n        opts.workspaceDir,\n        opts\n      );\n\n      if (\n        getSpecifiedScripts(rootManifest?.scripts ?? {}, scriptName).length >\n          0 &&\n        specifiedScripts.length < 1\n      ) {\n        throw new PnpmError('NO_SCRIPT', `Missing script: ${scriptName}`, {\n          hint: `But script matched with ${scriptName} is present in the root of the workspace,\nso you may run \"pnpm -w run ${scriptName}\"`,\n        });\n      }\n    }\n\n    throw new PnpmError('NO_SCRIPT', `Missing script: ${scriptName}`, {\n      hint: buildCommandNotFoundHint(scriptName, manifest.scripts),\n    });\n  }\n\n  const concurrency = opts.workspaceConcurrency ?? 4;\n\n  const extraEnv = {\n    ...opts.extraEnv,\n    ...(typeof opts.nodeOptions === 'undefined'\n      ? {}\n      : { NODE_OPTIONS: opts.nodeOptions }),\n  };\n\n  const lifecycleOpts: RunLifecycleHookOptions = {\n    depPath: dir,\n    extraBinPaths: opts.extraBinPaths,\n    extraEnv,\n    pkgRoot: dir,\n    rawConfig: opts.rawConfig,\n    rootModulesDir: await realpathMissing(path.join(dir, 'node_modules')),\n    scriptsPrependNodePath: opts.scriptsPrependNodePath,\n    scriptShell: opts.scriptShell,\n    silent: opts.reporter === 'silent',\n    shellEmulator: opts.shellEmulator,\n    stdio: specifiedScripts.length > 1 && concurrency > 1 ? 'pipe' : 'inherit',\n    unsafePerm: true, // when running scripts explicitly, assume that they're trusted.\n  };\n\n  const executionEnv = manifest.pnpm?.executionEnv;\n\n  if (executionEnv != null) {\n    lifecycleOpts.extraBinPaths = (\n      await prepareExecutionEnv(opts, { executionEnv })\n    ).extraBinPaths;\n  }\n\n  const existsPnp = existsInDir.bind(null, '.pnp.cjs');\n\n  const pnpPath =\n    (typeof opts.workspaceDir === 'string' && existsPnp(opts.workspaceDir)) ??\n    existsPnp(dir);\n  if (typeof pnpPath === 'string') {\n    lifecycleOpts.extraEnv = {\n      ...lifecycleOpts.extraEnv,\n      ...makeNodeRequireOption(pnpPath),\n    };\n  }\n\n  try {\n    const limitRun = pLimit(concurrency);\n\n    const runScriptOptions: RunScriptOptions = {\n      enablePrePostScripts: opts.enablePrePostScripts ?? false,\n      syncInjectedDepsAfterScripts: opts.syncInjectedDepsAfterScripts,\n      workspaceDir: opts.workspaceDir,\n    };\n\n    const _runScript = runScript.bind(null, {\n      manifest,\n      lifecycleOpts,\n      runScriptOptions,\n      passedThruArgs,\n    });\n\n    await Promise.all(\n      specifiedScripts.map((script) => limitRun(() => _runScript(script)))\n    );\n  } catch (err: unknown) {\n    if (opts.bail !== false) {\n      throw err;\n    }\n  }\n\n  return undefined;\n}\n\nconst ALL_LIFECYCLE_SCRIPTS = new Set([\n  'prepublish',\n  'prepare',\n  'prepublishOnly',\n  'prepack',\n  'postpack',\n  'publish',\n  'postpublish',\n  'preinstall',\n  'install',\n  'postinstall',\n  'preuninstall',\n  'uninstall',\n  'postuninstall',\n  'preversion',\n  'version',\n  'postversion',\n  'pretest',\n  'test',\n  'posttest',\n  'prestop',\n  'stop',\n  'poststop',\n  'prestart',\n  'start',\n  'poststart',\n  'prerestart',\n  'restart',\n  'postrestart',\n  'preshrinkwrap',\n  'shrinkwrap',\n  'postshrinkwrap',\n]);\n\nfunction printProjectCommands(\n  manifest: ProjectManifest,\n  rootManifest?: ProjectManifest | undefined\n): string {\n  const lifecycleScripts: string[][] = [];\n\n  const otherScripts: string[][] = [];\n\n  for (const [scriptName, script] of Object.entries(manifest.scripts ?? {})) {\n    if (typeof script === 'undefined') {\n      continue;\n    }\n\n    if (ALL_LIFECYCLE_SCRIPTS.has(scriptName)) {\n      lifecycleScripts.push([scriptName, script]);\n    } else {\n      otherScripts.push([scriptName, script]);\n    }\n  }\n\n  if (lifecycleScripts.length === 0 && otherScripts.length === 0) {\n    return 'There are no scripts specified.';\n  }\n\n  let output = '';\n\n  if (lifecycleScripts.length > 0) {\n    output += `Lifecycle scripts:\\n${renderCommands(lifecycleScripts)}`;\n  }\n\n  if (otherScripts.length > 0) {\n    if (output !== '') output += '\\n\\n';\n    output += `Commands available via \"pnpm run\":\\n${renderCommands(otherScripts)}`;\n  }\n\n  if (typeof rootManifest?.scripts === 'undefined') {\n    return output;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore Type 'string | undefined' is not assignable to type 'string'.\n  //  Type 'undefined' is not assignable to type 'string'.ts(2322)\n  const rootScripts: [string, string][] = Object.entries(\n    rootManifest.scripts\n  ).filter((arr: [string, string | undefined]): boolean => {\n    return typeof arr[1] !== 'undefined';\n  });\n\n  if (rootScripts.length === 0) {\n    return output;\n  }\n\n  if (output !== '') {\n    output += '\\n\\n';\n  }\n\n  output += `Commands of the root workspace project (to run them, use \"pnpm -w run\"):\n${renderCommands(rootScripts)}`;\n  return output;\n}\n\nexport type RunScriptOptions = {\n  enablePrePostScripts: boolean;\n  syncInjectedDepsAfterScripts: string[] | undefined;\n  workspaceDir: string | undefined;\n};\n\nexport async function runScript(\n  opts: {\n    manifest: ProjectManifest;\n    lifecycleOpts: RunLifecycleHookOptions;\n    runScriptOptions: RunScriptOptions;\n    passedThruArgs: string[];\n  },\n  scriptName: string\n): Promise<void> {\n  if (\n    opts.runScriptOptions.enablePrePostScripts &&\n    typeof opts.manifest.scripts?.[`pre${scriptName}`] !== 'undefined' &&\n    opts.manifest.scripts[scriptName]?.includes(`pre${scriptName}`) !== true\n  ) {\n    await runLifecycleHook(\n      `pre${scriptName}`,\n      opts.manifest,\n      opts.lifecycleOpts\n    );\n  }\n\n  await runLifecycleHook(scriptName, opts.manifest, {\n    ...opts.lifecycleOpts,\n    args: opts.passedThruArgs,\n  });\n\n  if (\n    opts.runScriptOptions.enablePrePostScripts &&\n    typeof opts.manifest.scripts?.[`post${scriptName}`] !== 'undefined' &&\n    opts.manifest.scripts[scriptName]?.includes(`post${scriptName}`) !== true\n  ) {\n    await runLifecycleHook(\n      `post${scriptName}`,\n      opts.manifest,\n      opts.lifecycleOpts\n    );\n  }\n\n  if (\n    opts.runScriptOptions.syncInjectedDepsAfterScripts?.includes(scriptName) ===\n    true\n  ) {\n    await syncInjectedDeps({\n      pkgName: opts.manifest.name,\n      pkgRootDir: opts.lifecycleOpts.pkgRoot,\n      workspaceDir: opts.runScriptOptions.workspaceDir,\n    });\n  }\n}\n\nfunction renderCommands(commands: string[][]): string {\n  return commands\n    .map(([scriptName, script]) => `  ${scriptName}\\n    ${script}`)\n    .join('\\n');\n}\n\nfunction getSpecifiedScripts(\n  scripts: PackageScripts,\n  scriptName: string\n): string[] {\n  const specifiedSelector = getSpecifiedScriptWithoutStartCommand(\n    scripts,\n    scriptName\n  );\n\n  if (specifiedSelector.length > 0) {\n    return specifiedSelector;\n  }\n\n  // if a user passes start command as scriptName, `node server.js` will be executed as a fallback, so return start command even if start command is not defined in package.json\n  if (scriptName === 'start') {\n    return [scriptName];\n  }\n\n  return [];\n}\n"],
  "mappings": "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",
  "names": ["params"]
}
