beachball 2.60.1 → 2.62.0

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 (206) hide show
  1. package/README.md +1 -1
  2. package/lib/bump/bumpInMemory.d.ts +10 -0
  3. package/lib/bump/bumpInMemory.d.ts.map +1 -0
  4. package/lib/bump/bumpInMemory.js +73 -0
  5. package/lib/bump/bumpInMemory.js.map +1 -0
  6. package/lib/bump/bumpMinSemverRange.d.ts +12 -1
  7. package/lib/bump/bumpMinSemverRange.d.ts.map +1 -1
  8. package/lib/bump/bumpMinSemverRange.js +34 -17
  9. package/lib/bump/bumpMinSemverRange.js.map +1 -1
  10. package/lib/bump/bumpPackageInfoVersion.d.ts.map +1 -1
  11. package/lib/bump/bumpPackageInfoVersion.js +27 -7
  12. package/lib/bump/bumpPackageInfoVersion.js.map +1 -1
  13. package/lib/bump/callHook.d.ts +1 -1
  14. package/lib/bump/callHook.d.ts.map +1 -1
  15. package/lib/bump/callHook.js +5 -0
  16. package/lib/bump/callHook.js.map +1 -1
  17. package/lib/bump/gatherBumpInfo.d.ts +1 -2
  18. package/lib/bump/gatherBumpInfo.d.ts.map +1 -1
  19. package/lib/bump/gatherBumpInfo.js +5 -23
  20. package/lib/bump/gatherBumpInfo.js.map +1 -1
  21. package/lib/bump/performBump.d.ts +5 -2
  22. package/lib/bump/performBump.d.ts.map +1 -1
  23. package/lib/bump/performBump.js +5 -3
  24. package/lib/bump/performBump.js.map +1 -1
  25. package/lib/bump/setDependentVersions.d.ts +5 -2
  26. package/lib/bump/setDependentVersions.d.ts.map +1 -1
  27. package/lib/bump/setDependentVersions.js +17 -8
  28. package/lib/bump/setDependentVersions.js.map +1 -1
  29. package/lib/bump/updateLockFile.js +4 -4
  30. package/lib/bump/updateLockFile.js.map +1 -1
  31. package/lib/bump/updatePackageJsons.d.ts +1 -1
  32. package/lib/bump/updatePackageJsons.d.ts.map +1 -1
  33. package/lib/bump/updatePackageJsons.js +7 -4
  34. package/lib/bump/updatePackageJsons.js.map +1 -1
  35. package/lib/bump/updateRelatedChangeType.d.ts +3 -3
  36. package/lib/bump/updateRelatedChangeType.d.ts.map +1 -1
  37. package/lib/bump/updateRelatedChangeType.js +19 -17
  38. package/lib/bump/updateRelatedChangeType.js.map +1 -1
  39. package/lib/changefile/changeTypes.d.ts +3 -1
  40. package/lib/changefile/changeTypes.d.ts.map +1 -1
  41. package/lib/changefile/changeTypes.js +3 -1
  42. package/lib/changefile/changeTypes.js.map +1 -1
  43. package/lib/changefile/getChangedPackages.d.ts +7 -3
  44. package/lib/changefile/getChangedPackages.d.ts.map +1 -1
  45. package/lib/changefile/getChangedPackages.js +38 -23
  46. package/lib/changefile/getChangedPackages.js.map +1 -1
  47. package/lib/changefile/readChangeFiles.d.ts +3 -2
  48. package/lib/changefile/readChangeFiles.d.ts.map +1 -1
  49. package/lib/changefile/readChangeFiles.js +14 -10
  50. package/lib/changefile/readChangeFiles.js.map +1 -1
  51. package/lib/changefile/unlinkChangeFiles.js +4 -4
  52. package/lib/changefile/unlinkChangeFiles.js.map +1 -1
  53. package/lib/changefile/writeChangeFiles.d.ts.map +1 -1
  54. package/lib/changefile/writeChangeFiles.js +6 -5
  55. package/lib/changefile/writeChangeFiles.js.map +1 -1
  56. package/lib/changelog/getPackageChangelogs.d.ts.map +1 -1
  57. package/lib/changelog/getPackageChangelogs.js +7 -1
  58. package/lib/changelog/getPackageChangelogs.js.map +1 -1
  59. package/lib/changelog/writeChangelog.d.ts.map +1 -1
  60. package/lib/changelog/writeChangelog.js +9 -8
  61. package/lib/changelog/writeChangelog.js.map +1 -1
  62. package/lib/cli.js +31 -16
  63. package/lib/cli.js.map +1 -1
  64. package/lib/commands/bump.d.ts +4 -3
  65. package/lib/commands/bump.d.ts.map +1 -1
  66. package/lib/commands/bump.js +8 -5
  67. package/lib/commands/bump.js.map +1 -1
  68. package/lib/commands/canary.d.ts +7 -3
  69. package/lib/commands/canary.d.ts.map +1 -1
  70. package/lib/commands/canary.js +10 -7
  71. package/lib/commands/canary.js.map +1 -1
  72. package/lib/commands/change.d.ts +4 -3
  73. package/lib/commands/change.d.ts.map +1 -1
  74. package/lib/commands/change.js +8 -11
  75. package/lib/commands/change.js.map +1 -1
  76. package/lib/commands/init.d.ts +1 -1
  77. package/lib/commands/init.d.ts.map +1 -1
  78. package/lib/commands/init.js +9 -21
  79. package/lib/commands/init.js.map +1 -1
  80. package/lib/commands/publish.d.ts +4 -3
  81. package/lib/commands/publish.d.ts.map +1 -1
  82. package/lib/commands/publish.js +31 -20
  83. package/lib/commands/publish.js.map +1 -1
  84. package/lib/commands/sync.d.ts +4 -3
  85. package/lib/commands/sync.d.ts.map +1 -1
  86. package/lib/commands/sync.js +10 -5
  87. package/lib/commands/sync.js.map +1 -1
  88. package/lib/env.js +1 -1
  89. package/lib/env.js.map +1 -1
  90. package/lib/help.d.ts.map +1 -1
  91. package/lib/help.js +6 -1
  92. package/lib/help.js.map +1 -1
  93. package/lib/logging/indent.d.ts.map +1 -1
  94. package/lib/logging/indent.js.map +1 -1
  95. package/lib/monorepo/createCommandContext.d.ts +20 -0
  96. package/lib/monorepo/createCommandContext.d.ts.map +1 -0
  97. package/lib/monorepo/createCommandContext.js +33 -0
  98. package/lib/monorepo/createCommandContext.js.map +1 -0
  99. package/lib/monorepo/getPackageGraph.d.ts +1 -1
  100. package/lib/monorepo/getPackageGraph.d.ts.map +1 -1
  101. package/lib/monorepo/getPackageGraph.js +1 -1
  102. package/lib/monorepo/getPackageGraph.js.map +1 -1
  103. package/lib/monorepo/getPackageGroups.d.ts.map +1 -1
  104. package/lib/monorepo/getPackageGroups.js +1 -0
  105. package/lib/monorepo/getPackageGroups.js.map +1 -1
  106. package/lib/monorepo/getPackageInfos.d.ts +2 -1
  107. package/lib/monorepo/getPackageInfos.d.ts.map +1 -1
  108. package/lib/monorepo/getPackageInfos.js +4 -3
  109. package/lib/monorepo/getPackageInfos.js.map +1 -1
  110. package/lib/monorepo/getScopedPackages.d.ts +5 -2
  111. package/lib/monorepo/getScopedPackages.d.ts.map +1 -1
  112. package/lib/monorepo/getScopedPackages.js +8 -2
  113. package/lib/monorepo/getScopedPackages.js.map +1 -1
  114. package/lib/object/cloneObject.d.ts.map +1 -1
  115. package/lib/object/cloneObject.js +11 -1
  116. package/lib/object/cloneObject.js.map +1 -1
  117. package/lib/object/readJson.d.ts +5 -0
  118. package/lib/object/readJson.d.ts.map +1 -0
  119. package/lib/object/readJson.js +21 -0
  120. package/lib/object/readJson.js.map +1 -0
  121. package/lib/object/writeJson.d.ts +2 -0
  122. package/lib/object/writeJson.d.ts.map +1 -0
  123. package/lib/object/writeJson.js +13 -0
  124. package/lib/object/writeJson.js.map +1 -0
  125. package/lib/options/getCliOptions.d.ts.map +1 -1
  126. package/lib/options/getCliOptions.js +7 -2
  127. package/lib/options/getCliOptions.js.map +1 -1
  128. package/lib/options/getOptions.d.ts.map +1 -1
  129. package/lib/options/getOptions.js +1 -0
  130. package/lib/options/getOptions.js.map +1 -1
  131. package/lib/options/getPackageInfosWithOptions.d.ts.map +1 -1
  132. package/lib/options/getPackageInfosWithOptions.js +2 -0
  133. package/lib/options/getPackageInfosWithOptions.js.map +1 -1
  134. package/lib/options/getRepoOptions.d.ts.map +1 -1
  135. package/lib/options/getRepoOptions.js +2 -0
  136. package/lib/options/getRepoOptions.js.map +1 -1
  137. package/lib/packageManager/getNpmPackageInfo.d.ts +42 -0
  138. package/lib/packageManager/getNpmPackageInfo.d.ts.map +1 -0
  139. package/lib/packageManager/getNpmPackageInfo.js +46 -0
  140. package/lib/packageManager/getNpmPackageInfo.js.map +1 -0
  141. package/lib/packageManager/listPackageVersions.d.ts +8 -15
  142. package/lib/packageManager/listPackageVersions.d.ts.map +1 -1
  143. package/lib/packageManager/listPackageVersions.js +13 -39
  144. package/lib/packageManager/listPackageVersions.js.map +1 -1
  145. package/lib/packageManager/npmArgs.d.ts +10 -2
  146. package/lib/packageManager/npmArgs.d.ts.map +1 -1
  147. package/lib/packageManager/npmArgs.js +10 -5
  148. package/lib/packageManager/npmArgs.js.map +1 -1
  149. package/lib/packageManager/packPackage.d.ts.map +1 -1
  150. package/lib/packageManager/packPackage.js +12 -7
  151. package/lib/packageManager/packPackage.js.map +1 -1
  152. package/lib/packageManager/packagePublish.d.ts.map +1 -1
  153. package/lib/packageManager/packagePublish.js +1 -0
  154. package/lib/packageManager/packagePublish.js.map +1 -1
  155. package/lib/packageManager/resolveSpecialVersion.d.ts +14 -0
  156. package/lib/packageManager/resolveSpecialVersion.d.ts.map +1 -0
  157. package/lib/packageManager/resolveSpecialVersion.js +43 -0
  158. package/lib/packageManager/resolveSpecialVersion.js.map +1 -0
  159. package/lib/publish/bumpAndPush.d.ts +3 -1
  160. package/lib/publish/bumpAndPush.d.ts.map +1 -1
  161. package/lib/publish/bumpAndPush.js +8 -4
  162. package/lib/publish/bumpAndPush.js.map +1 -1
  163. package/lib/publish/displayManualRecovery.js +2 -2
  164. package/lib/publish/displayManualRecovery.js.map +1 -1
  165. package/lib/publish/getPackagesToPublish.d.ts +6 -5
  166. package/lib/publish/getPackagesToPublish.d.ts.map +1 -1
  167. package/lib/publish/getPackagesToPublish.js +7 -9
  168. package/lib/publish/getPackagesToPublish.js.map +1 -1
  169. package/lib/publish/performPublishOverrides.d.ts +25 -2
  170. package/lib/publish/performPublishOverrides.d.ts.map +1 -1
  171. package/lib/publish/performPublishOverrides.js +40 -53
  172. package/lib/publish/performPublishOverrides.js.map +1 -1
  173. package/lib/publish/publishToRegistry.d.ts +1 -1
  174. package/lib/publish/publishToRegistry.d.ts.map +1 -1
  175. package/lib/publish/publishToRegistry.js +11 -5
  176. package/lib/publish/publishToRegistry.js.map +1 -1
  177. package/lib/types/BeachballOptions.d.ts +18 -12
  178. package/lib/types/BeachballOptions.d.ts.map +1 -1
  179. package/lib/types/BumpInfo.d.ts +21 -6
  180. package/lib/types/BumpInfo.d.ts.map +1 -1
  181. package/lib/types/ChangeInfo.d.ts.map +1 -1
  182. package/lib/types/ChangeLog.d.ts.map +1 -1
  183. package/lib/types/CommandContext.d.ts +38 -0
  184. package/lib/types/CommandContext.d.ts.map +1 -0
  185. package/lib/types/CommandContext.js +3 -0
  186. package/lib/types/CommandContext.js.map +1 -0
  187. package/lib/types/DeepReadonly.d.ts.map +1 -1
  188. package/lib/types/PackageInfo.d.ts +11 -4
  189. package/lib/types/PackageInfo.d.ts.map +1 -1
  190. package/lib/validation/validate.d.ts +16 -8
  191. package/lib/validation/validate.d.ts.map +1 -1
  192. package/lib/validation/validate.js +51 -28
  193. package/lib/validation/validate.js.map +1 -1
  194. package/package.json +14 -5
  195. package/lib/bump/bumpInPlace.d.ts +0 -9
  196. package/lib/bump/bumpInPlace.d.ts.map +0 -1
  197. package/lib/bump/bumpInPlace.js +0 -53
  198. package/lib/bump/bumpInPlace.js.map +0 -1
  199. package/lib/validation/isChangeFileNeeded.d.ts +0 -4
  200. package/lib/validation/isChangeFileNeeded.d.ts.map +0 -1
  201. package/lib/validation/isChangeFileNeeded.js +0 -19
  202. package/lib/validation/isChangeFileNeeded.js.map +0 -1
  203. package/lib/validation/isGitAvailable.d.ts +0 -2
  204. package/lib/validation/isGitAvailable.d.ts.map +0 -1
  205. package/lib/validation/isGitAvailable.js +0 -15
  206. package/lib/validation/isGitAvailable.js.map +0 -1
