relizy 1.10.0 → 1.11.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/cli.mjs CHANGED
@@ -5,12 +5,13 @@ import process from 'node:process';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import { printBanner, logger } from '@maz-ui/node';
7
7
  import { Command, Option } from 'commander';
8
- import { b6 as isInCI, ad as getCIName, o as bump, q as changelog, bs as publish, bq as providerRelease, bS as social, u as commitlint, bp as prComment, bC as release } from './shared/relizy.BY0-QHlV.mjs';
8
+ import { b7 as isInCI, ad as getCIName, o as bump, q as changelog, bt as publish, br as providerRelease, bT as social, u as commitlint, bq as prComment, bD as release } from './shared/relizy.BcSTcU3Z.mjs';
9
9
  import 'node:child_process';
10
10
  import 'node:module';
11
11
  import 'mdast-util-from-markdown';
12
12
  import 'mdast-util-gfm';
13
13
  import 'micromark-extension-gfm';
14
+ import 'confbox';
14
15
  import 'fast-glob';
15
16
  import 'changelogen';
16
17
  import '@maz-ui/utils/helpers/formatJson';
package/dist/index.d.mts CHANGED
@@ -157,10 +157,11 @@ interface ChangelogLinter {
157
157
  lint: (markdown: string) => Promise<string[]>;
158
158
  }
159
159
  /**
160
- * The linter of the changelog entries of a project: its ESLint when it lints the
161
- * CHANGELOG.md files, otherwise a syntax check of the code blocks. Loaded once per cwd.
160
+ * The linter of the changelog entries of a project. With `auto`, its ESLint when
161
+ * it lints the CHANGELOG.md files, otherwise a syntax check of the code blocks
162
+ * with oxc. Loaded once per cwd and choice.
162
163
  */
163
- declare function getChangelogLinter(cwd: string): Promise<ChangelogLinter>;
164
+ declare function getChangelogLinter(cwd: string, choice?: CommitlintCodeBlocksLinter): Promise<ChangelogLinter>;
164
165
 
165
166
  /** Character git uses for the comment lines of the edited messages */
166
167
  declare function getCommentChar(cwd: string): string;
@@ -188,8 +189,9 @@ declare function getCommitsInRange({ from, to, cwd }: {
188
189
  cwd: string;
189
190
  }): RangeCommit[];
190
191
  /**
191
- * Throws a helpful error when the start of the range is not in the local
192
- * history, e.g. in a shallow clone of the CI.
192
+ * Makes sure the start of the range is in the local history: in a shallow
193
+ * clone of the CI, the history and the tags are fetched. Throws a helpful
194
+ * error when it is still missing.
193
195
  */
194
196
  declare function assertRefAvailable(ref: string, cwd: string): void;
