git-release-manager 0.0.7 → 0.0.11

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 (191) hide show
  1. package/README.md +160 -48
  2. package/dist/cli/types/BranchCreateCliArgs.js +3 -0
  3. package/dist/cli/types/BranchCreateCliArgs.js.map +1 -0
  4. package/dist/cli/types/ChangelogGenerateCliArgs.js +3 -0
  5. package/dist/cli/types/ChangelogGenerateCliArgs.js.map +1 -0
  6. package/dist/cli/types/CommitCliArgs.js +3 -0
  7. package/dist/cli/types/CommitCliArgs.js.map +1 -0
  8. package/dist/cli/types/CommitCreateCliArgs.js +3 -0
  9. package/dist/cli/types/CommitCreateCliArgs.js.map +1 -0
  10. package/dist/cli/types/CommitListCliArgs.js +3 -0
  11. package/dist/cli/types/CommitListCliArgs.js.map +1 -0
  12. package/dist/cli/types/VersionCompareCliArgs.js +3 -0
  13. package/dist/cli/types/VersionCompareCliArgs.js.map +1 -0
  14. package/dist/cli/types/VersionIncrementCliArgs.js +3 -0
  15. package/dist/cli/types/VersionIncrementCliArgs.js.map +1 -0
  16. package/dist/cli/types/VersionInitCliArgs.js +3 -0
  17. package/dist/cli/types/VersionInitCliArgs.js.map +1 -0
  18. package/dist/cli/types/VersionListCliArgs.js +3 -0
  19. package/dist/cli/types/VersionListCliArgs.js.map +1 -0
  20. package/dist/cli/types/VersionProjectCliArgs.js +3 -0
  21. package/dist/cli/types/VersionProjectCliArgs.js.map +1 -0
  22. package/dist/cli/types/VersionRemoteCliArgs.js +3 -0
  23. package/dist/cli/types/VersionRemoteCliArgs.js.map +1 -0
  24. package/dist/cli/types/VersionResetCliArgs.js +3 -0
  25. package/dist/cli/types/VersionResetCliArgs.js.map +1 -0
  26. package/dist/cli/types/VersionRevertCliArgs.js +3 -0
  27. package/dist/cli/types/VersionRevertCliArgs.js.map +1 -0
  28. package/dist/cli/types/VersionSetCliArgs.js +3 -0
  29. package/dist/cli/types/VersionSetCliArgs.js.map +1 -0
  30. package/dist/cli/types/VersionValidateCliArgs.js +3 -0
  31. package/dist/cli/types/VersionValidateCliArgs.js.map +1 -0
  32. package/dist/commands/branch/command copy.js +2 -0
  33. package/dist/commands/branch/command copy.js.map +1 -0
  34. package/dist/commands/branch/command.js +200 -0
  35. package/dist/commands/branch/command.js.map +1 -0
  36. package/dist/commands/branch/types/BranchCliArgs.js +3 -0
  37. package/dist/commands/branch/types/BranchCliArgs.js.map +1 -0
  38. package/dist/commands/branch/types/BranchCreateCliArgs.js +3 -0
  39. package/dist/commands/branch/types/BranchCreateCliArgs.js.map +1 -0
  40. package/dist/commands/branch/types/BranchDeleteCliArgs.js +3 -0
  41. package/dist/commands/branch/types/BranchDeleteCliArgs.js.map +1 -0
  42. package/dist/commands/branch/types/BranchListCliArgs.js +3 -0
  43. package/dist/commands/branch/types/BranchListCliArgs.js.map +1 -0
  44. package/dist/commands/branch/types/BranchMergeCliArgs.js +3 -0
  45. package/dist/commands/branch/types/BranchMergeCliArgs.js.map +1 -0
  46. package/dist/commands/branch/types/BranchProtectCliArgs.js +3 -0
  47. package/dist/commands/branch/types/BranchProtectCliArgs.js.map +1 -0
  48. package/dist/commands/branch/types/BranchRebaseCliArgs.js +3 -0
  49. package/dist/commands/branch/types/BranchRebaseCliArgs.js.map +1 -0
  50. package/dist/commands/branch/types/BranchSwitchCliArgs.js +3 -0
  51. package/dist/commands/branch/types/BranchSwitchCliArgs.js.map +1 -0
  52. package/dist/commands/branch/types/BranchUnProtectCliArgs.js +3 -0
  53. package/dist/commands/branch/types/BranchUnProtectCliArgs.js.map +1 -0
  54. package/dist/commands/changelog/command.js +32 -0
  55. package/dist/commands/changelog/command.js.map +1 -0
  56. package/dist/commands/changelog/types/ChangelogCliArgs.js +3 -0
  57. package/dist/commands/changelog/types/ChangelogCliArgs.js.map +1 -0
  58. package/dist/commands/changelog/types/ChangelogGenerateCliArgs.js +3 -0
  59. package/dist/commands/changelog/types/ChangelogGenerateCliArgs.js.map +1 -0
  60. package/dist/commands/commit/command.js +53 -0
  61. package/dist/commands/commit/command.js.map +1 -0
  62. package/dist/commands/commit/types/CommitAmendCliArgs.js +3 -0
  63. package/dist/commands/commit/types/CommitAmendCliArgs.js.map +1 -0
  64. package/dist/commands/commit/types/CommitCliArgs.js +3 -0
  65. package/dist/commands/commit/types/CommitCliArgs.js.map +1 -0
  66. package/dist/commands/commit/types/CommitCreateCliArgs.js +3 -0
  67. package/dist/commands/commit/types/CommitCreateCliArgs.js.map +1 -0
  68. package/dist/commands/commit/types/CommitListCliArgs.js +3 -0
  69. package/dist/commands/commit/types/CommitListCliArgs.js.map +1 -0
  70. package/dist/commands/fllow/command.js +134 -0
  71. package/dist/commands/fllow/command.js.map +1 -0
  72. package/dist/commands/fllow/types/VersionCliArgs.js +3 -0
  73. package/dist/commands/fllow/types/VersionCliArgs.js.map +1 -0
  74. package/dist/commands/fllow/types/VersionCompareCliArgs.js +3 -0
  75. package/dist/commands/fllow/types/VersionCompareCliArgs.js.map +1 -0
  76. package/dist/commands/fllow/types/VersionIncrementCliArgs.js +3 -0
  77. package/dist/commands/fllow/types/VersionIncrementCliArgs.js.map +1 -0
  78. package/dist/commands/fllow/types/VersionInitCliArgs.js +3 -0
  79. package/dist/commands/fllow/types/VersionInitCliArgs.js.map +1 -0
  80. package/dist/commands/fllow/types/VersionListCliArgs.js +3 -0
  81. package/dist/commands/fllow/types/VersionListCliArgs.js.map +1 -0
  82. package/dist/commands/fllow/types/VersionProjectCliArgs.js +3 -0
  83. package/dist/commands/fllow/types/VersionProjectCliArgs.js.map +1 -0
  84. package/dist/commands/fllow/types/VersionRemoteCliArgs.js +3 -0
  85. package/dist/commands/fllow/types/VersionRemoteCliArgs.js.map +1 -0
  86. package/dist/commands/fllow/types/VersionResetCliArgs.js +3 -0
  87. package/dist/commands/fllow/types/VersionResetCliArgs.js.map +1 -0
  88. package/dist/commands/fllow/types/VersionRevertCliArgs.js +3 -0
  89. package/dist/commands/fllow/types/VersionRevertCliArgs.js.map +1 -0
  90. package/dist/commands/fllow/types/VersionSetCliArgs.js +3 -0
  91. package/dist/commands/fllow/types/VersionSetCliArgs.js.map +1 -0
  92. package/dist/commands/fllow/types/VersionValidateCliArgs.js +3 -0
  93. package/dist/commands/fllow/types/VersionValidateCliArgs.js.map +1 -0
  94. package/dist/commands/flow/command.js +137 -0
  95. package/dist/commands/flow/command.js.map +1 -0
  96. package/dist/commands/flow/types/VersionCliArgs.js +3 -0
  97. package/dist/commands/flow/types/VersionCliArgs.js.map +1 -0
  98. package/dist/commands/flow/types/VersionCompareCliArgs.js +3 -0
  99. package/dist/commands/flow/types/VersionCompareCliArgs.js.map +1 -0
  100. package/dist/commands/flow/types/VersionIncrementCliArgs.js +3 -0
  101. package/dist/commands/flow/types/VersionIncrementCliArgs.js.map +1 -0
  102. package/dist/commands/flow/types/VersionInitCliArgs.js +3 -0
  103. package/dist/commands/flow/types/VersionInitCliArgs.js.map +1 -0
  104. package/dist/commands/flow/types/VersionListCliArgs.js +3 -0
  105. package/dist/commands/flow/types/VersionListCliArgs.js.map +1 -0
  106. package/dist/commands/flow/types/VersionProjectCliArgs.js +3 -0
  107. package/dist/commands/flow/types/VersionProjectCliArgs.js.map +1 -0
  108. package/dist/commands/flow/types/VersionRemoteCliArgs.js +3 -0
  109. package/dist/commands/flow/types/VersionRemoteCliArgs.js.map +1 -0
  110. package/dist/commands/flow/types/VersionResetCliArgs.js +3 -0
  111. package/dist/commands/flow/types/VersionResetCliArgs.js.map +1 -0
  112. package/dist/commands/flow/types/VersionRevertCliArgs.js +3 -0
  113. package/dist/commands/flow/types/VersionRevertCliArgs.js.map +1 -0
  114. package/dist/commands/flow/types/VersionSetCliArgs.js +3 -0
  115. package/dist/commands/flow/types/VersionSetCliArgs.js.map +1 -0
  116. package/dist/commands/flow/types/VersionValidateCliArgs.js +3 -0
  117. package/dist/commands/flow/types/VersionValidateCliArgs.js.map +1 -0
  118. package/dist/commands/types/CliArgs.js +3 -0
  119. package/dist/commands/types/CliArgs.js.map +1 -0
  120. package/dist/commands/version/command.js +135 -0
  121. package/dist/commands/version/command.js.map +1 -0
  122. package/dist/commands/version/types/VersionCliArgs.js +3 -0
  123. package/dist/commands/version/types/VersionCliArgs.js.map +1 -0
  124. package/dist/commands/version/types/VersionCompareCliArgs.js +3 -0
  125. package/dist/commands/version/types/VersionCompareCliArgs.js.map +1 -0
  126. package/dist/commands/version/types/VersionIncrementCliArgs.js +3 -0
  127. package/dist/commands/version/types/VersionIncrementCliArgs.js.map +1 -0
  128. package/dist/commands/version/types/VersionInitCliArgs.js +3 -0
  129. package/dist/commands/version/types/VersionInitCliArgs.js.map +1 -0
  130. package/dist/commands/version/types/VersionListCliArgs.js +3 -0
  131. package/dist/commands/version/types/VersionListCliArgs.js.map +1 -0
  132. package/dist/commands/version/types/VersionProjectCliArgs.js +3 -0
  133. package/dist/commands/version/types/VersionProjectCliArgs.js.map +1 -0
  134. package/dist/commands/version/types/VersionRemoteCliArgs.js +3 -0
  135. package/dist/commands/version/types/VersionRemoteCliArgs.js.map +1 -0
  136. package/dist/commands/version/types/VersionResetCliArgs.js +3 -0
  137. package/dist/commands/version/types/VersionResetCliArgs.js.map +1 -0
  138. package/dist/commands/version/types/VersionRevertCliArgs.js +3 -0
  139. package/dist/commands/version/types/VersionRevertCliArgs.js.map +1 -0
  140. package/dist/commands/version/types/VersionSetCliArgs.js +3 -0
  141. package/dist/commands/version/types/VersionSetCliArgs.js.map +1 -0
  142. package/dist/commands/version/types/VersionValidateCliArgs.js +3 -0
  143. package/dist/commands/version/types/VersionValidateCliArgs.js.map +1 -0
  144. package/dist/config/defaults/config.json +259 -231
  145. package/dist/config/types/BranchConfig.js +3 -0
  146. package/dist/config/types/BranchConfig.js.map +1 -0
  147. package/dist/config/types/Repository.js +3 -0
  148. package/dist/config/types/Repository.js.map +1 -0
  149. package/dist/core/app.js +79 -4
  150. package/dist/core/app.js.map +1 -1
  151. package/dist/core/changelog/app.js +20 -0
  152. package/dist/core/changelog/app.js.map +1 -0
  153. package/dist/index.js +18 -74
  154. package/dist/index.js.map +1 -1
  155. package/dist/modules/FlowManager.js +439 -0
  156. package/dist/modules/FlowManager.js.map +1 -0
  157. package/dist/modules/branch/BranchController.js +124 -16
  158. package/dist/modules/branch/BranchController.js.map +1 -1
  159. package/dist/modules/branch/BranchManager.js +149 -104
  160. package/dist/modules/branch/BranchManager.js.map +1 -1
  161. package/dist/modules/changelog/ChangelogController.js +31 -0
  162. package/dist/modules/changelog/ChangelogController.js.map +1 -0
  163. package/dist/modules/changelog/templateOperations.js +1 -1
  164. package/dist/modules/changelog/templateOperations.js.map +1 -1
  165. package/dist/modules/commit/CommitController.js +38 -0
  166. package/dist/modules/commit/CommitController.js.map +1 -0
  167. package/dist/modules/commit/CommitManager.js +87 -0
  168. package/dist/modules/commit/CommitManager.js.map +1 -0
  169. package/dist/modules/git/context/remoteHandler.js +0 -6
  170. package/dist/modules/git/context/remoteHandler.js.map +1 -1
  171. package/dist/modules/git/gitOperations.js.map +1 -1
  172. package/dist/modules/git/utils/referenceUtils.js +7 -2
  173. package/dist/modules/git/utils/referenceUtils.js.map +1 -1
  174. package/dist/modules/version/GitVersionManager.js +40 -34
  175. package/dist/modules/version/GitVersionManager.js.map +1 -1
  176. package/dist/modules/version/ProjectVersion.js +195 -0
  177. package/dist/modules/version/ProjectVersion.js.map +1 -0
  178. package/dist/modules/version/ReleaseManager.js +0 -13
  179. package/dist/modules/version/ReleaseManager.js.map +1 -1
  180. package/dist/modules/version/VersionController.js +95 -0
  181. package/dist/modules/version/VersionController.js.map +1 -0
  182. package/dist/modules/version/VersionManager.js +40 -5
  183. package/dist/modules/version/VersionManager.js.map +1 -1
  184. package/dist/modules/version/VersionValidator.js.map +1 -1
  185. package/dist/modules/version/versionFormatter.js +47 -81
  186. package/dist/modules/version/versionFormatter.js.map +1 -1
  187. package/dist/templates/defaults/changelog.detailed.ejs +110 -110
  188. package/dist/templates/defaults/changelog.ejs +67 -67
  189. package/dist/utils/date.js +3 -3
  190. package/dist/utils/date.js.map +1 -1
  191. package/package.json +65 -63
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VersionController = void 0;
4
+ const GitVersionManager_1 = require("./GitVersionManager");
5
+ const ProjectVersion_1 = require("./ProjectVersion");
6
+ const ReleaseManager_1 = require("./ReleaseManager");
7
+ const VersionValidator_1 = require("./VersionValidator");
8
+ class VersionController {
9
+ constructor() {
10
+ this.gitManager = new GitVersionManager_1.GitVersionManager();
11
+ this.releaseManager = new ReleaseManager_1.ReleaseManager();
12
+ this.validator = new VersionValidator_1.VersionValidator();
13
+ this.projectVersionManager = new ProjectVersion_1.ProjectVersionManager();
14
+ }
15
+ async handleVersionCommand(options) {
16
+ try {
17
+ // Validate version manipulation options
18
+ this.validator.validateVersionOptions(options);
19
+ if (options.reset) {
20
+ await this.gitManager.resetVersion();
21
+ return;
22
+ }
23
+ if (options.detect) {
24
+ const projectVersion = this.projectVersionManager.detectProjectVersion(options.projectPath);
25
+ console.log(`Using project file: ${projectVersion.filePath}\nCurrent version: ${projectVersion.currentVersion}`);
26
+ // Eğer version manipulation flag'leri varsa, versiyon güncelleme işlemlerini yap
27
+ if (options.major || options.minor || options.patch) {
28
+ // TODO: Implement version update logic
29
+ // await this.updateVersionInFile(projectFile, newVersion)
30
+ }
31
+ return;
32
+ }
33
+ if (options.update) {
34
+ // Versiyon güncelleme
35
+ const projectVersion = typeof options.update === 'string' ? options.update : undefined;
36
+ await this.projectVersionManager.updateProjectVersion(projectVersion, options.projectPath);
37
+ return;
38
+ }
39
+ // Handle different version commands
40
+ if (options.list) {
41
+ await this.gitManager.listVersions(options.list === true ? 10 : parseInt(options.list));
42
+ return;
43
+ }
44
+ if (options.latest) {
45
+ await this.gitManager.showLatestVersion();
46
+ return;
47
+ }
48
+ if (options.compare) {
49
+ await this.gitManager.compareVersions(options.compare);
50
+ return;
51
+ }
52
+ if (options.revert) {
53
+ await this.gitManager.revertToVersion(options.revert, options.push);
54
+ return;
55
+ }
56
+ if (options.validate) {
57
+ this.validator.validateVersionFormat(options.validate);
58
+ return;
59
+ }
60
+ if (options.sync) {
61
+ await this.gitManager.syncVersions(options.push);
62
+ return;
63
+ }
64
+ // Handle version creation/update
65
+ let newVersion = '';
66
+ if (options.version) {
67
+ newVersion = options.version;
68
+ }
69
+ else if (options.init) {
70
+ newVersion = await this.gitManager.initVersion(options);
71
+ }
72
+ else {
73
+ newVersion = await this.gitManager.generateNewVersion(options);
74
+ }
75
+ await this.releaseManager.createVersion(newVersion, options);
76
+ // Create git tag
77
+ if (options.tag !== false) {
78
+ // Default to true if not explicitly set to false
79
+ await this.gitManager.createGitTag(newVersion);
80
+ console.log(`Created tag: ${newVersion}`);
81
+ }
82
+ // Push changes if requested
83
+ if (options.push) {
84
+ await this.gitManager.pushChanges(newVersion, options.branch);
85
+ console.log('Pushed changes to remote');
86
+ }
87
+ }
88
+ catch (error) {
89
+ console.error('Error:', error instanceof Error ? error.message : String(error));
90
+ process.exit(1);
91
+ }
92
+ }
93
+ }
94
+ exports.VersionController = VersionController;
95
+ //# sourceMappingURL=VersionController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VersionController.js","sourceRoot":"","sources":["../../../src/modules/version/VersionController.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VersionManager = void 0;
4
4
  const GitVersionManager_1 = require("./GitVersionManager");
