@storm-software/git-tools 2.111.24 → 2.111.26

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/bin/git.cjs CHANGED
@@ -71861,10 +71861,7 @@ var runCommit = async (commitizenFile = "@storm-software/git-tools/commit/config
71861
71861
 
71862
71862
  `);
71863
71863
  await runCommitLint(config, { message: message2 });
71864
- const commandItems = ["git", "commit"];
71865
- if (!process.env.CI && !process.env.STORM_CI) {
71866
- commandItems.push("-S");
71867
- }
71864
+ const commandItems = ["git", "commit", "-S"];
71868
71865
  commandItems.push(...["--file", commitMsgFile]);
71869
71866
  const command = (0, import_any_shell_escape.default)(commandItems);
71870
71867
  if (dryRun) {
@@ -77659,6 +77656,7 @@ var chalk3 = _chunkIG6EXAQUcjs.__toESM.call(void 0, _chunkXE275LJTcjs.require_so
77659
77656
  var import_enquirer2 = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_enquirer(), 1);
77660
77657
  var import_semver2 = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_semver4(), 1);
77661
77658
  var import_tmp = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_tmp2(), 1);
77659
+ var _titlecase = require('@stryke/string-format/title-case');
77662
77660
 
77663
77661
 
77664
77662
 
@@ -77693,7 +77691,6 @@ var _resolvenxjsonerrormessage = require('nx/src/command-line/release/utils/reso
77693
77691
 
77694
77692
 
77695
77693
 
77696
-
77697
77694
  var _shared = require('nx/src/command-line/release/utils/shared');
77698
77695
 
77699
77696
 
@@ -77712,13 +77709,14 @@ var _workspaceroot = require('nx/src/utils/workspace-root');
77712
77709
 
77713
77710
  // src/utilities/changelog-utils.ts
77714
77711
  _chunkIG6EXAQUcjs.init_cjs_shims.call(void 0, );
77712
+
77715
77713
  var _prettier = require('prettier');
77716
77714
  async function generateChangelogContent(releaseVersion, filepath, newContent, currentContent, project, workspaceConfig) {
77717
77715
  const formatOptions = await _asyncNullishCoalesce(await _prettier.resolveConfig.call(void 0, filepath), async () => ( {}));
77718
77716
  const header = await _prettier.format.call(void 0,
77719
77717
  `${_optionalChain([workspaceConfig, 'optionalAccess', _181 => _181.release, 'access', _182 => _182.banner]) ? `![Storm Software](${_optionalChain([workspaceConfig, 'optionalAccess', _183 => _183.release, 'access', _184 => _184.banner])})
77720
77718
 
77721
- ` : ""}# Changelog ${project || _optionalChain([workspaceConfig, 'optionalAccess', _185 => _185.name]) ? "for" : ""}${_optionalChain([workspaceConfig, 'optionalAccess', _186 => _186.name]) ? ` ${titleCase(workspaceConfig.name)}` : ""}${project ? `${_optionalChain([workspaceConfig, 'optionalAccess', _187 => _187.name]) ? " -" : ""} ${titleCase(project)}` : ""}
77719
+ ` : ""}# Changelog ${project || _optionalChain([workspaceConfig, 'optionalAccess', _185 => _185.name]) ? "for" : ""}${_optionalChain([workspaceConfig, 'optionalAccess', _186 => _186.name]) ? ` ${_titlecase.titleCase.call(void 0, workspaceConfig.name)}` : ""}${project ? `${_optionalChain([workspaceConfig, 'optionalAccess', _187 => _187.name]) ? " -" : ""} ${_titlecase.titleCase.call(void 0, project)}` : ""}
77722
77720
 
77723
77721
  `,
77724
77722
  {
@@ -77754,14 +77752,6 @@ ${changelogContents}`,
77754
77752
  }
77755
77753
  );
77756
77754
  }
77757
- var titleCase = (input) => {
77758
- if (!input) {
77759
- return "";
77760
- }
77761
- return input.split(/(?=[A-Z])|[\.\-\s_]/).map((s) => s.trim()).filter((s) => !!s).map(
77762
- (s) => s ? s.toLowerCase().charAt(0).toUpperCase() + s.toLowerCase().slice(1) : s
77763
- ).join(" ");
77764
- };
77765
77755
  function generateChangelogTitle(version2, project, workspaceConfig) {
77766
77756
  if (!_optionalChain([workspaceConfig, 'optionalAccess', _188 => _188.name]) || !project) {
77767
77757
  return version2;
@@ -77799,6 +77789,7 @@ function parseChangelogMarkdown(contents) {
77799
77789
  // src/utilities/git-utils.ts
77800
77790
  _chunkIG6EXAQUcjs.init_cjs_shims.call(void 0, );
77801
77791
  var _execcommandjs = require('nx/src/command-line/release/utils/exec-command.js');
77792
+
77802
77793
  async function gitTag({
77803
77794
  tag,
77804
77795
  message: message2,
@@ -77841,6 +77832,76 @@ async function gitTag({
77841
77832
  ${err}`);
77842
77833
  }
77843
77834
  }
77835
+ async function gitCommit({
77836
+ messages,
77837
+ additionalArgs,
77838
+ dryRun,
77839
+ verbose,
77840
+ logFn
77841
+ }) {
77842
+ logFn = logFn || console.log;
77843
+ const commandArgs = ["commit", "-S"];
77844
+ for (const message2 of messages) {
77845
+ commandArgs.push("--message", message2);
77846
+ }
77847
+ if (additionalArgs) {
77848
+ if (Array.isArray(additionalArgs)) {
77849
+ commandArgs.push(...additionalArgs);
77850
+ } else {
77851
+ commandArgs.push(...additionalArgs.split(" "));
77852
+ }
77853
+ }
77854
+ if (verbose) {
77855
+ logFn(
77856
+ dryRun ? `Would commit all previously staged files in git with the following command, but --dry-run was set:` : `Committing files in git with the following command:`
77857
+ );
77858
+ logFn(`git ${commandArgs.join(" ")}`);
77859
+ }
77860
+ if (dryRun) {
77861
+ return;
77862
+ }
77863
+ let hasStagedFiles = false;
77864
+ try {
77865
+ await _execcommandjs.execCommand.call(void 0, "git", ["diff-index", "--quiet", "HEAD", "--cached"]);
77866
+ } catch (e16) {
77867
+ hasStagedFiles = true;
77868
+ }
77869
+ if (!hasStagedFiles) {
77870
+ logFn("\nNo staged files found. Skipping commit.");
77871
+ return;
77872
+ }
77873
+ return _execcommandjs.execCommand.call(void 0, "git", commandArgs);
77874
+ }
77875
+ async function commitChanges({
77876
+ changedFiles,
77877
+ deletedFiles,
77878
+ isDryRun,
77879
+ isVerbose: isVerbose2,
77880
+ gitCommitMessages,
77881
+ gitCommitArgs,
77882
+ logFn
77883
+ }) {
77884
+ logFn = logFn || console.log;
77885
+ if (!_optionalChain([changedFiles, 'optionalAccess', _189 => _189.length]) && !_optionalChain([deletedFiles, 'optionalAccess', _190 => _190.length])) {
77886
+ throw new Error("Error: No changed files to commit");
77887
+ }
77888
+ logFn(`Committing changes with git`);
77889
+ await _git.gitAdd.call(void 0, {
77890
+ changedFiles,
77891
+ deletedFiles,
77892
+ dryRun: isDryRun,
77893
+ verbose: isVerbose2
77894
+ });
77895
+ if (isVerbose2) {
77896
+ console.log("");
77897
+ }
77898
+ await gitCommit({
77899
+ messages: gitCommitMessages || [],
77900
+ additionalArgs: gitCommitArgs,
77901
+ dryRun: isDryRun,
77902
+ verbose: isVerbose2
77903
+ });
77904
+ }
77844
77905
 
77845
77906
  // src/release/changelog-renderer.ts
77846
77907
  _chunkIG6EXAQUcjs.init_cjs_shims.call(void 0, );
@@ -81244,6 +81305,195 @@ var {
81244
81305
  var import_semver = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_semver4(), 1);
81245
81306
  var _changelogrenderer = require('nx/release/changelog-renderer'); var _changelogrenderer2 = _interopRequireDefault(_changelogrenderer);
81246
81307
  var _conventionalcommits = require('nx/src/command-line/release/config/conventional-commits');
