@backstage/cli 0.22.0 → 0.22.1-next.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 (43) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/{Lockfile-6785964d.cjs.js → Lockfile-938c566f.cjs.js} +103 -39
  3. package/dist/cjs/{PackageGraph-35080f04.cjs.js → PackageGraph-27139b51.cjs.js} +75 -2
  4. package/dist/cjs/{build-6db0ae91.cjs.js → build-f35ba9d4.cjs.js} +17 -11
  5. package/dist/cjs/{buildBackend-2fdc1e48.cjs.js → buildBackend-92288964.cjs.js} +6 -6
  6. package/dist/cjs/{buildWorkspace-c4e4771f.cjs.js → buildWorkspace-90af4c50.cjs.js} +11 -6
  7. package/dist/cjs/{bump-43bc9dcd.cjs.js → bump-60e77b71.cjs.js} +12 -8
  8. package/dist/cjs/{clean-d3df90dc.cjs.js → clean-554e75b3.cjs.js} +11 -5
  9. package/dist/cjs/{clean-8cd08be0.cjs.js → clean-98730a79.cjs.js} +2 -2
  10. package/dist/cjs/{config-fc8cc849.cjs.js → config-9cbaba35.cjs.js} +3 -3
  11. package/dist/cjs/{createDistWorkspace-13b34403.cjs.js → createDistWorkspace-aba632c5.cjs.js} +5 -5
  12. package/dist/cjs/{createPlugin-8f62909c.cjs.js → createPlugin-7c210502.cjs.js} +5 -5
  13. package/dist/cjs/{diff-609c262e.cjs.js → diff-4f99d904.cjs.js} +2 -2
  14. package/dist/cjs/{docs-9f4d4ded.cjs.js → docs-17d299dc.cjs.js} +10 -4
  15. package/dist/cjs/{fix-cfb2ffce.cjs.js → fix-7d71aac2.cjs.js} +9 -3
  16. package/dist/cjs/{index-333db2fa.cjs.js → index-173db28b.cjs.js} +15 -10
  17. package/dist/cjs/{index-cdb72ce4.cjs.js → index-a9c742dd.cjs.js} +14 -13
  18. package/dist/cjs/{index-4e26060c.cjs.js → index-f37153bc.cjs.js} +38 -38
  19. package/dist/cjs/{index-9eebe054.cjs.js → index-ff90d0b7.cjs.js} +3 -3
  20. package/dist/cjs/{info-0c3a7339.cjs.js → info-3d85d4eb.cjs.js} +4 -4
  21. package/dist/cjs/{install-eee6ee94.cjs.js → install-f9de4688.cjs.js} +4 -4
  22. package/dist/cjs/{lint-c8d362f8.cjs.js → lint-524d2657.cjs.js} +2 -2
  23. package/dist/cjs/{lint-0f6dd002.cjs.js → lint-72ed986c.cjs.js} +13 -7
  24. package/dist/cjs/{lint-5d424da2.cjs.js → lint-90c3b7a2.cjs.js} +15 -6
  25. package/dist/cjs/{list-deprecations-cdadcfa3.cjs.js → list-deprecations-3f44175a.cjs.js} +9 -3
  26. package/dist/cjs/{new-9709921a.cjs.js → new-812b42ff.cjs.js} +5 -5
  27. package/dist/cjs/{pack-1ce96731.cjs.js → pack-7bc68e27.cjs.js} +2 -2
  28. package/dist/cjs/{packageLintConfigs-d8779304.cjs.js → packageLintConfigs-ebf303c2.cjs.js} +9 -4
  29. package/dist/cjs/{packageRole-29141e47.cjs.js → packageRole-f29a3482.cjs.js} +3 -3
  30. package/dist/cjs/{packageRoles-4d56e8b9.cjs.js → packageRoles-0c615b3b.cjs.js} +2 -2
  31. package/dist/cjs/{packageScripts-6d8f1d57.cjs.js → packageScripts-042a9698.cjs.js} +10 -4
  32. package/dist/cjs/{packages-304263af.cjs.js → packages-ba696901.cjs.js} +3 -3
  33. package/dist/cjs/{paths-33a42e3d.cjs.js → paths-517ec1e5.cjs.js} +3 -3
  34. package/dist/cjs/{print-9bd34b93.cjs.js → print-24588f54.cjs.js} +10 -4
  35. package/dist/cjs/{reactRouterDeps-3d0b4f0c.cjs.js → reactRouterDeps-4f6b592f.cjs.js} +10 -4
  36. package/dist/cjs/{run-420a9288.cjs.js → run-2ece670f.cjs.js} +2 -2
  37. package/dist/cjs/{schema-9b018e12.cjs.js → schema-9ac4b8ed.cjs.js} +10 -4
  38. package/dist/cjs/{tasks-5c60f1f6.cjs.js → tasks-78bc530a.cjs.js} +2 -2
  39. package/dist/cjs/{test-b0fa05af.cjs.js → test-c2d0ed2f.cjs.js} +13 -7
  40. package/dist/cjs/{test-117b4e3e.cjs.js → test-f35bf2af.cjs.js} +3 -3
  41. package/dist/cjs/{validate-17b11c65.cjs.js → validate-0f4fd4fc.cjs.js} +10 -4
  42. package/dist/index.cjs.js +1 -1
  43. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @backstage/cli
