{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-listing/list.ts"],
  "sourcesContent": ["import { docsUrl } from '../cli-utils/index.ts';\nimport {\n  FILTERING,\n  OPTIONS,\n  UNIVERSAL_OPTIONS,\n} from '../common-cli-options-help/index.ts';\nimport { type Config, types as allTypes } from '../config/index.ts';\nimport { list, listForPackages } from '../list/index.ts';\nimport type {\n  GlobalPkgDir,\n  IncludedDependencies,\n  LockFileDir,\n  ModulesDir,\n  Project,\n  ProjectRootDir,\n  ProjectRootDirRealPath,\n  WorkspaceDir,\n} from '../types/index.ts';\nimport pick from 'ramda/src/pick';\nimport renderHelp from 'render-help';\nimport { listRecursive } from './recursive.ts';\n\nexport function rcOptionsTypes(): Record<string, unknown> {\n  return pick.default(\n    [\n      'depth',\n      'dev',\n      'global-dir',\n      'global',\n      'json',\n      'long',\n      'only',\n      'optional',\n      'parseable',\n      'production',\n    ],\n    allTypes\n  );\n}\n\nexport const cliOptionsTypes = (): Record<string, unknown> => ({\n  ...rcOptionsTypes(),\n  'only-projects': Boolean,\n  recursive: Boolean,\n});\n\nexport const shorthands: Record<string, string> = {\n  D: '--dev',\n  P: '--production',\n};\n\nexport const commandNames = ['list', 'ls'];\n\nexport function help(): string {\n  return renderHelp({\n    aliases: ['list', 'ls', 'la', 'll'],\n    description:\n      'When run as ll or la, it shows extended information by default. \\\nAll dependencies are printed by default. Search by patterns is supported. \\\nFor example: pnpm ls babel-* eslint-*',\n    descriptionLists: [\n      {\n        title: 'Options',\n\n        list: [\n          {\n            description:\n              'Perform command on every package in subdirectories \\\nor on 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: 'Show extended information',\n            name: '--long',\n          },\n          {\n            description: 'Show parseable output instead of tree view',\n            name: '--parseable',\n          },\n          {\n            description: 'Show information in JSON format',\n            name: '--json',\n          },\n          {\n            description:\n              'List packages in the global install prefix instead of in the current project',\n            name: '--global',\n            shortAlias: '-g',\n          },\n          {\n            description: 'Max display depth of the dependency tree',\n            name: '--depth <number>',\n          },\n          {\n            description: 'Display only direct dependencies',\n            name: '--depth 0',\n          },\n          {\n            description:\n              'Display only projects. Useful in a monorepo. `pnpm ls -r --depth -1` lists all projects in a monorepo',\n            name: '--depth -1',\n          },\n          {\n            description:\n              'Display only the dependency graph for packages in `dependencies` and `optionalDependencies`',\n            name: '--prod',\n            shortAlias: '-P',\n          },\n          {\n            description:\n              'Display only the dependency graph for packages in `devDependencies`',\n            name: '--dev',\n            shortAlias: '-D',\n          },\n          {\n            description:\n              'Display only dependencies that are also projects within the workspace',\n            name: '--only-projects',\n          },\n          {\n            description: \"Don't display packages from `optionalDependencies`\",\n            name: '--no-optional',\n          },\n          OPTIONS.globalDir,\n          ...UNIVERSAL_OPTIONS,\n        ],\n      },\n      FILTERING,\n    ],\n    url: docsUrl('list'),\n    usages: ['pnpm ls [<pkg> ...]'],\n  });\n}\n\nexport type ListCommandOptions = Pick<\n  Config,\n  | 'allProjects'\n  | 'dev'\n  | 'dir'\n  | 'optional'\n  | 'production'\n  | 'selectedProjectsGraph'\n  | 'modulesDir'\n  | 'virtualStoreDirMaxLength'\n> &\n  Partial<Pick<Config, 'cliOptions'>> & {\n    alwaysPrintRootPackage?: boolean | undefined;\n    depth?: number | undefined;\n    lockfileDir: LockFileDir;\n    long?: boolean | undefined;\n    parseable?: boolean | undefined;\n    onlyProjects?: boolean | undefined;\n    recursive?: boolean | undefined;\n  };\n\nexport async function handler(\n  opts: ListCommandOptions,\n  params: string[]\n): Promise<string> {\n  const include = {\n    dependencies: opts.production !== false,\n    devDependencies: opts.dev !== false,\n    optionalDependencies: opts.optional !== false,\n  };\n\n  const depth = opts.cliOptions?.['depth'] ?? 0;\n\n  if (opts.recursive === true && opts.selectedProjectsGraph != null) {\n    const pkgs = Object.values(opts.selectedProjectsGraph).map(\n      (wsPkg: {\n        dependencies: ProjectRootDir[];\n        package: Project;\n      }): Project => {\n        return wsPkg.package;\n      }\n    );\n\n    return listRecursive(pkgs, params, { ...opts, depth, include });\n  }\n\n  return render([opts.dir], params, {\n    ...opts,\n    depth,\n    include,\n    lockfileDir: opts.lockfileDir, // || opts.dir,\n  });\n}\n\nexport async function render(\n  prefixes: (\n    | ProjectRootDir\n    | ProjectRootDirRealPath\n    | GlobalPkgDir\n    | WorkspaceDir\n    | LockFileDir\n  )[],\n  params: string[],\n  opts: {\n    alwaysPrintRootPackage?: boolean | undefined;\n    depth?: number | undefined;\n    include: IncludedDependencies;\n    lockfileDir: string;\n    long?: boolean | undefined;\n    json?: boolean | undefined;\n    onlyProjects?: boolean | undefined;\n    parseable?: boolean | undefined;\n    modulesDir?: ModulesDir | undefined;\n    virtualStoreDirMaxLength: number;\n  }\n): Promise<string> {\n  const listOpts = {\n    alwaysPrintRootPackage: opts.alwaysPrintRootPackage,\n    depth: opts.depth ?? 0,\n    include: opts.include,\n    lockfileDir: opts.lockfileDir,\n    long: opts.long,\n    onlyProjects: opts.onlyProjects,\n    reportAs: (opts.parseable === true\n      ? 'parseable'\n      : opts.json === true\n        ? 'json'\n        : 'tree') as 'parseable' | 'json' | 'tree',\n    showExtraneous: false,\n    modulesDir: opts.modulesDir,\n    virtualStoreDirMaxLength: opts.virtualStoreDirMaxLength,\n  };\n  return params.length > 0\n    ? listForPackages(params, prefixes, listOpts)\n    : list(prefixes, listOpts);\n}\n"],
  "mappings": "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",
  "names": []
}