81308
+ var StormChangelogRenderer = (_class16 = class extends _changelogrenderer2.default {
81309
+ /**
81310
+ * The Storm workspace configuration object, which is loaded from the storm-workspace.json file.
81311
+ */
81312
+ __init43() {this.workspaceConfig = null}
81313
+ /**
81314
+ * The configuration object for the ChangelogRenderer, which includes the changes, version, project, and other options.
81315
+ */
81316
+
81317
+ /**
81318
+ * A ChangelogRenderer class takes in the determined changes and other relevant metadata and returns a string, or a Promise of a string of changelog contents (usually markdown).
81319
+ *
81320
+ * @param config - The configuration object for the ChangelogRenderer
81321
+ */
81322
+ constructor(config) {
81323
+ super(config);_class16.prototype.__init43.call(this);;
81324
+ this.config = {
81325
+ ...config,
81326
+ repoData: config.remoteReleaseClient.getRemoteRepoData()
81327
+ };
81328
+ }
81329
+ async render() {
81330
+ this.workspaceConfig = await _chunkXE275LJTcjs.getWorkspaceConfig.call(void 0, );
81331
+ return await super.render();
81332
+ }
81333
+ preprocessChanges() {
81334
+ this.relevantChanges = [...this.changes];
81335
+ this.breakingChanges = [];
81336
+ this.additionalChangesForAuthorsSection = [];
81337
+ for (let i = this.relevantChanges.length - 1; i >= 0; i--) {
81338
+ const change = this.relevantChanges[i];
81339
+ if (change && change.type === "revert" && change.revertedHashes) {
81340
+ for (const revertedHash of change.revertedHashes) {
81341
+ const revertedCommitIndex = this.relevantChanges.findIndex(
81342
+ (c) => c.shortHash && revertedHash.startsWith(c.shortHash)
81343
+ );
81344
+ if (revertedCommitIndex !== -1) {
81345
+ this.relevantChanges.splice(revertedCommitIndex, 1);
81346
+ this.relevantChanges.splice(i, 1);
81347
+ i--;
81348
+ break;
81349
+ }
81350
+ }
81351
+ }
81352
+ }
81353
+ if (this.isVersionPlans) {
81354
+ this.conventionalCommitsConfig = {
81355
+ types: {
81356
+ feat: _conventionalcommits.DEFAULT_CONVENTIONAL_COMMITS_CONFIG.types.feat,
81357
+ fix: _conventionalcommits.DEFAULT_CONVENTIONAL_COMMITS_CONFIG.types.fix
81358
+ }
81359
+ };
81360
+ for (let i = this.relevantChanges.length - 1; i >= 0; i--) {
81361
+ if (_optionalChain([this, 'access', _191 => _191.relevantChanges, 'access', _192 => _192[i], 'optionalAccess', _193 => _193.isBreaking])) {
81362
+ const change = this.relevantChanges[i];
81363
+ if (change) {
81364
+ this.additionalChangesForAuthorsSection.push(change);
81365
+ const line = this.formatChange(change);
81366
+ this.breakingChanges.push(line);
81367
+ this.relevantChanges.splice(i, 1);
81368
+ }
81369
+ }
81370
+ }
81371
+ } else {
81372
+ for (const change of this.relevantChanges) {
81373
+ if (change.isBreaking) {
81374
+ const breakingChangeExplanation = change.body ? this.extractBreakingChangeExplanation(change.body) : "";
81375
+ this.breakingChanges.push(
81376
+ breakingChangeExplanation ? `- ${change.scope ? `**${change.scope.trim()}:** ` : ""}${breakingChangeExplanation}` : this.formatChange(change)
81377
+ );
81378
+ }
81379
+ }
81380
+ }
81381
+ }
81382
+ /**
81383
+ * Determines if the changelog entry should be rendered as empty. This is the case when there are no relevant changes, breaking changes, or dependency bumps.
81384
+ */
81385
+ // protected override shouldRenderEmptyEntry(): boolean {
81386
+ // return true;
81387
+ // }
81388
+ renderVersionTitle() {
81389
+ const isMajorVersion = `${(0, import_semver.major)(this.changelogEntryVersion)}.0.0` === this.changelogEntryVersion.replace(/^v/, "");
81390
+ return isMajorVersion ? `# ${generateChangelogTitle(this.changelogEntryVersion, this.project, this.workspaceConfig)}` : `## ${generateChangelogTitle(this.changelogEntryVersion, this.project, this.workspaceConfig)}`;
81391
+ }
81392
+ renderBreakingChanges() {
81393
+ return [
81394
+ "### Breaking Changes",
81395
+ "",
81396
+ ...Array.from(new Set(this.breakingChanges))
81397
+ ];
81398
+ }
81399
+ renderDependencyBumps() {
81400
+ const markdownLines = ["", "### Updated Dependencies", ""];
81401
+ _optionalChain([this, 'access', _194 => _194.dependencyBumps, 'optionalAccess', _195 => _195.forEach, 'call', _196 => _196(({ dependencyName, newVersion }) => {
81402
+ markdownLines.push(`- Updated ${dependencyName} to ${newVersion}`);
81403
+ })]);
81404
+ return markdownLines;
81405
+ }
81406
+ async renderAuthors() {
81407
+ const markdownLines = [];
81408
+ const _authors = /* @__PURE__ */ new Map();
81409
+ for (const change of [
81410
+ ...this.relevantChanges,
81411
+ ...this.additionalChangesForAuthorsSection
81412
+ ]) {
81413
+ if (!change.authors) {
81414
+ continue;
81415
+ }
81416
+ for (const author of change.authors) {
81417
+ const name = this.formatName(author.name);
81418
+ if (!name || name.includes("[bot]") || name === _optionalChain([this, 'access', _197 => _197.workspaceConfig, 'optionalAccess', _198 => _198.bot, 'access', _199 => _199.name])) {
81419
+ continue;
81420
+ }
81421
+ if (_authors.has(name)) {
81422
+ const entry = _authors.get(name);
81423
+ _optionalChain([entry, 'optionalAccess', _200 => _200.email, 'access', _201 => _201.add, 'call', _202 => _202(author.email)]);
81424
+ } else {
81425
+ _authors.set(name, { email: /* @__PURE__ */ new Set([author.email]) });
81426
+ }
81427
+ }
81428
+ }
81429
+ if (this.config.repoData && this.changelogRenderOptions.mapAuthorsToGitHubUsernames) {
81430
+ await Promise.all(
81431
+ [..._authors.keys()].map(async (authorName) => {
81432
+ const meta = _authors.get(authorName);
81433
+ if (!meta) {
81434
+ return;
81435
+ }
81436
+ for (const email of meta.email) {
81437
+ if (email.endsWith("@users.noreply.github.com")) {
81438
+ const match = email.match(
81439
+ /^(\d+\+)?([^@]+)@users\.noreply\.github\.com$/
81440
+ );
81441
+ if (match && match[2]) {
81442
+ meta.github = match[2];
81443
+ break;
81444
+ }
81445
+ }
81446
+ const { data } = await axios_default.get(`https://ungh.cc/users/find/${email}`).catch(() => ({ data: { user: null } }));
81447
+ if (_optionalChain([data, 'optionalAccess', _203 => _203.user])) {
81448
+ meta.github = data.user.username;
81449
+ break;
81450
+ }
81451
+ }
81452
+ })
81453
+ );
81454
+ }
81455
+ const authors = [..._authors.entries()].map((e) => ({
81456
+ name: e[0],
81457
+ ...e[1]
81458
+ }));
81459
+ if (authors.length > 0) {
81460
+ markdownLines.push(
81461
+ "",
81462
+ "### \u2764\uFE0F Thank You",
81463
+ "",
81464
+ ...authors.sort((a, b) => a.name.localeCompare(b.name)).map((i) => {
81465
+ const github = i.github ? ` @${i.github}` : "";
81466
+ return `- ${i.name}${github}`;
81467
+ })
81468
+ );
81469
+ }
81470
+ return markdownLines;
81471
+ }
81472
+ formatChange(change) {
81473
+ let description = change.description || "";
81474
+ let extraLines = [];
81475
+ let extraLinesStr = "";
81476
+ if (description.includes("\n")) {
81477
+ const lines2 = description.split("\n");
81478
+ if (lines2.length > 1) {
81479
+ description = lines2[0];
81480
+ extraLines = lines2.slice(1);
81481
+ }
81482
+ const indentation = " ";
81483
+ extraLinesStr = extraLines.filter((l) => l.trim().length > 0).map((l) => `${indentation}${l}`).join("\n");
81484
+ }
81485
+ let changeLine = "- " + (!this.isVersionPlans && change.scope ? `**${change.scope.trim()}:** ` : "") + description;
81486
+ if (this.config.repoData && change.githubReferences) {
81487
+ changeLine += this.remoteReleaseClient.formatReferences(
81488
+ change.githubReferences
81489
+ );
81490
+ }
81491
+ if (extraLinesStr) {
81492
+ changeLine += "\n\n" + extraLinesStr;
81493
+ }
81494
+ return changeLine;
81495
+ }
81496
+ }, _class16);
81247
81497
 
81248
81498
  // src/release/github.ts
81249
81499
  _chunkIG6EXAQUcjs.init_cjs_shims.call(void 0, );
@@ -81258,6 +81508,9 @@ var import_enquirer = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_enquirer(),
81258
81508
 
81259
81509
 
81260
81510
 
81511
+
81512
+
81513
+
81261
81514
  function getGitHubRepoData(remoteName = "origin", createReleaseConfig) {
81262
81515
  try {
81263
81516
  const remoteUrl = _child_process.execSync.call(void 0, `git remote get-url ${remoteName}`, {
@@ -81287,7 +81540,11 @@ function getGitHubRepoData(remoteName = "origin", createReleaseConfig) {
81287
81540
  );
81288
81541
  }
81289
81542
  } catch (error) {
81290
- return null;
81543
+ import_devkit.output.error({
81544
+ title: `Failed to get GitHub repo data`,
81545
+ bodyLines: [error.message]
81546
+ });
81547
+ return void 0;
81291
81548
  }
81292
81549
  }
81293
81550
  async function createOrUpdateGithubRelease(createReleaseConfig, releaseVersion, changelogContents, latestCommit, { dryRun }) {
@@ -81301,12 +81558,12 @@ async function createOrUpdateGithubRelease(createReleaseConfig, releaseVersion,
81301
81558
  });
81302
81559
  process.exit(1);
81303
81560
  }
