{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-config/config.ts"],
  "sourcesContent": ["import { docsUrl } from '../cli-utils/index.ts';\nimport { PnpmError } from '../error/index.ts';\nimport renderHelp from 'render-help';\nimport { configGet } from './configGet.ts';\nimport { configSet } from './configSet.ts';\nimport { configList } from './configList.ts';\nimport type { ConfigCommandOptions } from './ConfigCommandOptions.ts';\n\nexport function rcOptionsTypes(): Record<string, unknown> {\n  return {};\n}\n\nexport function cliOptionsTypes(): Record<string, unknown> {\n  return {\n    global: Boolean,\n    location: ['global', 'project'],\n    json: Boolean,\n  };\n}\n\nexport const commandNames = ['config', 'c'];\n\nexport function help(): string {\n  return renderHelp({\n    description: 'Manage the pnpm configuration files.',\n    descriptionLists: [\n      {\n        title: 'Commands',\n        list: [\n          {\n            description: 'Set the config key to the value provided',\n            name: 'set',\n          },\n          {\n            description: 'Print the config value for the provided key',\n            name: 'get',\n          },\n          {\n            description: 'Remove the config key from the config file',\n            name: 'delete',\n          },\n          {\n            description: 'Show all the config settings',\n            name: 'list',\n          },\n        ],\n      },\n      {\n        title: 'Options',\n        list: [\n          {\n            description: 'Sets the configuration in the global config file',\n            name: '--global',\n            shortAlias: '-g',\n          },\n          {\n            description:\n              'When set to \"project\", the .npmrc file at the nearest package.json will be used',\n            name: '--location <project|global>',\n          },\n          {\n            description: 'Show all the config settings in JSON format',\n            name: '--json',\n          },\n        ],\n      },\n    ],\n    url: docsUrl('config'),\n    usages: [\n      'pnpm config set <key> <value>',\n      'pnpm config get <key>',\n      'pnpm config delete <key>',\n      'pnpm config list',\n      'pnpm config list --json',\n    ],\n  });\n}\n\nexport async function handler(\n  opts: ConfigCommandOptions,\n  params: string[]\n  // biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\n): Promise<string | void> {\n  if (params.length === 0) {\n    throw new PnpmError(\n      'CONFIG_NO_SUBCOMMAND',\n      'Please specify the subcommand',\n      {\n        hint: help(),\n      }\n    );\n  }\n\n  if (opts.location) {\n    opts.global = opts.location === 'global';\n  } else if (opts.cliOptions['global'] == null) {\n    opts.global = true;\n  }\n\n  switch (params[0]) {\n    case 'set':\n    case 'delete': {\n      if (typeof params[1] === 'undefined') {\n        throw new PnpmError(\n          'CONFIG_NO_PARAMS',\n          `\\`pnpm config ${params[0]}\\` requires the config key`\n        );\n      }\n\n      if (params[0] === 'set') {\n        let [key, value] = params.slice(1);\n\n        if (value == null) {\n          const parts = key?.split('=');\n          key = parts?.shift();\n          value = parts?.join('=');\n        }\n\n        if (typeof key !== 'undefined') {\n          return configSet(opts, key, value ?? '');\n        }\n\n        return;\n      }\n\n      return configSet(opts, params[1], null);\n    }\n\n    case 'get': {\n      if (typeof params[1] !== 'undefined') {\n        return configGet(opts, params[1]);\n      }\n\n      return configList(opts);\n    }\n\n    case 'list': {\n      return configList(opts);\n    }\n\n    default: {\n      throw new PnpmError(\n        'CONFIG_UNKNOWN_SUBCOMMAND',\n        'This subcommand is not known'\n      );\n    }\n  }\n}\n"],
  "mappings": "AAAA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,OAAO,gBAAgB;AACvB,SAAS,iBAAiB;AAC1B,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAGpB,SAAS,iBAA0C;AACxD,SAAO,CAAC;AACV;AAEO,SAAS,kBAA2C;AACzD,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,UAAU,CAAC,UAAU,SAAS;AAAA,IAC9B,MAAM;AAAA,EACR;AACF;AAEO,MAAM,eAAe,CAAC,UAAU,GAAG;AAEnC,SAAS,OAAe;AAC7B,SAAO,WAAW;AAAA,IAChB,aAAa;AAAA,IACb,kBAAkB;AAAA,MAChB;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,UACJ;AAAA,YACE,aAAa;AAAA,YACb,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,QACE,OAAO;AAAA,QACP,MAAM;AAAA,UACJ;AAAA,YACE,aAAa;AAAA,YACb,MAAM;AAAA,YACN,YAAY;AAAA,UACd;AAAA,UACA;AAAA,YACE,aACE;AAAA,YACF,MAAM;AAAA,UACR;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,MAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,QAAQ,QAAQ;AAAA,IACrB,QAAQ;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,QACpB,MACA,QAEwB;AACxB,MAAI,OAAO,WAAW,GAAG;AACvB,UAAM,IAAI;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,QACE,MAAM,KAAK;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAEA,MAAI,KAAK,UAAU;AACjB,SAAK,SAAS,KAAK,aAAa;AAAA,EAClC,WAAW,KAAK,WAAW,QAAQ,KAAK,MAAM;AAC5C,SAAK,SAAS;AAAA,EAChB;AAEA,UAAQ,OAAO,CAAC,GAAG;AAAA,IACjB,KAAK;AAAA,IACL,KAAK,UAAU;AACb,UAAI,OAAO,OAAO,CAAC,MAAM,aAAa;AACpC,cAAM,IAAI;AAAA,UACR;AAAA,UACA,iBAAiB,OAAO,CAAC,CAAC;AAAA,QAC5B;AAAA,MACF;AAEA,UAAI,OAAO,CAAC,MAAM,OAAO;AACvB,YAAI,CAAC,KAAK,KAAK,IAAI,OAAO,MAAM,CAAC;AAEjC,YAAI,SAAS,MAAM;AACjB,gBAAM,QAAQ,KAAK,MAAM,GAAG;AAC5B,gBAAM,OAAO,MAAM;AACnB,kBAAQ,OAAO,KAAK,GAAG;AAAA,QACzB;AAEA,YAAI,OAAO,QAAQ,aAAa;AAC9B,iBAAO,UAAU,MAAM,KAAK,SAAS,EAAE;AAAA,QACzC;AAEA;AAAA,MACF;AAEA,aAAO,UAAU,MAAM,OAAO,CAAC,GAAG,IAAI;AAAA,IACxC;AAAA,IAEA,KAAK,OAAO;AACV,UAAI,OAAO,OAAO,CAAC,MAAM,aAAa;AACpC,eAAO,UAAU,MAAM,OAAO,CAAC,CAAC;AAAA,MAClC;AAEA,aAAO,WAAW,IAAI;AAAA,IACxB;AAAA,IAEA,KAAK,QAAQ;AACX,aAAO,WAAW,IAAI;AAAA,IACxB;AAAA,IAEA,SAAS;AACP,YAAM,IAAI;AAAA,QACR;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
  "names": []
}
