@w5s/conventional-changelog 2.2.2 โ 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +3 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -6
- package/dist/index.d.ts +12 -6
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/data.ts +5 -2
- package/src/parser-opts.ts +2 -2
- package/src/transform.ts +8 -7
- package/src/writer-opts.ts +3 -2
package/dist/index.cjs
CHANGED
|
@@ -257,12 +257,12 @@ function createTransform(config) {
|
|
|
257
257
|
}));
|
|
258
258
|
const conventionalType = commit.type == null ? void 0 : CommitConventionalType.parse(commit.type) ?? (GitmojiCode.isValid(commit.type) ? GitmojiCode.toConventionalCommitType(commit.type) : void 0);
|
|
259
259
|
if (ignoreType(conventionalType) && discard) return false;
|
|
260
|
-
const type = conventionalType == null ?
|
|
260
|
+
const type = conventionalType == null ? null : displayType(conventionalType, {
|
|
261
261
|
withEmoji: config.withEmoji
|
|
262
262
|
});
|
|
263
263
|
if (ignoreScope(commit.scope)) return false;
|
|
264
264
|
const scopeIntermediate = commit.scope === "*" ? "" : commit.scope;
|
|
265
|
-
const scope = config.scopeDisplayName == null ?
|
|
265
|
+
const scope = config.scopeDisplayName == null ? null : displayScope(scopeIntermediate, config.scopeDisplayName) ?? null;
|
|
266
266
|
const hash = typeof commit.hash === "string" ? commit.hash.slice(0, 7) : commit.hash;
|
|
267
267
|
const subject = typeof commit.subject === "string" ? (() => {
|
|
268
268
|
let returnValue = commit.subject;
|
|
@@ -317,6 +317,7 @@ var writerOpts = {
|
|
|
317
317
|
}),
|
|
318
318
|
groupBy: "type",
|
|
319
319
|
commitGroupsSort: "title",
|
|
320
|
+
// @ts-ignore
|
|
320
321
|
commitsSort: ["scope", "subject"],
|
|
321
322
|
noteGroupsSort: "title",
|
|
322
323
|
mainTemplate,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/git-raw-commit-opts.ts","../src/parser-opts.ts","../src/data.ts","../src/gitmoji.ts","../src/recommended-bump-opts.ts","../src/transform.ts","../src/writer-opts.ts","../src/index.ts"],"names":["Emoji","emojiRegexp","GitmojiCode","gitmojis","toConventionalCommitType","nodePath","fileURLToPath","readFileSync"],"mappings":"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","file":"index.cjs","sourcesContent":["export const gitRawCommitOpts = {\n format: '%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci%n-authorName-%n%an%n-authorEmail-%n%ae',\n};\n","import type { Options } from 'conventional-commits-parser';\n\nexport interface ParserOptions extends Options {}\n\nexport const parserOpts: ParserOptions = {\n headerPattern: new RegExp(\n // Type\n `^(?<type>\\\\S*)? ` +\n // Scope\n `(?:\\\\((?<scope>.*)\\\\):? )?` +\n // Subject\n `(?<subject>.*)$`,\n 'u',\n ),\n headerCorrespondence: ['type', 'scope', 'subject'],\n revertPattern: /^(?:revert|revert:)\\s\"?([\\S\\s]+?)\"?\\s*this reverts commit (\\w*)\\./i,\n noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],\n // revertPattern: /revert:\\s([\\S\\s]*?)\\s*this reverts commit (\\w*)\\./i,\n revertCorrespondence: [`header`, `hash`],\n};\n","import type { Commit as CommitDefault } from 'conventional-commits-parser';\n\nexport type Commit = CommitDefault<never> & {\n hash?: string;\n};\n\nexport type CommitConventionalType =\n | 'build'\n | 'ci'\n | 'docs'\n | 'feat'\n | 'fix'\n | 'perf'\n | 'refactor'\n | 'revert'\n | 'style'\n | 'test'\n | 'wip'\n | 'chore';\n\nexport const CommitConventionalType = (() => {\n const enumObject = Object.freeze({\n Build: 'build',\n CI: 'ci',\n Docs: 'docs',\n Feat: 'feat',\n Fix: 'fix',\n Perf: 'perf',\n Refactor: 'refactor',\n Revert: 'revert',\n Style: 'style',\n Test: 'test',\n WIP: 'wip',\n Chore: 'chore',\n });\n const enumValues: readonly CommitConventionalType[] = Object.freeze(Object.values(enumObject).sort());\n const enumValuesSet = new Set(enumValues);\n\n const typeData: Record<CommitConventionalType, CommitConventionalTypeData> = {\n feat: {\n emoji: 'โจ',\n 'en-US': 'Features',\n changelog: true,\n },\n fix: {\n emoji: '๐',\n 'en-US': 'Bug Fixes',\n changelog: true,\n },\n build: {\n emoji: '๐ท',\n 'en-US': 'Build System',\n changelog: false,\n },\n chore: {\n emoji: '๐ซ',\n 'en-US': 'Chores',\n changelog: false,\n },\n ci: {\n emoji: '๐ง',\n 'en-US': 'Continuous Integration',\n changelog: false,\n },\n docs: {\n emoji: '๐',\n 'en-US': 'Documentation',\n changelog: false,\n },\n test: {\n emoji: 'โ
',\n 'en-US': 'Tests',\n changelog: false,\n },\n perf: {\n emoji: 'โก',\n 'en-US': 'Performance Improvements',\n changelog: true,\n },\n refactor: {\n emoji: 'โป',\n 'en-US': 'Code Refactoring',\n changelog: false,\n },\n revert: {\n emoji: 'โช',\n 'en-US': 'Reverts',\n changelog: true,\n },\n style: {\n emoji: '๐',\n 'en-US': 'Styles',\n changelog: false,\n },\n wip: {\n emoji: '๐ง',\n 'en-US': 'Work in progress',\n changelog: false,\n },\n };\n\n function hasInstance(anyValue: unknown): anyValue is CommitConventionalType {\n return typeof anyValue === 'string' && enumValuesSet.has(anyValue as unknown as CommitConventionalType);\n }\n\n function getData(commitType: CommitConventionalType): CommitConventionalTypeData {\n return typeData[commitType];\n }\n\n function parse(anyValue: string): CommitConventionalType | undefined {\n return hasInstance(anyValue) ? anyValue : undefined;\n }\n\n function values() {\n return enumValues;\n }\n\n function findWhere(predicate: (data: CommitConventionalTypeData) => boolean): CommitConventionalType[] {\n return enumValues.filter((enumValue) => predicate(getData(enumValue)));\n }\n\n return { ...enumObject, hasInstance, getData, values, parse, findWhere };\n})();\n\nexport interface CommitConventionalTypeData {\n emoji: string;\n 'en-US': string;\n changelog: boolean;\n}\n","import emojiRegexp from 'emoji-regex';\nimport { type Gitmoji, gitmojis } from 'gitmojis';\nimport type { CommitConventionalType } from './data.js';\n\nexport type Emoji = Emoji.Unicode | Emoji.Text;\nexport namespace Emoji {\n export const reEmojiUnicode = emojiRegexp();\n\n export const reEmojiText = /:\\w*:/;\n\n const reMatchOnly = (input: RegExp) => new RegExp(`^${input.source}$`, '');\n const _reEmojiUnicode = reMatchOnly(reEmojiUnicode);\n const _reEmojiText = reMatchOnly(reEmojiText);\n\n export type Unicode = string & { '@@EmojiStyle': 'unicode' };\n export type Text = string & { '@@EmojiStyle': 'text' };\n\n export function isUnicode(anyValue: string): anyValue is Unicode {\n return _reEmojiUnicode.test(anyValue);\n }\n\n export function isText(anyValue: string): anyValue is Text {\n return _reEmojiText.test(anyValue);\n }\n\n export function hasInstance(anyValue: string): anyValue is Emoji {\n return isText(anyValue) || isUnicode(anyValue);\n }\n}\n\nexport type GitmojiCode = Emoji & { '@@Gitmoji': true };\nexport namespace GitmojiCode {\n export type Unicode = Emoji.Unicode & { '@@Gitmoji': true };\n export type Emoji = Emoji.Text & { '@@Gitmoji': true };\n\n // export const reEmoji = emojiRegexp();\n\n const allGitmojiCodes = new Set(\n gitmojis\n .map((gitmoji) => gitmoji.code as GitmojiCode)\n .concat(gitmojis.map((gitmoji) => gitmoji.emoji as GitmojiCode)),\n );\n const index = {\n // code: createIndex(gitmojis, 'code'),\n emoji: createIndex(gitmojis, 'emoji'),\n };\n\n function createIndex<K extends keyof Gitmoji>(list: readonly Gitmoji[], key: K): ReadonlyMap<Gitmoji[K], Gitmoji> {\n return new Map(list.map((gitmoji) => [gitmoji[key], gitmoji]));\n }\n\n export function isValid(anyValue: string): anyValue is GitmojiCode {\n return allGitmojiCodes.has(anyValue as GitmojiCode);\n }\n\n const defaultType = 'chore';\n const conversionMap: ReadonlyMap<GitmojiCode, CommitConventionalType> = (() => {\n const data: Record<CommitConventionalType, GitmojiCode.Unicode[]> = {\n feat: ['โจ', 'โฟ๏ธ', '๐ธ'] as GitmojiCode.Unicode[],\n fix: ['๐'] as GitmojiCode.Unicode[],\n docs: ['๐'] as GitmojiCode.Unicode[],\n style: ['๐จ', '๐จ'] as GitmojiCode.Unicode[],\n refactor: ['โป๏ธ', '๐๏ธ'] as GitmojiCode.Unicode[],\n test: ['โ
', '๐งช'] as GitmojiCode.Unicode[],\n perf: ['โก๏ธ'] as GitmojiCode.Unicode[],\n revert: ['โช๏ธ'] as GitmojiCode.Unicode[],\n ci: ['๐ท', '๐'] as GitmojiCode.Unicode[],\n wip: ['๐ง'] as GitmojiCode.Unicode[],\n build: [] as GitmojiCode.Unicode[],\n chore: ['๐ง'] as GitmojiCode.Unicode[],\n };\n\n const entries = Array.from<[CommitConventionalType, GitmojiCode.Unicode[]]>(\n // @ts-ignore entries are not well typed\n Object.entries(data),\n );\n return new Map(\n entries.reduce<Array<[GitmojiCode, CommitConventionalType]>>(\n (acc, [commitType, gitmojiUnicodeArray]) =>\n acc\n .concat(gitmojiUnicodeArray.map((gitmojiUnicode) => [gitmojiUnicode, commitType]))\n\n .concat(\n gitmojiUnicodeArray.map((gitmojiUnicode) => [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n index.emoji.get(gitmojiUnicode)?.code! as GitmojiCode,\n commitType,\n ]),\n ),\n [],\n ),\n );\n })();\n\n export function toConventionalCommitType(gitmoji: GitmojiCode): CommitConventionalType {\n return conversionMap.get(gitmoji) ?? defaultType;\n }\n}\n","import type { Commit as CommitBase } from 'conventional-commits-parser';\nimport { parserOpts } from './parser-opts.js';\nimport { CommitConventionalType } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nfunction toConventionalCommitType(text: string) {\n return GitmojiCode.isValid(text)\n ? GitmojiCode.toConventionalCommitType(text)\n : CommitConventionalType.hasInstance(text)\n ? text\n : undefined;\n}\n\nexport type Commit = CommitBase;\n\nexport const recommendedBumpOpts = {\n parserOpts,\n whatBump: (commits: ReadonlyArray<Commit>) => {\n let level = 2;\n let breakings = 0;\n let features = 0;\n\n for (const { type, notes } of commits) {\n const conventionalType = type == null ? type : toConventionalCommitType(type);\n if (notes.length > 0) {\n breakings += notes.length;\n level = 0;\n } else if (conventionalType === CommitConventionalType.Feat) {\n features += 1;\n if (level === 2) {\n level = 1;\n }\n }\n }\n\n return {\n level,\n reason:\n breakings === 1\n ? `There is ${breakings} BREAKING CHANGE and ${features} features`\n : `There are ${breakings} BREAKING CHANGES and ${features} features`,\n };\n },\n};\n","import type { Context, Options as WriterOptions } from 'conventional-changelog-writer';\nimport { CommitConventionalType, Commit } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nexport type Language = 'en-US';\n\nexport interface TransformConfig {\n scopeDisplayName?: Record<string, string>;\n displayTypes?: CommitConventionalType[];\n displayScopes?: string[];\n showAuthor?: boolean;\n withEmoji?: boolean;\n language?: Language;\n}\n\nexport function displayScope(scope: string | null | undefined, scopeDisplayNameMap: Record<string, string>) {\n return scope == null || scope.length === 0\n ? scopeDisplayNameMap['*']\n : scopeDisplayNameMap[scope] == null\n ? scope\n : scopeDisplayNameMap[scope];\n}\n\nexport function displayType(type: string, options: displayType.Options = {}): string {\n const { withEmoji = true, language = 'en-US' } = options;\n\n if (CommitConventionalType.hasInstance(type)) {\n const { emoji, [language]: title } = CommitConventionalType.getData(type);\n return `${withEmoji ? `${emoji} ` : ''}${title}`;\n }\n\n return type;\n}\nexport namespace displayType {\n export interface Options {\n readonly withEmoji?: boolean;\n readonly language?: Language;\n }\n}\n\nexport function createTransform(config: TransformConfig): WriterOptions.Transform.Function {\n const displayTypes = new Set(config.displayTypes == null ? CommitConventionalType.values() : config.displayTypes);\n const ignoreType = (type: string | undefined) => type == null || !displayTypes.has(type as CommitConventionalType);\n const ignoreScope = (scope: string | undefined | null) =>\n config.displayScopes == null ? false : scope != null && !config.displayScopes.includes(scope);\n\n const transform = (commit: Commit, { repository, host, owner, repoUrl }: Context): Commit | false => {\n const discard = commit.notes.length === 0;\n const issues = new Set<string>();\n const notes = commit.notes.map((note) => ({\n ...note,\n title: `${config.withEmoji === false ? '' : '๐ฅ '}BREAKING CHANGES`,\n }));\n const conventionalType =\n commit.type == null\n ? undefined\n : (CommitConventionalType.parse(commit.type) ??\n (GitmojiCode.isValid(commit.type) ? GitmojiCode.toConventionalCommitType(commit.type) : undefined));\n\n if (ignoreType(conventionalType) && discard) return false;\n\n const type =\n conventionalType == null\n ? conventionalType\n : displayType(conventionalType, {\n withEmoji: config.withEmoji,\n });\n\n if (ignoreScope(commit.scope)) return false;\n\n const scopeIntermediate = commit.scope === '*' ? '' : commit.scope;\n const scope =\n config.scopeDisplayName == null ? scopeIntermediate : displayScope(scopeIntermediate, config.scopeDisplayName);\n const hash = typeof commit.hash === 'string' ? commit.hash.slice(0, 7) : commit.hash;\n\n const subject =\n typeof commit.subject === 'string'\n ? (() => {\n let returnValue = commit.subject;\n const url = repository == null ? repoUrl : [host, owner, repository].filter(Boolean).join('/');\n if (url != null) {\n const issueURL = `${url}/issues/`;\n // Issue URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/#(\\d+)/g, (_, issue: string) => {\n issues.add(issue);\n\n return `[#${issue}](${issueURL}${issue})`;\n });\n }\n if (host != null) {\n // User URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/\\B@([\\da-z](?:-?[\\d/a-z]){0,38})/g, (_, username: string) =>\n username.includes('/') ? `@${username}` : `[@${username}](${host}/${username})`,\n );\n }\n return returnValue;\n })()\n : commit.subject;\n\n // Remove references that already appear in the subject\n const references = commit.references.filter((reference) => !issues.has(reference.issue));\n\n return {\n ...commit,\n type,\n hash,\n scope,\n subject,\n references,\n header: commit.header,\n body: commit.body,\n footer: commit.footer,\n merge: commit.merge,\n revert: commit.revert,\n notes,\n mentions: commit.mentions,\n };\n };\n\n return transform as unknown as WriterOptions.Transform.Function;\n}\n","/* eslint-disable n/no-sync */\nimport { readFileSync } from 'node:fs';\nimport nodePath from 'node:path';\nimport type { Options } from 'conventional-changelog-writer';\nimport { fileURLToPath } from 'node:url';\nimport { createTransform } from './transform.js';\nimport { CommitConventionalType } from './data.js';\n\nexport interface WriterOptions extends Options {}\n\nconst _dirname = typeof __dirname === 'undefined' ? nodePath.dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = nodePath.resolve(nodePath.dirname(_dirname), './template');\n\nconst mainTemplate = readFileSync(`${basePath}/template.hbs`, 'utf8');\nconst headerPartial = readFileSync(`${basePath}/header.hbs`, 'utf8');\nconst commitPartial = readFileSync(`${basePath}/commit.hbs`, 'utf8');\nconst footerPartial = readFileSync(`${basePath}/footer.hbs`, 'utf8');\nconst author = readFileSync(`${basePath}/author.hbs`, 'utf8');\n\nexport const defaultDisplayTypes = CommitConventionalType.findWhere((_) => _.changelog);\n\nexport const writerOpts: WriterOptions = {\n transform: createTransform({\n displayTypes: defaultDisplayTypes,\n }),\n groupBy: 'type',\n commitGroupsSort: 'title',\n commitsSort: ['scope', 'subject'],\n noteGroupsSort: 'title',\n mainTemplate,\n headerPartial,\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n commitPartial: commitPartial.replace(/{{gitUserInfo}}/g, author),\n footerPartial,\n};\n","import { gitRawCommitOpts } from './git-raw-commit-opts.js';\nimport { parserOpts } from './parser-opts.js';\nimport { recommendedBumpOpts } from './recommended-bump-opts.js';\nimport { writerOpts } from './writer-opts.js';\nimport { Emoji, GitmojiCode } from './gitmoji.js';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n Emoji,\n GitmojiCode,\n parserOpts,\n writerOpts,\n recommendedBumpOpts,\n gitRawCommitOpts,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/git-raw-commit-opts.ts","../src/parser-opts.ts","../src/data.ts","../src/gitmoji.ts","../src/recommended-bump-opts.ts","../src/transform.ts","../src/writer-opts.ts","../src/index.ts"],"names":["Emoji","emojiRegexp","GitmojiCode","gitmojis","toConventionalCommitType","nodePath","fileURLToPath","readFileSync"],"mappings":";;;;;;;;;;;;;;;AAAO,IAAM,gBAAmB,GAAA;AAAA,EAC9B,MAAQ,EAAA;AACV,CAAA;;;ACEO,IAAM,UAA4B,GAAA;AAAA,EACvC,eAAe,IAAI,MAAA;AAAA;AAAA,IAEjB,CAAA,yDAAA,CAAA;AAAA,IAKA;AAAA,GACF;AAAA,EACA,oBAAsB,EAAA,CAAC,MAAQ,EAAA,OAAA,EAAS,SAAS,CAAA;AAAA,EACjD,aAAe,EAAA,oEAAA;AAAA,EACf,YAAA,EAAc,CAAC,iBAAA,EAAmB,kBAAkB,CAAA;AAAA;AAAA,EAEpD,oBAAA,EAAsB,CAAC,CAAA,MAAA,CAAA,EAAU,CAAM,IAAA,CAAA;AACzC,CAAA;;;ACIO,IAAM,0BAA0B,MAAM;AAC3C,EAAM,MAAA,UAAA,GAAa,OAAO,MAAO,CAAA;AAAA,IAC/B,KAAO,EAAA,OAAA;AAAA,IACP,EAAI,EAAA,IAAA;AAAA,IACJ,IAAM,EAAA,MAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,GAAK,EAAA,KAAA;AAAA,IACL,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,UAAA;AAAA,IACV,MAAQ,EAAA,QAAA;AAAA,IACR,KAAO,EAAA,OAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,GAAK,EAAA,KAAA;AAAA,IACL,KAAO,EAAA;AAAA,GACR,CAAA;AACD,EAAM,MAAA,UAAA,GAAgD,OAAO,MAAO,CAAA,MAAA,CAAO,OAAO,UAAU,CAAA,CAAE,MAAM,CAAA;AACpG,EAAM,MAAA,aAAA,GAAgB,IAAI,GAAA,CAAI,UAAU,CAAA;AAExC,EAAA,MAAM,QAAuE,GAAA;AAAA,IAC3E,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,QAAA;AAAA,MACP,OAAS,EAAA,UAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,GAAK,EAAA;AAAA,MACH,KAAO,EAAA,WAAA;AAAA,MACP,OAAS,EAAA,WAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,KAAO,EAAA;AAAA,MACL,KAAO,EAAA,WAAA;AAAA,MACP,OAAS,EAAA,cAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,KAAO,EAAA;AAAA,MACL,KAAO,EAAA,WAAA;AAAA,MACP,OAAS,EAAA,QAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,EAAI,EAAA;AAAA,MACF,KAAO,EAAA,WAAA;AAAA,MACP,OAAS,EAAA,wBAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,WAAA;AAAA,MACP,OAAS,EAAA,eAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,QAAA;AAAA,MACP,OAAS,EAAA,OAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,IAAM,EAAA;AAAA,MACJ,KAAO,EAAA,QAAA;AAAA,MACP,OAAS,EAAA,0BAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,QAAU,EAAA;AAAA,MACR,KAAO,EAAA,QAAA;AAAA,MACP,OAAS,EAAA,kBAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,KAAO,EAAA,QAAA;AAAA,MACP,OAAS,EAAA,SAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,KAAO,EAAA;AAAA,MACL,KAAO,EAAA,WAAA;AAAA,MACP,OAAS,EAAA,QAAA;AAAA,MACT,SAAW,EAAA;AAAA,KACb;AAAA,IACA,GAAK,EAAA;AAAA,MACH,KAAO,EAAA,WAAA;AAAA,MACP,OAAS,EAAA,kBAAA;AAAA,MACT,SAAW,EAAA;AAAA;AACb,GACF;AAEA,EAAA,SAAS,YAAY,QAAuD,EAAA;AAC1E,IAAA,OAAO,OAAO,QAAA,KAAa,QAAY,IAAA,aAAA,CAAc,IAAI,QAA6C,CAAA;AAAA;AAGxG,EAAA,SAAS,QAAQ,UAAgE,EAAA;AAC/E,IAAA,OAAO,SAAS,UAAU,CAAA;AAAA;AAG5B,EAAA,SAAS,MAAM,QAAsD,EAAA;AACnE,IAAO,OAAA,WAAA,CAAY,QAAQ,CAAA,GAAI,QAAW,GAAA,MAAA;AAAA;AAG5C,EAAA,SAAS,MAAS,GAAA;AAChB,IAAO,OAAA,UAAA;AAAA;AAGT,EAAA,SAAS,UAAU,SAAoF,EAAA;AACrG,IAAO,OAAA,UAAA,CAAW,OAAO,CAAC,SAAA,KAAc,UAAU,OAAQ,CAAA,SAAS,CAAC,CAAC,CAAA;AAAA;AAGvE,EAAA,OAAO,EAAE,GAAG,UAAA,EAAY,aAAa,OAAS,EAAA,MAAA,EAAQ,OAAO,SAAU,EAAA;AACzE,CAAG,GAAA;ACxHI,IAAU,KAAA;AAAA,CAAV,CAAUA,MAAV,KAAA;AACE,EAAMA,MAAAA,CAAA,iBAAiBC,4BAAY,EAAA;AAEnC,EAAMD,OAAA,WAAc,GAAA,OAAA;AAE3B,EAAM,MAAA,WAAA,GAAc,CAAC,KAAkB,KAAA,IAAI,OAAO,CAAI,CAAA,EAAA,KAAA,CAAM,MAAM,CAAA,CAAA,CAAA,EAAK,EAAE,CAAA;AACzE,EAAM,MAAA,eAAA,GAAkB,WAAYA,CAAAA,MAAAA,CAAA,cAAc,CAAA;AAClD,EAAM,MAAA,YAAA,GAAe,WAAYA,CAAAA,MAAAA,CAAA,WAAW,CAAA;AAKrC,EAAA,SAAS,UAAU,QAAuC,EAAA;AAC/D,IAAO,OAAA,eAAA,CAAgB,KAAK,QAAQ,CAAA;AAAA;AAD/B,EAAAA,MAAS,CAAA,SAAA,GAAA,SAAA;AAIT,EAAA,SAAS,OAAO,QAAoC,EAAA;AACzD,IAAO,OAAA,YAAA,CAAa,KAAK,QAAQ,CAAA;AAAA;AAD5B,EAAAA,MAAS,CAAA,MAAA,GAAA,MAAA;AAIT,EAAA,SAAS,YAAY,QAAqC,EAAA;AAC/D,IAAA,OAAO,MAAO,CAAA,QAAQ,CAAK,IAAA,SAAA,CAAU,QAAQ,CAAA;AAAA;AADxC,EAAAA,MAAS,CAAA,WAAA,GAAA,WAAA;AAAA,CApBD,EAAA,KAAA,KAAA,KAAA,GAAA,EAAA,CAAA,CAAA;AA0BV,IAAU,WAAA;AAAA,CAAV,CAAUE,YAAV,KAAA;AAML,EAAA,MAAM,kBAAkB,IAAI,GAAA;AAAA,IAC1BC,iBACG,CAAA,GAAA,CAAI,CAAC,OAAA,KAAY,QAAQ,IAAmB,CAAA,CAC5C,MAAO,CAAAA,iBAAA,CAAS,GAAI,CAAA,CAAC,OAAY,KAAA,OAAA,CAAQ,KAAoB,CAAC;AAAA,GACnE;AACA,EAAA,MAAM,KAAQ,GAAA;AAAA;AAAA,IAEZ,KAAA,EAAO,WAAY,CAAAA,iBAAA,EAAU,OAAO;AAAA,GACtC;AAEA,EAAS,SAAA,WAAA,CAAqC,MAA0B,GAA0C,EAAA;AAChH,IAAA,OAAO,IAAI,GAAA,CAAI,IAAK,CAAA,GAAA,CAAI,CAAC,OAAA,KAAY,CAAC,OAAA,CAAQ,GAAG,CAAA,EAAG,OAAO,CAAC,CAAC,CAAA;AAAA;AAGxD,EAAA,SAAS,QAAQ,QAA2C,EAAA;AACjE,IAAO,OAAA,eAAA,CAAgB,IAAI,QAAuB,CAAA;AAAA;AAD7C,EAAAD,YAAS,CAAA,OAAA,GAAA,OAAA;AAIhB,EAAA,MAAM,WAAc,GAAA,OAAA;AACpB,EAAA,MAAM,iBAAmE,MAAM;AAC7E,IAAA,MAAM,IAA8D,GAAA;AAAA,MAClE,IAAM,EAAA,CAAC,QAAK,EAAA,cAAA,EAAM,WAAI,CAAA;AAAA,MACtB,GAAA,EAAK,CAAC,WAAI,CAAA;AAAA,MACV,IAAA,EAAM,CAAC,WAAI,CAAA;AAAA,MACX,KAAA,EAAO,CAAC,WAAA,EAAM,WAAI,CAAA;AAAA,MAClB,QAAA,EAAU,CAAC,cAAA,EAAM,iBAAK,CAAA;AAAA,MACtB,IAAA,EAAM,CAAC,QAAA,EAAK,WAAI,CAAA;AAAA,MAChB,IAAA,EAAM,CAAC,cAAI,CAAA;AAAA,MACX,MAAA,EAAQ,CAAC,cAAI,CAAA;AAAA,MACb,EAAA,EAAI,CAAC,WAAA,EAAM,WAAI,CAAA;AAAA,MACf,GAAA,EAAK,CAAC,WAAI,CAAA;AAAA,MACV,OAAO,EAAC;AAAA,MACR,KAAA,EAAO,CAAC,WAAI;AAAA,KACd;AAEA,IAAA,MAAM,UAAU,KAAM,CAAA,IAAA;AAAA;AAAA,MAEpB,MAAA,CAAO,QAAQ,IAAI;AAAA,KACrB;AACA,IAAA,OAAO,IAAI,GAAA;AAAA,MACT,OAAQ,CAAA,MAAA;AAAA,QACN,CAAC,GAAK,EAAA,CAAC,UAAY,EAAA,mBAAmB,MACpC,GACG,CAAA,MAAA,CAAO,mBAAoB,CAAA,GAAA,CAAI,CAAC,cAAmB,KAAA,CAAC,gBAAgB,UAAU,CAAC,CAAC,CAEhF,CAAA,MAAA;AAAA,UACC,mBAAA,CAAoB,GAAI,CAAA,CAAC,cAAmB,KAAA;AAAA;AAAA,YAE1C,KAAM,CAAA,KAAA,CAAM,GAAI,CAAA,cAAc,CAAG,EAAA,IAAA;AAAA,YACjC;AAAA,WACD;AAAA,SACH;AAAA,QACJ;AAAC;AACH,KACF;AAAA,GACC,GAAA;AAEI,EAAA,SAASE,0BAAyB,OAA8C,EAAA;AACrF,IAAO,OAAA,aAAA,CAAc,GAAI,CAAA,OAAO,CAAK,IAAA,WAAA;AAAA;AADhC,EAAAF,aAAS,wBAAAE,GAAAA,yBAAAA;AAAA,CA/DD,EAAA,WAAA,KAAA,WAAA,GAAA,EAAA,CAAA,CAAA;;;AC1BjB,SAAS,yBAAyB,IAAc,EAAA;AAC9C,EAAA,OAAO,WAAY,CAAA,OAAA,CAAQ,IAAI,CAAA,GAC3B,WAAY,CAAA,wBAAA,CAAyB,IAAI,CAAA,GACzC,sBAAuB,CAAA,WAAA,CAAY,IAAI,CAAA,GACrC,IACA,GAAA,MAAA;AACR;AAIO,IAAM,mBAAsB,GAAA;AAAA,EACjC,UAAA;AAAA,EACA,QAAA,EAAU,CAAC,OAAmC,KAAA;AAC5C,IAAA,IAAI,KAAQ,GAAA,CAAA;AACZ,IAAA,IAAI,SAAY,GAAA,CAAA;AAChB,IAAA,IAAI,QAAW,GAAA,CAAA;AAEf,IAAA,KAAA,MAAW,EAAE,IAAA,EAAM,KAAM,EAAA,IAAK,OAAS,EAAA;AACrC,MAAA,MAAM,gBAAmB,GAAA,IAAA,IAAQ,IAAO,GAAA,IAAA,GAAO,yBAAyB,IAAI,CAAA;AAC5E,MAAI,IAAA,KAAA,CAAM,SAAS,CAAG,EAAA;AACpB,QAAA,SAAA,IAAa,KAAM,CAAA,MAAA;AACnB,QAAQ,KAAA,GAAA,CAAA;AAAA,OACV,MAAA,IAAW,gBAAqB,KAAA,sBAAA,CAAuB,IAAM,EAAA;AAC3D,QAAY,QAAA,IAAA,CAAA;AACZ,QAAA,IAAI,UAAU,CAAG,EAAA;AACf,UAAQ,KAAA,GAAA,CAAA;AAAA;AACV;AACF;AAGF,IAAO,OAAA;AAAA,MACL,KAAA;AAAA,MACA,MAAA,EACE,SAAc,KAAA,CAAA,GACV,CAAY,SAAA,EAAA,SAAS,CAAwB,qBAAA,EAAA,QAAQ,CACrD,SAAA,CAAA,GAAA,CAAA,UAAA,EAAa,SAAS,CAAA,sBAAA,EAAyB,QAAQ,CAAA,SAAA;AAAA,KAC/D;AAAA;AAEJ,CAAA;;;AC5BO,SAAS,YAAA,CAAa,OAAkC,mBAA6C,EAAA;AAC1G,EAAA,OAAO,KAAS,IAAA,IAAA,IAAQ,KAAM,CAAA,MAAA,KAAW,IACrC,mBAAoB,CAAA,GAAG,CACvB,GAAA,mBAAA,CAAoB,KAAK,CAAA,IAAK,IAC5B,GAAA,KAAA,GACA,oBAAoB,KAAK,CAAA;AACjC;AAEO,SAAS,WAAY,CAAA,IAAA,EAAc,OAA+B,GAAA,EAAY,EAAA;AACnF,EAAA,MAAM,EAAE,SAAA,GAAY,IAAM,EAAA,QAAA,GAAW,SAAY,GAAA,OAAA;AAEjD,EAAI,IAAA,sBAAA,CAAuB,WAAY,CAAA,IAAI,CAAG,EAAA;AAC5C,IAAM,MAAA,EAAE,OAAO,CAAC,QAAQ,GAAG,KAAM,EAAA,GAAI,sBAAuB,CAAA,OAAA,CAAQ,IAAI,CAAA;AACxE,IAAA,OAAO,GAAG,SAAY,GAAA,CAAA,EAAG,KAAK,CAAM,CAAA,CAAA,GAAA,EAAE,GAAG,KAAK,CAAA,CAAA;AAAA;AAGhD,EAAO,OAAA,IAAA;AACT;AAQO,SAAS,gBAAgB,MAA0D,EAAA;AACxF,EAAM,MAAA,YAAA,GAAe,IAAI,GAAA,CAAI,MAAO,CAAA,YAAA,IAAgB,OAAO,sBAAuB,CAAA,MAAA,EAAW,GAAA,MAAA,CAAO,YAAY,CAAA;AAChH,EAAM,MAAA,UAAA,GAAa,CAAC,IAA6B,KAAA,IAAA,IAAQ,QAAQ,CAAC,YAAA,CAAa,IAAI,IAA8B,CAAA;AACjH,EAAA,MAAM,WAAc,GAAA,CAAC,KACnB,KAAA,MAAA,CAAO,aAAiB,IAAA,IAAA,GAAO,KAAQ,GAAA,KAAA,IAAS,IAAQ,IAAA,CAAC,MAAO,CAAA,aAAA,CAAc,SAAS,KAAK,CAAA;AAE9F,EAAM,MAAA,SAAA,GAAY,CAAC,MAAgB,EAAA,EAAE,YAAY,IAAM,EAAA,KAAA,EAAO,SAAuC,KAAA;AACnG,IAAM,MAAA,OAAA,GAAU,MAAO,CAAA,KAAA,CAAM,MAAW,KAAA,CAAA;AACxC,IAAM,MAAA,MAAA,uBAAa,GAAY,EAAA;AAC/B,IAAA,MAAM,KAAQ,GAAA,MAAA,CAAO,KAAM,CAAA,GAAA,CAAI,CAAC,IAAU,MAAA;AAAA,MACxC,GAAG,IAAA;AAAA,MACH,OAAO,CAAG,EAAA,MAAA,CAAO,SAAc,KAAA,KAAA,GAAQ,KAAK,YAAK,CAAA,gBAAA;AAAA,KACjD,CAAA,CAAA;AACF,IAAA,MAAM,mBACJ,MAAO,CAAA,IAAA,IAAQ,OACX,MACC,GAAA,sBAAA,CAAuB,MAAM,MAAO,CAAA,IAAI,MACxC,WAAY,CAAA,OAAA,CAAQ,OAAO,IAAI,CAAA,GAAI,YAAY,wBAAyB,CAAA,MAAA,CAAO,IAAI,CAAI,GAAA,MAAA,CAAA;AAE9F,IAAA,IAAI,UAAW,CAAA,gBAAgB,CAAK,IAAA,OAAA,EAAgB,OAAA,KAAA;AAEpD,IAAA,MAAM,IACJ,GAAA,gBAAA,IAAoB,IAChB,GAAA,IAAA,GACA,YAAY,gBAAkB,EAAA;AAAA,MAC5B,WAAW,MAAO,CAAA;AAAA,KACnB,CAAA;AAEP,IAAA,IAAI,WAAY,CAAA,MAAA,CAAO,KAAK,CAAA,EAAU,OAAA,KAAA;AAEtC,IAAA,MAAM,iBAAoB,GAAA,MAAA,CAAO,KAAU,KAAA,GAAA,GAAM,KAAK,MAAO,CAAA,KAAA;AAC7D,IAAM,MAAA,KAAA,GACJ,OAAO,gBAAoB,IAAA,IAAA,GAAO,OAAQ,YAAa,CAAA,iBAAA,EAAmB,MAAO,CAAA,gBAAgB,CAAK,IAAA,IAAA;AACxG,IAAM,MAAA,IAAA,GAAO,OAAO,MAAA,CAAO,IAAS,KAAA,QAAA,GAAW,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,CAAA,EAAG,CAAC,CAAA,GAAI,MAAO,CAAA,IAAA;AAEhF,IAAA,MAAM,OACJ,GAAA,OAAO,MAAO,CAAA,OAAA,KAAY,YACrB,MAAM;AACL,MAAA,IAAI,cAAc,MAAO,CAAA,OAAA;AACzB,MAAA,MAAM,GAAM,GAAA,UAAA,IAAc,IAAO,GAAA,OAAA,GAAU,CAAC,IAAA,EAAM,KAAO,EAAA,UAAU,CAAE,CAAA,MAAA,CAAO,OAAO,CAAA,CAAE,KAAK,GAAG,CAAA;AAC7F,MAAA,IAAI,OAAO,IAAM,EAAA;AACf,QAAM,MAAA,QAAA,GAAW,GAAG,GAAG,CAAA,QAAA,CAAA;AAGvB,QAAA,WAAA,GAAc,WAAY,CAAA,OAAA,CAAQ,SAAW,EAAA,CAAC,GAAG,KAAkB,KAAA;AACjE,UAAA,MAAA,CAAO,IAAI,KAAK,CAAA;AAEhB,UAAA,OAAO,CAAK,EAAA,EAAA,KAAK,CAAK,EAAA,EAAA,QAAQ,GAAG,KAAK,CAAA,CAAA,CAAA;AAAA,SACvC,CAAA;AAAA;AAEH,MAAA,IAAI,QAAQ,IAAM,EAAA;AAGhB,QAAA,WAAA,GAAc,WAAY,CAAA,OAAA;AAAA,UAAQ,mCAAA;AAAA,UAAqC,CAAC,CAAA,EAAG,QACzE,KAAA,QAAA,CAAS,SAAS,GAAG,CAAA,GAAI,CAAI,CAAA,EAAA,QAAQ,KAAK,CAAK,EAAA,EAAA,QAAQ,CAAK,EAAA,EAAA,IAAI,IAAI,QAAQ,CAAA,CAAA;AAAA,SAC9E;AAAA;AAEF,MAAO,OAAA,WAAA;AAAA,KACT,MACA,MAAO,CAAA,OAAA;AAGb,IAAM,MAAA,UAAA,GAAa,MAAO,CAAA,UAAA,CAAW,MAAO,CAAA,CAAC,SAAc,KAAA,CAAC,MAAO,CAAA,GAAA,CAAI,SAAU,CAAA,KAAK,CAAC,CAAA;AAGvF,IAAO,OAAA;AAAA,MACL,GAAG,MAAA;AAAA,MACH,IAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,QAAQ,MAAO,CAAA,MAAA;AAAA,MACf,MAAM,MAAO,CAAA,IAAA;AAAA,MACb,QAAQ,MAAO,CAAA,MAAA;AAAA,MACf,OAAO,MAAO,CAAA,KAAA;AAAA,MACd,QAAQ,MAAO,CAAA,MAAA;AAAA,MACf,KAAA;AAAA,MACA,UAAU,MAAO,CAAA;AAAA,KACnB;AAAA,GACF;AAEA,EAAO,OAAA,SAAA;AACT;;;ACjHA,IAAM,QAAA,GAAW,OAAO,SAAA,KAAc,WAAc,GAAAC,yBAAA,CAAS,QAAQC,iBAAc,CAAA,2PAAe,CAAC,CAAI,GAAA,SAAA;AACvG,IAAM,WAAWD,yBAAS,CAAA,OAAA,CAAQA,0BAAS,OAAQ,CAAA,QAAQ,GAAG,YAAY,CAAA;AAE1E,IAAM,YAAe,GAAAE,eAAA,CAAa,CAAG,EAAA,QAAQ,iBAAiB,MAAM,CAAA;AACpE,IAAM,aAAgB,GAAAA,eAAA,CAAa,CAAG,EAAA,QAAQ,eAAe,MAAM,CAAA;AACnE,IAAM,aAAgB,GAAAA,eAAA,CAAa,CAAG,EAAA,QAAQ,eAAe,MAAM,CAAA;AACnE,IAAM,aAAgB,GAAAA,eAAA,CAAa,CAAG,EAAA,QAAQ,eAAe,MAAM,CAAA;AACnE,IAAM,MAAS,GAAAA,eAAA,CAAa,CAAG,EAAA,QAAQ,eAAe,MAAM,CAAA;AAErD,IAAM,sBAAsB,sBAAuB,CAAA,SAAA,CAAU,CAAC,CAAA,KAAM,EAAE,SAAS,CAAA;AAE/E,IAAM,UAA4B,GAAA;AAAA,EACvC,WAAW,eAAgB,CAAA;AAAA,IACzB,YAAc,EAAA;AAAA,GACf,CAAA;AAAA,EACD,OAAS,EAAA,MAAA;AAAA,EACT,gBAAkB,EAAA,OAAA;AAAA;AAAA,EAElB,WAAA,EAAa,CAAC,OAAA,EAAS,SAAS,CAAA;AAAA,EAChC,cAAgB,EAAA,OAAA;AAAA,EAChB,YAAA;AAAA,EACA,aAAA;AAAA;AAAA,EAEA,aAAe,EAAA,aAAA,CAAc,OAAQ,CAAA,kBAAA,EAAoB,MAAM,CAAA;AAAA,EAC/D;AACF,CAAA;;;AC5BA,IAAO,aAAQ,GAAA;AAAA,EACb,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF","file":"index.cjs","sourcesContent":["export const gitRawCommitOpts = {\n format: '%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci%n-authorName-%n%an%n-authorEmail-%n%ae',\n};\n","import type { ParserOptions as ParserOptionsDefault } from 'conventional-commits-parser';\n\nexport interface ParserOptions extends ParserOptionsDefault {}\n\nexport const parserOpts: ParserOptions = {\n headerPattern: new RegExp(\n // Type\n `^(?<type>\\\\S*)? ` +\n // Scope\n `(?:\\\\((?<scope>.*)\\\\):? )?` +\n // Subject\n `(?<subject>.*)$`,\n 'u',\n ),\n headerCorrespondence: ['type', 'scope', 'subject'],\n revertPattern: /^(?:revert|revert:)\\s\"?([\\S\\s]+?)\"?\\s*this reverts commit (\\w*)\\./i,\n noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],\n // revertPattern: /revert:\\s([\\S\\s]*?)\\s*this reverts commit (\\w*)\\./i,\n revertCorrespondence: [`header`, `hash`],\n};\n","import type { Commit as CommitDefault } from 'conventional-commits-parser';\n\nexport type Commit = CommitDefault & {\n type: string | null;\n subject: string | null;\n scope: string | null;\n hash: string | null;\n};\n\nexport type CommitConventionalType =\n | 'build'\n | 'ci'\n | 'docs'\n | 'feat'\n | 'fix'\n | 'perf'\n | 'refactor'\n | 'revert'\n | 'style'\n | 'test'\n | 'wip'\n | 'chore';\n\nexport const CommitConventionalType = (() => {\n const enumObject = Object.freeze({\n Build: 'build',\n CI: 'ci',\n Docs: 'docs',\n Feat: 'feat',\n Fix: 'fix',\n Perf: 'perf',\n Refactor: 'refactor',\n Revert: 'revert',\n Style: 'style',\n Test: 'test',\n WIP: 'wip',\n Chore: 'chore',\n });\n const enumValues: readonly CommitConventionalType[] = Object.freeze(Object.values(enumObject).sort());\n const enumValuesSet = new Set(enumValues);\n\n const typeData: Record<CommitConventionalType, CommitConventionalTypeData> = {\n feat: {\n emoji: 'โจ',\n 'en-US': 'Features',\n changelog: true,\n },\n fix: {\n emoji: '๐',\n 'en-US': 'Bug Fixes',\n changelog: true,\n },\n build: {\n emoji: '๐ท',\n 'en-US': 'Build System',\n changelog: false,\n },\n chore: {\n emoji: '๐ซ',\n 'en-US': 'Chores',\n changelog: false,\n },\n ci: {\n emoji: '๐ง',\n 'en-US': 'Continuous Integration',\n changelog: false,\n },\n docs: {\n emoji: '๐',\n 'en-US': 'Documentation',\n changelog: false,\n },\n test: {\n emoji: 'โ
',\n 'en-US': 'Tests',\n changelog: false,\n },\n perf: {\n emoji: 'โก',\n 'en-US': 'Performance Improvements',\n changelog: true,\n },\n refactor: {\n emoji: 'โป',\n 'en-US': 'Code Refactoring',\n changelog: false,\n },\n revert: {\n emoji: 'โช',\n 'en-US': 'Reverts',\n changelog: true,\n },\n style: {\n emoji: '๐',\n 'en-US': 'Styles',\n changelog: false,\n },\n wip: {\n emoji: '๐ง',\n 'en-US': 'Work in progress',\n changelog: false,\n },\n };\n\n function hasInstance(anyValue: unknown): anyValue is CommitConventionalType {\n return typeof anyValue === 'string' && enumValuesSet.has(anyValue as unknown as CommitConventionalType);\n }\n\n function getData(commitType: CommitConventionalType): CommitConventionalTypeData {\n return typeData[commitType];\n }\n\n function parse(anyValue: string): CommitConventionalType | undefined {\n return hasInstance(anyValue) ? anyValue : undefined;\n }\n\n function values() {\n return enumValues;\n }\n\n function findWhere(predicate: (data: CommitConventionalTypeData) => boolean): CommitConventionalType[] {\n return enumValues.filter((enumValue) => predicate(getData(enumValue)));\n }\n\n return { ...enumObject, hasInstance, getData, values, parse, findWhere };\n})();\n\nexport interface CommitConventionalTypeData {\n emoji: string;\n 'en-US': string;\n changelog: boolean;\n}\n","import emojiRegexp from 'emoji-regex';\nimport { type Gitmoji, gitmojis } from 'gitmojis';\nimport type { CommitConventionalType } from './data.js';\n\nexport type Emoji = Emoji.Unicode | Emoji.Text;\nexport namespace Emoji {\n export const reEmojiUnicode = emojiRegexp();\n\n export const reEmojiText = /:\\w*:/;\n\n const reMatchOnly = (input: RegExp) => new RegExp(`^${input.source}$`, '');\n const _reEmojiUnicode = reMatchOnly(reEmojiUnicode);\n const _reEmojiText = reMatchOnly(reEmojiText);\n\n export type Unicode = string & { '@@EmojiStyle': 'unicode' };\n export type Text = string & { '@@EmojiStyle': 'text' };\n\n export function isUnicode(anyValue: string): anyValue is Unicode {\n return _reEmojiUnicode.test(anyValue);\n }\n\n export function isText(anyValue: string): anyValue is Text {\n return _reEmojiText.test(anyValue);\n }\n\n export function hasInstance(anyValue: string): anyValue is Emoji {\n return isText(anyValue) || isUnicode(anyValue);\n }\n}\n\nexport type GitmojiCode = Emoji & { '@@Gitmoji': true };\nexport namespace GitmojiCode {\n export type Unicode = Emoji.Unicode & { '@@Gitmoji': true };\n export type Emoji = Emoji.Text & { '@@Gitmoji': true };\n\n // export const reEmoji = emojiRegexp();\n\n const allGitmojiCodes = new Set(\n gitmojis\n .map((gitmoji) => gitmoji.code as GitmojiCode)\n .concat(gitmojis.map((gitmoji) => gitmoji.emoji as GitmojiCode)),\n );\n const index = {\n // code: createIndex(gitmojis, 'code'),\n emoji: createIndex(gitmojis, 'emoji'),\n };\n\n function createIndex<K extends keyof Gitmoji>(list: readonly Gitmoji[], key: K): ReadonlyMap<Gitmoji[K], Gitmoji> {\n return new Map(list.map((gitmoji) => [gitmoji[key], gitmoji]));\n }\n\n export function isValid(anyValue: string): anyValue is GitmojiCode {\n return allGitmojiCodes.has(anyValue as GitmojiCode);\n }\n\n const defaultType = 'chore';\n const conversionMap: ReadonlyMap<GitmojiCode, CommitConventionalType> = (() => {\n const data: Record<CommitConventionalType, GitmojiCode.Unicode[]> = {\n feat: ['โจ', 'โฟ๏ธ', '๐ธ'] as GitmojiCode.Unicode[],\n fix: ['๐'] as GitmojiCode.Unicode[],\n docs: ['๐'] as GitmojiCode.Unicode[],\n style: ['๐จ', '๐จ'] as GitmojiCode.Unicode[],\n refactor: ['โป๏ธ', '๐๏ธ'] as GitmojiCode.Unicode[],\n test: ['โ
', '๐งช'] as GitmojiCode.Unicode[],\n perf: ['โก๏ธ'] as GitmojiCode.Unicode[],\n revert: ['โช๏ธ'] as GitmojiCode.Unicode[],\n ci: ['๐ท', '๐'] as GitmojiCode.Unicode[],\n wip: ['๐ง'] as GitmojiCode.Unicode[],\n build: [] as GitmojiCode.Unicode[],\n chore: ['๐ง'] as GitmojiCode.Unicode[],\n };\n\n const entries = Array.from<[CommitConventionalType, GitmojiCode.Unicode[]]>(\n // @ts-ignore entries are not well typed\n Object.entries(data),\n );\n return new Map(\n entries.reduce<Array<[GitmojiCode, CommitConventionalType]>>(\n (acc, [commitType, gitmojiUnicodeArray]) =>\n acc\n .concat(gitmojiUnicodeArray.map((gitmojiUnicode) => [gitmojiUnicode, commitType]))\n\n .concat(\n gitmojiUnicodeArray.map((gitmojiUnicode) => [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n index.emoji.get(gitmojiUnicode)?.code! as GitmojiCode,\n commitType,\n ]),\n ),\n [],\n ),\n );\n })();\n\n export function toConventionalCommitType(gitmoji: GitmojiCode): CommitConventionalType {\n return conversionMap.get(gitmoji) ?? defaultType;\n }\n}\n","import type { Commit as CommitBase } from 'conventional-commits-parser';\nimport { parserOpts } from './parser-opts.js';\nimport { CommitConventionalType } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nfunction toConventionalCommitType(text: string) {\n return GitmojiCode.isValid(text)\n ? GitmojiCode.toConventionalCommitType(text)\n : CommitConventionalType.hasInstance(text)\n ? text\n : undefined;\n}\n\nexport type Commit = CommitBase;\n\nexport const recommendedBumpOpts = {\n parserOpts,\n whatBump: (commits: ReadonlyArray<Commit>) => {\n let level = 2;\n let breakings = 0;\n let features = 0;\n\n for (const { type, notes } of commits) {\n const conventionalType = type == null ? type : toConventionalCommitType(type);\n if (notes.length > 0) {\n breakings += notes.length;\n level = 0;\n } else if (conventionalType === CommitConventionalType.Feat) {\n features += 1;\n if (level === 2) {\n level = 1;\n }\n }\n }\n\n return {\n level,\n reason:\n breakings === 1\n ? `There is ${breakings} BREAKING CHANGE and ${features} features`\n : `There are ${breakings} BREAKING CHANGES and ${features} features`,\n };\n },\n};\n","import type { CommitTransformFunction, Context } from 'conventional-changelog-writer';\nimport { CommitConventionalType, Commit } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nexport type Language = 'en-US';\n\nexport interface TransformConfig {\n scopeDisplayName?: Record<string, string>;\n displayTypes?: CommitConventionalType[];\n displayScopes?: string[];\n showAuthor?: boolean;\n withEmoji?: boolean;\n language?: Language;\n}\n\nexport function displayScope(scope: string | null | undefined, scopeDisplayNameMap: Record<string, string>) {\n return scope == null || scope.length === 0\n ? scopeDisplayNameMap['*']\n : scopeDisplayNameMap[scope] == null\n ? scope\n : scopeDisplayNameMap[scope];\n}\n\nexport function displayType(type: string, options: displayType.Options = {}): string {\n const { withEmoji = true, language = 'en-US' } = options;\n\n if (CommitConventionalType.hasInstance(type)) {\n const { emoji, [language]: title } = CommitConventionalType.getData(type);\n return `${withEmoji ? `${emoji} ` : ''}${title}`;\n }\n\n return type;\n}\nexport namespace displayType {\n export interface Options {\n readonly withEmoji?: boolean | undefined;\n readonly language?: Language;\n }\n}\n\nexport function createTransform(config: TransformConfig): CommitTransformFunction<Commit> {\n const displayTypes = new Set(config.displayTypes == null ? CommitConventionalType.values() : config.displayTypes);\n const ignoreType = (type: string | undefined) => type == null || !displayTypes.has(type as CommitConventionalType);\n const ignoreScope = (scope: string | undefined | null) =>\n config.displayScopes == null ? false : scope != null && !config.displayScopes.includes(scope);\n\n const transform = (commit: Commit, { repository, host, owner, repoUrl }: Context): Commit | false => {\n const discard = commit.notes.length === 0;\n const issues = new Set<string>();\n const notes = commit.notes.map((note) => ({\n ...note,\n title: `${config.withEmoji === false ? '' : '๐ฅ '}BREAKING CHANGES`,\n }));\n const conventionalType =\n commit.type == null\n ? undefined\n : (CommitConventionalType.parse(commit.type) ??\n (GitmojiCode.isValid(commit.type) ? GitmojiCode.toConventionalCommitType(commit.type) : undefined));\n\n if (ignoreType(conventionalType) && discard) return false;\n\n const type =\n conventionalType == null\n ? null\n : displayType(conventionalType, {\n withEmoji: config.withEmoji,\n });\n\n if (ignoreScope(commit.scope)) return false;\n\n const scopeIntermediate = commit.scope === '*' ? '' : commit.scope;\n const scope =\n config.scopeDisplayName == null ? null : (displayScope(scopeIntermediate, config.scopeDisplayName) ?? null);\n const hash = typeof commit.hash === 'string' ? commit.hash.slice(0, 7) : commit.hash;\n\n const subject =\n typeof commit.subject === 'string'\n ? (() => {\n let returnValue = commit.subject;\n const url = repository == null ? repoUrl : [host, owner, repository].filter(Boolean).join('/');\n if (url != null) {\n const issueURL = `${url}/issues/`;\n // Issue URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/#(\\d+)/g, (_, issue: string) => {\n issues.add(issue);\n\n return `[#${issue}](${issueURL}${issue})`;\n });\n }\n if (host != null) {\n // User URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/\\B@([\\da-z](?:-?[\\d/a-z]){0,38})/g, (_, username: string) =>\n username.includes('/') ? `@${username}` : `[@${username}](${host}/${username})`,\n );\n }\n return returnValue;\n })()\n : commit.subject;\n\n // Remove references that already appear in the subject\n const references = commit.references.filter((reference) => !issues.has(reference.issue));\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {\n ...commit,\n type,\n hash,\n scope,\n subject,\n references,\n header: commit.header,\n body: commit.body,\n footer: commit.footer,\n merge: commit.merge,\n revert: commit.revert,\n notes,\n mentions: commit.mentions,\n } as Commit;\n };\n\n return transform as unknown as CommitTransformFunction<Commit>;\n}\n","/* eslint-disable n/no-sync */\nimport { readFileSync } from 'node:fs';\nimport nodePath from 'node:path';\nimport type { Options } from 'conventional-changelog-writer';\nimport { fileURLToPath } from 'node:url';\nimport { createTransform } from './transform.js';\nimport { Commit, CommitConventionalType } from './data.js';\n\nexport interface WriterOptions extends Options<Commit> {}\n\nconst _dirname = typeof __dirname === 'undefined' ? nodePath.dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = nodePath.resolve(nodePath.dirname(_dirname), './template');\n\nconst mainTemplate = readFileSync(`${basePath}/template.hbs`, 'utf8');\nconst headerPartial = readFileSync(`${basePath}/header.hbs`, 'utf8');\nconst commitPartial = readFileSync(`${basePath}/commit.hbs`, 'utf8');\nconst footerPartial = readFileSync(`${basePath}/footer.hbs`, 'utf8');\nconst author = readFileSync(`${basePath}/author.hbs`, 'utf8');\n\nexport const defaultDisplayTypes = CommitConventionalType.findWhere((_) => _.changelog);\n\nexport const writerOpts: WriterOptions = {\n transform: createTransform({\n displayTypes: defaultDisplayTypes,\n }),\n groupBy: 'type',\n commitGroupsSort: 'title',\n // @ts-ignore\n commitsSort: ['scope', 'subject'],\n noteGroupsSort: 'title',\n mainTemplate,\n headerPartial,\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n commitPartial: commitPartial.replace(/{{gitUserInfo}}/g, author),\n footerPartial,\n};\n","import { gitRawCommitOpts } from './git-raw-commit-opts.js';\nimport { parserOpts } from './parser-opts.js';\nimport { recommendedBumpOpts } from './recommended-bump-opts.js';\nimport { writerOpts } from './writer-opts.js';\nimport { Emoji, GitmojiCode } from './gitmoji.js';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n Emoji,\n GitmojiCode,\n parserOpts,\n writerOpts,\n recommendedBumpOpts,\n gitRawCommitOpts,\n};\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Options
|
|
1
|
+
import { ParserOptions as ParserOptions$1, Commit as Commit$2 } from 'conventional-commits-parser';
|
|
2
|
+
import { Options } from 'conventional-changelog-writer';
|
|
3
3
|
|
|
4
|
-
interface ParserOptions extends
|
|
4
|
+
interface ParserOptions extends ParserOptions$1 {
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
type Commit = Commit$
|
|
7
|
+
type Commit$1 = Commit$2;
|
|
8
8
|
|
|
9
|
+
type Commit = Commit$2 & {
|
|
10
|
+
type: string | null;
|
|
11
|
+
subject: string | null;
|
|
12
|
+
scope: string | null;
|
|
13
|
+
hash: string | null;
|
|
14
|
+
};
|
|
9
15
|
type CommitConventionalType = 'build' | 'ci' | 'docs' | 'feat' | 'fix' | 'perf' | 'refactor' | 'revert' | 'style' | 'test' | 'wip' | 'chore';
|
|
10
16
|
declare const CommitConventionalType: {
|
|
11
17
|
hasInstance: (anyValue: unknown) => anyValue is CommitConventionalType;
|
|
@@ -32,7 +38,7 @@ interface CommitConventionalTypeData {
|
|
|
32
38
|
changelog: boolean;
|
|
33
39
|
}
|
|
34
40
|
|
|
35
|
-
interface WriterOptions extends Options
|
|
41
|
+
interface WriterOptions extends Options<Commit> {
|
|
36
42
|
}
|
|
37
43
|
|
|
38
44
|
type Emoji = Emoji.Unicode | Emoji.Text;
|
|
@@ -70,7 +76,7 @@ declare const _default: {
|
|
|
70
76
|
writerOpts: WriterOptions;
|
|
71
77
|
recommendedBumpOpts: {
|
|
72
78
|
parserOpts: ParserOptions;
|
|
73
|
-
whatBump: (commits: ReadonlyArray<Commit>) => {
|
|
79
|
+
whatBump: (commits: ReadonlyArray<Commit$1>) => {
|
|
74
80
|
level: number;
|
|
75
81
|
reason: string;
|
|
76
82
|
};
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Options
|
|
1
|
+
import { ParserOptions as ParserOptions$1, Commit as Commit$2 } from 'conventional-commits-parser';
|
|
2
|
+
import { Options } from 'conventional-changelog-writer';
|
|
3
3
|
|
|
4
|
-
interface ParserOptions extends
|
|
4
|
+
interface ParserOptions extends ParserOptions$1 {
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
type Commit = Commit$
|
|
7
|
+
type Commit$1 = Commit$2;
|
|
8
8
|
|
|
9
|
+
type Commit = Commit$2 & {
|
|
10
|
+
type: string | null;
|
|
11
|
+
subject: string | null;
|
|
12
|
+
scope: string | null;
|
|
13
|
+
hash: string | null;
|
|
14
|
+
};
|
|
9
15
|
type CommitConventionalType = 'build' | 'ci' | 'docs' | 'feat' | 'fix' | 'perf' | 'refactor' | 'revert' | 'style' | 'test' | 'wip' | 'chore';
|
|
10
16
|
declare const CommitConventionalType: {
|
|
11
17
|
hasInstance: (anyValue: unknown) => anyValue is CommitConventionalType;
|
|
@@ -32,7 +38,7 @@ interface CommitConventionalTypeData {
|
|
|
32
38
|
changelog: boolean;
|
|
33
39
|
}
|
|
34
40
|
|
|
35
|
-
interface WriterOptions extends Options
|
|
41
|
+
interface WriterOptions extends Options<Commit> {
|
|
36
42
|
}
|
|
37
43
|
|
|
38
44
|
type Emoji = Emoji.Unicode | Emoji.Text;
|
|
@@ -70,7 +76,7 @@ declare const _default: {
|
|
|
70
76
|
writerOpts: WriterOptions;
|
|
71
77
|
recommendedBumpOpts: {
|
|
72
78
|
parserOpts: ParserOptions;
|
|
73
|
-
whatBump: (commits: ReadonlyArray<Commit>) => {
|
|
79
|
+
whatBump: (commits: ReadonlyArray<Commit$1>) => {
|
|
74
80
|
level: number;
|
|
75
81
|
reason: string;
|
|
76
82
|
};
|
package/dist/index.js
CHANGED
|
@@ -249,12 +249,12 @@ function createTransform(config) {
|
|
|
249
249
|
}));
|
|
250
250
|
const conventionalType = commit.type == null ? void 0 : CommitConventionalType.parse(commit.type) ?? (GitmojiCode.isValid(commit.type) ? GitmojiCode.toConventionalCommitType(commit.type) : void 0);
|
|
251
251
|
if (ignoreType(conventionalType) && discard) return false;
|
|
252
|
-
const type = conventionalType == null ?
|
|
252
|
+
const type = conventionalType == null ? null : displayType(conventionalType, {
|
|
253
253
|
withEmoji: config.withEmoji
|
|
254
254
|
});
|
|
255
255
|
if (ignoreScope(commit.scope)) return false;
|
|
256
256
|
const scopeIntermediate = commit.scope === "*" ? "" : commit.scope;
|
|
257
|
-
const scope = config.scopeDisplayName == null ?
|
|
257
|
+
const scope = config.scopeDisplayName == null ? null : displayScope(scopeIntermediate, config.scopeDisplayName) ?? null;
|
|
258
258
|
const hash = typeof commit.hash === "string" ? commit.hash.slice(0, 7) : commit.hash;
|
|
259
259
|
const subject = typeof commit.subject === "string" ? (() => {
|
|
260
260
|
let returnValue = commit.subject;
|
|
@@ -309,6 +309,7 @@ var writerOpts = {
|
|
|
309
309
|
}),
|
|
310
310
|
groupBy: "type",
|
|
311
311
|
commitGroupsSort: "title",
|
|
312
|
+
// @ts-ignore
|
|
312
313
|
commitsSort: ["scope", "subject"],
|
|
313
314
|
noteGroupsSort: "title",
|
|
314
315
|
mainTemplate,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/git-raw-commit-opts.ts","../src/parser-opts.ts","../src/data.ts","../src/gitmoji.ts","../src/recommended-bump-opts.ts","../src/transform.ts","../src/writer-opts.ts","../src/index.ts"],"names":["Emoji","GitmojiCode","toConventionalCommitType"],"mappings":"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","file":"index.js","sourcesContent":["export const gitRawCommitOpts = {\n format: '%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci%n-authorName-%n%an%n-authorEmail-%n%ae',\n};\n","import type { Options } from 'conventional-commits-parser';\n\nexport interface ParserOptions extends Options {}\n\nexport const parserOpts: ParserOptions = {\n headerPattern: new RegExp(\n // Type\n `^(?<type>\\\\S*)? ` +\n // Scope\n `(?:\\\\((?<scope>.*)\\\\):? )?` +\n // Subject\n `(?<subject>.*)$`,\n 'u',\n ),\n headerCorrespondence: ['type', 'scope', 'subject'],\n revertPattern: /^(?:revert|revert:)\\s\"?([\\S\\s]+?)\"?\\s*this reverts commit (\\w*)\\./i,\n noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],\n // revertPattern: /revert:\\s([\\S\\s]*?)\\s*this reverts commit (\\w*)\\./i,\n revertCorrespondence: [`header`, `hash`],\n};\n","import type { Commit as CommitDefault } from 'conventional-commits-parser';\n\nexport type Commit = CommitDefault<never> & {\n hash?: string;\n};\n\nexport type CommitConventionalType =\n | 'build'\n | 'ci'\n | 'docs'\n | 'feat'\n | 'fix'\n | 'perf'\n | 'refactor'\n | 'revert'\n | 'style'\n | 'test'\n | 'wip'\n | 'chore';\n\nexport const CommitConventionalType = (() => {\n const enumObject = Object.freeze({\n Build: 'build',\n CI: 'ci',\n Docs: 'docs',\n Feat: 'feat',\n Fix: 'fix',\n Perf: 'perf',\n Refactor: 'refactor',\n Revert: 'revert',\n Style: 'style',\n Test: 'test',\n WIP: 'wip',\n Chore: 'chore',\n });\n const enumValues: readonly CommitConventionalType[] = Object.freeze(Object.values(enumObject).sort());\n const enumValuesSet = new Set(enumValues);\n\n const typeData: Record<CommitConventionalType, CommitConventionalTypeData> = {\n feat: {\n emoji: 'โจ',\n 'en-US': 'Features',\n changelog: true,\n },\n fix: {\n emoji: '๐',\n 'en-US': 'Bug Fixes',\n changelog: true,\n },\n build: {\n emoji: '๐ท',\n 'en-US': 'Build System',\n changelog: false,\n },\n chore: {\n emoji: '๐ซ',\n 'en-US': 'Chores',\n changelog: false,\n },\n ci: {\n emoji: '๐ง',\n 'en-US': 'Continuous Integration',\n changelog: false,\n },\n docs: {\n emoji: '๐',\n 'en-US': 'Documentation',\n changelog: false,\n },\n test: {\n emoji: 'โ
',\n 'en-US': 'Tests',\n changelog: false,\n },\n perf: {\n emoji: 'โก',\n 'en-US': 'Performance Improvements',\n changelog: true,\n },\n refactor: {\n emoji: 'โป',\n 'en-US': 'Code Refactoring',\n changelog: false,\n },\n revert: {\n emoji: 'โช',\n 'en-US': 'Reverts',\n changelog: true,\n },\n style: {\n emoji: '๐',\n 'en-US': 'Styles',\n changelog: false,\n },\n wip: {\n emoji: '๐ง',\n 'en-US': 'Work in progress',\n changelog: false,\n },\n };\n\n function hasInstance(anyValue: unknown): anyValue is CommitConventionalType {\n return typeof anyValue === 'string' && enumValuesSet.has(anyValue as unknown as CommitConventionalType);\n }\n\n function getData(commitType: CommitConventionalType): CommitConventionalTypeData {\n return typeData[commitType];\n }\n\n function parse(anyValue: string): CommitConventionalType | undefined {\n return hasInstance(anyValue) ? anyValue : undefined;\n }\n\n function values() {\n return enumValues;\n }\n\n function findWhere(predicate: (data: CommitConventionalTypeData) => boolean): CommitConventionalType[] {\n return enumValues.filter((enumValue) => predicate(getData(enumValue)));\n }\n\n return { ...enumObject, hasInstance, getData, values, parse, findWhere };\n})();\n\nexport interface CommitConventionalTypeData {\n emoji: string;\n 'en-US': string;\n changelog: boolean;\n}\n","import emojiRegexp from 'emoji-regex';\nimport { type Gitmoji, gitmojis } from 'gitmojis';\nimport type { CommitConventionalType } from './data.js';\n\nexport type Emoji = Emoji.Unicode | Emoji.Text;\nexport namespace Emoji {\n export const reEmojiUnicode = emojiRegexp();\n\n export const reEmojiText = /:\\w*:/;\n\n const reMatchOnly = (input: RegExp) => new RegExp(`^${input.source}$`, '');\n const _reEmojiUnicode = reMatchOnly(reEmojiUnicode);\n const _reEmojiText = reMatchOnly(reEmojiText);\n\n export type Unicode = string & { '@@EmojiStyle': 'unicode' };\n export type Text = string & { '@@EmojiStyle': 'text' };\n\n export function isUnicode(anyValue: string): anyValue is Unicode {\n return _reEmojiUnicode.test(anyValue);\n }\n\n export function isText(anyValue: string): anyValue is Text {\n return _reEmojiText.test(anyValue);\n }\n\n export function hasInstance(anyValue: string): anyValue is Emoji {\n return isText(anyValue) || isUnicode(anyValue);\n }\n}\n\nexport type GitmojiCode = Emoji & { '@@Gitmoji': true };\nexport namespace GitmojiCode {\n export type Unicode = Emoji.Unicode & { '@@Gitmoji': true };\n export type Emoji = Emoji.Text & { '@@Gitmoji': true };\n\n // export const reEmoji = emojiRegexp();\n\n const allGitmojiCodes = new Set(\n gitmojis\n .map((gitmoji) => gitmoji.code as GitmojiCode)\n .concat(gitmojis.map((gitmoji) => gitmoji.emoji as GitmojiCode)),\n );\n const index = {\n // code: createIndex(gitmojis, 'code'),\n emoji: createIndex(gitmojis, 'emoji'),\n };\n\n function createIndex<K extends keyof Gitmoji>(list: readonly Gitmoji[], key: K): ReadonlyMap<Gitmoji[K], Gitmoji> {\n return new Map(list.map((gitmoji) => [gitmoji[key], gitmoji]));\n }\n\n export function isValid(anyValue: string): anyValue is GitmojiCode {\n return allGitmojiCodes.has(anyValue as GitmojiCode);\n }\n\n const defaultType = 'chore';\n const conversionMap: ReadonlyMap<GitmojiCode, CommitConventionalType> = (() => {\n const data: Record<CommitConventionalType, GitmojiCode.Unicode[]> = {\n feat: ['โจ', 'โฟ๏ธ', '๐ธ'] as GitmojiCode.Unicode[],\n fix: ['๐'] as GitmojiCode.Unicode[],\n docs: ['๐'] as GitmojiCode.Unicode[],\n style: ['๐จ', '๐จ'] as GitmojiCode.Unicode[],\n refactor: ['โป๏ธ', '๐๏ธ'] as GitmojiCode.Unicode[],\n test: ['โ
', '๐งช'] as GitmojiCode.Unicode[],\n perf: ['โก๏ธ'] as GitmojiCode.Unicode[],\n revert: ['โช๏ธ'] as GitmojiCode.Unicode[],\n ci: ['๐ท', '๐'] as GitmojiCode.Unicode[],\n wip: ['๐ง'] as GitmojiCode.Unicode[],\n build: [] as GitmojiCode.Unicode[],\n chore: ['๐ง'] as GitmojiCode.Unicode[],\n };\n\n const entries = Array.from<[CommitConventionalType, GitmojiCode.Unicode[]]>(\n // @ts-ignore entries are not well typed\n Object.entries(data),\n );\n return new Map(\n entries.reduce<Array<[GitmojiCode, CommitConventionalType]>>(\n (acc, [commitType, gitmojiUnicodeArray]) =>\n acc\n .concat(gitmojiUnicodeArray.map((gitmojiUnicode) => [gitmojiUnicode, commitType]))\n\n .concat(\n gitmojiUnicodeArray.map((gitmojiUnicode) => [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n index.emoji.get(gitmojiUnicode)?.code! as GitmojiCode,\n commitType,\n ]),\n ),\n [],\n ),\n );\n })();\n\n export function toConventionalCommitType(gitmoji: GitmojiCode): CommitConventionalType {\n return conversionMap.get(gitmoji) ?? defaultType;\n }\n}\n","import type { Commit as CommitBase } from 'conventional-commits-parser';\nimport { parserOpts } from './parser-opts.js';\nimport { CommitConventionalType } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nfunction toConventionalCommitType(text: string) {\n return GitmojiCode.isValid(text)\n ? GitmojiCode.toConventionalCommitType(text)\n : CommitConventionalType.hasInstance(text)\n ? text\n : undefined;\n}\n\nexport type Commit = CommitBase;\n\nexport const recommendedBumpOpts = {\n parserOpts,\n whatBump: (commits: ReadonlyArray<Commit>) => {\n let level = 2;\n let breakings = 0;\n let features = 0;\n\n for (const { type, notes } of commits) {\n const conventionalType = type == null ? type : toConventionalCommitType(type);\n if (notes.length > 0) {\n breakings += notes.length;\n level = 0;\n } else if (conventionalType === CommitConventionalType.Feat) {\n features += 1;\n if (level === 2) {\n level = 1;\n }\n }\n }\n\n return {\n level,\n reason:\n breakings === 1\n ? `There is ${breakings} BREAKING CHANGE and ${features} features`\n : `There are ${breakings} BREAKING CHANGES and ${features} features`,\n };\n },\n};\n","import type { Context, Options as WriterOptions } from 'conventional-changelog-writer';\nimport { CommitConventionalType, Commit } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nexport type Language = 'en-US';\n\nexport interface TransformConfig {\n scopeDisplayName?: Record<string, string>;\n displayTypes?: CommitConventionalType[];\n displayScopes?: string[];\n showAuthor?: boolean;\n withEmoji?: boolean;\n language?: Language;\n}\n\nexport function displayScope(scope: string | null | undefined, scopeDisplayNameMap: Record<string, string>) {\n return scope == null || scope.length === 0\n ? scopeDisplayNameMap['*']\n : scopeDisplayNameMap[scope] == null\n ? scope\n : scopeDisplayNameMap[scope];\n}\n\nexport function displayType(type: string, options: displayType.Options = {}): string {\n const { withEmoji = true, language = 'en-US' } = options;\n\n if (CommitConventionalType.hasInstance(type)) {\n const { emoji, [language]: title } = CommitConventionalType.getData(type);\n return `${withEmoji ? `${emoji} ` : ''}${title}`;\n }\n\n return type;\n}\nexport namespace displayType {\n export interface Options {\n readonly withEmoji?: boolean;\n readonly language?: Language;\n }\n}\n\nexport function createTransform(config: TransformConfig): WriterOptions.Transform.Function {\n const displayTypes = new Set(config.displayTypes == null ? CommitConventionalType.values() : config.displayTypes);\n const ignoreType = (type: string | undefined) => type == null || !displayTypes.has(type as CommitConventionalType);\n const ignoreScope = (scope: string | undefined | null) =>\n config.displayScopes == null ? false : scope != null && !config.displayScopes.includes(scope);\n\n const transform = (commit: Commit, { repository, host, owner, repoUrl }: Context): Commit | false => {\n const discard = commit.notes.length === 0;\n const issues = new Set<string>();\n const notes = commit.notes.map((note) => ({\n ...note,\n title: `${config.withEmoji === false ? '' : '๐ฅ '}BREAKING CHANGES`,\n }));\n const conventionalType =\n commit.type == null\n ? undefined\n : (CommitConventionalType.parse(commit.type) ??\n (GitmojiCode.isValid(commit.type) ? GitmojiCode.toConventionalCommitType(commit.type) : undefined));\n\n if (ignoreType(conventionalType) && discard) return false;\n\n const type =\n conventionalType == null\n ? conventionalType\n : displayType(conventionalType, {\n withEmoji: config.withEmoji,\n });\n\n if (ignoreScope(commit.scope)) return false;\n\n const scopeIntermediate = commit.scope === '*' ? '' : commit.scope;\n const scope =\n config.scopeDisplayName == null ? scopeIntermediate : displayScope(scopeIntermediate, config.scopeDisplayName);\n const hash = typeof commit.hash === 'string' ? commit.hash.slice(0, 7) : commit.hash;\n\n const subject =\n typeof commit.subject === 'string'\n ? (() => {\n let returnValue = commit.subject;\n const url = repository == null ? repoUrl : [host, owner, repository].filter(Boolean).join('/');\n if (url != null) {\n const issueURL = `${url}/issues/`;\n // Issue URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/#(\\d+)/g, (_, issue: string) => {\n issues.add(issue);\n\n return `[#${issue}](${issueURL}${issue})`;\n });\n }\n if (host != null) {\n // User URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/\\B@([\\da-z](?:-?[\\d/a-z]){0,38})/g, (_, username: string) =>\n username.includes('/') ? `@${username}` : `[@${username}](${host}/${username})`,\n );\n }\n return returnValue;\n })()\n : commit.subject;\n\n // Remove references that already appear in the subject\n const references = commit.references.filter((reference) => !issues.has(reference.issue));\n\n return {\n ...commit,\n type,\n hash,\n scope,\n subject,\n references,\n header: commit.header,\n body: commit.body,\n footer: commit.footer,\n merge: commit.merge,\n revert: commit.revert,\n notes,\n mentions: commit.mentions,\n };\n };\n\n return transform as unknown as WriterOptions.Transform.Function;\n}\n","/* eslint-disable n/no-sync */\nimport { readFileSync } from 'node:fs';\nimport nodePath from 'node:path';\nimport type { Options } from 'conventional-changelog-writer';\nimport { fileURLToPath } from 'node:url';\nimport { createTransform } from './transform.js';\nimport { CommitConventionalType } from './data.js';\n\nexport interface WriterOptions extends Options {}\n\nconst _dirname = typeof __dirname === 'undefined' ? nodePath.dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = nodePath.resolve(nodePath.dirname(_dirname), './template');\n\nconst mainTemplate = readFileSync(`${basePath}/template.hbs`, 'utf8');\nconst headerPartial = readFileSync(`${basePath}/header.hbs`, 'utf8');\nconst commitPartial = readFileSync(`${basePath}/commit.hbs`, 'utf8');\nconst footerPartial = readFileSync(`${basePath}/footer.hbs`, 'utf8');\nconst author = readFileSync(`${basePath}/author.hbs`, 'utf8');\n\nexport const defaultDisplayTypes = CommitConventionalType.findWhere((_) => _.changelog);\n\nexport const writerOpts: WriterOptions = {\n transform: createTransform({\n displayTypes: defaultDisplayTypes,\n }),\n groupBy: 'type',\n commitGroupsSort: 'title',\n commitsSort: ['scope', 'subject'],\n noteGroupsSort: 'title',\n mainTemplate,\n headerPartial,\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n commitPartial: commitPartial.replace(/{{gitUserInfo}}/g, author),\n footerPartial,\n};\n","import { gitRawCommitOpts } from './git-raw-commit-opts.js';\nimport { parserOpts } from './parser-opts.js';\nimport { recommendedBumpOpts } from './recommended-bump-opts.js';\nimport { writerOpts } from './writer-opts.js';\nimport { Emoji, GitmojiCode } from './gitmoji.js';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n Emoji,\n GitmojiCode,\n parserOpts,\n writerOpts,\n recommendedBumpOpts,\n gitRawCommitOpts,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/git-raw-commit-opts.ts","../src/parser-opts.ts","../src/data.ts","../src/gitmoji.ts","../src/recommended-bump-opts.ts","../src/transform.ts","../src/writer-opts.ts","../src/index.ts"],"names":["Emoji","GitmojiCode","toConventionalCommitType"],"mappings":"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","file":"index.js","sourcesContent":["export const gitRawCommitOpts = {\n format: '%B%n-hash-%n%H%n-gitTags-%n%d%n-committerDate-%n%ci%n-authorName-%n%an%n-authorEmail-%n%ae',\n};\n","import type { ParserOptions as ParserOptionsDefault } from 'conventional-commits-parser';\n\nexport interface ParserOptions extends ParserOptionsDefault {}\n\nexport const parserOpts: ParserOptions = {\n headerPattern: new RegExp(\n // Type\n `^(?<type>\\\\S*)? ` +\n // Scope\n `(?:\\\\((?<scope>.*)\\\\):? )?` +\n // Subject\n `(?<subject>.*)$`,\n 'u',\n ),\n headerCorrespondence: ['type', 'scope', 'subject'],\n revertPattern: /^(?:revert|revert:)\\s\"?([\\S\\s]+?)\"?\\s*this reverts commit (\\w*)\\./i,\n noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],\n // revertPattern: /revert:\\s([\\S\\s]*?)\\s*this reverts commit (\\w*)\\./i,\n revertCorrespondence: [`header`, `hash`],\n};\n","import type { Commit as CommitDefault } from 'conventional-commits-parser';\n\nexport type Commit = CommitDefault & {\n type: string | null;\n subject: string | null;\n scope: string | null;\n hash: string | null;\n};\n\nexport type CommitConventionalType =\n | 'build'\n | 'ci'\n | 'docs'\n | 'feat'\n | 'fix'\n | 'perf'\n | 'refactor'\n | 'revert'\n | 'style'\n | 'test'\n | 'wip'\n | 'chore';\n\nexport const CommitConventionalType = (() => {\n const enumObject = Object.freeze({\n Build: 'build',\n CI: 'ci',\n Docs: 'docs',\n Feat: 'feat',\n Fix: 'fix',\n Perf: 'perf',\n Refactor: 'refactor',\n Revert: 'revert',\n Style: 'style',\n Test: 'test',\n WIP: 'wip',\n Chore: 'chore',\n });\n const enumValues: readonly CommitConventionalType[] = Object.freeze(Object.values(enumObject).sort());\n const enumValuesSet = new Set(enumValues);\n\n const typeData: Record<CommitConventionalType, CommitConventionalTypeData> = {\n feat: {\n emoji: 'โจ',\n 'en-US': 'Features',\n changelog: true,\n },\n fix: {\n emoji: '๐',\n 'en-US': 'Bug Fixes',\n changelog: true,\n },\n build: {\n emoji: '๐ท',\n 'en-US': 'Build System',\n changelog: false,\n },\n chore: {\n emoji: '๐ซ',\n 'en-US': 'Chores',\n changelog: false,\n },\n ci: {\n emoji: '๐ง',\n 'en-US': 'Continuous Integration',\n changelog: false,\n },\n docs: {\n emoji: '๐',\n 'en-US': 'Documentation',\n changelog: false,\n },\n test: {\n emoji: 'โ
',\n 'en-US': 'Tests',\n changelog: false,\n },\n perf: {\n emoji: 'โก',\n 'en-US': 'Performance Improvements',\n changelog: true,\n },\n refactor: {\n emoji: 'โป',\n 'en-US': 'Code Refactoring',\n changelog: false,\n },\n revert: {\n emoji: 'โช',\n 'en-US': 'Reverts',\n changelog: true,\n },\n style: {\n emoji: '๐',\n 'en-US': 'Styles',\n changelog: false,\n },\n wip: {\n emoji: '๐ง',\n 'en-US': 'Work in progress',\n changelog: false,\n },\n };\n\n function hasInstance(anyValue: unknown): anyValue is CommitConventionalType {\n return typeof anyValue === 'string' && enumValuesSet.has(anyValue as unknown as CommitConventionalType);\n }\n\n function getData(commitType: CommitConventionalType): CommitConventionalTypeData {\n return typeData[commitType];\n }\n\n function parse(anyValue: string): CommitConventionalType | undefined {\n return hasInstance(anyValue) ? anyValue : undefined;\n }\n\n function values() {\n return enumValues;\n }\n\n function findWhere(predicate: (data: CommitConventionalTypeData) => boolean): CommitConventionalType[] {\n return enumValues.filter((enumValue) => predicate(getData(enumValue)));\n }\n\n return { ...enumObject, hasInstance, getData, values, parse, findWhere };\n})();\n\nexport interface CommitConventionalTypeData {\n emoji: string;\n 'en-US': string;\n changelog: boolean;\n}\n","import emojiRegexp from 'emoji-regex';\nimport { type Gitmoji, gitmojis } from 'gitmojis';\nimport type { CommitConventionalType } from './data.js';\n\nexport type Emoji = Emoji.Unicode | Emoji.Text;\nexport namespace Emoji {\n export const reEmojiUnicode = emojiRegexp();\n\n export const reEmojiText = /:\\w*:/;\n\n const reMatchOnly = (input: RegExp) => new RegExp(`^${input.source}$`, '');\n const _reEmojiUnicode = reMatchOnly(reEmojiUnicode);\n const _reEmojiText = reMatchOnly(reEmojiText);\n\n export type Unicode = string & { '@@EmojiStyle': 'unicode' };\n export type Text = string & { '@@EmojiStyle': 'text' };\n\n export function isUnicode(anyValue: string): anyValue is Unicode {\n return _reEmojiUnicode.test(anyValue);\n }\n\n export function isText(anyValue: string): anyValue is Text {\n return _reEmojiText.test(anyValue);\n }\n\n export function hasInstance(anyValue: string): anyValue is Emoji {\n return isText(anyValue) || isUnicode(anyValue);\n }\n}\n\nexport type GitmojiCode = Emoji & { '@@Gitmoji': true };\nexport namespace GitmojiCode {\n export type Unicode = Emoji.Unicode & { '@@Gitmoji': true };\n export type Emoji = Emoji.Text & { '@@Gitmoji': true };\n\n // export const reEmoji = emojiRegexp();\n\n const allGitmojiCodes = new Set(\n gitmojis\n .map((gitmoji) => gitmoji.code as GitmojiCode)\n .concat(gitmojis.map((gitmoji) => gitmoji.emoji as GitmojiCode)),\n );\n const index = {\n // code: createIndex(gitmojis, 'code'),\n emoji: createIndex(gitmojis, 'emoji'),\n };\n\n function createIndex<K extends keyof Gitmoji>(list: readonly Gitmoji[], key: K): ReadonlyMap<Gitmoji[K], Gitmoji> {\n return new Map(list.map((gitmoji) => [gitmoji[key], gitmoji]));\n }\n\n export function isValid(anyValue: string): anyValue is GitmojiCode {\n return allGitmojiCodes.has(anyValue as GitmojiCode);\n }\n\n const defaultType = 'chore';\n const conversionMap: ReadonlyMap<GitmojiCode, CommitConventionalType> = (() => {\n const data: Record<CommitConventionalType, GitmojiCode.Unicode[]> = {\n feat: ['โจ', 'โฟ๏ธ', '๐ธ'] as GitmojiCode.Unicode[],\n fix: ['๐'] as GitmojiCode.Unicode[],\n docs: ['๐'] as GitmojiCode.Unicode[],\n style: ['๐จ', '๐จ'] as GitmojiCode.Unicode[],\n refactor: ['โป๏ธ', '๐๏ธ'] as GitmojiCode.Unicode[],\n test: ['โ
', '๐งช'] as GitmojiCode.Unicode[],\n perf: ['โก๏ธ'] as GitmojiCode.Unicode[],\n revert: ['โช๏ธ'] as GitmojiCode.Unicode[],\n ci: ['๐ท', '๐'] as GitmojiCode.Unicode[],\n wip: ['๐ง'] as GitmojiCode.Unicode[],\n build: [] as GitmojiCode.Unicode[],\n chore: ['๐ง'] as GitmojiCode.Unicode[],\n };\n\n const entries = Array.from<[CommitConventionalType, GitmojiCode.Unicode[]]>(\n // @ts-ignore entries are not well typed\n Object.entries(data),\n );\n return new Map(\n entries.reduce<Array<[GitmojiCode, CommitConventionalType]>>(\n (acc, [commitType, gitmojiUnicodeArray]) =>\n acc\n .concat(gitmojiUnicodeArray.map((gitmojiUnicode) => [gitmojiUnicode, commitType]))\n\n .concat(\n gitmojiUnicodeArray.map((gitmojiUnicode) => [\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n index.emoji.get(gitmojiUnicode)?.code! as GitmojiCode,\n commitType,\n ]),\n ),\n [],\n ),\n );\n })();\n\n export function toConventionalCommitType(gitmoji: GitmojiCode): CommitConventionalType {\n return conversionMap.get(gitmoji) ?? defaultType;\n }\n}\n","import type { Commit as CommitBase } from 'conventional-commits-parser';\nimport { parserOpts } from './parser-opts.js';\nimport { CommitConventionalType } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nfunction toConventionalCommitType(text: string) {\n return GitmojiCode.isValid(text)\n ? GitmojiCode.toConventionalCommitType(text)\n : CommitConventionalType.hasInstance(text)\n ? text\n : undefined;\n}\n\nexport type Commit = CommitBase;\n\nexport const recommendedBumpOpts = {\n parserOpts,\n whatBump: (commits: ReadonlyArray<Commit>) => {\n let level = 2;\n let breakings = 0;\n let features = 0;\n\n for (const { type, notes } of commits) {\n const conventionalType = type == null ? type : toConventionalCommitType(type);\n if (notes.length > 0) {\n breakings += notes.length;\n level = 0;\n } else if (conventionalType === CommitConventionalType.Feat) {\n features += 1;\n if (level === 2) {\n level = 1;\n }\n }\n }\n\n return {\n level,\n reason:\n breakings === 1\n ? `There is ${breakings} BREAKING CHANGE and ${features} features`\n : `There are ${breakings} BREAKING CHANGES and ${features} features`,\n };\n },\n};\n","import type { CommitTransformFunction, Context } from 'conventional-changelog-writer';\nimport { CommitConventionalType, Commit } from './data.js';\nimport { GitmojiCode } from './gitmoji.js';\n\nexport type Language = 'en-US';\n\nexport interface TransformConfig {\n scopeDisplayName?: Record<string, string>;\n displayTypes?: CommitConventionalType[];\n displayScopes?: string[];\n showAuthor?: boolean;\n withEmoji?: boolean;\n language?: Language;\n}\n\nexport function displayScope(scope: string | null | undefined, scopeDisplayNameMap: Record<string, string>) {\n return scope == null || scope.length === 0\n ? scopeDisplayNameMap['*']\n : scopeDisplayNameMap[scope] == null\n ? scope\n : scopeDisplayNameMap[scope];\n}\n\nexport function displayType(type: string, options: displayType.Options = {}): string {\n const { withEmoji = true, language = 'en-US' } = options;\n\n if (CommitConventionalType.hasInstance(type)) {\n const { emoji, [language]: title } = CommitConventionalType.getData(type);\n return `${withEmoji ? `${emoji} ` : ''}${title}`;\n }\n\n return type;\n}\nexport namespace displayType {\n export interface Options {\n readonly withEmoji?: boolean | undefined;\n readonly language?: Language;\n }\n}\n\nexport function createTransform(config: TransformConfig): CommitTransformFunction<Commit> {\n const displayTypes = new Set(config.displayTypes == null ? CommitConventionalType.values() : config.displayTypes);\n const ignoreType = (type: string | undefined) => type == null || !displayTypes.has(type as CommitConventionalType);\n const ignoreScope = (scope: string | undefined | null) =>\n config.displayScopes == null ? false : scope != null && !config.displayScopes.includes(scope);\n\n const transform = (commit: Commit, { repository, host, owner, repoUrl }: Context): Commit | false => {\n const discard = commit.notes.length === 0;\n const issues = new Set<string>();\n const notes = commit.notes.map((note) => ({\n ...note,\n title: `${config.withEmoji === false ? '' : '๐ฅ '}BREAKING CHANGES`,\n }));\n const conventionalType =\n commit.type == null\n ? undefined\n : (CommitConventionalType.parse(commit.type) ??\n (GitmojiCode.isValid(commit.type) ? GitmojiCode.toConventionalCommitType(commit.type) : undefined));\n\n if (ignoreType(conventionalType) && discard) return false;\n\n const type =\n conventionalType == null\n ? null\n : displayType(conventionalType, {\n withEmoji: config.withEmoji,\n });\n\n if (ignoreScope(commit.scope)) return false;\n\n const scopeIntermediate = commit.scope === '*' ? '' : commit.scope;\n const scope =\n config.scopeDisplayName == null ? null : (displayScope(scopeIntermediate, config.scopeDisplayName) ?? null);\n const hash = typeof commit.hash === 'string' ? commit.hash.slice(0, 7) : commit.hash;\n\n const subject =\n typeof commit.subject === 'string'\n ? (() => {\n let returnValue = commit.subject;\n const url = repository == null ? repoUrl : [host, owner, repository].filter(Boolean).join('/');\n if (url != null) {\n const issueURL = `${url}/issues/`;\n // Issue URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/#(\\d+)/g, (_, issue: string) => {\n issues.add(issue);\n\n return `[#${issue}](${issueURL}${issue})`;\n });\n }\n if (host != null) {\n // User URLs.\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n returnValue = returnValue.replace(/\\B@([\\da-z](?:-?[\\d/a-z]){0,38})/g, (_, username: string) =>\n username.includes('/') ? `@${username}` : `[@${username}](${host}/${username})`,\n );\n }\n return returnValue;\n })()\n : commit.subject;\n\n // Remove references that already appear in the subject\n const references = commit.references.filter((reference) => !issues.has(reference.issue));\n\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n return {\n ...commit,\n type,\n hash,\n scope,\n subject,\n references,\n header: commit.header,\n body: commit.body,\n footer: commit.footer,\n merge: commit.merge,\n revert: commit.revert,\n notes,\n mentions: commit.mentions,\n } as Commit;\n };\n\n return transform as unknown as CommitTransformFunction<Commit>;\n}\n","/* eslint-disable n/no-sync */\nimport { readFileSync } from 'node:fs';\nimport nodePath from 'node:path';\nimport type { Options } from 'conventional-changelog-writer';\nimport { fileURLToPath } from 'node:url';\nimport { createTransform } from './transform.js';\nimport { Commit, CommitConventionalType } from './data.js';\n\nexport interface WriterOptions extends Options<Commit> {}\n\nconst _dirname = typeof __dirname === 'undefined' ? nodePath.dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = nodePath.resolve(nodePath.dirname(_dirname), './template');\n\nconst mainTemplate = readFileSync(`${basePath}/template.hbs`, 'utf8');\nconst headerPartial = readFileSync(`${basePath}/header.hbs`, 'utf8');\nconst commitPartial = readFileSync(`${basePath}/commit.hbs`, 'utf8');\nconst footerPartial = readFileSync(`${basePath}/footer.hbs`, 'utf8');\nconst author = readFileSync(`${basePath}/author.hbs`, 'utf8');\n\nexport const defaultDisplayTypes = CommitConventionalType.findWhere((_) => _.changelog);\n\nexport const writerOpts: WriterOptions = {\n transform: createTransform({\n displayTypes: defaultDisplayTypes,\n }),\n groupBy: 'type',\n commitGroupsSort: 'title',\n // @ts-ignore\n commitsSort: ['scope', 'subject'],\n noteGroupsSort: 'title',\n mainTemplate,\n headerPartial,\n // eslint-disable-next-line unicorn/prefer-string-replace-all\n commitPartial: commitPartial.replace(/{{gitUserInfo}}/g, author),\n footerPartial,\n};\n","import { gitRawCommitOpts } from './git-raw-commit-opts.js';\nimport { parserOpts } from './parser-opts.js';\nimport { recommendedBumpOpts } from './recommended-bump-opts.js';\nimport { writerOpts } from './writer-opts.js';\nimport { Emoji, GitmojiCode } from './gitmoji.js';\n\n// eslint-disable-next-line import/no-default-export\nexport default {\n Emoji,\n GitmojiCode,\n parserOpts,\n writerOpts,\n recommendedBumpOpts,\n gitRawCommitOpts,\n};\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@w5s/conventional-changelog",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.3",
|
|
4
4
|
"description": "Conventional changelog plugin for @w5s",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"homepage": "https://github.com/w5s/project-config/blob/main/packages/conventional-changelog#readme",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
55
|
"sideEffect": false,
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "bb3e96c47e03b7a1a3caeed0bbdd35eee29c9837"
|
|
57
57
|
}
|
package/src/data.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import type { Commit as CommitDefault } from 'conventional-commits-parser';
|
|
2
2
|
|
|
3
|
-
export type Commit = CommitDefault
|
|
4
|
-
|
|
3
|
+
export type Commit = CommitDefault & {
|
|
4
|
+
type: string | null;
|
|
5
|
+
subject: string | null;
|
|
6
|
+
scope: string | null;
|
|
7
|
+
hash: string | null;
|
|
5
8
|
};
|
|
6
9
|
|
|
7
10
|
export type CommitConventionalType =
|
package/src/parser-opts.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ParserOptions as ParserOptionsDefault } from 'conventional-commits-parser';
|
|
2
2
|
|
|
3
|
-
export interface ParserOptions extends
|
|
3
|
+
export interface ParserOptions extends ParserOptionsDefault {}
|
|
4
4
|
|
|
5
5
|
export const parserOpts: ParserOptions = {
|
|
6
6
|
headerPattern: new RegExp(
|
package/src/transform.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CommitTransformFunction, Context } from 'conventional-changelog-writer';
|
|
2
2
|
import { CommitConventionalType, Commit } from './data.js';
|
|
3
3
|
import { GitmojiCode } from './gitmoji.js';
|
|
4
4
|
|
|
@@ -33,12 +33,12 @@ export function displayType(type: string, options: displayType.Options = {}): st
|
|
|
33
33
|
}
|
|
34
34
|
export namespace displayType {
|
|
35
35
|
export interface Options {
|
|
36
|
-
readonly withEmoji?: boolean;
|
|
36
|
+
readonly withEmoji?: boolean | undefined;
|
|
37
37
|
readonly language?: Language;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export function createTransform(config: TransformConfig):
|
|
41
|
+
export function createTransform(config: TransformConfig): CommitTransformFunction<Commit> {
|
|
42
42
|
const displayTypes = new Set(config.displayTypes == null ? CommitConventionalType.values() : config.displayTypes);
|
|
43
43
|
const ignoreType = (type: string | undefined) => type == null || !displayTypes.has(type as CommitConventionalType);
|
|
44
44
|
const ignoreScope = (scope: string | undefined | null) =>
|
|
@@ -61,7 +61,7 @@ export function createTransform(config: TransformConfig): WriterOptions.Transfor
|
|
|
61
61
|
|
|
62
62
|
const type =
|
|
63
63
|
conventionalType == null
|
|
64
|
-
?
|
|
64
|
+
? null
|
|
65
65
|
: displayType(conventionalType, {
|
|
66
66
|
withEmoji: config.withEmoji,
|
|
67
67
|
});
|
|
@@ -70,7 +70,7 @@ export function createTransform(config: TransformConfig): WriterOptions.Transfor
|
|
|
70
70
|
|
|
71
71
|
const scopeIntermediate = commit.scope === '*' ? '' : commit.scope;
|
|
72
72
|
const scope =
|
|
73
|
-
config.scopeDisplayName == null ?
|
|
73
|
+
config.scopeDisplayName == null ? null : (displayScope(scopeIntermediate, config.scopeDisplayName) ?? null);
|
|
74
74
|
const hash = typeof commit.hash === 'string' ? commit.hash.slice(0, 7) : commit.hash;
|
|
75
75
|
|
|
76
76
|
const subject =
|
|
@@ -102,6 +102,7 @@ export function createTransform(config: TransformConfig): WriterOptions.Transfor
|
|
|
102
102
|
// Remove references that already appear in the subject
|
|
103
103
|
const references = commit.references.filter((reference) => !issues.has(reference.issue));
|
|
104
104
|
|
|
105
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
105
106
|
return {
|
|
106
107
|
...commit,
|
|
107
108
|
type,
|
|
@@ -116,8 +117,8 @@ export function createTransform(config: TransformConfig): WriterOptions.Transfor
|
|
|
116
117
|
revert: commit.revert,
|
|
117
118
|
notes,
|
|
118
119
|
mentions: commit.mentions,
|
|
119
|
-
};
|
|
120
|
+
} as Commit;
|
|
120
121
|
};
|
|
121
122
|
|
|
122
|
-
return transform as unknown as
|
|
123
|
+
return transform as unknown as CommitTransformFunction<Commit>;
|
|
123
124
|
}
|
package/src/writer-opts.ts
CHANGED
|
@@ -4,9 +4,9 @@ import nodePath from 'node:path';
|
|
|
4
4
|
import type { Options } from 'conventional-changelog-writer';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
import { createTransform } from './transform.js';
|
|
7
|
-
import { CommitConventionalType } from './data.js';
|
|
7
|
+
import { Commit, CommitConventionalType } from './data.js';
|
|
8
8
|
|
|
9
|
-
export interface WriterOptions extends Options {}
|
|
9
|
+
export interface WriterOptions extends Options<Commit> {}
|
|
10
10
|
|
|
11
11
|
const _dirname = typeof __dirname === 'undefined' ? nodePath.dirname(fileURLToPath(import.meta.url)) : __dirname;
|
|
12
12
|
const basePath = nodePath.resolve(nodePath.dirname(_dirname), './template');
|
|
@@ -25,6 +25,7 @@ export const writerOpts: WriterOptions = {
|
|
|
25
25
|
}),
|
|
26
26
|
groupBy: 'type',
|
|
27
27
|
commitGroupsSort: 'title',
|
|
28
|
+
// @ts-ignore
|
|
28
29
|
commitsSort: ['scope', 'subject'],
|
|
29
30
|
noteGroupsSort: 'title',
|
|
30
31
|
mainTemplate,
|