package/README.md CHANGED
@@ -93,7 +93,7 @@ $ beachball publish -r http://localhost:4873 -t beta
93
93
 
94
94
  ### Overriding concurrency
95
95
 
96
- In large monorepos, the process of fetching versions for sync or before publishing can be time-consuming due to the high number of packages. To optimize performance, you can override the concurrency for npm read operations by setting `options.npmReadConcurrency` (default: 5). You can also increase concurrency for hook calls and publish operations via `options.concurrency` (default: 1; respects topological order).
96
+ In large monorepos, the process of fetching versions for sync or before publishing can be time-consuming due to the high number of packages. To optimize performance, you can override the concurrency for fetching from the registry by setting `options.npmReadConcurrency` (default: 10). You can also increase concurrency for hook calls and publish operations via `options.concurrency` (default: 1; respects topological order).
97
97
 
98
98
  ### API surface
99
99
 
@@ -0,0 +1,10 @@
1
+ import type { BumpInfo } from '../types/BumpInfo';
2
+ import type { BeachballOptions } from '../types/BeachballOptions';
3
+ import type { CommandContext } from '../types/CommandContext';
4
+ /**
5
+ * Gather bump info and bump versions in memory.
6
+ * Does NOT mutate the given `context.originalPackageInfos`.
7
+ * @param context Pre-calculated context
8
+ */
9
+ export declare function bumpInMemory(options: BeachballOptions, context: Omit<CommandContext, 'bumpInfo'>): BumpInfo;
10
+ //# sourceMappingURL=bumpInMemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bumpInMemory.d.ts","sourceRoot":"","sources":["../../src/bump/bumpInMemory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO9D;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,QAAQ,CAkE3G"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bumpInMemory = void 0;
4
+ const changeTypes_1 = require("../changefile/changeTypes");
5
+ const cloneObject_1 = require("../object/cloneObject");
6
+ const getDependentsForPackages_1 = require("./getDependentsForPackages");
7
+ const updateRelatedChangeType_1 = require("./updateRelatedChangeType");
8
+ const bumpPackageInfoVersion_1 = require("./bumpPackageInfoVersion");
9
+ const setDependentVersions_1 = require("./setDependentVersions");
10
+ /**
11
+ * Gather bump info and bump versions in memory.
12
+ * Does NOT mutate the given `context.originalPackageInfos`.
13
+ * @param context Pre-calculated context
14
+ */
15
+ function bumpInMemory(options, context) {
16
+ const { bumpDeps } = options;
17
+ // Pass 1: calculatedChangeTypes includes ONLY changes direct from the change files
18
+ // (no dependents, groups, or disallowedChangeTypes)
19
+ const calculatedChangeTypes = (0, changeTypes_1.initializePackageChangeTypes)(context.changeSet);
20
+ // (Splitting out a couple properties that aren't modified as initial step of reducing mutation approach)
21
+ const bumpInfo = {
22
+ calculatedChangeTypes,
23
+ packageInfos: (0, cloneObject_1.cloneObject)(context.originalPackageInfos),
24
+ packageGroups: context.packageGroups,
25
+ modifiedPackages: new Set(),
26
+ scopedPackages: context.scopedPackages,
27
+ };
28
+ // Perform the bumps in memory (this previously lived in bumpInPlace.ts)
29
+ // prior history: https://github.com/microsoft/beachball/blob/83e386d87b5fc9269fd734cea127f28b3b23a0a1/src/bump/bumpInPlace.ts
30
+ // TODO: when we do "locked", or "lock step" versioning, we could simply skip setting grouped change types
31
+ // - set the version for all packages in the group in (bumpPackageInfoVersion())
32
+ // - the main concern is how to capture the bump reason in grouped changelog
33
+ // pass 2: initialize grouped calculatedChangeTypes together
34
+ for (const group of Object.values(bumpInfo.packageGroups)) {
35
+ // If any of the group's packages have a change, find the max change type out of any package in the group.
36
+ const seenTypes = new Set();
37
+ for (const packageNameInGroup of group.packageNames) {
38
+ const changeType = calculatedChangeTypes[packageNameInGroup];
39
+ if (changeType) {
40
+ seenTypes.add(changeType);
41
+ }
42
+ }
43
+ if (seenTypes.size) {
44
+ // Set all packages in the group to the max change type.
45
+ const maxChangeInGroup = (0, changeTypes_1.getMaxChangeType)([...seenTypes], group.disallowedChangeTypes);
46
+ for (const packageNameInGroup of group.packageNames) {
47
+ calculatedChangeTypes[packageNameInGroup] = maxChangeInGroup;
48
+ }
49
+ }
50
+ }
51
+ // Pass 3: Calculate change types for dependents and groups.
52
+ // TODO: fix weird behavior - https://github.com/microsoft/beachball/issues/620
53
+ const dependents = bumpDeps ? (0, getDependentsForPackages_1.getDependentsForPackages)(bumpInfo) : undefined;
54
+ for (const { change } of context.changeSet) {
55
+ (0, updateRelatedChangeType_1.updateRelatedChangeType)({ change, bumpInfo, dependents });
56
+ }
57
+ // pass 4: actually bump the packages in the bumpInfo in memory (no disk writes at this point)
58
+ for (const pkgName of Object.keys(calculatedChangeTypes)) {
59
+ (0, bumpPackageInfoVersion_1.bumpPackageInfoVersion)(pkgName, bumpInfo, options);
60
+ }
61
+ // step 5: Bump all the dependency version ranges and collect dependentChangedBy for the changelog.
62
+ const dependentChangedBy = (0, setDependentVersions_1.setDependentVersions)(bumpInfo, options);
63
+ // For now, add any modifiedPackages not previously detected (due to bumpDeps: false or scopes).
64
+ // TODO: Rethink all of this... https://github.com/microsoft/beachball/issues/1123
65
+ Object.keys(dependentChangedBy).forEach(pkg => bumpInfo.modifiedPackages.add(pkg));
66
+ return {
67
+ ...bumpInfo,
68
+ changeFileChangeInfos: context.changeSet,
69
+ dependentChangedBy,
70
+ };
71
+ }
72
+ exports.bumpInMemory = bumpInMemory;
73
+ //# sourceMappingURL=bumpInMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bumpInMemory.js","sourceRoot":"","sources":["../../src/bump/bumpInMemory.ts"],"names":[],"mappings":";;;AAAA,2DAA2F;AAG3F,uDAAoD;AAGpD,yEAAsE;AACtE,uEAAoE;AACpE,qEAAkE;AAClE,iEAA8D;AAE9D;;;;GAIG;AACH,SAAgB,YAAY,CAAC,OAAyB,EAAE,OAAyC;IAC/F,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE7B,mFAAmF;IACnF,oDAAoD;IACpD,MAAM,qBAAqB,GAAG,IAAA,0CAA4B,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAE9E,yGAAyG;IACzG,MAAM,QAAQ,GAAmE;QAC/E,qBAAqB;QACrB,YAAY,EAAE,IAAA,yBAAW,EAAC,OAAO,CAAC,oBAAoB,CAAC;QACvD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,gBAAgB,EAAE,IAAI,GAAG,EAAU;QACnC,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IAEF,wEAAwE;IACxE,8HAA8H;IAE9H,0GAA0G;IAC1G,sFAAsF;IACtF,kFAAkF;IAElF,4DAA4D;IAC5D,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QACzD,0GAA0G;QAC1G,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;QACxC,KAAK,MAAM,kBAAkB,IAAI,KAAK,CAAC,YAAY,EAAE;YACnD,MAAM,UAAU,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;YAC7D,IAAI,UAAU,EAAE;gBACd,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAC3B;SACF;QAED,IAAI,SAAS,CAAC,IAAI,EAAE;YAClB,wDAAwD;YACxD,MAAM,gBAAgB,GAAG,IAAA,8BAAgB,EAAC,CAAC,GAAG,SAAS,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACvF,KAAK,MAAM,kBAAkB,IAAI,KAAK,CAAC,YAAY,EAAE;gBACnD,qBAAqB,CAAC,kBAAkB,CAAC,GAAG,gBAAgB,CAAC;aAC9D;SACF;KACF;IAED,4DAA4D;IAC5D,+EAA+E;IAC/E,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,mDAAwB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE;QAC1C,IAAA,iDAAuB,EAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;KAC3D;IAED,8FAA8F;IAC9F,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;QACxD,IAAA,+CAAsB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KACpD;IAED,mGAAmG;IACnG,MAAM,kBAAkB,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,gGAAgG;IAChG,kFAAkF;IAClF,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnF,OAAO;QACL,GAAG,QAAQ;QACX,qBAAqB,EAAE,OAAO,CAAC,SAAS;QACxC,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAlED,oCAkEC"}
@@ -1,2 +1,13 @@
1
- export declare function bumpMinSemverRange(minVersion: string, semverRange: string): string;
1
+ /**
2
+ * Bump the semver range for a dependency to match the new version of a package.
3
+ * @param newVersion The new version of the package
4
+ * @param currentRange Current version range for the dependency.
5
+ * @returns New semver range for the dependency
6
+ */
7
+ export declare function bumpMinSemverRange(params: {
8
+ /** The new version of the package */
9
+ newVersion: string;
10
+ /** Current semver range specified for the dependency */
11
+ currentRange: string;
12
+ }): string;
2
13
  //# sourceMappingURL=bumpMinSemverRange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bumpMinSemverRange.d.ts","sourceRoot":"","sources":["../../src/bump/bumpMinSemverRange.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAiClF"}
