{
  "version": 3,
  "sources": ["../../../../src/packages/read-package-json/index.ts"],
  "sourcesContent": ["import path from 'node:path';\nimport { PnpmError } from '../error/index.ts';\nimport type { PackageManifest } from '../types/index.ts';\nimport { loadJsonFile } from 'load-json-file';\nimport normalizePackageData from 'normalize-package-data';\n\nexport async function readPackageJson(\n  pkgPath: string\n): Promise<PackageManifest> {\n  try {\n    const manifest = await loadJsonFile<PackageManifest>(pkgPath);\n    normalizePackageData(manifest);\n    return manifest;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } catch (err: any) {\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (err.code) {\n      throw err;\n    }\n\n    throw new PnpmError(\n      'BAD_PACKAGE_JSON',\n      `${pkgPath}: ${err.message as string}`\n    );\n  }\n}\n\nexport async function readPackageJsonFromDir(\n  pkgPath: string\n): Promise<PackageManifest> {\n  return readPackageJson(path.join(pkgPath, 'package.json'));\n}\n\nexport async function safeReadPackageJson(\n  pkgPath: string\n): Promise<PackageManifest | null> {\n  try {\n    return await readPackageJson(pkgPath);\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } catch (err: any) {\n    if ((err as NodeJS.ErrnoException).code !== 'ENOENT') {\n      throw err;\n    }\n\n    return null;\n  }\n}\n\nexport async function safeReadPackageJsonFromDir(\n  pkgPath: string\n): Promise<PackageManifest | null> {\n  return safeReadPackageJson(path.join(pkgPath, 'package.json'));\n}\n"],
  "mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,iBAAiB;AAE1B,SAAS,oBAAoB;AAC7B,OAAO,0BAA0B;AAEjC,eAAsB,gBACpB,SAC0B;AAC1B,MAAI;AACF,UAAM,WAAW,MAAM,aAA8B,OAAO;AAC5D,yBAAqB,QAAQ;AAC7B,WAAO;AAAA,EAET,SAAS,KAAU;AAEjB,QAAI,IAAI,MAAM;AACZ,YAAM;AAAA,IACR;AAEA,UAAM,IAAI;AAAA,MACR;AAAA,MACA,GAAG,OAAO,KAAK,IAAI,OAAiB;AAAA,IACtC;AAAA,EACF;AACF;AAEA,eAAsB,uBACpB,SAC0B;AAC1B,SAAO,gBAAgB,KAAK,KAAK,SAAS,cAAc,CAAC;AAC3D;AAEA,eAAsB,oBACpB,SACiC;AACjC,MAAI;AACF,WAAO,MAAM,gBAAgB,OAAO;AAAA,EAEtC,SAAS,KAAU;AACjB,QAAK,IAA8B,SAAS,UAAU;AACpD,YAAM;AAAA,IACR;AAEA,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,2BACpB,SACiC;AACjC,SAAO,oBAAoB,KAAK,KAAK,SAAS,cAAc,CAAC;AAC/D;",
  "names": []
}
