beachball 2.51.2 → 2.52.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.
@@ -28,8 +28,8 @@ function bumpInPlace(bumpInfo, options) {
28
28
  }
29
29
  }
30
30
  // Calculate change types for packages and dependencies
31
- for (const { changeFile } of changeFileChangeInfos) {
32
- (0, updateRelatedChangeType_1.updateRelatedChangeType)({ changeFile, bumpInfo, dependents, bumpDeps });
31
+ for (const { change } of changeFileChangeInfos) {
32
+ (0, updateRelatedChangeType_1.updateRelatedChangeType)({ change, bumpInfo, dependents, bumpDeps });
33
33
  }
34
34
  // pass 3: actually bump the packages in the bumpInfo in memory (no disk writes at this point)
35
35
  Object.keys(calculatedChangeTypes).forEach(pkgName => {
@@ -1 +1 @@
1
- {"version":3,"file":"bumpInPlace.js","sourceRoot":"","sources":["../../src/bump/bumpInPlace.ts"],"names":[],"mappings":";;;AACA,yEAAsE;AACtE,uEAAoE;AACpE,qEAAkE;AAElE,iEAA8D;AAE9D;;;;GAIG;AACH,SAAgB,WAAW,CAAC,QAAkB,EAAE,OAAyB;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEpF,0HAA0H;IAC1H,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,mDAAwB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,0GAA0G;IAC1G,sFAAsF;IACtF,kFAAkF;IAElF,4DAA4D;IAC5D,KAAK,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,qBAAqB,EAAE;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAE/G,IAAI,KAAK,EAAE;YACT,KAAK,MAAM,kBAAkB,IAAI,KAAK,CAAC,YAAY,EAAE;gBACnD,qBAAqB,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;aAC7D;SACF;KACF;IAED,uDAAuD;IACvD,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,qBAAqB,EAAE;QAClD,IAAA,iDAAuB,EAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;KACzE;IAED,8FAA8F;IAC9F,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACnD,IAAA,+CAAsB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,QAAQ,CAAC,kBAAkB,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACrF,CAAC;AAnCD,kCAmCC"}
1
+ {"version":3,"file":"bumpInPlace.js","sourceRoot":"","sources":["../../src/bump/bumpInPlace.ts"],"names":[],"mappings":";;;AACA,yEAAsE;AACtE,uEAAoE;AACpE,qEAAkE;AAElE,iEAA8D;AAE9D;;;;GAIG;AACH,SAAgB,WAAW,CAAC,QAAkB,EAAE,OAAyB;IACvE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEpF,0HAA0H;IAC1H,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,mDAAwB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,0GAA0G;IAC1G,sFAAsF;IACtF,kFAAkF;IAElF,4DAA4D;IAC5D,KAAK,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,qBAAqB,EAAE;QAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;QAE/G,IAAI,KAAK,EAAE;YACT,KAAK,MAAM,kBAAkB,IAAI,KAAK,CAAC,YAAY,EAAE;gBACnD,qBAAqB,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;aAC7D;SACF;KACF;IAED,uDAAuD;IACvD,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,qBAAqB,EAAE;QAC9C,IAAA,iDAAuB,EAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;KACrE;IAED,8FAA8F;IAC9F,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACnD,IAAA,+CAAsB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,QAAQ,CAAC,kBAAkB,GAAG,IAAA,2CAAoB,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACrF,CAAC;AAnCD,kCAmCC"}
@@ -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;AAGzD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAG,QAAQ,CAyB9F"}
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;AAGzD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,GAAG,QAAQ,CAmB9F"}
@@ -10,15 +10,9 @@ const getPackageGroups_1 = require("../monorepo/getPackageGroups");
10
10
  * Gather bump info and bump versions in memory.
11
11
  */
12
12
  function gatherBumpInfo(options, packageInfos) {
13
- // Collate the changes per package
14
13
  const changes = (0, readChangeFiles_1.readChangeFiles)(options, packageInfos);
15
- // Clear non-existent packages from changefiles infos
14
+ // Determine base change types for each package (not considering disallowedChangeTypes or groups)
16
15
  const calculatedChangeTypes = (0, changeTypes_1.initializePackageChangeTypes)(changes);
17
- Object.keys(calculatedChangeTypes).forEach(packageName => {
18
- if (!packageInfos[packageName]) {
19
- delete calculatedChangeTypes[packageName];
20
- }
21
- });
22
16
  const bumpInfo = {
23
17
  calculatedChangeTypes,
24
18
  packageInfos,
@@ -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;AAEhE;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAyB,EAAE,YAA0B;IAClF,kCAAkC;IAClC,MAAM,OAAO,GAAG,IAAA,iCAAe,EAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEvD,qDAAqD;IACrD,MAAM,qBAAqB,GAAG,IAAA,0CAA4B,EAAC,OAAO,CAAC,CAAC;IACpE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QACvD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YAC9B,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;SAC3C;IACH,CAAC,CAAC,CAAC;IAEH,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;AAzBD,wCAyBC"}
1
+ {"version":3,"file":"gatherBumpInfo.js","sourceRoot":"","sources":["../../src/bump/gatherBumpInfo.ts"],"names":[],"mappings":";;;AAAA,2DAAyE;AACzE,mEAAgE;AAEhE,+CAA4C;AAE5C,qEAAkE;AAElE,mEAAgE;AAEhE;;GAEG;AACH,SAAgB,cAAc,CAAC,OAAyB,EAAE,YAA0B;IAClF,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;AAnBD,wCAmBC"}
@@ -1,25 +1,31 @@
1
1
  import type { BumpInfo, PackageDependents } from '../types/BumpInfo';
2
+ import { ChangeFileInfo } from '../types/ChangeInfo';
2
3
  /**
3
- * This is the core of the bumpInfo dependency bumping logic - done once per change file
4
+ * This is the core of the `bumpInfo` dependency bumping logic - done once per change info.
4
5
  *
5
- * The algorithm is an iterative graph traversal algorithm (breadth first)
6
- * - it searches up the parent `dependents` and modifies the "calculatedChangeTypes" entries inside `BumpInfo`
7
- * - one single root entry from `pkgName` as given by a change file
8
- * - for all dependents
9
- * - apply the `dependentChangeType` as change type
10
- * - this function is the primary way for package groups to get the same dependent change type by queueing up
11
- * all packages within a group to be visited by the loop
6
+ * The algorithm is an iterative graph traversal algorithm (breadth first):
7
+ * - One root entry: `change.packageName`
8
+ * - For each parent in `dependents`:
9
+ * - Update its `calculatedChangeTypes` entry to `max(current value, change.dependentChangeType)`
10
+ * - Enqueue all of its dependents to be seen
11
+ * - If the package is part of a group, enqueue all packages in the group
12
+ *
13
+ * Preconditions:
14
+ * - `bumpInfo.calculatedChangeTypes` includes:
15
+ * - For non-grouped packages that have changed, the highest change type from any change file
16
+ * - For each grouped package where anything in the group has changed, the highest change type
17
+ * from any change file in the group
12
18
  *
13
19
  * What it mutates:
14
- * - bumpInfo.calculatedChangeTypes: updates packages change type modifed by this function
15
- * - all dependents change types as part of a group update
20
+ * - `bumpInfo.calculatedChangeTypes`: updates dependents' change types
21
+ * - all dependents' change types as part of a group update
16
22
  *
17
23
  * What it does not do:
18
- * - bumpInfo.calculatedChangeTypes: will not mutate the entryPoint `pkgName` change type
24
+ * - `bumpInfo.calculatedChangeTypes`: will not mutate the `change.packageName` change type
19
25
  */
20
26
  export declare function updateRelatedChangeType(params: {
21
- changeFile: string;
22
- bumpInfo: Pick<BumpInfo, 'calculatedChangeTypes' | 'changeFileChangeInfos' | 'packageGroups' | 'packageInfos'>;
27
+ change: ChangeFileInfo;
28
+ bumpInfo: Pick<BumpInfo, 'calculatedChangeTypes' | 'packageGroups' | 'packageInfos'>;
23
29
  dependents: PackageDependents;
24
30
  bumpDeps: boolean;
25
31
  }): void;
@@ -1 +1 @@
1
- {"version":3,"file":"updateRelatedChangeType.d.ts","sourceRoot":"","sources":["../../src/bump/updateRelatedChangeType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,uBAAuB,GAAG,uBAAuB,GAAG,eAAe,GAAG,cAAc,CAAC,CAAC;IAC/G,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CAqFP"}
1
+ {"version":3,"file":"updateRelatedChangeType.d.ts","sourceRoot":"","sources":["../../src/bump/updateRelatedChangeType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,uBAAuB,GAAG,eAAe,GAAG,cAAc,CAAC,CAAC;IACrF,UAAU,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,IAAI,CAsEP"}
@@ -3,81 +3,78 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.updateRelatedChangeType = void 0;
4
4
  const changeTypes_1 = require("../changefile/changeTypes");
5
5
  /**
6
- * This is the core of the bumpInfo dependency bumping logic - done once per change file
6
+ * This is the core of the `bumpInfo` dependency bumping logic - done once per change info.
7
7
  *
8
- * The algorithm is an iterative graph traversal algorithm (breadth first)
9
- * - it searches up the parent `dependents` and modifies the "calculatedChangeTypes" entries inside `BumpInfo`
10
- * - one single root entry from `pkgName` as given by a change file
11
- * - for all dependents
12
- * - apply the `dependentChangeType` as change type
13
- * - this function is the primary way for package groups to get the same dependent change type by queueing up
14
- * all packages within a group to be visited by the loop
8
+ * The algorithm is an iterative graph traversal algorithm (breadth first):
9
+ * - One root entry: `change.packageName`
10
+ * - For each parent in `dependents`:
11
+ * - Update its `calculatedChangeTypes` entry to `max(current value, change.dependentChangeType)`
12
+ * - Enqueue all of its dependents to be seen
13
+ * - If the package is part of a group, enqueue all packages in the group
14
+ *
15
+ * Preconditions:
16
+ * - `bumpInfo.calculatedChangeTypes` includes:
17
+ * - For non-grouped packages that have changed, the highest change type from any change file
18
+ * - For each grouped package where anything in the group has changed, the highest change type
19
+ * from any change file in the group
15
20
  *
16
21
  * What it mutates:
17
- * - bumpInfo.calculatedChangeTypes: updates packages change type modifed by this function
18
- * - all dependents change types as part of a group update
22
+ * - `bumpInfo.calculatedChangeTypes`: updates dependents' change types
23
+ * - all dependents' change types as part of a group update
19
24
  *
20
25
  * What it does not do:
21
- * - bumpInfo.calculatedChangeTypes: will not mutate the entryPoint `pkgName` change type
26
+ * - `bumpInfo.calculatedChangeTypes`: will not mutate the `change.packageName` change type
22
27
  */
23
28
  function updateRelatedChangeType(params) {
24
- const { changeFile, bumpInfo, dependents, bumpDeps } = params;
25
- const { calculatedChangeTypes, changeFileChangeInfos, packageGroups, packageInfos } = bumpInfo;
26
- for (const info of changeFileChangeInfos) {
27
- if (info.changeFile !== changeFile) {
28
- continue;
29
- }
30
- const { change: { packageName: entryPointPackageName, dependentChangeType }, } = info;
31
- // Do not do anything if packageInfo is not present: it means this was an invalid changefile that
32
- // somehow got checked in. (This should have already been caught by readChangeFiles, but just in case.)
33
- if (!packageInfos[entryPointPackageName]) {
34
- continue;
35
- }
36
- const updatedChangeType = (0, changeTypes_1.getMaxChangeType)(dependentChangeType, changeTypes_1.MinChangeType);
37
- const queue = [{ subjectPackage: entryPointPackageName, changeType: changeTypes_1.MinChangeType }];
38
- // visited is a set of package names that already has been seen by this algorithm - this allows the algo to scale
39
- const visited = new Set();
40
- while (queue.length > 0) {
41
- const { subjectPackage, changeType } = queue.shift();
42
- // Step 1. Update change type of the subjectPackage according to the dependent change type propagation
43
- const packageInfo = packageInfos[subjectPackage];
44
- if (!packageInfo) {
29
+ const { change, bumpInfo, dependents, bumpDeps } = params;
30
+ const { calculatedChangeTypes, packageGroups, packageInfos } = bumpInfo;
31
+ // If dependentChangeType is none (or somehow unset), there's nothing to do.
32
+ const updatedChangeType = (0, changeTypes_1.getMaxChangeType)(change.dependentChangeType);
33
+ if (updatedChangeType === 'none') {
34
+ return;
35
+ }
36
+ const entryPointPackageName = change.packageName;
37
+ // Enqueue the first package.
38
+ // This part of the bump algorithm is a performance bottleneck, so it's important to bail early
39
+ // whenever possible, and to use `seen` to reduce queue insertion.
40
+ // https://github.com/microsoft/beachball/pull/1042
41
+ const queue = [{ subjectPackage: entryPointPackageName, changeType: changeTypes_1.MinChangeType }];
42
+ const seen = new Set();
43
+ while (queue.length > 0) {
44
+ const { subjectPackage, changeType } = queue.shift();
45
+ // Step 1. Update change type of the subjectPackage according to dependentChangeType if needed.
46
+ if (subjectPackage !== entryPointPackageName) {
47
+ const oldType = calculatedChangeTypes[subjectPackage];
48
+ calculatedChangeTypes[subjectPackage] = (0, changeTypes_1.getMaxChangeType)(oldType, changeType, packageInfos[subjectPackage]?.combinedOptions?.disallowedChangeTypes);
49
+ if (calculatedChangeTypes[subjectPackage] === oldType) {
50
+ // We didn't change this type, so keep going.
45
51
  continue;
46
52
  }
47
- const disallowedChangeTypes = packageInfo.combinedOptions?.disallowedChangeTypes ?? [];
48
- if (subjectPackage !== entryPointPackageName) {
49
- const oldType = calculatedChangeTypes[subjectPackage];
50
- calculatedChangeTypes[subjectPackage] = (0, changeTypes_1.getMaxChangeType)(oldType, changeType, disallowedChangeTypes);
51
- // We didn't change this type, so keep going.
52
- if (calculatedChangeTypes[subjectPackage] === oldType) {
53
+ }
54
+ // Step 2. For all dependent packages of the current subjectPackage, place in queue to be updated at least to the "updatedChangeType"
55
+ const dependentPackages = dependents[subjectPackage];
56
+ if (bumpDeps && dependentPackages?.length) {
57
+ for (const dependentPackage of dependentPackages) {
58
+ if (seen.has(dependentPackage)) {
53
59
  continue;
54
60
  }
61
+ seen.add(dependentPackage);
62
+ queue.push({ subjectPackage: dependentPackage, changeType: updatedChangeType });
55
63
  }
56
- // Step 2. For all dependent packages of the current subjectPackage, place in queue to be updated at least to the "updatedChangeType"
57
- const dependentPackages = dependents[subjectPackage];
58
- if (bumpDeps && dependentPackages?.length) {
59
- for (const dependentPackage of dependentPackages) {
60
- if (visited.has(dependentPackage)) {
61
- continue;
62
- }
63
- visited.add(dependentPackage);
64
- queue.push(({ subjectPackage: dependentPackage, changeType: updatedChangeType }));
65
- }
66
- }
67
- // TODO: when we do "locked", or "lock step" versioning, we could simply skip this grouped traversal,
68
- // - set the version for all packages in the group in bumpPackageInfoVersion()
69
- // - the main concern is how to capture the bump reason in grouped changelog
70
- // Step 3. For group-linked packages, update the change type to the max(change file info's change type, propagated update change type)
71
- const group = Object.values(packageGroups).find(g => g.packageNames.includes(packageInfo.name));
72
- if (group) {
73
- for (const packageNameInGroup of group.packageNames) {
74
- if (!group.disallowedChangeTypes?.includes(updatedChangeType) && !visited.has(packageNameInGroup)) {
75
- visited.add(packageNameInGroup);
76
- queue.push({
77
- subjectPackage: packageNameInGroup,
78
- changeType: updatedChangeType,
79
- });
80
- }
64
+ }
65
+ // TODO: when we do "locked", or "lock step" versioning, we could simply skip this grouped traversal,
66
+ // - set the version for all packages in the group in bumpPackageInfoVersion()
67
+ // - the main concern is how to capture the bump reason in grouped changelog
68
+ // Step 3. For group-linked packages, update the change type to the max(change file info's change type, propagated update change type)
69
+ const group = Object.values(packageGroups).find(g => g.packageNames.includes(subjectPackage));
70
+ if (group && !group.disallowedChangeTypes?.includes(updatedChangeType)) {
71
+ for (const packageNameInGroup of group.packageNames) {
72
+ if (!seen.has(packageNameInGroup)) {
73
+ seen.add(packageNameInGroup);
74
+ queue.push({
75
+ subjectPackage: packageNameInGroup,
76
+ changeType: updatedChangeType,
77
+ });
81
78
  }
82
79
  }
83
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"updateRelatedChangeType.js","sourceRoot":"","sources":["../../src/bump/updateRelatedChangeType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateRelatedChangeType.js","sourceRoot":"","sources":["../../src/bump/updateRelatedChangeType.ts"],"names":[],"mappings":";;;AAAA,2DAA4E;AAI5E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,uBAAuB,CAAC,MAKvC;IACC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC1D,MAAM,EAAE,qBAAqB,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC;IAExE,4EAA4E;IAC5E,MAAM,iBAAiB,GAAG,IAAA,8BAAgB,EAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACvE,IAAI,iBAAiB,KAAK,MAAM,EAAE;QAChC,OAAO;KACR;IAED,MAAM,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAAC;IAEjD,6BAA6B;IAC7B,+FAA+F;IAC/F,kEAAkE;IAClE,mDAAmD;IACnD,MAAM,KAAK,GAAG,CAAC,EAAE,cAAc,EAAE,qBAAqB,EAAE,UAAU,EAAE,2BAAa,EAAE,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACvB,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAEtD,+FAA+F;QAC/F,IAAI,cAAc,KAAK,qBAAqB,EAAE;YAC5C,MAAM,OAAO,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;YACtD,qBAAqB,CAAC,cAAc,CAAC,GAAG,IAAA,8BAAgB,EACtD,OAAO,EACP,UAAU,EACV,YAAY,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,qBAAqB,CACrE,CAAC;YAEF,IAAI,qBAAqB,CAAC,cAAc,CAAC,KAAK,OAAO,EAAE;gBACrD,6CAA6C;gBAC7C,SAAS;aACV;SACF;QAED,qIAAqI;QACrI,MAAM,iBAAiB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,QAAQ,IAAI,iBAAiB,EAAE,MAAM,EAAE;YACzC,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE;gBAChD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;oBAC9B,SAAS;iBACV;gBAED,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;aACjF;SACF;QAED,qGAAqG;QACrG,oFAAoF;QACpF,kFAAkF;QAElF,sIAAsI;QACtI,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAE9F,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YACtE,KAAK,MAAM,kBAAkB,IAAI,KAAK,CAAC,YAAY,EAAE;gBACnD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE;oBACjC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAC7B,KAAK,CAAC,IAAI,CAAC;wBACT,cAAc,EAAE,kBAAkB;wBAClC,UAAU,EAAE,iBAAiB;qBAC9B,CAAC,CAAC;iBACJ;aACF;SACF;KACF;AACH,CAAC;AA3ED,0DA2EC"}
@@ -1,23 +1,21 @@
1
+ import { BumpInfo } from '../types/BumpInfo';
1
2
  import type { ChangeSet, ChangeType } from '../types/ChangeInfo';
2
3
  /**
3
4
  * List of all change types from least to most significant.
4
5
  */
5
- export declare const SortedChangeTypes: ChangeType[];
6
- /**
7
- * Change type with the smallest weight.
8
- */
6
+ export declare const SortedChangeTypes: readonly ["none", "prerelease", "prepatch", "patch", "preminor", "minor", "premajor", "major"];
7
+ /** `'none'` change type (smallest weight) */
9
8
  export declare const MinChangeType: ChangeType;
10
9
  /**
11
10
  * Get initial package change types based on the greatest change type set for each package in any
12
11
  * change file, accounting for any disallowed change types or nonexistent packages.
12
+ * Anything with change type "none" will be ignored.
13
13
  */
14
- export declare function initializePackageChangeTypes(changeSet: ChangeSet): {
15
- [pkgName: string]: ChangeType;
16
- };
14
+ export declare function initializePackageChangeTypes(changeSet: ChangeSet): BumpInfo['calculatedChangeTypes'];
17
15
  /**
18
16
  * Get the max allowed change type based on `a` and `b`, accounting for disallowed change types:
19
17
  * e.g. if `a` is "major" and `b` is "patch", and "major" is disallowed, the result will be "minor"
20
18
  * (the greatest allowed change type).
21
19
  */
22
- export declare function getMaxChangeType(a: ChangeType | undefined, b: ChangeType | undefined, disallowedChangeTypes?: ChangeType[] | null): ChangeType;
20
+ export declare function getMaxChangeType(a: ChangeType | undefined, b?: ChangeType, disallowedChangeTypes?: ReadonlyArray<ChangeType> | null): ChangeType;
23
21
  //# sourceMappingURL=changeTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"changeTypes.d.ts","sourceRoot":"","sources":["../../src/changefile/changeTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,UAAU,EASzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,YAAuB,CAAC;AAQlD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,SAAS,GAAG;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CASpG;AAeD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,UAAU,GAAG,SAAS,EACzB,CAAC,EAAE,UAAU,GAAG,SAAS,EACzB,qBAAqB,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,GAC1C,UAAU,CAUZ"}
1
+ {"version":3,"file":"changeTypes.d.ts","sourceRoot":"","sources":["../../src/changefile/changeTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,iBAAiB,gGASY,CAAC;AAE3C,6CAA6C;AAC7C,eAAO,MAAM,aAAa,EAAE,UAAmB,CAAC;AAQhD;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,SAAS,GAAG,QAAQ,CAAC,uBAAuB,CAAC,CAapG;AAeD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,UAAU,GAAG,SAAS,EACzB,CAAC,CAAC,EAAE,UAAU,EACd,qBAAqB,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,GACvD,UAAU,CAOZ"}
@@ -14,10 +14,8 @@ exports.SortedChangeTypes = [
14
14
  'premajor',
15
15
  'major',
16
16
  ];
17
- /**
18
- * Change type with the smallest weight.
19
- */
20
- exports.MinChangeType = exports.SortedChangeTypes[0];
17
+ /** `'none'` change type (smallest weight) */
18
+ exports.MinChangeType = 'none';
21
19
  /**
22
20
  * Change type weights.
23
21
  * Note: the order in which this is defined is IMPORTANT.
@@ -26,12 +24,17 @@ const ChangeTypeWeights = Object.fromEntries(exports.SortedChangeTypes.map((t, i
26
24
  /**
27
25
  * Get initial package change types based on the greatest change type set for each package in any
28
26
  * change file, accounting for any disallowed change types or nonexistent packages.
27
+ * Anything with change type "none" will be ignored.
29
28
  */
30
29
  function initializePackageChangeTypes(changeSet) {
31
30
  const pkgChangeTypes = {};
32
31
  for (const { change } of changeSet) {
33
- const { packageName: pkg, type } = change;
34
- pkgChangeTypes[pkg] = getMaxChangeType(type, pkgChangeTypes[pkg] || 'none', null);
32
+ const { packageName: pkg } = change;
33
+ const changeType = getMaxChangeType(change.type, pkgChangeTypes[pkg]);
34
+ // It's best to totally ignore "none" changes to do a bit less processing.
35
+ if (changeType !== 'none') {
36
+ pkgChangeTypes[pkg] = changeType;
37
+ }
35
38
  }
36
39
  return pkgChangeTypes;
37
40
  }
@@ -52,13 +55,11 @@ function getAllowedChangeType(changeType, disallowedChangeTypes) {
52
55
  * (the greatest allowed change type).
53
56
  */
54
57
  function getMaxChangeType(a, b, disallowedChangeTypes) {
55
- a ?? (a = exports.MinChangeType);
56
- b ?? (b = exports.MinChangeType);
57
- if (disallowedChangeTypes) {
58
- a = getAllowedChangeType(a, disallowedChangeTypes);
59
- b = getAllowedChangeType(b, disallowedChangeTypes);
58
+ if (disallowedChangeTypes?.length) {
59
+ a = a && getAllowedChangeType(a, disallowedChangeTypes);
60
+ b = b && getAllowedChangeType(b, disallowedChangeTypes);
60
61
  }
61
- return ChangeTypeWeights[a] > ChangeTypeWeights[b] ? a : b;
62
+ return a && b ? (ChangeTypeWeights[a] > ChangeTypeWeights[b] ? a : b) : a || b || 'none';
62
63
  }
63
64
  exports.getMaxChangeType = getMaxChangeType;
64
65
  //# sourceMappingURL=changeTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"changeTypes.js","sourceRoot":"","sources":["../../src/changefile/changeTypes.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,iBAAiB,GAAiB;IAC7C,MAAM;IACN,YAAY;IACZ,UAAU;IACV,OAAO;IACP,UAAU;IACV,OAAO;IACP,UAAU;IACV,OAAO;CACR,CAAC;AAEF;;GAEG;AACU,QAAA,aAAa,GAAG,yBAAiB,CAAC,CAAC,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,yBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAkC,CAAC;AAEvH;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,SAAoB;IAC/D,MAAM,cAAc,GAAsC,EAAE,CAAC;IAE7D,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE;QAClC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAC1C,cAAc,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC;KACnF;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AATD,oEASC;AAED,SAAS,oBAAoB,CAAC,UAAsB,EAAE,qBAAmC;IACvF,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,MAAM,CAAC,CAAC,wCAAwC;KACxD;IAED,OAAO,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,MAAM,EAAE;QAC1E,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/D,UAAU,GAAG,yBAAiB,CAAC,oBAAoB,CAAC,CAAC;KACtD;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAC9B,CAAyB,EACzB,CAAyB,EACzB,qBAA2C;IAE3C,CAAC,KAAD,CAAC,GAAK,qBAAa,EAAC;IACpB,CAAC,KAAD,CAAC,GAAK,qBAAa,EAAC;IAEpB,IAAI,qBAAqB,EAAE;QACzB,CAAC,GAAG,oBAAoB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACnD,CAAC,GAAG,oBAAoB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;KACpD;IAED,OAAO,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAdD,4CAcC"}
1
+ {"version":3,"file":"changeTypes.js","sourceRoot":"","sources":["../../src/changefile/changeTypes.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACU,QAAA,iBAAiB,GAAG;IAC/B,MAAM;IACN,YAAY;IACZ,UAAU;IACV,OAAO;IACP,UAAU;IACV,OAAO;IACP,UAAU;IACV,OAAO;CACiC,CAAC;AAE3C,6CAA6C;AAChC,QAAA,aAAa,GAAe,MAAM,CAAC;AAEhD;;;GAGG;AACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC,yBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAA+B,CAAC;AAEpH;;;;GAIG;AACH,SAAgB,4BAA4B,CAAC,SAAoB;IAC/D,MAAM,cAAc,GAAsC,EAAE,CAAC;IAE7D,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE;QAClC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QACpC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QACtE,0EAA0E;QAC1E,IAAI,UAAU,KAAK,MAAM,EAAE;YACzB,cAAc,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;SAClC;KACF;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAbD,oEAaC;AAED,SAAS,oBAAoB,CAAC,UAAsB,EAAE,qBAAgD;IACpG,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,MAAM,CAAC,CAAC,wCAAwC;KACxD;IAED,OAAO,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,MAAM,EAAE;QAC1E,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/D,UAAU,GAAG,yBAAiB,CAAC,oBAAoB,CAAC,CAAC;KACtD;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAC9B,CAAyB,EACzB,CAAc,EACd,qBAAwD;IAExD,IAAI,qBAAqB,EAAE,MAAM,EAAE;QACjC,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACxD,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;KACzD;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;AAC3F,CAAC;AAXD,4CAWC"}
@@ -2,14 +2,22 @@ import type { ChangeSet, ChangeType } from './ChangeInfo';
2
2
  import type { DeepReadonly } from './DeepReadonly';
3
3
  import type { PackageInfos, PackageGroups } from './PackageInfo';
4
4
  export type BumpInfo = {
5
- /** Changes coming from the change files */
5
+ /**
6
+ * Changes coming from the change files.
7
+ * `readChangeFiles` ensures that this will only contain changes for packages that exist.
8
+ */
6
9
  changeFileChangeInfos: DeepReadonly<ChangeSet>;
7
10
  /**
8
11
  * Cached version of package info (e.g. package.json, package path).
9
12
  * This will be updated to reflect the bumped versions and dependencies.
10
13
  */
11
14
  packageInfos: PackageInfos;
12
- /** Change types collated by the package names */
15
+ /**
16
+ * Mapping from package name to change type.
17
+ *
18
+ * Initially (after `gatherBumpInfo`), this just has change types based on the change files.
19
+ * It's updated by the early steps of `bumpInPlace` to consider groups and `disallowedChangeTypes`.
20
+ */
13
21
  calculatedChangeTypes: {
14
22
  [pkgName: string]: ChangeType;
15
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"BumpInfo.d.ts","sourceRoot":"","sources":["../../src/types/BumpInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG;IACrB,2CAA2C;IAC3C,qBAAqB,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAE/C;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B,iDAAiD;IACjD,qBAAqB,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IAEzD,uBAAuB;IACvB,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAE3C,6CAA6C;IAC7C,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE9B,+EAA+E;IAC/E,kBAAkB,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAEvD,sDAAsD;IACtD,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEtF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC"}
1
+ {"version":3,"file":"BumpInfo.d.ts","sourceRoot":"","sources":["../../src/types/BumpInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,MAAM,QAAQ,GAAG;IACrB;;;OAGG;IACH,qBAAqB,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IAE/C;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAC;IAE3B;;;;;OAKG;IACH,qBAAqB,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IAEzD,uBAAuB;IACvB,aAAa,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAE3C,6CAA6C;IAC7C,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE9B,+EAA+E;IAC/E,kBAAkB,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAEvD,sDAAsD;IACtD,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF,uFAAuF;AACvF,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,CAAC;AAEtF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG;IACvC;;;OAGG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC"}
@@ -31,8 +31,12 @@ export interface ChangeInfoMultiple {
31
31
  /**
32
32
  * List of change file infos (not actually a set).
33
33
  */
34
- export type ChangeSet = {
35
- changeFile: string;
34
+ export type ChangeSet = Array<{
36
35
  change: ChangeFileInfo;
37
- }[];
36
+ /**
37
+ * Filename the change came from (under `BeachballOptions.changeDir`).
38
+ * Multiple entries in the array might have come from the same file.
39
+ */
40
+ changeFile: string;
41
+ }>;
38
42
  //# sourceMappingURL=ChangeInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChangeInfo.d.ts","sourceRoot":"","sources":["../../src/types/ChangeInfo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,mBAAmB,EAAE,UAAU,CAAC;IAChC,6DAA6D;IAC7D,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,EAAE,CAAC"}
1
+ {"version":3,"file":"ChangeInfo.d.ts","sourceRoot":"","sources":["../../src/types/ChangeInfo.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,mBAAmB,EAAE,UAAU,CAAC;IAChC,6DAA6D;IAC7D,CAAC,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,cAAc;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC"}
@@ -1,3 +1,7 @@
1
1
  import { ChangeType } from '../types/ChangeInfo';
2
+ /**
3
+ * Returns whether `dependentChangeType` is valid and not disallowed.
4
+ * Note that `'patch'` is always allowed.
5
+ */
2
6
  export declare function isValidDependentChangeType(dependentChangeType: ChangeType, disallowedChangeTypes: ChangeType[] | null): boolean;
3
7
  //# sourceMappingURL=isValidDependentChangeType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isValidDependentChangeType.d.ts","sourceRoot":"","sources":["../../src/validation/isValidDependentChangeType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,wBAAgB,0BAA0B,CACxC,mBAAmB,EAAE,UAAU,EAC/B,qBAAqB,EAAE,UAAU,EAAE,GAAG,IAAI,GACzC,OAAO,CAST"}
1
+ {"version":3,"file":"isValidDependentChangeType.d.ts","sourceRoot":"","sources":["../../src/validation/isValidDependentChangeType.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,mBAAmB,EAAE,UAAU,EAC/B,qBAAqB,EAAE,UAAU,EAAE,GAAG,IAAI,GACzC,OAAO,CAOT"}
@@ -1,10 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.isValidDependentChangeType = void 0;
4
+ const changeTypes_1 = require("../changefile/changeTypes");
5
+ /**
6
+ * Returns whether `dependentChangeType` is valid and not disallowed.
7
+ * Note that `'patch'` is always allowed.
8
+ */
4
9
  function isValidDependentChangeType(dependentChangeType, disallowedChangeTypes) {
5
- // patch is always allowed as a dependentChangeType
6
- const disallowedDependentChangeTypes = (disallowedChangeTypes || []).filter(t => t !== 'patch');
7
- return (['patch', 'major', 'minor', 'prerelease', 'prepatch', 'praminor', 'premajor', 'none'].includes(dependentChangeType) && !disallowedDependentChangeTypes.includes(dependentChangeType));
10
+ if (dependentChangeType === 'patch') {
11
+ // patch is always allowed as a dependentChangeType
12
+ return true;
13
+ }
14
+ return changeTypes_1.SortedChangeTypes.includes(dependentChangeType) && !disallowedChangeTypes?.includes(dependentChangeType);
8
15
  }
9
16
  exports.isValidDependentChangeType = isValidDependentChangeType;
10
17
  //# sourceMappingURL=isValidDependentChangeType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isValidDependentChangeType.js","sourceRoot":"","sources":["../../src/validation/isValidDependentChangeType.ts"],"names":[],"mappings":";;;AAEA,SAAgB,0BAA0B,CACxC,mBAA+B,EAC/B,qBAA0C;IAE1C,mDAAmD;IACnD,MAAM,8BAA8B,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IAEhG,OAAO,CACL,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,QAAQ,CAC5F,mBAAmB,CACpB,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACnE,CAAC;AACJ,CAAC;AAZD,gEAYC"}
1
+ {"version":3,"file":"isValidDependentChangeType.js","sourceRoot":"","sources":["../../src/validation/isValidDependentChangeType.ts"],"names":[],"mappings":";;;AAAA,2DAA8D;AAG9D;;;GAGG;AACH,SAAgB,0BAA0B,CACxC,mBAA+B,EAC/B,qBAA0C;IAE1C,IAAI,mBAAmB,KAAK,OAAO,EAAE;QACnC,mDAAmD;QACnD,OAAO,IAAI,CAAC;KACb;IAED,OAAO,+BAAiB,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAClH,CAAC;AAVD,gEAUC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beachball",
3
- "version": "2.51.2",
3
+ "version": "2.52.0",
4
4
  "description": "The Sunniest Semantic Version Bumper",
5
5
  "repository": {
6
6
  "type": "git",