@storm-software/git-tools 2.111.26 → 2.111.27

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.
Files changed (3) hide show
  1. package/bin/git.cjs +257 -15
  2. package/bin/git.js +248 -6
  3. package/package.json +1 -2
package/bin/git.cjs CHANGED
@@ -77656,7 +77656,6 @@ var chalk3 = _chunkIG6EXAQUcjs.__toESM.call(void 0, _chunkXE275LJTcjs.require_so
77656
77656
  var import_enquirer2 = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_enquirer(), 1);
77657
77657
  var import_semver2 = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_semver4(), 1);
77658
77658
  var import_tmp = _chunkIG6EXAQUcjs.__toESM.call(void 0, require_tmp2(), 1);
77659
- var _titlecase = require('@stryke/string-format/title-case');
77660
77659
 
77661
77660
 
77662
77661
 
@@ -77709,14 +77708,257 @@ var _workspaceroot = require('nx/src/utils/workspace-root');
77709
77708
 
77710
77709
  // src/utilities/changelog-utils.ts
77711
77710
  _chunkIG6EXAQUcjs.init_cjs_shims.call(void 0, );
77712
-
77713
77711
  var _prettier = require('prettier');
77712
+
77713
+ // src/utilities/title-case.ts
77714
+ _chunkIG6EXAQUcjs.init_cjs_shims.call(void 0, );
77715
+ var ACRONYMS = [
77716
+ "3D",
77717
+ "4D",
77718
+ "5G",
77719
+ "6G",
77720
+ "7G",
77721
+ "8G",
77722
+ "ACID",
77723
+ "AES",
77724
+ "AI",
77725
+ "AJAX",
77726
+ "API",
77727
+ "AR",
77728
+ "ASCII",
77729
+ "B2B",
77730
+ "B2C",
77731
+ "BFF",
77732
+ "BI",
77733
+ "BIOS",
77734
+ "BGP",
77735
+ "BOM",
77736
+ "BYOD",
77737
+ "C2C",
77738
+ "CAGR",
77739
+ "CAPTCHA",
77740
+ "CD",
77741
+ "CDN",
77742
+ "CDP",
77743
+ "CI",
77744
+ "CI/CD",
77745
+ "CIAM",
77746
+ "CICD",
77747
+ "CLI",
77748
+ "CMDB",
77749
+ "CORS",
77750
+ "CPU",
77751
+ "CRUD",
77752
+ "CSR",
77753
+ "CSS",
77754
+ "CX",
77755
+ "DAG",
77756
+ "DBMS",
77757
+ "DDoS",
77758
+ "DNS",
77759
+ "DNSSEC",
77760
+ "DOM",
77761
+ "DR",
77762
+ "DRM",
77763
+ "DWH",
77764
+ "E2E",
77765
+ "EAI",
77766
+ "EKS",
77767
+ "EOF",
77768
+ "EOD",
77769
+ "ETC",
77770
+ "ETL",
77771
+ "EULA",
77772
+ "FIDO",
77773
+ "FQDN",
77774
+ "FTP",
77775
+ "FaaS",
77776
+ "GDPR",
77777
+ "GCP",
77778
+ "GPU",
77779
+ "GUID",
77780
+ "GUI",
77781
+ "GZIP",
77782
+ "HCI",
77783
+ "HDD",
77784
+ "HDFS",
77785
+ "HIPAA",
77786
+ "HMAC",
77787
+ "HOTP",
77788
+ "HSM",
77789
+ "HTML",
77790
+ "HTTP",
77791
+ "HTTP/2",
77792
+ "HTTP/2.0",
77793
+ "HTTP/3",
77794
+ "HTTP/3.0",
77795
+ "HTTP2",
77796
+ "HTTPS",
77797
+ "HTTPS/2",
77798
+ "HTTPS/3",
77799
+ "HTTPS3",
77800
+ "IAM",
77801
+ "IAMM",
77802
+ "IAMT",
77803
+ "IaaS",
77804
+ "ID",
77805
+ "IMAP",
77806
+ "IP",
77807
+ "IPFS",
77808
+ "IoT",
77809
+ "JSON",
77810
+ "JSONP",
77811
+ "JWT",
77812
+ "K8s",
77813
+ "KMS",
77814
+ "KPI",
77815
+ "LAN",
77816
+ "LHS",
77817
+ "LXC",
77818
+ "MFA",
77819
+ "ML",
77820
+ "MLOps",
77821
+ "MVC",
77822
+ "MVP",
77823
+ "NAS",
77824
+ "NAT",
77825
+ "NDA",
77826
+ "NFS",
77827
+ "NIST",
77828
+ "NLP",
77829
+ "NPS",
77830
+ "OCR",
77831
+ "OEM",
77832
+ "OKR",
77833
+ "OLAP",
77834
+ "OLTP",
77835
+ "OOP",
77836
+ "ORM",
77837
+ "OS",
77838
+ "OTP",
77839
+ "P2P",
77840
+ "PDP",
77841
+ "PaaS",
77842
+ "PCI",
77843
+ "PKI",
77844
+ "PP",
77845
+ "PWA",
77846
+ "PX",
77847
+ "QA",
77848
+ "RAID",
77849
+ "RAM",
77850
+ "RDS",
77851
+ "REST",
77852
+ "RHS",
77853
+ "RPC",
77854
+ "RPA",
77855
+ "RUM",
77856
+ "RSS",
77857
+ "SAN",
77858
+ "SASE",
77859
+ "SDLC",
77860
+ "SDK",
77861
+ "SEO",
77862
+ "SFTP",
77863
+ "SIEM",
77864
+ "SLA",
77865
+ "SMB",
77866
+ "SMTP",
77867
+ "SOAP",
77868
+ "SOC",
77869
+ "SOA",
77870
+ "SPDY",
77871
+ "SPF",
77872
+ "SQL",
77873
+ "SRV",
77874
+ "SRE",
77875
+ "SSH",
77876
+ "SSDL",
77877
+ "SSO",
77878
+ "SSL",
77879
+ "SSR",
77880
+ "TDD",
77881
+ "TLD",
77882
+ "TLS",
77883
+ "TLS1.3",
77884
+ "TOTP",
77885
+ "TRPC",
77886
+ "TTL",
77887
+ "UDP",
77888
+ "UI",
77889
+ "UID",
77890
+ "URI",
77891
+ "URL",
77892
+ "UTF",
77893
+ "UUID",
77894
+ "UX",
77895
+ "VM",
77896
+ "VLAN",
77897
+ "VPN",
77898
+ "VR",
77899
+ "WAF",
77900
+ "WAN",
77901
+ "WLAN",
77902
+ "WPA",
77903
+ "XACML",
77904
+ "XML",
77905
+ "XSRF",
77906
+ "XSS",
77907
+ "XR",
77908
+ "YAML",
77909
+ "ZTA"
77910
+ ];
77911
+ var FORMAT_MAPPING = ACRONYMS.reduce(
77912
+ (ret, acronym) => {
77913
+ ret[acronym.toLowerCase()] = acronym;
77914
+ return ret;
77915
+ },
77916
+ {
77917
+ cspell: "CSpell",
77918
+ eslint: "ESLint",
77919
+ nx: "Nx"
77920
+ }
77921
+ );
77922
+ var LOWER_CASE_WHEN_NOT_FIRST = [
77923
+ "a",
77924
+ "an",
77925
+ "the",
77926
+ "is",
77927
+ "are",
77928
+ "of",
77929
+ "and",
77930
+ "to",
77931
+ "in",
77932
+ "for",
77933
+ "on",
77934
+ "with",
77935
+ "as",
77936
+ "at",
77937
+ "by"
77938
+ ];
77939
+ function titleCase(input) {
77940
+ if (!input) {
77941
+ return input;
77942
+ }
77943
+ const formatSegment = (segment) => segment.toLowerCase().split(/[\s\-_]+/).filter(Boolean).map((word, index) => {
77944
+ if (LOWER_CASE_WHEN_NOT_FIRST.includes(word.toLowerCase()) && index > 0) {
77945
+ return word.toLowerCase();
77946
+ }
77947
+ if (Object.keys(FORMAT_MAPPING).includes(word.toLowerCase())) {
77948
+ return FORMAT_MAPPING[word.toLowerCase()];
77949
+ }
77950
+ return `${word ? word.charAt(0).toUpperCase() + word.toLowerCase().slice(1) : word}`;
77951
+ }).join(" ");
77952
+ return input.split(/\s+-\s+/).map((part) => formatSegment(part)).join(" - ");
77953
+ }
77954
+
77955
+ // src/utilities/changelog-utils.ts
77714
77956
  async function generateChangelogContent(releaseVersion, filepath, newContent, currentContent, project, workspaceConfig) {
77715
77957
  const formatOptions = await _asyncNullishCoalesce(await _prettier.resolveConfig.call(void 0, filepath), async () => ( {}));
77716
77958
  const header = await _prettier.format.call(void 0,
77717
77959
  `${_optionalChain([workspaceConfig, 'optionalAccess', _181 => _181.release, 'access', _182 => _182.banner]) ? `![Storm Software](${_optionalChain([workspaceConfig, 'optionalAccess', _183 => _183.release, 'access', _184 => _184.banner])})
77718
77960
 
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)}` : ""}
77961
+ ` : ""}# 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)}` : ""}
77720
77962
 
