@w5s/conventional-changelog 2.0.24 โ†’ 2.1.0

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 CHANGED
@@ -1,7 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var emojiRegexp = require('emoji-regex');
6
4
  var gitmojis = require('gitmojis');
7
5
  var fs = require('fs');
@@ -129,7 +127,7 @@ var CommitConventionalType = (() => {
129
127
  }
130
128
  return { ...enumObject, hasInstance, getData, values, parse, findWhere };
131
129
  })();
132
- exports.Emoji = void 0;
130
+ var Emoji;
133
131
  ((Emoji2) => {
134
132
  Emoji2.reEmojiUnicode = emojiRegexp__default.default();
135
133
  Emoji2.reEmojiText = /:\w*:/;
@@ -148,8 +146,8 @@ exports.Emoji = void 0;
148
146
  return isText(anyValue) || isUnicode(anyValue);
149
147
  }
150
148
  Emoji2.hasInstance = hasInstance;
151
- })(exports.Emoji || (exports.Emoji = {}));
152
- exports.GitmojiCode = void 0;
149
+ })(Emoji || (Emoji = {}));
150
+ var GitmojiCode;
153
151
  ((GitmojiCode2) => {
154
152
  const allGitmojiCodes = new Set(
155
153
  gitmojis.gitmojis.map((gitmoji) => gitmoji.code).concat(gitmojis.gitmojis.map((gitmoji) => gitmoji.emoji))
@@ -202,11 +200,11 @@ exports.GitmojiCode = void 0;
202
200
  return conversionMap.get(gitmoji) ?? defaultType;
203
201
  }
204
202
  GitmojiCode2.toConventionalCommitType = toConventionalCommitType2;
205
- })(exports.GitmojiCode || (exports.GitmojiCode = {}));
203
+ })(GitmojiCode || (GitmojiCode = {}));
206
204
 
207
205
  // src/recommended-bump-opts.ts
208
206
  function toConventionalCommitType(text) {
209
- return exports.GitmojiCode.isValid(text) ? exports.GitmojiCode.toConventionalCommitType(text) : CommitConventionalType.hasInstance(text) ? text : void 0;
207
+ return GitmojiCode.isValid(text) ? GitmojiCode.toConventionalCommitType(text) : CommitConventionalType.hasInstance(text) ? text : void 0;
210
208
  }
211
209
  var recommendedBumpOpts = {
212
210
  parserOpts,
@@ -256,7 +254,7 @@ function createTransform(config) {
256
254
  ...note,
257
255
  title: `${config.withEmoji === false ? "" : "\u{1F4A5} "}BREAKING CHANGES`
258
256
  }));
259
- const conventionalType = commit.type == null ? void 0 : CommitConventionalType.parse(commit.type) ?? (exports.GitmojiCode.isValid(commit.type) ? exports.GitmojiCode.toConventionalCommitType(commit.type) : void 0);
257
+ const conventionalType = commit.type == null ? void 0 : CommitConventionalType.parse(commit.type) ?? (GitmojiCode.isValid(commit.type) ? GitmojiCode.toConventionalCommitType(commit.type) : void 0);
260
258
  if (ignoreType(conventionalType) && discard) return false;
261
259
  const type = conventionalType == null ? conventionalType : displayType(conventionalType, {
262
260
  withEmoji: config.withEmoji
@@ -304,7 +302,7 @@ function createTransform(config) {
304
302
  }
305
303
 
306
304
  // src/writer-opts.ts
307
- var _dirname = typeof __dirname === "undefined" ? path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)))) : __dirname;
305
+ var _dirname = typeof __dirname === "undefined" ? path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href)))) : __dirname;
308
306
  var basePath = path.resolve(path.dirname(_dirname), "./template");
309
307
  var mainTemplate = fs.readFileSync(`${basePath}/template.hbs`, "utf8");
310
308
  var headerPartial = fs.readFileSync(`${basePath}/header.hbs`, "utf8");
