relizy 1.4.7 → 1.4.8-beta.1

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,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 { ay as isInCI, az 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.d-S4lcvu.mjs';
8
+ import { aA as isInCI, aB 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.BdF1zFG_.mjs';
9
9
  import 'node:child_process';
10
10
  import '@maz-ui/utils';
11
11
  import 'c12';
package/dist/index.d.mts CHANGED
@@ -27,8 +27,8 @@ declare function getDefaultConfig(): {
27
27
  private: false;
28
28
  args: never[];
29
29
  token: string | undefined;
30
- registry: string;
31
30
  safetyCheck: true;
31
+ safetyCheckTimeout: number;
32
32
  packageManager: PackageManager;
33
33
  };
34
34
  tokens: {
@@ -326,6 +326,16 @@ declare function parseChangelogMarkdown(contents: string): {
326
326
  }[];
327
327
  };
328
328
 
329
+ /**
330
+ * Resolve the effective npm registry from the environment (`.npmrc` files, env
331
+ * variables, npm/pnpm defaults) via `npm config get registry`. Falls back to the
332
+ * public registry when npm is unavailable or returns nothing.
333
+ *
334
+ * Used when the user did not set `publish.registry`, so Relizy honors a custom
335
+ * registry (e.g. a corporate proxy) configured in the user's `.npmrc` instead of
336
+ * forcing the public registry.
337
+ */
338
+ declare function getNpmRegistry(cwd?: string): string;
329
339
  declare function detectPackageManager(cwd?: string): PackageManager;
330
340
  declare function determinePublishTag(version: string, configTag?: string): string;
331
341
  declare function getPackagesToPublishInSelectiveMode(sortedPackages: PackageBase[], rootVersion: string | undefined): PackageBase[];
@@ -410,6 +420,13 @@ declare function postPrComment({ config, pr, body, }: {
410
420
  body: string;
411
421
  }): Promise<boolean>;
412
422
 
423
+ /**
424
+ * Return a deep clone of `value` with every secret masked, without mutating the
425
+ * original. Secrets are detected by sensitive key name and by living under a
426
+ * secret container (e.g. `tokens.*`).
427
+ */
428
+ declare function redactSecrets<T>(value: T): T;
429
+
413
430
  declare function readPackageJson(packagePath: string): ReadPackage | undefined;
414
431
  interface RootPackage extends ReadPackage {
415
432
  fromTag: string;
@@ -1220,6 +1237,13 @@ type PublishConfig = ChangelogConfig$1['publish'] & {
1220
1237
  * @default true
1221
1238
  */
1222
1239
  safetyCheck?: boolean;
1240
+ /**
1241
+ * Maximum time in milliseconds for the registry authentication safety check
1242
+ * before it is aborted. Prevents the release from hanging indefinitely when
1243
+ * the registry (or a proxy) never answers.
1244
+ * @default 15000
1245
+ */
1246
+ safetyCheckTimeout?: number;
1223
1247
  };
1224
1248
  interface PublishOptions extends PublishConfig {
1225
1249
  /**
@@ -1978,5 +2002,5 @@ declare function socialSafetyCheck({ config }: {
1978
2002
  }): Promise<void>;
1979
2003
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
1980
2004
 
1981
- export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, findReachableCommitBySubject, formatChangelogForSlack, formatPackagesForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCommitSubject, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getTwitterCredentials, github, gitlab, hasLernaJson, isAncestor, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, mergeTypes, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readPackageJson, readPackages, reconcileFromTag, release, resetRewrittenTagCache, resolveTags, retagAnnotatedLocal, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, tagExists, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
2005
+ export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, findReachableCommitBySubject, formatChangelogForSlack, formatPackagesForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCommitSubject, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getNpmRegistry, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getTwitterCredentials, github, gitlab, hasLernaJson, isAncestor, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, mergeTypes, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readPackageJson, readPackages, reconcileFromTag, redactSecrets, release, resetRewrittenTagCache, resolveTags, retagAnnotatedLocal, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, tagExists, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1982
2006
  export type { AIConfig, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogInclude, ChangelogOptions, ClaudeCodeProviderOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, OnRewrittenTag, PackageBase, PackageBumpEntry, 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, SlackPackageEntry, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
package/dist/index.d.ts CHANGED
@@ -27,8 +27,8 @@ declare function getDefaultConfig(): {
27
27
  private: false;
28
28
  args: never[];
29
29
  token: string | undefined;
30
- registry: string;
31
30
  safetyCheck: true;
31
+ safetyCheckTimeout: number;
32
32
  packageManager: PackageManager;
33
33
  };
34
34
  tokens: {
@@ -326,6 +326,16 @@ declare function parseChangelogMarkdown(contents: string): {
326
326
  }[];
327
327
  };
328
328
 
329
+ /**
330
+ * Resolve the effective npm registry from the environment (`.npmrc` files, env
331
+ * variables, npm/pnpm defaults) via `npm config get registry`. Falls back to the
332
+ * public registry when npm is unavailable or returns nothing.
333
+ *
334
+ * Used when the user did not set `publish.registry`, so Relizy honors a custom
335
+ * registry (e.g. a corporate proxy) configured in the user's `.npmrc` instead of
336
+ * forcing the public registry.
337
+ */
338
+ declare function getNpmRegistry(cwd?: string): string;
329
339
  declare function detectPackageManager(cwd?: string): PackageManager;
330
340
  declare function determinePublishTag(version: string, configTag?: string): string;
331
341
  declare function getPackagesToPublishInSelectiveMode(sortedPackages: PackageBase[], rootVersion: string | undefined): PackageBase[];
@@ -410,6 +420,13 @@ declare function postPrComment({ config, pr, body, }: {
410
420
  body: string;
411
421
  }): Promise<boolean>;
412
422
 
423
+ /**
424
+ * Return a deep clone of `value` with every secret masked, without mutating the
425
+ * original. Secrets are detected by sensitive key name and by living under a
426
+ * secret container (e.g. `tokens.*`).
427
+ */
428
+ declare function redactSecrets<T>(value: T): T;
429
+
413
430
  declare function readPackageJson(packagePath: string): ReadPackage | undefined;
414
431
  interface RootPackage extends ReadPackage {
415
432
  fromTag: string;
@@ -1220,6 +1237,13 @@ type PublishConfig = ChangelogConfig$1['publish'] & {
1220
1237
  * @default true
1221
1238
  */
1222
1239
  safetyCheck?: boolean;
1240
+ /**
1241
+ * Maximum time in milliseconds for the registry authentication safety check
1242
+ * before it is aborted. Prevents the release from hanging indefinitely when
1243
+ * the registry (or a proxy) never answers.
1244
+ * @default 15000
1245
+ */
1246
+ safetyCheckTimeout?: number;
1223
1247
  };
1224
1248
  interface PublishOptions extends PublishConfig {
1225
1249
  /**
@@ -1978,5 +2002,5 @@ declare function socialSafetyCheck({ config }: {
1978
2002
  }): Promise<void>;
1979
2003
  declare function social(options?: Partial<SocialOptions>): Promise<SocialResult>;
1980
2004
 
1981
- export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, findReachableCommitBySubject, formatChangelogForSlack, formatPackagesForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCommitSubject, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getTwitterCredentials, github, gitlab, hasLernaJson, isAncestor, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, mergeTypes, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readPackageJson, readPackages, reconcileFromTag, release, resetRewrittenTagCache, resolveTags, retagAnnotatedLocal, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, tagExists, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
2005
+ export { NEW_PACKAGE_MARKER, PR_COMMENT_MARKER, buildChangelogBody, buildCommentBody, buildCompareLink, buildContributors, bump, capReleaseTypeForZeroMajor, changelog, checkGitStatusIfDirty, collectContributorNames, collectPackageBumps, confirmBump, createCommitAndTags, createGitlabRelease, defineConfig, detectGitProvider, detectPackageManager, detectPullRequest, determinePublishTag, determineReleaseType, determineSemverChange, executeBuildCmd, executeFormatCmd, executeHook, expandPackagesToBumpWithDependents, extractChangelogSummary, extractVersionFromPackageTag, extractVersionFromTag, fetchGitTags, filterOutPrivatePackages, findGitHubPR, findGitLabMR, findReachableCommitBySubject, formatChangelogForSlack, formatPackagesForSlack, formatSlackMessage, formatTweetMessage, generateChangelog, generateMarkDown, getAuthCommand, getBumpedIndependentPackages, getBumpedPackageIndependently, getCIName, getCanaryVersion, getCommitSubject, getCurrentGitBranch, getCurrentGitRef, getDefaultConfig, getDependentsOf, getFirstCommit, getGitStatus, getIndependentTag, getLastPackageTag, getLastRepoTag, getLastStableTag, getLastTag, getModifiedReleaseFilePatterns, getNpmRegistry, getPackageCommits, getPackageDependencies, getPackageNewVersion, getPackages, getPackagesOrBumpedPackages, getPackagesToPublishInIndependentMode, getPackagesToPublishInSelectiveMode, getPreid, getReleaseUrl, getRootPackage, getShortCommitSha, getSlackToken, getSlackWebhookUrl, getTwitterCredentials, github, gitlab, hasLernaJson, isAncestor, isBumpedPackage, isChangedPreid, isGraduating, isGraduatingToStableBetweenVersion, isInCI, isPrerelease, isPrereleaseReleaseType, isStableReleaseType, isTagVersionCompatibleWithCurrent, loadRelizyConfig, mergeTypes, parseChangelogMarkdown, parseGitRemoteUrl, postPrComment, postReleaseToSlack, postReleaseToTwitter, prComment, providerRelease, providerReleaseSafetyCheck, publish, publishPackage, publishSafetyCheck, pushCommitAndTags, pushTagForce, readPackageJson, readPackages, reconcileFromTag, redactSecrets, release, resetRewrittenTagCache, resolveTags, retagAnnotatedLocal, rollbackModifiedFiles, shouldFilterPrereleaseTags, social, socialSafetyCheck, tagExists, topologicalSort, updateLernaVersion, writeChangelogToFile, writeVersion };
1982
2006
  export type { AIConfig, AIPromptTarget, AIProviderName, AISocialConfig, AISystemPromptOverrides, AITargetConfig, BumpConfig, BumpOptions, BumpResult, BumpResultFalsy, BumpResultTruthy, ChangelogConfig, ChangelogInclude, ChangelogOptions, ClaudeCodeProviderOptions, ConfigType, GitProvider, GitlabRelease, GitlabReleaseResponse, HookConfig, HookStep, HookType, MonorepoConfig, OnRewrittenTag, PackageBase, PackageBumpEntry, 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, SlackPackageEntry, SlackSocialConfig, SocialConfig, SocialNetworkResult, SocialOptions, SocialResult, Step, TemplatesConfig, TokensConfig, TwitterCredentials, TwitterOptions, TwitterSocialConfig, VersionMode };
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { as as NEW_PACKAGE_MARKER, a5 as PR_COMMENT_MARKER, S as buildChangelogBody, a as buildCommentBody, R as buildCompareLink, U as buildContributors, b as bump, aG as capReleaseTypeForZeroMajor, c as changelog, v as checkGitStatusIfDirty, T as collectContributorNames, a1 as collectPackageBumps, aU as confirmBump, B as createCommitAndTags, P as createGitlabRelease, k as defineConfig, y as detectGitProvider, X as detectPackageManager, a4 as detectPullRequest, Y as determinePublishTag, aI as determineReleaseType, aH as determineSemverChange, aB as executeBuildCmd, aA as executeFormatCmd, ax as executeHook, q as expandPackagesToBumpWithDependents, al as extractChangelogSummary, aM as extractVersionFromPackageTag, aX as extractVersionFromTag, x as fetchGitTags, aD as filterOutPrivatePackages, a2 as findGitHubPR, a3 as findGitLabMR, K as findReachableCommitBySubject, ah as formatChangelogForSlack, ai as formatPackagesForSlack, aj as formatSlackMessage, av as formatTweetMessage, i as generateChangelog, V as generateMarkDown, $ as getAuthCommand, aV as getBumpedIndependentPackages, aT as getBumpedPackageIndependently, az as getCIName, aY as getCanaryVersion, J as getCommitSubject, F as getCurrentGitBranch, G as getCurrentGitRef, j as getDefaultConfig, o as getDependentsOf, E as getFirstCommit, u as getGitStatus, an as getIndependentTag, ar as getLastPackageTag, aq as getLastRepoTag, ao as getLastStableTag, ap as getLastTag, A as getModifiedReleaseFilePatterns, ab as getPackageCommits, n as getPackageDependencies, aK as getPackageNewVersion, aa as getPackages, aE as getPackagesOrBumpedPackages, _ as getPackagesToPublishInIndependentMode, Z as getPackagesToPublishInSelectiveMode, aR as getPreid, am as getReleaseUrl, a8 as getRootPackage, H as getShortCommitSha, af as getSlackToken, ag as getSlackWebhookUrl, au as getTwitterCredentials, O as github, Q as gitlab, ac as hasLernaJson, I as isAncestor, aC as isBumpedPackage, aS as isChangedPreid, aQ as isGraduating, aF as isGraduatingToStableBetweenVersion, ay as isInCI, aN as isPrerelease, aP as isPrereleaseReleaseType, aO as isStableReleaseType, aZ as isTagVersionCompatibleWithCurrent, l as loadRelizyConfig, m as mergeTypes, W as parseChangelogMarkdown, z as parseGitRemoteUrl, a6 as postPrComment, ak as postReleaseToSlack, aw as postReleaseToTwitter, p as prComment, e as providerRelease, d as providerReleaseSafetyCheck, g as publish, a0 as publishPackage, f as publishSafetyCheck, C as pushCommitAndTags, N as pushTagForce, a7 as readPackageJson, a9 as readPackages, ae as reconcileFromTag, r as release, ad as resetRewrittenTagCache, at as resolveTags, M as retagAnnotatedLocal, D as rollbackModifiedFiles, aW as shouldFilterPrereleaseTags, h as social, s as socialSafetyCheck, L as tagExists, t as topologicalSort, aL as updateLernaVersion, w as writeChangelogToFile, aJ as writeVersion } from './shared/relizy.d-S4lcvu.mjs';
1
+ export { au as NEW_PACKAGE_MARKER, a6 as PR_COMMENT_MARKER, S as buildChangelogBody, a as buildCommentBody, R as buildCompareLink, U as buildContributors, b as bump, aI as capReleaseTypeForZeroMajor, c as changelog, v as checkGitStatusIfDirty, T as collectContributorNames, a2 as collectPackageBumps, aW as confirmBump, B as createCommitAndTags, P as createGitlabRelease, k as defineConfig, y as detectGitProvider, Y as detectPackageManager, a5 as detectPullRequest, Z as determinePublishTag, aK as determineReleaseType, aJ as determineSemverChange, aD as executeBuildCmd, aC as executeFormatCmd, az as executeHook, q as expandPackagesToBumpWithDependents, an as extractChangelogSummary, aO as extractVersionFromPackageTag, aZ as extractVersionFromTag, x as fetchGitTags, aF as filterOutPrivatePackages, a3 as findGitHubPR, a4 as findGitLabMR, K as findReachableCommitBySubject, aj as formatChangelogForSlack, ak as formatPackagesForSlack, al as formatSlackMessage, ax as formatTweetMessage, i as generateChangelog, V as generateMarkDown, a0 as getAuthCommand, aX as getBumpedIndependentPackages, aV as getBumpedPackageIndependently, aB as getCIName, a_ as getCanaryVersion, J as getCommitSubject, F as getCurrentGitBranch, G as getCurrentGitRef, j as getDefaultConfig, o as getDependentsOf, E as getFirstCommit, u as getGitStatus, ap as getIndependentTag, at as getLastPackageTag, as as getLastRepoTag, aq as getLastStableTag, ar as getLastTag, A as getModifiedReleaseFilePatterns, X as getNpmRegistry, ad as getPackageCommits, n as getPackageDependencies, aM as getPackageNewVersion, ac as getPackages, aG as getPackagesOrBumpedPackages, $ as getPackagesToPublishInIndependentMode, _ as getPackagesToPublishInSelectiveMode, aT as getPreid, ao as getReleaseUrl, aa as getRootPackage, H as getShortCommitSha, ah as getSlackToken, ai as getSlackWebhookUrl, aw as getTwitterCredentials, O as github, Q as gitlab, ae as hasLernaJson, I as isAncestor, aE as isBumpedPackage, aU as isChangedPreid, aS as isGraduating, aH as isGraduatingToStableBetweenVersion, aA as isInCI, aP as isPrerelease, aR as isPrereleaseReleaseType, aQ as isStableReleaseType, a$ as isTagVersionCompatibleWithCurrent, l as loadRelizyConfig, m as mergeTypes, W as parseChangelogMarkdown, z as parseGitRemoteUrl, a7 as postPrComment, am as postReleaseToSlack, ay as postReleaseToTwitter, p as prComment, e as providerRelease, d as providerReleaseSafetyCheck, g as publish, a1 as publishPackage, f as publishSafetyCheck, C as pushCommitAndTags, N as pushTagForce, a9 as readPackageJson, ab as readPackages, ag as reconcileFromTag, a8 as redactSecrets, r as release, af as resetRewrittenTagCache, av as resolveTags, M as retagAnnotatedLocal, D as rollbackModifiedFiles, aY as shouldFilterPrereleaseTags, h as social, s as socialSafetyCheck, L as tagExists, t as topologicalSort, aN as updateLernaVersion, w as writeChangelogToFile, aL as writeVersion } from './shared/relizy.BdF1zFG_.mjs';
2
2
  import '@maz-ui/node';
3
3
  import 'node:child_process';
4
4
  import 'node:process';
@@ -1800,7 +1800,20 @@ async function getPackagesOrBumpedPackages({
1800
1800
  });
1801
1801
  }
1802
1802
 
1803
+ const DEFAULT_REGISTRY = "https://registry.npmjs.org/";
1803
1804
  let sessionOtp;
1805
+ function getNpmRegistry(cwd = process.cwd()) {
1806
+ try {
1807
+ const output = execSync("npm config get registry", {
1808
+ cwd,
1809
+ encoding: "utf8",
1810
+ stdio: ["ignore", "pipe", "ignore"]
1811
+ }).trim();
1812
+ return output && output !== "undefined" ? output : DEFAULT_REGISTRY;
1813
+ } catch {
1814
+ return DEFAULT_REGISTRY;
1815
+ }
1816
+ }
1804
1817
  function detectPackageManager(cwd = process.cwd()) {
1805
1818
  try {
1806
1819
  const packageJsonPath = join(cwd, "package.json");
@@ -2004,7 +2017,7 @@ async function executePublishCommand({
2004
2017
  logger.info(`${dryRun ? "[dry-run] " : ""}Skipping actual publish for ${packageNameAndVersion}`);
2005
2018
  return;
2006
2019
  }
2007
- const { stdout, stderr } = await execPromise(command, {
2020
+ await execPromise(command, {
2008
2021
  noStderr: true,
2009
2022
  noStdout: true,
2010
2023
  noSuccess: true,
@@ -2012,8 +2025,6 @@ async function executePublishCommand({
2012
2025
  logLevel: config.logLevel,
2013
2026
  cwd: pkg.path
2014
2027
  });
2015
- logger.debug("Publish stdout:", stdout);
2016
- logger.debug("Publish stderr:", stderr);
2017
2028
  }
2018
2029
  function getAuthCommand({
2019
2030
  packageManager,
@@ -2111,6 +2122,61 @@ async function publishPackage({
2111
2122
  }
2112
2123
  }
2113
2124
 
2125
+ const MASK = "***";
2126
+ const VISIBLE_PREFIX = 4;
2127
+ const MIN_LENGTH_TO_REVEAL = 16;
2128
+ function maskSecretValue(value) {
2129
+ if (value.length < MIN_LENGTH_TO_REVEAL) {
2130
+ return MASK;
2131
+ }
2132
+ return `${value.slice(0, VISIBLE_PREFIX)}${MASK}${value.slice(-4)}`;
2133
+ }
2134
+ const SENSITIVE_KEYS = /* @__PURE__ */ new Set([
2135
+ "token",
2136
+ "publishtoken",
2137
+ "oauthtoken",
2138
+ "apikey",
2139
+ "apikeysecret",
2140
+ "accesstoken",
2141
+ "accesstokensecret",
2142
+ "password",
2143
+ "secret",
2144
+ "webhookurl",
2145
+ "_authtoken"
2146
+ ]);
2147
+ const SECRET_CONTAINER_KEYS = /* @__PURE__ */ new Set(["tokens"]);
2148
+ function redactValue(value, inSecretContainer, keyIsSensitive) {
2149
+ if (typeof value === "string") {
2150
+ if (value === "") {
2151
+ return value;
2152
+ }
2153
+ if (inSecretContainer || keyIsSensitive) {
2154
+ return maskSecretValue(value);
2155
+ }
2156
+ return value;
2157
+ }
2158
+ if (Array.isArray(value)) {
2159
+ return value.map((item) => redactValue(item, inSecretContainer, false));
2160
+ }
2161
+ if (value && typeof value === "object") {
2162
+ return redactObject(value, inSecretContainer);
2163
+ }
2164
+ return value;
2165
+ }
2166
+ function redactObject(obj, inSecretContainer) {
2167
+ const result = {};
2168
+ for (const [key, value] of Object.entries(obj)) {
2169
+ const lowerKey = key.toLowerCase();
2170
+ const childInContainer = inSecretContainer || SECRET_CONTAINER_KEYS.has(lowerKey);
2171
+ const keyIsSensitive = SENSITIVE_KEYS.has(lowerKey);
2172
+ result[key] = redactValue(value, childInContainer, keyIsSensitive);
2173
+ }
2174
+ return result;
2175
+ }
2176
+ function redactSecrets(value) {
2177
+ return redactValue(value, false, false);
2178
+ }
2179
+
2114
2180
  function getDefaultConfig() {
2115
2181
  return {
2116
2182
  cwd: process$1.cwd(),
@@ -2159,8 +2225,11 @@ function getDefaultConfig() {
2159
2225
  private: false,
2160
2226
  args: [],
2161
2227
  token: process$1.env.RELIZY_NPM_TOKEN || process$1.env.NPM_TOKEN || process$1.env.NODE_AUTH_TOKEN,
2162
- registry: "https://registry.npmjs.org/",
2228
+ // registry is intentionally left undefined: it is resolved later from the
2229
+ // user's npm config / .npmrc (see resolveConfig) so a custom registry
2230
+ // (e.g. a corporate proxy) is honored instead of forcing the public one.
2163
2231
  safetyCheck: true,
2232
+ safetyCheckTimeout: 15e3,
2164
2233
  packageManager: detectPackageManager(process$1.cwd())
2165
2234
  },
2166
2235
  tokens: {
@@ -2262,6 +2331,9 @@ async function resolveConfig(config, cwd) {
2262
2331
  provider: resolvedRepoConfig.provider
2263
2332
  };
2264
2333
  }
2334
+ if (config.publish && !config.publish.registry) {
2335
+ config.publish.registry = getNpmRegistry(cwd);
2336
+ }
2265
2337
  return config;
2266
2338
  }
2267
2339
  function mergeTypes(userTypes, defaultTypes) {
@@ -2303,7 +2375,7 @@ async function loadRelizyConfig(options) {
2303
2375
  logger.verbose("User config:", formatJson(results.config.changelog));
2304
2376
  resolveTemplateDefaults(results.config);
2305
2377
  const resolvedConfig = await resolveConfig(results.config, cwd);
2306
- logger.debug("Resolved config:", formatJson(resolvedConfig));
2378
+ logger.debug("Resolved config:", formatJson(redactSecrets(resolvedConfig)));
2307
2379
  return resolvedConfig;
2308
2380
  }
2309
2381
  function defineConfig(config) {
@@ -5519,27 +5591,42 @@ async function publishSafetyCheck({ config }) {
5519
5591
  }
5520
5592
  logger.debug("Start checking auth config to package registry");
5521
5593
  const isPnpmOrNpm = config.publish.packageManager === "pnpm" || config.publish.packageManager === "npm";
5522
- if (isPnpmOrNpm) {
5523
- const authCommand = getAuthCommand({
5524
- packageManager: config.publish.packageManager,
5525
- config,
5526
- otp: config.publish.otp
5594
+ if (!isPnpmOrNpm) {
5595
+ logger.debug(`Skipping authentication to package registry because "${config.publish.packageManager}" is not supported`);
5596
+ return;
5597
+ }
5598
+ const authCommand = getAuthCommand({
5599
+ packageManager: config.publish.packageManager,
5600
+ config,
5601
+ otp: config.publish.otp
5602
+ });
5603
+ const timeoutMs = config.publish.safetyCheckTimeout ?? 15e3;
5604
+ const patienceDelay = Math.min(5e3, Math.floor(timeoutMs / 2));
5605
+ const patienceTimer = setTimeout(() => {
5606
+ logger.info(`The package registry is taking longer than expected to respond (will time out at ${Math.round(timeoutMs / 1e3)}s)...`);
5607
+ }, patienceDelay);
5608
+ try {
5609
+ logger.info("Authenticating to package registry...");
5610
+ await execPromise(authCommand, {
5611
+ cwd: config.cwd,
5612
+ timeout: timeoutMs,
5613
+ noStdout: true,
5614
+ noStderr: true,
5615
+ noSuccess: true,
5616
+ noError: true,
5617
+ logLevel: config.logLevel
5527
5618
  });
5528
- try {
5529
- logger.debug("Authenticating to package registry...");
5530
- await execPromise(authCommand, {
5531
- cwd: config.cwd,
5532
- noStderr: true,
5533
- noStdout: true,
5534
- logLevel: config.logLevel,
5535
- noSuccess: true
5536
- });
5537
- logger.info("Successfully authenticated to package registry");
5538
- } catch (error) {
5539
- throw new Error("Failed to authenticate to package registry", { cause: error });
5619
+ logger.info("Successfully authenticated to package registry");
5620
+ } catch (error) {
5621
+ if (error?.killed) {
5622
+ throw new Error(
5623
+ `Authentication to package registry timed out after ${timeoutMs}ms. The registry did not respond - check your network or registry access, increase publish.safetyCheckTimeout, or skip this check with --no-safety-check.`,
5624
+ { cause: error }
5625
+ );
5540
5626
  }
5541
- } else {
5542
- logger.debug(`Skipping authentication to package registry because "${config.publish.packageManager}" is not supported`);
5627
+ throw new Error("Failed to authenticate to package registry", { cause: error });
5628
+ } finally {
5629
+ clearTimeout(patienceTimer);
5543
5630
  }
5544
5631
  }
5545
5632
  async function publish(options = {}) {
@@ -6365,4 +6452,4 @@ Git provider: ${provider}`);
6365
6452
  }
6366
6453
  }
6367
6454
 
6368
- export { getAuthCommand 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, isAncestor as I, getCommitSubject as J, findReachableCommitBySubject as K, tagExists as L, retagAnnotatedLocal as M, pushTagForce as N, github as O, createGitlabRelease as P, gitlab as Q, buildCompareLink as R, buildChangelogBody as S, collectContributorNames as T, buildContributors as U, generateMarkDown as V, parseChangelogMarkdown as W, detectPackageManager as X, determinePublishTag as Y, getPackagesToPublishInSelectiveMode as Z, getPackagesToPublishInIndependentMode as _, buildCommentBody as a, publishPackage as a0, collectPackageBumps as a1, findGitHubPR as a2, findGitLabMR as a3, detectPullRequest as a4, PR_COMMENT_MARKER as a5, postPrComment as a6, readPackageJson as a7, getRootPackage as a8, readPackages as a9, executeFormatCmd as aA, executeBuildCmd as aB, isBumpedPackage as aC, filterOutPrivatePackages as aD, getPackagesOrBumpedPackages as aE, isGraduatingToStableBetweenVersion as aF, capReleaseTypeForZeroMajor as aG, determineSemverChange as aH, determineReleaseType as aI, writeVersion as aJ, getPackageNewVersion as aK, updateLernaVersion as aL, extractVersionFromPackageTag as aM, isPrerelease as aN, isStableReleaseType as aO, isPrereleaseReleaseType as aP, isGraduating as aQ, getPreid as aR, isChangedPreid as aS, getBumpedPackageIndependently as aT, confirmBump as aU, getBumpedIndependentPackages as aV, shouldFilterPrereleaseTags as aW, extractVersionFromTag as aX, getCanaryVersion as aY, isTagVersionCompatibleWithCurrent as aZ, getPackages as aa, getPackageCommits as ab, hasLernaJson as ac, resetRewrittenTagCache as ad, reconcileFromTag as ae, getSlackToken as af, getSlackWebhookUrl as ag, formatChangelogForSlack as ah, formatPackagesForSlack as ai, formatSlackMessage as aj, postReleaseToSlack as ak, extractChangelogSummary as al, getReleaseUrl as am, getIndependentTag as an, getLastStableTag as ao, getLastTag as ap, getLastRepoTag as aq, getLastPackageTag as ar, NEW_PACKAGE_MARKER as as, resolveTags as at, getTwitterCredentials as au, formatTweetMessage as av, postReleaseToTwitter as aw, executeHook as ax, isInCI as ay, getCIName 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 };
6455
+ export { getPackagesToPublishInIndependentMode 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, isAncestor as I, getCommitSubject as J, findReachableCommitBySubject as K, tagExists as L, retagAnnotatedLocal as M, pushTagForce as N, github as O, createGitlabRelease as P, gitlab as Q, buildCompareLink as R, buildChangelogBody as S, collectContributorNames as T, buildContributors as U, generateMarkDown as V, parseChangelogMarkdown as W, getNpmRegistry as X, detectPackageManager as Y, determinePublishTag as Z, getPackagesToPublishInSelectiveMode as _, buildCommentBody as a, isTagVersionCompatibleWithCurrent as a$, getAuthCommand as a0, publishPackage as a1, collectPackageBumps as a2, findGitHubPR as a3, findGitLabMR as a4, detectPullRequest as a5, PR_COMMENT_MARKER as a6, postPrComment as a7, redactSecrets as a8, readPackageJson as a9, isInCI as aA, getCIName as aB, executeFormatCmd as aC, executeBuildCmd as aD, isBumpedPackage as aE, filterOutPrivatePackages as aF, getPackagesOrBumpedPackages as aG, isGraduatingToStableBetweenVersion as aH, capReleaseTypeForZeroMajor as aI, determineSemverChange as aJ, determineReleaseType as aK, writeVersion as aL, getPackageNewVersion as aM, updateLernaVersion as aN, extractVersionFromPackageTag as aO, isPrerelease as aP, isStableReleaseType as aQ, isPrereleaseReleaseType as aR, isGraduating as aS, getPreid as aT, isChangedPreid as aU, getBumpedPackageIndependently as aV, confirmBump as aW, getBumpedIndependentPackages as aX, shouldFilterPrereleaseTags as aY, extractVersionFromTag as aZ, getCanaryVersion as a_, getRootPackage as aa, readPackages as ab, getPackages as ac, getPackageCommits as ad, hasLernaJson as ae, resetRewrittenTagCache as af, reconcileFromTag as ag, getSlackToken as ah, getSlackWebhookUrl as ai, formatChangelogForSlack as aj, formatPackagesForSlack as ak, formatSlackMessage as al, postReleaseToSlack as am, extractChangelogSummary as an, getReleaseUrl as ao, getIndependentTag as ap, getLastStableTag as aq, getLastTag as ar, getLastRepoTag as as, getLastPackageTag as at, NEW_PACKAGE_MARKER as au, resolveTags as av, getTwitterCredentials as aw, formatTweetMessage as ax, postReleaseToTwitter as ay, executeHook 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,7 +1,7 @@
1
1
  {
2
2
  "name": "relizy",
3
3
  "type": "module",
4
- "version": "1.4.7",
4
+ "version": "1.4.8-beta.1",
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",
@@ -72,8 +72,8 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@inquirer/prompts": "^8.5.2",
75
- "@maz-ui/node": "4.6.1",
76
- "@maz-ui/utils": "^4.7.6",
75
+ "@maz-ui/node": "5.0.0-beta.26",
76
+ "@maz-ui/utils": "5.0.0-beta.25",
77
77
  "c12": "^3.3.3",
78
78
  "changelogen": "^0.6.2",
79
79
  "commander": "^15.0.0",
@@ -88,7 +88,7 @@
88
88
  "@commitlint/config-conventional": "21.0.2",
89
89
  "@commitlint/cz-commitlint": "^21.0.2",
90
90
  "@commitlint/types": "^21.0.1",
91
- "@maz-ui/eslint-config": "^4.9.1",
91
+ "@maz-ui/eslint-config": "5.0.0-beta.25",
92
92
  "@slack/web-api": "7.16.0",
93
93
  "@types/node": "^25.9.2",
94
94
  "@types/semver": "^7.7.1",