"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tapable_1 = require("tapable");
/** Make the hooks for "auto" */
exports.makeHooks = () => ({
    beforeRun: new tapable_1.SyncHook(['config']),
    modifyConfig: new tapable_1.SyncWaterfallHook(['config']),
    beforeShipIt: new tapable_1.SyncHook([]),
    afterAddToChangelog: new tapable_1.AsyncSeriesHook(['context']),
    beforeCommitChangelog: new tapable_1.AsyncSeriesHook(['context']),
    afterShipIt: new tapable_1.AsyncParallelHook(['version', 'commits']),
    afterRelease: new tapable_1.AsyncParallelHook(['releaseInfo']),
    onCreateRelease: new tapable_1.SyncHook(['options']),
    onCreateChangelog: new tapable_1.SyncHook(['changelog', 'version']),
    onCreateLogParse: new tapable_1.SyncHook(['logParse']),
    getAuthor: new tapable_1.AsyncSeriesBailHook([]),
    getPreviousVersion: new tapable_1.AsyncSeriesBailHook(['prefixRelease']),
    getRepository: new tapable_1.AsyncSeriesBailHook([]),
    version: new tapable_1.AsyncParallelHook(['version']),
    afterVersion: new tapable_1.AsyncParallelHook([]),
    publish: new tapable_1.AsyncParallelHook(['version']),
    afterPublish: new tapable_1.AsyncParallelHook([]),
    canary: new tapable_1.AsyncSeriesBailHook(['canaryVersion', 'postFix'])
});
/** Make the hooks for "Release" */
exports.makeReleaseHooks = () => ({
    onCreateChangelog: new tapable_1.SyncHook(['changelog', 'version']),
    createChangelogTitle: new tapable_1.AsyncSeriesBailHook([]),
    onCreateLogParse: new tapable_1.SyncHook(['logParse'])
});
/** Make the hooks for "LogParse" */
exports.makeLogParseHooks = () => ({
    parseCommit: new tapable_1.AsyncSeriesWaterfallHook(['commit']),
    omitCommit: new tapable_1.AsyncSeriesBailHook(['commit'])
});
/** Make the hooks for "Changelog" */
exports.makeChangelogHooks = () => ({
    addToBody: new tapable_1.AsyncSeriesWaterfallHook(['notes', 'commits']),
    renderChangelogLine: new tapable_1.AsyncSeriesWaterfallHook(['lineData']),
    renderChangelogTitle: new tapable_1.AsyncSeriesBailHook(['commits', 'lineRender']),
    renderChangelogAuthor: new tapable_1.AsyncSeriesBailHook([
        'author',
        'commit',
        'options'
    ]),
    renderChangelogAuthorLine: new tapable_1.AsyncSeriesBailHook(['author', 'user']),
    omitReleaseNotes: new tapable_1.AsyncSeriesBailHook(['commit'])
});
//# sourceMappingURL=make-hooks.js.map