5
+ const ProjectVersion_1 = require("./ProjectVersion");
5
6
  const ReleaseManager_1 = require("./ReleaseManager");
6
7
  const VersionValidator_1 = require("./VersionValidator");
7
8
  class VersionManager {
@@ -9,20 +10,37 @@ class VersionManager {
9
10
  this.gitManager = new GitVersionManager_1.GitVersionManager();
10
11
  this.releaseManager = new ReleaseManager_1.ReleaseManager();
11
12
  this.validator = new VersionValidator_1.VersionValidator();
13
+ this.projectVersionManager = new ProjectVersion_1.ProjectVersionManager();
12
14
  }
13
15
  async handleVersionCommand(options) {
14
16
  try {
15
17
  // Validate version manipulation options
16
18
  this.validator.validateVersionOptions(options);
19
+ if (options.reset) {
20
+ await this.gitManager.resetVersion();
21
+ return;
22
+ }
23
+ if (options.detect) {
24
+ const projectVersion = this.projectVersionManager.detectProjectVersion(options.projectPath);
25
+ console.log(`Using project file: ${projectVersion.filePath}\nCurrent version: ${projectVersion.currentVersion}`);
26
+ // Eğer version manipulation flag'leri varsa, versiyon güncelleme işlemlerini yap
27
+ if (options.major || options.minor || options.patch) {
28
+ // TODO: Implement version update logic
29
+ // await this.updateVersionInFile(projectFile, newVersion)
30
+ }
31
+ return;
32
+ }
33
+ if (options.update) {
34
+ // Versiyon güncelleme
35
+ const projectVersion = typeof options.update === 'string' ? options.update : undefined;
36
+ await this.projectVersionManager.updateProjectVersion(projectVersion, options.projectPath);
37
+ return;
38
+ }
17
39
  // Handle different version commands
18
40
  if (options.list) {
19
41
  await this.gitManager.listVersions(options.list === true ? 10 : parseInt(options.list));
20
42
  return;
21
43
  }
22
- if (options.reset) {
23
- await this.gitManager.resetVersion();
24
- return;
25
- }
26
44
  if (options.latest) {
27
45
  await this.gitManager.showLatestVersion();
28
46
  return;
@@ -44,8 +62,25 @@ class VersionManager {
44
62
  return;
45
63
  }
46
64
  // Handle version creation/update
47
- const newVersion = await this.gitManager.generateNewVersion(options);
65
+ let newVersion = "";
66
+ if (options.init) {
67
+ newVersion = await this.gitManager.initVersion(options);
68
+ }
69
+ else {
70
+ newVersion = await this.gitManager.generateNewVersion(options);
71
+ }
48
72
  await this.releaseManager.createVersion(newVersion, options);
73
+ // Create git tag
74
+ if (options.tag !== false) {
75
+ // Default to true if not explicitly set to false
76
+ await this.gitManager.createGitTag(newVersion);
77
+ console.log(`Created tag: ${newVersion}`);
78
+ }
79
+ // Push changes if requested
80
+ if (options.push) {
81
+ await this.gitManager.pushChanges(newVersion, options.branch);
82
+ console.log('Pushed changes to remote');
83
+ }
49
84
  }
50
85
  catch (error) {
51
86
  console.error('Error:', error instanceof Error ? error.message : String(error));
@@ -1 +1 @@
1
- {"version":3,"file":"VersionManager.js","sourceRoot":"","sources":["../../../src/modules/version/VersionManager.ts"],"names":[],"mappings":";;;AACA,2DAAuD;AACvD,qDAAiD;AACjD,yDAAqD;AAErD,MAAa,cAAc;IAKvB;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,qCAAiB,EAAE,CAAA;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAA;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,mCAAgB,EAAE,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAuB;QAC9C,IAAI,CAAC;YACD,wCAAwC;YACxC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAA;YAE9C,oCAAoC;YACpC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAc,CAAC,CAAC,CAAA;gBACjG,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAA;gBACpC,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAA;gBACzC,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;gBACtD,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;gBACnE,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACtD,OAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAChD,OAAM;YACV,CAAC;YAED,iCAAiC;YACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAA;YACpE,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnB,CAAC;IACL,CAAC;CACJ;AA5DD,wCA4DC"}
1
+ {"version":3,"file":"VersionManager.js","sourceRoot":"","sources":["../../../src/modules/version/VersionManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VersionValidator.js","sourceRoot":"","sources":["../../../src/modules/version/VersionValidator.ts"],"names":[],"mappings":";;;;;;AACA,oDAA2B;AAE3B,MAAa,gBAAgB;IACrB,sBAAsB,CAAC,OAAuB;QAClD,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;QAEpG,IAAI,uBAAuB,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC7E,CAAC;IACL,CAAC;IAQM,qBAAqB,CAAC,OAAe;QACxC,IAAI,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,WAAW,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;CAEA;AA/BD,4CA+BC"}
1
+ {"version":3,"file":"VersionValidator.js","sourceRoot":"","sources":["../../../src/modules/version/VersionValidator.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAG3B,MAAa,gBAAgB;IACrB,sBAAsB,CAAC,OAAuB;QAClD,MAAM,uBAAuB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;QAEpG,IAAI,uBAAuB,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACxE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QAC3E,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC7E,CAAC;IACL,CAAC;IAQM,qBAAqB,CAAC,OAAe;QACxC,IAAI,gBAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,WAAW,CAAC,CAAA;QAC9C,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;CAEA;AA/BD,4CA+BC"}
@@ -3,102 +3,68 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.incrementVersion = exports.incrementChannelOnly = void 0;
6
+ exports.incrementVersion = void 0;
7
7
  const semver_1 = __importDefault(require("semver"));
8
- const incrementChannelOnly = (version, options) => {
9
- const { channel, channelNumber, prefix, build } = options;
10
- if (!channel) {
11
- throw new Error('Channel must be specified for channel-only increment');
12
- }
13
- // Remove prefix if exists for processing
14
- let versionWithoutPrefix = prefix ? version.replace(prefix, '') : version;
15
- // Remove build metadata for processing
16
- versionWithoutPrefix = versionWithoutPrefix.split('+')[0];
8
+ const incrementVersion = (version, type, options = {}) => {
9
+ const { prefix, build, channel, prerelease, channelNumber } = options;
10
+ let versionWithoutPrefix = removePrefixAndBuild(version, prefix);
17
11
  if (!semver_1.default.valid(versionWithoutPrefix)) {
18
12
  throw new Error(`Invalid version format: ${version}`);
19
13
  }
20
- // Get the base version without prerelease or build metadata
21
- const baseVersion = versionWithoutPrefix.split('-')[0];
22
- let newVersion;
23
- if (!channelNumber) {
24
- // Simple channel without number
25
- newVersion = `${baseVersion}-${channel}`;
26
- }
27
- else {
28
- // Check current prerelease information
29
- const currentPrerelease = semver_1.default.prerelease(versionWithoutPrefix);
30
- if (currentPrerelease) {
31
- if (currentPrerelease[0] === channel) {
32
- // Same channel: increment the number
33
- const currentNumber = parseInt(currentPrerelease[1], 10) || 0;
34
- newVersion = `${baseVersion}-${channel}.${currentNumber + 1}`;
35
- }
36
- else {
37
- // Different channel: start new sequence
38
- newVersion = `${baseVersion}-${channel}.1`;
39
- }
40
- }
41
- else {
42
- // No previous prerelease: start new sequence
43
- newVersion = `${baseVersion}-${channel}.1`;
14
+ let newVersion = type ? incrementVersionCore(versionWithoutPrefix, type) : versionWithoutPrefix;
15
+ if (channel || prerelease) {
16
+ // Clear any existing prerelease if type is specified (since it means a new increment)
17
+ if (type) {
18
+ newVersion = clearPrerelease(newVersion);
44
19
  }
20
+ newVersion = addPrereleaseOrChannel(newVersion, versionWithoutPrefix, options);
45
21
  }
46
- // Add build metadata if specified
47
22
  if (build) {
48
23
  newVersion = `${newVersion}+${build}`;
49
24
  }
50
- // Add prefix back if specified
51
- return prefix ? `${prefix}${newVersion}` : newVersion;
25
+ return finalizeVersion(newVersion, prefix);
52
26
  };
53
- exports.incrementChannelOnly = incrementChannelOnly;
54
- // Update incrementVersion function to handle undefined versionType
55
- const incrementVersion = (version, type, options = {}) => {
56
- const { channel, channelNumber, prefix, prerelease, build } = options;
57
- // Remove prefix if exists for processing
58
- let versionWithoutPrefix = prefix ? version.replace(prefix, '') : version;
59
- // Remove build metadata for processing (will be added back later)
60
- versionWithoutPrefix = versionWithoutPrefix.split('+')[0];
61
- if (!semver_1.default.valid(versionWithoutPrefix)) {
62
- throw new Error(`Invalid version format: ${version}`);
27
+ exports.incrementVersion = incrementVersion;
28
+ const incrementVersionCore = (version, type) => {
29
+ var _a;
30
+ return (_a = semver_1.default.inc(version, type)) !== null && _a !== void 0 ? _a : version;
31
+ };
32
+ const removePrefixAndBuild = (version, prefix) => {
33
+ let baseVersion = prefix ? version.replace(prefix, '') : version;
34
+ return baseVersion.split('+')[0];
35
+ };
36
+ const addPrereleaseOrChannel = (baseVersion, versionWithoutPrefix, options) => {
37
+ const { channel, channelNumber, prerelease } = options;
38
+ if (prerelease) {
39
+ // For prerelease, append without a numerical suffix
40
+ // If there's an existing prerelease, return it as it is
41
+ if (semver_1.default.prerelease(baseVersion)) {
42
+ return baseVersion;
43
+ }
44
+ return `${baseVersion}-${prerelease}`;
63
45
  }
64
- // Get the base version without prerelease or build metadata
65
- const baseVersion = versionWithoutPrefix.split('-')[0];
66
- // Increment the base version according to type
67
- const incrementedVersion = semver_1.default.inc(baseVersion, type) || baseVersion;
68
- // Build the final version string
69
- let newVersion = incrementedVersion;
70
- // Add channel/prerelease information
71
- if (channel || prerelease) {
72
- const prereleaseIdentifier = channel || prerelease;
46
+ if (channel) {
47
+ const currentPrerelease = semver_1.default.prerelease(baseVersion);
48
+ const isExistingChannel = currentPrerelease && currentPrerelease[0] === channel;
49
+ if (isExistingChannel && channelNumber) {
50
+ const currentNumber = parseInt(currentPrerelease[1], 10) || 0;
51
+ return `${baseVersion.split('-')[0]}-${channel}.${currentNumber + 1}`;
52
+ }
73
53
  if (!channelNumber) {
74
- newVersion = `${newVersion}-${prereleaseIdentifier}`;
54
+ // If there is no -channel suffix or channelNumber is false, append channel without number
55
+ return `${baseVersion.split('-')[0]}-${channel}`;
75
56
  }
76
57
  else {
77
- // Check if current version has the same prerelease identifier
78
- const currentPrerelease = semver_1.default.prerelease(versionWithoutPrefix);
79
- if (currentPrerelease && currentPrerelease[0] === prereleaseIdentifier) {
80
- // If version type changed, reset prerelease number to 1
81
- if (semver_1.default.gt(incrementedVersion, baseVersion)) {
82
- newVersion = `${newVersion}-${prereleaseIdentifier}.1`;
83
- }
84
- else {
85
- // Increment prerelease number
86
- const currentNumber = parseInt(currentPrerelease[1], 10) || 0;
87
- newVersion = `${newVersion}-${prereleaseIdentifier}.${currentNumber + 1}`;
88
- }
89
- }
90
- else {
91
- // Start new prerelease sequence
92
- newVersion = `${newVersion}-${prereleaseIdentifier}.1`;
93
- }
58
+ // If no existing channel, and channelNumber is true, start numbering from .1
59
+ return `${baseVersion.split('-')[0]}-${channel}.1`;
94
60
  }
95
61
  }
96
- // Add build metadata if specified
97
- if (build) {
98
- newVersion = `${newVersion}+${build}`;
99
- }
100
- // Add prefix back if specified
101
- return prefix ? `${prefix}${newVersion}` : newVersion;
62
+ return baseVersion;
63
+ };
64
+ const clearPrerelease = (version) => {
65
+ return version.split('-')[0];
66
+ };
67
+ const finalizeVersion = (version, prefix) => {
68
+ return prefix ? `${prefix}${version}` : version;
102
69
  };
103
- exports.incrementVersion = incrementVersion;
104
70
  //# sourceMappingURL=versionFormatter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionFormatter.js","sourceRoot":"","sources":["../../../src/modules/version/versionFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versionFormatter.js","sourceRoot":"","sources":["../../../src/modules/version/versionFormatter.ts"],"names":[],"mappings":"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"}
@@ -1,111 +1,111 @@
1
- # <%= config.appName %> <%= changeInfo.header %> Release Notes - <%= latestReference?.date?.split("T")[0] %>
2
-
3
- ## Summary:
4
- <% sections.summary.commits.forEach(function(commit) { %>
5
- - <%= commit.title %>: <%= commit.count %> <%= commit.count === 1 ? 'commit' : 'commits' %>
6
- <% }) %>
7
- <% sections.summary.notes.forEach(function(note) { %>
8
- - <%= note.title %>: <%= note.count %> <%= note.count === 1 ? 'note' : 'notes' %>
9
- <% }) %>
10
- and <%= sections.summary.contributors.length %> <%= sections.summary.contributors.length === 1 ? '❤️ contributor' : '❤️ contributors' %>
11
-
12
-
13
- <% if (sections.notes.length > 0) { %>
14
- ## Notes
15
- <% sections.notes.forEach((note) => { %>
16
- ### <%= note.title %>
17
- <% note.items.forEach(item => { %>
18
- <%
19
- const commitLinks = `[#${item.commit.raw.shortHash}](#commit-${item.commit.raw.shortHash})`;
20
- %>
21
- - <%= item.note.content %> (<%= commitLinks %>)
22
- <% }) %>
23
- <% }) %>
24
- <% } %>
25
-
26
-
27
- <% if (sections.commits.length > 0) { %>
28
- ## Changes
29
- <% sections.commits.forEach((section) => { %>
30
- ### <%= section.title %>:
31
- <%
32
- // Group commits by scope
33
- const scopedCommits = {};
34
- const unscopedCommits = [];
35
-
36
- section.items.forEach(commit => {
37
- if (commit.scope) {
38
- if (!scopedCommits[commit.scope]) {
39
- scopedCommits[commit.scope] = [];
40
- }
41
- scopedCommits[commit.scope].push(commit);
42
- } else {
43
- unscopedCommits.push(commit);
44
- }
45
- });
46
- %>
47
-
48
- <% // Show commits with scope
49
- Object.keys(scopedCommits).sort().forEach(scope => { %>
50
- #### <%= scope %>
51
- <% scopedCommits[scope].forEach(commit => {
52
- const author = `[@${commit.author.name}](${commit.author.profileUrl})`;
53
- const mentions = commit.mentions
54
- ? commit.mentions
55
- .filter(mention => ['co-authored-by', 'helped-by'].includes(mention.type))
56
- .map(mention => `[@${mention.name}](${mention.profileUrl})`)
57
- .join(', ')
58
- : '';
59
- const authorText = mentions ? `${author} with ${mentions}` : author;
60
-
61
- const commitLink = `[#${commit.raw.shortHash}](${repository.remote.repoUrl}/commit/${commit.raw.hash})`;
62
-
63
- const issueLinks = commit.links && commit.links.length > 0
64
- ? ` (${commit.links.length === 1 ? 'Issue' : 'Issues'}: ${commit.links.map(link => `[#${link.id}](${repository.remote.repoUrl}/issues/${link.id})`).join(', ')})`
65
- : '';
66
- %>
67
- - <a id="commit-<%= commit.raw.shortHash %>"></a><%= commitLink %>: <%= commit.summary %> (by <%= authorText %>) <%= issueLinks %>
68
- <% if (commit.description) { %>
69
-
70
- <%= commit.description?.split('\n').map(line => `\t${line.trim()}`).join('\n') %>
71
- <% } %>
72
- <% }); %>
73
- <% }); %>
74
-
75
- <% // Show commits without scope
76
- unscopedCommits.forEach(commit => {
77
- const author = `[@${commit.author.name}](${commit.author.profileUrl})`;
78
- const mentions = commit.mentions
79
- ? commit.mentions
80
- .filter(mention => ['co-authored-by', 'helped-by'].includes(mention.type))
81
- .map(mention => `[@${mention.name}](${mention.profileUrl})`)
82
- .join(', ')
83
- : '';
84
- const authorText = mentions ? `${author} with ${mentions}` : author;
85
-
86
- const commitLink = `[#${commit.raw.shortHash}](${repository.remote.repoUrl}/commit/${commit.raw.hash})`;
87
-
88
- const issueLinks = commit.links && commit.links.length > 0
89
- ? ` (${commit.links.length === 1 ? 'Issue' : 'Issues'}: ${commit.links.map(link => `[#${link.id}](${repository.remote.repoUrl}/issues/${link.id})`).join(', ')})`
90
- : '';
91
- %>
92
- - <a id="commit-<%= commit.raw.shortHash %>"></a><%= commitLink %>: <%= commit.summary %> (by <%= authorText %>) <%= issueLinks %>
93
- <% if (commit.description) { %>
94
-
95
- <%= commit.description %>
96
- <% } %>
97
- <% }); %>
98
- <% }) %>
99
- <% } %>
100
-
101
- ## Useful Links
102
- - 📜 [Full Changelog](<%= repository.remote.repoUrl %>/blob/main/CHANGELOG.md)
103
-
104
-
105
-
106
- <% if (sections.contributors.length > 0) { %>
107
- ## Contributors:
108
- <% sections.contributors.forEach((contributor) => { %>
109
- - [<%= contributor.name %>](<%= contributor.profileUrl %>) <% if (contributor.groups.length > 0) { %>(<%= contributor.groups.map(group => group.title).join(', ') %>)<% } %>
110
- <% }) %>
1
+ # <%= config.appName %> <%= changeInfo.header %> Release Notes - <%= latestReference?.date?.split("T")[0] %>
2
+
3
+ ## Summary:
4
+ <% sections.summary.commits.forEach(function(commit) { %>
5
+ - <%= commit.title %>: <%= commit.count %> <%= commit.count === 1 ? 'commit' : 'commits' %>
6
+ <% }) %>
7
+ <% sections.summary.notes.forEach(function(note) { %>
8
+ - <%= note.title %>: <%= note.count %> <%= note.count === 1 ? 'note' : 'notes' %>
9
+ <% }) %>
10
+ and <%= sections.summary.contributors.length %> <%= sections.summary.contributors.length === 1 ? '❤️ contributor' : '❤️ contributors' %>
11
+
12
+
13
+ <% if (sections.notes.length > 0) { %>
14
+ ## Notes
15
+ <% sections.notes.forEach((note) => { %>
16
+ ### <%= note.title %>
17
+ <% note.items.forEach(item => { %>
18
+ <%
19
+ const commitLinks = `[#${item.commit.raw.shortHash}](#commit-${item.commit.raw.shortHash})`;
20
+ %>
21
+ - <%= item.note.content %> (<%= commitLinks %>)
22
+ <% }) %>
23
+ <% }) %>
24
+ <% } %>
25
+
26
+
27
+ <% if (sections.commits.length > 0) { %>
28
+ ## Changes
29
+ <% sections.commits.forEach((section) => { %>
30
+ ### <%= section.title %>:
31
+ <%
32
+ // Group commits by scope
33
+ const scopedCommits = {};
34
+ const unscopedCommits = [];
35
+
36
+ section.items.forEach(commit => {
37
+ if (commit.scope) {
38
+ if (!scopedCommits[commit.scope]) {
39
+ scopedCommits[commit.scope] = [];
40
+ }
41
+ scopedCommits[commit.scope].push(commit);
42
+ } else {
43
+ unscopedCommits.push(commit);
44
+ }
45
+ });
46
+ %>
47
+
48
+ <% // Show commits with scope
49
+ Object.keys(scopedCommits).sort().forEach(scope => { %>
50
+ #### <%= scope %>
51
+ <% scopedCommits[scope].forEach(commit => {
52
+ const author = `[@${commit.author.name}](${commit.author.profileUrl})`;
53
+ const mentions = commit.mentions
54
+ ? commit.mentions
55
+ .filter(mention => ['co-authored-by', 'helped-by'].includes(mention.type))
56
+ .map(mention => `[@${mention.name}](${mention.profileUrl})`)
57
+ .join(', ')
58
+ : '';
59
+ const authorText = mentions ? `${author} with ${mentions}` : author;
60
+
61
+ const commitLink = `[#${commit.raw.shortHash}](${repository.remote.repoUrl}/commit/${commit.raw.hash})`;
62
+
63
+ const issueLinks = commit.links && commit.links.length > 0
64
+ ? ` (${commit.links.length === 1 ? 'Issue' : 'Issues'}: ${commit.links.map(link => `[#${link.id}](${repository.remote.repoUrl}/issues/${link.id})`).join(', ')})`
65
+ : '';
66
+ %>
67
+ - <a id="commit-<%= commit.raw.shortHash %>"></a><%= commitLink %>: <%= commit.summary %> (by <%= authorText %>) <%= issueLinks %>
68
+ <% if (commit.description) { %>
69
+
70
+ <%= commit.description?.split('\n').map(line => `\t${line.trim()}`).join('\n') %>
71
+ <% } %>
72
+ <% }); %>
73
+ <% }); %>
74
+
75
+ <% // Show commits without scope
76
+ unscopedCommits.forEach(commit => {
77
+ const author = `[@${commit.author.name}](${commit.author.profileUrl})`;
78
+ const mentions = commit.mentions
79
+ ? commit.mentions
80
+ .filter(mention => ['co-authored-by', 'helped-by'].includes(mention.type))
81
+ .map(mention => `[@${mention.name}](${mention.profileUrl})`)
82
+ .join(', ')
83
+ : '';
84
+ const authorText = mentions ? `${author} with ${mentions}` : author;
85
+
86
+ const commitLink = `[#${commit.raw.shortHash}](${repository.remote.repoUrl}/commit/${commit.raw.hash})`;
87
+
88
+ const issueLinks = commit.links && commit.links.length > 0
89
+ ? ` (${commit.links.length === 1 ? 'Issue' : 'Issues'}: ${commit.links.map(link => `[#${link.id}](${repository.remote.repoUrl}/issues/${link.id})`).join(', ')})`
90
+ : '';
91
+ %>
92
+ - <a id="commit-<%= commit.raw.shortHash %>"></a><%= commitLink %>: <%= commit.summary %> (by <%= authorText %>) <%= issueLinks %>
93
+ <% if (commit.description) { %>
94
+
95
+ <%= commit.description %>
96
+ <% } %>
97
+ <% }); %>
98
+ <% }) %>
99
+ <% } %>
100
+
101
+ ## Useful Links
102
+ - 📜 [Full Changelog](<%= repository.remote.repoUrl %>/blob/main/CHANGELOG.md)
103
+
104
+
105
+
106
+ <% if (sections.contributors.length > 0) { %>
107
+ ## Contributors:
108
+ <% sections.contributors.forEach((contributor) => { %>
109
+ - [<%= contributor.name %>](<%= contributor.profileUrl %>) <% if (contributor.groups.length > 0) { %>(<%= contributor.groups.map(group => group.title).join(', ') %>)<% } %>
110
+ <% }) %>
111
111
  <% } %>