Source: types/types.js

/**
 * #### commit message object
 * @typedef {Object} COMMIT_MESSAGE
 * @property {string} [commit] - commit
 * @property {string} prefix - commit message prefix
 * @property {string} message - commit message
 * @property {string} hash - commit message hash
 * @property {string} name - commit message author name
 * @property {string} [date] - commit message date
 */

/**
 * #### git data object
 * @typedef {Object} GIT_DATA
 * @property {boolean} isRepo - is git repo in current directory
 * @property {boolean} isRoot - is git root in current directory
 * @property {boolean} isCommits - is git commits
 * @property {boolean} isTagInCurrentCommit - is git tag in current commit
 * @property {boolean} isRemote - is git remote
 * @property {boolean} isBranchDetached - is git branch detached
 * @property {boolean} isBranchAhead - is git branch ahead
 * @property {boolean} isBranchBehind - is git branch behind
 * @property {string} hash - git hash
 * @property {string} branch - git branch
 * @property {string} lastTag - git last tag
 * @property {string} status - git status
 * @property {Array<COMMIT_MESSAGE>} log - git log
 * @property {string} branchUpstream - git branch upstream
 * @property {Array<string>} stagedFiles - is git staged files
 * @property {Array<string>} changedFiles - is git staged files
 * @property {Object} remote - git remote origin
 * @property {string} [remote.protocol] - git remote origin protocol
 * @property {string} [remote.href] - git remote origin href
 * @property {string} [remote.full_name] - git remote origin full_name
 * @property {string} [remote.host] - git remote origin host
 * @property {string} [remote.owner] - git remote origin owner
 * @property {string} [remote.name] - git remote origin name
 */

/**
 * #### prompts answers object
 * @typedef {Object} PROMPTS_ANSWERS
 * @property {string} [releaseType] - release type
 * @property {string} [releaseVersion] - release version
 * @property {boolean} [changelog] - release version
 * @property {boolean} [githubRelease] - github release
 */

/**
 * #### cli package.json object
 * @typedef {Object} CLI_PACKAGE_JSON
 * @property {string} version - package version
 * @property {Object} engines - engines
 * @property {string} engines.node - node version
 * @property {string} engines.npm - npm version
 */

/**
 * #### quickrelease.json config object
 * @typedef {Object} QUICKRELEASE_CONFIG
 * @property {Array<string>} files=package.json,package-lock.json - additional files to parse and include into release process
 * @property {Object} changelog - changelog config
 * @property {string} changelog.file=CHANGELOG.md - changelog file name, `CHANGELOG.md` by default
 * @property {Array<string>} [changelog.labels] - git commit labels to use for buildin changelog
 * @property {string} [changelog.breakingLabel] - label to indicate breaking changes in git log.
 * @property {Array<string>} [githubReleaseTitles] - github release titles
 */

/**
 * #### data object
 * @typedef {Object} DATA
 * @property {CLI_PACKAGE_JSON} cli - cli info
 * @property {Object} cwd - current working directory
 * @property {string} cwd.path - current working directory path
 * @property {string} cwd.dir - current working directory dir
 * @property {string} cwd.base - current working directory base
 * @property {string} cwd.name - current working directory name
 * @property {Object} env - node env
 * @property {string} [env.GITHUB_TOKEN] - github token
 * @property {Object} system - system info
 * @property {string} system.node - system node version
 * @property {string} system.npm - system npm version
 * @property {string} system.git - system git version
 * @property {QUICKRELEASE_CONFIG} config - quick-release config
 * @property {GIT_DATA} git - git info
 * @property {PROMPTS_ANSWERS} answers - prompt answers
 * @property {Object} changelog - changelog data
 * @property {Array<COMMIT_MESSAGE>} changelog.generic - changelog generic commits data
 * @property {Array<COMMIT_MESSAGE>} changelog.breaking - changelog breaking commits data
 * @property {string} changelog.draft - changelog draft
 * @property {Object} github - GitHub data
 * @property {boolean} github.token - GitHub token
 * @property {Object} github.commits - GitHub commits data
 * @property {Array<COMMIT_MESSAGE>} github.commits.all - all GitHub commits
 * @property {Array<COMMIT_MESSAGE>} github.commits.generic - GitHub generic commits
 * @property {Array<COMMIT_MESSAGE>} github.commits.breaking - GitHub breaking commits
 * @property {string} github.releaseNotes - GitHub release notes
 */

/**
 * #### json formating info
 * @typedef {Object} JSON_FORMATING_INFO
 * @property {string|undefined|number} space - json space size
 * @property {string} newline - json newline
 */

/**
 * #### json file data with formating info
 * @typedef {Object} JSON_WITH_FORMATING
 * @property {any} data - json data
 * @property {JSON_FORMATING_INFO} format - json formating info
 */

export default {}

Table of contents