{
  "version": 3,
  "sources": ["../../../src/cmd/index.ts"],
  "sourcesContent": ["import { cache } from '../packages/cache.commands/index.ts';\nimport type { CompletionFunc } from '../packages/command/index.ts';\nimport { types as allTypes } from '../packages/config/index.ts';\nimport {\n  approveBuilds,\n  ignoredBuilds,\n} from '../packages/exec.build-commands/index.ts';\nimport { audit } from '../packages/plugin-commands-audit/index.ts';\nimport {\n  generateCompletion,\n  createCompletionServer,\n} from '../packages/plugin-commands-completion/index.ts';\nimport {\n  config,\n  getCommand,\n  setCommand,\n} from '../packages/plugin-commands-config/index.ts';\nimport { doctor } from '../packages/plugin-commands-doctor/index.ts';\nimport { env } from '../packages/plugin-commands-env/index.ts';\nimport { deploy } from '../packages/plugin-commands-deploy/index.ts';\nimport {\n  add,\n  ci,\n  dedupe,\n  fetch,\n  install,\n  link,\n  prune,\n  remove,\n  unlink,\n  update,\n  importCommand,\n} from '../packages/plugin-commands-installation/index.ts';\nimport { selfUpdate } from '../packages/tools.plugin-commands-self-updater/index.ts';\nimport { list, ll, why } from '../packages/plugin-commands-listing/index.ts';\nimport { licenses } from '../packages/plugin-commands-licenses/index.ts';\nimport { outdated } from '../packages/plugin-commands-outdated/index.ts';\nimport { pack, publish } from '../packages/plugin-commands-publishing/index.ts';\nimport {\n  patch,\n  patchCommit,\n  patchRemove,\n} from '../packages/plugin-commands-patching/index.ts';\nimport { rebuild } from '../packages/plugin-commands-rebuild/index.ts';\nimport {\n  create,\n  dlx,\n  exec,\n  restart,\n  run,\n} from '../packages/plugin-commands-script-runners/index.ts';\nimport { server } from '../packages/plugin-commands-server/index.ts';\nimport { setup } from '../packages/plugin-commands-setup/index.ts';\nimport { store } from '../packages/plugin-commands-store/index.ts';\nimport {\n  catFile,\n  catIndex,\n  findHash,\n} from '../packages/plugin-commands-store-inspecting/index.ts';\nimport { init } from '../packages/plugin-commands-init/index.ts';\nimport pick from 'ramda/src/pick';\nimport type { PnpmOptions } from '../types.ts';\nimport { shorthands as universalShorthands } from '../shorthands.ts';\nimport { parseCliArgs } from '../parseCliArgs.ts';\nimport * as bin from './bin.ts';\nimport { createHelp } from './help.ts';\nimport * as installTest from './installTest.ts';\nimport * as recursive from './recursive.ts';\nimport * as root from './root.ts';\n\nexport const GLOBAL_OPTIONS = pick.default(\n  [\n    'color',\n    'dir',\n    'filter',\n    'filter-prod',\n    'loglevel',\n    'parseable',\n    'prefix',\n    'reporter',\n    'stream',\n    'aggregate-output',\n    'test-pattern',\n    'changed-files-ignore-pattern',\n    'use-stderr',\n    'ignore-workspace',\n    'workspace-packages',\n    'workspace-root',\n    'include-workspace-root',\n    'fail-if-no-match',\n  ],\n  allTypes\n);\n\nexport type CommandResponse = string | { output?: string; exitCode: number };\n\nexport type Command =\n  | ((\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      opts: PnpmOptions | any,\n      params: string[]\n    ) => CommandResponse | Promise<CommandResponse>)\n  | ((opts: PnpmOptions | any, params: string[]) => void) // eslint-disable-line @typescript-eslint/no-explicit-any\n  | ((opts: PnpmOptions | any, params: string[]) => Promise<void>); // eslint-disable-line @typescript-eslint/no-explicit-any\n\nexport type CommandDefinition = {\n  /** The main logic of the command. */\n  handler: Command;\n  /** The help text for the command that describes its usage and options. */\n  help: () => string;\n  /** The names that will trigger this command handler. */\n  commandNames: string[];\n  /**\n   * A function that returns an object whose keys are acceptable CLI options\n   * for this command and whose values are the types of values\n   * for these options for validation.\n   */\n  cliOptionsTypes: () => Record<string, unknown>;\n  /**\n   * A function that returns an object whose keys are acceptable options\n   * in the .npmrc file for this command and whose values are the types of values\n   * for these options for validation.\n   */\n  rcOptionsTypes: () => Record<string, unknown>;\n  /** Auto-completion provider for this command. */\n  completion?: CompletionFunc | undefined;\n  /**\n   * Option names that will resolve into one or more of the other options.\n   *\n   * Example:\n   * ```ts\n   * {\n   *   D: '--dev',\n   *   parallel: ['--no-sort', '--recursive'],\n   * }\n   * ```\n   */\n  shorthands?: Record<string, string | string[]> | undefined;\n  /**\n   * If true, this command should not care about what package manager is specified in the \"packageManager\" field of \"package.json\".\n   */\n  skipPackageManagerCheck?: boolean | undefined;\n};\n\nconst commands: CommandDefinition[] = [\n  add,\n  approveBuilds,\n  audit,\n  bin,\n  cache,\n  ci,\n  config,\n  dedupe,\n  getCommand,\n  setCommand,\n  create,\n  deploy,\n  dlx,\n  doctor,\n  env,\n  exec,\n  fetch,\n  generateCompletion,\n  ignoredBuilds,\n  importCommand,\n  selfUpdate,\n  init,\n  install,\n  installTest,\n  link,\n  list,\n  ll,\n  licenses,\n  outdated,\n  pack,\n  patch,\n  patchCommit,\n  patchRemove,\n  prune,\n  publish,\n  rebuild,\n  recursive,\n  remove,\n  restart,\n  root,\n  run,\n  server,\n  setup,\n  store,\n  catFile,\n  catIndex,\n  findHash,\n  unlink,\n  update,\n  why,\n];\n\nconst handlerByCommandName: Record<string, Command> = {};\n\nconst helpByCommandName: Record<string, () => string> = {};\n\nconst cliOptionsTypesByCommandName: Record<\n  string,\n  () => Record<string, unknown>\n> = {};\n\nconst aliasToFullName = new Map<string, string>();\n\nconst completionByCommandName: Record<string, CompletionFunc> = {};\n\nexport const shorthandsByCommandName: Record<\n  string,\n  Record<string, string | string[]>\n> = {};\n\nexport const rcOptionsTypes: Record<string, unknown> = {};\n\nconst skipPackageManagerCheckForCommandArray = ['completion-server'];\n\nfor (let i = 0; i < commands.length; i++) {\n  const c = commands[i];\n\n  if (typeof c === 'undefined') {\n    throw new Error(`The command at index ${i} is undefined`);\n  }\n\n  const {\n    cliOptionsTypes,\n    commandNames,\n    completion,\n    handler,\n    help,\n    rcOptionsTypes,\n    shorthands,\n    skipPackageManagerCheck,\n  } = c;\n\n  if (commandNames.length === 0) {\n    throw new Error(`The command at index ${i} doesn't have command names`);\n  }\n\n  for (const commandName of commandNames) {\n    handlerByCommandName[commandName] = handler;\n\n    helpByCommandName[commandName] = help;\n\n    cliOptionsTypesByCommandName[commandName] = cliOptionsTypes;\n\n    shorthandsByCommandName[commandName] = shorthands ?? {};\n\n    if (completion != null) {\n      completionByCommandName[commandName] = completion;\n    }\n\n    Object.assign(rcOptionsTypes, rcOptionsTypes());\n  }\n\n  if (skipPackageManagerCheck === true) {\n    skipPackageManagerCheckForCommandArray.push(...commandNames);\n  }\n\n  if (commandNames.length > 1) {\n    const fullName = commandNames[0];\n\n    if (typeof fullName === 'undefined') {\n      throw new Error(`The command name at index ${0} is undefined`);\n    }\n\n    for (let j = 1; j < commandNames.length; j++) {\n      const cj = commandNames[j];\n\n      if (typeof cj === 'undefined') {\n        throw new Error(`The command name at index ${j} is undefined`);\n      }\n\n      aliasToFullName.set(cj, fullName);\n    }\n  }\n}\n\nhandlerByCommandName.help = createHelp(helpByCommandName);\n\nhandlerByCommandName['completion-server'] = createCompletionServer({\n  cliOptionsTypesByCommandName,\n  completionByCommandName,\n  initialCompletion,\n  shorthandsByCommandName,\n  universalOptionsTypes: GLOBAL_OPTIONS,\n  universalShorthands,\n  parseCliArgs,\n});\n\nfunction initialCompletion(): Array<{ name: string }> {\n  return Object.keys(handlerByCommandName).map((name) => ({ name }));\n}\n\nexport const pnpmCmds = handlerByCommandName;\n\nexport const skipPackageManagerCheckForCommand = new Set(\n  skipPackageManagerCheckForCommandArray\n);\n\nexport function getCliOptionsTypes(\n  commandName: string\n): Record<string, unknown> {\n  return cliOptionsTypesByCommandName[commandName]?.() || {};\n}\n\nexport function getCommandFullName(commandName: string): string | null {\n  return (\n    aliasToFullName.get(commandName) ??\n    (handlerByCommandName[commandName] ? commandName : null)\n  );\n}\n"],
  "mappings": "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",
  "names": ["rcOptionsTypes"]
}
