{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-licenses/licensesList.ts"],
  "sourcesContent": ["import { readProjectManifestOnly } from '../cli-utils/index.ts';\nimport { type Config, getOptionsFromRootManifest } from '../config/index.ts';\nimport { PnpmError } from '../error/index.ts';\nimport { getStorePath } from '../store-path/index.ts';\nimport { WANTED_LOCKFILE } from '../constants/index.ts';\nimport {\n  getLockfileImporterId,\n  readWantedLockfile,\n} from '../lockfile.fs/index.ts';\nimport { findDependencyLicenses } from '../license-scanner/index.ts';\nimport type { LicensesCommandResult } from './LicensesCommandResult.ts';\nimport { renderLicenses } from './outputRenderer.ts';\n\nexport type LicensesCommandOptions = {\n  compatible?: boolean | undefined;\n  long?: boolean | undefined;\n  recursive?: boolean | undefined;\n  json?: boolean | undefined;\n} & Pick<\n  Config,\n  | 'dev'\n  | 'dir'\n  | 'lockfileDir'\n  | 'registries'\n  | 'optional'\n  | 'production'\n  | 'storeDir'\n  | 'virtualStoreDir'\n  | 'modulesDir'\n  | 'pnpmHomeDir'\n  | 'selectedProjectsGraph'\n  | 'rootProjectManifest'\n  | 'rootProjectManifestDir'\n  | 'virtualStoreDirMaxLength'\n> &\n  Partial<Pick<Config, 'userConfig'>>;\n\nexport async function licensesList(\n  opts: LicensesCommandOptions\n): Promise<LicensesCommandResult> {\n  const lockfile = await readWantedLockfile(opts.lockfileDir ?? opts.dir, {\n    ignoreIncompatible: true,\n  });\n\n  if (lockfile === null) {\n    throw new PnpmError(\n      'LICENSES_NO_LOCKFILE',\n      `No ${WANTED_LOCKFILE} found: Cannot check a project without a lockfile`\n    );\n  }\n\n  const include = {\n    dependencies: opts.production !== false,\n    devDependencies: opts.dev !== false,\n    optionalDependencies: opts.optional !== false,\n  };\n\n  const manifest = await readProjectManifestOnly(opts.dir);\n\n  const includedImporterIds = opts.selectedProjectsGraph\n    ? Object.keys(opts.selectedProjectsGraph).map((path) =>\n        getLockfileImporterId(opts.lockfileDir ?? opts.dir, path)\n      )\n    : undefined;\n\n  const storeDir = await getStorePath({\n    pkgRoot: opts.dir,\n    storePath: opts.storeDir,\n    pnpmHomeDir: opts.pnpmHomeDir,\n  });\n\n  const licensePackages = await findDependencyLicenses({\n    include,\n    lockfileDir: opts.lockfileDir ?? opts.dir,\n    storeDir,\n    virtualStoreDir: opts.virtualStoreDir ?? '.',\n    virtualStoreDirMaxLength: opts.virtualStoreDirMaxLength,\n    modulesDir: opts.modulesDir,\n    registries: opts.registries,\n    wantedLockfile: lockfile,\n    manifest,\n    includedImporterIds,\n    supportedArchitectures: getOptionsFromRootManifest(\n      opts.rootProjectManifestDir,\n      opts.rootProjectManifest\n    ).supportedArchitectures,\n  });\n\n  if (licensePackages.length === 0)\n    return { output: 'No licenses in packages found', exitCode: 0 };\n\n  return renderLicenses(licensePackages, opts);\n}\n"],
  "mappings": "AAAA,SAAS,+BAA+B;AACxC,SAAsB,kCAAkC;AACxD,SAAS,iBAAiB;AAC1B,SAAS,oBAAoB;AAC7B,SAAS,uBAAuB;AAChC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,8BAA8B;AAEvC,SAAS,sBAAsB;AA0B/B,eAAsB,aACpB,MACgC;AAChC,QAAM,WAAW,MAAM,mBAAmB,KAAK,eAAe,KAAK,KAAK;AAAA,IACtE,oBAAoB;AAAA,EACtB,CAAC;AAED,MAAI,aAAa,MAAM;AACrB,UAAM,IAAI;AAAA,MACR;AAAA,MACA,MAAM,eAAe;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,UAAU;AAAA,IACd,cAAc,KAAK,eAAe;AAAA,IAClC,iBAAiB,KAAK,QAAQ;AAAA,IAC9B,sBAAsB,KAAK,aAAa;AAAA,EAC1C;AAEA,QAAM,WAAW,MAAM,wBAAwB,KAAK,GAAG;AAEvD,QAAM,sBAAsB,KAAK,wBAC7B,OAAO,KAAK,KAAK,qBAAqB,EAAE;AAAA,IAAI,CAAC,SAC3C,sBAAsB,KAAK,eAAe,KAAK,KAAK,IAAI;AAAA,EAC1D,IACA;AAEJ,QAAM,WAAW,MAAM,aAAa;AAAA,IAClC,SAAS,KAAK;AAAA,IACd,WAAW,KAAK;AAAA,IAChB,aAAa,KAAK;AAAA,EACpB,CAAC;AAED,QAAM,kBAAkB,MAAM,uBAAuB;AAAA,IACnD;AAAA,IACA,aAAa,KAAK,eAAe,KAAK;AAAA,IACtC;AAAA,IACA,iBAAiB,KAAK,mBAAmB;AAAA,IACzC,0BAA0B,KAAK;AAAA,IAC/B,YAAY,KAAK;AAAA,IACjB,YAAY,KAAK;AAAA,IACjB,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA,wBAAwB;AAAA,MACtB,KAAK;AAAA,MACL,KAAK;AAAA,IACP,EAAE;AAAA,EACJ,CAAC;AAED,MAAI,gBAAgB,WAAW;AAC7B,WAAO,EAAE,QAAQ,iCAAiC,UAAU,EAAE;AAEhE,SAAO,eAAe,iBAAiB,IAAI;AAC7C;",
  "names": []
}
