{
  "version": 3,
  "sources": ["../../../../src/packages/git-utils/index.ts"],
  "sourcesContent": ["import { execa } from 'execa';\n\n// git checks logic is from https://github.com/sindresorhus/np/blob/master/source/git-tasks.js\n\nexport async function isGitRepo(): Promise<boolean> {\n  try {\n    await execa('git', ['rev-parse', '--git-dir']);\n  } catch {\n    return false;\n  }\n  return true;\n}\n\nexport async function getCurrentBranch(): Promise<string | null> {\n  try {\n    const { stdout } = await execa('git', ['symbolic-ref', '--short', 'HEAD']);\n    return stdout;\n  } catch {\n    // Command will fail with code 1 if the HEAD is detached.\n    return null;\n  }\n}\n\nexport async function isWorkingTreeClean(): Promise<boolean> {\n  try {\n    const { stdout: status } = await execa('git', ['status', '--porcelain']);\n    if (status !== '') {\n      return false;\n    }\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nexport async function isRemoteHistoryClean(): Promise<boolean> {\n  let history: string | null = null;\n\n  try {\n    // Gracefully handle no remote set up.\n    const { stdout } = await execa('git', [\n      'rev-list',\n      '--count',\n      '--left-only',\n      '@{u}...HEAD',\n    ]);\n\n    history = stdout;\n  } catch {\n    history = null;\n  }\n\n  if (history !== null && history !== '0') {\n    return false;\n  }\n\n  return true;\n}\n"],
  "mappings": "AAAA,SAAS,aAAa;AAItB,eAAsB,YAA8B;AAClD,MAAI;AACF,UAAM,MAAM,OAAO,CAAC,aAAa,WAAW,CAAC;AAAA,EAC/C,QAAQ;AACN,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,eAAsB,mBAA2C;AAC/D,MAAI;AACF,UAAM,EAAE,OAAO,IAAI,MAAM,MAAM,OAAO,CAAC,gBAAgB,WAAW,MAAM,CAAC;AACzE,WAAO;AAAA,EACT,QAAQ;AAEN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,qBAAuC;AAC3D,MAAI;AACF,UAAM,EAAE,QAAQ,OAAO,IAAI,MAAM,MAAM,OAAO,CAAC,UAAU,aAAa,CAAC;AACvE,QAAI,WAAW,IAAI;AACjB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,eAAsB,uBAAyC;AAC7D,MAAI,UAAyB;AAE7B,MAAI;AAEF,UAAM,EAAE,OAAO,IAAI,MAAM,MAAM,OAAO;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAED,cAAU;AAAA,EACZ,QAAQ;AACN,cAAU;AAAA,EACZ;AAEA,MAAI,YAAY,QAAQ,YAAY,KAAK;AACvC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;",
  "names": []
}
