{
  "version": 3,
  "sources": ["../../../../src/packages/patching.apply-patch/index.ts"],
  "sourcesContent": ["import { PnpmError } from '../error/index.ts';\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport { applyPatch } from '@pnpm/patch-package/dist/applyPatches';\nimport { globalWarn } from '../logger/index.ts';\n\nexport type ApplyPatchToDirOpts = {\n  allowFailure?: boolean | undefined;\n  patchedDir: string;\n  patchFilePath: string;\n};\n\nexport function applyPatchToDir(opts: ApplyPatchToDirOpts): boolean {\n  // Ideally, we would just run \"patch\" or \"git apply\".\n  // However, \"patch\" is not available on Windows and \"git apply\" is hard to execute on a subdirectory of an existing repository\n  const cwd = process.cwd();\n\n  process.chdir(opts.patchedDir);\n\n  let success = false;\n\n  try {\n    success = applyPatch({\n      patchFilePath: opts.patchFilePath,\n    });\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  } catch (err: any) {\n    if (err.code === 'ENOENT') {\n      throw new PnpmError(\n        'PATCH_NOT_FOUND',\n        `Patch file not found: ${opts.patchFilePath}`\n      );\n    }\n\n    throw new PnpmError(\n      'INVALID_PATCH',\n      `Applying patch \"${opts.patchFilePath}\" failed: ${err.message as string}`\n    );\n  } finally {\n    process.chdir(cwd);\n  }\n\n  if (!success) {\n    const message = `Could not apply patch ${opts.patchFilePath} to ${opts.patchedDir}`;\n    if (opts.allowFailure === true) {\n      globalWarn(message);\n    } else {\n      throw new PnpmError('PATCH_FAILED', message);\n    }\n  }\n\n  return success;\n}\n"],
  "mappings": "AAAA,SAAS,iBAAiB;AAG1B,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAQpB,SAAS,gBAAgB,MAAoC;AAGlE,QAAM,MAAM,QAAQ,IAAI;AAExB,UAAQ,MAAM,KAAK,UAAU;AAE7B,MAAI,UAAU;AAEd,MAAI;AACF,cAAU,WAAW;AAAA,MACnB,eAAe,KAAK;AAAA,IACtB,CAAC;AAAA,EAEH,SAAS,KAAU;AACjB,QAAI,IAAI,SAAS,UAAU;AACzB,YAAM,IAAI;AAAA,QACR;AAAA,QACA,yBAAyB,KAAK,aAAa;AAAA,MAC7C;AAAA,IACF;AAEA,UAAM,IAAI;AAAA,MACR;AAAA,MACA,mBAAmB,KAAK,aAAa,aAAa,IAAI,OAAiB;AAAA,IACzE;AAAA,EACF,UAAE;AACA,YAAQ,MAAM,GAAG;AAAA,EACnB;AAEA,MAAI,CAAC,SAAS;AACZ,UAAM,UAAU,yBAAyB,KAAK,aAAa,OAAO,KAAK,UAAU;AACjF,QAAI,KAAK,iBAAiB,MAAM;AAC9B,iBAAW,OAAO;AAAA,IACpB,OAAO;AACL,YAAM,IAAI,UAAU,gBAAgB,OAAO;AAAA,IAC7C;AAAA,EACF;AAEA,SAAO;AACT;",
  "names": []
}
