export { default as getCommits } from "./git/getCommits.js";
export { default as getLastTag } from "./git/getLastGitTag.js";
export { default as getRemoteName } from "./git/getGitRemote.js";
export { default as getSHA1fromRef } from "./git/getSHA1FromRef.js";
export { default as getCurrentBranchName } from "./git/getCurrentBranchName.js";

export { default as gitPush } from "./git/doGitPush.js";
export { default as gitPull } from "./git/doGitPull.js";
export { default as gitPushTags } from "./git/doGitPushTags.js";
export { default as gitCommit } from "./git/doGitCommit.js";
export { default as gitTag } from "./git/doGitTag.js";
export { default as gitCreateBranch } from "./git/doCreateGitBranch.js";
import { default as gitCheckoutBranchFn } from "./git/doGitSwitchBranch.js";

/**
 * @deprecated use {@link gitSwitchBranch} instead
 * @see https://github.blog/2019-08-16-highlights-from-git-2-23/
 */
export const gitCheckoutBranch = gitCheckoutBranchFn;

export { default as gitSwitchBranch } from "./git/doGitSwitchBranch.js";
export { default as gitAdd } from "./git/doGitAdd.js";
export { default as gitCommitTree } from "./git/doCommitTree.js";
export { default as gitWriteTree } from "./git/doGitWriteTree.js";
export { default as gitUpdateRef } from "./git/doGitUpdateRef.js";
export { default as gitSetupUser } from "./git/doGitSetupUser.js";
export { default as gitSetupSshRemote } from "./git/doGitSetupSshRemote.js";
export { default as gitSetRefOnCommit } from "./git/doGitSetRefOnCommit.js";
export { default as gitDeleteRemoteBranch } from "./git/doGitPushDelete.js";
export { default as gitPublishBranch } from "./git/doGitPublishBranch.js";
export { default as gitReset } from "./git/doGitReset.js";
export { default as gitDiff } from "./git/doGitDiff.js";

export { default as npmSetTag } from "./npm/doSetNpmTag.js";
export { default as npmBumpVersion } from "./npm/doNpmBumpVersion.js";
export { default as npmPublish } from "./npm/doNpmPublish.js";
export { default as refreshPackageLock } from "./npm/doRefreshPackageLock.js";
export { default as describeNpmTag } from "./npm/describeNpmTag.js";

export { default as pnpmBumpVersion } from "./pnpm/doPnpmBumpVersion.js";
export { default as pnpmPublish } from "./pnpm/doPnpmPublishVersions.js";

export { default as pnpmGetChangedPackages } from "./pnpm/getPnpmChangedPackages.js";

export { default as writeChangelog } from "./changelog/doWriteChangelog.js";

export { default as generateChangelog } from "./changelog/getChangelog.js";
export { default as getNextVersion } from "./version/getNextVersion.js";
export { default as getCurrentVersion } from "./version/getCurrentVersion.js";
export { default as parseCommits } from "./semantic/getParsedCommits.js";