77721
77963
  `,
77722
77964
  {
@@ -82847,16 +83089,16 @@ function formatGithubReleaseNotes(releaseVersion, content, projectName, workspac
82847
83089
  if (!workspaceConfig) {
82848
83090
  return content;
82849
83091
  }
82850
- return `![${_optionalChain([_titlecase.titleCase.call(void 0, workspaceConfig.organization), 'optionalAccess', _295 => _295.replaceAll, 'call', _296 => _296(" ", "-")])}](${workspaceConfig.release.banner})
83092
+ return `![${_optionalChain([titleCase, 'call', _295 => _295(workspaceConfig.organization), 'optionalAccess', _296 => _296.replaceAll, 'call', _297 => _297(" ", "-")])}](${workspaceConfig.release.banner})
82851
83093
  ${workspaceConfig.release.header || ""}
82852
83094
 
82853
- # ${projectName ? `${_titlecase.titleCase.call(void 0, projectName)} ` : ""}v${releaseVersion.rawVersion}
83095
+ # ${projectName ? `${titleCase(projectName)} ` : ""}v${releaseVersion.rawVersion}
82854
83096
 
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}
83097
+ 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}
82856
83098
 
82857
83099
  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}).
82858
83100
 
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!
83101
+ 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', _298 => _298(projectName), 'optionalAccess', _299 => _299.replaceAll, 'call', _300 => _300(" ", "%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!
82860
83102
 
82861
83103
  ## Release Notes
82862
83104
 
@@ -82958,10 +83200,10 @@ var runRelease = async (config, options) => {
82958
83200
  `,