2
2
 
3
+ ## 0.22.1-next.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 47c10706df: Fixed an issue where the CLI would fail to function when there was a mix of workspace and non-workspace versions of the same package in `yarn.lock` when using Yarn 3.
8
+ - a62a1f9dca: The frontend serve task now filters out allowed package duplicates during its package check, just like `versions:bump` and `versions:check`.
9
+ - 7c8a974515: The `repo test`, `repo lint`, and `repo build` commands will now analyze `yarn.lock` for dependency changes when searching for changed packages. This allows you to use the `--since <ref>` flag even if you have `yarn.lock` changes.
10
+ - e1b71e142e: Workspace ranges are no longer considered invalid by version commands.
11
+ - Updated dependencies
12
+ - @backstage/cli-common@0.1.11
13
+ - @backstage/config@1.0.5
14
+ - @backstage/config-loader@1.1.7
15
+ - @backstage/errors@1.1.4
16
+ - @backstage/release-manifests@0.0.8
17
+ - @backstage/types@1.0.2
18
+
3
19
  ## 0.22.0
4
20
 
5
21
  ### Minor Changes
@@ -11,19 +11,6 @@ var fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
11
11
  var semver__default = /*#__PURE__*/_interopDefaultLegacy(semver);
12
12
 
13
13
  const ENTRY_PATTERN = /^((?:@[^/]+\/)?[^@/]+)@(.+)$/;
14
- function parseLockfile(lockfileContents) {
15
- try {
16
- return {
17
- object: parsers.parseSyml(lockfileContents),
18
- type: "success"
19
- };
20
- } catch (err) {
21
- return {
22
- object: null,
23
- type: err
24
- };
25
- }
26
- }
27
14
  const NEW_HEADER = `${[
28
15
  `# This file is generated by running "yarn install" inside your project.