@@ -329,12 +327,14 @@ var writerOpts = {
329
327
 
330
328
  // src/index.ts
331
329
  var src_default = {
330
+ Emoji,
331
+ GitmojiCode,
332
332
  parserOpts,
333
333
  writerOpts,
334
334
  recommendedBumpOpts,
335
335
  gitRawCommitOpts
336
336
  };
337
337
 
338
- exports.default = src_default;
338
+ module.exports = src_default;
339
339
  //# sourceMappingURL=index.cjs.map
340
340
  //# sourceMappingURL=index.cjs.map
@@ -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","dirname","fileURLToPath","resolve","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","import { readFileSync } from 'node:fs';\nimport { resolve, dirname } 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' ? dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = resolve(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';\n\nexport * from './gitmoji.js';\n\nexport default {\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","dirname","fileURLToPath","resolve","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","import { readFileSync } from 'node:fs';\nimport { resolve, dirname } 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' ? dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = resolve(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"]}
package/dist/index.d.cts CHANGED
@@ -64,6 +64,8 @@ declare namespace GitmojiCode {
64
64
  }
65
65
 
66
66
  declare const _default: {
67
+ Emoji: typeof Emoji;
68
+ GitmojiCode: typeof GitmojiCode;
67
69
  parserOpts: ParserOptions;
68
70
  writerOpts: WriterOptions;
69
71
  recommendedBumpOpts: {
@@ -78,4 +80,4 @@ declare const _default: {
78
80
  };
79
81
  };
80
82
 
81
- export { Emoji, GitmojiCode, _default as default };
83
+ export { _default as default };
package/dist/index.d.ts CHANGED
@@ -64,6 +64,8 @@ declare namespace GitmojiCode {
64
64
  }
65
65
 
66
66
  declare const _default: {
67
+ Emoji: typeof Emoji;
68
+ GitmojiCode: typeof GitmojiCode;
67
69
  parserOpts: ParserOptions;
68
70
  writerOpts: WriterOptions;
69
71
  recommendedBumpOpts: {
@@ -78,4 +80,4 @@ declare const _default: {
78
80
  };
79
81
  };
80
82
 
81
- export { Emoji, GitmojiCode, _default as default };
83
+ export { _default as default };
package/dist/index.js CHANGED
@@ -320,12 +320,14 @@ var writerOpts = {
320
320
 
321
321
  // src/index.ts
322
322
  var src_default = {
323
+ Emoji,
324
+ GitmojiCode,
323
325
  parserOpts,
324
326
  writerOpts,
325
327
  recommendedBumpOpts,
326
328
  gitRawCommitOpts
327
329
  };
328
330
 
329
- export { Emoji, GitmojiCode, src_default as default };
331
+ export { src_default as default };
330
332
  //# sourceMappingURL=index.js.map
331
333
  //# sourceMappingURL=index.js.map
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","import { readFileSync } from 'node:fs';\nimport { resolve, dirname } 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' ? dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = resolve(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';\n\nexport * from './gitmoji.js';\n\nexport default {\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 { 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","import { readFileSync } from 'node:fs';\nimport { resolve, dirname } 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' ? dirname(fileURLToPath(import.meta.url)) : __dirname;\nconst basePath = resolve(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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@w5s/conventional-changelog",
3
- "version": "2.0.24",
3
+ "version": "2.1.0",
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",
@@ -42,7 +42,7 @@
42
42
  "postpack": "npx clean-package restore"
43
43
  },
44
44
  "dependencies": {
45
- "@commitlint/types": "^18.0.0",
45
+ "@commitlint/types": "^19.0.0",
46
46
  "emoji-regex": "^10.2.1",
47
47
  "gitmojis": "^3.13.4"
48
48
  },
@@ -52,5 +52,6 @@
52
52
  "publishConfig": {
53
53
  "access": "public"
54
54
  },
55
- "gitHead": "966ebbb065df3e68092eb80c3ff2c15858989edb"
55
+ "sideEffect": false,
56
+ "gitHead": "8342e0884a000565d2727d65092ae024ac6c0669"
56
57
  }
package/src/index.ts CHANGED
@@ -2,10 +2,12 @@ import { gitRawCommitOpts } from './git-raw-commit-opts.js';
2
2
  import { parserOpts } from './parser-opts.js';
3
3
  import { recommendedBumpOpts } from './recommended-bump-opts.js';
4
4
  import { writerOpts } from './writer-opts.js';
5
+ import { Emoji, GitmojiCode } from './gitmoji.js';
5
6
 
6
- export * from './gitmoji.js';
7
-
7
+ // eslint-disable-next-line import/no-default-export
8
8
  export default {
9
+ Emoji,
10
+ GitmojiCode,
9
11
  parserOpts,
10
12
  writerOpts,
11
13
  recommendedBumpOpts,