{
  "version": 3,
  "sources": ["../../../../src/packages/plugin-commands-config/configSet.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport util from 'node:util';\nimport { runNpm } from '../run-npm/index.ts';\nimport { readIniFile } from 'read-ini-file';\nimport { writeIniFile } from 'write-ini-file';\nimport type { ConfigCommandOptions } from './ConfigCommandOptions.ts';\n\nexport async function configSet(\n  opts: ConfigCommandOptions,\n  key: string,\n  value: string | null\n): Promise<void> {\n  const configPath =\n    opts.global === true\n      ? path.join(opts.configDir, 'rc')\n      : path.join(opts.dir, '.npmrc');\n\n  if (opts.global === true && settingShouldFallBackToNpm(key)) {\n    const _runNpm = runNpm.bind(null, opts.npmPath);\n\n    if (value == null) {\n      _runNpm(['config', 'delete', key]);\n    } else {\n      _runNpm(['config', 'set', `${key}=${value}`]);\n    }\n\n    return;\n  }\n\n  const settings = await safeReadIniFile(configPath);\n\n  if (value == null) {\n    if (settings[key] == null) return;\n    delete settings[key];\n  } else {\n    settings[key] = value;\n  }\n\n  await writeIniFile(configPath, settings);\n}\n\nfunction settingShouldFallBackToNpm(key: string): boolean {\n  return (\n    ['registry', '_auth', '_authToken', 'username', '_password'].includes(\n      key\n    ) ||\n    key.startsWith('@') ||\n    key.startsWith('//')\n  );\n}\n\nasync function safeReadIniFile(\n  configPath: string\n): Promise<Record<string, unknown>> {\n  try {\n    return (await readIniFile(configPath)) as Record<string, unknown>;\n  } catch (err: unknown) {\n    if (util.types.isNativeError(err) && 'code' in err && err.code === 'ENOENT')\n      return {};\n    throw err;\n  }\n}\n"],
  "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,SAAS,cAAc;AACvB,SAAS,mBAAmB;AAC5B,SAAS,oBAAoB;AAG7B,eAAsB,UACpB,MACA,KACA,OACe;AACf,QAAM,aACJ,KAAK,WAAW,OACZ,KAAK,KAAK,KAAK,WAAW,IAAI,IAC9B,KAAK,KAAK,KAAK,KAAK,QAAQ;AAElC,MAAI,KAAK,WAAW,QAAQ,2BAA2B,GAAG,GAAG;AAC3D,UAAM,UAAU,OAAO,KAAK,MAAM,KAAK,OAAO;AAE9C,QAAI,SAAS,MAAM;AACjB,cAAQ,CAAC,UAAU,UAAU,GAAG,CAAC;AAAA,IACnC,OAAO;AACL,cAAQ,CAAC,UAAU,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;AAAA,IAC9C;AAEA;AAAA,EACF;AAEA,QAAM,WAAW,MAAM,gBAAgB,UAAU;AAEjD,MAAI,SAAS,MAAM;AACjB,QAAI,SAAS,GAAG,KAAK,KAAM;AAC3B,WAAO,SAAS,GAAG;AAAA,EACrB,OAAO;AACL,aAAS,GAAG,IAAI;AAAA,EAClB;AAEA,QAAM,aAAa,YAAY,QAAQ;AACzC;AAEA,SAAS,2BAA2B,KAAsB;AACxD,SACE,CAAC,YAAY,SAAS,cAAc,YAAY,WAAW,EAAE;AAAA,IAC3D;AAAA,EACF,KACA,IAAI,WAAW,GAAG,KAClB,IAAI,WAAW,IAAI;AAEvB;AAEA,eAAe,gBACb,YACkC;AAClC,MAAI;AACF,WAAQ,MAAM,YAAY,UAAU;AAAA,EACtC,SAAS,KAAc;AACrB,QAAI,KAAK,MAAM,cAAc,GAAG,KAAK,UAAU,OAAO,IAAI,SAAS;AACjE,aAAO,CAAC;AACV,UAAM;AAAA,EACR;AACF;",
  "names": []
}