81304
- const token = await resolveGithubToken(githubRepoData.hostname);
81561
+ const tokenData = await resolveTokenData(githubRepoData.hostname);
81305
81562
  const githubRequestConfig = {
81306
81563
  repo: githubRepoData.slug,
81307
81564
  hostname: githubRepoData.hostname,
81308
81565
  apiBaseUrl: githubRepoData.apiBaseUrl,
81309
- token
81566
+ token: _optionalChain([tokenData, 'optionalAccess', _204 => _204.token]) || null
81310
81567
  };
81311
81568
  let existingGithubReleaseForVersion;
81312
81569
  try {
@@ -81315,7 +81572,7 @@ async function createOrUpdateGithubRelease(createReleaseConfig, releaseVersion,
81315
81572
  releaseVersion.gitTag
81316
81573
  );
81317
81574
  } catch (err) {
81318
- if (_optionalChain([err, 'access', _189 => _189.response, 'optionalAccess', _190 => _190.status]) === 401) {
81575
+ if (_optionalChain([err, 'access', _205 => _205.response, 'optionalAccess', _206 => _206.status]) === 401) {
81319
81576
  import_devkit.output.error({
81320
81577
  title: `Unable to resolve data via the GitHub API. You can use any of the following options to resolve this:`,
81321
81578
  bodyLines: [
@@ -81325,7 +81582,7 @@ async function createOrUpdateGithubRelease(createReleaseConfig, releaseVersion,
81325
81582
  });
81326
81583
  process.exit(1);
81327
81584
  }
81328
- if (_optionalChain([err, 'access', _191 => _191.response, 'optionalAccess', _192 => _192.status]) === 404) {
81585
+ if (_optionalChain([err, 'access', _207 => _207.response, 'optionalAccess', _208 => _208.status]) === 404) {
81329
81586
  } else {
81330
81587
  throw err;
81331
81588
  }
@@ -81342,7 +81599,7 @@ async function createOrUpdateGithubRelease(createReleaseConfig, releaseVersion,
81342
81599
  }
81343
81600
  console.log("");
81344
81601
  _printchanges.printDiff.call(void 0,
81345
- _optionalChain([existingGithubReleaseForVersion, 'optionalAccess', _193 => _193.body]) ? existingGithubReleaseForVersion.body : "",
81602
+ _optionalChain([existingGithubReleaseForVersion, 'optionalAccess', _209 => _209.body]) ? existingGithubReleaseForVersion.body : "",
81346
81603
  changelogContents,
81347
81604
  3,
81348
81605
  _shared.noDiffInChangelogMessage
@@ -81369,7 +81626,7 @@ async function createOrUpdateGithubReleaseInternal(githubRequestConfig, release,
81369
81626
  if (result2.status === "manual") {
81370
81627
  if (result2.error) {
81371
81628
  process.exitCode = 1;
81372
- if (_optionalChain([result2, 'access', _194 => _194.error, 'access', _195 => _195.response, 'optionalAccess', _196 => _196.data])) {
81629
+ if (_optionalChain([result2, 'access', _210 => _210.error, 'access', _211 => _211.response, 'optionalAccess', _212 => _212.data])) {
81373
81630
  import_devkit.output.error({
81374
81631
  title: `A GitHub API Error occurred when creating/updating the release`,
81375
81632
  bodyLines: [
@@ -81407,13 +81664,10 @@ Follow up in the browser to manually create the release:
81407
81664
  ` + chalk2.underline(chalk2.cyan(result2.url)) + "\n"
81408
81665
  );
81409
81666
  });
81410
- }
81411
- if (result2.status === "manual") {
81412
81667
  if (result2.error) {
81413
81668
  console.error(result2.error);
81414
81669
  process.exitCode = 1;
81415
81670
  }
81416
- const open2 = (init_open(), _chunkIG6EXAQUcjs.__toCommonJS.call(void 0, open_exports));
81417
81671
  await open2(result2.url).then(() => {
81418
81672
  console.info(
81419
81673
  `Follow up in the browser to manually create the release.`
@@ -81446,7 +81700,7 @@ async function promptForContinueInGitHub() {
81446
81700
  }
81447
81701
  ]);
81448
81702
  return reply.open === "Yes";
81449
- } catch (e16) {
81703
+ } catch (e17) {
81450
81704
  process.stdout.write("\x1B[?25h");
81451
81705
  process.exit(1);
81452
81706
  }
@@ -81483,13 +81737,13 @@ async function syncGithubRelease(githubRequestConfig, release, existingGithubRel
81483
81737
  };
81484
81738
  }
81485
81739
  }
81486
- async function resolveGithubToken(hostname) {
81487
- const tokenFromEnv = process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
81740
+ async function resolveTokenData(hostname) {
81741
+ const tokenFromEnv = process.env.STORM_BOT_GITHUB_TOKEN || process.env.GITHUB_TOKEN || process.env.GH_TOKEN;
81488
81742
  if (tokenFromEnv) {
81489
- return tokenFromEnv;
81743
+ return { token: tokenFromEnv, headerName: "Authorization" };
81490
81744
  }
81491
- const ghCLIPath = _chunkXE275LJTcjs.joinPaths.call(void 0,
81492
- process.env.XDG_CONFIG_HOME || _chunkXE275LJTcjs.joinPaths.call(void 0, _os.homedir.call(void 0, ), ".config"),
81745
+ const ghCLIPath = (0, import_devkit.joinPathFragments)(
81746
+ process.env.XDG_CONFIG_HOME || (0, import_devkit.joinPathFragments)(_os.homedir.call(void 0, ), ".config"),
81493
81747
  "gh",
81494
81748
  "hosts.yml"
81495
81749
  );
@@ -81502,11 +81756,12 @@ async function resolveGithubToken(hostname) {
81502
81756
  return ghCLIConfig[hostname].oauth_token;
81503
81757
  }
81504
81758
  if (ghCLIConfig[hostname].user && ghCLIConfig[hostname].git_protocol === "ssh") {
81505
- return _child_process.execSync.call(void 0, `gh auth token`, {
81759
+ const token = _child_process.execSync.call(void 0, `gh auth token`, {
81506
81760
  encoding: "utf8",
81507
81761
  stdio: "pipe",
81508
81762
  windowsHide: false
81509
81763
  }).trim();
81764
+ return { token, headerName: "Authorization" };
81510
81765
  }
81511
81766
  }
81512
81767
  }
@@ -81515,7 +81770,9 @@ async function resolveGithubToken(hostname) {
81515
81770
  `Warning: It was not possible to automatically resolve a GitHub token from your environment for hostname ${hostname}. If you set the GITHUB_TOKEN or GH_TOKEN environment variable, that will be used for GitHub API requests.`
81516
81771
  );
81517
81772
  }
81518
- return null;
81773
+ throw new Error(
81774
+ `Unable to resolve a GitHub token for hostname ${hostname}. Please set the GITHUB_TOKEN or GH_TOKEN environment variable, or ensure you have an active session via the official gh CLI tool (https://cli.github.com).`
81775
+ );
81519
81776
  }
81520
81777
  async function getGithubReleaseByTag(config, tag) {
81521
81778
  return await makeGithubRequest(
@@ -81557,206 +81814,24 @@ function githubNewReleaseURL(config, release) {
81557
81814
  }
81558
81815
  return url2;
81559
81816
  }
81560
- var providerToRefSpec = {
81561
- github: { "pull-request": "pull", hash: "commit", issue: "issues" }
81562
- };
81563
- function formatReference(ref, repoData) {
81564
- const refSpec = providerToRefSpec["github"];
81565
- return `[${ref.value}](https://${repoData.hostname}/${repoData.slug}/${refSpec[ref.type]}/${ref.value.replace(/^#/, "")})`;
81566
- }
81567
- function formatReferences(references, repoData) {
81568
- const pr = references.filter((ref) => ref.type === "pull-request");
81569
- const issue = references.filter((ref) => ref.type === "issue");
81570
- if (pr.length > 0 || issue.length > 0) {
81571
- return " (" + [...pr, ...issue].map((ref) => formatReference(ref, repoData)).join(", ") + ")";
81572
- }
81573
- if (references.length > 0) {
81574
- return " (" + formatReference(references[0], repoData) + ")";
81817
+ async function createGithubRemoteReleaseClient(remoteName = "origin") {
81818
+ const repoData = getGitHubRepoData(remoteName, "github");
81819
+ if (!repoData) {
81820
+ throw new Error(
81821
+ `Unable to create a remote release client because the GitHub repo slug could not be determined. Please ensure you have a valid GitHub remote configured.`
81822
+ );
81575
81823
  }
81576
- return "";
81824
+ return new (0, _github.GithubRemoteReleaseClient)(
81825
+ repoData,
81826
+ {
81827
+ provider: "github",
81828
+ hostname: repoData.hostname,
81829
+ apiBaseUrl: repoData.apiBaseUrl
81830
+ },
81831
+ await resolveTokenData(repoData.hostname)
81832
+ );
81577
81833
  }
81578
81834
 
81579
- // src/release/changelog-renderer.ts
81580
- var StormChangelogRenderer = (_class16 = class extends _changelogrenderer2.default {
81581
- /**
81582
- * The Storm workspace configuration object, which is loaded from the storm-workspace.json file.
81583
- */
81584
- __init43() {this.workspaceConfig = null}
81585
- /**
81586
- * A ChangelogRenderer class takes in the determined changes and other relevant metadata and returns a string, or a Promise of a string of changelog contents (usually markdown).
81587
- *
81588
- * @param config - The configuration object for the ChangelogRenderer
81589
- */
81590
- constructor(config) {
81591
- super(config);_class16.prototype.__init43.call(this);;
81592
- }
81593
- async render() {
81594
- this.workspaceConfig = await _chunkXE275LJTcjs.getWorkspaceConfig.call(void 0, );
81595
- return await super.render();
81596
- }
81597
- preprocessChanges() {
81598
- this.relevantChanges = [...this.changes];
81599
- this.breakingChanges = [];
81600
- this.additionalChangesForAuthorsSection = [];
81601
- for (let i = this.relevantChanges.length - 1; i >= 0; i--) {
81602
- const change = this.relevantChanges[i];
81603
- if (change && change.type === "revert" && change.revertedHashes) {
81604
- for (const revertedHash of change.revertedHashes) {
81605
- const revertedCommitIndex = this.relevantChanges.findIndex(
81606
- (c) => c.shortHash && revertedHash.startsWith(c.shortHash)
81607
- );
81608
- if (revertedCommitIndex !== -1) {
81609
- this.relevantChanges.splice(revertedCommitIndex, 1);
81610
- this.relevantChanges.splice(i, 1);
81611
- i--;
81612
- break;
81613
- }
81614
- }
81615
- }
81616
- }
81617
- if (this.isVersionPlans) {
81618
- this.conventionalCommitsConfig = {
81619
- types: {
81620
- feat: _conventionalcommits.DEFAULT_CONVENTIONAL_COMMITS_CONFIG.types.feat,
81621
- fix: _conventionalcommits.DEFAULT_CONVENTIONAL_COMMITS_CONFIG.types.fix
81622
- }
81623
- };
81624
- for (let i = this.relevantChanges.length - 1; i >= 0; i--) {
81625
- if (_optionalChain([this, 'access', _197 => _197.relevantChanges, 'access', _198 => _198[i], 'optionalAccess', _199 => _199.isBreaking])) {
81626
- const change = this.relevantChanges[i];
81627
- if (change) {
81628
- this.additionalChangesForAuthorsSection.push(change);
81629
- const line = this.formatChange(change);
81630
- this.breakingChanges.push(line);
81631
- this.relevantChanges.splice(i, 1);
81632
- }
81633
- }
81634
- }
81635
- } else {
81636
- for (const change of this.relevantChanges) {
81637
- if (change.isBreaking) {
81638
- const breakingChangeExplanation = change.body ? this.extractBreakingChangeExplanation(change.body) : "";
81639
- this.breakingChanges.push(
81640
- breakingChangeExplanation ? `- ${change.scope ? `**${change.scope.trim()}:** ` : ""}${breakingChangeExplanation}` : this.formatChange(change)
81641
- );
81642
- }
81643
- }
81644
- }
81645
- }
81646
- /**
81647
- * Determines if the changelog entry should be rendered as empty. This is the case when there are no relevant changes, breaking changes, or dependency bumps.
81648
- */
81649
- // protected override shouldRenderEmptyEntry(): boolean {
81650
- // return true;
81651
- // }
81652
- renderVersionTitle() {
81653
- const isMajorVersion = `${(0, import_semver.major)(this.changelogEntryVersion)}.0.0` === this.changelogEntryVersion.replace(/^v/, "");
81654
- return isMajorVersion ? `# ${generateChangelogTitle(this.changelogEntryVersion, this.project, this.workspaceConfig)}` : `## ${generateChangelogTitle(this.changelogEntryVersion, this.project, this.workspaceConfig)}`;
81655
- }
81656
- renderBreakingChanges() {
81657
- return [
81658
- "### Breaking Changes",
81659
- "",
81660
- ...Array.from(new Set(this.breakingChanges))
81661
- ];
81662
- }
81663
- renderDependencyBumps() {
81664
- const markdownLines = ["", "### Updated Dependencies", ""];
81665
- _optionalChain([this, 'access', _200 => _200.dependencyBumps, 'optionalAccess', _201 => _201.forEach, 'call', _202 => _202(({ dependencyName, newVersion }) => {
81666
- markdownLines.push(`- Updated ${dependencyName} to ${newVersion}`);
81667
- })]);
81668
- return markdownLines;
81669
- }
81670
- async renderAuthors() {
81671
- const markdownLines = [];
81672
- const _authors = /* @__PURE__ */ new Map();
81673
- for (const change of [
81674
- ...this.relevantChanges,
81675
- ...this.additionalChangesForAuthorsSection
81676
- ]) {
81677
- if (!change.authors) {
81678
- continue;
81679
- }
81680
- for (const author of change.authors) {
81681
- const name = this.formatName(author.name);
81682
- if (!name || name.includes("[bot]") || name === _optionalChain([this, 'access', _203 => _203.workspaceConfig, 'optionalAccess', _204 => _204.bot, 'access', _205 => _205.name])) {
81683
- continue;
81684
- }
81685
- if (_authors.has(name)) {
81686
- const entry = _authors.get(name);
81687
- _optionalChain([entry, 'optionalAccess', _206 => _206.email, 'access', _207 => _207.add, 'call', _208 => _208(author.email)]);
81688
- } else {
81689
- _authors.set(name, { email: /* @__PURE__ */ new Set([author.email]) });
81690
- }
81691
- }
81692
- }
81693
- if (this.repoData && this.changelogRenderOptions.mapAuthorsToGitHubUsernames) {
81694
- await Promise.all(
81695
- [..._authors.keys()].map(async (authorName) => {
81696
- const meta = _authors.get(authorName);
81697
- if (!meta) {
81698
- return;
81699
- }
81700
- for (const email of meta.email) {
81701
- if (email.endsWith("@users.noreply.github.com")) {
81702
- const match = email.match(
81703
- /^(\d+\+)?([^@]+)@users\.noreply\.github\.com$/
81704
- );
81705
- if (match && match[2]) {
81706
- meta.github = match[2];
81707
- break;
81708
- }
81709
- }
81710
- const { data } = await axios_default.get(`https://ungh.cc/users/find/${email}`).catch(() => ({ data: { user: null } }));
81711
- if (_optionalChain([data, 'optionalAccess', _209 => _209.user])) {
81712
- meta.github = data.user.username;
81713
- break;
81714
- }
81715
- }
81716
- })
81717
- );
81718
- }
81719
- const authors = [..._authors.entries()].map((e) => ({
81720
- name: e[0],
81721
- ...e[1]
81722
- }));
81723
- if (authors.length > 0) {
81724
- markdownLines.push(
81725
- "",
81726
- "### \u2764\uFE0F Thank You",
81727
- "",
81728
- ...authors.sort((a, b) => a.name.localeCompare(b.name)).map((i) => {
81729
- const github = i.github ? ` @${i.github}` : "";
81730
- return `- ${i.name}${github}`;
81731
- })
81732
- );
81733
- }
81734
- return markdownLines;
81735
- }
81736
- formatChange(change) {
81737
- let description = change.description || "";
81738
- let extraLines = [];
81739
- let extraLinesStr = "";
81740
- if (description.includes("\n")) {
81741
- const lines2 = description.split("\n");
81742
- if (lines2.length > 1) {
81743
- description = lines2[0];
81744
- extraLines = lines2.slice(1);
81745
- }
81746
- const indentation = " ";
81747
- extraLinesStr = extraLines.filter((l) => l.trim().length > 0).map((l) => `${indentation}${l}`).join("\n");
81748
- }
81749
- let changeLine = "- " + (!this.isVersionPlans && change.scope ? `**${change.scope.trim()}:** ` : "") + description;
81750
- if (this.repoData && this.changelogRenderOptions.commitReferences && change.githubReferences) {
81751
- changeLine += formatReferences(change.githubReferences, this.repoData);
81752
- }
81753
- if (extraLinesStr) {
81754
- changeLine += "\n\n" + extraLinesStr;
81755
- }
81756
- return changeLine;
81757
- }
81758
- }, _class16);
81759
-
81760
81835
  // src/release/changelog.ts
81761
81836
  function createAPI(overrideReleaseConfig) {
81762
81837
  return async function releaseChangelog(args) {
@@ -81821,7 +81896,7 @@ function createAPI(overrideReleaseConfig) {
81821
81896
  if (args.deleteVersionPlans === void 0) {
81822
81897
  args.deleteVersionPlans = true;
81823
81898
  }
81824
- const changelogGenerationEnabled = !!_optionalChain([nxReleaseConfig, 'optionalAccess', _210 => _210.changelog, 'optionalAccess', _211 => _211.workspaceChangelog]) || _optionalChain([nxReleaseConfig, 'optionalAccess', _212 => _212.groups]) && Object.values(_optionalChain([nxReleaseConfig, 'optionalAccess', _213 => _213.groups])).some((g) => g.changelog);
81899
+ const changelogGenerationEnabled = !!_optionalChain([nxReleaseConfig, 'optionalAccess', _213 => _213.changelog, 'optionalAccess', _214 => _214.workspaceChangelog]) || _optionalChain([nxReleaseConfig, 'optionalAccess', _215 => _215.groups]) && Object.values(_optionalChain([nxReleaseConfig, 'optionalAccess', _216 => _216.groups])).some((g) => g.changelog);
81825
81900
  if (!changelogGenerationEnabled) {
81826
81901
  _output.output.warn({
81827
81902
  title: `Changelogs are disabled. No changelog entries will be generated`,
@@ -81832,7 +81907,7 @@ function createAPI(overrideReleaseConfig) {
81832
81907
  return {};
81833
81908
  }
81834
81909
  const tree = new (0, _tree.FsTree)(_workspaceroot.workspaceRoot, !!args.verbose);
81835
- const useAutomaticFromRef = _optionalChain([nxReleaseConfig, 'optionalAccess', _214 => _214.changelog, 'optionalAccess', _215 => _215.automaticFromRef]) || args.firstRelease;
81910
+ const useAutomaticFromRef = _optionalChain([nxReleaseConfig, 'optionalAccess', _217 => _217.changelog, 'optionalAccess', _218 => _218.automaticFromRef]) || args.firstRelease;
81836
81911
  const { workspaceChangelogVersion, projectsVersionData } = resolveChangelogVersions(
81837
81912
  args,
81838
81913
  releaseGroups,
@@ -81841,20 +81916,20 @@ function createAPI(overrideReleaseConfig) {
81841
81916
  const to = args.to || "HEAD";
81842
81917
  const toSHA = await _git.getCommitHash.call(void 0, to);
81843
81918
  const headSHA = to === "HEAD" ? toSHA : await _git.getCommitHash.call(void 0, "HEAD");
81844
- const autoCommitEnabled = _nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'access', _216 => _216.changelog, 'optionalAccess', _217 => _217.git, 'access', _218 => _218.commit])));
81919
+ const autoCommitEnabled = _nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'access', _219 => _219.changelog, 'optionalAccess', _220 => _220.git, 'access', _221 => _221.commit])));
81845
81920
  if (autoCommitEnabled && headSHA !== toSHA) {
81846
81921
  throw new Error(
81847
81922
  `You are attempting to recreate the changelog for an old release (Head: "${headSHA}", To: "${toSHA}", From: "${args.from}"), but you have enabled auto-commit mode. Please disable auto-commit mode by updating your nx.json, or passing --git-commit=false`
81848
81923
  );
81849
81924
  }
81850
- const commitMessage = args.gitCommitMessage || _optionalChain([nxReleaseConfig, 'access', _219 => _219.changelog, 'optionalAccess', _220 => _220.git, 'optionalAccess', _221 => _221.commitMessage]);
81925
+ const commitMessage = args.gitCommitMessage || _optionalChain([nxReleaseConfig, 'access', _222 => _222.changelog, 'optionalAccess', _223 => _223.git, 'optionalAccess', _224 => _224.commitMessage]);
81851
81926
  const commitMessageValues = _shared.createCommitMessageValues.call(void 0,
81852
81927
  releaseGroups,
81853
81928
  releaseGroupToFilteredProjects,
81854
81929
  projectsVersionData,
81855
81930
  commitMessage
81856
81931
  );
81857
- const gitTagValues = _nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'access', _222 => _222.changelog, 'optionalAccess', _223 => _223.git, 'access', _224 => _224.tag]))) ? _shared.createGitTagValues.call(void 0,
81932
+ const gitTagValues = _nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'access', _225 => _225.changelog, 'optionalAccess', _226 => _226.git, 'access', _227 => _227.tag]))) ? _shared.createGitTagValues.call(void 0,
81858
81933
  releaseGroups,
81859
81934
  releaseGroupToFilteredProjects,
81860
81935
  projectsVersionData
@@ -81915,7 +81990,7 @@ function createAPI(overrideReleaseConfig) {
81915
81990
  nxReleaseConfig.releaseTagPattern,
81916
81991
  {},
81917
81992
  nxReleaseConfig.releaseTagPatternCheckAllBranchesWhen
81918
- )), 'optionalAccess', async _225 => _225.tag]);
81993
+ )), 'optionalAccess', async _228 => _228.tag]);
81919
81994
  if (!workspaceChangelogFromRef) {
81920
81995
  if (useAutomaticFromRef) {
81921
81996
  workspaceChangelogFromRef = await _git.getFirstGitCommit.call(void 0, );
@@ -81969,7 +82044,7 @@ function createAPI(overrideReleaseConfig) {
81969
82044
  )
81970
82045
  });
81971
82046
  if (workspaceChangelog && shouldCreateGitHubRelease(
81972
- _optionalChain([nxReleaseConfig, 'access', _226 => _226.changelog, 'optionalAccess', _227 => _227.workspaceChangelog]),
82047
+ _optionalChain([nxReleaseConfig, 'access', _229 => _229.changelog, 'optionalAccess', _230 => _230.workspaceChangelog]),
81973
82048
  args.createRelease
81974
82049
  )) {
81975
82050
  postGitTasks.push(async (latestCommit) => {
@@ -81983,7 +82058,7 @@ function createAPI(overrideReleaseConfig) {
81983
82058
 
81984
82059
  ${contents}`);
81985
82060
  await createOrUpdateGithubRelease(
81986
- _optionalChain([nxReleaseConfig, 'access', _228 => _228.changelog, 'optionalAccess', _229 => _229.workspaceChangelog]) ? _optionalChain([nxReleaseConfig, 'access', _230 => _230.changelog, 'optionalAccess', _231 => _231.workspaceChangelog, 'access', _232 => _232.createRelease]) : _github.defaultCreateReleaseProvider,
82061
+ _optionalChain([nxReleaseConfig, 'access', _231 => _231.changelog, 'optionalAccess', _232 => _232.workspaceChangelog]) ? _optionalChain([nxReleaseConfig, 'access', _233 => _233.changelog, 'optionalAccess', _234 => _234.workspaceChangelog, 'access', _235 => _235.createRelease]) : _github.defaultCreateReleaseProvider,
81987
82062
  workspaceChangelog.releaseVersion,
81988
82063
  contents,
81989
82064
  latestCommit,
@@ -82001,13 +82076,13 @@ ${contents}`);
82001
82076
  continue;
82002
82077
  }
82003
82078
  for (const project of releaseGroup.projects) {
82004
- if (!_optionalChain([projectsVersionData, 'access', _233 => _233[project], 'optionalAccess', _234 => _234.newVersion])) {
82079
+ if (!_optionalChain([projectsVersionData, 'access', _236 => _236[project], 'optionalAccess', _237 => _237.newVersion])) {
82005
82080
  continue;
82006
82081
  }
82007
82082
  const dependentProjects = (projectsVersionData[project].dependentProjects || []).map((dep) => {
82008
82083
  return {
82009
82084
  dependencyName: dep.source,
82010
- newVersion: _optionalChain([projectsVersionData, 'access', _235 => _235[dep.source], 'optionalAccess', _236 => _236.newVersion])
82085
+ newVersion: _optionalChain([projectsVersionData, 'access', _238 => _238[dep.source], 'optionalAccess', _239 => _239.newVersion])
82011
82086
  };
82012
82087
  }).filter((b) => b.newVersion !== null);
82013
82088
  for (const dependent of dependentProjects) {
@@ -82029,13 +82104,13 @@ ${contents}`);
82029
82104
  if (config === false) {
82030
82105
  continue;
82031
82106
  }
82032
- const projects = _optionalChain([args, 'access', _237 => _237.projects, 'optionalAccess', _238 => _238.length]) ? (
82107
+ const projects = _optionalChain([args, 'access', _240 => _240.projects, 'optionalAccess', _241 => _241.length]) ? (
82033
82108
  // If the user has passed a list of projects, we need to use the filtered list of projects within the release group, plus any dependents
82034
82109
  Array.from(releaseGroupToFilteredProjects.get(releaseGroup)).flatMap(
82035
82110
  (project) => {
82036
82111
  return [
82037
82112
  project,
82038
- ..._optionalChain([projectsVersionData, 'access', _239 => _239[project], 'optionalAccess', _240 => _240.dependentProjects, 'access', _241 => _241.map, 'call', _242 => _242(
82113
+ ..._optionalChain([projectsVersionData, 'access', _242 => _242[project], 'optionalAccess', _243 => _243.dependentProjects, 'access', _244 => _244.map, 'call', _245 => _245(
82039
82114
  (dep) => dep.source
82040
82115
  )]) || []
82041
82116
  ];
@@ -82080,14 +82155,14 @@ ${contents}`);
82080
82155
  releaseGroupName: releaseGroup.name
82081
82156
  },
82082
82157
  releaseGroup.releaseTagPatternCheckAllBranchesWhen
82083
- )), 'optionalAccess', async _243 => _243.tag]);
82158
+ )), 'optionalAccess', async _246 => _246.tag]);
82084
82159
  if (!fromRef && useAutomaticFromRef) {
82085
82160
  const firstCommit = await _git.getFirstGitCommit.call(void 0, );
82086
82161
  const allCommits = await getCommits(firstCommit, toSHA);
82087
82162
  const commitsForProject = allCommits.filter(
82088
82163
  (c) => c.affectedFiles.find((f) => f.startsWith(project.data.root))
82089
82164
  );
82090
- fromRef = _optionalChain([commitsForProject, 'access', _244 => _244[0], 'optionalAccess', _245 => _245.shortHash]);
82165
+ fromRef = _optionalChain([commitsForProject, 'access', _247 => _247[0], 'optionalAccess', _248 => _248.shortHash]);
82091
82166
  if (args.verbose) {
82092
82167
  console.log(
82093
82168
  `Determined --from ref for ${project.name} from the first commit in which it exists: ${fromRef}`
@@ -82115,7 +82190,7 @@ ${contents}`);
82115
82190
  body: c.body,
82116
82191
  isBreaking: c.isBreaking,
82117
82192
  githubReferences: c.references,
82118
- // TODO(JamesHenry): Implement support for Co-authored-by and adding multiple authors
82193
+ // TODO: Implement support for Co-authored-by and adding multiple authors
82119
82194
  authors: [c.author],
82120
82195
  shortHash: c.shortHash,
82121
82196
  revertedHashes: c.revertedHashes,
@@ -82215,7 +82290,7 @@ ${contents}`);
82215
82290
  releaseGroup.releaseTagPattern,
82216
82291
  {},
82217
82292
  releaseGroup.releaseTagPatternCheckAllBranchesWhen
82218
- )), 'optionalAccess', async _246 => _246.tag]);
82293
+ )), 'optionalAccess', async _249 => _249.tag]);
82219
82294
  if (!fromRef) {
82220
82295
  if (useAutomaticFromRef) {
82221
82296
  fromRef = await _git.getFirstGitCommit.call(void 0, );
@@ -82244,7 +82319,7 @@ ${contents}`);
82244
82319
  body: c.body,
82245
82320
  isBreaking: c.isBreaking,
82246
82321
  githubReferences: c.references,
82247
- // TODO(JamesHenry): Implement support for Co-authored-by and adding multiple authors
82322
+ // TODO: Implement support for Co-authored-by and adding multiple authors
82248
82323
  authors: [c.author],
82249
82324
  shortHash: c.shortHash,
82250
82325
  revertedHashes: c.revertedHashes,
@@ -82404,17 +82479,17 @@ async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTa
82404
82479
  });
82405
82480
  deletedFiles = Array.from(planFiles);
82406
82481
  }
82407
- if (_nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'access', _247 => _247.changelog, 'optionalAccess', _248 => _248.git, 'access', _249 => _249.commit])))) {
82408
- await _shared.commitChanges.call(void 0, {
82482
+ if (_nullishCoalesce(args.gitCommit, () => ( _optionalChain([nxReleaseConfig, 'access', _250 => _250.changelog, 'optionalAccess', _251 => _251.git, 'access', _252 => _252.commit])))) {
82483
+ await commitChanges({
82409
82484
  changedFiles,
82410
82485
  deletedFiles,
82411
82486
  isDryRun: !!args.dryRun,
82412
82487
  isVerbose: !!args.verbose,
82413
82488
  gitCommitMessages: commitMessageValues,
82414
- gitCommitArgs: args.gitCommitArgs || _optionalChain([nxReleaseConfig, 'access', _250 => _250.changelog, 'optionalAccess', _251 => _251.git, 'access', _252 => _252.commitArgs])
82489
+ gitCommitArgs: _nullishCoalesce(args.gitCommitArgs, () => ( _optionalChain([nxReleaseConfig, 'access', _253 => _253.changelog, 'optionalAccess', _254 => _254.git, 'access', _255 => _255.commitArgs])))
82415
82490
  });
82416
82491
  latestCommit = await _git.getCommitHash.call(void 0, "HEAD");
82417
- } else if ((_nullishCoalesce(args.stageChanges, () => ( _optionalChain([nxReleaseConfig, 'access', _253 => _253.changelog, 'optionalAccess', _254 => _254.git, 'access', _255 => _255.stageChanges])))) && changes.length) {
82492
+ } else if ((_nullishCoalesce(args.stageChanges, () => ( _optionalChain([nxReleaseConfig, 'access', _256 => _256.changelog, 'optionalAccess', _257 => _257.git, 'access', _258 => _258.stageChanges])))) && changes.length) {
82418
82493
  _output.output.logSingleLine(`Staging changed files with git`);
82419
82494
  await _git.gitAdd.call(void 0, {
82420
82495
  changedFiles,
@@ -82423,25 +82498,24 @@ async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTa
82423
82498
  verbose: args.verbose
82424
82499
  });
82425
82500
  }
82426
- if (_nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'access', _256 => _256.changelog, 'optionalAccess', _257 => _257.git, 'access', _258 => _258.tag])))) {
82501
+ if (_nullishCoalesce(args.gitTag, () => ( _optionalChain([nxReleaseConfig, 'access', _259 => _259.changelog, 'optionalAccess', _260 => _260.git, 'access', _261 => _261.tag])))) {
82427
82502
  _output.output.logSingleLine(`Tagging commit with git`);
82428
82503
  for (const tag of gitTagValues) {
82429
82504
  await gitTag({
82430
82505
  tag,
82431
- message: args.gitTagMessage || _optionalChain([nxReleaseConfig, 'access', _259 => _259.changelog, 'optionalAccess', _260 => _260.git, 'access', _261 => _261.tagMessage]),
82432
- additionalArgs: args.gitTagArgs || _optionalChain([nxReleaseConfig, 'access', _262 => _262.changelog, 'optionalAccess', _263 => _263.git, 'access', _264 => _264.tagArgs]),
82506
+ message: args.gitTagMessage || _optionalChain([nxReleaseConfig, 'access', _262 => _262.changelog, 'optionalAccess', _263 => _263.git, 'access', _264 => _264.tagMessage]),
82507
+ additionalArgs: args.gitTagArgs || _optionalChain([nxReleaseConfig, 'access', _265 => _265.changelog, 'optionalAccess', _266 => _266.git, 'access', _267 => _267.tagArgs]),
82433
82508
  dryRun: args.dryRun,
82434
82509
  verbose: args.verbose
82435
82510
  });
82436
82511
  }
82437
82512
  }
82438
- if (_nullishCoalesce(args.gitPush, () => ( _optionalChain([nxReleaseConfig, 'access', _265 => _265.changelog, 'optionalAccess', _266 => _266.git, 'access', _267 => _267.push])))) {
82513
+ if (_nullishCoalesce(args.gitPush, () => ( _optionalChain([nxReleaseConfig, 'access', _268 => _268.changelog, 'optionalAccess', _269 => _269.git, 'access', _270 => _270.push])))) {
82439
82514
  _output.output.logSingleLine(`Pushing to git remote "${args.gitRemote}"`);
82440
82515
  await _git.gitPush.call(void 0, {
82441
82516
  gitRemote: args.gitRemote,
82442
82517
  dryRun: args.dryRun,
82443
82518
  verbose: args.verbose
82444
- // additionalArgs: ["--signed=if-asked"]
82445
82519
  });
82446
82520
  }
82447
82521
  for (const postGitTask of postGitTasks) {
@@ -82452,11 +82526,9 @@ async function applyChangesAndExit(args, nxReleaseConfig, tree, toSHA, postGitTa
82452
82526
  async function generateChangelogForWorkspace({
82453
82527
  tree,
82454
82528
  args,
82455
- projectGraph,
82456
82529
  nxReleaseConfig,
82457
82530
  workspaceChangelogVersion,
82458
- changes,
82459
- commits
82531
+ changes
82460
82532
  }) {
82461
82533
  const workspaceConfig = await _chunkXE275LJTcjs.getWorkspaceConfig.call(void 0, );
82462
82534
  if (!workspaceConfig) {
@@ -82464,7 +82536,7 @@ async function generateChangelogForWorkspace({
82464
82536
  `Unable to determine the Storm workspace config. Please ensure that your storm-workspace.json file is present and valid.`
82465
82537
  );
82466
82538
  }
82467
- const config = _optionalChain([nxReleaseConfig, 'access', _268 => _268.changelog, 'optionalAccess', _269 => _269.workspaceChangelog]);
82539
+ const config = _optionalChain([nxReleaseConfig, 'access', _271 => _271.changelog, 'optionalAccess', _272 => _272.workspaceChangelog]);
82468
82540
  if (config === false) {
82469
82541
  return;
82470
82542
  }
@@ -82486,7 +82558,7 @@ async function generateChangelogForWorkspace({
82486
82558
  });
82487
82559
  return;
82488
82560
  }
82489
- if (_optionalChain([Object, 'access', _270 => _270.values, 'call', _271 => _271(_nullishCoalesce(nxReleaseConfig.groups, () => ( {}))), 'access', _272 => _272[0], 'optionalAccess', _273 => _273.projectsRelationship]) === "independent") {
82561
+ if (_optionalChain([Object, 'access', _273 => _273.values, 'call', _274 => _274(_nullishCoalesce(nxReleaseConfig.groups, () => ( {}))), 'access', _275 => _275[0], 'optionalAccess', _276 => _276.projectsRelationship]) === "independent") {
82490
82562
  _output.output.warn({
82491
82563
  title: `Workspace changelog is enabled, but you have configured an independent projects relationship. This is not supported, so workspace changelog will be disabled.`,
82492
82564
  bodyLines: [
@@ -82522,16 +82594,16 @@ async function generateChangelogForWorkspace({
82522
82594
  )}`
82523
82595
  });
