relizy 1.3.1 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,7 +23,7 @@
23
23
  </a>
24
24
  </p>
25
25
 
26
- <a href="https://louismazel.github.io/relizy/">Documentation</a>
26
+ <a href="https://relizy.pages.dev">Documentation</a>
27
27
 
28
28
  </div>
29
29
 
@@ -61,7 +61,7 @@ Imagine you have multiple packages in your project (like a box with several toys
61
61
 
62
62
  ## 📚 Documentation
63
63
 
64
- You can [find the documentation here](https://louismazel.github.io/relizy/).
64
+ You can [find the documentation here](https://relizy.pages.dev).
65
65
 
66
66
  ## 📦 Installation
67
67
 
@@ -140,7 +140,7 @@ relizy release --minor # Automatically posts to configured social channels
140
140
 
141
141
  This README covers the basics to get you started quickly. For detailed documentation, configuration options, and advanced features, visit our full documentation:
142
142
 
143
- **[📚 Full Documentation](https://louismazel.github.io/relizy/)**
143
+ **[📚 Full Documentation](https://relizy.pages.dev)**
144
144
 
145
145
  Topics covered in the documentation:
146
146
 
@@ -201,7 +201,7 @@ relizy release --patch --no-provider-release
201
201
  relizy release --patch --no-publish --no-push
202
202
  ```
203
203
 
204
- For detailed CLI reference, configuration options, and advanced features, check out the [full documentation](https://louismazel.github.io/relizy/).
204
+ For detailed CLI reference, configuration options, and advanced features, check out the [full documentation](https://relizy.pages.dev).
205
205
 
206
206
  ## 🧑‍💻 Development & Contributing
207
207
 
package/dist/cli.mjs CHANGED
@@ -5,7 +5,7 @@ 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 } from 'commander';
8
- import { al as isInCI, am as getCIName, b as bump, c as changelog, g as publish, e as providerRelease, h as social, p as prComment, r as release } from './shared/relizy.DPLg_yCE.mjs';
8
+ import { am as isInCI, an as getCIName, b as bump, c as changelog, g as publish, e as providerRelease, h as social, p as prComment, r as release } from './shared/relizy.BRFiG2GH.mjs';
9
9
  import 'node:child_process';
10
10
  import '@maz-ui/utils';
11
11
  import 'c12';
package/dist/index.d.mts CHANGED
@@ -67,6 +67,12 @@ declare function getDefaultConfig(): {
67
67
  logLevel: LogLevel;
68
68
  safetyCheck: boolean;
69
69
  };
70
+ /**
71
+ * Merge user types with defaults: each user-defined entry replaces the default entirely.
72
+ * This prevents defu's deep merge from adding default sub-properties
73
+ * the user intentionally omitted (e.g. `docs: { title: '...' }` without `semver`).
74
+ */
75
+ declare function mergeTypes<T extends Record<string, unknown>>(userTypes: T | undefined, defaultTypes: T): T;
70
76
  declare function loadRelizyConfig(options?: {
71
77
  baseConfig?: ResolvedRelizyConfig;
72
78
  overrides?: DeepPartial<RelizyConfig>;
@@ -1613,7 +1619,7 @@ type HookConfig = {
1613
1619
  };
1614
1620
  /**
1615
1621
  * Relizy configuration
1616
- * @see https://louismazel.github.io/relizy/config/overview
1622
+ * @see https://relizy.pages.dev/config/overview
1617
1623
  */
1618
1624
  interface RelizyConfig extends Partial<Omit<ChangelogConfig$1, 'output' | 'templates' | 'publish' | 'types' | 'tokens'>> {
1619
1625
  /**
@@ -1748,5 +1754,5 @@ declare function socialSafetyCheck({ config }: {
1748
1754
  }): Promise<void>;
1749
1755
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
1750
1756
 
1751
- export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1757
+ export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, mergeTypes, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1752
1758
  export type { AIConfig, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogOptions, ClaudeCodeProviderOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, PackageBase, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, ReadPackage, Reference, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, SlackCredentials, SlackOptions, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
package/dist/index.d.ts CHANGED
@@ -67,6 +67,12 @@ declare function getDefaultConfig(): {
67
67
  logLevel: LogLevel;
68
68
  safetyCheck: boolean;
69
69
  };
70
+ /**
71
+ * Merge user types with defaults: each user-defined entry replaces the default entirely.
72
+ * This prevents defu's deep merge from adding default sub-properties
73
+ * the user intentionally omitted (e.g. `docs: { title: '...' }` without `semver`).
74
+ */
75
+ declare function mergeTypes<T extends Record<string, unknown>>(userTypes: T | undefined, defaultTypes: T): T;
70
76
  declare function loadRelizyConfig(options?: {
71
77
  baseConfig?: ResolvedRelizyConfig;
72
78
  overrides?: DeepPartial<RelizyConfig>;
@@ -1613,7 +1619,7 @@ type HookConfig = {
1613
1619
  };
1614
1620
  /**
1615
1621
  * Relizy configuration
1616
- * @see https://louismazel.github.io/relizy/config/overview
1622
+ * @see https://relizy.pages.dev/config/overview
1617
1623
  */
1618
1624
  interface RelizyConfig extends Partial<Omit<ChangelogConfig$1, 'output' | 'templates' | 'publish' | 'types' | 'tokens'>> {
1619
1625
  /**
@@ -1748,5 +1754,5 @@ declare function socialSafetyCheck({ config }: {
1748
1754
  }): Promise<void>;
1749
1755
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
1750
1756
 
1751
- export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1757
+ export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, formatChangelogForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getTwitterCredentials, github, gitlab, hasLernaJson, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, mergeTypes, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, readPackageJson, readPackages, release, resolveTags, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1752
1758
  export type { AIConfig, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogOptions, ClaudeCodeProviderOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, PackageBase, PackageManager, PostedRelease, PrCommentConfig, PrCommentMode, PrCommentOptions, PrCommentStatus, ProviderReleaseOptions, ProviderReleaseResult, PublishConfig, PublishOptions, PublishResponse, PullRequestInfo, ReadPackage, Reference, ReleaseConfig, ReleaseContext, ReleaseOptions, RelizyConfig, RepoConfig, ResolvedConfig, ResolvedRelizyConfig, ResolvedTags, ResolvedTwitterCredentials, RootPackage, SlackCredentials, SlackOptions, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { af as NEW_PACKAGE_MARKER, Y as PR_COMMENT_MARKER, L as buildChangelogBody, a as buildCommentBody, K as buildCompareLink, M as buildContributors, b as bump, at as capReleaseTypeForZeroMajor, c as changelog, u as checkGitStatusIfDirty, aH as confirmBump, A as createCommitAndTags, I as createGitlabRelease, k as defineConfig, x as detectGitProvider, P as detectPackageManager, X as detectPullRequest, Q as determinePublishTag, av as determineReleaseType, au as determineSemverChange, ao as executeBuildCmd, an as executeFormatCmd, ak as executeHook, o as expandPackagesToBumpWithDependents, a8 as extractChangelogSummary, az as extractVersionFromPackageTag, aK as extractVersionFromTag, v as fetchGitTags, aq as filterOutPrivatePackages, V as findGitHubPR, W as findGitLabMR, a5 as formatChangelogForSlack, a6 as formatSlackMessage, ai as formatTweetMessage, i as generateChangelog, N as generateMarkDown, T as getAuthCommand, aI as getBumpedIndependentPackages, aG as getBumpedPackageIndependently, am as getCIName, aL as getCanaryVersion, E as getCurrentGitBranch, F as getCurrentGitRef, j as getDefaultConfig, n as getDependentsOf, D as getFirstCommit, q as getGitStatus, aa as getIndependentTag, ae as getLastPackageTag, ad as getLastRepoTag, ab as getLastStableTag, ac as getLastTag, z as getModifiedReleaseFilePatterns, a2 as getPackageCommits, m as getPackageDependencies, ax as getPackageNewVersion, a1 as getPackages, ar as getPackagesOrBumpedPackages, S as getPackagesToPublishInIndependentMode, R as getPackagesToPublishInSelectiveMode, aE as getPreid, a9 as getReleaseUrl, $ as getRootPackage, G as getShortCommitSha, a4 as getSlackToken, ah as getTwitterCredentials, H as github, J as gitlab, a3 as hasLernaJson, ap as isBumpedPackage, aF as isChangedPreid, aD as isGraduating, as as isGraduatingToStableBetweenVersion, al as isInCI, aA as isPrerelease, aC as isPrereleaseReleaseType, aB as isStableReleaseType, aM as isTagVersionCompatibleWithCurrent, l as loadRelizyConfig, O as parseChangelogMarkdown, y as parseGitRemoteUrl, Z as postPrComment, a7 as postReleaseToSlack, aj as postReleaseToTwitter, p as prComment, e as providerRelease, d as providerReleaseSafetyCheck, g as publish, U as publishPackage, f as publishSafetyCheck, B as pushCommitAndTags, _ as readPackageJson, a0 as readPackages, r as release, ag as resolveTags, C as rollbackModifiedFiles, aJ as shouldFilterPrereleaseTags, h as social, s as socialSafetyCheck, t as topologicalSort, ay as updateLernaVersion, w as writeChangelogToFile, aw as writeVersion } from './shared/relizy.DPLg_yCE.mjs';
1
+ export { ag as NEW_PACKAGE_MARKER, Z as PR_COMMENT_MARKER, M as buildChangelogBody, a as buildCommentBody, L as buildCompareLink, N as buildContributors, b as bump, au as capReleaseTypeForZeroMajor, c as changelog, v as checkGitStatusIfDirty, aI as confirmBump, B as createCommitAndTags, J as createGitlabRelease, k as defineConfig, y as detectGitProvider, Q as detectPackageManager, Y as detectPullRequest, R as determinePublishTag, aw as determineReleaseType, av as determineSemverChange, ap as executeBuildCmd, ao as executeFormatCmd, al as executeHook, q as expandPackagesToBumpWithDependents, a9 as extractChangelogSummary, aA as extractVersionFromPackageTag, aL as extractVersionFromTag, x as fetchGitTags, ar as filterOutPrivatePackages, W as findGitHubPR, X as findGitLabMR, a6 as formatChangelogForSlack, a7 as formatSlackMessage, aj as formatTweetMessage, i as generateChangelog, O as generateMarkDown, U as getAuthCommand, aJ as getBumpedIndependentPackages, aH as getBumpedPackageIndependently, an as getCIName, aM as getCanaryVersion, F as getCurrentGitBranch, G as getCurrentGitRef, j as getDefaultConfig, o as getDependentsOf, E as getFirstCommit, u as getGitStatus, ab as getIndependentTag, af as getLastPackageTag, ae as getLastRepoTag, ac as getLastStableTag, ad as getLastTag, A as getModifiedReleaseFilePatterns, a3 as getPackageCommits, n as getPackageDependencies, ay as getPackageNewVersion, a2 as getPackages, as as getPackagesOrBumpedPackages, T as getPackagesToPublishInIndependentMode, S as getPackagesToPublishInSelectiveMode, aF as getPreid, aa as getReleaseUrl, a0 as getRootPackage, H as getShortCommitSha, a5 as getSlackToken, ai as getTwitterCredentials, I as github, K as gitlab, a4 as hasLernaJson, aq as isBumpedPackage, aG as isChangedPreid, aE as isGraduating, at as isGraduatingToStableBetweenVersion, am as isInCI, aB as isPrerelease, aD as isPrereleaseReleaseType, aC as isStableReleaseType, aN as isTagVersionCompatibleWithCurrent, l as loadRelizyConfig, m as mergeTypes, P as parseChangelogMarkdown, z as parseGitRemoteUrl, _ as postPrComment, a8 as postReleaseToSlack, ak as postReleaseToTwitter, p as prComment, e as providerRelease, d as providerReleaseSafetyCheck, g as publish, V as publishPackage, f as publishSafetyCheck, C as pushCommitAndTags, $ as readPackageJson, a1 as readPackages, r as release, ah as resolveTags, D as rollbackModifiedFiles, aK as shouldFilterPrereleaseTags, h as social, s as socialSafetyCheck, t as topologicalSort, az as updateLernaVersion, w as writeChangelogToFile, ax as writeVersion } from './shared/relizy.BRFiG2GH.mjs';
2
2
  import '@maz-ui/node';
3
3
  import 'node:child_process';
4
4
  import 'node:process';
@@ -1972,20 +1972,34 @@ async function resolveConfig(config, cwd) {
1972
1972
  }
1973
1973
  return config;
1974
1974
  }
1975
+ function mergeTypes(userTypes, defaultTypes) {
1976
+ if (!userTypes) {
1977
+ return { ...defaultTypes };
1978
+ }
1979
+ return {
1980
+ ...defaultTypes,
1981
+ ...userTypes
1982
+ };
1983
+ }
1975
1984
  async function loadRelizyConfig(options) {
1976
1985
  const cwd = options?.overrides?.cwd ?? process$1.cwd();
1977
1986
  await setupDotenv({ cwd });
1978
1987
  const configFile = options?.configFile ?? "relizy";
1979
1988
  const defaultConfig = getDefaultConfig();
1989
+ const { types: defaultTypes, ...defaultsWithoutTypes } = defaultConfig;
1980
1990
  const overridesConfig = defu(options?.overrides, options?.baseConfig);
1981
1991
  const results = await loadConfig({
1982
1992
  dotenv: true,
1983
1993
  cwd,
1984
1994
  name: configFile,
1985
1995
  packageJson: true,
1986
- defaults: defaultConfig,
1996
+ defaults: defaultsWithoutTypes,
1987
1997
  overrides: overridesConfig
1988
1998
  });
1999
+ results.config.types = mergeTypes(
2000
+ results.config.types,
2001
+ defaultTypes
2002
+ );
1989
2003
  if (typeof results._configFile !== "string") {
1990
2004
  logger.debug(`No config file found with name "${configFile}"`);
1991
2005
  if (options?.configFile) {
@@ -2624,24 +2638,25 @@ The user message contains a markdown changelog built from conventional commits,
2624
2638
  Never ask for clarification. Never reply with questions, greetings, or meta-commentary. Your only output is the rewritten changelog content.
2625
2639
  Never invent changes that are not in the input \u2014 if something is not mentioned, it does not exist.
2626
2640
  Never include compare links, contributor lists, or release metadata \u2014 only the content provided.
2627
- Preserve exactly as given: PR and issue references like #123, commit hashes, commit scopes like **auth:**, and all markdown links.
2628
2641
  Respond with the rewritten content only \u2014 no preamble, no explanation, no surrounding code fence, no <changelog> tag.
2629
2642
  Output language: {{language}}.`;
2630
2643
  const PROVIDER_RELEASE_PROMPT = `Format the output as markdown with "### <Type>" sections matching the input (Features, Bug Fixes, etc.).
2631
2644
  Merge redundant items that describe the same change.
2632
- Rewrite each bullet for end-user clarity \u2014 not "fix: typo in var name" but "Fixed X".
2633
- Preserve the \u26A0\uFE0F marker on breaking items and keep the "#### \u26A0\uFE0F Breaking Changes" section if present.
2645
+ Rewrite each bullet for end-user clarity \u2014 focus on what changed for the user, not internal details.
2646
+ Preserve exactly as given: PR and issue references like #123, commit hashes, commit scopes like **auth:**, and all markdown links.
2647
+ Preserve the \u26A0\uFE0F marker on breaking items and the "#### \u26A0\uFE0F Breaking Changes" section if present.
2634
2648
  Purely internal commits (chore, refactor with no user-visible impact) may be dropped unless they carry meaningful information.
2635
2649
  Tone: professional, concise, public-facing release notes.`;
2636
2650
  const TWITTER_PROMPT = `Output plain text \u2014 no markdown. A leading "#" becomes a hashtag on Twitter, so avoid it.
2637
- Hard maximum: {{maxLength}} characters. Never exceed it. Don't count characters \u2014 just stay concise.
2651
+ Hard maximum: {{maxLength}} characters \u2014 never exceed it.
2652
+ Remove commit hashes (e.g. "aabf96b") and PR/issue references (e.g. "#123") \u2014 they are meaningless on Twitter.
2638
2653
  If the input has one change, write one substantive sentence about it (ground it in the input, never invent).
2639
2654
  If the input has multiple changes, surface 2 to 4 highlights.
2640
2655
  You produce ONLY the changelog content \u2014 the outer template will add the project name, version, and URLs around it.
2641
2656
  Tone: enthusiastic but not cringy. At most 1-2 emojis total.
2642
2657
  Do not add hashtags unless the user explicitly supplies them.`;
2643
2658
  const SLACK_PROMPT = `Format with Slack-compatible markdown: *bold*, _italic_, \`code\`, and "-" bullet lists.
2644
- Keep it synthetic \u2014 3 to 8 bullets maximum.
2659
+ Keep it concise \u2014 3 to 8 bullets maximum.
2645
2660
  If any breaking changes are present, lead with them.
2646
2661
  Tone: factual, oriented toward an internal team audience.`;
2647
2662
 
@@ -3959,7 +3974,28 @@ ${message}`);
3959
3974
  logger.error("Twitter API dependency not found. Please install it with: pnpm add twitter-api-v2");
3960
3975
  throw new Error("Missing dependency: twitter-api-v2. Install it with: pnpm add twitter-api-v2", { cause: error });
3961
3976
  }
3977
+ const httpCode = error?.code;
3978
+ const apiData = error?.data;
3979
+ const apiErrors = error?.errors;
3980
+ const rateLimit = error?.rateLimit;
3962
3981
  logger.error("Failed to post tweet:", error.message || error);
3982
+ if (httpCode) {
3983
+ logger.error(`HTTP code: ${httpCode}`);
3984
+ }
3985
+ if (apiData) {
3986
+ logger.error("Twitter response body:", JSON.stringify(apiData, null, 2));
3987
+ }
3988
+ if (apiErrors) {
3989
+ logger.error("Twitter errors:", JSON.stringify(apiErrors, null, 2));
3990
+ }
3991
+ if (rateLimit) {
3992
+ logger.error("Rate limit info:", JSON.stringify(rateLimit, null, 2));
3993
+ }
3994
+ if (httpCode === 402) {
3995
+ logger.warn(
3996
+ "Twitter/X returned 402 (Payment Required \u2014 likely `CreditsDepleted`).\nSince February 2026, the X API runs on a pay-per-use model \u2014 there is no free tier anymore.\nEach POST /2/tweets costs $0.010, debited from credits you top up in advance.\nTop up your balance at https://developer.x.com \u2192 Billing, then retry.\nReference: https://docs.x.com/x-api/getting-started/pricing"
3997
+ );
3998
+ }
3963
3999
  throw error;
3964
4000
  }
3965
4001
  }
@@ -4890,7 +4926,7 @@ async function providerReleaseSafetyCheck({ config, provider }) {
4890
4926
  throw new Error(`Unsupported Git provider: ${internalProvider || "unknown"}`);
4891
4927
  }
4892
4928
  if (!token) {
4893
- throw new Error(`No token provided for ${internalProvider} - The release will not be published - Please refer to the documentation: https://louismazel.github.io/relizy/guide/installation#environment-setup`);
4929
+ throw new Error(`No token provided for ${internalProvider} - The release will not be published - Please refer to the documentation: https://relizy.pages.dev/guide/installation#environment-setup`);
4894
4930
  }
4895
4931
  if (isAIProviderReleaseEnabled(config)) {
4896
4932
  await aiSafetyCheck({ config });
@@ -5782,4 +5818,4 @@ Git provider: ${provider}`);
5782
5818
  }
5783
5819
  }
5784
5820
 
5785
- export { getRootPackage as $, createCommitAndTags as A, pushCommitAndTags as B, rollbackModifiedFiles as C, getFirstCommit as D, getCurrentGitBranch as E, getCurrentGitRef as F, getShortCommitSha as G, github as H, createGitlabRelease as I, gitlab as J, buildCompareLink as K, buildChangelogBody as L, buildContributors as M, generateMarkDown as N, parseChangelogMarkdown as O, detectPackageManager as P, determinePublishTag as Q, getPackagesToPublishInSelectiveMode as R, getPackagesToPublishInIndependentMode as S, getAuthCommand as T, publishPackage as U, findGitHubPR as V, findGitLabMR as W, detectPullRequest as X, PR_COMMENT_MARKER as Y, postPrComment as Z, readPackageJson as _, buildCommentBody as a, readPackages as a0, getPackages as a1, getPackageCommits as a2, hasLernaJson as a3, getSlackToken as a4, formatChangelogForSlack as a5, formatSlackMessage as a6, postReleaseToSlack as a7, extractChangelogSummary as a8, getReleaseUrl as a9, isPrerelease as aA, isStableReleaseType as aB, isPrereleaseReleaseType as aC, isGraduating as aD, getPreid as aE, isChangedPreid as aF, getBumpedPackageIndependently as aG, confirmBump as aH, getBumpedIndependentPackages as aI, shouldFilterPrereleaseTags as aJ, extractVersionFromTag as aK, getCanaryVersion as aL, isTagVersionCompatibleWithCurrent as aM, getIndependentTag as aa, getLastStableTag as ab, getLastTag as ac, getLastRepoTag as ad, getLastPackageTag as ae, NEW_PACKAGE_MARKER as af, resolveTags as ag, getTwitterCredentials as ah, formatTweetMessage as ai, postReleaseToTwitter as aj, executeHook as ak, isInCI as al, getCIName as am, executeFormatCmd as an, executeBuildCmd as ao, isBumpedPackage as ap, filterOutPrivatePackages as aq, getPackagesOrBumpedPackages as ar, isGraduatingToStableBetweenVersion as as, capReleaseTypeForZeroMajor as at, determineSemverChange as au, determineReleaseType as av, writeVersion as aw, getPackageNewVersion as ax, updateLernaVersion as ay, extractVersionFromPackageTag as az, bump as b, changelog as c, providerReleaseSafetyCheck as d, providerRelease as e, publishSafetyCheck as f, publish as g, social as h, generateChangelog as i, getDefaultConfig as j, defineConfig as k, loadRelizyConfig as l, getPackageDependencies as m, getDependentsOf as n, expandPackagesToBumpWithDependents as o, prComment as p, getGitStatus as q, release as r, socialSafetyCheck as s, topologicalSort as t, checkGitStatusIfDirty as u, fetchGitTags as v, writeChangelogToFile as w, detectGitProvider as x, parseGitRemoteUrl as y, getModifiedReleaseFilePatterns as z };
5821
+ export { readPackageJson as $, getModifiedReleaseFilePatterns as A, createCommitAndTags as B, pushCommitAndTags as C, rollbackModifiedFiles as D, getFirstCommit as E, getCurrentGitBranch as F, getCurrentGitRef as G, getShortCommitSha as H, github as I, createGitlabRelease as J, gitlab as K, buildCompareLink as L, buildChangelogBody as M, buildContributors as N, generateMarkDown as O, parseChangelogMarkdown as P, detectPackageManager as Q, determinePublishTag as R, getPackagesToPublishInSelectiveMode as S, getPackagesToPublishInIndependentMode as T, getAuthCommand as U, publishPackage as V, findGitHubPR as W, findGitLabMR as X, detectPullRequest as Y, PR_COMMENT_MARKER as Z, postPrComment as _, buildCommentBody as a, getRootPackage as a0, readPackages as a1, getPackages as a2, getPackageCommits as a3, hasLernaJson as a4, getSlackToken as a5, formatChangelogForSlack as a6, formatSlackMessage as a7, postReleaseToSlack as a8, extractChangelogSummary as a9, extractVersionFromPackageTag as aA, isPrerelease as aB, isStableReleaseType as aC, isPrereleaseReleaseType as aD, isGraduating as aE, getPreid as aF, isChangedPreid as aG, getBumpedPackageIndependently as aH, confirmBump as aI, getBumpedIndependentPackages as aJ, shouldFilterPrereleaseTags as aK, extractVersionFromTag as aL, getCanaryVersion as aM, isTagVersionCompatibleWithCurrent as aN, getReleaseUrl as aa, getIndependentTag as ab, getLastStableTag as ac, getLastTag as ad, getLastRepoTag as ae, getLastPackageTag as af, NEW_PACKAGE_MARKER as ag, resolveTags as ah, getTwitterCredentials as ai, formatTweetMessage as aj, postReleaseToTwitter as ak, executeHook as al, isInCI as am, getCIName as an, executeFormatCmd as ao, executeBuildCmd as ap, isBumpedPackage as aq, filterOutPrivatePackages as ar, getPackagesOrBumpedPackages as as, isGraduatingToStableBetweenVersion as at, capReleaseTypeForZeroMajor as au, determineSemverChange as av, determineReleaseType as aw, writeVersion as ax, getPackageNewVersion as ay, updateLernaVersion as az, bump as b, changelog as c, providerReleaseSafetyCheck as d, providerRelease as e, publishSafetyCheck as f, publish as g, social as h, generateChangelog as i, getDefaultConfig as j, defineConfig as k, loadRelizyConfig as l, mergeTypes as m, getPackageDependencies as n, getDependentsOf as o, prComment as p, expandPackagesToBumpWithDependents as q, release as r, socialSafetyCheck as s, topologicalSort as t, getGitStatus as u, checkGitStatusIfDirty as v, writeChangelogToFile as w, fetchGitTags as x, detectGitProvider as y, parseGitRemoteUrl as z };
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "relizy",
3
3
  "type": "module",
4
- "version": "1.3.1",
4
+ "version": "1.3.3",
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",
8
- "homepage": "https://louismazel.github.io/relizy",
8
+ "homepage": "https://relizy.pages.dev",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git+https://github.com/LouisMazel/relizy.git"