1
+ {"version":3,"file":"bumpMinSemverRange.d.ts","sourceRoot":"","sources":["../../src/bump/bumpMinSemverRange.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CA+CT"}
@@ -5,38 +5,55 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.bumpMinSemverRange = void 0;
7
7
  const semver_1 = __importDefault(require("semver"));
8
+ const workspace_tools_1 = require("workspace-tools");
8
9
  const getWorkspaceRange_1 = require("../packageManager/getWorkspaceRange");
9
- function bumpMinSemverRange(minVersion, semverRange) {
10
- if (semverRange === '*' || semverRange.startsWith('file:')) {
11
- return semverRange;
10
+ /**
11
+ * Bump the semver range for a dependency to match the new version of a package.
12
+ * @param newVersion The new version of the package
13
+ * @param currentRange Current version range for the dependency.
14
+ * @returns New semver range for the dependency
15
+ */
16
+ function bumpMinSemverRange(params) {
17
+ const { newVersion, currentRange } = params;
18
+ if (currentRange === '*' || currentRange.startsWith('file:') || (0, workspace_tools_1.isCatalogVersion)(currentRange)) {
19
+ return currentRange;
12
20
  }
13
- const workspaceRange = (0, getWorkspaceRange_1.getWorkspaceRange)(semverRange);
21
+ if (currentRange[0] === '~' || currentRange[0] === '^') {
22
+ // ~1.0.0
23
+ // ^1.0.0
24
+ return currentRange[0] + newVersion;
25
+ }
26
+ const workspaceRange = (0, getWorkspaceRange_1.getWorkspaceRange)(currentRange);
14
27
  if (workspaceRange === '*' || workspaceRange === '~' || workspaceRange === '^') {
15
28
  // For basic workspace ranges we can just preserve current value and replace during publish
16
29
  // https://pnpm.io/workspaces#workspace-protocol-workspace
17
- return semverRange;
18
- }
19
- if (semverRange[0] === '~' || semverRange[0] === '^') {
20
- // ~1.0.0
21
- // ^1.0.0
22
- return semverRange[0] + minVersion;
30
+ return currentRange;
23
31
  }
24
32
  if (workspaceRange && (workspaceRange[0] === '~' || workspaceRange[0] === '^')) {
25
33
  // workspace:~1.0.0
26
34
  // workspace:^1.0.0
27
- return `workspace:${workspaceRange[0]}${minVersion}`;
35
+ return `workspace:${workspaceRange[0]}${newVersion}`;
28
36
  }
29
- if (semverRange.includes('>')) {
30
- // Less frequently used, but we treat any of these kinds of ranges to be within a minor band for now:
37
+ if (currentRange.includes('>')) {
38
+ // Less frequently used, but use the new version as a minimum for this kind of range.
31
39
  // more complex understanding of the semver range utility is needed to do more
32
40
  // >=1.0.0 <2.0.0
33
- return `>=${minVersion} <${semver_1.default.inc(minVersion, 'major')}`;
41
+ return `>=${newVersion} <${semver_1.default.inc(newVersion, 'major')}`;
34
42
  }
35
- if (semverRange.includes(' - ')) {
43
+ if (currentRange.includes(' - ')) {
36
44
  // 1.0.0 - 2.0.0
37
- return `${minVersion} - ${semver_1.default.inc(minVersion, 'major')}`;
45
+ return `${newVersion} - ${semver_1.default.inc(newVersion, 'major')}`;
46
+ }
47
+ if (semver_1.default.valid(currentRange)) {
48
+ // Exact version match, e.g. 1.0.0
49
+ return newVersion;
50
+ }
51
+ // For unrecognized valid semver ranges: if the new version satisfies the current range, keep it
52
+ if (semver_1.default.validRange(currentRange) && semver_1.default.satisfies(newVersion, currentRange)) {
53
+ return currentRange;
38
54
  }
39
- return minVersion;
55
+ // Fallback: return the exact new version
56
+ return newVersion;
40
57
  }
41
58
  exports.bumpMinSemverRange = bumpMinSemverRange;
42
59
  //# sourceMappingURL=bumpMinSemverRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bumpMinSemverRange.js","sourceRoot":"","sources":["../../src/bump/bumpMinSemverRange.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,2EAAwE;AAExE,SAAgB,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;IACxE,IAAI,WAAW,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC1D,OAAO,WAAW,CAAC;KACpB;IAED,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,GAAG,EAAE;QAC9E,2FAA2F;QAC3F,0DAA0D;QAC1D,OAAO,WAAW,CAAC;KACpB;IACD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACpD,SAAS;QACT,SAAS;QACT,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;KACpC;IACD,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;QAC9E,mBAAmB;QACnB,mBAAmB;QACnB,OAAO,aAAa,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;KACtD;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC7B,qGAAqG;QACrG,8EAA8E;QAC9E,iBAAiB;QACjB,OAAO,KAAK,UAAU,KAAK,gBAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;KAC9D;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC/B,gBAAgB;QAChB,OAAO,GAAG,UAAU,MAAM,gBAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;KAC7D;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAjCD,gDAiCC"}
1
+ {"version":3,"file":"bumpMinSemverRange.js","sourceRoot":"","sources":["../../src/bump/bumpMinSemverRange.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,qDAAmD;AACnD,2EAAwE;AAExE;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAKlC;IACC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAC5C,IAAI,YAAY,KAAK,GAAG,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAA,kCAAgB,EAAC,YAAY,CAAC,EAAE;QAC9F,OAAO,YAAY,CAAC;KACrB;IAED,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACtD,SAAS;QACT,SAAS;QACT,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;KACrC;IAED,MAAM,cAAc,GAAG,IAAA,qCAAiB,EAAC,YAAY,CAAC,CAAC;IACvD,IAAI,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,GAAG,IAAI,cAAc,KAAK,GAAG,EAAE;QAC9E,2FAA2F;QAC3F,0DAA0D;QAC1D,OAAO,YAAY,CAAC;KACrB;IACD,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;QAC9E,mBAAmB;QACnB,mBAAmB;QACnB,OAAO,aAAa,cAAc,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,CAAC;KACtD;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC9B,qFAAqF;QACrF,8EAA8E;QAC9E,iBAAiB;QACjB,OAAO,KAAK,UAAU,KAAK,gBAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;KAC9D;IACD,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAChC,gBAAgB;QAChB,OAAO,GAAG,UAAU,MAAM,gBAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;KAC7D;IAED,IAAI,gBAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;QAC9B,kCAAkC;QAClC,OAAO,UAAU,CAAC;KACnB;IAED,gGAAgG;IAChG,IAAI,gBAAM,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,gBAAM,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE;QACjF,OAAO,YAAY,CAAC;KACrB;IAED,yCAAyC;IACzC,OAAO,UAAU,CAAC;AACpB,CAAC;AApDD,gDAoDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bumpPackageInfoVersion.d.ts","sourceRoot":"","sources":["../../src/bump/bumpPackageInfoVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,uBAAuB,GAAG,cAAc,GAAG,kBAAkB,CAAC,EACvF,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,GACrE,IAAI,CA0BN"}
1
+ {"version":3,"file":"bumpPackageInfoVersion.d.ts","sourceRoot":"","sources":["../../src/bump/bumpPackageInfoVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,uBAAuB,GAAG,cAAc,GAAG,kBAAkB,CAAC,EACvF,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,gBAAgB,CAAC,GACrE,IAAI,CA6CN"}
@@ -14,20 +14,40 @@ function bumpPackageInfoVersion(pkgName, bumpInfo, options) {
14
14
  const info = packageInfos[pkgName];
15
15
  const changeType = calculatedChangeTypes[pkgName];
16
16
  if (!info) {
17
- console.log(`Unknown package named "${pkgName}" detected from change files, skipping!`);
17
+ console.warn(`Unknown package named "${pkgName}" detected from change files, skipping!`);
18
+ }
19
+ else if (!changeType) {
20
+ console.warn(`No change type found when bumping "${pkgName}" (this may be a beachball bug)`);
18
21
  }
19
22
  else if (changeType === 'none') {
20
- console.log(`"${pkgName}" has a "none" change type, no version bump is required.`);
23
+ console.log(`"${pkgName}" has a "none" change type, so no version bump is required.`);
21
24
  }
22
25
  else if (info.private) {
23
- console.log(`Skipping bumping private package "${pkgName}"`);
26
+ console.warn(`Skipping bumping private package "${pkgName}"`);
24
27
  }
25
28
  else {
26
29
  // Ensure we can bump the correct versions
27
- const bumpAsPrerelease = !!options.prereleasePrefix && !['premajor', 'preminor', 'prepatch'].includes(changeType);
28
- // Version should be updated
29
- info.version = semver_1.default.inc(info.version, bumpAsPrerelease ? 'prerelease' : changeType, undefined, options.prereleasePrefix || undefined, options.identifierBase);
30
- modifiedPackages.add(pkgName);
30
+ const effectiveChangeType = options.prereleasePrefix && !['premajor', 'preminor', 'prepatch'].includes(changeType)
31
+ ? 'prerelease'
32
+ : changeType;
33
+ // Attempt to update the version
34
+ const newVersion = semver_1.default.inc(info.version, effectiveChangeType, undefined, options.prereleasePrefix || undefined, options.identifierBase);
35
+ if (newVersion) {
36
+ info.version = newVersion;
37
+ modifiedPackages.add(pkgName);
38
+ }
39
+ else {
40
+ let message = `Invalid version bump requested for "${pkgName}": from version "${info.version}", change type "${effectiveChangeType}"`;
41
+ if (effectiveChangeType.startsWith('pre')) {
42
+ if (options.prereleasePrefix) {
43
+ message += `, prerelease prefix "${options.prereleasePrefix}"`;
44
+ }
45
+ if (options.identifierBase) {
46
+ message += `, identifier base "${options.identifierBase}"`;
47
+ }
48
+ }
49
+ console.warn(message);
50
+ }
31
51
  }
32
52
  }
33
53
  exports.bumpPackageInfoVersion = bumpPackageInfoVersion;
@@ -1 +1 @@
1
- {"version":3,"file":"bumpPackageInfoVersion.js","sourceRoot":"","sources":["../../src/bump/bumpPackageInfoVersion.ts"],"names":[],"mappings":";;;;;;AACA,oDAA4B;AAG5B;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,OAAe,EACf,QAAuF,EACvF,OAAsE;IAEtE,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAC3E,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,yCAAyC,CAAC,CAAC;KACzF;SAAM,IAAI,UAAU,KAAK,MAAM,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,0DAA0D,CAAC,CAAC;KACpF;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAC;KAC9D;SAAM;QACL,0CAA0C;QAC1C,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAElH,4BAA4B;QAC5B,IAAI,CAAC,OAAO,GAAG,gBAAM,CAAC,GAAG,CACvB,IAAI,CAAC,OAAO,EACZ,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,EAC5C,SAAS,EACT,OAAO,CAAC,gBAAgB,IAAI,SAAS,EACrC,OAAO,CAAC,cAAc,CACb,CAAC;QAEZ,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC/B;AACH,CAAC;AA9BD,wDA8BC"}
1
+ {"version":3,"file":"bumpPackageInfoVersion.js","sourceRoot":"","sources":["../../src/bump/bumpPackageInfoVersion.ts"],"names":[],"mappings":";;;;;;AACA,oDAA4B;AAG5B;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,OAAe,EACf,QAAuF,EACvF,OAAsE;IAEtE,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAC3E,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,CAAC,IAAI,CAAC,0BAA0B,OAAO,yCAAyC,CAAC,CAAC;KAC1F;SAAM,IAAI,CAAC,UAAU,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,sCAAsC,OAAO,iCAAiC,CAAC,CAAC;KAC9F;SAAM,IAAI,UAAU,KAAK,MAAM,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,6DAA6D,CAAC,CAAC;KACvF;SAAM,IAAI,IAAI,CAAC,OAAO,EAAE;QACvB,OAAO,CAAC,IAAI,CAAC,qCAAqC,OAAO,GAAG,CAAC,CAAC;KAC/D;SAAM;QACL,0CAA0C;QAC1C,MAAM,mBAAmB,GACvB,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;YACpF,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,UAAU,CAAC;QAEjB,gCAAgC;QAChC,MAAM,UAAU,GAAG,gBAAM,CAAC,GAAG,CAC3B,IAAI,CAAC,OAAO,EACZ,mBAAmB,EACnB,SAAS,EACT,OAAO,CAAC,gBAAgB,IAAI,SAAS,EACrC,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;YAC1B,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;SAC/B;aAAM;YACL,IAAI,OAAO,GAAG,uCAAuC,OAAO,oBAAoB,IAAI,CAAC,OAAO,mBAAmB,mBAAmB,GAAG,CAAC;YACtI,IAAI,mBAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACzC,IAAI,OAAO,CAAC,gBAAgB,EAAE;oBAC5B,OAAO,IAAI,wBAAwB,OAAO,CAAC,gBAAgB,GAAG,CAAC;iBAChE;gBACD,IAAI,OAAO,CAAC,cAAc,EAAE;oBAC1B,OAAO,IAAI,sBAAsB,OAAO,CAAC,cAAc,GAAG,CAAC;iBAC5D;aACF;YACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACvB;KACF;AACH,CAAC;AAjDD,wDAiDC"}
@@ -3,5 +3,5 @@ import type { PackageInfos } from '../types/PackageInfo';
3
3
  /**
4
4
  * Call a hook for each affected package. Does nothing if the hook is undefined.
5
5
  */
6
- export declare function callHook(hook: HooksOptions['prebump' | 'postbump' | 'prepublish' | 'postpublish'], affectedPackages: Iterable<string>, packageInfos: PackageInfos, concurrency: number): Promise<void>;
6
+ export declare function callHook(hook: HooksOptions['prebump' | 'postbump' | 'prepublish' | 'postpublish'], affectedPackages: string[] | Set<string>, packageInfos: PackageInfos, concurrency: number): Promise<void>;
7
7
  //# sourceMappingURL=callHook.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callHook.d.ts","sourceRoot":"","sources":["../../src/bump/callHook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGtE;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,YAAY,CAAC,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC,EACzE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,EAClC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAuBf"}
1
+ {"version":3,"file":"callHook.d.ts","sourceRoot":"","sources":["../../src/bump/callHook.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGtE;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,YAAY,CAAC,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAC,EACzE,gBAAgB,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,EACxC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA6Bf"}
@@ -13,6 +13,11 @@ async function callHook(hook, affectedPackages, packageInfos, concurrency) {
13
13
  if (!hook) {
14
14
  return;
15
15
  }
16
+ // Filter out nonexistent packages in case of theoretical race conditions or something
17
+ affectedPackages = [...affectedPackages].filter(pkgName => pkgName in packageInfos);
18
+ if (!affectedPackages.length) {
19
+ return;
20
+ }
16
21
  const callHookInternal = async (packageInfo) => {
17
22
  const packagePath = path_1.default.dirname(packageInfo.packageJsonPath);
18
23
  await hook(packagePath, packageInfo.name, packageInfo.version, packageInfos);
@@ -1 +1 @@
1
- {"version":3,"file":"callHook.js","sourceRoot":"","sources":["../../src/bump/callHook.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,iEAA8D;AAE9D;;GAEG;AACI,KAAK,UAAU,QAAQ,CAC5B,IAAyE,EACzE,gBAAkC,EAClC,YAA0B,EAC1B,WAAmB;IAEnB,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;KACR;IAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,WAAwB,EAAE,EAAE;QAC1D,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE;YAClC,MAAM,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3C;KACF;SAAM;QACL,wFAAwF;QACxF,MAAM,YAAY,GAAG,IAAA,iCAAe,EAAC,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAEvF,MAAM,YAAY,CAAC,GAAG,CAAC;YACrB,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;KACJ;AACH,CAAC;AA5BD,4BA4BC"}
1
+ {"version":3,"file":"callHook.js","sourceRoot":"","sources":["../../src/bump/callHook.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAGxB,iEAA8D;AAE9D;;GAEG;AACI,KAAK,UAAU,QAAQ,CAC5B,IAAyE,EACzE,gBAAwC,EACxC,YAA0B,EAC1B,WAAmB;IAEnB,IAAI,CAAC,IAAI,EAAE;QACT,OAAO;KACR;IAED,sFAAsF;IACtF,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,YAAY,CAAC,CAAC;IACpF,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;QAC5B,OAAO;KACR;IAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,WAAwB,EAAE,EAAE;QAC1D,MAAM,WAAW,GAAG,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE;YAClC,MAAM,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;SAC3C;KACF;SAAM;QACL,wFAAwF;QACxF,MAAM,YAAY,GAAG,IAAA,iCAAe,EAAC,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAEvF,MAAM,YAAY,CAAC,GAAG,CAAC;YACrB,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;KACJ;AACH,CAAC;AAlCD,4BAkCC"}
@@ -2,8 +2,7 @@ import type { BumpInfo } from '../types/BumpInfo';
2
2
  import type { BeachballOptions } from '../types/BeachballOptions';
3
3
  import type { PackageInfos } from '../types/PackageInfo';
4
4
  /**
5
- * Gather bump info and bump versions in memory.
6
- * Does NOT mutate the given `originalPackageInfos`.
5
+ * @deprecated Use `bumpInMemory` instead.
7
6
  */
8
7
  export declare function gatherBumpInfo(options: BeachballOptions, originalPackageInfos: PackageInfos): BumpInfo;
9
8
  //# sourceMappingURL=gatherBumpInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gatherBumpInfo.d.ts","sourceRoot":"","sources":["../../src/bump/gatherBumpInfo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,GAAG,QAAQ,CAoBtG"}
1
+ {"version":3,"file":"gatherBumpInfo.d.ts","sourceRoot":"","sources":["../../src/bump/gatherBumpInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAIzD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,YAAY,GAAG,QAAQ,CAGtG"}
@@ -1,32 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.gatherBumpInfo = void 0;
4
- const changeTypes_1 = require("../changefile/changeTypes");
5
- const readChangeFiles_1 = require("../changefile/readChangeFiles");
6
- const bumpInPlace_1 = require("./bumpInPlace");
7
- const getScopedPackages_1 = require("../monorepo/getScopedPackages");
8
- const getPackageGroups_1 = require("../monorepo/getPackageGroups");
9
- const cloneObject_1 = require("../object/cloneObject");
4
+ const bumpInMemory_1 = require("./bumpInMemory");
5
+ const createCommandContext_1 = require("../monorepo/createCommandContext");
10
6
  /**
11
- * Gather bump info and bump versions in memory.
12
- * Does NOT mutate the given `originalPackageInfos`.
7
+ * @deprecated Use `bumpInMemory` instead.
13
8
  */
14
9
  function gatherBumpInfo(options, originalPackageInfos) {
15
- const packageInfos = (0, cloneObject_1.cloneObject)(originalPackageInfos);
16
- const changes = (0, readChangeFiles_1.readChangeFiles)(options, packageInfos);
17
- // Determine base change types for each package (not considering disallowedChangeTypes or groups)
18
- const calculatedChangeTypes = (0, changeTypes_1.initializePackageChangeTypes)(changes);
19
- const bumpInfo = {
20
- calculatedChangeTypes,
21
- packageInfos,
22
- packageGroups: (0, getPackageGroups_1.getPackageGroups)(packageInfos, options.path, options.groups),
23
- changeFileChangeInfos: changes,
24
- modifiedPackages: new Set(),
25
- scopedPackages: new Set((0, getScopedPackages_1.getScopedPackages)(options, packageInfos)),
26
- dependentChangedBy: {},
27
- };
28
- (0, bumpInPlace_1.bumpInPlace)(bumpInfo, options);
29
- return bumpInfo;
10
+ // eslint-disable-next-line etc/no-deprecated -- compat code
11
+ return (0, bumpInMemory_1.bumpInMemory)(options, (0, createCommandContext_1.createCommandContext)(options, originalPackageInfos));
30
12
  }
31
13
  exports.gatherBumpInfo = gatherBumpInfo;
32
14
  //# sourceMappingURL=gatherBumpInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gatherBumpInfo.js","sourceRoot":"","sources":["../../src/bump/gatherBumpInfo.ts"],"names":[],"mappings":";;;AAAA,2DAAyE;AACzE,mEAAgE;AAEhE,+CAA4C;AAE5C,qEAAkE;AAElE,mEAAgE;AAChE,uDAAoD;AAEpD;;;GAGG;AACH,SAAgB,cAAc,CAAC,OAAyB,EAAE,oBAAkC;IAC1F,MAAM,YAAY,GAAG,IAAA,yBAAW,EAAC,oBAAoB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAA,iCAAe,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEvD,iGAAiG;IACjG,MAAM,qBAAqB,GAAG,IAAA,0CAA4B,EAAC,OAAO,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAa;QACzB,qBAAqB;QACrB,YAAY;QACZ,aAAa,EAAE,IAAA,mCAAgB,EAAC,YAAY,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC;QAC3E,qBAAqB,EAAE,OAAO;QAC9B,gBAAgB,EAAE,IAAI,GAAG,EAAU;QACnC,cAAc,EAAE,IAAI,GAAG,CAAC,IAAA,qCAAiB,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjE,kBAAkB,EAAE,EAAE;KACvB,CAAC;IAEF,IAAA,yBAAW,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE/B,OAAO,QAAQ,CAAC;AAClB,CAAC;AApBD,wCAoBC"}
1
+ {"version":3,"file":"gatherBumpInfo.js","sourceRoot":"","sources":["../../src/bump/gatherBumpInfo.ts"],"names":[],"mappings":";;;AAGA,iDAA8C;AAC9C,2EAAwE;AAExE;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAyB,EAAE,oBAAkC;IAC1F,4DAA4D;IAC5D,OAAO,IAAA,2BAAY,EAAC,OAAO,EAAE,IAAA,2CAAoB,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC;AACpF,CAAC;AAHD,wCAGC"}
@@ -1,8 +1,11 @@
1
1
  import type { BumpInfo } from '../types/BumpInfo';
2
2
  import type { BeachballOptions } from '../types/BeachballOptions';
3
3
  /**
4
- * Performs the bump and writes to the filesystem:
4
+ * Write the bump results to the filesystem:
5
5
  * update package.json files, update lock file, write changelogs, and delete change files.
6
+ *
7
+ * This should NOT mutate `bumpInfo`.
8
+ * @param bumpInfo Bump info produced by `bumpInMemory` which already reflects in-memory bumps
6
9
  */
7
- export declare function performBump(bumpInfo: BumpInfo, options: BeachballOptions): Promise<BumpInfo>;
10
+ export declare function performBump(bumpInfo: Readonly<BumpInfo>, options: BeachballOptions): Promise<void>;
8
11
  //# sourceMappingURL=performBump.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"performBump.d.ts","sourceRoot":"","sources":["../../src/bump/performBump.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE;;;GAGG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoBlG"}
1
+ {"version":3,"file":"performBump.d.ts","sourceRoot":"","sources":["../../src/bump/performBump.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAKlE;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBxG"}
@@ -7,11 +7,15 @@ const callHook_1 = require("./callHook");
7
7
  const updatePackageJsons_1 = require("./updatePackageJsons");
8
8
  const updateLockFile_1 = require("./updateLockFile");
9
9
  /**
10
- * Performs the bump and writes to the filesystem:
10
+ * Write the bump results to the filesystem:
11
11
  * update package.json files, update lock file, write changelogs, and delete change files.
12
+ *
13
+ * This should NOT mutate `bumpInfo`.
14
+ * @param bumpInfo Bump info produced by `bumpInMemory` which already reflects in-memory bumps
12
15
  */
13
16
  async function performBump(bumpInfo, options) {
14
17
  const { modifiedPackages, packageInfos, changeFileChangeInfos } = bumpInfo;
18
+ // TODO: this uses the wrong version https://github.com/microsoft/beachball/issues/1116
15
19
  await (0, callHook_1.callHook)(options.hooks?.prebump, modifiedPackages, packageInfos, options.concurrency);
16
20
  (0, updatePackageJsons_1.updatePackageJsons)(modifiedPackages, packageInfos);
17
21
  await (0, updateLockFile_1.updateLockFile)(options);
@@ -22,8 +26,6 @@ async function performBump(bumpInfo, options) {
22
26
  // Unlink changelogs
23
27
  (0, unlinkChangeFiles_1.unlinkChangeFiles)(changeFileChangeInfos, options);
24
28
  await (0, callHook_1.callHook)(options.hooks?.postbump, modifiedPackages, packageInfos, options.concurrency);
25
- // This is returned from bump() for testing
26
- return bumpInfo;
27
29
  }
28
30
  exports.performBump = performBump;
29
31
  //# sourceMappingURL=performBump.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"performBump.js","sourceRoot":"","sources":["../../src/bump/performBump.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AACpE,gEAA6D;AAG7D,yCAAsC;AACtC,6DAA0D;AAC1D,qDAAkD;AAElD;;;GAGG;AACI,KAAK,UAAU,WAAW,CAAC,QAAkB,EAAE,OAAyB;IAC7E,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,QAAQ,CAAC;IAE3E,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5F,IAAA,uCAAkB,EAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,IAAA,+BAAc,EAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC,iBAAiB,EAAE;QAC7B,qBAAqB;QACrB,MAAM,IAAA,+BAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACzC;IAED,oBAAoB;IACpB,IAAA,qCAAiB,EAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE7F,2CAA2C;IAC3C,OAAO,QAAQ,CAAC;AAClB,CAAC;AApBD,kCAoBC"}
1
+ {"version":3,"file":"performBump.js","sourceRoot":"","sources":["../../src/bump/performBump.ts"],"names":[],"mappings":";;;AAAA,uEAAoE;AACpE,gEAA6D;AAG7D,yCAAsC;AACtC,6DAA0D;AAC1D,qDAAkD;AAElD;;;;;;GAMG;AACI,KAAK,UAAU,WAAW,CAAC,QAA4B,EAAE,OAAyB;IACvF,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB,EAAE,GAAG,QAAQ,CAAC;IAE3E,uFAAuF;IACvF,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAE5F,IAAA,uCAAkB,EAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,IAAA,+BAAc,EAAC,OAAO,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC,iBAAiB,EAAE;QAC7B,qBAAqB;QACrB,MAAM,IAAA,+BAAc,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;KACzC;IAED,oBAAoB;IACpB,IAAA,qCAAiB,EAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAElD,MAAM,IAAA,mBAAQ,EAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;AAC/F,CAAC;AAlBD,kCAkBC"}
@@ -2,8 +2,11 @@ import type { BeachballOptions } from '../types/BeachballOptions';
2
2
  import type { BumpInfo } from '../types/BumpInfo';
3
3
  /**
4
4
  * Go through the deps of each package and bump the version range for in-repo deps if needed.
5
+ * Prior to calling this, it's expected that:
6
+ * - package versions in `bumpInfo.packageInfos` have been bumped per change files and dependentChangeTypes
7
+ * - `bumpInfo.modifiedPackages` contains all packages whose version has been bumped
5
8
  *
6
- * **This mutates dep versions in `packageInfos`** as well as returning `dependentChangedBy`.
9
+ * **This mutates dependency versions in `packageInfos`!**
7
10
  */
8
- export declare function setDependentVersions(bumpInfo: Pick<BumpInfo, 'packageInfos' | 'scopedPackages'>, options: Pick<BeachballOptions, 'verbose'>): BumpInfo['dependentChangedBy'];
11
+ export declare function setDependentVersions(bumpInfo: Pick<BumpInfo, 'packageInfos' | 'scopedPackages' | 'modifiedPackages'>, options: Pick<BeachballOptions, 'verbose'>): BumpInfo['dependentChangedBy'];
9
12
  //# sourceMappingURL=setDependentVersions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setDependentVersions.d.ts","sourceRoot":"","sources":["../../src/bump/setDependentVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAIlD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CAAC,EAC3D,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GACzC,QAAQ,CAAC,oBAAoB,CAAC,CAsChC"}
1
+ {"version":3,"file":"setDependentVersions.d.ts","sourceRoot":"","sources":["../../src/bump/setDependentVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAIlD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,GAAG,kBAAkB,CAAC,EAChF,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GACzC,QAAQ,CAAC,oBAAoB,CAAC,CA6ChC"}
@@ -5,28 +5,37 @@ const PackageInfo_1 = require("../types/PackageInfo");
5
5
  const bumpMinSemverRange_1 = require("./bumpMinSemverRange");
6
6
  /**
7
7
  * Go through the deps of each package and bump the version range for in-repo deps if needed.
8
+ * Prior to calling this, it's expected that:
9
+ * - package versions in `bumpInfo.packageInfos` have been bumped per change files and dependentChangeTypes
10
+ * - `bumpInfo.modifiedPackages` contains all packages whose version has been bumped
8
11
  *
9
- * **This mutates dep versions in `packageInfos`** as well as returning `dependentChangedBy`.
12
+ * **This mutates dependency versions in `packageInfos`!**
10
13
  */
11
14
  function setDependentVersions(bumpInfo, options) {
12
- const { packageInfos, scopedPackages } = bumpInfo;
15
+ const { packageInfos, scopedPackages, modifiedPackages } = bumpInfo;
13
16
  const { verbose } = options;
14
17
  const dependentChangedBy = {};
15
18
  for (const [pkgName, info] of Object.entries(packageInfos)) {
16
- if (!scopedPackages.has(pkgName)) {
19
+ if (!scopedPackages.allInScope && !scopedPackages.has(pkgName)) {
17
20
  continue; // out of scope
18
21
  }
19
22
  for (const depType of PackageInfo_1.consideredDependencies) {
20
23
  const deps = info[depType] || {};
21
24
  for (const [dep, existingVersionRange] of Object.entries(deps)) {
22
25
  const depPackage = packageInfos[dep];
23
- if (!depPackage) {
24
- continue; // external dependency
26
+ // If it's an external dependency or a package whose version wasn't modified, skip it
27
+ if (!depPackage || !modifiedPackages.has(dep)) {
28
+ continue;
25
29
  }
26
- const bumpedVersionRange = (0, bumpMinSemverRange_1.bumpMinSemverRange)(depPackage.version, existingVersionRange);
27
- // TODO: dependent bumps in workspace:*/^/~ ranges will be missed
28
- // https://github.com/microsoft/beachball/issues/981
30
+ const bumpedVersionRange = (0, bumpMinSemverRange_1.bumpMinSemverRange)({
31
+ newVersion: depPackage.version,
32
+ currentRange: existingVersionRange,
33
+ });
34
+ // TODO: dependent bumps in workspace:*/^/~ and catalog: ranges will be missed https://github.com/microsoft/beachball/issues/981
35
+ // And all this logic is questionable with bumpDeps: false or scopes... https://github.com/microsoft/beachball/issues/1123
36
+ // see also https://github.com/microsoft/beachball/issues/620 and https://github.com/microsoft/beachball/issues/1033
29
37
  if (existingVersionRange !== bumpedVersionRange) {
38
+ // Update the version range of the dependency if it changed due to bumps.
30
39
  deps[dep] = bumpedVersionRange;
31
40
  dependentChangedBy[pkgName] ?? (dependentChangedBy[pkgName] = new Set());
32
41
  dependentChangedBy[pkgName].add(dep);
@@ -1 +1 @@
1
- {"version":3,"file":"setDependentVersions.js","sourceRoot":"","sources":["../../src/bump/setDependentVersions.ts"],"names":[],"mappings":";;;AAEA,sDAA8D;AAC9D,6DAA0D;AAE1D;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,QAA2D,EAC3D,OAA0C;IAE1C,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,QAAQ,CAAC;IAClD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,kBAAkB,GAAmC,EAAE,CAAC;IAE9D,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC1D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAChC,SAAS,CAAC,eAAe;SAC1B;QAED,KAAK,MAAM,OAAO,IAAI,oCAAsB,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACrC,IAAI,CAAC,UAAU,EAAE;oBACf,SAAS,CAAC,sBAAsB;iBACjC;gBAED,MAAM,kBAAkB,GAAG,IAAA,uCAAkB,EAAC,UAAU,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;gBACxF,iEAAiE;gBACjE,oDAAoD;gBACpD,IAAI,oBAAoB,KAAK,kBAAkB,EAAE;oBAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC;oBAE/B,kBAAkB,CAAC,OAAO,MAA1B,kBAAkB,CAAC,OAAO,IAAM,IAAI,GAAG,EAAU,EAAC;oBAClD,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrC,IAAI,OAAO,EAAE;wBACX,OAAO,CAAC,GAAG,CACT,GAAG,OAAO,+BAA+B,GAAG,IAAI,oBAAoB,OAAO,kBAAkB,EAAE,CAChG,CAAC;qBACH;iBACF;aACF;SACF;KACF;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAzCD,oDAyCC"}
1
+ {"version":3,"file":"setDependentVersions.js","sourceRoot":"","sources":["../../src/bump/setDependentVersions.ts"],"names":[],"mappings":";;;AAEA,sDAA8D;AAC9D,6DAA0D;AAE1D;;;;;;;GAOG;AACH,SAAgB,oBAAoB,CAClC,QAAgF,EAChF,OAA0C;IAE1C,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IACpE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5B,MAAM,kBAAkB,GAAmC,EAAE,CAAC;IAE9D,KAAK,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC1D,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAC9D,SAAS,CAAC,eAAe;SAC1B;QAED,KAAK,MAAM,OAAO,IAAI,oCAAsB,EAAE;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,oBAAoB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBAC9D,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBACrC,qFAAqF;gBACrF,IAAI,CAAC,UAAU,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBAC7C,SAAS;iBACV;gBAED,MAAM,kBAAkB,GAAG,IAAA,uCAAkB,EAAC;oBAC5C,UAAU,EAAE,UAAU,CAAC,OAAO;oBAC9B,YAAY,EAAE,oBAAoB;iBACnC,CAAC,CAAC;gBACH,gIAAgI;gBAChI,0HAA0H;gBAC1H,oHAAoH;gBACpH,IAAI,oBAAoB,KAAK,kBAAkB,EAAE;oBAC/C,yEAAyE;oBACzE,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC;oBAE/B,kBAAkB,CAAC,OAAO,MAA1B,kBAAkB,CAAC,OAAO,IAAM,IAAI,GAAG,EAAU,EAAC;oBAClD,kBAAkB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAErC,IAAI,OAAO,EAAE;wBACX,OAAO,CAAC,GAAG,CACT,GAAG,OAAO,+BAA+B,GAAG,IAAI,oBAAoB,OAAO,kBAAkB,EAAE,CAChG,CAAC;qBACH;iBACF;aACF;SACF;KACF;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAhDD,oDAgDC"}
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.updateLockFile = void 0;
7
- const fs_extra_1 = __importDefault(require("fs-extra"));
7
+ const fs_1 = __importDefault(require("fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const packageManager_1 = require("../packageManager/packageManager");
10
10
  const env_1 = require("../env");
@@ -20,15 +20,15 @@ async function updateLockFile(options) {
20
20
  const root = options.path;
21
21
  let updateFile;
22
22
  let updateCommand;
23
- if (fs_extra_1.default.existsSync(path_1.default.join(root, 'package-lock.json'))) {
23
+ if (fs_1.default.existsSync(path_1.default.join(root, 'package-lock.json'))) {
24
24
  updateFile = 'package-lock.json';
25
25
  updateCommand = ['npm', 'install', '--package-lock-only', '--ignore-scripts'];
26
26
  }
27
- else if (fs_extra_1.default.existsSync(path_1.default.join(root, 'pnpm-lock.yaml'))) {
27
+ else if (fs_1.default.existsSync(path_1.default.join(root, 'pnpm-lock.yaml'))) {
28
28
  updateFile = 'pnpm-lock.yaml';
29
29
  updateCommand = ['pnpm', 'install', '--lockfile-only', '--ignore-scripts'];
30
30
  }
31
- else if (fs_extra_1.default.existsSync(path_1.default.join(root, 'yarn.lock'))) {
31
+ else if (fs_1.default.existsSync(path_1.default.join(root, 'yarn.lock'))) {
32
32
  const version = await (0, packageManager_1.packageManager)('yarn', ['--version'], { cwd: root });
33
33
  if (version.success) {
34
34
  // For yarn v1, local versions aren't recorded in the lock file, so we don't need an update.
@@ -1 +1 @@
1
- {"version":3,"file":"updateLockFile.js","sourceRoot":"","sources":["../../src/bump/updateLockFile.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,qEAAkE;AAClE,gCAA6B;AAG7B;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,OAAuC;IAC1E,4FAA4F;IAC5F,0EAA0E;IAC1E,IAAI,SAAG,CAAC,MAAM,EAAE;QACd,OAAO;KACR;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,UAA8B,CAAC;IACnC,IAAI,aAAiE,CAAC;IAEtE,IAAI,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE;QACvD,UAAU,GAAG,mBAAmB,CAAC;QACjC,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;KAC/E;SAAM,IAAI,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE;QAC3D,UAAU,GAAG,gBAAgB,CAAC;QAC9B,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;KAC5E;SAAM,IAAI,kBAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE;QACtD,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAc,EAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,4FAA4F;YAC5F,6DAA6D;YAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACpC,UAAU,GAAG,WAAW,CAAC;gBACzB,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;aAClE;SACF;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;SAC3D;KACF;IAED,IAAI,UAAU,IAAI,aAAa,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,yBAAyB,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAc,EAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5G,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,YAAY,UAAU,wBAAwB,CAAC,CAAC;SAC9D;KACF;AACH,CAAC;AAxCD,wCAwCC"}
1
+ {"version":3,"file":"updateLockFile.js","sourceRoot":"","sources":["../../src/bump/updateLockFile.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,qEAAkE;AAClE,gCAA6B;AAG7B;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,OAAuC;IAC1E,4FAA4F;IAC5F,0EAA0E;IAC1E,IAAI,SAAG,CAAC,MAAM,EAAE;QACd,OAAO;KACR;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,UAA8B,CAAC;IACnC,IAAI,aAAiE,CAAC;IAEtE,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE;QACvD,UAAU,GAAG,mBAAmB,CAAC;QACjC,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;KAC/E;SAAM,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAAE;QAC3D,UAAU,GAAG,gBAAgB,CAAC;QAC9B,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC;KAC5E;SAAM,IAAI,YAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,EAAE;QACtD,MAAM,OAAO,GAAG,MAAM,IAAA,+BAAc,EAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,4FAA4F;YAC5F,6DAA6D;YAC7D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACpC,UAAU,GAAG,WAAW,CAAC;gBACzB,aAAa,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;aAClE;SACF;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;SAC3D;KACF;IAED,IAAI,UAAU,IAAI,aAAa,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,YAAY,UAAU,yBAAyB,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,MAAM,IAAA,+BAAc,EAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5G,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,YAAY,UAAU,wBAAwB,CAAC,CAAC;SAC9D;KACF;AACH,CAAC;AAxCD,wCAwCC"}
@@ -2,5 +2,5 @@ import { type PackageInfos } from '../types/PackageInfo';
2
2
  /**
3
3
  * Update package.json files for modified packages after bumping.
4
4
  */
5
- export declare function updatePackageJsons(modifiedPackages: Set<string>, packageInfos: PackageInfos): void;
5
+ export declare function updatePackageJsons(modifiedPackages: ReadonlySet<string>, packageInfos: Readonly<PackageInfos>): void;
6
6
  //# sourceMappingURL=updatePackageJsons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"updatePackageJsons.d.ts","sourceRoot":"","sources":["../../src/bump/updatePackageJsons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAA4C,MAAM,sBAAsB,CAAC;AAEnG;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI,CA8BlG"}
1
+ {"version":3,"file":"updatePackageJsons.d.ts","sourceRoot":"","sources":["../../src/bump/updatePackageJsons.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAA4C,MAAM,sBAAsB,CAAC;AAInG;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CA+BpH"}
@@ -4,20 +4,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.updatePackageJsons = void 0;
7
- const fs_extra_1 = __importDefault(require("fs-extra"));
7
+ const fs_1 = __importDefault(require("fs"));
8
8
  const PackageInfo_1 = require("../types/PackageInfo");
9
+ const readJson_1 = require("../object/readJson");
10
+ const writeJson_1 = require("../object/writeJson");
9
11
  /**
10
12
  * Update package.json files for modified packages after bumping.
11
13
  */
12
14
  function updatePackageJsons(modifiedPackages, packageInfos) {
13
15
  for (const pkgName of modifiedPackages) {
14
16
  const info = packageInfos[pkgName];
15
- if (!fs_extra_1.default.existsSync(info.packageJsonPath)) {
17
+ if (!fs_1.default.existsSync(info.packageJsonPath)) {
16
18
  // rare case in highly active monorepos where a package might have been deleted in main
17
19
  console.warn(`Skipping ${pkgName} since package.json does not exist`);
18
20
  continue;
19
21
  }
20
- const packageJson = fs_extra_1.default.readJSONSync(info.packageJsonPath);
22
+ const packageJson = (0, readJson_1.readJson)(info.packageJsonPath);
21
23
  if (!info.private) {
22
24
  packageJson.version = info.version;
23
25
  }
@@ -29,11 +31,12 @@ function updatePackageJsons(modifiedPackages, packageInfos) {
29
31
  // would overwrite those incorrectly!
30
32
  for (const [dep, updatedVersion] of Object.entries(updatedDeps)) {
31
33
  if (modifiedPackages.has(dep) && packageJson[depKind]?.[dep]) {
34
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
32
35
  packageJson[depKind][dep] = updatedVersion;
33
36
  }
34
37
  }
35
38
  }
36
- fs_extra_1.default.writeJSONSync(info.packageJsonPath, packageJson, { spaces: 2 });
39
+ (0, writeJson_1.writeJson)(info.packageJsonPath, packageJson);
37
40
  }
38
41
  }
39
42
  exports.updatePackageJsons = updatePackageJsons;