82524
82596
  }
82525
- const githubRepoData = getGitHubRepoData(gitRemote, config.createRelease);
82597
+ const remoteReleaseClient = await createGithubRemoteReleaseClient(gitRemote);
82526
82598
  const changelogRenderer = new StormChangelogRenderer({
82527
82599
  changes,
82528
82600
  changelogEntryVersion: releaseVersion.rawVersion,
82529
82601
  project: null,
82530
82602
  isVersionPlans: false,
82531
- repoData: githubRepoData,
82532
82603
  entryWhenNoChanges: config.entryWhenNoChanges,
82533
82604
  changelogRenderOptions: config.renderOptions,
82534
- conventionalCommitsConfig: nxReleaseConfig.conventionalCommits
82605
+ conventionalCommitsConfig: nxReleaseConfig.conventionalCommits,
82606
+ remoteReleaseClient
82535
82607
  });
82536
82608
  let contents = await changelogRenderer.render();
82537
82609
  if (interactive) {
@@ -82552,7 +82624,7 @@ async function generateChangelogForWorkspace({
82552
82624
  releaseVersion,
82553
82625
  interpolatedTreePath,
82554
82626
  contents,
82555
- tree.exists(interpolatedTreePath) ? _optionalChain([tree, 'access', _274 => _274.read, 'call', _275 => _275(interpolatedTreePath), 'optionalAccess', _276 => _276.toString, 'call', _277 => _277()]) : "",
82627
+ tree.exists(interpolatedTreePath) ? _optionalChain([tree, 'access', _277 => _277.read, 'call', _278 => _278(interpolatedTreePath), 'optionalAccess', _279 => _279.toString, 'call', _280 => _280()]) : "",
82556
82628
  null,
82557
82629
  workspaceConfig
82558
82630
  )
@@ -82597,11 +82669,12 @@ async function generateChangelogForProjects({
82597
82669
  workspaceRoot: ""
82598
82670
  });
82599
82671
  }
82600
- if (!_optionalChain([projectsVersionData, 'access', _278 => _278[project.name], 'optionalAccess', _279 => _279.newVersion])) {
82672
+ const newVersion = _optionalChain([projectsVersionData, 'access', _281 => _281[project.name], 'optionalAccess', _282 => _282.newVersion]);
82673
+ if (!newVersion) {
82601
82674
  continue;
82602
82675
  }
82603
82676
  const releaseVersion = new (0, _shared.ReleaseVersion)({
82604
- version: projectsVersionData[project.name].newVersion,
82677
+ version: newVersion,
82605
82678
  releaseTagPattern: releaseGroup.releaseTagPattern,
82606
82679
  projectName: project.name
82607
82680
  });
@@ -82612,15 +82685,11 @@ async function generateChangelogForProjects({
82612
82685
  releaseVersion.gitTag
82613
82686
  )}`
82614
82687
  });
82615
- const githubRepoData = getGitHubRepoData(
82616
- gitRemote,
82617
- config.createRelease
82618
- );
82688
+ const remoteReleaseClient = await createGithubRemoteReleaseClient(gitRemote);
82619
82689
  const changelogRenderer = new StormChangelogRenderer({
82620
82690
  changes,
82621
82691
  changelogEntryVersion: releaseVersion.rawVersion,
82622
82692
  project: project.name,
82623
- repoData: githubRepoData,
82624
82693
  entryWhenNoChanges: typeof config.entryWhenNoChanges === "string" ? _utils.interpolate.call(void 0, config.entryWhenNoChanges, {
82625
82694
  projectName: project.name,
82626
82695
  projectRoot: project.data.root,
@@ -82629,7 +82698,8 @@ async function generateChangelogForProjects({
82629
82698
  changelogRenderOptions: config.renderOptions,
82630
82699
  isVersionPlans: !!releaseGroup.versionPlans,
82631
82700
  conventionalCommitsConfig: releaseGroup.versionPlans ? null : nxReleaseConfig.conventionalCommits,
82632
- dependencyBumps: projectToAdditionalDependencyBumps.get(project.name)
82701
+ dependencyBumps: projectToAdditionalDependencyBumps.get(project.name),
82702
+ remoteReleaseClient
82633
82703
  });
82634
82704
  let contents = await changelogRenderer.render();
82635
82705
  _output.output.log({
@@ -82655,7 +82725,7 @@ ${contents}`.trim()
82655
82725
  releaseVersion,
82656
82726
  interpolatedTreePath,
82657
82727
  contents,
82658
- tree.exists(interpolatedTreePath) ? _optionalChain([tree, 'access', _280 => _280.read, 'call', _281 => _281(interpolatedTreePath), 'optionalAccess', _282 => _282.toString, 'call', _283 => _283()]) : "",
82728
+ tree.exists(interpolatedTreePath) ? _optionalChain([tree, 'access', _283 => _283.read, 'call', _284 => _284(interpolatedTreePath), 'optionalAccess', _285 => _285.toString, 'call', _286 => _286()]) : "",
82659
82729
  project.name,
82660
82730
  workspaceConfig
82661
82731
  )
@@ -82679,11 +82749,11 @@ ${contents}`.trim()
82679
82749
  return projectChangelogs;
82680
82750
  }
82681
82751
  function checkChangelogFilesEnabled(nxReleaseConfig) {
82682
- if (_optionalChain([nxReleaseConfig, 'access', _284 => _284.changelog, 'optionalAccess', _285 => _285.workspaceChangelog]) && _optionalChain([nxReleaseConfig, 'access', _286 => _286.changelog, 'optionalAccess', _287 => _287.workspaceChangelog, 'access', _288 => _288.file])) {
82752
+ if (_optionalChain([nxReleaseConfig, 'access', _287 => _287.changelog, 'optionalAccess', _288 => _288.workspaceChangelog]) && _optionalChain([nxReleaseConfig, 'access', _289 => _289.changelog, 'optionalAccess', _290 => _290.workspaceChangelog, 'access', _291 => _291.file])) {
82683
82753
  return true;
82684
82754
  }
82685
82755
  return Object.values(_nullishCoalesce(nxReleaseConfig.groups, () => ( {}))).some(
82686
- (releaseGroup) => typeof _optionalChain([releaseGroup, 'optionalAccess', _289 => _289.changelog]) === "boolean" && releaseGroup.changelog || _optionalChain([releaseGroup, 'optionalAccess', _290 => _290.changelog, 'optionalAccess', _291 => _291.file])
82756
+ (releaseGroup) => typeof _optionalChain([releaseGroup, 'optionalAccess', _292 => _292.changelog]) === "boolean" && releaseGroup.changelog || _optionalChain([releaseGroup, 'optionalAccess', _293 => _293.changelog, 'optionalAccess', _294 => _294.file])
82687
82757
  );
82688
82758
  }
82689
82759
  async function getCommits(fromSHA, toSHA) {
@@ -82777,16 +82847,16 @@ function formatGithubReleaseNotes(releaseVersion, content, projectName, workspac
82777
82847
  if (!workspaceConfig) {
82778
82848
  return content;
82779
82849
  }
82780
- return `![${_optionalChain([titleCase, 'call', _292 => _292(workspaceConfig.organization), 'optionalAccess', _293 => _293.replaceAll, 'call', _294 => _294(" ", "-")])}](${workspaceConfig.release.banner})
82850
+ return `![${_optionalChain([_titlecase.titleCase.call(void 0, workspaceConfig.organization), 'optionalAccess', _295 => _295.replaceAll, 'call', _296 => _296(" ", "-")])}](${workspaceConfig.release.banner})
82781
82851
  ${workspaceConfig.release.header || ""}
82782
82852
 
82783
- # ${projectName ? `${titleCase(projectName)} ` : ""}v${releaseVersion.rawVersion}
82853
+ # ${projectName ? `${_titlecase.titleCase.call(void 0, projectName)} ` : ""}v${releaseVersion.rawVersion}
82784
82854
 
82785
- We at [${titleCase(workspaceConfig.organization)}](${workspaceConfig.homepage}) are very excited to announce the v${releaseVersion.rawVersion} release of the ${projectName ? titleCase(projectName) : workspaceConfig.name ? titleCase(workspaceConfig.name) : "Storm Software"} project! \u{1F680}
82855
+ We at [${_titlecase.titleCase.call(void 0, workspaceConfig.organization)}](${workspaceConfig.homepage}) are very excited to announce the v${releaseVersion.rawVersion} release of the ${projectName ? _titlecase.titleCase.call(void 0, projectName) : workspaceConfig.name ? _titlecase.titleCase.call(void 0, workspaceConfig.name) : "Storm Software"} project! \u{1F680}
82786
82856
 
82787
82857
  These changes are released under the ${workspaceConfig.license.includes("license") ? workspaceConfig.license : `${workspaceConfig.license} license`}. You can find more details on [our licensing page](${workspaceConfig.licensing}). You can find guides, API references, and other documentation around this release (and much more) on [our documentation site](${workspaceConfig.docs}).
82788
82858
 
82789
- If you have any questions or comments, feel free to reach out to the team on [Discord](${workspaceConfig.account.discord}) or [our contact page](${workspaceConfig.contact}). Please help us spread the word by giving [this repository](https://github.com/${workspaceConfig.organization}/${workspaceConfig.name}) a star \u2B50 on GitHub or [posting on X (Twitter)](https://x.com/intent/tweet?text=Check%20out%20the%20latest%20@${workspaceConfig.account.twitter}%20release%20${projectName ? `${_optionalChain([titleCase, 'call', _295 => _295(projectName), 'optionalAccess', _296 => _296.replaceAll, 'call', _297 => _297(" ", "%20")])}%20` : ""}v${releaseVersion.rawVersion}%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/${workspaceConfig.organization}/${workspaceConfig.name}/releases/tag/${releaseVersion.gitTag}) about this release!
82859
+ If you have any questions or comments, feel free to reach out to the team on [Discord](${workspaceConfig.account.discord}) or [our contact page](${workspaceConfig.contact}). Please help us spread the word by giving [this repository](https://github.com/${workspaceConfig.organization}/${workspaceConfig.name}) a star \u2B50 on GitHub or [posting on X (Twitter)](https://x.com/intent/tweet?text=Check%20out%20the%20latest%20@${workspaceConfig.account.twitter}%20release%20${projectName ? `${_optionalChain([_titlecase.titleCase.call(void 0, projectName), 'optionalAccess', _297 => _297.replaceAll, 'call', _298 => _298(" ", "%20")])}%20` : ""}v${releaseVersion.rawVersion}%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/${workspaceConfig.organization}/${workspaceConfig.name}/releases/tag/${releaseVersion.gitTag}) about this release!
82790
82860
 
82791
82861
  ## Release Notes
82792
82862
 
@@ -82823,6 +82893,8 @@ var DEFAULT_RELEASE_GROUP_CONFIG = {
82823
82893
  version: {
82824
82894
  groupPreVersionCommand: "pnpm build",
82825
82895
  useLegacyVersioning: true,
82896
+ currentVersionResolver: "git-tag",
82897
+ specifierSource: "conventional-commits",
82826
82898
  generator: "@storm-software/workspace-tools:release-version",
82827
82899
  generatorOptions: {
82828
82900
  currentVersionResolver: "git-tag",
@@ -82853,6 +82925,8 @@ var DEFAULT_RELEASE_CONFIG = {
82853
82925
  version: {
82854
82926
  preVersionCommand: "pnpm build",
82855
82927
  useLegacyVersioning: true,
82928
+ currentVersionResolver: "git-tag",
82929
+ specifierSource: "conventional-commits",
82856
82930
  generator: "@storm-software/workspace-tools:release-version",
82857
82931
  generatorOptions: {
82858
82932
  currentVersionResolver: "git-tag",
@@ -82863,10 +82937,12 @@ var DEFAULT_RELEASE_CONFIG = {
82863
82937
 
82864
82938
  // src/release/run.ts
82865
82939
  var runRelease = async (config, options) => {
82866
- process.env.GIT_AUTHOR_NAME = process.env.GITHUB_ACTOR;
82867
- process.env.GIT_AUTHOR_EMAIL = `${process.env.GITHUB_ACTOR}@users.noreply.github.com`;
82868
- process.env.GIT_COMMITTER_NAME = config.bot.name;
82869
- process.env.GIT_COMMITTER_EMAIL = config.bot.email || config.bot.name ? `${config.bot.name}@users.noreply.github.com` : "bot@stormsoftware.com";
82940
+ const name = config.bot.name;
82941
+ const email = config.bot.email ? config.bot.email : config.bot.name ? `${config.bot.name}@users.noreply.github.com` : "bot@stormsoftware.com";
82942
+ process.env.GIT_AUTHOR_NAME = name;
82943
+ process.env.GIT_AUTHOR_EMAIL = email;
82944
+ process.env.GIT_COMMITTER_NAME = name;
82945
+ process.env.GIT_COMMITTER_EMAIL = email;
82870
82946
  process.env.NODE_AUTH_TOKEN = process.env.NPM_TOKEN;
82871
82947
  process.env.NPM_AUTH_TOKEN = process.env.NPM_TOKEN;
82872
82948
  process.env.NPM_CONFIG_PROVENANCE = "true";
@@ -82882,10 +82958,10 @@ var runRelease = async (config, options) => {
82882
82958
  `,
82883
82959
  config
82884
82960
  );