82959
83201
  config
82960
83202
  );
82961
- if (_optionalChain([nxJson, 'access', _299 => _299.release, 'optionalAccess', _300 => _300.groups])) {
83203
+ if (_optionalChain([nxJson, 'access', _301 => _301.release, 'optionalAccess', _302 => _302.groups])) {
82962
83204
  nxJson.release.groups = Object.keys(nxJson.release.groups).reduce(
82963
83205
  (ret, groupName) => {
82964
- const groupConfig = _optionalChain([nxJson, 'access', _301 => _301.release, 'optionalAccess', _302 => _302.groups, 'optionalAccess', _303 => _303[groupName]]);
83206
+ const groupConfig = _optionalChain([nxJson, 'access', _303 => _303.release, 'optionalAccess', _304 => _304.groups, 'optionalAccess', _305 => _305[groupName]]);
82965
83207
  ret[groupName] = _chunkFMYKTN2Zcjs.defu.call(void 0, groupConfig, DEFAULT_RELEASE_GROUP_CONFIG);
82966
83208
  return ret;
82967
83209
  },
@@ -82991,7 +83233,7 @@ var runRelease = async (config, options) => {
82991
83233
  });
82992
83234
  await releaseChangelog({
82993
83235
  ...options,
82994
- version: _optionalChain([nxReleaseConfig, 'optionalAccess', _304 => _304.projectsRelationship]) !== "fixed" ? void 0 : workspaceVersion,
83236
+ version: _optionalChain([nxReleaseConfig, 'optionalAccess', _306 => _306.projectsRelationship]) !== "fixed" ? void 0 : workspaceVersion,
82995
83237
  versionData: projectsVersionData,
82996
83238
  dryRun: false,
82997
83239
  verbose: _chunkXE275LJTcjs.isVerbose.call(void 0, config.logLevel),
@@ -83008,7 +83250,7 @@ var runRelease = async (config, options) => {
83008
83250
  );
83009
83251
  } else {
83010
83252
  const changedProjects = Object.keys(projectsVersionData).filter(
83011
- (key) => _optionalChain([projectsVersionData, 'access', _305 => _305[key], 'optionalAccess', _306 => _306.newVersion])
83253
+ (key) => _optionalChain([projectsVersionData, 'access', _307 => _307[key], 'optionalAccess', _308 => _308.newVersion])
83012
83254
  );
83013
83255
  if (changedProjects.length > 0) {
83014
83256
  _chunkXE275LJTcjs.writeInfo.call(void 0,
@@ -83024,14 +83266,14 @@ ${changedProjects.map((changedProject) => ` - ${changedProject}`).join("\n")}
83024
83266
  verbose: _chunkXE275LJTcjs.isVerbose.call(void 0, config.logLevel)
83025
83267
  });
83026
83268
  const failedProjects = Object.keys(result2).filter(
83027
- (key) => _optionalChain([result2, 'access', _307 => _307[key], 'optionalAccess', _308 => _308.code]) && _optionalChain([result2, 'access', _309 => _309[key], 'optionalAccess', _310 => _310.code]) > 0
83269
+ (key) => _optionalChain([result2, 'access', _309 => _309[key], 'optionalAccess', _310 => _310.code]) && _optionalChain([result2, 'access', _311 => _311[key], 'optionalAccess', _312 => _312.code]) > 0
83028
83270
  );
83029
83271
  if (failedProjects.length > 0) {
83030
83272
  throw new Error(
83031
83273
  `The Storm release process was not completed successfully! One or more errors occured while running the \`nx-release-publish\` executor tasks.
83032
83274
 
83033
83275
  Please review the workflow details for the following project(s):
83034
- ${failedProjects.map((failedProject) => ` - ${failedProject} (Error Code: ${_optionalChain([result2, 'access', _311 => _311[failedProject], 'optionalAccess', _312 => _312.code])})`).join("\n")}
83276
+ ${failedProjects.map((failedProject) => ` - ${failedProject} (Error Code: ${_optionalChain([result2, 'access', _313 => _313[failedProject], 'optionalAccess', _314 => _314.code])})`).join("\n")}
83035
83277
  `
83036
83278
  );
83037
83279
  }
@@ -83053,7 +83295,7 @@ async function updatePackageManifests(projectsVersionData, config) {
83053
83295
  await Promise.all(
83054
83296
  Object.keys(projectsVersionData).map(async (node) => {
83055
83297
  const projectNode = projectGraph.nodes[node];
83056
- if (!_optionalChain([projectNode, 'optionalAccess', _313 => _313.data, 'access', _314 => _314.root])) {
83298
+ if (!_optionalChain([projectNode, 'optionalAccess', _315 => _315.data, 'access', _316 => _316.root])) {
83057
83299
  _chunkXE275LJTcjs.writeWarning.call(void 0,
83058
83300
  `Project node ${node} not found in the project graph. Skipping manifest update.`,
83059
83301
  config
@@ -83061,7 +83303,7 @@ async function updatePackageManifests(projectsVersionData, config) {
83061
83303
  return;
83062
83304
  }
83063
83305
  const versionData = projectsVersionData[node];
83064
- if (_optionalChain([projectNode, 'optionalAccess', _315 => _315.data, 'access', _316 => _316.root]) && versionData && versionData.newVersion !== null) {
83306
+ if (_optionalChain([projectNode, 'optionalAccess', _317 => _317.data, 'access', _318 => _318.root]) && versionData && versionData.newVersion !== null) {
83065
83307
  _chunkXE275LJTcjs.writeTrace.call(void 0,
83066
83308
  `Writing version ${versionData.newVersion} update to manifest file for ${node}
83067
83309
  `,
package/bin/git.js CHANGED
@@ -87906,7 +87906,6 @@ var chalk3 = __toESM(require_source(), 1);
87906
87906
  var import_enquirer2 = __toESM(require_enquirer(), 1);
87907
87907
  var import_semver2 = __toESM(require_semver4(), 1);
87908
87908
  var import_tmp = __toESM(require_tmp2(), 1);
87909
- import { titleCase as titleCase2 } from "@stryke/string-format/title-case";
87910
87909
  import { readFileSync as readFileSync4, rmSync as rmSync2, writeFileSync as writeFileSync3 } from "node:fs";
87911
87910
  import {
87912
87911
  createNxReleaseConfig,
@@ -87959,8 +87958,251 @@ import { workspaceRoot } from "nx/src/utils/workspace-root";
87959
87958
 
87960
87959
  // src/utilities/changelog-utils.ts
87961
87960
  init_esm_shims();
87962
- import { titleCase } from "@stryke/string-format/title-case";
87963
87961
  import { format, resolveConfig } from "prettier";
87962
+
87963
+ // src/utilities/title-case.ts
87964
+ init_esm_shims();
87965
+ var ACRONYMS = [
87966
+ "3D",
87967
+ "4D",
87968
+ "5G",
87969
+ "6G",
87970
+ "7G",
87971
+ "8G",
87972
+ "ACID",
87973
+ "AES",
87974
+ "AI",
87975
+ "AJAX",
87976
+ "API",
87977
+ "AR",
87978
+ "ASCII",
87979
+ "B2B",
87980
+ "B2C",
87981
+ "BFF",
87982
+ "BI",
87983
+ "BIOS",
87984
+ "BGP",
87985
+ "BOM",
87986
+ "BYOD",
87987
+ "C2C",
87988
+ "CAGR",
87989
+ "CAPTCHA",
87990
+ "CD",
87991
+ "CDN",
87992
+ "CDP",
87993
+ "CI",
87994
+ "CI/CD",
87995
+ "CIAM",
87996
+ "CICD",
87997
+ "CLI",
87998
+ "CMDB",
87999
+ "CORS",
88000
+ "CPU",
88001
+ "CRUD",
88002
+ "CSR",
88003
+ "CSS",
88004
+ "CX",
88005
+ "DAG",
88006
+ "DBMS",
88007
+ "DDoS",
88008
+ "DNS",
88009
+ "DNSSEC",
88010
+ "DOM",
88011
+ "DR",
88012
+ "DRM",
88013
+ "DWH",
88014
+ "E2E",
88015
+ "EAI",
88016
+ "EKS",
88017
+ "EOF",
88018
+ "EOD",
88019
+ "ETC",
88020
+ "ETL",
88021
+ "EULA",
88022
+ "FIDO",
88023
+ "FQDN",
88024
+ "FTP",
88025
+ "FaaS",
88026
+ "GDPR",
88027
+ "GCP",
88028
+ "GPU",
88029
+ "GUID",
88030
+ "GUI",
88031
+ "GZIP",
88032
+ "HCI",
88033
+ "HDD",
88034
+ "HDFS",
88035
+ "HIPAA",
88036
+ "HMAC",
88037
+ "HOTP",
88038
+ "HSM",
88039
+ "HTML",
88040
+ "HTTP",
88041
+ "HTTP/2",
88042
+ "HTTP/2.0",
88043
+ "HTTP/3",
88044
+ "HTTP/3.0",
88045
+ "HTTP2",
88046
+ "HTTPS",
88047
+ "HTTPS/2",
88048
+ "HTTPS/3",
88049
+ "HTTPS3",
88050
+ "IAM",
88051
+ "IAMM",
88052
+ "IAMT",
88053
+ "IaaS",
88054
+ "ID",
88055
+ "IMAP",
88056
+ "IP",
88057
+ "IPFS",
88058
+ "IoT",
88059
+ "JSON",
88060
+ "JSONP",
88061
+ "JWT",
88062
+ "K8s",
88063
+ "KMS",
88064
+ "KPI",
88065
+ "LAN",
88066
+ "LHS",
88067
+ "LXC",
88068
+ "MFA",
88069
+ "ML",
88070
+ "MLOps",
88071
+ "MVC",
88072
+ "MVP",
88073
+ "NAS",
88074
+ "NAT",
88075
+ "NDA",
88076
+ "NFS",
88077
+ "NIST",
88078
+ "NLP",
88079
+ "NPS",
88080
+ "OCR",
88081
+ "OEM",
88082
+ "OKR",
88083
+ "OLAP",
88084
+ "OLTP",
88085
+ "OOP",
88086
+ "ORM",
88087
+ "OS",
88088
+ "OTP",
88089
+ "P2P",
88090
+ "PDP",
88091
+ "PaaS",
88092
+ "PCI",
88093
+ "PKI",
88094
+ "PP",
88095
+ "PWA",
88096
+ "PX",
88097
+ "QA",
88098
+ "RAID",
88099
+ "RAM",
88100
+ "RDS",
88101
+ "REST",
88102
+ "RHS",
88103
+ "RPC",
88104
+ "RPA",
88105
+ "RUM",
88106
+ "RSS",
88107
+ "SAN",
88108
+ "SASE",
88109
+ "SDLC",
88110
+ "SDK",
88111
+ "SEO",
88112
+ "SFTP",
88113
+ "SIEM",
88114
+ "SLA",
88115
+ "SMB",
88116
+ "SMTP",
88117
+ "SOAP",
88118
+ "SOC",
88119
+ "SOA",
88120
+ "SPDY",
88121
+ "SPF",
88122
+ "SQL",
88123
+ "SRV",
88124
+ "SRE",
88125
+ "SSH",
88126
+ "SSDL",
88127
+ "SSO",
88128
+ "SSL",
88129
+ "SSR",
88130
+ "TDD",
88131
+ "TLD",
88132
+ "TLS",
88133
+ "TLS1.3",
88134
+ "TOTP",
88135
+ "TRPC",
88136
+ "TTL",
88137
+ "UDP",
88138
+ "UI",
88139
+ "UID",
88140
+ "URI",
88141
+ "URL",
88142
+ "UTF",
88143
+ "UUID",
88144
+ "UX",
88145
+ "VM",
88146
+ "VLAN",
88147
+ "VPN",
88148
+ "VR",
88149
+ "WAF",
88150
+ "WAN",
88151
+ "WLAN",
88152
+ "WPA",
88153
+ "XACML",
88154
+ "XML",
88155
+ "XSRF",
88156
+ "XSS",
88157
+ "XR",
88158
+ "YAML",
88159
+ "ZTA"
88160
+ ];
88161
+ var FORMAT_MAPPING = ACRONYMS.reduce(
88162
+ (ret, acronym) => {
88163
+ ret[acronym.toLowerCase()] = acronym;
88164
+ return ret;
88165
+ },
88166
+ {
88167
+ cspell: "CSpell",
88168
+ eslint: "ESLint",
88169
+ nx: "Nx"
88170
+ }
88171
+ );
88172
+ var LOWER_CASE_WHEN_NOT_FIRST = [
88173
+ "a",
88174
+ "an",
88175
+ "the",
88176
+ "is",
88177
+ "are",
88178
+ "of",
88179
+ "and",
88180
+ "to",
88181
+ "in",
88182
+ "for",
88183
+ "on",
88184
+ "with",
88185
+ "as",
88186
+ "at",
88187
+ "by"
88188
+ ];
88189
+ function titleCase(input) {
88190
+ if (!input) {
88191
+ return input;
88192
+ }
88193
+ const formatSegment = (segment) => segment.toLowerCase().split(/[\s\-_]+/).filter(Boolean).map((word, index) => {
88194
+ if (LOWER_CASE_WHEN_NOT_FIRST.includes(word.toLowerCase()) && index > 0) {
88195
+ return word.toLowerCase();
88196
+ }
88197
+ if (Object.keys(FORMAT_MAPPING).includes(word.toLowerCase())) {
88198
+ return FORMAT_MAPPING[word.toLowerCase()];
88199
+ }
88200
+ return `${word ? word.charAt(0).toUpperCase() + word.toLowerCase().slice(1) : word}`;
88201
+ }).join(" ");
88202
+ return input.split(/\s+-\s+/).map((part2) => formatSegment(part2)).join(" - ");
88203
+ }
88204
+
88205
+ // src/utilities/changelog-utils.ts
87964
88206
  async function generateChangelogContent(releaseVersion, filepath, newContent, currentContent, project, workspaceConfig) {
87965
88207
  const formatOptions = await resolveConfig(filepath) ?? {};
87966
88208
  const header = await format(
@@ -93097,16 +93339,16 @@ function formatGithubReleaseNotes(releaseVersion, content, projectName, workspac
93097
93339
  if (!workspaceConfig) {
93098
93340
  return content;
93099
93341
  }
93100
- return `![${titleCase2(workspaceConfig.organization)?.replaceAll(" ", "-")}](${workspaceConfig.release.banner})
93342
+ return `![${titleCase(workspaceConfig.organization)?.replaceAll(" ", "-")}](${workspaceConfig.release.banner})
93101
93343
  ${workspaceConfig.release.header || ""}
93102
93344
 
93103
- # ${projectName ? `${titleCase2(projectName)} ` : ""}v${releaseVersion.rawVersion}
93345
+ # ${projectName ? `${titleCase(projectName)} ` : ""}v${releaseVersion.rawVersion}
93104
93346
 
93105
- We at [${titleCase2(workspaceConfig.organization)}](${workspaceConfig.homepage}) are very excited to announce the v${releaseVersion.rawVersion} release of the ${projectName ? titleCase2(projectName) : workspaceConfig.name ? titleCase2(workspaceConfig.name) : "Storm Software"} project! \u{1F680}
93347
+ 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}
93106
93348
 
93107
93349
  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}).
93108
93350
 
93109
- 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 ? `${titleCase2(projectName)?.replaceAll(" ", "%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!
93351
+ 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 ? `${titleCase(projectName)?.replaceAll(" ", "%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!
93110
93352
 
93111
93353
  ## Release Notes
93112
93354
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/git-tools",
3
- "version": "2.111.26",
3
+ "version": "2.111.27",
4
4
  "type": "module",
5
5
  "description": "Tools for managing Git repositories within a Nx workspace.",
6
6
  "repository": {
@@ -240,7 +240,6 @@
240
240
  "@inquirer/select": "4.0.4",
241
241
  "@nx/devkit": "21.0.3",
242
242
  "@nx/js": "21.0.3",
243
- "@stryke/string-format": "0.4.11",
244
243
  "@textlint/ast-node-types": "14.4.2",
245
244
  "@textlint/markdown-to-ast": "14.4.2",
246
245
  "@types/node": "^22.10.2",