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 +4 -4
- package/dist/cli.mjs +1 -1
- package/dist/index.d.mts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.mjs +1 -1
- package/dist/shared/{relizy.DPLg_yCE.mjs → relizy.BRFiG2GH.mjs} +44 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
</a>
|
|
24
24
|
</p>
|
|
25
25
|
|
|
26
|
-
<a href="https://
|
|
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://
|
|
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://
|
|
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://
|
|
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 {
|
|
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://
|
|
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://
|
|
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 {
|
|
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:
|
|
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
|
|
2633
|
-
Preserve
|
|
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
|
|
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
|
|
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://
|
|
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 {
|
|
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.
|
|
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://
|
|
8
|
+
"homepage": "https://relizy.pages.dev",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "git+https://github.com/LouisMazel/relizy.git"
|