@backstage/cli 0.26.11-next.1 → 0.27.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/config/eslint-factory.js +1 -0
  3. package/dist/cjs/Lockfile-B4mqBkH6.cjs.js +86 -0
  4. package/dist/cjs/{build-fqzNfqa5.cjs.js → build-D5DoFqm6.cjs.js} +9 -13
  5. package/dist/cjs/{buildBackend-CrQ_GwBs.cjs.js → buildBackend-UK6nC6VL.cjs.js} +41 -38
  6. package/dist/cjs/{buildWorkspace-Bv-xt2y-.cjs.js → buildWorkspace-Z-hpJt9g.cjs.js} +4 -4
  7. package/dist/cjs/{bump-DG3jcOMS.cjs.js → bump-Qc4jNLOA.cjs.js} +7 -84
  8. package/dist/cjs/{clean-BGNU8ShE.cjs.js → clean-CB6dTqaG.cjs.js} +2 -2
  9. package/dist/cjs/{clean-83xjoKEJ.cjs.js → clean-DlsJGDLw.cjs.js} +2 -2
  10. package/dist/cjs/{codeowners-B-nGMoIG.cjs.js → codeowners-0MT7UP_S.cjs.js} +2 -2
  11. package/dist/cjs/{config-eLDUbNFK.cjs.js → config-B1bkp-HP.cjs.js} +43 -35
  12. package/dist/cjs/{createDistWorkspace-vhWGDizr.cjs.js → createDistWorkspace-0v54ePDJ.cjs.js} +3 -3
  13. package/dist/cjs/{createPlugin-B1qnN0IC.cjs.js → createPlugin-CUOGhq6P.cjs.js} +6 -6
  14. package/dist/cjs/{diff-BU6vhJMf.cjs.js → diff-BaiaASdN.cjs.js} +2 -2
  15. package/dist/cjs/{docs-GJmQNVkJ.cjs.js → docs-D8vejOxE.cjs.js} +3 -3
  16. package/dist/cjs/{fix-BhwlcHp_.cjs.js → fix-C7T4cvOB.cjs.js} +2 -2
  17. package/dist/cjs/{index-CTTm1_x6.cjs.js → index-1VtfY6wb.cjs.js} +4 -4
  18. package/dist/cjs/{index-CYI5nGsH.cjs.js → index-B8Ebu0mP.cjs.js} +38 -16
  19. package/dist/cjs/{index-DX-m2Ed0.cjs.js → index-BAcLy7dK.cjs.js} +48 -47
  20. package/dist/cjs/{index-pTrNn6sL.cjs.js → index-Bu7Vqly9.cjs.js} +50 -63
  21. package/dist/cjs/{index-D8nglRxA.cjs.js → index-F8W-9gIc.cjs.js} +2 -2
  22. package/dist/cjs/{info-CSiHnHqF.cjs.js → info-D_IhL0i0.cjs.js} +4 -4
  23. package/dist/cjs/{install-C6PA5oT4.cjs.js → install-DGaf_UuL.cjs.js} +5 -5
  24. package/dist/cjs/{lint-yikicfA4.cjs.js → lint-CRqMLZJ5.cjs.js} +2 -2
  25. package/dist/cjs/lint-Dkx_fBkS.cjs.js +10 -0
  26. package/dist/cjs/{lint-D0v-Gi6H.cjs.js → lint-EJvdRB7_.cjs.js} +2 -2
  27. package/dist/cjs/{list-deprecations-Coko6Rsb.cjs.js → list-deprecations-COfvNjrB.cjs.js} +2 -2
  28. package/dist/cjs/{packageDetection-B6lJYBh9.cjs.js → moduleFederation-CQZbFAit.cjs.js} +179 -38
  29. package/dist/cjs/{new-Da1kvXDQ.cjs.js → new-DB_oe66E.cjs.js} +6 -6
  30. package/dist/cjs/{pack-D8b4JM6B.cjs.js → pack-BcxxlYor.cjs.js} +2 -2
  31. package/dist/cjs/{packageExports-DDff9ia4.cjs.js → packageExports-FpoAU1Be.cjs.js} +3 -3
  32. package/dist/cjs/{packageLintConfigs-Bfvzg--7.cjs.js → packageLintConfigs-D7LMvTow.cjs.js} +3 -3
  33. package/dist/cjs/{packageRole-CXerjPpL.cjs.js → packageRole-BeuvccV9.cjs.js} +2 -2
  34. package/dist/cjs/{packages-BgyW9VKx.cjs.js → packages-DPPEGYIi.cjs.js} +3 -3
  35. package/dist/cjs/{print-C5tbwB1-.cjs.js → print-DuJqsJ2y.cjs.js} +3 -3
  36. package/dist/cjs/{role-BjmWpqH5.cjs.js → role-DAaP4LE5.cjs.js} +2 -2
  37. package/dist/cjs/{run-ClbD5HPt.cjs.js → run-CPcG7YxR.cjs.js} +2 -2
  38. package/dist/cjs/{schema-DbqftE60.cjs.js → schema-CR794PHv.cjs.js} +3 -3
  39. package/dist/cjs/{tasks-XfFuuYgf.cjs.js → tasks-4L8FqWEM.cjs.js} +2 -2
  40. package/dist/cjs/{test-BYKGLz-_.cjs.js → test-303IpaqN.cjs.js} +3 -3
  41. package/dist/cjs/{test-BEyXOT0e.cjs.js → test-y8AV0JOP.cjs.js} +3 -3
  42. package/dist/cjs/{validate-D4vVgxsi.cjs.js → validate-DZJIL6CK.cjs.js} +3 -3
  43. package/dist/index.cjs.js +1 -1
  44. package/package.json +12 -11
  45. package/templates/default-backend-plugin/package.json.hbs +0 -1
  46. package/templates/default-backend-plugin/src/service/router.ts +2 -3
  47. package/templates/default-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +2 -2
  48. package/dist/cjs/Lockfile-BndFvzHc.cjs.js +0 -221
  49. package/dist/cjs/lint-DqMGmvsS.cjs.js +0 -112
