@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.
Files changed (131) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/config/jest.js +123 -69
  3. package/config/jestCacheResultProcessor.cjs +23 -0
  4. package/config/jestSwcTransform.js +4 -1
  5. package/dist/commands/build/buildBackend.cjs.js +65 -0
  6. package/dist/commands/build/buildFrontend.cjs.js +56 -0
  7. package/dist/commands/build/command.cjs.js +72 -0
  8. package/dist/commands/build/index.cjs.js +8 -0
  9. package/dist/commands/buildWorkspace.cjs.js +24 -0
  10. package/dist/commands/clean/clean.cjs.js +19 -0
  11. package/dist/{cjs/docs-CDE82fWG.cjs.js → commands/config/docs.cjs.js} +4 -12
  12. package/dist/{cjs/print-BX8-7Nzg.cjs.js → commands/config/print.cjs.js} +4 -12
  13. package/dist/{cjs/schema-Cabm6I6c.cjs.js → commands/config/schema.cjs.js} +4 -12
  14. package/dist/commands/config/validate.cjs.js +19 -0
  15. package/dist/{cjs/index-DVDDx3pk.cjs.js → commands/create-github-app/GithubCreateAppServer.cjs.js} +2 -110
  16. package/dist/commands/create-github-app/index.cjs.js +117 -0
  17. package/dist/commands/index.cjs.js +231 -0
  18. package/dist/{cjs/info-CB7ln5K_.cjs.js → commands/info.cjs.js} +13 -17
  19. package/dist/{cjs/lint-6_0f9f26.cjs.js → commands/lint.cjs.js} +10 -10
  20. package/dist/commands/migrate/packageExports.cjs.js +17 -0
  21. package/dist/{cjs/packageLintConfigs-BBvQehRd.cjs.js → commands/migrate/packageLintConfigs.cjs.js} +2 -10
  22. package/dist/{cjs/packageRole-CkpKfhJA.cjs.js → commands/migrate/packageRole.cjs.js} +5 -8
  23. package/dist/{cjs/packageScripts-DX6dilK6.cjs.js → commands/migrate/packageScripts.cjs.js} +1 -1
  24. package/dist/{cjs/reactRouterDeps-CR-hjviw.cjs.js → commands/migrate/reactRouterDeps.cjs.js} +1 -1
  25. package/dist/commands/new/new.cjs.js +101 -0
  26. package/dist/commands/pack.cjs.js +29 -0
  27. package/dist/commands/repo/build.cjs.js +113 -0
  28. package/dist/{cjs/clean-bdpRw-oZ.cjs.js → commands/repo/clean.cjs.js} +5 -10
  29. package/dist/{cjs/fix-BTjof5XT.cjs.js → commands/repo/fix.cjs.js} +8 -13
  30. package/dist/commands/repo/lint.cjs.js +193 -0
  31. package/dist/{cjs/list-deprecations-DFgQENam.cjs.js → commands/repo/list-deprecations.cjs.js} +7 -12
  32. package/dist/commands/repo/optionsParser.cjs.js +37 -0
  33. package/dist/commands/repo/test.cjs.js +274 -0
  34. package/dist/commands/start/command.cjs.js +48 -0
  35. package/dist/commands/start/index.cjs.js +8 -0
  36. package/dist/commands/start/startBackend.cjs.js +112 -0
  37. package/dist/commands/start/startFrontend.cjs.js +47 -0
  38. package/dist/{cjs/test-YJMOGqXG.cjs.js → commands/test.cjs.js} +6 -12
  39. package/dist/{cjs/bump-d9dS56p9.cjs.js → commands/versions/bump.cjs.js} +21 -190
  40. package/dist/commands/versions/migrate.cjs.js +112 -0
  41. package/dist/index.cjs.js +29 -7
  42. package/dist/lib/builder/config.cjs.js +199 -0
  43. package/dist/lib/builder/packager.cjs.js +131 -0
  44. package/dist/lib/builder/plugins.cjs.js +71 -0
  45. package/dist/lib/builder/types.cjs.js +11 -0
  46. package/dist/lib/bundler/LinkedPackageResolvePlugin.cjs.js +47 -0
  47. package/dist/lib/bundler/backend.cjs.js +36 -0
  48. package/dist/{cjs/buildBackend-DXvz7jvh.cjs.js → lib/bundler/bundle.cjs.js} +26 -113
  49. package/dist/lib/bundler/config.cjs.js +469 -0
  50. package/dist/lib/bundler/hasReactDomClient.cjs.js +13 -0
  51. package/dist/lib/bundler/moduleFederation.cjs.js +28 -0
  52. package/dist/lib/bundler/optimization.cjs.js +63 -0
  53. package/dist/lib/bundler/packageDetection.cjs.js +117 -0
  54. package/dist/lib/bundler/paths.cjs.js +60 -0
  55. package/dist/lib/bundler/server.cjs.js +246 -0
  56. package/dist/lib/bundler/transforms.cjs.js +171 -0
  57. package/dist/lib/codeowners/codeowners.cjs.js +92 -0
  58. package/dist/{cjs/config-nCB2LQK-.cjs.js → lib/config.cjs.js} +6 -6
  59. package/dist/{cjs/entryPoints-CoHH4lBA.cjs.js → lib/entryPoints.cjs.js} +4 -1
  60. package/dist/lib/errors.cjs.js +45 -0
  61. package/dist/lib/experimental/IpcServer.cjs.js +60 -0
  62. package/dist/lib/experimental/ServerDataStore.cjs.js +36 -0
  63. package/dist/lib/experimental/startBackendExperimental.cjs.js +128 -0
  64. package/dist/lib/new/FactoryRegistry.cjs.js +96 -0
  65. package/dist/lib/new/factories/backendModule.cjs.js +82 -0
  66. package/dist/lib/new/factories/backendPlugin.cjs.js +78 -0
  67. package/dist/lib/new/factories/common/prompts.cjs.js +57 -0
  68. package/dist/lib/new/factories/common/tasks.cjs.js +66 -0
  69. package/dist/lib/new/factories/common/util.cjs.js +16 -0
  70. package/dist/lib/new/factories/frontendPlugin.cjs.js +107 -0
  71. package/dist/lib/new/factories/index.cjs.js +24 -0
  72. package/dist/lib/new/factories/nodeLibraryPackage.cjs.js +57 -0
  73. package/dist/lib/new/factories/pluginCommon.cjs.js +58 -0
  74. package/dist/lib/new/factories/pluginNode.cjs.js +58 -0
  75. package/dist/lib/new/factories/pluginWeb.cjs.js +58 -0
  76. package/dist/lib/new/factories/scaffolderModule.cjs.js +90 -0
  77. package/dist/lib/new/factories/webLibraryPackage.cjs.js +57 -0
  78. package/dist/lib/new/types.cjs.js +8 -0
  79. package/dist/lib/packager/createDistWorkspace.cjs.js +219 -0
  80. package/dist/{cjs/productionPack-Dfl28j3c.cjs.js → lib/packager/productionPack.cjs.js} +8 -96
  81. package/dist/{cjs/parallel-BszNaKyc.cjs.js → lib/parallel.cjs.js} +2 -1
  82. package/dist/lib/paths.cjs.js +8 -0
  83. package/dist/{cjs/publishing-DQtsKTbc.cjs.js → lib/publishing.cjs.js} +1 -1
  84. package/dist/{cjs/role-e0emQj8q.cjs.js → lib/role.cjs.js} +3 -3
  85. package/dist/{cjs/run-HW3lfDbM.cjs.js → lib/run.cjs.js} +6 -5
  86. package/dist/{cjs/svgrTemplate-BTjBQ3by.cjs.js → lib/svgrTemplate.cjs.js} +1 -1
  87. package/dist/lib/tasks.cjs.js +188 -0
  88. package/dist/lib/typeDistProject.cjs.js +94 -0
  89. package/dist/lib/urls.cjs.js +13 -0
  90. package/dist/lib/version.cjs.js +86 -0
  91. package/dist/{cjs/yarn-6FNAgNBK.cjs.js → lib/versioning/Lockfile.cjs.js} +1 -31
  92. package/dist/lib/versioning/packages.cjs.js +75 -0
  93. package/dist/lib/yarn.cjs.js +34 -0
  94. package/dist/packages/backend-defaults/package.json.cjs.js +6 -0
  95. package/dist/packages/backend-plugin-api/package.json.cjs.js +6 -0
  96. package/dist/packages/backend-test-utils/package.json.cjs.js +6 -0
  97. package/dist/packages/cli/package.json.cjs.js +159 -0
  98. package/dist/packages/config/package.json.cjs.js +6 -0
  99. package/dist/packages/core-app-api/package.json.cjs.js +6 -0
  100. package/dist/packages/core-components/package.json.cjs.js +6 -0
  101. package/dist/packages/core-plugin-api/package.json.cjs.js +6 -0
  102. package/dist/packages/dev-utils/package.json.cjs.js +6 -0
  103. package/dist/packages/test-utils/package.json.cjs.js +6 -0
  104. package/dist/packages/theme/package.json.cjs.js +6 -0
  105. package/dist/plugins/auth-backend/package.json.cjs.js +6 -0
  106. package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +6 -0
  107. package/dist/plugins/scaffolder-node/package.json.cjs.js +6 -0
  108. package/package.json +23 -23
  109. package/dist/cjs/build-gNEKjjhr.cjs.js +0 -194
  110. package/dist/cjs/buildWorkspace-DLfI3EjD.cjs.js +0 -53
  111. package/dist/cjs/clean-Dpgqc3P2.cjs.js +0 -22
  112. package/dist/cjs/createDistWorkspace-DKzy-L-f.cjs.js +0 -576
  113. package/dist/cjs/index-7LxfekFu.cjs.js +0 -625
  114. package/dist/cjs/index-DsP5wbju.cjs.js +0 -131
  115. package/dist/cjs/index-v57xnvgT.cjs.js +0 -520
  116. package/dist/cjs/lint-DYO_SeK3.cjs.js +0 -91
  117. package/dist/cjs/moduleFederation-Dq0n1quT.cjs.js +0 -910
  118. package/dist/cjs/new-C0D_k25O.cjs.js +0 -1043
  119. package/dist/cjs/pack-D8AK7Uem.cjs.js +0 -34
  120. package/dist/cjs/packageExports-bg4mFuFZ.cjs.js +0 -27
  121. package/dist/cjs/test-5bQM0VRL.cjs.js +0 -126
  122. package/dist/cjs/validate-DKBlShmI.cjs.js +0 -28
  123. /package/templates/default-backend-module/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  124. /package/templates/default-backend-plugin/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  125. /package/templates/default-common-plugin-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  126. /package/templates/default-node-plugin-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  127. /package/templates/default-plugin/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  128. /package/templates/default-react-plugin-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  129. /package/templates/node-library-package/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  130. /package/templates/scaffolder-module/{.eslintrc.js → .eslintrc.js.hbs} +0 -0
  131. /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('./run-HW3lfDbM.cjs.js');
13
- var index = require('./index-v57xnvgT.cjs.js');
14
- var yarn = require('./yarn-6FNAgNBK.cjs.js');
15
- var minimatch = require('minimatch');
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('./parallel-BszNaKyc.cjs.js');
19
+ var parallel = require('../../lib/parallel.cjs.js');
19
20
  var releaseManifests = require('@backstage/release-manifests');
20
- var cliNode = require('@backstage/cli-node');
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 = index.paths.resolveTargetRoot("yarn.lock");
214
- const lockfile = await yarn.Lockfile.load(lockfilePath);
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(index.paths.targetDir, pattern);
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 index.paths.resolveTargetRoot(cliCommon.BACKSTAGE_JSON);
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 = index.paths.resolveTargetRoot(".yarnrc.yml");
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
- var bump$1 = /*#__PURE__*/Object.freeze({
576
- __proto__: null,
577
- bumpBackstageJsonVersion: bumpBackstageJsonVersion,
578
- createStrictVersionFinder: createStrictVersionFinder,
579
- createVersionFinder: createVersionFinder,
580
- default: bump,
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('./cjs/index-v57xnvgT.cjs.js');
6
- require('fs-extra');
7
- require('semver');
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