29
16
  `,
@@ -31,9 +18,6 @@ const NEW_HEADER = `${[
31
18
  `
32
19
  ].join(``)}
33
20
  `;
34
- function stringifyLockfile(data, legacy) {
35
- return legacy ? lockfile.stringify(data) : NEW_HEADER + parsers.stringifySyml(data);
36
- }
37
21
  const LEGACY_REGEX = /^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;
38
22
  const SPECIAL_OBJECT_KEYS = [
39
23
  `__metadata`,
@@ -46,21 +30,24 @@ const SPECIAL_OBJECT_KEYS = [
46
30
  `binaries`
47
31
  ];
48
32
  class Lockfile {
49
- constructor(path, packages, data, legacy = false) {
50
- this.path = path;
33
+ constructor(packages, data, legacy = false) {
51
34
  this.packages = packages;
52
35
  this.data = data;
53
36
  this.legacy = legacy;
54
37
  }
55
38
  static async load(path) {
56
- var _a;
57
39
  const lockfileContents = await fs__default["default"].readFile(path, "utf8");
58
- const legacy = LEGACY_REGEX.test(lockfileContents);
59
- const lockfile = parseLockfile(lockfileContents);
60
- if (lockfile.type !== "success") {
61
- throw new Error(`Failed yarn.lock parse with ${lockfile.type}`);
40
+ return Lockfile.parse(lockfileContents);
41
+ }
42
+ static parse(content) {
43
+ var _a;
44
+ const legacy = LEGACY_REGEX.test(content);
45
+ let data;
46
+ try {
47
+ data = parsers.parseSyml(content);
48
+ } catch (err) {
49
+ throw new Error(`Failed yarn.lock parse, ${err}`);
62
50
  }
63
- const data = lockfile.object;
64
51
  const packages = /* @__PURE__ */ new Map();
65
52
  for (const [key, value] of Object.entries(data)) {
66
53
  if (SPECIAL_OBJECT_KEYS.includes(key))
@@ -81,10 +68,10 @@ class Lockfile {
81
68
  if (range.startsWith("npm:")) {
82
69
  range = range.slice("npm:".length);
83
70
  }
84
- queries.push({ range, version: value.version });
71
+ queries.push({ range, version: value.version, dataKey: key });
85
72
  }
86
73
  }
87
- return new Lockfile(path, packages, data, legacy);
74
+ return new Lockfile(packages, data, legacy);
88
75
  }
89
76
  get(name) {
90
77
  return this.packages.get(name);
@@ -94,7 +81,7 @@ class Lockfile {
94
81
  }
95
82
  analyze(options) {
96
83
  var _a;
97
- const { filter } = options != null ? options : {};
84
+ const { filter, localPackages } = options;
98
85
  const result = {
99
86
  invalidRanges: [],
100
87
  newVersions: [],
@@ -104,7 +91,9 @@ class Lockfile {
104
91
  if (filter && !filter(name)) {
105
92
  continue;
106
93
  }
107
- const invalid = allEntries.filter((e) => !semver__default["default"].validRange(e.range));
94
+ const invalid = allEntries.filter(
95
+ (e) => !semver__default["default"].validRange(e.range) && !e.range.startsWith("workspace:")
96
+ );
108
97
  result.invalidRanges.push(
109
98
  ...invalid.map(({ range }) => ({ name, range }))
110
99
  );
@@ -112,29 +101,44 @@ class Lockfile {
112
101
  if (entries.length < 2) {
113
102
  continue;
114
103
  }
115
- const versions = Array.from(new Set(entries.map((e) => e.version))).sort(
116
- (v1, v2) => semver__default["default"].rcompare(v1, v2)
117
- );
104
+ const versions = Array.from(new Set(entries.map((e) => e.version))).map((v) => {
105
+ if (v === "0.0.0-use.local") {
106
+ const local = localPackages.get(name);
107
+ if (!local) {
108
+ throw new Error(`No local package found for ${name}`);
109
+ }
110
+ if (!local.packageJson.version) {
111
+ throw new Error(`No version found for local package ${name}`);
112
+ }
113
+ return {
114
+ entryVersion: v,
115
+ actualVersion: local.packageJson.version
116
+ };
117
+ }
118
+ return { entryVersion: v, actualVersion: v };
119
+ }).sort((v1, v2) => semver__default["default"].rcompare(v1.actualVersion, v2.actualVersion));
118
120
  if (versions.length < 2) {
119
121
  continue;
120
122
  }
121
123
  const acceptedVersions = /* @__PURE__ */ new Set();
122
124
  for (const { version, range } of entries) {
123
- const acceptedVersion = versions.find((v) => semver__default["default"].satisfies(v, range));
125
+ const acceptedVersion = versions.find(
126
+ (v) => semver__default["default"].satisfies(v.actualVersion, range)
127
+ );
124
128
  if (!acceptedVersion) {
125
129
  throw new Error(
126
130
  `No existing version was accepted for range ${range}, searching through ${versions}, for package ${name}`
127
131
  );
128
132
  }
129
- if (acceptedVersion !== version) {
133
+ if (acceptedVersion.entryVersion !== version) {
130
134
  result.newVersions.push({
131
135
  name,
132
136
  range,
133
- newVersion: acceptedVersion,
137
+ newVersion: acceptedVersion.entryVersion,
134
138
  oldVersion: version
135
139
  });
136
140
  }
137
- acceptedVersions.add(acceptedVersion);
141
+ acceptedVersions.add(acceptedVersion.actualVersion);
138
142
  }
139
143
  if (acceptedVersions.size === 1) {
140
144
  continue;
@@ -206,13 +210,73 @@ class Lockfile {
206
210
  entry.version = newVersion;
207
211
  }
208
212
  }
209
- async save() {
210
- await fs__default["default"].writeFile(this.path, this.toString(), "utf8");
213
+ createSimplifiedDependencyGraph() {
214
+ const graph = /* @__PURE__ */ new Map();
215
+ for (const [name, entries] of this.packages) {
216
+ const dependencies = new Set(
217
+ entries.flatMap((e) => {
218
+ var _a, _b;
219
+ const data = this.data[e.dataKey];
220
+ return [
221
+ ...Object.keys((_a = data == null ? void 0 : data.dependencies) != null ? _a : {}),
222
+ ...Object.keys((_b = data == null ? void 0 : data.peerDependencies) != null ? _b : {})
223
+ ];
224
+ })
225
+ );
226
+ graph.set(name, dependencies);
227
+ }
228
+ return graph;
229
+ }
230
+ diff(otherLockfile) {
231
+ var _a;
232
+ const diff = {
233
+ added: new Array(),
234
+ changed: new Array(),
235
+ removed: new Array()
236
+ };
237
+ const remainingOldNames = new Set(this.packages.keys());
238
+ for (const [name, otherQueries] of otherLockfile.packages) {
239
+ remainingOldNames.delete(name);
240
+ const thisQueries = this.packages.get(name);
241
+ if (!thisQueries) {
242
+ diff.removed.push(...otherQueries.map((q) => ({ name, range: q.range })));
243
+ continue;
244
+ }
245
+ const remainingOldRanges = new Set(thisQueries.map((q) => q.range));
246
+ for (const otherQuery of otherQueries) {
247
+ remainingOldRanges.delete(otherQuery.range);
248
+ const thisQuery = thisQueries.find((q) => q.range === otherQuery.range);
249
+ if (!thisQuery) {
250
+ diff.removed.push({ name, range: otherQuery.range });
251
+ continue;
252
+ }
253
+ const otherPkg = otherLockfile.data[otherQuery.dataKey];
254
+ const thisPkg = this.data[thisQuery.dataKey];
255
+ if (otherPkg && thisPkg) {
256
+ const thisCheck = thisPkg.integrity || thisPkg.checksum;
257
+ const otherCheck = otherPkg.integrity || otherPkg.checksum;
258
+ if (thisCheck !== otherCheck) {
259
+ diff.changed.push({ name, range: otherQuery.range });
260
+ }
261
+ }
262
+ }
263
+ for (const thisRange of remainingOldRanges) {
264
+ diff.added.push({ name, range: thisRange });
265
+ }
266
+ }
267
+ for (const name of remainingOldNames) {
268
+ const queries = (_a = this.packages.get(name)) != null ? _a : [];
269
+ diff.added.push(...queries.map((q) => ({ name, range: q.range })));
270
+ }
271
+ return diff;
272
+ }
273
+ async save(path) {
274
+ await fs__default["default"].writeFile(path, this.toString(), "utf8");
211
275
  }
212
276
  toString() {
213
- return stringifyLockfile(this.data, this.legacy);
277
+ return this.legacy ? lockfile.stringify(this.data) : NEW_HEADER + parsers.stringifySyml(this.data);
214
278
  }
215
279
  }
216
280
 
217
281
  exports.Lockfile = Lockfile;
218
- //# sourceMappingURL=Lockfile-6785964d.cjs.js.map
282
+ //# sourceMappingURL=Lockfile-938c566f.cjs.js.map
@@ -2,10 +2,15 @@
2
2
 
3
3
  var path = require('path');
4
4
  var getPackages = require('@manypkg/get-packages');
5
- var index = require('./index-4e26060c.cjs.js');
5
+ var index = require('./index-f37153bc.cjs.js');
6
6
  var errors = require('@backstage/errors');
7
7
  var child_process = require('child_process');
8
8
  var util = require('util');
9
+ var Lockfile = require('./Lockfile-938c566f.cjs.js');
10
+ require('minimatch');
11
+ require('chalk');
12
+ require('./yarn-6cd89e16.cjs.js');
13
+ require('./run-2ece670f.cjs.js');
9
14
 
10
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
16
 
@@ -44,6 +49,20 @@ async function listChangedFiles(ref) {
44
49
  const untracked = await runGit("ls-files", "--others", "--exclude-standard");
45
50
  return Array.from(/* @__PURE__ */ new Set([...tracked, ...untracked]));
46
51
  }
52
+ async function readFileAtRef(path, ref) {
53
+ let showRef = ref;
54
+ try {
55
+ const [base] = await runGit("merge-base", "HEAD", ref);
56
+ showRef = base;
57
+ } catch {
58
+ }
59
+ const { stdout } = await execFile("git", ["show", `${showRef}:${path}`], {
60
+ shell: true,
61
+ cwd: index.paths.targetRoot,
62
+ maxBuffer: 1024 * 1024 * 50
63
+ });
64
+ return stdout;
65
+ }
47
66
 
48
67
  class PackageGraph extends Map {
49
68
  static async listTargetPackages() {
@@ -161,9 +180,63 @@ class PackageGraph extends Map {
161
180
  }
162
181
  }
163
182
  }
183
+ if (changedFiles.includes("yarn.lock") && options.analyzeLockfile) {
184
+ let thisLockfile;
185
+ let otherLockfile;
186
+ try {
187
+ thisLockfile = await Lockfile.Lockfile.load(
188
+ index.paths.resolveTargetRoot("yarn.lock")
189
+ );
190
+ otherLockfile = Lockfile.Lockfile.parse(
191
+ await readFileAtRef("yarn.lock", options.ref)
192
+ );
193
+ } catch (error) {
194
+ console.warn(
195
+ `Failed to read lockfiles, assuming all packages have changed, ${error}`
196
+ );
197
+ return Array.from(this.values());
198
+ }
199
+ const diff = thisLockfile.diff(otherLockfile);
200
+ const graph = thisLockfile.createSimplifiedDependencyGraph();
201
+ {
202
+ const otherGraph = thisLockfile.createSimplifiedDependencyGraph();
203
+ for (const [name, dependencies] of otherGraph) {
204
+ const node = graph.get(name);
205
+ if (node) {
206
+ dependencies.forEach((d) => node.add(d));
207
+ } else {
208
+ graph.set(name, dependencies);
209
+ }
210
+ }
211
+ }
212
+ const changedPackages = new Set(
213
+ [...diff.added, ...diff.changed, ...diff.removed].map((e) => e.name)
214
+ );
215
+ let changed = false;
216
+ do {
217
+ changed = false;
218
+ for (const [name, dependencies] of graph) {
219
+ if (changedPackages.has(name)) {
220
+ continue;
221
+ }
222
+ for (const dep of dependencies) {
223
+ if (changedPackages.has(dep)) {
224
+ changed = true;
225
+ changedPackages.add(name);
226
+ break;
227
+ }
228
+ }
229
+ }
230
+ } while (changed);
231
+ for (const node of this.values()) {
232
+ if (changedPackages.has(node.name) && !result.includes(node)) {
233
+ result.push(node);
234
+ }
235
+ }
236
+ }
164
237
  return result;
165
238
  }
166
239
  }
167
240
 
168
241
  exports.PackageGraph = PackageGraph;
169
- //# sourceMappingURL=PackageGraph-35080f04.cjs.js.map
242
+ //# sourceMappingURL=PackageGraph-27139b51.cjs.js.map
@@ -2,17 +2,17 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var path = require('path');
5
- var createDistWorkspace = require('./createDistWorkspace-13b34403.cjs.js');
6
- var PackageGraph = require('./PackageGraph-35080f04.cjs.js');
5
+ var createDistWorkspace = require('./createDistWorkspace-aba632c5.cjs.js');
6
+ var PackageGraph = require('./PackageGraph-27139b51.cjs.js');
7
7
  var parallel = require('./parallel-a8f6219c.cjs.js');
8
- var index = require('./index-4e26060c.cjs.js');
9
- var packageRoles = require('./packageRoles-4d56e8b9.cjs.js');
10
- var buildBackend = require('./buildBackend-2fdc1e48.cjs.js');
8
+ var index = require('./index-f37153bc.cjs.js');
9
+ var packageRoles = require('./packageRoles-0c615b3b.cjs.js');
10
+ var buildBackend = require('./buildBackend-92288964.cjs.js');
11
11
  require('fs-extra');
12
12
  require('os');
13
13
  require('tar');
14
14
  require('lodash/partition');
15
- require('./run-420a9288.cjs.js');
15
+ require('./run-2ece670f.cjs.js');
16
16
  require('child_process');
17
17
  require('util');
18
18
  require('@backstage/errors');
@@ -29,9 +29,14 @@ require('rollup-pluginutils');
29
29
  require('./svgrTemplate-550efce6.cjs.js');
30
30
  require('npm-packlist');
31
31
  require('@manypkg/get-packages');
32
+ require('./Lockfile-938c566f.cjs.js');
33
+ require('semver');
34
+ require('@yarnpkg/parsers');
35
+ require('@yarnpkg/lockfile');
36
+ require('minimatch');
37
+ require('./yarn-6cd89e16.cjs.js');
32
38
  require('worker_threads');
33
39
  require('commander');
34
- require('semver');
35
40
  require('@backstage/cli-common');
36
41
  require('zod');
37
42
  require('webpack');
@@ -40,7 +45,7 @@ require('html-webpack-plugin');
40
45
  require('react-dev-utils/ModuleScopePlugin');
41
46
  require('run-script-webpack-plugin');
42
47
  require('webpack-node-externals');
43
- require('./paths-33a42e3d.cjs.js');
48
+ require('./paths-517ec1e5.cjs.js');
44
49
  require('mini-css-extract-plugin');
45
50
  require('@pmmmwh/react-refresh-webpack-plugin');
46
51
  require('eslint-webpack-plugin');
@@ -50,7 +55,7 @@ require('react-dev-utils/FileSizeReporter');
50
55
  require('react-dev-utils/formatWebpackMessages');
51
56
  require('webpack-dev-server');
52
57
  require('react-dev-utils/openBrowser');
53
- require('./config-fc8cc849.cjs.js');
58
+ require('./config-9cbaba35.cjs.js');
54
59
  require('@backstage/config-loader');
55
60
  require('@backstage/config');
56
61
 
@@ -95,7 +100,8 @@ async function command(opts, cmd) {
95
100
  if (opts.since) {
96
101
  const graph = PackageGraph.PackageGraph.fromPackages(packages);
97
102
  const changedPackages = await graph.listChangedPackages({
98
- ref: opts.since
103
+ ref: opts.since,
104
+ analyzeLockfile: true
99
105
  });
100
106
  const withDevDependents = graph.collectPackageNames(
101
107
  changedPackages.map((pkg) => pkg.name),
@@ -186,4 +192,4 @@ async function command(opts, cmd) {
186
192
  }
187
193
 
188
194
  exports.command = command;
189
- //# sourceMappingURL=build-6db0ae91.cjs.js.map
195
+ //# sourceMappingURL=build-f35ba9d4.cjs.js.map
@@ -10,11 +10,11 @@ require('run-script-webpack-plugin');
10
10
  require('webpack-node-externals');
11
11
  require('@backstage/cli-common');
12
12
  require('@manypkg/get-packages');
13
- var paths = require('./paths-33a42e3d.cjs.js');
13
+ var paths = require('./paths-517ec1e5.cjs.js');
14
14
  require('mini-css-extract-plugin');
15
15
  require('@pmmmwh/react-refresh-webpack-plugin');
16
- require('./index-4e26060c.cjs.js');
17
- require('./run-420a9288.cjs.js');
16
+ require('./index-f37153bc.cjs.js');
17
+ require('./run-2ece670f.cjs.js');
18
18
  require('eslint-webpack-plugin');
19
19
  require('lodash/pickBy');
20
20
  var yn = require('yn');
@@ -24,10 +24,10 @@ var chalk = require('chalk');
24
24
  require('webpack-dev-server');
25
25
  require('react-dev-utils/openBrowser');
26
26
  var parallel = require('./parallel-a8f6219c.cjs.js');
27
- var config = require('./config-fc8cc849.cjs.js');
27
+ var config = require('./config-9cbaba35.cjs.js');
28
28
  var os = require('os');
29
29
  var tar = require('tar');
30
- var createDistWorkspace = require('./createDistWorkspace-13b34403.cjs.js');
30
+ var createDistWorkspace = require('./createDistWorkspace-aba632c5.cjs.js');
31
31
 
32
32
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
33
33
 
@@ -195,4 +195,4 @@ async function buildBackend(options) {
195
195
 
196
196
  exports.buildBackend = buildBackend;
197
197
  exports.buildFrontend = buildFrontend;
198
- //# sourceMappingURL=buildBackend-2fdc1e48.cjs.js.map
198
+ //# sourceMappingURL=buildBackend-92288964.cjs.js.map
@@ -1,22 +1,27 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var createDistWorkspace = require('./createDistWorkspace-13b34403.cjs.js');
4
+ var createDistWorkspace = require('./createDistWorkspace-aba632c5.cjs.js');
5
5
  require('chalk');
6
6
  require('path');
7
7
  require('os');
8
8
  require('tar');
9
9
  require('lodash/partition');
10
- require('./index-4e26060c.cjs.js');
10
+ require('./index-f37153bc.cjs.js');
11
11
  require('commander');
12
12
  require('semver');
13
13
  require('@backstage/cli-common');
14
14
  require('@backstage/errors');
15
- require('./run-420a9288.cjs.js');
15
+ require('./run-2ece670f.cjs.js');
16
16
  require('child_process');
17
17
  require('util');
18
- require('./PackageGraph-35080f04.cjs.js');
18
+ require('./PackageGraph-27139b51.cjs.js');
19
19
  require('@manypkg/get-packages');
20
+ require('./Lockfile-938c566f.cjs.js');
21
+ require('@yarnpkg/parsers');
22
+ require('@yarnpkg/lockfile');
23
+ require('minimatch');
24
+ require('./yarn-6cd89e16.cjs.js');
20
25
  require('rollup');
21
26
  require('@rollup/plugin-commonjs');
22
27
  require('@rollup/plugin-node-resolve');
@@ -30,7 +35,7 @@ require('rollup-pluginutils');
30
35
  require('./svgrTemplate-550efce6.cjs.js');
31
36
  require('./parallel-a8f6219c.cjs.js');
32
37
  require('worker_threads');
33
- require('./packageRoles-4d56e8b9.cjs.js');
38
+ require('./packageRoles-0c615b3b.cjs.js');
34
39
  require('zod');
35
40
  require('npm-packlist');
36
41
 
@@ -48,4 +53,4 @@ var buildWorkspace = async (dir, packages) => {
48
53
  };
49
54
 
50
55
  exports["default"] = buildWorkspace;
51
- //# sourceMappingURL=buildWorkspace-c4e4771f.cjs.js.map
56
+ //# sourceMappingURL=buildWorkspace-90af4c50.cjs.js.map
@@ -7,15 +7,16 @@ var semver = require('semver');
7
7
  var minimatch = require('minimatch');
8
8
  var errors = require('@backstage/errors');
9
9
  var path = require('path');
10
- var run = require('./run-420a9288.cjs.js');
11
- var index = require('./index-4e26060c.cjs.js');
12
- var Lockfile = require('./Lockfile-6785964d.cjs.js');
13
- var packages = require('./packages-304263af.cjs.js');
14
- var lint = require('./lint-0f6dd002.cjs.js');
10
+ var run = require('./run-2ece670f.cjs.js');
11
+ var index = require('./index-f37153bc.cjs.js');
12
+ var Lockfile = require('./Lockfile-938c566f.cjs.js');
13
+ var packages = require('./packages-ba696901.cjs.js');
14
+ var lint = require('./lint-72ed986c.cjs.js');
15
15
  var cliCommon = require('@backstage/cli-common');
16
16
  var parallel = require('./parallel-a8f6219c.cjs.js');
17
17
  var releaseManifests = require('@backstage/release-manifests');
18
18
  require('global-agent/bootstrap');
19
+ var PackageGraph = require('./PackageGraph-27139b51.cjs.js');
19
20
  require('child_process');
20
21
  require('util');
21
22
  require('commander');
@@ -161,7 +162,7 @@ var bump = async (opts) => {
161
162
  lockfile.remove(name, range);
162
163
  }
163
164
  }
164
- await lockfile.save();
165
+ await lockfile.save(lockfilePath);
165
166
  }
166
167
  const breakingUpdates = /* @__PURE__ */ new Map();
167
168
  await parallel.runParallelWorkers({
@@ -246,7 +247,10 @@ var bump = async (opts) => {
246
247
  console.log();
247
248
  const dedupLockfile = await Lockfile.Lockfile.load(lockfilePath);
248
249
  const result = dedupLockfile.analyze({
249
- filter
250
+ filter,
251
+ localPackages: PackageGraph.PackageGraph.fromPackages(
252
+ await PackageGraph.PackageGraph.listTargetPackages()
253
+ )
250
254
  });
251
255
  if (result.newVersions.length > 0) {
252
256
  throw new Error("Duplicate versions present after package bump");
@@ -401,4 +405,4 @@ exports.bumpBackstageJsonVersion = bumpBackstageJsonVersion;
401
405
  exports.createStrictVersionFinder = createStrictVersionFinder;
402
406
  exports.createVersionFinder = createVersionFinder;
403
407
  exports["default"] = bump;
404
- //# sourceMappingURL=bump-43bc9dcd.cjs.js.map
408
+ //# sourceMappingURL=bump-60e77b71.cjs.js.map
@@ -4,13 +4,19 @@ var child_process = require('child_process');
4
4
  var fs = require('fs-extra');
5
5
  var path = require('path');
6
6
  var util = require('util');
7
- var PackageGraph = require('./PackageGraph-35080f04.cjs.js');
8
- var index = require('./index-4e26060c.cjs.js');
7
+ var PackageGraph = require('./PackageGraph-27139b51.cjs.js');
8
+ var index = require('./index-f37153bc.cjs.js');
9
9
  require('@manypkg/get-packages');
10
10
  require('@backstage/errors');
11
- require('commander');
12
- require('chalk');
11
+ require('./Lockfile-938c566f.cjs.js');
13
12
  require('semver');
13
+ require('@yarnpkg/parsers');
14
+ require('@yarnpkg/lockfile');
15
+ require('minimatch');
16
+ require('chalk');
17
+ require('./yarn-6cd89e16.cjs.js');
18
+ require('./run-2ece670f.cjs.js');
19
+ require('commander');
14
20
  require('@backstage/cli-common');
15
21
 
16
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -47,4 +53,4 @@ async function command() {
47
53
  }
48
54
 
49
55
  exports.command = command;
50
- //# sourceMappingURL=clean-d3df90dc.cjs.js.map
56
+ //# sourceMappingURL=clean-554e75b3.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var fs = require('fs-extra');
4
- var index = require('./index-4e26060c.cjs.js');
4
+ var index = require('./index-f37153bc.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('semver');
@@ -19,4 +19,4 @@ async function clean() {
19
19
  }
20
20
 
21
21
  exports["default"] = clean;
22
- //# sourceMappingURL=clean-8cd08be0.cjs.js.map
22
+ //# sourceMappingURL=clean-98730a79.cjs.js.map
@@ -2,9 +2,9 @@
2
2
 
3
3
  var configLoader = require('@backstage/config-loader');
4
4
  var config = require('@backstage/config');
5
- var index = require('./index-4e26060c.cjs.js');
5
+ var index = require('./index-f37153bc.cjs.js');
6
6
  var getPackages = require('@manypkg/get-packages');
7
- var PackageGraph = require('./PackageGraph-35080f04.cjs.js');
7
+ var PackageGraph = require('./PackageGraph-27139b51.cjs.js');
8
8
 
9
9
  function isValidUrl(url) {
10
10
  try {
@@ -82,4 +82,4 @@ async function loadCliConfig(options) {
82
82
  }
83
83
 
84
84
  exports.loadCliConfig = loadCliConfig;
85
- //# sourceMappingURL=config-fc8cc849.cjs.js.map
85
+ //# sourceMappingURL=config-9cbaba35.cjs.js.map
@@ -6,9 +6,9 @@ var path = require('path');
6
6
  var os = require('os');
7
7
  var tar = require('tar');
8
8
  var partition = require('lodash/partition');
9
- var index = require('./index-4e26060c.cjs.js');
10
- var run = require('./run-420a9288.cjs.js');
11
- var PackageGraph = require('./PackageGraph-35080f04.cjs.js');
9
+ var index = require('./index-f37153bc.cjs.js');
10
+ var run = require('./run-2ece670f.cjs.js');
11
+ var PackageGraph = require('./PackageGraph-27139b51.cjs.js');
12
12
  var rollup = require('rollup');
13
13
  var commonjs = require('@rollup/plugin-commonjs');
14
14
  var resolve = require('@rollup/plugin-node-resolve');
@@ -21,7 +21,7 @@ var yaml = require('@rollup/plugin-yaml');
21
21
  var rollupPluginutils = require('rollup-pluginutils');
22
22
  var svgrTemplate = require('./svgrTemplate-550efce6.cjs.js');
23
23
  var parallel = require('./parallel-a8f6219c.cjs.js');
24
- var packageRoles = require('./packageRoles-4d56e8b9.cjs.js');
24
+ var packageRoles = require('./packageRoles-0c615b3b.cjs.js');
25
25
  var npmPackList = require('npm-packlist');
26
26
 
27
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -736,4 +736,4 @@ exports.buildPackage = buildPackage;
736
736
  exports.buildPackages = buildPackages;
737
737
  exports.createDistWorkspace = createDistWorkspace;
738
738
  exports.getOutputsForRole = getOutputsForRole;
739
- //# sourceMappingURL=createDistWorkspace-13b34403.cjs.js.map
739
+ //# sourceMappingURL=createDistWorkspace-aba632c5.cjs.js.map
@@ -10,13 +10,13 @@ var camelCase = require('lodash/camelCase');
10
10
  var upperFirst = require('lodash/upperFirst');
11
11
  var os = require('os');
12
12
  var errors = require('@backstage/errors');
13
- var tasks = require('./tasks-5c60f1f6.cjs.js');
14
- var index = require('./index-4e26060c.cjs.js');
15
- var Lockfile = require('./Lockfile-6785964d.cjs.js');
13
+ var tasks = require('./tasks-78bc530a.cjs.js');
14
+ var index = require('./index-f37153bc.cjs.js');
15
+ var Lockfile = require('./Lockfile-938c566f.cjs.js');
16
16
  require('minimatch');
17
17
  require('@manypkg/get-packages');
18
18
  require('./yarn-6cd89e16.cjs.js');
19
- require('./run-420a9288.cjs.js');
19
+ require('./run-2ece670f.cjs.js');
20
20
  require('handlebars');
21
21
  require('ora');
22
22
  require('recursive-readdir');
@@ -275,4 +275,4 @@ exports.addPluginExtensionToApp = addPluginExtensionToApp;
275
275
  exports.capitalize = capitalize;
276
276
  exports["default"] = createPlugin;
277
277
  exports.movePlugin = movePlugin;
278
- //# sourceMappingURL=createPlugin-8f62909c.cjs.js.map
278
+ //# sourceMappingURL=createPlugin-7c210502.cjs.js.map