195
197
  interface PullRequestTitle {
@@ -270,9 +272,16 @@ interface WorkspacePackage {
270
272
  /** Scopes designating the package: short name, full name and folder name */
271
273
  scopes: string[];
272
274
  }
275
+ /**
276
+ * Package globs declared by the tools of the monorepo: the `workspaces` of the
277
+ * package.json (npm, yarn, bun, and Turborepo or Nx on top of them),
278
+ * `pnpm-workspace.yaml`, `lerna.json`, `rush.json` and the `workspace` of `deno.json`.
279
+ */
280
+ declare function getPackageManagerWorkspaces(cwd: string): string[];
273
281
  /**
274
282
  * Packages of the monorepo, private ones included: a commit can touch a package
275
- * that is never published. `commitlint.packages` adds directories that relizy
283
+ * that is never published. Besides `monorepo.packages`, the workspace of the
284
+ * package manager and `commitlint.packages` add the directories that relizy
276
285
  * does not release (e.g. apps). `monorepo.ignored` is not applied: an ignored
277
286
  * package is released by another config, it is still a valid scope.
278
287
  * Empty in standalone mode without them.
@@ -317,7 +326,10 @@ interface RuleDefinition {
317
326
  conventionalOnly?: boolean;
318
327
  check: (context: RuleContext) => RuleProblem[] | Promise<RuleProblem[]>;
319
328
  }
320
- /** `type(scope)!: subject`, lowercase type, a space after the colon */
329
+ /**
330
+ * `type(scope)!: subject`, lowercase type, a space after the colon. Extra spaces
331
+ * are accepted: the changelog trims them.
332
+ */
321
333
  declare const STRICT_HEADER_PATTERN: RegExp;
322
334
  /**
323
335
  * The built-in rules, with their default severity and value.
@@ -2723,8 +2735,9 @@ interface CommitlintBuiltInRules {
2723
2735
  */
2724
2736
  'scope-matches-files': never;
2725
2737
  /**
2726
- * The subject starts with a lowercase letter.
2727
- * @default 'error'
2738
+ * The subject starts with a lowercase letter. Off by default: the changelog
2739
+ * capitalizes the subject anyway.
2740
+ * @default 'off'
2728
2741
  */
2729
2742
  'subject-case': never;
2730
2743
  /**
@@ -2824,6 +2837,13 @@ interface CommitlintCustomRuleContext {
2824
2837
  */
2825
2838
  type CommitlintCustomRule = (commit: CommitlintCommit, context: CommitlintCustomRuleContext) => CommitlintCustomRuleOutcome | Promise<CommitlintCustomRuleOutcome>;
2826
2839
  type CommitlintCustomRuleOutcome = boolean | string | [boolean, string?];
2840
+ /**
2841
+ * Tool checking the code blocks of the commit bodies (`body-changelog-lint`):
2842
+ * - `auto`: the ESLint of the project when it lints the CHANGELOG.md files, otherwise `oxc`;
2843
+ * - `eslint`: the ESLint of the project, an error when it does not lint the CHANGELOG.md files;
2844
+ * - `oxc`: a syntax check of the JavaScript, TypeScript and JSON code blocks.
2845
+ */
2846
+ type CommitlintCodeBlocksLinter = 'auto' | 'eslint' | 'oxc';
2827
2847
  interface CommitlintConfig {
2828
2848
  /**
2829
2849
  * Glob patterns of directories to treat as workspace packages for the scopes,
@@ -2865,6 +2885,12 @@ interface CommitlintConfig {
2865
2885
  * @default false
2866
2886
  */
2867
2887
  title?: boolean;
2888
+ /**
2889
+ * Tool checking the code blocks of the commit bodies, rendered as in the
2890
+ * changelogs (`body-changelog-lint`).
2891
+ * @default 'auto'
2892
+ */
2893
+ codeBlocksLinter?: CommitlintCodeBlocksLinter;
2868
2894
  /**
2869
2895
  * URL printed with the errors, e.g. the commit guidelines of the team.
2870
2896
  */
@@ -3118,5 +3144,5 @@ declare function socialSafetyCheck({ config }: {
3118
3144
  }): Promise<void>;
3119
3145
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
3120
3146
 
3121
- export { BUILT_IN_RULES, COMMITLINT_RULES_URL, NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, SLACK_HEADER_MAX_LENGTH, SLACK_MAX_BLOCKS, SLACK_RICH_TEXT_BLOCK_MAX_LENGTH, SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH, SLACK_SECTION_MAX_LENGTH, SLACK_SUMMARY_MAX_LENGTH, STRICT_HEADER_PATTERN, assertBranchUpToDateWithRemote, assertRefAvailable, assertReleaseTagsAvailable, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, buildReleaseSummary, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, commitlint, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromRepoTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, filterPrivatePackagesUnlessIncluded, findGitHubPR, findGitLabMR, findPackageByScope, findReachableCommitBySubject, formatChangelogForSlack, formatCommitResult, formatGithubAnnotations, formatHowToFix, formatJsonReport, formatPackagesForSlack, formatReleaseEffect, formatSlackMessage, formatTextReport, formatTweetMessage, generateChangelog, generateMarkDown, getAllowedScopes, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getChangelogLinter, getChangelogTitle, getCommentChar, getCommitChangedFiles, getCommitMessageFile, getCommitSubject, getCommitsInRange, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitDiff, getGitStatus, getGitUpstream, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getNewPackageCompareBase, getNpmRegistry, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOfFiles, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getPullRequestTitle, getReleaseTagNames, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getStagedFiles, getTwitterCredentials, getWorkspacePackages, github, gitlab, globDirsAbsolute, hasLernaJson, installCommitMsgHook, isAllowedCommit, isAncestor, isBumpedPackage, isChangedPreid, isCommitOnlyInIgnoredPackages, isGraduating, isGraduatingToStableBetweenVersion, isIgnoredCommitMessage, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, isVersionAlreadyPublishedError, isVersionPublished, lintCommitMessage, listTags, loadRelizyConfig, markdownToSlackMrkdwn, markdownToSlackRichText, mergeTypes, normalizeRuleConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readCommitMessageFile, readPackageJson, readPackages, reconcileFromTag, redactSecrets, release, renderChangelogEntry, resetRewrittenTagCache, resolveAllConfiguredRegistryTargets, resolveDefaultRangeStart, resolveIgnoredPackagePaths, resolveRegistryTargetsForPackage, resolveRegistryTargetsForPackages, resolveSlackPostMaxLength, resolveTags, retagAnnotatedLocal, richTextToPlainText, rollbackModifiedFiles, shouldFilterPrereleaseTags, shouldUseColors, sliceSlackText, social, socialSafetyCheck, splitCommitMessage, stripGitComments, summarizeResults, tagExists, topologicalSort, tryPostPrComment, updateLernaVersion, withRegistryNpmrc, writeChangelogToFile, writeVersion };
3122
- export type { AIConfig, AIExtraGuidelines, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, AiSdkProviderOptions, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogInclude, ChangelogLinter, ChangelogOptions, ClaudeCodeProviderOptions, CommitMessageParts, CommitlintBuiltInRules, CommitlintCommit, CommitlintConfig, CommitlintCustomRule, CommitlintCustomRuleContext, CommitlintCustomRuleOutcome, CommitlintOptions, CommitlintProblem, CommitlintReport, CommitlintResult, CommitlintRuleConfig, CommitlintRuleLevel, CommitlintRuleName, CommitlintRulesConfig, CommitlintRunResult, CommitlintSuggestion, CommitlintSummary, ConfigType, DefaultRangeStart, GitProvider, GitUpstream, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, InstalledHook, LintCommitMessageOptions, MonorepoConfig, NormalizedRuleConfig, OnRewrittenTag, PackageBase, PackageBumpEntry, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, PullRequestTitle, RangeCommit, ReadPackage, Reference, RegistryTarget, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ReportEntry, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, RuleContext, RuleDefinition, RuleProblem, RuleSeverity, SlackChangelogFormat, SlackCredentials, SlackOptions, SlackPackageEntry, SlackRichTextBlock, SlackRichTextElement, SlackRichTextInline, SlackRichTextLink, SlackRichTextList, SlackRichTextPreformatted, SlackRichTextQuote, SlackRichTextSection, SlackRichTextStyle, SlackRichTextText, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode, WorkspacePackage };
3147
+ export { BUILT_IN_RULES, COMMITLINT_RULES_URL, NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, SLACK_HEADER_MAX_LENGTH, SLACK_MAX_BLOCKS, SLACK_RICH_TEXT_BLOCK_MAX_LENGTH, SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH, SLACK_SECTION_MAX_LENGTH, SLACK_SUMMARY_MAX_LENGTH, STRICT_HEADER_PATTERN, assertBranchUpToDateWithRemote, assertRefAvailable, assertReleaseTagsAvailable, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, buildReleaseSummary, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, commitlint, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromRepoTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, filterPrivatePackagesUnlessIncluded, findGitHubPR, findGitLabMR, findPackageByScope, findReachableCommitBySubject, formatChangelogForSlack, formatCommitResult, formatGithubAnnotations, formatHowToFix, formatJsonReport, formatPackagesForSlack, formatReleaseEffect, formatSlackMessage, formatTextReport, formatTweetMessage, generateChangelog, generateMarkDown, getAllowedScopes, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getChangelogLinter, getChangelogTitle, getCommentChar, getCommitChangedFiles, getCommitMessageFile, getCommitSubject, getCommitsInRange, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitDiff, getGitStatus, getGitUpstream, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getNewPackageCompareBase, getNpmRegistry, getPackageCommits, getPackageDependencies, getPackageManagerWorkspaces, getPackageNewVersion, getPackages, getPackagesOfFiles, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getPullRequestTitle, getReleaseTagNames, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getStagedFiles, getTwitterCredentials, getWorkspacePackages, github, gitlab, globDirsAbsolute, hasLernaJson, installCommitMsgHook, isAllowedCommit, isAncestor, isBumpedPackage, isChangedPreid, isCommitOnlyInIgnoredPackages, isGraduating, isGraduatingToStableBetweenVersion, isIgnoredCommitMessage, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, isVersionAlreadyPublishedError, isVersionPublished, lintCommitMessage, listTags, loadRelizyConfig, markdownToSlackMrkdwn, markdownToSlackRichText, mergeTypes, normalizeRuleConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readCommitMessageFile, readPackageJson, readPackages, reconcileFromTag, redactSecrets, release, renderChangelogEntry, resetRewrittenTagCache, resolveAllConfiguredRegistryTargets, resolveDefaultRangeStart, resolveIgnoredPackagePaths, resolveRegistryTargetsForPackage, resolveRegistryTargetsForPackages, resolveSlackPostMaxLength, resolveTags, retagAnnotatedLocal, richTextToPlainText, rollbackModifiedFiles, shouldFilterPrereleaseTags, shouldUseColors, sliceSlackText, social, socialSafetyCheck, splitCommitMessage, stripGitComments, summarizeResults, tagExists, topologicalSort, tryPostPrComment, updateLernaVersion, withRegistryNpmrc, writeChangelogToFile, writeVersion };
3148
+ export type { AIConfig, AIExtraGuidelines, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, AiSdkProviderOptions, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogInclude, ChangelogLinter, ChangelogOptions, ClaudeCodeProviderOptions, CommitMessageParts, CommitlintBuiltInRules, CommitlintCodeBlocksLinter, CommitlintCommit, CommitlintConfig, CommitlintCustomRule, CommitlintCustomRuleContext, CommitlintCustomRuleOutcome, CommitlintOptions, CommitlintProblem, CommitlintReport, CommitlintResult, CommitlintRuleConfig, CommitlintRuleLevel, CommitlintRuleName, CommitlintRulesConfig, CommitlintRunResult, CommitlintSuggestion, CommitlintSummary, ConfigType, DefaultRangeStart, GitProvider, GitUpstream, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, InstalledHook, LintCommitMessageOptions, MonorepoConfig, NormalizedRuleConfig, OnRewrittenTag, PackageBase, PackageBumpEntry, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, PullRequestTitle, RangeCommit, ReadPackage, Reference, RegistryTarget, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ReportEntry, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, RuleContext, RuleDefinition, RuleProblem, RuleSeverity, SlackChangelogFormat, SlackCredentials, SlackOptions, SlackPackageEntry, SlackRichTextBlock, SlackRichTextElement, SlackRichTextInline, SlackRichTextLink, SlackRichTextList, SlackRichTextPreformatted, SlackRichTextQuote, SlackRichTextSection, SlackRichTextStyle, SlackRichTextText, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode, WorkspacePackage };
package/dist/index.d.ts CHANGED
@@ -157,10 +157,11 @@ interface ChangelogLinter {
157
157
  lint: (markdown: string) => Promise<string[]>;
158
158
  }
159
159
  /**
160
- * The linter of the changelog entries of a project: its ESLint when it lints the
161
- * CHANGELOG.md files, otherwise a syntax check of the code blocks. Loaded once per cwd.
160
+ * The linter of the changelog entries of a project. With `auto`, its ESLint when
161
+ * it lints the CHANGELOG.md files, otherwise a syntax check of the code blocks
162
+ * with oxc. Loaded once per cwd and choice.
162
163
  */
163
- declare function getChangelogLinter(cwd: string): Promise<ChangelogLinter>;
164
+ declare function getChangelogLinter(cwd: string, choice?: CommitlintCodeBlocksLinter): Promise<ChangelogLinter>;
164
165
 
165
166
  /** Character git uses for the comment lines of the edited messages */
166
167
  declare function getCommentChar(cwd: string): string;
@@ -188,8 +189,9 @@ declare function getCommitsInRange({ from, to, cwd }: {
188
189
  cwd: string;
189
190
  }): RangeCommit[];
190
191
  /**
191
- * Throws a helpful error when the start of the range is not in the local
192
- * history, e.g. in a shallow clone of the CI.
192
+ * Makes sure the start of the range is in the local history: in a shallow
193
+ * clone of the CI, the history and the tags are fetched. Throws a helpful
194
+ * error when it is still missing.
193
195
  */
194
196
  declare function assertRefAvailable(ref: string, cwd: string): void;
195
197
  interface PullRequestTitle {
@@ -270,9 +272,16 @@ interface WorkspacePackage {
270
272
  /** Scopes designating the package: short name, full name and folder name */
271
273
  scopes: string[];
272
274
  }
275
+ /**
276
+ * Package globs declared by the tools of the monorepo: the `workspaces` of the
277
+ * package.json (npm, yarn, bun, and Turborepo or Nx on top of them),
278
+ * `pnpm-workspace.yaml`, `lerna.json`, `rush.json` and the `workspace` of `deno.json`.
279
+ */
280
+ declare function getPackageManagerWorkspaces(cwd: string): string[];
273
281
  /**
274
282
  * Packages of the monorepo, private ones included: a commit can touch a package
275
- * that is never published. `commitlint.packages` adds directories that relizy
283
+ * that is never published. Besides `monorepo.packages`, the workspace of the
284
+ * package manager and `commitlint.packages` add the directories that relizy
276
285
  * does not release (e.g. apps). `monorepo.ignored` is not applied: an ignored
277
286
  * package is released by another config, it is still a valid scope.
278
287
  * Empty in standalone mode without them.
@@ -317,7 +326,10 @@ interface RuleDefinition {
317
326
  conventionalOnly?: boolean;
318
327
  check: (context: RuleContext) => RuleProblem[] | Promise<RuleProblem[]>;
319
328
  }
320
- /** `type(scope)!: subject`, lowercase type, a space after the colon */
329
+ /**
330
+ * `type(scope)!: subject`, lowercase type, a space after the colon. Extra spaces
331
+ * are accepted: the changelog trims them.
332
+ */
321
333
  declare const STRICT_HEADER_PATTERN: RegExp;
322
334
  /**
323
335
  * The built-in rules, with their default severity and value.
@@ -2723,8 +2735,9 @@ interface CommitlintBuiltInRules {
2723
2735
  */
2724
2736
  'scope-matches-files': never;
2725
2737
  /**
2726
- * The subject starts with a lowercase letter.
2727
- * @default 'error'
2738
+ * The subject starts with a lowercase letter. Off by default: the changelog
2739
+ * capitalizes the subject anyway.
2740
+ * @default 'off'
2728
2741
  */
2729
2742
  'subject-case': never;
2730
2743
  /**
@@ -2824,6 +2837,13 @@ interface CommitlintCustomRuleContext {
2824
2837
  */
2825
2838
  type CommitlintCustomRule = (commit: CommitlintCommit, context: CommitlintCustomRuleContext) => CommitlintCustomRuleOutcome | Promise<CommitlintCustomRuleOutcome>;
2826
2839
  type CommitlintCustomRuleOutcome = boolean | string | [boolean, string?];
2840
+ /**
2841
+ * Tool checking the code blocks of the commit bodies (`body-changelog-lint`):
2842
+ * - `auto`: the ESLint of the project when it lints the CHANGELOG.md files, otherwise `oxc`;
2843
+ * - `eslint`: the ESLint of the project, an error when it does not lint the CHANGELOG.md files;
2844
+ * - `oxc`: a syntax check of the JavaScript, TypeScript and JSON code blocks.
2845
+ */
2846
+ type CommitlintCodeBlocksLinter = 'auto' | 'eslint' | 'oxc';
2827
2847
  interface CommitlintConfig {
2828
2848
  /**
2829
2849
  * Glob patterns of directories to treat as workspace packages for the scopes,
@@ -2865,6 +2885,12 @@ interface CommitlintConfig {
2865
2885
  * @default false
2866
2886
  */
2867
2887
  title?: boolean;
2888
+ /**
2889
+ * Tool checking the code blocks of the commit bodies, rendered as in the
2890
+ * changelogs (`body-changelog-lint`).
2891
+ * @default 'auto'
2892
+ */
2893
+ codeBlocksLinter?: CommitlintCodeBlocksLinter;
2868
2894
  /**
2869
2895
  * URL printed with the errors, e.g. the commit guidelines of the team.
2870
2896
  */
@@ -3118,5 +3144,5 @@ declare function socialSafetyCheck({ config }: {
3118
3144
  }): Promise<void>;
3119
3145
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
3120
3146
 
3121
- export { BUILT_IN_RULES, COMMITLINT_RULES_URL, NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, SLACK_HEADER_MAX_LENGTH, SLACK_MAX_BLOCKS, SLACK_RICH_TEXT_BLOCK_MAX_LENGTH, SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH, SLACK_SECTION_MAX_LENGTH, SLACK_SUMMARY_MAX_LENGTH, STRICT_HEADER_PATTERN, assertBranchUpToDateWithRemote, assertRefAvailable, assertReleaseTagsAvailable, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, buildReleaseSummary, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, commitlint, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromRepoTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, filterPrivatePackagesUnlessIncluded, findGitHubPR, findGitLabMR, findPackageByScope, findReachableCommitBySubject, formatChangelogForSlack, formatCommitResult, formatGithubAnnotations, formatHowToFix, formatJsonReport, formatPackagesForSlack, formatReleaseEffect, formatSlackMessage, formatTextReport, formatTweetMessage, generateChangelog, generateMarkDown, getAllowedScopes, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getChangelogLinter, getChangelogTitle, getCommentChar, getCommitChangedFiles, getCommitMessageFile, getCommitSubject, getCommitsInRange, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitDiff, getGitStatus, getGitUpstream, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getNewPackageCompareBase, getNpmRegistry, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOfFiles, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getPullRequestTitle, getReleaseTagNames, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getStagedFiles, getTwitterCredentials, getWorkspacePackages, github, gitlab, globDirsAbsolute, hasLernaJson, installCommitMsgHook, isAllowedCommit, isAncestor, isBumpedPackage, isChangedPreid, isCommitOnlyInIgnoredPackages, isGraduating, isGraduatingToStableBetweenVersion, isIgnoredCommitMessage, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, isVersionAlreadyPublishedError, isVersionPublished, lintCommitMessage, listTags, loadRelizyConfig, markdownToSlackMrkdwn, markdownToSlackRichText, mergeTypes, normalizeRuleConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readCommitMessageFile, readPackageJson, readPackages, reconcileFromTag, redactSecrets, release, renderChangelogEntry, resetRewrittenTagCache, resolveAllConfiguredRegistryTargets, resolveDefaultRangeStart, resolveIgnoredPackagePaths, resolveRegistryTargetsForPackage, resolveRegistryTargetsForPackages, resolveSlackPostMaxLength, resolveTags, retagAnnotatedLocal, richTextToPlainText, rollbackModifiedFiles, shouldFilterPrereleaseTags, shouldUseColors, sliceSlackText, social, socialSafetyCheck, splitCommitMessage, stripGitComments, summarizeResults, tagExists, topologicalSort, tryPostPrComment, updateLernaVersion, withRegistryNpmrc, writeChangelogToFile, writeVersion };
3122
- export type { AIConfig, AIExtraGuidelines, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, AiSdkProviderOptions, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogInclude, ChangelogLinter, ChangelogOptions, ClaudeCodeProviderOptions, CommitMessageParts, CommitlintBuiltInRules, CommitlintCommit, CommitlintConfig, CommitlintCustomRule, CommitlintCustomRuleContext, CommitlintCustomRuleOutcome, CommitlintOptions, CommitlintProblem, CommitlintReport, CommitlintResult, CommitlintRuleConfig, CommitlintRuleLevel, CommitlintRuleName, CommitlintRulesConfig, CommitlintRunResult, CommitlintSuggestion, CommitlintSummary, ConfigType, DefaultRangeStart, GitProvider, GitUpstream, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, InstalledHook, LintCommitMessageOptions, MonorepoConfig, NormalizedRuleConfig, OnRewrittenTag, PackageBase, PackageBumpEntry, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, PullRequestTitle, RangeCommit, ReadPackage, Reference, RegistryTarget, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ReportEntry, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, RuleContext, RuleDefinition, RuleProblem, RuleSeverity, SlackChangelogFormat, SlackCredentials, SlackOptions, SlackPackageEntry, SlackRichTextBlock, SlackRichTextElement, SlackRichTextInline, SlackRichTextLink, SlackRichTextList, SlackRichTextPreformatted, SlackRichTextQuote, SlackRichTextSection, SlackRichTextStyle, SlackRichTextText, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode, WorkspacePackage };
3147
+ export { BUILT_IN_RULES, COMMITLINT_RULES_URL, NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, SLACK_HEADER_MAX_LENGTH, SLACK_MAX_BLOCKS, SLACK_RICH_TEXT_BLOCK_MAX_LENGTH, SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH, SLACK_SECTION_MAX_LENGTH, SLACK_SUMMARY_MAX_LENGTH, STRICT_HEADER_PATTERN, assertBranchUpToDateWithRemote, assertRefAvailable, assertReleaseTagsAvailable, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, buildReleaseSummary, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, commitlint, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromRepoTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, filterPrivatePackagesUnlessIncluded, findGitHubPR, findGitLabMR, findPackageByScope, findReachableCommitBySubject, formatChangelogForSlack, formatCommitResult, formatGithubAnnotations, formatHowToFix, formatJsonReport, formatPackagesForSlack, formatReleaseEffect, formatSlackMessage, formatTextReport, formatTweetMessage, generateChangelog, generateMarkDown, getAllowedScopes, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getChangelogLinter, getChangelogTitle, getCommentChar, getCommitChangedFiles, getCommitMessageFile, getCommitSubject, getCommitsInRange, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitDiff, getGitStatus, getGitUpstream, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getNewPackageCompareBase, getNpmRegistry, getPackageCommits, getPackageDependencies, getPackageManagerWorkspaces, getPackageNewVersion, getPackages, getPackagesOfFiles, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getPullRequestTitle, getReleaseTagNames, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getStagedFiles, getTwitterCredentials, getWorkspacePackages, github, gitlab, globDirsAbsolute, hasLernaJson, installCommitMsgHook, isAllowedCommit, isAncestor, isBumpedPackage, isChangedPreid, isCommitOnlyInIgnoredPackages, isGraduating, isGraduatingToStableBetweenVersion, isIgnoredCommitMessage, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, isVersionAlreadyPublishedError, isVersionPublished, lintCommitMessage, listTags, loadRelizyConfig, markdownToSlackMrkdwn, markdownToSlackRichText, mergeTypes, normalizeRuleConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readCommitMessageFile, readPackageJson, readPackages, reconcileFromTag, redactSecrets, release, renderChangelogEntry, resetRewrittenTagCache, resolveAllConfiguredRegistryTargets, resolveDefaultRangeStart, resolveIgnoredPackagePaths, resolveRegistryTargetsForPackage, resolveRegistryTargetsForPackages, resolveSlackPostMaxLength, resolveTags, retagAnnotatedLocal, richTextToPlainText, rollbackModifiedFiles, shouldFilterPrereleaseTags, shouldUseColors, sliceSlackText, social, socialSafetyCheck, splitCommitMessage, stripGitComments, summarizeResults, tagExists, topologicalSort, tryPostPrComment, updateLernaVersion, withRegistryNpmrc, writeChangelogToFile, writeVersion };
3148
+ export type { AIConfig, AIExtraGuidelines, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, AiSdkProviderOptions, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogInclude, ChangelogLinter, ChangelogOptions, ClaudeCodeProviderOptions, CommitMessageParts, CommitlintBuiltInRules, CommitlintCodeBlocksLinter, CommitlintCommit, CommitlintConfig, CommitlintCustomRule, CommitlintCustomRuleContext, CommitlintCustomRuleOutcome, CommitlintOptions, CommitlintProblem, CommitlintReport, CommitlintResult, CommitlintRuleConfig, CommitlintRuleLevel, CommitlintRuleName, CommitlintRulesConfig, CommitlintRunResult, CommitlintSuggestion, CommitlintSummary, ConfigType, DefaultRangeStart, GitProvider, GitUpstream, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, InstalledHook, LintCommitMessageOptions, MonorepoConfig, NormalizedRuleConfig, OnRewrittenTag, PackageBase, PackageBumpEntry, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, PullRequestTitle, RangeCommit, ReadPackage, Reference, RegistryTarget, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ReportEntry, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, RuleContext, RuleDefinition, RuleProblem, RuleSeverity, SlackChangelogFormat, SlackCredentials, SlackOptions, SlackPackageEntry, SlackRichTextBlock, SlackRichTextElement, SlackRichTextInline, SlackRichTextLink, SlackRichTextList, SlackRichTextPreformatted, SlackRichTextQuote, SlackRichTextSection, SlackRichTextStyle, SlackRichTextText, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode, WorkspacePackage };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { B as BUILT_IN_RULES, C as COMMITLINT_RULES_URL, N as NEW_PACKAGE_MARKER, P as PR_COMMENT_MARKER, S as SLACK_HEADER_MAX_LENGTH, a as SLACK_MAX_BLOCKS, b as SLACK_RICH_TEXT_BLOCK_MAX_LENGTH, c as SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH, d as SLACK_SECTION_MAX_LENGTH, e as SLACK_SUMMARY_MAX_LENGTH, f as STRICT_HEADER_PATTERN, g as assertBranchUpToDateWithRemote, h as assertRefAvailable, i as assertReleaseTagsAvailable, j as buildChangelogBody, k as buildCommentBody, l as buildCompareLink, m as buildContributors, n as buildReleaseSummary, o as bump, p as capReleaseTypeForZeroMajor, q as changelog, r as checkGitStatusIfDirty, s as collectContributorNames, t as collectPackageBumps, u as commitlint, v as confirmBump, w as createCommitAndTags, x as createGitlabRelease, y as defineConfig, z as detectGitProvider, A as detectPackageManager, D as detectPullRequest, E as determinePublishTag, F as determineReleaseType, G as determineSemverChange, H as executeBuildCmd, I as executeFormatCmd, J as executeHook, K as expandPackagesToBumpWithDependents, L as extractChangelogSummary, M as extractVersionFromPackageTag, O as extractVersionFromRepoTag, Q as extractVersionFromTag, R as fetchGitTags, T as filterOutPrivatePackages, U as filterPrivatePackagesUnlessIncluded, V as findGitHubPR, W as findGitLabMR, X as findPackageByScope, Y as findReachableCommitBySubject, Z as formatChangelogForSlack, _ as formatCommitResult, $ as formatGithubAnnotations, a0 as formatHowToFix, a1 as formatJsonReport, a2 as formatPackagesForSlack, a3 as formatReleaseEffect, a4 as formatSlackMessage, a5 as formatTextReport, a6 as formatTweetMessage, a7 as generateChangelog, a8 as generateMarkDown, a9 as getAllowedScopes, aa as getAuthCommand, ab as getBumpedIndependentPackages, ac as getBumpedPackageIndependently, ad as getCIName, ae as getCanaryVersion, af as getChangelogLinter, ag as getChangelogTitle, ah as getCommentChar, ai as getCommitChangedFiles, aj as getCommitMessageFile, ak as getCommitSubject, al as getCommitsInRange, am as getCurrentGitBranch, an as getCurrentGitRef, ao as getDefaultConfig, ap as getDependentsOf, aq as getFirstCommit, ar as getGitDiff, as as getGitStatus, at as getGitUpstream, au as getIndependentTag, av as getLastPackageTag, aw as getLastRepoTag, ax as getLastStableTag, ay as getLastTag, az as getModifiedReleaseFilePatterns, aA as getNewPackageCompareBase, aB as getNpmRegistry, aC as getPackageCommits, aD as getPackageDependencies, aE as getPackageNewVersion, aF as getPackages, aG as getPackagesOfFiles, aH as getPackagesOrBumpedPackages, aI as getPackagesToPublishInIndependentMode, aJ as getPackagesToPublishInSelectiveMode, aK as getPreid, aL as getPullRequestTitle, aM as getReleaseTagNames, aN as getReleaseUrl, aO as getRootPackage, aP as getShortCommitSha, aQ as getSlackToken, aR as getSlackWebhookUrl, aS as getStagedFiles, aT as getTwitterCredentials, aU as getWorkspacePackages, aV as github, aW as gitlab, aX as globDirsAbsolute, aY as hasLernaJson, aZ as installCommitMsgHook, a_ as isAllowedCommit, a$ as isAncestor, b0 as isBumpedPackage, b1 as isChangedPreid, b2 as isCommitOnlyInIgnoredPackages, b3 as isGraduating, b4 as isGraduatingToStableBetweenVersion, b5 as isIgnoredCommitMessage, b6 as isInCI, b7 as isPrerelease, b8 as isPrereleaseReleaseType, b9 as isStableReleaseType, ba as isTagVersionCompatibleWithCurrent, bb as isVersionAlreadyPublishedError, bc as isVersionPublished, bd as lintCommitMessage, be as listTags, bf as loadRelizyConfig, bg as markdownToSlackMrkdwn, bh as markdownToSlackRichText, bi as mergeTypes, bj as normalizeRuleConfig, bk as parseChangelogMarkdown, bl as parseGitRemoteUrl, bm as postPrComment, bn as postReleaseToSlack, bo as postReleaseToTwitter, bp as prComment, bq as providerRelease, br as providerReleaseSafetyCheck, bs as publish, bt as publishPackage, bu as publishSafetyCheck, bv as pushCommitAndTags, bw as pushTagForce, bx as readCommitMessageFile, by as readPackageJson, bz as readPackages, bA as reconcileFromTag, bB as redactSecrets, bC as release, bD as renderChangelogEntry, bE as resetRewrittenTagCache, bF as resolveAllConfiguredRegistryTargets, bG as resolveDefaultRangeStart, bH as resolveIgnoredPackagePaths, bI as resolveRegistryTargetsForPackage, bJ as resolveRegistryTargetsForPackages, bK as resolveSlackPostMaxLength, bL as resolveTags, bM as retagAnnotatedLocal, bN as richTextToPlainText, bO as rollbackModifiedFiles, bP as shouldFilterPrereleaseTags, bQ as shouldUseColors, bR as sliceSlackText, bS as social, bT as socialSafetyCheck, bU as splitCommitMessage, bV as stripGitComments, bW as summarizeResults, bX as tagExists, bY as topologicalSort, bZ as tryPostPrComment, b_ as updateLernaVersion, b$ as withRegistryNpmrc, c0 as writeChangelogToFile, c1 as writeVersion } from './shared/relizy.BY0-QHlV.mjs';
1
+ export { B as BUILT_IN_RULES, C as COMMITLINT_RULES_URL, N as NEW_PACKAGE_MARKER, P as PR_COMMENT_MARKER, S as SLACK_HEADER_MAX_LENGTH, a as SLACK_MAX_BLOCKS, b as SLACK_RICH_TEXT_BLOCK_MAX_LENGTH, c as SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH, d as SLACK_SECTION_MAX_LENGTH, e as SLACK_SUMMARY_MAX_LENGTH, f as STRICT_HEADER_PATTERN, g as assertBranchUpToDateWithRemote, h as assertRefAvailable, i as assertReleaseTagsAvailable, j as buildChangelogBody, k as buildCommentBody, l as buildCompareLink, m as buildContributors, n as buildReleaseSummary, o as bump, p as capReleaseTypeForZeroMajor, q as changelog, r as checkGitStatusIfDirty, s as collectContributorNames, t as collectPackageBumps, u as commitlint, v as confirmBump, w as createCommitAndTags, x as createGitlabRelease, y as defineConfig, z as detectGitProvider, A as detectPackageManager, D as detectPullRequest, E as determinePublishTag, F as determineReleaseType, G as determineSemverChange, H as executeBuildCmd, I as executeFormatCmd, J as executeHook, K as expandPackagesToBumpWithDependents, L as extractChangelogSummary, M as extractVersionFromPackageTag, O as extractVersionFromRepoTag, Q as extractVersionFromTag, R as fetchGitTags, T as filterOutPrivatePackages, U as filterPrivatePackagesUnlessIncluded, V as findGitHubPR, W as findGitLabMR, X as findPackageByScope, Y as findReachableCommitBySubject, Z as formatChangelogForSlack, _ as formatCommitResult, $ as formatGithubAnnotations, a0 as formatHowToFix, a1 as formatJsonReport, a2 as formatPackagesForSlack, a3 as formatReleaseEffect, a4 as formatSlackMessage, a5 as formatTextReport, a6 as formatTweetMessage, a7 as generateChangelog, a8 as generateMarkDown, a9 as getAllowedScopes, aa as getAuthCommand, ab as getBumpedIndependentPackages, ac as getBumpedPackageIndependently, ad as getCIName, ae as getCanaryVersion, af as getChangelogLinter, ag as getChangelogTitle, ah as getCommentChar, ai as getCommitChangedFiles, aj as getCommitMessageFile, ak as getCommitSubject, al as getCommitsInRange, am as getCurrentGitBranch, an as getCurrentGitRef, ao as getDefaultConfig, ap as getDependentsOf, aq as getFirstCommit, ar as getGitDiff, as as getGitStatus, at as getGitUpstream, au as getIndependentTag, av as getLastPackageTag, aw as getLastRepoTag, ax as getLastStableTag, ay as getLastTag, az as getModifiedReleaseFilePatterns, aA as getNewPackageCompareBase, aB as getNpmRegistry, aC as getPackageCommits, aD as getPackageDependencies, aE as getPackageManagerWorkspaces, aF as getPackageNewVersion, aG as getPackages, aH as getPackagesOfFiles, aI as getPackagesOrBumpedPackages, aJ as getPackagesToPublishInIndependentMode, aK as getPackagesToPublishInSelectiveMode, aL as getPreid, aM as getPullRequestTitle, aN as getReleaseTagNames, aO as getReleaseUrl, aP as getRootPackage, aQ as getShortCommitSha, aR as getSlackToken, aS as getSlackWebhookUrl, aT as getStagedFiles, aU as getTwitterCredentials, aV as getWorkspacePackages, aW as github, aX as gitlab, aY as globDirsAbsolute, aZ as hasLernaJson, a_ as installCommitMsgHook, a$ as isAllowedCommit, b0 as isAncestor, b1 as isBumpedPackage, b2 as isChangedPreid, b3 as isCommitOnlyInIgnoredPackages, b4 as isGraduating, b5 as isGraduatingToStableBetweenVersion, b6 as isIgnoredCommitMessage, b7 as isInCI, b8 as isPrerelease, b9 as isPrereleaseReleaseType, ba as isStableReleaseType, bb as isTagVersionCompatibleWithCurrent, bc as isVersionAlreadyPublishedError, bd as isVersionPublished, be as lintCommitMessage, bf as listTags, bg as loadRelizyConfig, bh as markdownToSlackMrkdwn, bi as markdownToSlackRichText, bj as mergeTypes, bk as normalizeRuleConfig, bl as parseChangelogMarkdown, bm as parseGitRemoteUrl, bn as postPrComment, bo as postReleaseToSlack, bp as postReleaseToTwitter, bq as prComment, br as providerRelease, bs as providerReleaseSafetyCheck, bt as publish, bu as publishPackage, bv as publishSafetyCheck, bw as pushCommitAndTags, bx as pushTagForce, by as readCommitMessageFile, bz as readPackageJson, bA as readPackages, bB as reconcileFromTag, bC as redactSecrets, bD as release, bE as renderChangelogEntry, bF as resetRewrittenTagCache, bG as resolveAllConfiguredRegistryTargets, bH as resolveDefaultRangeStart, bI as resolveIgnoredPackagePaths, bJ as resolveRegistryTargetsForPackage, bK as resolveRegistryTargetsForPackages, bL as resolveSlackPostMaxLength, bM as resolveTags, bN as retagAnnotatedLocal, bO as richTextToPlainText, bP as rollbackModifiedFiles, bQ as shouldFilterPrereleaseTags, bR as shouldUseColors, bS as sliceSlackText, bT as social, bU as socialSafetyCheck, bV as splitCommitMessage, bW as stripGitComments, bX as summarizeResults, bY as tagExists, bZ as topologicalSort, b_ as tryPostPrComment, b$ as updateLernaVersion, c0 as withRegistryNpmrc, c1 as writeChangelogToFile, c2 as writeVersion } from './shared/relizy.BcSTcU3Z.mjs';
2
2
  import 'node:path';
3
3
  import 'node:process';
4
4
  import '@maz-ui/node';
@@ -9,6 +9,7 @@ import 'node:url';
9
9
  import 'mdast-util-from-markdown';
10
10
  import 'mdast-util-gfm';
11
11
  import 'micromark-extension-gfm';
12
+ import 'confbox';
12
13
  import 'fast-glob';
13
14
  import 'changelogen';
14
15
  import '@maz-ui/utils/helpers/formatJson';
@@ -8,6 +8,7 @@ import { pathToFileURL } from 'node:url';
8
8
  import { fromMarkdown } from 'mdast-util-from-markdown';
9
9
  import { gfmFromMarkdown } from 'mdast-util-gfm';
10
10
  import { gfm } from 'micromark-extension-gfm';
11
+ import { parseYAML, parseJSONC } from 'confbox';
11
12
  import fastGlob from 'fast-glob';
12
13
  import { parseCommits, resolveRepoConfig, getRepoConfig, formatCompareChanges, formatReference, createGithubRelease } from 'changelogen';
13
14
  import { formatJson } from '@maz-ui/utils/helpers/formatJson';
@@ -2716,7 +2717,8 @@ function getDefaultConfig() {
2716
2717
  customRules: {},
2717
2718
  ignores: [],
2718
2719
  defaultIgnores: true,
2719
- title: false
2720
+ title: false,
2721
+ codeBlocksLinter: "auto"
2720
2722
  },
2721
2723
  social: {
2722
2724
  twitter: {
@@ -3712,36 +3714,44 @@ const CHANGELOG_FILE = "CHANGELOG.md";
3712
3714
  function getLine(text, line) {
3713
3715
  return (text.split("\n")[line - 1] ?? "").trim();
3714
3716
  }
3715
- async function loadProjectEslint(cwd) {
3717
+ async function loadProjectEslint(cwd, required = false) {
3718
+ const unavailable = (reason, error) => {
3719
+ if (required) {
3720
+ throw new Error(`commitlint: codeBlocksLinter is "eslint" but ${reason}`);
3721
+ }
3722
+ logger.debug(`commitlint: ${reason}, using the built-in parser`, ...error ? [error] : []);
3723
+ return void 0;
3724
+ };
3716
3725
  let eslintPath;
3717
3726
  try {
3718
3727
  eslintPath = createRequire(join(cwd, "package.json")).resolve("eslint");
3719
3728
  } catch {
3720
- return void 0;
3729
+ return unavailable("ESLint is not installed in the project");
3721
3730
  }
3731
+ const filePath = join(cwd, CHANGELOG_FILE);
3732
+ let eslint;
3733
+ let lintsChangelogs;
3722
3734
  try {
3723
3735
  const { ESLint } = await import(pathToFileURL(eslintPath).href);
3724
- const eslint = new ESLint({ cwd, fix: true });
3725
- const filePath = join(cwd, CHANGELOG_FILE);
3726
- if (await eslint.isPathIgnored(filePath) || !await eslint.calculateConfigForFile(filePath)) {
3727
- logger.debug("commitlint: ESLint does not lint the changelogs, using the built-in parser");
3728
- return void 0;
3729
- }
3730
- return {
3731
- name: "eslint",
3732
- async lint(markdown) {
3733
- const [result] = await eslint.lintText(markdown, { filePath });
3734
- const output = result?.output ?? markdown;
3735
- return (result?.messages ?? []).filter((message) => message.severity === 2).map((message) => {
3736
- const rule = message.ruleId ? ` (${message.ruleId})` : "";
3737
- return `${message.message.replace(/\.$/, "")}${rule}, on "${getLine(output, message.line)}"`;
3738
- });
3739
- }
3740
- };
3736
+ eslint = new ESLint({ cwd, fix: true });
3737
+ lintsChangelogs = !await eslint.isPathIgnored(filePath) && Boolean(await eslint.calculateConfigForFile(filePath));
3741
3738
  } catch (error) {
3742
- logger.debug("commitlint: ESLint could not be loaded, using the built-in parser", error);
3743
- return void 0;
3739
+ return unavailable("ESLint could not be loaded", error);
3744
3740
  }
3741
+ if (!lintsChangelogs) {
3742
+ return unavailable(`the ESLint config of the project does not lint ${CHANGELOG_FILE}`);
3743
+ }
3744
+ return {
3745
+ name: "eslint",
3746
+ async lint(markdown) {
3747
+ const [result] = await eslint.lintText(markdown, { filePath });
3748
+ const output = result?.output ?? markdown;
3749
+ return (result?.messages ?? []).filter((message) => message.severity === 2).map((message) => {
3750
+ const rule = message.ruleId ? ` (${message.ruleId})` : "";
3751
+ return `${message.message.replace(/\.$/, "")}${rule}, on "${getLine(output, message.line)}"`;
3752
+ });
3753
+ }
3754
+ };
3745
3755
  }
3746
3756
  const CODE_BLOCK_EXTENSIONS = {
3747
3757
  js: "js",
@@ -3805,11 +3815,12 @@ function createBuiltInLinter() {
3805
3815
  };
3806
3816
  }
3807
3817
  const linters = /* @__PURE__ */ new Map();
3808
- function getChangelogLinter(cwd) {
3809
- let linter = linters.get(cwd);
3818
+ function getChangelogLinter(cwd, choice = "auto") {
3819
+ const key = `${choice}:${cwd}`;
3820
+ let linter = linters.get(key);
3810
3821
  if (!linter) {
3811
- linter = loadProjectEslint(cwd).then((eslint) => eslint ?? createBuiltInLinter());
3812
- linters.set(cwd, linter);
3822
+ linter = choice === "oxc" ? Promise.resolve(createBuiltInLinter()) : loadProjectEslint(cwd, choice === "eslint").then((eslint) => eslint ?? createBuiltInLinter());
3823
+ linters.set(key, linter);
3813
3824
  }
3814
3825
  return linter;
3815
3826
  }
@@ -3875,8 +3886,26 @@ function getFetchHistoryHint() {
3875
3886
  function isShallowRepository(cwd) {
3876
3887
  return gitOrUndefined(["rev-parse", "--is-shallow-repository"], cwd) === "true";
3877
3888
  }
3889
+ function fetchHistory(cwd, { refspecs = [], tags = false } = {}) {
3890
+ const shallow = isShallowRepository(cwd);
3891
+ if (!shallow && refspecs.length === 0 && !tags) {
3892
+ return false;
3893
+ }
3894
+ const args = ["fetch", "--quiet", ...tags ? ["--tags"] : ["--no-tags"], ...shallow ? ["--unshallow"] : [], "origin", ...refspecs];
3895
+ logger.debug(`commitlint: git ${args.join(" ")}`);
3896
+ try {
3897
+ git(args, cwd);
3898
+ return true;
3899
+ } catch (error) {
3900
+ logger.debug(`commitlint: the fetch failed: ${error instanceof Error ? error.message : String(error)}`);
3901
+ return false;
3902
+ }
3903
+ }
3904
+ function isRefAvailable(ref, cwd) {
3905
+ return Boolean(gitOrUndefined(["rev-parse", "--verify", "--quiet", `${ref}^{commit}`], cwd));
3906
+ }
3878
3907
  function assertRefAvailable(ref, cwd) {
3879
- if (gitOrUndefined(["rev-parse", "--verify", "--quiet", `${ref}^{commit}`], cwd)) {
3908
+ if (isRefAvailable(ref, cwd) || isShallowRepository(cwd) && fetchHistory(cwd, { tags: true }) && isRefAvailable(ref, cwd)) {
3880
3909
  return;
3881
3910
  }
3882
3911
  const reason = isShallowRepository(cwd) ? `the repository is a shallow clone: fetch the full history (${getFetchHistoryHint()})` : "fetch it before linting";
@@ -3901,7 +3930,8 @@ function getPullRequestTitle() {
3901
3930
  async function resolveDefaultRangeStart({ cwd, logLevel }) {
3902
3931
  const githubBase = process$1.env.GITHUB_BASE_REF;
3903
3932
  if (githubBase) {
3904
- const mergeBase = gitOrUndefined(["merge-base", `origin/${githubBase}`, "HEAD"], cwd);
3933
+ const getMergeBase = () => gitOrUndefined(["merge-base", `origin/${githubBase}`, "HEAD"], cwd);
3934
+ const mergeBase = getMergeBase() ?? (fetchHistory(cwd, { refspecs: [`+refs/heads/${githubBase}:refs/remotes/origin/${githubBase}`] }) ? getMergeBase() : void 0);
3905
3935
  if (!mergeBase) {
3906
3936
  throw new Error(`Cannot find the merge-base of HEAD and origin/${githubBase}: fetch the history of the base branch (${getFetchHistoryHint()}), or pass --from`);
3907
3937
  }
@@ -4053,14 +4083,14 @@ function suggestScope(scope, allowedScopes) {
4053
4083
  }
4054
4084
  return findClosest(cleaned, allowedScopes) ?? cleaned;
4055
4085
  }
4056
- function suggestSubject(subject) {
4086
+ function suggestSubject(subject, lowercase) {
4057
4087
  let suggested = subject.trim();
4058
4088
  if (suggested.endsWith(".") && !suggested.endsWith("...")) {
4059
4089
  suggested = suggested.slice(0, -1);
4060
4090
  }
4061
- return /^[A-Z][^A-Z]/.test(suggested) ? `${suggested[0].toLowerCase()}${suggested.slice(1)}` : suggested;
4091
+ return lowercase && /^[A-Z][^A-Z]/.test(suggested) ? `${suggested[0].toLowerCase()}${suggested.slice(1)}` : suggested;
4062
4092
  }
4063
- function suggestHeader(header, { types, allowedScopes }) {
4093
+ function suggestHeader(header, { types, allowedScopes, lowercaseSubject = false }) {
4064
4094
  const trimmed = header.trim();
4065
4095
  const revert = /^Revert "(?<reverted>.+)"$/.exec(trimmed)?.groups?.reverted;
4066
4096
  if (revert) {
@@ -4072,15 +4102,51 @@ function suggestHeader(header, { types, allowedScopes }) {
4072
4102
  }
4073
4103
  const type = suggestType(groups.type, types);
4074
4104
  const scope = groups.scope === void 0 || groups.scope.trim() === "" ? "" : `(${suggestScope(groups.scope, allowedScopes)})`;
4075
- const suggested = `${type}${scope}${groups.breaking ?? ""}: ${suggestSubject(groups.subject)}`;
4105
+ const suggested = `${type}${scope}${groups.breaking ?? ""}: ${suggestSubject(groups.subject, lowercaseSubject)}`;
4076
4106
  return suggested === header ? void 0 : suggested;
4077
4107
  }
4078
4108
 
4079
4109
  function getShortName(name) {
4080
4110
  return name.startsWith("@") ? name.slice(name.indexOf("/") + 1) : name;
4081
4111
  }
4112
+ function readFile(path) {
4113
+ try {
4114
+ return readFileSync(path, "utf8");
4115
+ } catch {
4116
+ return void 0;
4117
+ }
4118
+ }
4119
+ function toStrings(value) {
4120
+ return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
4121
+ }
4122
+ function readConfigFile(cwd, file) {
4123
+ const content = readFile(join(cwd, file));
4124
+ if (content === void 0) {
4125
+ return void 0;
4126
+ }
4127
+ try {
4128
+ const parsed = file.endsWith(".yaml") ? parseYAML(content) : parseJSONC(content);
4129
+ return parsed && typeof parsed === "object" ? parsed : void 0;
4130
+ } catch {
4131
+ return void 0;
4132
+ }
4133
+ }
4134
+ function getPackageManagerWorkspaces(cwd) {
4135
+ const workspaces = readConfigFile(cwd, "package.json")?.workspaces;
4136
+ return [.../* @__PURE__ */ new Set([
4137
+ ...toStrings(Array.isArray(workspaces) ? workspaces : workspaces?.packages),
4138
+ ...toStrings(readConfigFile(cwd, "pnpm-workspace.yaml")?.packages),
4139
+ ...toStrings(readConfigFile(cwd, "lerna.json")?.packages),
4140
+ ...toStrings((readConfigFile(cwd, "rush.json")?.projects ?? []).map((project) => project?.projectFolder)),
4141
+ ...toStrings((readConfigFile(cwd, "deno.json") ?? readConfigFile(cwd, "deno.jsonc"))?.workspace)
4142
+ ])];
4143
+ }
4082
4144
  function getWorkspacePackages(config) {
4083
- const patterns = [.../* @__PURE__ */ new Set([...config.monorepo?.packages ?? [], ...config.commitlint?.packages ?? []])];
4145
+ const patterns = [...new Set([
4146
+ ...config.monorepo?.packages ?? [],
4147
+ ...getPackageManagerWorkspaces(config.cwd),
4148
+ ...config.commitlint?.packages ?? []
4149
+ ].map((pattern) => pattern.replace(/^\.\//, "")))];
4084
4150
  if (patterns.length === 0) {
4085
4151
  return [];
4086
4152
  }
@@ -4120,7 +4186,7 @@ function findPackageByScope(scope, packages) {
4120
4186
  return packages.find((pkg) => pkg.scopes.includes(scope));
4121
4187
  }
4122
4188
 
4123
- const STRICT_HEADER_PATTERN = /^(?<type>[a-z]+)(?:\((?<scope>[^()\s]+)\))?(?<breaking>!)?: (?<subject>\S.*)$/;
4189
+ const STRICT_HEADER_PATTERN = /^(?<type>[a-z]+)(?:\((?<scope>[^()\s]+)\))?(?<breaking>!)?: +(?<subject>\S.*)$/;
4124
4190
  const GENERIC_SUBJECTS = /* @__PURE__ */ new Set(["wip", "fix", "fixes", "fixed", "update", "updates", "updated", "change", "changes", "changed", "misc", "stuff", "tmp", "temp", "test", "tests", "cleanup", "clean", "refactor", "minor", "typo", "typos", "improvements", "tweaks"]);
4125
4191
  const MAX_LISTED_SCOPES = 20;
4126
4192
  function parseMarkdown$1(markdown) {
@@ -4260,8 +4326,10 @@ const BUILT_IN_RULES = {
4260
4326
  return [{ message: `The scope "${commit.scope}" designates ${pkg.path}, but ${touched.message}`, fix: touched.fix }];
4261
4327
  }
4262
4328
  },
4329
+ // Off by default: the changelog capitalizes the subject anyway, and names
4330
+ // such as "MazChart" are legitimate
4263
4331
  "subject-case": {
4264
- severity: "error",
4332
+ severity: "off",
4265
4333
  conventionalOnly: true,
4266
4334
  check: ({ commit }) => (
4267
4335
  // An uppercase first letter followed by a non uppercase one: acronyms ("API ...") are fine
@@ -4333,7 +4401,7 @@ const BUILT_IN_RULES = {
4333
4401
  if (!entry) {
4334
4402
  return [];
4335
4403
  }
4336
- const linter = await getChangelogLinter(config.cwd);
4404
+ const linter = await getChangelogLinter(config.cwd, config.commitlint?.codeBlocksLinter);
4337
4405
  const problems = await linter.lint(`# Changelog
4338
4406
 
4339
4407
  ## v0.0.0
@@ -4534,7 +4602,8 @@ async function getSuggestion(message, result, options, allowedScopes) {
4534
4602
  if (!errors.some((rule) => HEADER_RULES.has(rule))) {
4535
4603
  return void 0;
4536
4604
  }
4537
- const header = suggestHeader(result.commit.header, { types: Object.keys(options.config.types ?? {}), allowedScopes });
4605
+ const lowercaseSubject = errors.includes("subject-case");
4606
+ const header = suggestHeader(result.commit.header, { types: Object.keys(options.config.types ?? {}), allowedScopes, lowercaseSubject });
4538
4607
  if (!header) {
4539
4608
  return void 0;
4540
4609
  }
@@ -9188,4 +9257,4 @@ async function release(options = {}) {
9188
9257
  }
9189
9258
  }
9190
9259
 
9191
- export { formatGithubAnnotations as $, detectPackageManager as A, BUILT_IN_RULES as B, COMMITLINT_RULES_URL as C, detectPullRequest as D, determinePublishTag as E, determineReleaseType as F, determineSemverChange as G, executeBuildCmd as H, executeFormatCmd as I, executeHook as J, expandPackagesToBumpWithDependents as K, extractChangelogSummary as L, extractVersionFromPackageTag$1 as M, NEW_PACKAGE_MARKER as N, extractVersionFromRepoTag as O, PR_COMMENT_MARKER as P, extractVersionFromTag as Q, fetchGitTags as R, SLACK_HEADER_MAX_LENGTH as S, filterOutPrivatePackages as T, filterPrivatePackagesUnlessIncluded as U, findGitHubPR as V, findGitLabMR as W, findPackageByScope as X, findReachableCommitBySubject as Y, formatChangelogForSlack as Z, formatCommitResult as _, SLACK_MAX_BLOCKS as a, isAncestor as a$, formatHowToFix as a0, formatJsonReport as a1, formatPackagesForSlack as a2, formatReleaseEffect as a3, formatSlackMessage as a4, formatTextReport as a5, formatTweetMessage as a6, generateChangelog as a7, generateMarkDown as a8, getAllowedScopes as a9, getNewPackageCompareBase as aA, getNpmRegistry as aB, getPackageCommits as aC, getPackageDependencies as aD, getPackageNewVersion as aE, getPackages as aF, getPackagesOfFiles as aG, getPackagesOrBumpedPackages as aH, getPackagesToPublishInIndependentMode as aI, getPackagesToPublishInSelectiveMode as aJ, getPreid as aK, getPullRequestTitle as aL, getReleaseTagNames as aM, getReleaseUrl as aN, getRootPackage as aO, getShortCommitSha as aP, getSlackToken as aQ, getSlackWebhookUrl as aR, getStagedFiles as aS, getTwitterCredentials as aT, getWorkspacePackages as aU, github as aV, gitlab as aW, globDirsAbsolute as aX, hasLernaJson as aY, installCommitMsgHook as aZ, isAllowedCommit as a_, getAuthCommand as aa, getBumpedIndependentPackages as ab, getBumpedPackageIndependently as ac, getCIName as ad, getCanaryVersion as ae, getChangelogLinter as af, getChangelogTitle as ag, getCommentChar as ah, getCommitChangedFiles as ai, getCommitMessageFile as aj, getCommitSubject as ak, getCommitsInRange as al, getCurrentGitBranch as am, getCurrentGitRef as an, getDefaultConfig as ao, getDependentsOf as ap, getFirstCommit as aq, getGitDiff as ar, getGitStatus as as, getGitUpstream as at, getIndependentTag as au, getLastPackageTag as av, getLastRepoTag as aw, getLastStableTag as ax, getLastTag as ay, getModifiedReleaseFilePatterns as az, SLACK_RICH_TEXT_BLOCK_MAX_LENGTH as b, withRegistryNpmrc as b$, isBumpedPackage as b0, isChangedPreid as b1, isCommitOnlyInIgnoredPackages as b2, isGraduating as b3, isGraduatingToStableBetweenVersion as b4, isIgnoredCommitMessage as b5, isInCI as b6, isPrerelease as b7, isPrereleaseReleaseType as b8, isStableReleaseType as b9, reconcileFromTag as bA, redactSecrets as bB, release as bC, renderChangelogEntry as bD, resetRewrittenTagCache as bE, resolveAllConfiguredRegistryTargets as bF, resolveDefaultRangeStart as bG, resolveIgnoredPackagePaths as bH, resolveRegistryTargetsForPackage as bI, resolveRegistryTargetsForPackages as bJ, resolveSlackPostMaxLength as bK, resolveTags as bL, retagAnnotatedLocal as bM, richTextToPlainText as bN, rollbackModifiedFiles as bO, shouldFilterPrereleaseTags as bP, shouldUseColors as bQ, sliceSlackText as bR, social as bS, socialSafetyCheck as bT, splitCommitMessage as bU, stripGitComments as bV, summarizeResults as bW, tagExists as bX, topologicalSort as bY, tryPostPrComment as bZ, updateLernaVersion as b_, isTagVersionCompatibleWithCurrent as ba, isVersionAlreadyPublishedError as bb, isVersionPublished as bc, lintCommitMessage as bd, listTags as be, loadRelizyConfig as bf, markdownToSlackMrkdwn as bg, markdownToSlackRichText as bh, mergeTypes as bi, normalizeRuleConfig as bj, parseChangelogMarkdown as bk, parseGitRemoteUrl as bl, postPrComment as bm, postReleaseToSlack as bn, postReleaseToTwitter as bo, prComment as bp, providerRelease as bq, providerReleaseSafetyCheck as br, publish as bs, publishPackage as bt, publishSafetyCheck as bu, pushCommitAndTags as bv, pushTagForce as bw, readCommitMessageFile as bx, readPackageJson as by, readPackages as bz, SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH as c, writeChangelogToFile as c0, writeVersion as c1, SLACK_SECTION_MAX_LENGTH as d, SLACK_SUMMARY_MAX_LENGTH as e, STRICT_HEADER_PATTERN as f, assertBranchUpToDateWithRemote as g, assertRefAvailable as h, assertReleaseTagsAvailable as i, buildChangelogBody as j, buildCommentBody as k, buildCompareLink as l, buildContributors as m, buildReleaseSummary as n, bump as o, capReleaseTypeForZeroMajor as p, changelog as q, checkGitStatusIfDirty as r, collectContributorNames as s, collectPackageBumps as t, commitlint as u, confirmBump as v, createCommitAndTags as w, createGitlabRelease as x, defineConfig as y, detectGitProvider as z };
9260
+ export { formatGithubAnnotations as $, detectPackageManager as A, BUILT_IN_RULES as B, COMMITLINT_RULES_URL as C, detectPullRequest as D, determinePublishTag as E, determineReleaseType as F, determineSemverChange as G, executeBuildCmd as H, executeFormatCmd as I, executeHook as J, expandPackagesToBumpWithDependents as K, extractChangelogSummary as L, extractVersionFromPackageTag$1 as M, NEW_PACKAGE_MARKER as N, extractVersionFromRepoTag as O, PR_COMMENT_MARKER as P, extractVersionFromTag as Q, fetchGitTags as R, SLACK_HEADER_MAX_LENGTH as S, filterOutPrivatePackages as T, filterPrivatePackagesUnlessIncluded as U, findGitHubPR as V, findGitLabMR as W, findPackageByScope as X, findReachableCommitBySubject as Y, formatChangelogForSlack as Z, formatCommitResult as _, SLACK_MAX_BLOCKS as a, isAllowedCommit as a$, formatHowToFix as a0, formatJsonReport as a1, formatPackagesForSlack as a2, formatReleaseEffect as a3, formatSlackMessage as a4, formatTextReport as a5, formatTweetMessage as a6, generateChangelog as a7, generateMarkDown as a8, getAllowedScopes as a9, getNewPackageCompareBase as aA, getNpmRegistry as aB, getPackageCommits as aC, getPackageDependencies as aD, getPackageManagerWorkspaces as aE, getPackageNewVersion as aF, getPackages as aG, getPackagesOfFiles as aH, getPackagesOrBumpedPackages as aI, getPackagesToPublishInIndependentMode as aJ, getPackagesToPublishInSelectiveMode as aK, getPreid as aL, getPullRequestTitle as aM, getReleaseTagNames as aN, getReleaseUrl as aO, getRootPackage as aP, getShortCommitSha as aQ, getSlackToken as aR, getSlackWebhookUrl as aS, getStagedFiles as aT, getTwitterCredentials as aU, getWorkspacePackages as aV, github as aW, gitlab as aX, globDirsAbsolute as aY, hasLernaJson as aZ, installCommitMsgHook as a_, getAuthCommand as aa, getBumpedIndependentPackages as ab, getBumpedPackageIndependently as ac, getCIName as ad, getCanaryVersion as ae, getChangelogLinter as af, getChangelogTitle as ag, getCommentChar as ah, getCommitChangedFiles as ai, getCommitMessageFile as aj, getCommitSubject as ak, getCommitsInRange as al, getCurrentGitBranch as am, getCurrentGitRef as an, getDefaultConfig as ao, getDependentsOf as ap, getFirstCommit as aq, getGitDiff as ar, getGitStatus as as, getGitUpstream as at, getIndependentTag as au, getLastPackageTag as av, getLastRepoTag as aw, getLastStableTag as ax, getLastTag as ay, getModifiedReleaseFilePatterns as az, SLACK_RICH_TEXT_BLOCK_MAX_LENGTH as b, updateLernaVersion as b$, isAncestor as b0, isBumpedPackage as b1, isChangedPreid as b2, isCommitOnlyInIgnoredPackages as b3, isGraduating as b4, isGraduatingToStableBetweenVersion as b5, isIgnoredCommitMessage as b6, isInCI as b7, isPrerelease as b8, isPrereleaseReleaseType as b9, readPackages as bA, reconcileFromTag as bB, redactSecrets as bC, release as bD, renderChangelogEntry as bE, resetRewrittenTagCache as bF, resolveAllConfiguredRegistryTargets as bG, resolveDefaultRangeStart as bH, resolveIgnoredPackagePaths as bI, resolveRegistryTargetsForPackage as bJ, resolveRegistryTargetsForPackages as bK, resolveSlackPostMaxLength as bL, resolveTags as bM, retagAnnotatedLocal as bN, richTextToPlainText as bO, rollbackModifiedFiles as bP, shouldFilterPrereleaseTags as bQ, shouldUseColors as bR, sliceSlackText as bS, social as bT, socialSafetyCheck as bU, splitCommitMessage as bV, stripGitComments as bW, summarizeResults as bX, tagExists as bY, topologicalSort as bZ, tryPostPrComment as b_, isStableReleaseType as ba, isTagVersionCompatibleWithCurrent as bb, isVersionAlreadyPublishedError as bc, isVersionPublished as bd, lintCommitMessage as be, listTags as bf, loadRelizyConfig as bg, markdownToSlackMrkdwn as bh, markdownToSlackRichText as bi, mergeTypes as bj, normalizeRuleConfig as bk, parseChangelogMarkdown as bl, parseGitRemoteUrl as bm, postPrComment as bn, postReleaseToSlack as bo, postReleaseToTwitter as bp, prComment as bq, providerRelease as br, providerReleaseSafetyCheck as bs, publish as bt, publishPackage as bu, publishSafetyCheck as bv, pushCommitAndTags as bw, pushTagForce as bx, readCommitMessageFile as by, readPackageJson as bz, SLACK_RICH_TEXT_MESSAGE_MAX_LENGTH as c, withRegistryNpmrc as c0, writeChangelogToFile as c1, writeVersion as c2, SLACK_SECTION_MAX_LENGTH as d, SLACK_SUMMARY_MAX_LENGTH as e, STRICT_HEADER_PATTERN as f, assertBranchUpToDateWithRemote as g, assertRefAvailable as h, assertReleaseTagsAvailable as i, buildChangelogBody as j, buildCommentBody as k, buildCompareLink as l, buildContributors as m, buildReleaseSummary as n, bump as o, capReleaseTypeForZeroMajor as p, changelog as q, checkGitStatusIfDirty as r, collectContributorNames as s, collectPackageBumps as t, commitlint as u, confirmBump as v, createCommitAndTags as w, createGitlabRelease as x, defineConfig as y, detectGitProvider as z };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "relizy",
3
3
  "type": "module",
4
- "version": "1.10.0",
4
+ "version": "1.11.0",
5
5
  "description": "Changelogen adapter for monorepo management with unified and independent versioning",
6
6
  "author": "Louis Mazel <me@loicmazuel.com>",
7
7
  "license": "MIT",
@@ -81,6 +81,7 @@
81
81
  "c12": "^3.3.3",
82
82
  "changelogen": "^0.6.2",
83
83
  "commander": "^15.0.0",
84
+ "confbox": "^0.2.4",
84
85
  "convert-gitmoji": "^0.1.5",
85
86
  "defu": "6.1.7",
86
87
  "fast-glob": "^3.3.2",