@@ -1,23 +1,25 @@
1
1
  'use strict';
2
2
 
3
3
  var path = require('path');
4
+ var chalk = require('chalk');
4
5
  var webpack = require('webpack');
5
6
  var ESLintPlugin = require('eslint-webpack-plugin');
6
7
  var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
7
8
  var HtmlWebpackPlugin = require('html-webpack-plugin');
9
+ var webpack$1 = require('@module-federation/enhanced/webpack');
8
10
  var cliCommon = require('@backstage/cli-common');
9
11
  var ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');
10
12
  var runScriptWebpackPlugin = require('run-script-webpack-plugin');
11
- var index = require('./index-DX-m2Ed0.cjs.js');
13
+ var ReactRefreshPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
14
+ var index = require('./index-BAcLy7dK.cjs.js');
12
15
  var fs = require('fs-extra');
13
16
  var getPackages = require('@manypkg/get-packages');
14
17
  var nodeExternals = require('webpack-node-externals');
15
18
  var pickBy = require('lodash/pickBy');
16
19
  var entryPoints = require('./entryPoints-CoHH4lBA.cjs.js');
17
- var run = require('./run-ClbD5HPt.cjs.js');
20
+ var run = require('./run-CPcG7YxR.cjs.js');
18
21
  var MiniCssExtractPlugin = require('mini-css-extract-plugin');
19
22
  var svgrTemplate = require('./svgrTemplate-BTjBQ3by.cjs.js');
20
- var ReactRefreshPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
21
23
  var yn = require('yn');
22
24
  var config = require('@backstage/config');
23
25
  var chokidar = require('chokidar');
@@ -25,16 +27,17 @@ var PQueue = require('p-queue');
25
27
 
26
28
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
27
29
 
30
+ var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
28
31
  var webpack__default = /*#__PURE__*/_interopDefaultCompat(webpack);
29
32
  var ESLintPlugin__default = /*#__PURE__*/_interopDefaultCompat(ESLintPlugin);
30
33
  var ForkTsCheckerWebpackPlugin__default = /*#__PURE__*/_interopDefaultCompat(ForkTsCheckerWebpackPlugin);
31
34
  var HtmlWebpackPlugin__default = /*#__PURE__*/_interopDefaultCompat(HtmlWebpackPlugin);
32
35
  var ModuleScopePlugin__default = /*#__PURE__*/_interopDefaultCompat(ModuleScopePlugin);
36
+ var ReactRefreshPlugin__default = /*#__PURE__*/_interopDefaultCompat(ReactRefreshPlugin);
33
37
  var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
34
38
  var nodeExternals__default = /*#__PURE__*/_interopDefaultCompat(nodeExternals);
35
39
  var pickBy__default = /*#__PURE__*/_interopDefaultCompat(pickBy);
36
40
  var MiniCssExtractPlugin__default = /*#__PURE__*/_interopDefaultCompat(MiniCssExtractPlugin);
37
- var ReactRefreshPlugin__default = /*#__PURE__*/_interopDefaultCompat(ReactRefreshPlugin);
38
41
  var yn__default = /*#__PURE__*/_interopDefaultCompat(yn);
