{"version":3,"sources":["../src/cli.ts","../package.json","../src/utils/ansi.ts","../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\nimport minimist from 'minimist'\nimport { z } from 'zod'\nimport { version } from '../package.json'\nimport { c } from './utils/ansi'\nimport { listCommand, generateDisclaimerCommand } from './index'\n\nconst filtersSchema = z.array(z.string())\n\n/* eslint-disable prettier/prettier */\nconst usage = `\n${c.bold('usage')}: ${c.yellow('pnpm-licenses')} ${c.white('[command]')} ${c.white('[options]')}\n\n${c.bold(c.white('commands'))}:\n  ${c.bold(c.white('list'))} [options]                 ${c.white('List all dependencies and their licenses')}\n\n    ${c.white('--prod')}, ${c.white('-p')}                   Only consider production dependencies\n    ${c.white('--json-input')}                 Read input from stdin as json, instead of calling pnpm ourselves\n    ${c.white('--json-input-file')}, ${c.white('-i')}        Read input from a (json) file, instead of calling pnpm ourselves or reading from stdin\n    ${c.white('--output-file')}, ${c.white('-o')}            Output to a file instead of stdout\n    ${c.white('--filter')}, ${c.white('-f')}                 Filter out dependencies via glob patterns.\n                                 Example: --filter='[\"@quantco/*\", \"@pnpm/*\"]'\n                                          --filter='[\"**\", \"!@quantco/*\", \"!@pnpm/*\"]' (inverted match)\n\n    ${c.white('--help')}                       Get help for the list command\n\n\n  ${c.bold(c.white('generate-disclaimer'))} [options]  ${c.white('Generate a disclaimer for all dependencies')}\n\n    ${c.white('--prod')}, ${c.white('-p')}                   Only consider production dependencies\n    ${c.white('--json-input')}                 Read input from stdin as json, instead of calling pnpm ourselves\n    ${c.white('--json-input-file')}, ${c.white('-i')}        Read input from a (json) file, instead of calling pnpm ourselves or reading from stdin\n    ${c.white('--output-file')}, ${c.white('-o')}            Output to a file instead of stdout\n    ${c.white('--filter')}, ${c.white('-f')}                 Filter out dependencies via glob patterns.\n                                 Example: --filter='[\"@quantco/*\", \"@pnpm/*\"]'\n                                          --filter='[\"**\", \"!@quantco/*\", \"!@pnpm/*\"]' (inverted match)\n\n    ${c.white('--help')}                       Get help for the generate-disclaimer command\n\n  ${c.bold(c.white('version'))}                        ${c.white('Print the version number')} (also available as ${c.white('--version')})\n  ${c.bold(c.white('help'))}                           ${c.white('Print this help message')} (also available as ${c.white('--help')})\n`.trim()\n\nconst usageListCommand = `\n${c.bold('usage')}: ${c.yellow('pnpm-licenses list')} ${c.white('[options]')}\n\n                               List all dependencies and their licenses\n\n${c.bold(c.white('options'))}:\n  ${c.white('--prod')}, ${c.white('-p')}                   Only consider production dependencies\n\n  ${c.white('--json-input')}                 Read input from stdin as json, instead of calling pnpm ourselves\n  ${c.white('--json-input-file')}, ${c.white('-i')}        Read input from a (json) file, instead of calling pnpm ourselves or reading from stdin\n  ${c.white('--output-file')}, ${c.white('-o')}            Output to a file instead of stdout\n  ${c.white('--filter')}, ${c.white('-f')}                 Filter out dependencies via glob patterns.\n                               Example: --filter='[\"@quantco/*\", \"@pnpm/*\"]'\n                                        --filter='[\"**\", \"!@quantco/*\", \"!@pnpm/*\"]' (inverted match)\n\n  ${c.white('--help')}                       Get help for the list command\n`.trim()\n\nconst usageGenerateDisclaimerCommand = `\n${c.bold('usage')}: ${c.yellow('pnpm-licenses generate-disclaimer')} ${c.white('[options]')}\n  \n                               Generate a disclaimer for all dependencies\n\n${c.bold(c.white('options'))}:\n  ${c.white('--prod')}, ${c.white('-p')}                   Only consider production dependencies\n\n  ${c.white('--json-input')}                 Read input from stdin as json, instead of calling pnpm ourselves\n  ${c.white('--json-input-file')}, ${c.white('-i')}        Read input from a (json) file, instead of calling pnpm ourselves or reading from stdin\n  ${c.white('--output-file')}, ${c.white('-o')}            Output to a file instead of stdout\n  ${c.white('--filter')}, ${c.white('-f')}                 Filter out dependencies via glob patterns.\n                               Example: --filter='[\"@quantco/*\", \"@pnpm/*\"]'\n                                        --filter='[\"**\", \"!@quantco/*\", \"!@pnpm/*\"]' (inverted match)\n\n  ${c.white('--help')}                       Get help for the generate-disclaimer command\n`.trim()\n/* eslint-enable prettier/prettier */\n\nconst parseFilters = (\n  filtersAsJsonString: string\n): { success: false; error: string } | z.ZodSafeParseResult<string[]> => {\n  let jsonFilter\n  try {\n    jsonFilter = JSON.parse(filtersAsJsonString)\n  } catch (e) {\n    return {\n      success: false,\n      error: `Invalid value for filter flag, expected an array of strings encoded as JSON but received:\\n${filtersAsJsonString}`\n    }\n  }\n\n  const maybeFilters = filtersSchema.safeParse(jsonFilter)\n  if (!maybeFilters.success) {\n    const formattedZodError = JSON.stringify(z.treeifyError(maybeFilters.error), null, 2)\n    return {\n      success: false,\n      error: `Invalid value for filter flag, expected an array of strings encoded as JSON. Received valid JSON but got a schema error:\\n${formattedZodError}`\n    }\n  }\n\n  return maybeFilters\n}\n\nconst argv = minimist(process.argv.slice(2), {\n  boolean: ['json-input', 'prod', 'version', 'help'],\n  alias: {\n    'json-input-file': ['i'],\n    'output-file': ['o'],\n    filter: ['f']\n  }\n})\n\nconst knownFlags = ['json-input', 'json-input-file', 'i', 'output-file', 'o', 'filter', 'f', 'prod', 'version', 'help']\n\nconst usedFlags = Object.entries(argv)\n  .filter(([, value]: [string, boolean | string]) => value === true)\n  .map(([key]) => key)\n\nif (argv.version || (usedFlags.length === 0 && argv._.length === 1 && argv._[0] === 'version')) {\n  const unknownFlags = usedFlags.filter((flag) => !knownFlags.includes(flag))\n\n  if (unknownFlags.length > 0) {\n    console.log('Unknown flags supplied to version commmand:', unknownFlags.join(', '))\n    process.exit(1)\n  }\n\n  // all other flags are invalid with the version command\n  if (usedFlags.length > 1) {\n    console.log('Invalid flags supplied to version commmand:', usedFlags.join(', '))\n    process.exit(1)\n  }\n\n  console.log(version)\n  process.exit(0)\n}\n\nif (\n  (argv.help && argv._.length === 0) ||\n  (usedFlags.length === 0 && argv._.length === 1 && argv._[0] === 'help') ||\n  (usedFlags.length === 0 && argv._.length === 0)\n) {\n  const unknownFlags = usedFlags.filter((flag) => !knownFlags.includes(flag))\n\n  if (unknownFlags.length > 0) {\n    console.log('Unknown flags supplied to help commmand: ', unknownFlags.join(', '))\n    process.exit(1)\n  }\n\n  // all other flags are invalid with the help command\n  if (usedFlags.length > 1) {\n    console.log('Invalid flags supplied to help commmand: ', usedFlags.join(', '))\n    process.exit(1)\n  }\n\n  console.log(usage)\n  process.exit(0)\n}\n\nif (argv._.length === 1 && argv._[0] === 'list') {\n  const forbiddenFlags = ['version', 'help']\n  const unknownFlags = usedFlags.filter((flag) => !knownFlags.includes(flag))\n  const invalidFlags = usedFlags.filter((flag) => forbiddenFlags.includes(flag))\n\n  if (unknownFlags.length > 0) {\n    console.log('Unknown flags supplied to list commmand:', unknownFlags.join(', '))\n    process.exit(1)\n  }\n\n  if (argv.help) {\n    // TODO: could highlight the options that are currently being supplied\n    console.log(usageListCommand)\n    process.exit(0)\n  }\n\n  if (invalidFlags.length > 0) {\n    console.log('Invalid flags supplied to list command:', invalidFlags.join(', '))\n    process.exit(1)\n  }\n\n  let filters: string[] = []\n\n  if (argv.filter) {\n    const maybeFilters = parseFilters(argv.filter)\n    if (!maybeFilters.success) {\n      console.log(maybeFilters.error)\n      process.exit(1)\n    }\n\n    filters = maybeFilters.data\n  }\n\n  // TODO: validate io options\n  const ioOptions = {\n    stdin: argv['json-input'],\n    inputFile: argv['json-input-file'],\n    stdout: argv['output-file'] === undefined,\n    outputFile: argv['output-file']\n  }\n\n  if (typeof argv.prod !== 'boolean') {\n    console.log('Invalid value for prod flag:', argv.prod)\n    process.exit(1)\n  }\n\n  listCommand({ prod: argv.prod, filters }, ioOptions).catch((error) => {\n    console.log(error)\n    process.exit(1)\n  })\n}\n\nif (argv._.length === 1 && argv._[0] === 'generate-disclaimer') {\n  const forbiddenFlags = ['version', 'help']\n  const unknownFlags = usedFlags.filter((flag) => !knownFlags.includes(flag))\n  const invalidFlags = usedFlags.filter((flag) => forbiddenFlags.includes(flag))\n\n  if (unknownFlags.length > 0) {\n    console.log('Unknown flags supplied to version commmand:', unknownFlags.join(', '))\n    process.exit(1)\n  }\n\n  if (argv.help) {\n    // TODO: could highlight the options that are currently being supplied\n    console.log(usageGenerateDisclaimerCommand)\n    process.exit(0)\n  }\n\n  if (invalidFlags.length > 0) {\n    console.log('Invalid flags supplied to generate-disclaimer command:', invalidFlags.join(', '))\n    process.exit(1)\n  }\n\n  let filters: string[] = []\n\n  if (argv.filter) {\n    const maybeFilters = parseFilters(argv.filter)\n    if (!maybeFilters.success) {\n      console.log(maybeFilters.error)\n      process.exit(1)\n    }\n\n    filters = maybeFilters.data\n  }\n\n  // TODO: validate io options\n  const ioOptions = {\n    stdin: argv['json-input'],\n    inputFile: argv['json-input-file'],\n    stdout: argv['output-file'] === undefined,\n    outputFile: argv['output-file']\n  }\n\n  if (typeof argv.prod !== 'boolean') {\n    console.log('Invalid value for prod flag:', argv.prod)\n    process.exit(1)\n  }\n\n  generateDisclaimerCommand({ prod: argv.prod, filters }, ioOptions).catch((error) => {\n    console.log(error)\n    process.exit(1)\n  })\n}\n","{\n  \"name\": \"@quantco/pnpm-licenses\",\n  \"version\": \"2.4.2\",\n  \"description\": \"Generate third party license disclaimers in pnpm-based projects\",\n  \"homepage\": \"https://github.com/Quantco/pnpm-licenses\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/Quantco/pnpm-licenses.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/Quantco/pnpm-licenses/issues\"\n  },\n  \"files\": [\n    \"dist\",\n    \"LICENSE\",\n    \"readme.md\"\n  ],\n  \"main\": \"dist/api.mjs\",\n  \"types\": \"dist/api.d.mts\",\n  \"bin\": {\n    \"pnpm-licenses\": \"dist/index.mjs\"\n  },\n  \"keywords\": [\n    \"spdx\",\n    \"license\",\n    \"pnpm\",\n    \"cli\"\n  ],\n  \"author\": \"Janina Wibker\",\n  \"license\": \"MIT\",\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"lint\": \"eslint ./src --ext ts\"\n  },\n  \"dependencies\": {\n    \"minimist\": \"^1.2.8\",\n    \"multimatch\": \"^8.0.0\",\n    \"remove-markdown\": \"^0.5.5\",\n    \"spdx-license-list\": \"^6.11.0\",\n    \"zod\": \"^4.4.3\"\n  },\n  \"devDependencies\": {\n    \"@types/minimist\": \"^1.2.5\",\n    \"@types/node\": \"^25.9.1\",\n    \"@typescript-eslint/eslint-plugin\": \"^5.62.0\",\n    \"@typescript-eslint/parser\": \"^5.62.0\",\n    \"eslint\": \"^8.57.1\",\n    \"eslint-config-prettier\": \"^10.1.8\",\n    \"eslint-config-standard\": \"^17.1.0\",\n    \"eslint-plugin-import\": \"^2.32.0\",\n    \"eslint-plugin-n\": \"^17.24.0\",\n    \"eslint-plugin-prettier\": \"^5.5.5\",\n    \"eslint-plugin-promise\": \"^7.3.0\",\n    \"prettier\": \"^3.8.3\",\n    \"tsup\": \"^8.5.1\",\n    \"typescript\": \"^5.9.3\"\n  },\n  \"packageManager\": \"pnpm@11.5.0\"\n}\n","type AnsiValue = {\n  name: string\n  codes: [begin: number, end: number]\n  type: 'modifier' | 'color' | 'bg' | 'bright' | 'bgBright'\n}\n\nconst modifiers = [\n  { name: 'reset', codes: [0, 0], type: 'modifier' },\n  { name: 'bold', codes: [1, 22], type: 'modifier' },\n  { name: 'dim', codes: [2, 22], type: 'modifier' },\n  { name: 'italic', codes: [3, 23], type: 'modifier' },\n  { name: 'underline', codes: [4, 24], type: 'modifier' },\n  { name: 'inverse', codes: [7, 27], type: 'modifier' },\n  { name: 'hidden', codes: [8, 28], type: 'modifier' },\n  { name: 'strikethrough', codes: [9, 29], type: 'modifier' }\n] satisfies AnsiValue[]\n\nconst text = [\n  { name: 'black', codes: [30, 39], type: 'color' },\n  { name: 'red', codes: [31, 39], type: 'color' },\n  { name: 'green', codes: [32, 39], type: 'color' },\n  { name: 'yellow', codes: [33, 39], type: 'color' },\n  { name: 'blue', codes: [34, 39], type: 'color' },\n  { name: 'magenta', codes: [35, 39], type: 'color' },\n  { name: 'cyan', codes: [36, 39], type: 'color' },\n  { name: 'white', codes: [37, 39], type: 'color' },\n  { name: 'gray', codes: [90, 39], type: 'color' },\n  { name: 'grey', codes: [90, 39], type: 'color' }\n] satisfies AnsiValue[]\n\nconst background = [\n  { name: 'bgBlack', codes: [40, 49], type: 'bg' },\n  { name: 'bgRed', codes: [41, 49], type: 'bg' },\n  { name: 'bgGreen', codes: [42, 49], type: 'bg' },\n  { name: 'bgYellow', codes: [43, 49], type: 'bg' },\n  { name: 'bgBlue', codes: [44, 49], type: 'bg' },\n  { name: 'bgMagenta', codes: [45, 49], type: 'bg' },\n  { name: 'bgCyan', codes: [46, 49], type: 'bg' },\n  { name: 'bgWhite', codes: [47, 49], type: 'bg' }\n] satisfies AnsiValue[]\n\nconst brightText = [\n  { name: 'blackBright', codes: [90, 39], type: 'bright' },\n  { name: 'redBright', codes: [91, 39], type: 'bright' },\n  { name: 'greenBright', codes: [92, 39], type: 'bright' },\n  { name: 'yellowBright', codes: [93, 39], type: 'bright' },\n  { name: 'blueBright', codes: [94, 39], type: 'bright' },\n  { name: 'magentaBright', codes: [95, 39], type: 'bright' },\n  { name: 'cyanBright', codes: [96, 39], type: 'bright' },\n  { name: 'whiteBright', codes: [97, 39], type: 'bright' }\n] satisfies AnsiValue[]\n\nconst brightBackground = [\n  { name: 'bgBlackBright', codes: [100, 49], type: 'bgBright' },\n  { name: 'bgRedBright', codes: [101, 49], type: 'bgBright' },\n  { name: 'bgGreenBright', codes: [102, 49], type: 'bgBright' },\n  { name: 'bgYellowBright', codes: [103, 49], type: 'bgBright' },\n  { name: 'bgBlueBright', codes: [104, 49], type: 'bgBright' },\n  { name: 'bgMagentaBright', codes: [105, 49], type: 'bgBright' },\n  { name: 'bgCyanBright', codes: [106, 49], type: 'bgBright' },\n  { name: 'bgWhiteBright', codes: [107, 49], type: 'bgBright' }\n] satisfies AnsiValue[]\n\nconst all = [...modifiers, ...text, ...background, ...brightText, ...brightBackground] satisfies AnsiValue[]\n\nconst apply = (code: number) => `\\u001b[${code}m`\n\nconst style = (color: AnsiValue) => (input?: string) => {\n  const [begin, end] = color.codes\n\n  if (input === undefined) {\n    return apply(begin)\n  }\n\n  return `${apply(begin)}${input}${apply(end)}`\n}\n\nconst colors = Object.fromEntries(all.map((value) => [value.name, style(value)]))\n\nexport { colors, colors as c }\n","import fs from 'fs/promises'\nimport multimatch from 'multimatch'\nimport { getDependencies } from './get-dependencies'\nimport type { PnpmDependencyFlattened } from './get-dependencies'\nimport { generateDisclaimer } from './generate-disclaimer'\nimport { resolveLicensesBestEffort } from './resolve-licenses-best-effort'\n\nexport type ListOptions = {\n  prod: boolean\n  filters: string[]\n}\n\nexport type GenerateDisclaimerOptions = {\n  prod: boolean\n  filters: string[]\n}\n\nexport type IOOptions = (\n  | { stdin: false; inputFile: undefined }\n  | { stdin: true; inputFile: undefined }\n  | { stdin: false; inputFile: string }\n) &\n  ({ stdout: true; outputFile: undefined } | { stdout: false; outputFile: string })\n\nconst output = (value: string, options: IOOptions) => {\n  if (options.stdout) {\n    return Promise.resolve(console.log(value))\n  } else {\n    return fs.writeFile(options.outputFile, value)\n  }\n}\n\nexport const listCommand = async (options: ListOptions, ioOptions: IOOptions) => {\n  const deps = getDependencies(options, ioOptions).then((deps: PnpmDependencyFlattened[]) =>\n    deps.filter((dep) => multimatch(dep.name, options.filters).length === 0)\n  )\n\n  const { successful, failed } = await resolveLicensesBestEffort(await deps)\n\n  await output(JSON.stringify(successful, null, 2), ioOptions)\n  process.exit(0)\n}\n\nexport const generateDisclaimerCommand = async (options: GenerateDisclaimerOptions, ioOptions: IOOptions) => {\n  const deps = getDependencies(options, ioOptions).then((deps: PnpmDependencyFlattened[]) =>\n    deps.filter((dep) => multimatch(dep.name, options.filters).length === 0)\n  )\n\n  const { successful, failed } = await resolveLicensesBestEffort(await deps)\n\n  await output(generateDisclaimer(successful), ioOptions)\n  process.exit(0)\n}\n"],"mappings":"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","names":["deps"]}