import { IReleaseInfo } from '../types'; import { AbstractBuilder } from './AbstractBuilder'; declare class NPMBuilder extends AbstractBuilder { test(): Promise; beforePublish(): Promise; publish(): Promise; afterPublish(): Promise; beforeVerifyPullRequest(): Promise; verifyRelease(): Promise; verifyNonRelease(): Promise; afterVerifyPullRequest(): Promise; /** * Given the contents of a changelog file it returns a message explaining what it needs to be * done to it before it can be compatible for a release. For now all we care is that it contains * an entry for the package version we are about to release. * * @returns A message explaining the error, if any. An empty string if everything is good. */ private verifyChangeLog; /** * The release setup requires 3 things to happen: * * - update package.json * - update README.md * - update CHANGELOG.md */ releaseSetup({ currentVersion, newVersion }: IReleaseInfo): Promise; /** * Obtain a link to the comparison between two tags/hashes. */ private githubCompareLink; /** * The CHANGELOG setup is a bit more complicated. We need to make sure that every version has * an entry and that each entry is a link to the comparison of the repo. * * @param content The content of the CHANGELOG.md file. * @param newVersion The new version we are releasing. * @param firstCommit The very first commit hash of the repo. */ private updateChangeLog; /** * Currently the README files in iOffice project contain links to the documentation and these * links point to specific versions. For this reason we must update the links so that any instance * that points to the current version will now point to the new one. * * @param content The content of the README file. * @param currentVersion The current version of the package. * @param newVersion The new version we are releasing. */ private updateREADME; } export { NPMBuilder, };