39
42
  var chokidar__default = /*#__PURE__*/_interopDefaultCompat(chokidar);
40
43
  var PQueue__default = /*#__PURE__*/_interopDefaultCompat(PQueue);
@@ -86,8 +89,15 @@ const optimization = (options) => {
86
89
  minimize: !isDev,
87
90
  minimizer: [
88
91
  new EsbuildPlugin({
89
- target: "es2019",
90
- format: "iife"
92
+ target: "ES2022",
93
+ format: "iife",
94
+ exclude: "remoteEntry.js"
95
+ }),
96
+ // Avoid iife wrapping of module federation remote entry as it breaks the variable assignment
97
+ new EsbuildPlugin({
98
+ target: "ES2022",
99
+ format: void 0,
100
+ include: "remoteEntry.js"
91
101
  })
92
102
  ],
93
103
  runtimeChunk: "single",
@@ -151,7 +161,7 @@ const transforms = (options) => {
151
161
  loader: require.resolve("swc-loader"),
152
162
  options: {
153
163
  jsc: {
154
- target: "es2019",
164
+ target: "ES2022",
155
165
  externalHelpers: !isBackend,
156
166
  parser: {
157
167
  syntax: "typescript",
@@ -177,7 +187,7 @@ const transforms = (options) => {
177
187
  loader: require.resolve("swc-loader"),
178
188
  options: {
179
189
  jsc: {
180
- target: "es2019",
190
+ target: "ES2022",
181
191
  externalHelpers: !isBackend,
182
192
  parser: {
183
193
  syntax: "ecmascript",
@@ -208,7 +218,7 @@ const transforms = (options) => {
208
218
  loader: require.resolve("swc-loader"),
209
219
  options: {
210
220
  jsc: {
211
- target: "es2019",
221
+ target: "es2022",
212
222
  externalHelpers: !isBackend,
213
223
  parser: {
214
224
  syntax: "ecmascript",
@@ -278,15 +288,7 @@ const transforms = (options) => {
278
288
  }
279
289
  ];
280
290
  const plugins = new Array();
281
- if (isDev) {
282
- if (!isBackend) {
283
- plugins.push(
284
- new ReactRefreshPlugin__default.default({
285
- overlay: { sockProtocol: "ws" }
286
- })
287
- );
288
- }
289
- } else {
291
+ if (!isDev) {
290
292
  plugins.push(
291
293
  new MiniCssExtractPlugin__default.default({
292
294
  filename: "static/[name].[contenthash:8].css",
@@ -309,14 +311,22 @@ function hasReactDomClient() {
309
311
  }
310
312
 
311
313
  const BUILD_CACHE_ENV_VAR = "BACKSTAGE_CLI_EXPERIMENTAL_BUILD_CACHE";
312
- function resolveBaseUrl(config) {
314
+ function resolveBaseUrl(config, moduleFederation) {
313
315
  const baseUrl = config.getOptionalString("app.baseUrl");
316
+ const defaultBaseUrl = moduleFederation?.mode === "remote" ? `http://localhost:${process.env.PORT ?? "3000"}` : "http://localhost:3000";
314
317
  try {
315
- return new URL(baseUrl ?? "/", "http://localhost:3000");
318
+ return new URL(baseUrl ?? "/", defaultBaseUrl);
316
319
  } catch (error) {
317
320
  throw new Error(`Invalid app.baseUrl, ${error}`);
318
321
  }
319
322
  }
323
+ function resolveEndpoint(config, moduleFederation) {
324
+ const url = resolveBaseUrl(config, moduleFederation);
325
+ return {
326
+ host: config.getOptionalString("app.listen.host") ?? url.hostname,
327
+ port: config.getOptionalNumber("app.listen.port") ?? Number(url.port) ?? (url.protocol === "https:" ? 443 : 80)
328
+ };
329
+ }
320
330
  async function readBuildInfo() {
321
331
  const timestamp = Date.now();
322
332
  let commit;
@@ -346,15 +356,36 @@ async function readBuildInfo() {
346
356
  };
347
357
  }
348
358
  async function createConfig(paths, options) {
349
- const { checksEnabled, isDev, frontendConfig, publicSubPath = "" } = options;
359
+ const {
360
+ checksEnabled,
361
+ isDev,
362
+ frontendConfig,
363
+ moduleFederation,
364
+ publicSubPath = ""
365
+ } = options;
350
366
  const { plugins, loaders } = transforms(options);
351
367
  const { packages } = await getPackages.getPackages(index.paths.targetDir);
352
368
  const externalPkgs = packages.filter((p) => !cliCommon.isChildPath(paths.root, p.dir));
353
- const validBaseUrl = resolveBaseUrl(frontendConfig);
369
+ const validBaseUrl = resolveBaseUrl(frontendConfig, moduleFederation);
354
370
  let publicPath = validBaseUrl.pathname.replace(/\/$/, "");
355
371
  if (publicSubPath) {
356
372
  publicPath = `${publicPath}${publicSubPath}`.replace("//", "/");
357
373
  }
374
+ if (isDev) {
375
+ const { host, port } = resolveEndpoint(
376
+ options.frontendConfig,
377
+ options.moduleFederation
378
+ );
379
+ plugins.push(
380
+ new ReactRefreshPlugin__default.default({
381
+ overlay: {
382
+ sockProtocol: "ws",
383
+ sockHost: host,
384
+ sockPort: port
385
+ }
386
+ })
387
+ );
388
+ }
358
389
  if (checksEnabled) {
359
390
  plugins.push(
360
391
  new ForkTsCheckerWebpackPlugin__default.default({
@@ -372,18 +403,81 @@ async function createConfig(paths, options) {
372
403
  Buffer: ["buffer", "Buffer"]
373
404
  })
374
405
  );
375
- plugins.push(
376
- new HtmlWebpackPlugin__default.default({
377
- meta: {
378
- "backstage-app-mode": options?.appMode ?? "public"
379
- },
380
- template: paths.targetHtml,
381
- templateParameters: {
382
- publicPath,
383
- config: frontendConfig
384
- }
385
- })
386
- );
406
+ if (options.moduleFederation?.mode !== "remote") {
407
+ plugins.push(
408
+ new HtmlWebpackPlugin__default.default({
409
+ meta: {
410
+ "backstage-app-mode": options?.appMode ?? "public"
411
+ },
412
+ template: paths.targetHtml,
413
+ templateParameters: {
414
+ publicPath,
415
+ config: frontendConfig
416
+ }
417
+ })
418
+ );
419
+ }
420
+ if (options.moduleFederation) {
421
+ const isRemote = options.moduleFederation?.mode === "remote";
422
+ plugins.push(
423
+ new webpack$1.ModuleFederationPlugin({
424
+ ...isRemote && {
425
+ filename: "remoteEntry.js",
426
+ exposes: {
427
+ ".": paths.targetEntry
428
+ }
429
+ },
430
+ name: options.moduleFederation.name,
431
+ runtime: false,
432
+ shared: {
433
+ // React
434
+ react: {
435
+ singleton: true,
436
+ requiredVersion: "*",
437
+ eager: !isRemote
438
+ },
439
+ "react-dom": {
440
+ singleton: true,
441
+ requiredVersion: "*",
442
+ eager: !isRemote
443
+ },
444
+ // React Router
445
+ "react-router": {
446
+ singleton: true,
447
+ requiredVersion: "*",
448
+ eager: !isRemote
449
+ },
450
+ "react-router-dom": {
451
+ singleton: true,
452
+ requiredVersion: "*",
453
+ eager: !isRemote
454
+ },
455
+ // MUI v4
456
+ "@material-ui/core/styles": {
457
+ singleton: true,
458
+ requiredVersion: "*",
459
+ eager: !isRemote
460
+ },
461
+ "@material-ui/styles": {
462
+ singleton: true,
463
+ requiredVersion: "*",
464
+ eager: !isRemote
465
+ },
466
+ // MUI v5
467
+ "@mui/material/styles/": {
468
+ singleton: true,
469
+ requiredVersion: "*",
470
+ eager: !isRemote
471
+ },
472
+ "@emotion/react": {
473
+ singleton: true,
474
+ requiredVersion: "*",
475
+ eager: !isRemote
476
+ }
477
+ }
478
+ })
479
+ );
480
+ }
387
481
  const buildInfo = await readBuildInfo();
388
482
  plugins.push(
389
483
  new webpack__default.default.DefinePlugin({
@@ -404,11 +498,37 @@ async function createConfig(paths, options) {
404
498
  require.resolve("@pmmmwh/react-refresh-webpack-plugin/overlay/index.js"),
405
499
  require.resolve("react-refresh")
406
500
  ];
501
+ const mode = isDev ? "development" : "production";
502
+ const optimization$1 = optimization(options);
503
+ if (mode === "production" && process.env.EXPERIMENTAL_MODULE_FEDERATION && process.env.FORCE_REACT_DEVELOPMENT) {
504
+ console.log(
505
+ chalk__default.default.yellow(
506
+ `\u26A0\uFE0F WARNING: Forcing react and react-dom into development mode. This build should not be used in production.`
507
+ )
508
+ );
509
+ const reactPackageDirs = [
510
+ `${path.dirname(require.resolve("react/package.json"))}/`,
511
+ `${path.dirname(require.resolve("react-dom/package.json"))}/`
512
+ ];
513
+ optimization$1.nodeEnv = false;
514
+ plugins.push(
515
+ new webpack__default.default.DefinePlugin({
516
+ "process.env.NODE_ENV": webpack__default.default.DefinePlugin.runtimeValue(
517
+ ({ module }) => {
518
+ if (reactPackageDirs.some((val) => module.resource.startsWith(val))) {
519
+ return '"development"';
520
+ }
521
+ return `"${mode}"`;
522
+ }
523
+ )
524
+ })
525
+ );
526
+ }
407
527
  const withCache = yn__default.default(process.env[BUILD_CACHE_ENV_VAR], { default: false });
408
528
  return {
409
- mode: isDev ? "development" : "production",
529
+ mode,
410
530
  profile: false,
411
- optimization: optimization(options),
531
+ optimization: optimization$1,
412
532
  bail: false,
413
533
  performance: {
414
534
  hints: false
@@ -448,8 +568,9 @@ async function createConfig(paths, options) {
448
568
  rules: loaders
449
569
  },
450
570
  output: {
571
+ uniqueName: options.moduleFederation?.name,
451
572
  path: paths.targetDist,
452
- publicPath: `${publicPath}/`,
573
+ publicPath: options.moduleFederation?.mode === "remote" ? "auto" : `${publicPath}/`,
453
574
  filename: isDev ? "[name].js" : "static/[name].[fullhash:8].js",
454
575
  chunkFilename: isDev ? "[name].chunk.js" : "static/[name].[chunkhash:8].chunk.js",
455
576
  ...isDev ? {
@@ -737,11 +858,31 @@ async function createDetectedModulesEntryPoint(options) {
737
858
  return [DETECTED_MODULES_MODULE_NAME];
738
859
  }
739
860
 
861
+ function getModuleFederationOptions(name, isModuleFederationRemote) {
862
+ if (!isModuleFederationRemote && !process.env.EXPERIMENTAL_MODULE_FEDERATION) {
863
+ return void 0;
864
+ }
865
+ console.log(
866
+ chalk__default.default.yellow(
867
+ `\u26A0\uFE0F WARNING: Module federation is experimental and will receive immediate breaking changes in the future.`
868
+ )
869
+ );
870
+ return {
871
+ mode: isModuleFederationRemote ? "remote" : "host",
872
+ // The default output mode requires the name to be a usable as a code
873
+ // symbol, there might be better options here but for now we need to
874
+ // sanitize the name.
875
+ name: name.replaceAll("@", "").replaceAll("/", "__").replaceAll("-", "_")
876
+ };
877
+ }
878
+
740
879
  exports.createBackendConfig = createBackendConfig;
741
880
  exports.createConfig = createConfig;
742
881
  exports.createDetectedModulesEntryPoint = createDetectedModulesEntryPoint;
882
+ exports.getModuleFederationOptions = getModuleFederationOptions;
743
883
  exports.hasReactDomClient = hasReactDomClient;
744
884
  exports.resolveBaseUrl = resolveBaseUrl;
745
885
  exports.resolveBundlingPaths = resolveBundlingPaths;
886
+ exports.resolveEndpoint = resolveEndpoint;
746
887
  exports.resolveOptionalBundlingPaths = resolveOptionalBundlingPaths;
747
- //# sourceMappingURL=packageDetection-B6lJYBh9.cjs.js.map
888
+ //# sourceMappingURL=moduleFederation-CQZbFAit.cjs.js.map
@@ -7,14 +7,14 @@ var chalk = require('chalk');
7
7
  var inquirer = require('inquirer');
8
8
  var camelCase = require('lodash/camelCase');
9
9
  var upperFirst = require('lodash/upperFirst');
10
- var index = require('./index-DX-m2Ed0.cjs.js');
11
- var codeowners = require('./codeowners-B-nGMoIG.cjs.js');
12
- var tasks = require('./tasks-XfFuuYgf.cjs.js');
13
- var Lockfile = require('./Lockfile-BndFvzHc.cjs.js');
10
+ var index = require('./index-BAcLy7dK.cjs.js');
11
+ var codeowners = require('./codeowners-0MT7UP_S.cjs.js');
12
+ var tasks = require('./tasks-4L8FqWEM.cjs.js');
13
+ var Lockfile = require('./Lockfile-B4mqBkH6.cjs.js');
14
14
  require('minimatch');
15
15
  require('@manypkg/get-packages');
16
16
  require('./yarn-Ukl9MOS0.cjs.js');
17
- require('./run-ClbD5HPt.cjs.js');
17
+ require('./run-CPcG7YxR.cjs.js');
18
18
  var partition = require('lodash/partition');
19
19
  var cliNode = require('@backstage/cli-node');
20
20
  var errors = require('@backstage/errors');
@@ -775,4 +775,4 @@ var _new = async (opts) => {
775
775
  };
776
776
 
777
777
  exports.default = _new;
778
- //# sourceMappingURL=new-Da1kvXDQ.cjs.js.map
778
+ //# sourceMappingURL=new-DB_oe66E.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var productionPack = require('./productionPack-BWU8WkGs.cjs.js');
4
- var index = require('./index-DX-m2Ed0.cjs.js');
4
+ var index = require('./index-BAcLy7dK.cjs.js');
5
5
  var fs = require('fs-extra');
6
6
  var publishing = require('./publishing-DQtsKTbc.cjs.js');
7
7
  require('npm-packlist');
@@ -30,4 +30,4 @@ const post = async () => {
30
30
 
31
31
  exports.post = post;
32
32
  exports.pre = pre;
33
- //# sourceMappingURL=pack-D8b4JM6B.cjs.js.map
33
+ //# sourceMappingURL=pack-BcxxlYor.cjs.js.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var fix = require('./fix-BhwlcHp_.cjs.js');
3
+ var fix = require('./fix-C7T4cvOB.cjs.js');
4
4
  require('@backstage/cli-node');
5
5
  require('fs-extra');
6
6
  require('path');
7
- require('./index-DX-m2Ed0.cjs.js');
7
+ require('./index-BAcLy7dK.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('semver');
@@ -24,4 +24,4 @@ async function command() {
24
24
  }
25
25
 
26
26
  exports.command = command;
27
- //# sourceMappingURL=packageExports-DDff9ia4.cjs.js.map
27
+ //# sourceMappingURL=packageExports-FpoAU1Be.cjs.js.map
@@ -3,9 +3,9 @@
3
3
  var fs = require('fs-extra');
4
4
  var path = require('path');
5
5
  var cliNode = require('@backstage/cli-node');
6
- var run = require('./run-ClbD5HPt.cjs.js');
6
+ var run = require('./run-CPcG7YxR.cjs.js');
7
7
  require('child_process');
8
- require('./index-DX-m2Ed0.cjs.js');
8
+ require('./index-BAcLy7dK.cjs.js');
9
9
  require('commander');
10
10
  require('chalk');
11
11
  require('semver');
@@ -78,4 +78,4 @@ async function command() {
78
78
  }
79
79
 
80
80
  exports.command = command;
81
- //# sourceMappingURL=packageLintConfigs-Bfvzg--7.cjs.js.map
81
+ //# sourceMappingURL=packageLintConfigs-D7LMvTow.cjs.js.map
@@ -4,7 +4,7 @@ var fs = require('fs-extra');
4
4
  var path = require('path');
5
5
  var getPackages = require('@manypkg/get-packages');
6
6
  var cliNode = require('@backstage/cli-node');
7
- var index = require('./index-DX-m2Ed0.cjs.js');
7
+ var index = require('./index-BAcLy7dK.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('semver');
@@ -55,4 +55,4 @@ var packageRole = async () => {
55
55
  };
56
56
 
57
57
  exports.default = packageRole;
58
- //# sourceMappingURL=packageRole-CXerjPpL.cjs.js.map
58
+ //# sourceMappingURL=packageRole-BeuvccV9.cjs.js.map
@@ -2,9 +2,9 @@
2
2
 
3
3
  var minimatch = require('minimatch');
4
4
  var getPackages = require('@manypkg/get-packages');
5
- var index = require('./index-DX-m2Ed0.cjs.js');
5
+ var index = require('./index-BAcLy7dK.cjs.js');
6
6
  var yarn = require('./yarn-Ukl9MOS0.cjs.js');
7
- var run = require('./run-ClbD5HPt.cjs.js');
7
+ var run = require('./run-CPcG7YxR.cjs.js');
8
8
 
9
9
  const DEP_TYPES = [
10
10
  "dependencies",
@@ -72,4 +72,4 @@ async function mapDependencies(targetDir, pattern) {
72
72
 
73
73
  exports.fetchPackageInfo = fetchPackageInfo;
74
74
  exports.mapDependencies = mapDependencies;
75
- //# sourceMappingURL=packages-BgyW9VKx.cjs.js.map
75
+ //# sourceMappingURL=packages-DPPEGYIi.cjs.js.map
@@ -2,9 +2,9 @@
2
2
 
3
3
  var yaml = require('yaml');
4
4
  var config$1 = require('@backstage/config');
5
- var config = require('./config-eLDUbNFK.cjs.js');
5
+ var config = require('./config-B1bkp-HP.cjs.js');
6
6
  require('@backstage/config-loader');
7
- require('./index-DX-m2Ed0.cjs.js');
7
+ require('./index-BAcLy7dK.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('fs-extra');
@@ -58,4 +58,4 @@ function serializeConfigData(appConfigs, schema, visibility) {
58
58
  }
59
59
 
60
60
  exports.default = print;
61
- //# sourceMappingURL=print-C5tbwB1-.cjs.js.map
61
+ //# sourceMappingURL=print-DuJqsJ2y.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-DX-m2Ed0.cjs.js');
4
+ var index = require('./index-BAcLy7dK.cjs.js');
5
5
  var cliNode = require('@backstage/cli-node');
6
6
 
7
7
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
@@ -21,4 +21,4 @@ async function findRoleFromCommand(opts) {
21
21
  }
22
22
 
23
23
  exports.findRoleFromCommand = findRoleFromCommand;
24
- //# sourceMappingURL=role-BjmWpqH5.cjs.js.map
24
+ //# sourceMappingURL=role-DAaP4LE5.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var child_process = require('child_process');
4
- var index = require('./index-DX-m2Ed0.cjs.js');
4
+ var index = require('./index-BAcLy7dK.cjs.js');
5
5
  var util = require('util');
6
6
  var errors = require('@backstage/errors');
7
7
 
@@ -78,4 +78,4 @@ exports.execFile = execFile;
78
78
  exports.run = run;
79
79
  exports.runCheck = runCheck;
80
80
  exports.runPlain = runPlain;
81
- //# sourceMappingURL=run-ClbD5HPt.cjs.js.map
81
+ //# sourceMappingURL=run-CPcG7YxR.cjs.js.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var yaml = require('yaml');
4
- var config = require('./config-eLDUbNFK.cjs.js');
4
+ var config = require('./config-B1bkp-HP.cjs.js');
5
5
  var configLoader = require('@backstage/config-loader');
6
6
  require('@backstage/config');
7
- require('./index-DX-m2Ed0.cjs.js');
7
+ require('./index-BAcLy7dK.cjs.js');
8
8
  require('commander');
9
9
  require('chalk');
10
10
  require('fs-extra');
@@ -42,4 +42,4 @@ var schema = async (opts) => {
42
42
  };
43
43
 
44
44
  exports.default = schema;
45
- //# sourceMappingURL=schema-DbqftE60.cjs.js.map
45
+ //# sourceMappingURL=schema-CR794PHv.cjs.js.map
@@ -9,7 +9,7 @@ var path = require('path');
9
9
  var recursive = require('recursive-readdir');
10
10
  var child_process = require('child_process');
11
11
  var errors = require('@backstage/errors');
12
- var index = require('./index-DX-m2Ed0.cjs.js');
12
+ var index = require('./index-BAcLy7dK.cjs.js');
13
13
 
14
14
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
15
15
 
@@ -185,4 +185,4 @@ exports.Task = Task;
185
185
  exports.addPackageDependency = addPackageDependency;
186
186
  exports.addToBackend = addToBackend;
187
187
  exports.templatingTask = templatingTask;
188
- //# sourceMappingURL=tasks-XfFuuYgf.cjs.js.map
188
+ //# sourceMappingURL=tasks-4L8FqWEM.cjs.js.map
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-DX-m2Ed0.cjs.js');
4
- var run = require('./run-ClbD5HPt.cjs.js');
3
+ var index = require('./index-BAcLy7dK.cjs.js');
4
+ var run = require('./run-CPcG7YxR.cjs.js');
5
5
  require('commander');
6
6
  require('chalk');
7
7
  require('fs-extra');
@@ -56,4 +56,4 @@ var test = async (_opts, cmd) => {
56
56
  };
57
57
 
58
58
  exports.default = test;
59
- //# sourceMappingURL=test-BYKGLz-_.cjs.js.map
59
+ //# sourceMappingURL=test-303IpaqN.cjs.js.map
@@ -2,8 +2,8 @@
2
2
 
3
3
  var os = require('os');
4
4
  var cliNode = require('@backstage/cli-node');
5
- var index = require('./index-DX-m2Ed0.cjs.js');
6
- var run = require('./run-ClbD5HPt.cjs.js');
5
+ var index = require('./index-BAcLy7dK.cjs.js');
6
+ var run = require('./run-CPcG7YxR.cjs.js');
7
7
  require('commander');
8
8
  require('chalk');
9
9
  require('fs-extra');
@@ -123,4 +123,4 @@ async function command(opts, cmd) {
123
123
 
124
124
  exports.command = command;
125
125
  exports.createFlagFinder = createFlagFinder;
126
- //# sourceMappingURL=test-BEyXOT0e.cjs.js.map
126
+ //# sourceMappingURL=test-y8AV0JOP.cjs.js.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var config = require('./config-eLDUbNFK.cjs.js');
3
+ var config = require('./config-B1bkp-HP.cjs.js');
4
4
  require('@backstage/config-loader');
5
5
  require('@backstage/config');
6
- require('./index-DX-m2Ed0.cjs.js');
6
+ require('./index-BAcLy7dK.cjs.js');
7
7
  require('commander');
8
8
  require('chalk');
9
9
  require('fs-extra');
@@ -25,4 +25,4 @@ var validate = async (opts) => {
25
25
  };
26
26
 
27
27
  exports.default = validate;
28
- //# sourceMappingURL=validate-D4vVgxsi.cjs.js.map
28
+ //# sourceMappingURL=validate-DZJIL6CK.cjs.js.map
package/dist/index.cjs.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('commander');
4
4
  require('chalk');
5
- require('./cjs/index-DX-m2Ed0.cjs.js');
5
+ require('./cjs/index-BAcLy7dK.cjs.js');
6
6
  require('fs-extra');
7
7
  require('semver');
8
8
  require('@backstage/cli-common');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/cli",
3
- "version": "0.26.11-next.1",
3
+ "version": "0.27.0-next.0",
4
4
  "description": "CLI for developing Backstage plugins and apps",
5
5
  "backstage": {
6
6
  "role": "cli"
@@ -44,15 +44,16 @@
44
44
  "dependencies": {
45
45
  "@backstage/catalog-model": "^1.5.0",
46
46
  "@backstage/cli-common": "^0.1.14",
47
- "@backstage/cli-node": "^0.2.6",
47
+ "@backstage/cli-node": "^0.2.7",
48
48
  "@backstage/config": "^1.2.0",
49
- "@backstage/config-loader": "^1.8.1",
49
+ "@backstage/config-loader": "^1.8.2-next.0",
50
50
  "@backstage/errors": "^1.2.4",
51
51
  "@backstage/eslint-plugin": "^0.1.8",
52
- "@backstage/integration": "^1.13.0-next.0",
52
+ "@backstage/integration": "^1.14.0-next.0",
53
53
  "@backstage/release-manifests": "^0.0.11",
54
54
  "@backstage/types": "^1.1.1",
55
55
  "@manypkg/get-packages": "^1.1.3",
56
+ "@module-federation/enhanced": "^0.1.19",
56
57
  "@octokit/graphql": "^5.0.0",
57
58
  "@octokit/graphql-schema": "^13.7.0",
58
59
  "@octokit/oauth-app": "^4.2.0",
@@ -155,15 +156,15 @@
155
156
  "zod": "^3.22.4"
156
157
  },
157
158
  "devDependencies": {
158
- "@backstage/backend-common": "^0.23.3-next.1",
159
- "@backstage/backend-plugin-api": "^0.6.22-next.1",
160
- "@backstage/backend-test-utils": "^0.4.4-next.1",
159
+ "@backstage/backend-common": "^0.23.4-next.0",
160
+ "@backstage/backend-plugin-api": "^0.7.1-next.0",
161
+ "@backstage/backend-test-utils": "^0.4.5-next.0",
161
162
  "@backstage/config": "^1.2.0",
162
- "@backstage/core-app-api": "^1.13.1-next.1",
163
- "@backstage/core-components": "^0.14.9-next.0",
163
+ "@backstage/core-app-api": "^1.14.1-next.0",
164
+ "@backstage/core-components": "^0.14.10-next.0",
164
165
  "@backstage/core-plugin-api": "^1.9.3",
165
- "@backstage/dev-utils": "^1.0.35-next.1",
166
- "@backstage/test-utils": "^1.5.8-next.1",
166
+ "@backstage/dev-utils": "^1.0.36-next.0",
167
+ "@backstage/test-utils": "^1.5.9-next.0",
167
168
  "@backstage/theme": "^0.5.6",
168
169
  "@types/cross-spawn": "^6.0.2",
169
170
  "@types/diff": "^5.0.0",