// This function does not modify the lockfile. It asserts that packages do not use SSH
// when specifying git repository
function afterAllResolved(lockfile, context) {
  const pkgs = lockfile['packages'];
  for (const [pkg, entry] of Object.entries(pkgs)) {
    const repo = entry.resolution['repo'];
    if (repo !== undefined) {
      if (repo.startsWith('git@github.com')) {
        throw new Error(`Invalid git ssh specification found for package ${pkg}. Ensure sure that the dependencies do not reference SSH-based git repos before running installing them`);
      }
    }
  }
  return lockfile
}

module.exports = {
  hooks: {
    afterAllResolved
  }
}