@backstage/cli 0.22.0-next.4 → 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.
- package/CHANGELOG.md +51 -0
- package/dist/cjs/{Lockfile-6785964d.cjs.js → Lockfile-938c566f.cjs.js} +103 -39
- package/dist/cjs/{PackageGraph-d4c67930.cjs.js → PackageGraph-27139b51.cjs.js} +75 -2
- package/dist/cjs/{build-efbe1772.cjs.js → build-f35ba9d4.cjs.js} +17 -11
- package/dist/cjs/{buildBackend-90e626c1.cjs.js → buildBackend-92288964.cjs.js} +6 -6
- package/dist/cjs/{buildWorkspace-049f7fce.cjs.js → buildWorkspace-90af4c50.cjs.js} +11 -6
- package/dist/cjs/{bump-48e145c6.cjs.js → bump-60e77b71.cjs.js} +18 -9
- package/dist/cjs/{clean-9bb1954c.cjs.js → clean-554e75b3.cjs.js} +11 -5
- package/dist/cjs/{clean-40990127.cjs.js → clean-98730a79.cjs.js} +2 -2
- package/dist/cjs/{config-99f059ba.cjs.js → config-9cbaba35.cjs.js} +3 -3
- package/dist/cjs/{createDistWorkspace-10410f74.cjs.js → createDistWorkspace-aba632c5.cjs.js} +5 -5
- package/dist/cjs/{createPlugin-4b43ad5f.cjs.js → createPlugin-7c210502.cjs.js} +5 -5
- package/dist/cjs/{diff-4ec2d8ef.cjs.js → diff-4f99d904.cjs.js} +2 -2
- package/dist/cjs/{docs-c50cd458.cjs.js → docs-17d299dc.cjs.js} +10 -4
- package/dist/cjs/{fix-56559632.cjs.js → fix-7d71aac2.cjs.js} +9 -3
- package/dist/cjs/{index-e8a8c257.cjs.js → index-173db28b.cjs.js} +15 -10
- package/dist/cjs/{index-d1bee1f1.cjs.js → index-a9c742dd.cjs.js} +14 -13
- package/dist/cjs/{index-a0b21e65.cjs.js → index-f37153bc.cjs.js} +43 -43
- package/dist/cjs/{index-c8276bf4.cjs.js → index-ff90d0b7.cjs.js} +3 -3
- package/dist/cjs/{info-a7caf225.cjs.js → info-3d85d4eb.cjs.js} +4 -4
- package/dist/cjs/{install-7a7a3e53.cjs.js → install-f9de4688.cjs.js} +4 -4
- package/dist/cjs/{lint-c52d6cb4.cjs.js → lint-524d2657.cjs.js} +2 -2
- package/dist/cjs/{lint-7871c545.cjs.js → lint-72ed986c.cjs.js} +13 -7
- package/dist/cjs/{lint-da5f8c60.cjs.js → lint-90c3b7a2.cjs.js} +15 -6
- package/dist/cjs/{list-deprecations-0a896a9f.cjs.js → list-deprecations-3f44175a.cjs.js} +9 -3
- package/dist/cjs/{new-9d4c99dd.cjs.js → new-812b42ff.cjs.js} +5 -5
- package/dist/cjs/{pack-84a5ba86.cjs.js → pack-7bc68e27.cjs.js} +2 -2
- package/dist/cjs/{packageLintConfigs-60db4c07.cjs.js → packageLintConfigs-ebf303c2.cjs.js} +9 -4
- package/dist/cjs/{packageRole-821a1d7f.cjs.js → packageRole-f29a3482.cjs.js} +3 -3
- package/dist/cjs/{packageRoles-be35985d.cjs.js → packageRoles-0c615b3b.cjs.js} +2 -2
- package/dist/cjs/{packageScripts-18d40047.cjs.js → packageScripts-042a9698.cjs.js} +10 -4
- package/dist/cjs/{packages-447d0e04.cjs.js → packages-ba696901.cjs.js} +3 -3
- package/dist/cjs/{paths-968963da.cjs.js → paths-517ec1e5.cjs.js} +3 -3
- package/dist/cjs/{print-219b2654.cjs.js → print-24588f54.cjs.js} +10 -4
- package/dist/cjs/{reactRouterDeps-c15e1980.cjs.js → reactRouterDeps-4f6b592f.cjs.js} +10 -4
- package/dist/cjs/{run-14c728f1.cjs.js → run-2ece670f.cjs.js} +2 -2
- package/dist/cjs/{schema-26c033dd.cjs.js → schema-9ac4b8ed.cjs.js} +10 -4
- package/dist/cjs/{tasks-379fe7f5.cjs.js → tasks-78bc530a.cjs.js} +2 -2
- package/dist/cjs/{test-830686ec.cjs.js → test-c2d0ed2f.cjs.js} +13 -7
- package/dist/cjs/{test-fb2d4d19.cjs.js → test-f35bf2af.cjs.js} +3 -3
- package/dist/cjs/{validate-34e8b5a0.cjs.js → validate-0f4fd4fc.cjs.js} +10 -4
- package/dist/index.cjs.js +1 -1
- package/package.json +14 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,56 @@
|
|
|
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
|
+
|
|
19
|
+
## 0.22.0
|
|
20
|
+
|
|
21
|
+
### Minor Changes
|
|
22
|
+
|
|
23
|
+
- 736f893f72: The Jest configuration that was previously enabled with `BACKSTAGE_NEXT_TESTS` is now enabled by default. To revert to the old configuration you can now instead set `BACKSTAGE_OLD_TESTS`.
|
|
24
|
+
|
|
25
|
+
This new configuration uses the `babel` coverage provider rather than `v8`. It used to be that `v8` worked better when using Sucrase for transpilation, but now that we have switched to SWC, `babel` seems to work better. In addition, the new configuration also enables source maps by default, as they no longer have a negative impact on code coverage accuracy, and it also enables a modified Jest runtime with additional caching of script objects.
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- 91d050c140: changed tests created by create-plugin to follow eslint-rules best practices particularly testing-library/prefer-screen-queries and testing-library/render-result-naming-convention
|
|
30
|
+
- 43b2b9c791: Removed the unused dependency on `@sucrase/jest-plugin`.
|
|
31
|
+
- dd721148b5: Updated Jest coverage configuration to only apply either in the root project or package configuration, depending on whether repo or package tests are run.
|
|
32
|
+
- 5850ef9b84: Fix webpack dev server issue where it wasn't serving `index.html` from correct endpoint on subsequent requests.
|
|
33
|
+
- b05dcd5530: Move the `zod` dependency to a version that does not collide with other libraries
|
|
34
|
+
- 459a3457e1: Bump `msw` version in default plugin/app templates
|
|
35
|
+
- c27eabef6b: Adds new web-library package option when generating a new plugin
|
|
36
|
+
- 8fffe42708: JSX and React Fast Refresh transforms are no longer enabled when bundling backend code.
|
|
37
|
+
- 309f2daca4: Updated dependency `esbuild` to `^0.16.0`.
|
|
38
|
+
- ee14bab716: Updated dependency `minimatch` to `5.1.1` and switch version range to `^`.
|
|
39
|
+
- 3280711113: Updated dependency `msw` to `^0.49.0`.
|
|
40
|
+
- ed0cf59c59: Updated dependency `@rollup/plugin-commonjs` to `^23.0.0`.
|
|
41
|
+
- 16b7c2fccd: Updated dependency `@rollup/plugin-yaml` to `^4.0.0`.
|
|
42
|
+
- 086c0bbb45: Updated dependency `@rollup/plugin-json` to `^5.0.0`.
|
|
43
|
+
- 8015ff1258: Tweaked wording to use inclusive terminology
|
|
44
|
+
- d9d9a7a134: Removed all copyright notices from package templates.
|
|
45
|
+
- 8e0358e18d: Added `--skip-install` parameter to `backstage-cli versions:bump`
|
|
46
|
+
- Updated dependencies
|
|
47
|
+
- @backstage/errors@1.1.4
|
|
48
|
+
- @backstage/config-loader@1.1.7
|
|
49
|
+
- @backstage/release-manifests@0.0.8
|
|
50
|
+
- @backstage/types@1.0.2
|
|
51
|
+
- @backstage/cli-common@0.1.11
|
|
52
|
+
- @backstage/config@1.0.5
|
|
53
|
+
|
|
3
54
|
## 0.22.0-next.4
|
|
4
55
|
|
|
5
56
|
### 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(
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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(
|
|
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
|
|
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(
|
|
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))).
|
|
116
|
-
(
|
|
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(
|
|
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
|
-
|
|
210
|
-
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
6
|
-
var PackageGraph = require('./PackageGraph-
|
|
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-
|
|
9
|
-
var packageRoles = require('./packageRoles-
|
|
10
|
-
var buildBackend = require('./buildBackend-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
17
|
-
require('./run-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
15
|
+
require('./run-2ece670f.cjs.js');
|
|
16
16
|
require('child_process');
|
|
17
17
|
require('util');
|
|
18
|
-
require('./PackageGraph-
|
|
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-
|
|
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-
|
|
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-
|
|
11
|
-
var index = require('./index-
|
|
12
|
-
var Lockfile = require('./Lockfile-
|
|
13
|
-
var packages = require('./packages-
|
|
14
|
-
var lint = require('./lint-
|
|
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({
|
|
@@ -205,7 +206,12 @@ var bump = async (opts) => {
|
|
|
205
206
|
)
|
|
206
207
|
);
|
|
207
208
|
}
|
|
208
|
-
|
|
209
|
+
if (!opts.skipInstall) {
|
|
210
|
+
await runYarnInstall();
|
|
211
|
+
} else {
|
|
212
|
+
console.log();
|
|
213
|
+
console.log(chalk__default["default"].yellow(`Skipping yarn install`));
|
|
214
|
+
}
|
|
209
215
|
if (breakingUpdates.size > 0) {
|
|
210
216
|
console.log();
|
|
211
217
|
console.log(
|
|
@@ -241,7 +247,10 @@ var bump = async (opts) => {
|
|
|
241
247
|
console.log();
|
|
242
248
|
const dedupLockfile = await Lockfile.Lockfile.load(lockfilePath);
|
|
243
249
|
const result = dedupLockfile.analyze({
|
|
244
|
-
filter
|
|
250
|
+
filter,
|
|
251
|
+
localPackages: PackageGraph.PackageGraph.fromPackages(
|
|
252
|
+
await PackageGraph.PackageGraph.listTargetPackages()
|
|
253
|
+
)
|
|
245
254
|
});
|
|
246
255
|
if (result.newVersions.length > 0) {
|
|
247
256
|
throw new Error("Duplicate versions present after package bump");
|
|
@@ -396,4 +405,4 @@ exports.bumpBackstageJsonVersion = bumpBackstageJsonVersion;
|
|
|
396
405
|
exports.createStrictVersionFinder = createStrictVersionFinder;
|
|
397
406
|
exports.createVersionFinder = createVersionFinder;
|
|
398
407
|
exports["default"] = bump;
|
|
399
|
-
//# sourceMappingURL=bump-
|
|
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-
|
|
8
|
-
var index = require('./index-
|
|
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('
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
5
|
+
var index = require('./index-f37153bc.cjs.js');
|
|
6
6
|
var getPackages = require('@manypkg/get-packages');
|
|
7
|
-
var PackageGraph = require('./PackageGraph-
|
|
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-
|
|
85
|
+
//# sourceMappingURL=config-9cbaba35.cjs.js.map
|