@backstage/cli 0.28.0-next.0 → 0.28.0-next.2
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 +48 -0
- package/config/jest.js +123 -69
- package/config/jestCacheResultProcessor.cjs +23 -0
- package/config/jestSwcTransform.js +4 -1
- package/dist/commands/build/buildBackend.cjs.js +65 -0
- package/dist/commands/build/buildFrontend.cjs.js +56 -0
- package/dist/commands/build/command.cjs.js +72 -0
- package/dist/commands/build/index.cjs.js +8 -0
- package/dist/commands/buildWorkspace.cjs.js +24 -0
- package/dist/commands/clean/clean.cjs.js +19 -0
- package/dist/{cjs/docs-CDE82fWG.cjs.js → commands/config/docs.cjs.js} +4 -12
- package/dist/{cjs/print-BX8-7Nzg.cjs.js → commands/config/print.cjs.js} +4 -12
- package/dist/{cjs/schema-Cabm6I6c.cjs.js → commands/config/schema.cjs.js} +4 -12
- package/dist/commands/config/validate.cjs.js +19 -0
- package/dist/{cjs/index-DVDDx3pk.cjs.js → commands/create-github-app/GithubCreateAppServer.cjs.js} +2 -110
- package/dist/commands/create-github-app/index.cjs.js +117 -0
- package/dist/commands/index.cjs.js +231 -0
- package/dist/{cjs/info-CB7ln5K_.cjs.js → commands/info.cjs.js} +13 -17
- package/dist/{cjs/lint-6_0f9f26.cjs.js → commands/lint.cjs.js} +10 -10
- package/dist/commands/migrate/packageExports.cjs.js +17 -0
- package/dist/{cjs/packageLintConfigs-BBvQehRd.cjs.js → commands/migrate/packageLintConfigs.cjs.js} +2 -10
- package/dist/{cjs/packageRole-CkpKfhJA.cjs.js → commands/migrate/packageRole.cjs.js} +5 -8
- package/dist/{cjs/packageScripts-DX6dilK6.cjs.js → commands/migrate/packageScripts.cjs.js} +1 -1
- package/dist/{cjs/reactRouterDeps-CR-hjviw.cjs.js → commands/migrate/reactRouterDeps.cjs.js} +1 -1
- package/dist/commands/new/new.cjs.js +101 -0
- package/dist/commands/pack.cjs.js +29 -0
- package/dist/commands/repo/build.cjs.js +113 -0
- package/dist/{cjs/clean-bdpRw-oZ.cjs.js → commands/repo/clean.cjs.js} +5 -10
- package/dist/{cjs/fix-BTjof5XT.cjs.js → commands/repo/fix.cjs.js} +8 -13
- package/dist/commands/repo/lint.cjs.js +193 -0
- package/dist/{cjs/list-deprecations-DFgQENam.cjs.js → commands/repo/list-deprecations.cjs.js} +7 -12
- package/dist/commands/repo/optionsParser.cjs.js +37 -0
- package/dist/commands/repo/test.cjs.js +274 -0
- package/dist/commands/start/command.cjs.js +48 -0
- package/dist/commands/start/index.cjs.js +8 -0
- package/dist/commands/start/startBackend.cjs.js +112 -0
- package/dist/commands/start/startFrontend.cjs.js +47 -0
- package/dist/{cjs/test-YJMOGqXG.cjs.js → commands/test.cjs.js} +6 -12
- package/dist/{cjs/bump-d9dS56p9.cjs.js → commands/versions/bump.cjs.js} +21 -190
- package/dist/commands/versions/migrate.cjs.js +112 -0
- package/dist/index.cjs.js +29 -7
- package/dist/lib/builder/config.cjs.js +199 -0
- package/dist/lib/builder/packager.cjs.js +131 -0
- package/dist/lib/builder/plugins.cjs.js +71 -0
- package/dist/lib/builder/types.cjs.js +11 -0
- package/dist/lib/bundler/LinkedPackageResolvePlugin.cjs.js +47 -0
- package/dist/lib/bundler/backend.cjs.js +36 -0
- package/dist/{cjs/buildBackend-DXvz7jvh.cjs.js → lib/bundler/bundle.cjs.js} +26 -113
- package/dist/lib/bundler/config.cjs.js +469 -0
- package/dist/lib/bundler/hasReactDomClient.cjs.js +13 -0
- package/dist/lib/bundler/moduleFederation.cjs.js +28 -0
- package/dist/lib/bundler/optimization.cjs.js +63 -0
- package/dist/lib/bundler/packageDetection.cjs.js +117 -0
- package/dist/lib/bundler/paths.cjs.js +60 -0
- package/dist/lib/bundler/server.cjs.js +246 -0
- package/dist/lib/bundler/transforms.cjs.js +171 -0
- package/dist/lib/codeowners/codeowners.cjs.js +92 -0
- package/dist/{cjs/config-nCB2LQK-.cjs.js → lib/config.cjs.js} +6 -6
- package/dist/{cjs/entryPoints-CoHH4lBA.cjs.js → lib/entryPoints.cjs.js} +4 -1
- package/dist/lib/errors.cjs.js +45 -0
- package/dist/lib/experimental/IpcServer.cjs.js +60 -0
- package/dist/lib/experimental/ServerDataStore.cjs.js +36 -0
- package/dist/lib/experimental/startBackendExperimental.cjs.js +128 -0
- package/dist/lib/new/FactoryRegistry.cjs.js +96 -0
- package/dist/lib/new/factories/backendModule.cjs.js +82 -0
- package/dist/lib/new/factories/backendPlugin.cjs.js +78 -0
- package/dist/lib/new/factories/common/prompts.cjs.js +57 -0
- package/dist/lib/new/factories/common/tasks.cjs.js +66 -0
- package/dist/lib/new/factories/common/util.cjs.js +16 -0
- package/dist/lib/new/factories/frontendPlugin.cjs.js +107 -0
- package/dist/lib/new/factories/index.cjs.js +24 -0
- package/dist/lib/new/factories/nodeLibraryPackage.cjs.js +57 -0
- package/dist/lib/new/factories/pluginCommon.cjs.js +58 -0
- package/dist/lib/new/factories/pluginNode.cjs.js +58 -0
- package/dist/lib/new/factories/pluginWeb.cjs.js +58 -0
- package/dist/lib/new/factories/scaffolderModule.cjs.js +90 -0
- package/dist/lib/new/factories/webLibraryPackage.cjs.js +57 -0
- package/dist/lib/new/types.cjs.js +8 -0
- package/dist/lib/packager/createDistWorkspace.cjs.js +219 -0
- package/dist/{cjs/productionPack-Dfl28j3c.cjs.js → lib/packager/productionPack.cjs.js} +8 -96
- package/dist/{cjs/parallel-BszNaKyc.cjs.js → lib/parallel.cjs.js} +2 -1
- package/dist/lib/paths.cjs.js +8 -0
- package/dist/{cjs/publishing-DQtsKTbc.cjs.js → lib/publishing.cjs.js} +1 -1
- package/dist/{cjs/role-e0emQj8q.cjs.js → lib/role.cjs.js} +3 -3
- package/dist/{cjs/run-HW3lfDbM.cjs.js → lib/run.cjs.js} +6 -5
- package/dist/{cjs/svgrTemplate-BTjBQ3by.cjs.js → lib/svgrTemplate.cjs.js} +1 -1
- package/dist/lib/tasks.cjs.js +188 -0
- package/dist/lib/typeDistProject.cjs.js +94 -0
- package/dist/lib/urls.cjs.js +13 -0
- package/dist/lib/version.cjs.js +86 -0
- package/dist/{cjs/yarn-6FNAgNBK.cjs.js → lib/versioning/Lockfile.cjs.js} +1 -31
- package/dist/lib/versioning/packages.cjs.js +75 -0
- package/dist/lib/yarn.cjs.js +34 -0
- package/dist/packages/backend-defaults/package.json.cjs.js +6 -0
- package/dist/packages/backend-plugin-api/package.json.cjs.js +6 -0
- package/dist/packages/backend-test-utils/package.json.cjs.js +6 -0
- package/dist/packages/cli/package.json.cjs.js +159 -0
- package/dist/packages/config/package.json.cjs.js +6 -0
- package/dist/packages/core-app-api/package.json.cjs.js +6 -0
- package/dist/packages/core-components/package.json.cjs.js +6 -0
- package/dist/packages/core-plugin-api/package.json.cjs.js +6 -0
- package/dist/packages/dev-utils/package.json.cjs.js +6 -0
- package/dist/packages/test-utils/package.json.cjs.js +6 -0
- package/dist/packages/theme/package.json.cjs.js +6 -0
- package/dist/plugins/auth-backend/package.json.cjs.js +6 -0
- package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +6 -0
- package/dist/plugins/scaffolder-node/package.json.cjs.js +6 -0
- package/package.json +23 -23
- package/dist/cjs/build-gNEKjjhr.cjs.js +0 -194
- package/dist/cjs/buildWorkspace-DLfI3EjD.cjs.js +0 -53
- package/dist/cjs/clean-Dpgqc3P2.cjs.js +0 -22
- package/dist/cjs/createDistWorkspace-DKzy-L-f.cjs.js +0 -576
- package/dist/cjs/index-7LxfekFu.cjs.js +0 -625
- package/dist/cjs/index-DsP5wbju.cjs.js +0 -131
- package/dist/cjs/index-v57xnvgT.cjs.js +0 -520
- package/dist/cjs/lint-DYO_SeK3.cjs.js +0 -91
- package/dist/cjs/moduleFederation-Dq0n1quT.cjs.js +0 -910
- package/dist/cjs/new-C0D_k25O.cjs.js +0 -1043
- package/dist/cjs/pack-D8AK7Uem.cjs.js +0 -34
- package/dist/cjs/packageExports-bg4mFuFZ.cjs.js +0 -27
- package/dist/cjs/test-5bQM0VRL.cjs.js +0 -126
- package/dist/cjs/validate-DKBlShmI.cjs.js +0 -28
- /package/templates/default-backend-module/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/default-backend-plugin/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/default-common-plugin-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/default-node-plugin-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/default-plugin/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/default-react-plugin-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/node-library-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/scaffolder-module/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
- /package/templates/web-library-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
3
5
|
var globalAgent = require('global-agent');
|
|
4
6
|
var fs = require('fs-extra');
|
|
5
7
|
var chalk = require('chalk');
|
|
@@ -9,16 +11,14 @@ var yaml = require('yaml');
|
|
|
9
11
|
var z = require('zod');
|
|
10
12
|
var errors = require('@backstage/errors');
|
|
11
13
|
var path = require('path');
|
|
12
|
-
var run = require('
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var getPackages = require('@manypkg/get-packages');
|
|
14
|
+
var run = require('../../lib/run.cjs.js');
|
|
15
|
+
var paths = require('../../lib/paths.cjs.js');
|
|
16
|
+
var Lockfile = require('../../lib/versioning/Lockfile.cjs.js');
|
|
17
|
+
var packages = require('../../lib/versioning/packages.cjs.js');
|
|
17
18
|
var cliCommon = require('@backstage/cli-common');
|
|
18
|
-
var parallel = require('
|
|
19
|
+
var parallel = require('../../lib/parallel.cjs.js');
|
|
19
20
|
var releaseManifests = require('@backstage/release-manifests');
|
|
20
|
-
var
|
|
21
|
-
var replace = require('replace-in-file');
|
|
21
|
+
var migrate = require('./migrate.cjs.js');
|
|
22
22
|
|
|
23
23
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
24
24
|
|
|
@@ -28,169 +28,6 @@ var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
|
|
|
28
28
|
var semver__default = /*#__PURE__*/_interopDefaultCompat(semver);
|
|
29
29
|
var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
|
|
30
30
|
var z__default = /*#__PURE__*/_interopDefaultCompat(z);
|
|
31
|
-
var replace__default = /*#__PURE__*/_interopDefaultCompat(replace);
|
|
32
|
-
|
|
33
|
-
const DEP_TYPES$1 = [
|
|
34
|
-
"dependencies",
|
|
35
|
-
"devDependencies",
|
|
36
|
-
"peerDependencies",
|
|
37
|
-
"optionalDependencies"
|
|
38
|
-
];
|
|
39
|
-
async function fetchPackageInfo(name) {
|
|
40
|
-
const yarnVersion = await yarn.detectYarnVersion();
|
|
41
|
-
const cmd = yarnVersion === "classic" ? ["info"] : ["npm", "info"];
|
|
42
|
-
try {
|
|
43
|
-
const { stdout: output } = await run.execFile(
|
|
44
|
-
"yarn",
|
|
45
|
-
[...cmd, "--json", name],
|
|
46
|
-
{ shell: true }
|
|
47
|
-
);
|
|
48
|
-
if (!output) {
|
|
49
|
-
throw new index.NotFoundError(
|
|
50
|
-
`No package information found for package ${name}`
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
if (yarnVersion === "berry") {
|
|
54
|
-
return JSON.parse(output);
|
|
55
|
-
}
|
|
56
|
-
const info = JSON.parse(output);
|
|
57
|
-
if (info.type !== "inspect") {
|
|
58
|
-
throw new Error(`Received unknown yarn info for ${name}, ${output}`);
|
|
59
|
-
}
|
|
60
|
-
return info.data;
|
|
61
|
-
} catch (error) {
|
|
62
|
-
if (yarnVersion === "classic") {
|
|
63
|
-
throw error;
|
|
64
|
-
}
|
|
65
|
-
if (error?.stdout.includes("Response Code: 404")) {
|
|
66
|
-
throw new index.NotFoundError(
|
|
67
|
-
`No package information found for package ${name}`
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
throw error;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
async function mapDependencies(targetDir, pattern) {
|
|
74
|
-
const { packages, root } = await getPackages.getPackages(targetDir);
|
|
75
|
-
packages.push(root);
|
|
76
|
-
const dependencyMap = /* @__PURE__ */ new Map();
|
|
77
|
-
for (const pkg of packages) {
|
|
78
|
-
const deps = DEP_TYPES$1.flatMap(
|
|
79
|
-
(t) => Object.entries(pkg.packageJson[t] ?? {})
|
|
80
|
-
);
|
|
81
|
-
for (const [name, range] of deps) {
|
|
82
|
-
if (minimatch.minimatch(name, pattern)) {
|
|
83
|
-
dependencyMap.set(
|
|
84
|
-
name,
|
|
85
|
-
(dependencyMap.get(name) ?? []).concat({
|
|
86
|
-
range,
|
|
87
|
-
name: pkg.packageJson.name,
|
|
88
|
-
location: pkg.dir
|
|
89
|
-
})
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return dependencyMap;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
var migrate = async (options) => {
|
|
98
|
-
const changed = await migrateMovedPackages({
|
|
99
|
-
pattern: options.pattern,
|
|
100
|
-
skipCodeChanges: options.skipCodeChanges
|
|
101
|
-
});
|
|
102
|
-
if (changed) {
|
|
103
|
-
await runYarnInstall();
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
async function migrateMovedPackages(options) {
|
|
107
|
-
console.log(
|
|
108
|
-
"Checking for moved packages to the @backstage-community namespace..."
|
|
109
|
-
);
|
|
110
|
-
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
111
|
-
let didAnythingChange = false;
|
|
112
|
-
for (const pkg of packages) {
|
|
113
|
-
const pkgName = pkg.packageJson.name;
|
|
114
|
-
let didPackageChange = false;
|
|
115
|
-
const movedPackages = /* @__PURE__ */ new Map();
|
|
116
|
-
for (const depType of [
|
|
117
|
-
"dependencies",
|
|
118
|
-
"devDependencies",
|
|
119
|
-
"peerDependencies"
|
|
120
|
-
]) {
|
|
121
|
-
const depsObj = pkg.packageJson[depType];
|
|
122
|
-
if (!depsObj) {
|
|
123
|
-
continue;
|
|
124
|
-
}
|
|
125
|
-
for (const [depName, depVersion] of Object.entries(depsObj)) {
|
|
126
|
-
if (options?.pattern && !minimatch.minimatch(depName, options.pattern)) {
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
let packageInfo;
|
|
130
|
-
try {
|
|
131
|
-
packageInfo = await fs.readJson(
|
|
132
|
-
require.resolve(`${depName}/package.json`, {
|
|
133
|
-
paths: [pkg.dir]
|
|
134
|
-
})
|
|
135
|
-
);
|
|
136
|
-
} catch (ex) {
|
|
137
|
-
console.warn(
|
|
138
|
-
chalk__default.default.yellow(
|
|
139
|
-
`Could not find package.json for ${depName}@${depVersion} in ${pkgName} (${depType})`
|
|
140
|
-
)
|
|
141
|
-
);
|
|
142
|
-
continue;
|
|
143
|
-
}
|
|
144
|
-
const movedPackageName = packageInfo.backstage?.moved;
|
|
145
|
-
if (movedPackageName) {
|
|
146
|
-
movedPackages.set(depName, movedPackageName);
|
|
147
|
-
console.log(
|
|
148
|
-
chalk__default.default.yellow(
|
|
149
|
-
`Found a moved package ${depName}@${depVersion} -> ${movedPackageName} in ${pkgName} (${depType})`
|
|
150
|
-
)
|
|
151
|
-
);
|
|
152
|
-
didPackageChange = true;
|
|
153
|
-
didAnythingChange = true;
|
|
154
|
-
depsObj[movedPackageName] = depsObj[depName];
|
|
155
|
-
delete depsObj[depName];
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
if (didPackageChange) {
|
|
160
|
-
await fs.writeJson(path.resolve(pkg.dir, "package.json"), pkg.packageJson, {
|
|
161
|
-
spaces: 2
|
|
162
|
-
});
|
|
163
|
-
if (!options?.skipCodeChanges) {
|
|
164
|
-
const files = await replace__default.default({
|
|
165
|
-
files: path.join(pkg.dir, "src", "**"),
|
|
166
|
-
allowEmptyPaths: true,
|
|
167
|
-
processor: (content) => {
|
|
168
|
-
return Array.from(movedPackages.entries()).reduce(
|
|
169
|
-
(newContent, [oldName, newName]) => {
|
|
170
|
-
return newContent.replace(new RegExp(`"${oldName}"`, "g"), `"${newName}"`).replace(new RegExp(`'${oldName}'`, "g"), `'${newName}'`).replace(new RegExp(`${oldName}/`, "g"), `${newName}/`);
|
|
171
|
-
},
|
|
172
|
-
content
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
if (files.length > 0) {
|
|
177
|
-
console.log(
|
|
178
|
-
chalk__default.default.green(
|
|
179
|
-
`Updated ${files.length} files in ${pkgName} to use the new package names`
|
|
180
|
-
)
|
|
181
|
-
);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return didAnythingChange;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
var migrate$1 = /*#__PURE__*/Object.freeze({
|
|
190
|
-
__proto__: null,
|
|
191
|
-
default: migrate,
|
|
192
|
-
migrateMovedPackages: migrateMovedPackages
|
|
193
|
-
});
|
|
194
31
|
|
|
195
32
|
if (shouldUseGlobalAgent()) {
|
|
196
33
|
globalAgent.bootstrap();
|
|
@@ -210,8 +47,8 @@ const DEP_TYPES = [
|
|
|
210
47
|
];
|
|
211
48
|
const DEFAULT_PATTERN_GLOB = "@backstage/*";
|
|
212
49
|
var bump = async (opts) => {
|
|
213
|
-
const lockfilePath =
|
|
214
|
-
const lockfile = await
|
|
50
|
+
const lockfilePath = paths.paths.resolveTargetRoot("yarn.lock");
|
|
51
|
+
const lockfile = await Lockfile.Lockfile.load(lockfilePath);
|
|
215
52
|
const hasYarnPlugin = await getHasYarnPlugin();
|
|
216
53
|
let pattern = opts.pattern;
|
|
217
54
|
if (!pattern) {
|
|
@@ -246,7 +83,7 @@ var bump = async (opts) => {
|
|
|
246
83
|
releaseManifest
|
|
247
84
|
});
|
|
248
85
|
}
|
|
249
|
-
const dependencyMap = await mapDependencies(
|
|
86
|
+
const dependencyMap = await packages.mapDependencies(paths.paths.targetDir, pattern);
|
|
250
87
|
const versionBumps = /* @__PURE__ */ new Map();
|
|
251
88
|
await parallel.runParallelWorkers({
|
|
252
89
|
parallelismFactor: 4,
|
|
@@ -339,7 +176,7 @@ var bump = async (opts) => {
|
|
|
339
176
|
}
|
|
340
177
|
if (!opts.skipMigrate) {
|
|
341
178
|
console.log();
|
|
342
|
-
const changed = await migrateMovedPackages({
|
|
179
|
+
const changed = await migrate.migrateMovedPackages({
|
|
343
180
|
pattern: opts.pattern
|
|
344
181
|
});
|
|
345
182
|
if (changed && !opts.skipInstall) {
|
|
@@ -407,7 +244,7 @@ function createStrictVersionFinder(options) {
|
|
|
407
244
|
function createVersionFinder(options) {
|
|
408
245
|
const {
|
|
409
246
|
releaseLine = "latest",
|
|
410
|
-
packageInfoFetcher = fetchPackageInfo,
|
|
247
|
+
packageInfoFetcher = packages.fetchPackageInfo,
|
|
411
248
|
releaseManifest
|
|
412
249
|
} = options;
|
|
413
250
|
const distTag = releaseLine === "main" ? "latest" : releaseLine;
|
|
@@ -458,7 +295,7 @@ function createVersionFinder(options) {
|
|
|
458
295
|
};
|
|
459
296
|
}
|
|
460
297
|
function getBackstageJsonPath() {
|
|
461
|
-
return
|
|
298
|
+
return paths.paths.resolveTargetRoot(cliCommon.BACKSTAGE_JSON);
|
|
462
299
|
}
|
|
463
300
|
async function getBackstageJson() {
|
|
464
301
|
const backstageJsonPath = getBackstageJsonPath();
|
|
@@ -520,7 +357,7 @@ const yarnRcSchema = z__default.default.object({
|
|
|
520
357
|
).optional()
|
|
521
358
|
});
|
|
522
359
|
async function getHasYarnPlugin() {
|
|
523
|
-
const yarnRcPath =
|
|
360
|
+
const yarnRcPath = paths.paths.resolveTargetRoot(".yarnrc.yml");
|
|
524
361
|
const yarnRcContent = await fs__default.default.readFile(yarnRcPath, "utf-8").catch((e) => {
|
|
525
362
|
if (e.code === "ENOENT") {
|
|
526
363
|
return "";
|
|
@@ -572,15 +409,9 @@ async function runYarnInstall() {
|
|
|
572
409
|
}
|
|
573
410
|
}
|
|
574
411
|
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
runYarnInstall: runYarnInstall
|
|
582
|
-
});
|
|
583
|
-
|
|
584
|
-
exports.bump = bump$1;
|
|
585
|
-
exports.migrate = migrate$1;
|
|
586
|
-
//# sourceMappingURL=bump-d9dS56p9.cjs.js.map
|
|
412
|
+
exports.bumpBackstageJsonVersion = bumpBackstageJsonVersion;
|
|
413
|
+
exports.createStrictVersionFinder = createStrictVersionFinder;
|
|
414
|
+
exports.createVersionFinder = createVersionFinder;
|
|
415
|
+
exports.default = bump;
|
|
416
|
+
exports.runYarnInstall = runYarnInstall;
|
|
417
|
+
//# sourceMappingURL=bump.cjs.js.map
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var cliNode = require('@backstage/cli-node');
|
|
6
|
+
var chalk = require('chalk');
|
|
7
|
+
var path = require('path');
|
|
8
|
+
var fs = require('fs-extra');
|
|
9
|
+
var minimatch = require('minimatch');
|
|
10
|
+
var bump = require('./bump.cjs.js');
|
|
11
|
+
var replace = require('replace-in-file');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
16
|
+
var replace__default = /*#__PURE__*/_interopDefaultCompat(replace);
|
|
17
|
+
|
|
18
|
+
var migrate = async (options) => {
|
|
19
|
+
const changed = await migrateMovedPackages({
|
|
20
|
+
pattern: options.pattern,
|
|
21
|
+
skipCodeChanges: options.skipCodeChanges
|
|
22
|
+
});
|
|
23
|
+
if (changed) {
|
|
24
|
+
await bump.runYarnInstall();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
async function migrateMovedPackages(options) {
|
|
28
|
+
console.log(
|
|
29
|
+
"Checking for moved packages to the @backstage-community namespace..."
|
|
30
|
+
);
|
|
31
|
+
const packages = await cliNode.PackageGraph.listTargetPackages();
|
|
32
|
+
let didAnythingChange = false;
|
|
33
|
+
for (const pkg of packages) {
|
|
34
|
+
const pkgName = pkg.packageJson.name;
|
|
35
|
+
let didPackageChange = false;
|
|
36
|
+
const movedPackages = /* @__PURE__ */ new Map();
|
|
37
|
+
for (const depType of [
|
|
38
|
+
"dependencies",
|
|
39
|
+
"devDependencies",
|
|
40
|
+
"peerDependencies"
|
|
41
|
+
]) {
|
|
42
|
+
const depsObj = pkg.packageJson[depType];
|
|
43
|
+
if (!depsObj) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
for (const [depName, depVersion] of Object.entries(depsObj)) {
|
|
47
|
+
if (options?.pattern && !minimatch.minimatch(depName, options.pattern)) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
let packageInfo;
|
|
51
|
+
try {
|
|
52
|
+
packageInfo = await fs.readJson(
|
|
53
|
+
require.resolve(`${depName}/package.json`, {
|
|
54
|
+
paths: [pkg.dir]
|
|
55
|
+
})
|
|
56
|
+
);
|
|
57
|
+
} catch (ex) {
|
|
58
|
+
console.warn(
|
|
59
|
+
chalk__default.default.yellow(
|
|
60
|
+
`Could not find package.json for ${depName}@${depVersion} in ${pkgName} (${depType})`
|
|
61
|
+
)
|
|
62
|
+
);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const movedPackageName = packageInfo.backstage?.moved;
|
|
66
|
+
if (movedPackageName) {
|
|
67
|
+
movedPackages.set(depName, movedPackageName);
|
|
68
|
+
console.log(
|
|
69
|
+
chalk__default.default.yellow(
|
|
70
|
+
`Found a moved package ${depName}@${depVersion} -> ${movedPackageName} in ${pkgName} (${depType})`
|
|
71
|
+
)
|
|
72
|
+
);
|
|
73
|
+
didPackageChange = true;
|
|
74
|
+
didAnythingChange = true;
|
|
75
|
+
depsObj[movedPackageName] = depsObj[depName];
|
|
76
|
+
delete depsObj[depName];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (didPackageChange) {
|
|
81
|
+
await fs.writeJson(path.resolve(pkg.dir, "package.json"), pkg.packageJson, {
|
|
82
|
+
spaces: 2
|
|
83
|
+
});
|
|
84
|
+
if (!options?.skipCodeChanges) {
|
|
85
|
+
const files = await replace__default.default({
|
|
86
|
+
files: path.join(pkg.dir, "src", "**"),
|
|
87
|
+
allowEmptyPaths: true,
|
|
88
|
+
processor: (content) => {
|
|
89
|
+
return Array.from(movedPackages.entries()).reduce(
|
|
90
|
+
(newContent, [oldName, newName]) => {
|
|
91
|
+
return newContent.replace(new RegExp(`"${oldName}"`, "g"), `"${newName}"`).replace(new RegExp(`'${oldName}'`, "g"), `'${newName}'`).replace(new RegExp(`${oldName}/`, "g"), `${newName}/`);
|
|
92
|
+
},
|
|
93
|
+
content
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
if (files.length > 0) {
|
|
98
|
+
console.log(
|
|
99
|
+
chalk__default.default.green(
|
|
100
|
+
`Updated ${files.length} files in ${pkgName} to use the new package names`
|
|
101
|
+
)
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return didAnythingChange;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
exports.default = migrate;
|
|
111
|
+
exports.migrateMovedPackages = migrateMovedPackages;
|
|
112
|
+
//# sourceMappingURL=migrate.cjs.js.map
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,11 +1,33 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
require('commander');
|
|
4
|
-
require('chalk');
|
|
5
|
-
require('./
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
8
|
-
require('@backstage/cli-common');
|
|
9
|
-
require('@backstage/errors');
|
|
3
|
+
var commander = require('commander');
|
|
4
|
+
var chalk = require('chalk');
|
|
5
|
+
var errors = require('./lib/errors.cjs.js');
|
|
6
|
+
var version = require('./lib/version.cjs.js');
|
|
7
|
+
var index = require('./commands/index.cjs.js');
|
|
10
8
|
|
|
9
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
10
|
+
|
|
11
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
12
|
+
|
|
13
|
+
const main = (argv) => {
|
|
14
|
+
commander.program.name("backstage-cli").version(version.version);
|
|
15
|
+
index.registerCommands(commander.program);
|
|
16
|
+
commander.program.on("command:*", () => {
|
|
17
|
+
console.log();
|
|
18
|
+
console.log(chalk__default.default.red(`Invalid command: ${commander.program.args.join(" ")}`));
|
|
19
|
+
console.log();
|
|
20
|
+
commander.program.outputHelp();
|
|
21
|
+
process.exit(1);
|
|
22
|
+
});
|
|
23
|
+
commander.program.parse(argv);
|
|
24
|
+
};
|
|
25
|
+
process.on("unhandledRejection", (rejection) => {
|
|
26
|
+
if (rejection instanceof Error) {
|
|
27
|
+
errors.exitWithError(rejection);
|
|
28
|
+
} else {
|
|
29
|
+
errors.exitWithError(new Error(`Unknown rejection: '${rejection}'`));
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
main(process.argv);
|
|
11
33
|
//# sourceMappingURL=index.cjs.js.map
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chalk = require('chalk');
|
|
4
|
+
var fs = require('fs-extra');
|
|
5
|
+
var path = require('path');
|
|
6
|
+
var commonjs = require('@rollup/plugin-commonjs');
|
|
7
|
+
var resolve = require('@rollup/plugin-node-resolve');
|
|
8
|
+
var postcss = require('rollup-plugin-postcss');
|
|
9
|
+
var esbuild = require('rollup-plugin-esbuild');
|
|
10
|
+
var svgr = require('@svgr/rollup');
|
|
11
|
+
var dts = require('rollup-plugin-dts');
|
|
12
|
+
var json = require('@rollup/plugin-json');
|
|
13
|
+
var yaml = require('@rollup/plugin-yaml');
|
|
14
|
+
var plugins = require('./plugins.cjs.js');
|
|
15
|
+
var types = require('./types.cjs.js');
|
|
16
|
+
var paths = require('../paths.cjs.js');
|
|
17
|
+
var svgrTemplate = require('../svgrTemplate.cjs.js');
|
|
18
|
+
var entryPoints = require('../entryPoints.cjs.js');
|
|
19
|
+
|
|
20
|
+
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
21
|
+
|
|
22
|
+
var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
|
|
23
|
+
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
|
|
24
|
+
var commonjs__default = /*#__PURE__*/_interopDefaultCompat(commonjs);
|
|
25
|
+
var resolve__default = /*#__PURE__*/_interopDefaultCompat(resolve);
|
|
26
|
+
var postcss__default = /*#__PURE__*/_interopDefaultCompat(postcss);
|
|
27
|
+
var esbuild__default = /*#__PURE__*/_interopDefaultCompat(esbuild);
|
|
28
|
+
var svgr__default = /*#__PURE__*/_interopDefaultCompat(svgr);
|
|
29
|
+
var dts__default = /*#__PURE__*/_interopDefaultCompat(dts);
|
|
30
|
+
var json__default = /*#__PURE__*/_interopDefaultCompat(json);
|
|
31
|
+
var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
|
|
32
|
+
|
|
33
|
+
const SCRIPT_EXTS = [".js", ".jsx", ".ts", ".tsx"];
|
|
34
|
+
function isFileImport(source) {
|
|
35
|
+
if (source.startsWith(".")) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
if (source.startsWith("/")) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
if (source.match(/[a-z]:/i)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
function buildInternalImportPattern(options) {
|
|
47
|
+
const inlinedPackages = options.workspacePackages.filter(
|
|
48
|
+
(pkg) => pkg.packageJson.backstage?.inline
|
|
49
|
+
);
|
|
50
|
+
for (const { packageJson } of inlinedPackages) {
|
|
51
|
+
if (!packageJson.private) {
|
|
52
|
+
throw new Error(
|
|
53
|
+
`Inlined package ${packageJson.name} must be marked as private`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const names = inlinedPackages.map((pkg) => pkg.packageJson.name);
|
|
58
|
+
return new RegExp(`^(?:${names.join("|")})(?:$|/)`);
|
|
59
|
+
}
|
|
60
|
+
async function makeRollupConfigs(options) {
|
|
61
|
+
const configs = new Array();
|
|
62
|
+
const targetDir = options.targetDir ?? paths.paths.targetDir;
|
|
63
|
+
let targetPkg = options.packageJson;
|
|
64
|
+
if (!targetPkg) {
|
|
65
|
+
const packagePath = path.resolve(targetDir, "package.json");
|
|
66
|
+
targetPkg = await fs__default.default.readJson(packagePath);
|
|
67
|
+
}
|
|
68
|
+
const onwarn = ({ code, message }) => {
|
|
69
|
+
if (code === "EMPTY_BUNDLE") {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (options.logPrefix) {
|
|
73
|
+
console.log(options.logPrefix + message);
|
|
74
|
+
} else {
|
|
75
|
+
console.log(message);
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const distDir = path.resolve(targetDir, "dist");
|
|
79
|
+
const entryPoints$1 = entryPoints.readEntryPoints(targetPkg);
|
|
80
|
+
const scriptEntryPoints = entryPoints$1.filter(
|
|
81
|
+
(e) => SCRIPT_EXTS.includes(e.ext)
|
|
82
|
+
);
|
|
83
|
+
const internalImportPattern = buildInternalImportPattern(options);
|
|
84
|
+
const external = (source, importer, isResolved) => Boolean(
|
|
85
|
+
importer && !isResolved && !internalImportPattern.test(source) && !isFileImport(source)
|
|
86
|
+
);
|
|
87
|
+
if (options.outputs.has(types.Output.cjs) || options.outputs.has(types.Output.esm)) {
|
|
88
|
+
const output = new Array();
|
|
89
|
+
const mainFields = ["module", "main"];
|
|
90
|
+
if (options.outputs.has(types.Output.cjs)) {
|
|
91
|
+
output.push({
|
|
92
|
+
dir: distDir,
|
|
93
|
+
entryFileNames: `[name].cjs.js`,
|
|
94
|
+
chunkFileNames: `cjs/[name]-[hash].cjs.js`,
|
|
95
|
+
format: "commonjs",
|
|
96
|
+
interop: "compat",
|
|
97
|
+
sourcemap: true,
|
|
98
|
+
preserveModules: true,
|
|
99
|
+
preserveModulesRoot: `${targetDir}/src`,
|
|
100
|
+
exports: "named"
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (options.outputs.has(types.Output.esm)) {
|
|
104
|
+
output.push({
|
|
105
|
+
dir: distDir,
|
|
106
|
+
entryFileNames: `[name].esm.js`,
|
|
107
|
+
chunkFileNames: `esm/[name]-[hash].esm.js`,
|
|
108
|
+
format: "module",
|
|
109
|
+
sourcemap: true,
|
|
110
|
+
preserveModules: true,
|
|
111
|
+
preserveModulesRoot: `${targetDir}/src`
|
|
112
|
+
});
|
|
113
|
+
mainFields.unshift("browser");
|
|
114
|
+
}
|
|
115
|
+
configs.push({
|
|
116
|
+
input: Object.fromEntries(
|
|
117
|
+
scriptEntryPoints.map((e) => [e.name, path.resolve(targetDir, e.path)])
|
|
118
|
+
),
|
|
119
|
+
output,
|
|
120
|
+
onwarn,
|
|
121
|
+
makeAbsoluteExternalsRelative: false,
|
|
122
|
+
preserveEntrySignatures: "strict",
|
|
123
|
+
// All module imports are always marked as external
|
|
124
|
+
external,
|
|
125
|
+
plugins: [
|
|
126
|
+
resolve__default.default({ mainFields }),
|
|
127
|
+
commonjs__default.default({
|
|
128
|
+
include: /node_modules/,
|
|
129
|
+
exclude: [/\/[^/]+\.(?:stories|test)\.[^/]+$/]
|
|
130
|
+
}),
|
|
131
|
+
postcss__default.default(),
|
|
132
|
+
plugins.forwardFileImports({
|
|
133
|
+
exclude: /\.icon\.svg$/,
|
|
134
|
+
include: [
|
|
135
|
+
/\.svg$/,
|
|
136
|
+
/\.png$/,
|
|
137
|
+
/\.gif$/,
|
|
138
|
+
/\.jpg$/,
|
|
139
|
+
/\.jpeg$/,
|
|
140
|
+
/\.eot$/,
|
|
141
|
+
/\.woff$/,
|
|
142
|
+
/\.woff2$/,
|
|
143
|
+
/\.ttf$/,
|
|
144
|
+
/\.md$/
|
|
145
|
+
]
|
|
146
|
+
}),
|
|
147
|
+
json__default.default(),
|
|
148
|
+
yaml__default.default(),
|
|
149
|
+
svgr__default.default({
|
|
150
|
+
include: /\.icon\.svg$/,
|
|
151
|
+
template: svgrTemplate.svgrTemplate
|
|
152
|
+
}),
|
|
153
|
+
esbuild__default.default({
|
|
154
|
+
target: "ES2022",
|
|
155
|
+
minify: options.minify
|
|
156
|
+
})
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
if (options.outputs.has(types.Output.types)) {
|
|
161
|
+
const input = Object.fromEntries(
|
|
162
|
+
scriptEntryPoints.map((e) => [
|
|
163
|
+
e.name,
|
|
164
|
+
paths.paths.resolveTargetRoot(
|
|
165
|
+
"dist-types",
|
|
166
|
+
path.relative(paths.paths.targetRoot, targetDir),
|
|
167
|
+
e.path.replace(/\.(?:ts|tsx)$/, ".d.ts")
|
|
168
|
+
)
|
|
169
|
+
])
|
|
170
|
+
);
|
|
171
|
+
for (const path$1 of Object.values(input)) {
|
|
172
|
+
const declarationsExist = await fs__default.default.pathExists(path$1);
|
|
173
|
+
if (!declarationsExist) {
|
|
174
|
+
const declarationPath = path.relative(targetDir, path$1);
|
|
175
|
+
throw new Error(
|
|
176
|
+
`No declaration files found at ${declarationPath}, be sure to run ${chalk__default.default.bgRed.white(
|
|
177
|
+
"yarn tsc"
|
|
178
|
+
)} to generate .d.ts files before packaging`
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
configs.push({
|
|
183
|
+
input,
|
|
184
|
+
output: {
|
|
185
|
+
dir: distDir,
|
|
186
|
+
entryFileNames: `[name].d.ts`,
|
|
187
|
+
chunkFileNames: `types/[name]-[hash].d.ts`,
|
|
188
|
+
format: "es"
|
|
189
|
+
},
|
|
190
|
+
external: (source, importer, isResolved) => /\.css|scss|sass|svg|eot|woff|woff2|ttf$/.test(source) || external(source, importer, isResolved),
|
|
191
|
+
onwarn,
|
|
192
|
+
plugins: [dts__default.default({ respectExternal: true })]
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return configs;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
exports.makeRollupConfigs = makeRollupConfigs;
|
|
199
|
+
//# sourceMappingURL=config.cjs.js.map
|