{
  "version": 3,
  "sources": ["../../../../src/packages/read-project-manifest/readFile.ts"],
  "sourcesContent": ["import gfs from '../graceful-fs/index.ts';\nimport type { ProjectManifest } from '../types/index.ts';\nimport JSON5 from 'json5';\nimport parseJson from 'parse-json';\nimport stripBom from 'strip-bom';\n\nexport async function readJson5File(\n  filePath: string\n): Promise<{ data: ProjectManifest; text: string }> {\n  const text = await readFileWithoutBom(filePath);\n\n  try {\n    return {\n      data: JSON5.parse(text),\n      text,\n    };\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } catch (err: any) {\n    err.message = `${err.message as string} in ${filePath}`;\n    err['code'] = 'ERR_PNPM_JSON5_PARSE';\n    throw err;\n  }\n}\n\nexport async function readJsonFile(\n  filePath: string\n): Promise<{ data: ProjectManifest; text: string }> {\n  const text = await readFileWithoutBom(filePath);\n  try {\n    return {\n      // TODO: valibot schema\n      data: parseJson(text, filePath) as unknown as ProjectManifest,\n      text,\n    };\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } catch (err: any) {\n    err['code'] = 'ERR_PNPM_JSON_PARSE';\n    throw err;\n  }\n}\n\nasync function readFileWithoutBom(path: string): Promise<string> {\n  return stripBom(await gfs.readFile(path, 'utf8'));\n}\n"],
  "mappings": "AAAA,OAAO,SAAS;AAEhB,OAAO,WAAW;AAClB,OAAO,eAAe;AACtB,OAAO,cAAc;AAErB,eAAsB,cACpB,UACkD;AAClD,QAAM,OAAO,MAAM,mBAAmB,QAAQ;AAE9C,MAAI;AACF,WAAO;AAAA,MACL,MAAM,MAAM,MAAM,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EAEF,SAAS,KAAU;AACjB,QAAI,UAAU,GAAG,IAAI,OAAiB,OAAO,QAAQ;AACrD,QAAI,MAAM,IAAI;AACd,UAAM;AAAA,EACR;AACF;AAEA,eAAsB,aACpB,UACkD;AAClD,QAAM,OAAO,MAAM,mBAAmB,QAAQ;AAC9C,MAAI;AACF,WAAO;AAAA;AAAA,MAEL,MAAM,UAAU,MAAM,QAAQ;AAAA,MAC9B;AAAA,IACF;AAAA,EAEF,SAAS,KAAU;AACjB,QAAI,MAAM,IAAI;AACd,UAAM;AAAA,EACR;AACF;AAEA,eAAe,mBAAmB,MAA+B;AAC/D,SAAO,SAAS,MAAM,IAAI,SAAS,MAAM,MAAM,CAAC;AAClD;",
  "names": []
}