82885
- if (_optionalChain([nxJson, 'access', _298 => _298.release, 'optionalAccess', _299 => _299.groups])) {
82961
+ if (_optionalChain([nxJson, 'access', _299 => _299.release, 'optionalAccess', _300 => _300.groups])) {
82886
82962
  nxJson.release.groups = Object.keys(nxJson.release.groups).reduce(
82887
82963
  (ret, groupName) => {
82888
- const groupConfig = _optionalChain([nxJson, 'access', _300 => _300.release, 'optionalAccess', _301 => _301.groups, 'optionalAccess', _302 => _302[groupName]]);
82964
+ const groupConfig = _optionalChain([nxJson, 'access', _301 => _301.release, 'optionalAccess', _302 => _302.groups, 'optionalAccess', _303 => _303[groupName]]);
82889
82965
  ret[groupName] = _chunkFMYKTN2Zcjs.defu.call(void 0, groupConfig, DEFAULT_RELEASE_GROUP_CONFIG);
82890
82966
  return ret;
82891
82967
  },
@@ -82915,7 +82991,7 @@ var runRelease = async (config, options) => {
82915
82991
  });
82916
82992
  await releaseChangelog({
82917
82993
  ...options,
82918
- version: _optionalChain([nxReleaseConfig, 'optionalAccess', _303 => _303.projectsRelationship]) !== "fixed" ? void 0 : workspaceVersion,
82994
+ version: _optionalChain([nxReleaseConfig, 'optionalAccess', _304 => _304.projectsRelationship]) !== "fixed" ? void 0 : workspaceVersion,
82919
82995
  versionData: projectsVersionData,
82920
82996
  dryRun: false,
82921
82997
  verbose: _chunkXE275LJTcjs.isVerbose.call(void 0, config.logLevel),
@@ -82932,7 +83008,7 @@ var runRelease = async (config, options) => {
82932
83008
  );
82933
83009
  } else {
82934
83010
  const changedProjects = Object.keys(projectsVersionData).filter(
82935
- (key) => _optionalChain([projectsVersionData, 'access', _304 => _304[key], 'optionalAccess', _305 => _305.newVersion])
83011
+ (key) => _optionalChain([projectsVersionData, 'access', _305 => _305[key], 'optionalAccess', _306 => _306.newVersion])
82936
83012
  );
82937
83013
  if (changedProjects.length > 0) {
82938
83014
  _chunkXE275LJTcjs.writeInfo.call(void 0,
@@ -82948,14 +83024,14 @@ ${changedProjects.map((changedProject) => ` - ${changedProject}`).join("\n")}
82948
83024
  verbose: _chunkXE275LJTcjs.isVerbose.call(void 0, config.logLevel)
82949
83025
  });
82950
83026
  const failedProjects = Object.keys(result2).filter(
82951
- (key) => _optionalChain([result2, 'access', _306 => _306[key], 'optionalAccess', _307 => _307.code]) && _optionalChain([result2, 'access', _308 => _308[key], 'optionalAccess', _309 => _309.code]) > 0
83027
+ (key) => _optionalChain([result2, 'access', _307 => _307[key], 'optionalAccess', _308 => _308.code]) && _optionalChain([result2, 'access', _309 => _309[key], 'optionalAccess', _310 => _310.code]) > 0
82952
83028
  );
82953
83029
  if (failedProjects.length > 0) {
82954
83030
  throw new Error(
82955
83031
  `The Storm release process was not completed successfully! One or more errors occured while running the \`nx-release-publish\` executor tasks.
82956
83032
 
82957
83033
  Please review the workflow details for the following project(s):
82958
- ${failedProjects.map((failedProject) => ` - ${failedProject} (Error Code: ${_optionalChain([result2, 'access', _310 => _310[failedProject], 'optionalAccess', _311 => _311.code])})`).join("\n")}
83034
+ ${failedProjects.map((failedProject) => ` - ${failedProject} (Error Code: ${_optionalChain([result2, 'access', _311 => _311[failedProject], 'optionalAccess', _312 => _312.code])})`).join("\n")}
82959
83035
  `
82960
83036
  );
82961
83037
  }
@@ -82969,7 +83045,7 @@ async function updatePackageManifests(projectsVersionData, config) {
82969
83045
  let projectGraph;
82970
83046
  try {
82971
83047
  projectGraph = (0, import_devkit2.readCachedProjectGraph)();
82972
- } catch (e17) {
83048
+ } catch (e18) {
82973
83049
  await (0, import_devkit2.createProjectGraphAsync)();
82974
83050
  projectGraph = (0, import_devkit2.readCachedProjectGraph)();
82975
83051
  }
@@ -82977,7 +83053,7 @@ async function updatePackageManifests(projectsVersionData, config) {
82977
83053
  await Promise.all(
82978
83054
  Object.keys(projectsVersionData).map(async (node) => {
82979
83055
  const projectNode = projectGraph.nodes[node];
82980
- if (!_optionalChain([projectNode, 'optionalAccess', _312 => _312.data, 'access', _313 => _313.root])) {
83056
+ if (!_optionalChain([projectNode, 'optionalAccess', _313 => _313.data, 'access', _314 => _314.root])) {
82981
83057
  _chunkXE275LJTcjs.writeWarning.call(void 0,
82982
83058
  `Project node ${node} not found in the project graph. Skipping manifest update.`,
82983
83059
  config
@@ -82985,7 +83061,7 @@ async function updatePackageManifests(projectsVersionData, config) {
82985
83061
  return;
82986
83062
  }
82987
83063
  const versionData = projectsVersionData[node];
82988
- if (_optionalChain([projectNode, 'optionalAccess', _314 => _314.data, 'access', _315 => _315.root]) && versionData && versionData.newVersion !== null) {
83064
+ if (_optionalChain([projectNode, 'optionalAccess', _315 => _315.data, 'access', _316 => _316.root]) && versionData && versionData.newVersion !== null) {
82989
83065
  _chunkXE275LJTcjs.writeTrace.call(void 0,
82990
83066
  `Writing version ${versionData.newVersion} update to manifest file for ${node}
82991
83067
  `,