@backstage/cli 0.36.0-next.2 → 0.36.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 (276) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/config/eslint-factory.js +1 -0
  3. package/config/getJestEnvironment.js +7 -29
  4. package/config/jest-environment-jsdom/index.js +9 -43
  5. package/config/jest.js +7 -401
  6. package/config/jestCacheResultProcessor.cjs +10 -6
  7. package/config/jestCachingModuleLoader.js +11 -19
  8. package/config/jestFileTransform.js +11 -28
  9. package/config/jestRejectNetworkRequests.js +10 -53
  10. package/config/jestSucraseTransform.js +10 -70
  11. package/config/jestSwcTransform.js +10 -27
  12. package/config/jestYamlTransform.js +11 -24
  13. package/config/nodeTransform.cjs +10 -70
  14. package/config/nodeTransformHooks.mjs +4 -278
  15. package/config/webpack-public-path.js +10 -14
  16. package/dist/cli-internal/src/InternalCliModule.cjs.js +11 -0
  17. package/dist/cli-internal/src/InternalCommandNode.cjs.js +25 -0
  18. package/dist/cli-internal/src/knownPluginPackages.cjs.js +40 -0
  19. package/dist/index.cjs.js +21 -11
  20. package/dist/wiring/CliInitializer.cjs.js +61 -30
  21. package/dist/wiring/CommandGraph.cjs.js +81 -23
  22. package/dist/wiring/discoverCliModules.cjs.js +44 -0
  23. package/package.json +27 -160
  24. package/dist/modules/auth/commands/list.cjs.js +0 -23
  25. package/dist/modules/auth/commands/login.cjs.js +0 -316
  26. package/dist/modules/auth/commands/logout.cjs.js +0 -55
  27. package/dist/modules/auth/commands/printToken.cjs.js +0 -41
  28. package/dist/modules/auth/commands/select.cjs.js +0 -32
  29. package/dist/modules/auth/commands/show.cjs.js +0 -59
  30. package/dist/modules/auth/index.cjs.js +0 -44
  31. package/dist/modules/auth/lib/auth.cjs.js +0 -60
  32. package/dist/modules/auth/lib/http.cjs.js +0 -26
  33. package/dist/modules/auth/lib/localServer.cjs.js +0 -80
  34. package/dist/modules/auth/lib/pkce.cjs.js +0 -23
  35. package/dist/modules/auth/lib/prompt.cjs.js +0 -44
  36. package/dist/modules/auth/lib/secretStore.cjs.js +0 -81
  37. package/dist/modules/auth/lib/storage.cjs.js +0 -152
  38. package/dist/modules/build/commands/buildWorkspace.cjs.js +0 -53
  39. package/dist/modules/build/commands/package/build/command.cjs.js +0 -136
  40. package/dist/modules/build/commands/package/build/index.cjs.js +0 -10
  41. package/dist/modules/build/commands/package/clean.cjs.js +0 -21
  42. package/dist/modules/build/commands/package/postpack.cjs.js +0 -15
  43. package/dist/modules/build/commands/package/prepack.cjs.js +0 -29
  44. package/dist/modules/build/commands/package/start/command.cjs.js +0 -80
  45. package/dist/modules/build/commands/package/start/index.cjs.js +0 -10
  46. package/dist/modules/build/commands/package/start/resolveLinkedWorkspace.cjs.js +0 -34
  47. package/dist/modules/build/commands/package/start/startBackend.cjs.js +0 -46
  48. package/dist/modules/build/commands/package/start/startFrontend.cjs.js +0 -50
  49. package/dist/modules/build/commands/package/start/startPackage.cjs.js +0 -53
  50. package/dist/modules/build/commands/repo/build.cjs.js +0 -149
  51. package/dist/modules/build/commands/repo/clean.cjs.js +0 -41
  52. package/dist/modules/build/commands/repo/start.cjs.js +0 -199
  53. package/dist/modules/build/index.cjs.js +0 -68
  54. package/dist/modules/build/lib/buildBackend.cjs.js +0 -81
  55. package/dist/modules/build/lib/buildFrontend.cjs.js +0 -50
  56. package/dist/modules/build/lib/builder/config.cjs.js +0 -257
  57. package/dist/modules/build/lib/builder/packager.cjs.js +0 -131
  58. package/dist/modules/build/lib/builder/plugins.cjs.js +0 -125
  59. package/dist/modules/build/lib/builder/types.cjs.js +0 -10
  60. package/dist/modules/build/lib/bundler/ConfigInjectingHtmlWebpackPlugin.cjs.js +0 -43
  61. package/dist/modules/build/lib/bundler/bundle.cjs.js +0 -189
  62. package/dist/modules/build/lib/bundler/config.cjs.js +0 -308
  63. package/dist/modules/build/lib/bundler/hasReactDomClient.cjs.js +0 -17
  64. package/dist/modules/build/lib/bundler/linkWorkspaces.cjs.js +0 -34
  65. package/dist/modules/build/lib/bundler/moduleFederation.cjs.js +0 -135
  66. package/dist/modules/build/lib/bundler/optimization.cjs.js +0 -68
  67. package/dist/modules/build/lib/bundler/packageDetection.cjs.js +0 -124
  68. package/dist/modules/build/lib/bundler/paths.cjs.js +0 -62
  69. package/dist/modules/build/lib/bundler/server.cjs.js +0 -231
  70. package/dist/modules/build/lib/bundler/transforms.cjs.js +0 -145
  71. package/dist/modules/build/lib/config.cjs.js +0 -94
  72. package/dist/modules/build/lib/entryPoints.cjs.js +0 -49
  73. package/dist/modules/build/lib/ipc/IpcServer.cjs.js +0 -60
  74. package/dist/modules/build/lib/ipc/ServerDataStore.cjs.js +0 -36
  75. package/dist/modules/build/lib/optionsParser.cjs.js +0 -22
  76. package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +0 -235
  77. package/dist/modules/build/lib/packager/productionPack.cjs.js +0 -160
  78. package/dist/modules/build/lib/publishing.cjs.js +0 -40
  79. package/dist/modules/build/lib/role.cjs.js +0 -24
  80. package/dist/modules/build/lib/runner/runBackend.cjs.js +0 -136
  81. package/dist/modules/build/lib/typeDistProject.cjs.js +0 -89
  82. package/dist/modules/build/lib/urls.cjs.js +0 -13
  83. package/dist/modules/config/commands/docs.cjs.js +0 -63
  84. package/dist/modules/config/commands/print.cjs.js +0 -81
  85. package/dist/modules/config/commands/schema.cjs.js +0 -56
  86. package/dist/modules/config/commands/validate.cjs.js +0 -50
  87. package/dist/modules/config/index.cjs.js +0 -51
  88. package/dist/modules/config/lib/config.cjs.js +0 -94
  89. package/dist/modules/create-github-app/commands/create-github-app/GithubCreateAppServer.cjs.js +0 -127
  90. package/dist/modules/create-github-app/commands/create-github-app/index.cjs.js +0 -126
  91. package/dist/modules/create-github-app/index.cjs.js +0 -19
  92. package/dist/modules/info/commands/info.cjs.js +0 -182
  93. package/dist/modules/info/index.cjs.js +0 -19
  94. package/dist/modules/lint/commands/package/lint.cjs.js +0 -78
  95. package/dist/modules/lint/commands/repo/lint.cjs.js +0 -282
  96. package/dist/modules/lint/index.cjs.js +0 -24
  97. package/dist/modules/lint/lib/optionsParser.cjs.js +0 -22
  98. package/dist/modules/maintenance/commands/repo/fix.cjs.js +0 -426
  99. package/dist/modules/maintenance/commands/repo/list-deprecations.cjs.js +0 -90
  100. package/dist/modules/maintenance/index.cjs.js +0 -24
  101. package/dist/modules/migrate/commands/packageExports.cjs.js +0 -15
  102. package/dist/modules/migrate/commands/packageLintConfigs.cjs.js +0 -77
  103. package/dist/modules/migrate/commands/packageRole.cjs.js +0 -57
  104. package/dist/modules/migrate/commands/packageScripts.cjs.js +0 -87
  105. package/dist/modules/migrate/commands/reactRouterDeps.cjs.js +0 -51
  106. package/dist/modules/migrate/commands/versions/bump.cjs.js +0 -403
  107. package/dist/modules/migrate/commands/versions/migrate.cjs.js +0 -133
  108. package/dist/modules/migrate/index.cjs.js +0 -59
  109. package/dist/modules/migrate/lib/utils.cjs.js +0 -44
  110. package/dist/modules/migrate/lib/versioning/packages.cjs.js +0 -71
  111. package/dist/modules/migrate/lib/versioning/yarn.cjs.js +0 -28
  112. package/dist/modules/new/commands/new.cjs.js +0 -115
  113. package/dist/modules/new/index.cjs.js +0 -40
  114. package/dist/modules/new/lib/codeowners/codeowners.cjs.js +0 -92
  115. package/dist/modules/new/lib/createNewPackage.cjs.js +0 -32
  116. package/dist/modules/new/lib/defaultTemplates.cjs.js +0 -17
  117. package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +0 -89
  118. package/dist/modules/new/lib/execution/executePortableTemplate.cjs.js +0 -66
  119. package/dist/modules/new/lib/execution/installNewPackage.cjs.js +0 -127
  120. package/dist/modules/new/lib/execution/writeTemplateContents.cjs.js +0 -116
  121. package/dist/modules/new/lib/preparation/collectPortableTemplateInput.cjs.js +0 -157
  122. package/dist/modules/new/lib/preparation/loadPortableTemplate.cjs.js +0 -81
  123. package/dist/modules/new/lib/preparation/loadPortableTemplateConfig.cjs.js +0 -132
  124. package/dist/modules/new/lib/preparation/resolvePackageParams.cjs.js +0 -40
  125. package/dist/modules/new/lib/preparation/selectTemplateInteractively.cjs.js +0 -38
  126. package/dist/modules/new/lib/tasks.cjs.js +0 -51
  127. package/dist/modules/new/lib/types.cjs.js +0 -19
  128. package/dist/modules/new/lib/version.cjs.js +0 -91
  129. package/dist/modules/test/commands/package/test.cjs.js +0 -59
  130. package/dist/modules/test/commands/repo/test.cjs.js +0 -299
  131. package/dist/modules/test/index.cjs.js +0 -24
  132. package/dist/modules/translations/commands/export.cjs.js +0 -128
  133. package/dist/modules/translations/commands/import.cjs.js +0 -165
  134. package/dist/modules/translations/index.cjs.js +0 -24
  135. package/dist/modules/translations/lib/discoverPackages.cjs.js +0 -121
  136. package/dist/modules/translations/lib/extractTranslations.cjs.js +0 -71
  137. package/dist/modules/translations/lib/messageFilePath.cjs.js +0 -43
  138. package/dist/packages/backend-defaults/package.json.cjs.js +0 -6
  139. package/dist/packages/backend-plugin-api/package.json.cjs.js +0 -6
  140. package/dist/packages/backend-test-utils/package.json.cjs.js +0 -6
  141. package/dist/packages/catalog-client/package.json.cjs.js +0 -6
  142. package/dist/packages/cli/package.json.cjs.js +0 -159
  143. package/dist/packages/config/package.json.cjs.js +0 -6
  144. package/dist/packages/core-app-api/package.json.cjs.js +0 -6
  145. package/dist/packages/core-components/package.json.cjs.js +0 -6
  146. package/dist/packages/core-plugin-api/package.json.cjs.js +0 -6
  147. package/dist/packages/dev-utils/package.json.cjs.js +0 -6
  148. package/dist/packages/errors/package.json.cjs.js +0 -6
  149. package/dist/packages/frontend-defaults/package.json.cjs.js +0 -6
  150. package/dist/packages/frontend-plugin-api/package.json.cjs.js +0 -6
  151. package/dist/packages/frontend-plugin-api/src/routing/describeParentCallSite.cjs.js +0 -26
  152. package/dist/packages/frontend-test-utils/package.json.cjs.js +0 -6
  153. package/dist/packages/test-utils/package.json.cjs.js +0 -6
  154. package/dist/packages/theme/package.json.cjs.js +0 -6
  155. package/dist/packages/types/package.json.cjs.js +0 -6
  156. package/dist/plugins/auth-backend/package.json.cjs.js +0 -6
  157. package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +0 -6
  158. package/dist/plugins/catalog-node/package.json.cjs.js +0 -6
  159. package/dist/plugins/scaffolder-node/package.json.cjs.js +0 -6
  160. package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +0 -6
  161. package/dist/wiring/CommandRegistry.cjs.js +0 -14
  162. package/dist/wiring/factory.cjs.js +0 -15
  163. package/dist/wiring/types.cjs.js +0 -11
  164. package/templates/backend-plugin/.eslintrc.js.hbs +0 -1
  165. package/templates/backend-plugin/README.md.hbs +0 -28
  166. package/templates/backend-plugin/dev/index.ts.hbs +0 -60
  167. package/templates/backend-plugin/package.json.hbs +0 -44
  168. package/templates/backend-plugin/portable-template.yaml +0 -5
  169. package/templates/backend-plugin/src/index.ts.hbs +0 -1
  170. package/templates/backend-plugin/src/plugin.test.ts.hbs +0 -129
  171. package/templates/backend-plugin/src/plugin.ts.hbs +0 -32
  172. package/templates/backend-plugin/src/router.test.ts +0 -67
  173. package/templates/backend-plugin/src/router.ts +0 -51
  174. package/templates/backend-plugin/src/services/TodoListService.ts +0 -155
  175. package/templates/backend-plugin/src/setupTests.ts +0 -1
  176. package/templates/backend-plugin-module/.eslintrc.js.hbs +0 -1
  177. package/templates/backend-plugin-module/README.md.hbs +0 -5
  178. package/templates/backend-plugin-module/package.json.hbs +0 -34
  179. package/templates/backend-plugin-module/portable-template.yaml +0 -5
  180. package/templates/backend-plugin-module/src/index.ts.hbs +0 -8
  181. package/templates/backend-plugin-module/src/module.ts.hbs +0 -17
  182. package/templates/catalog-provider-module/.eslintrc.js.hbs +0 -1
  183. package/templates/catalog-provider-module/README.md.hbs +0 -5
  184. package/templates/catalog-provider-module/config.d.ts.hbs +0 -34
  185. package/templates/catalog-provider-module/package.json.hbs +0 -36
  186. package/templates/catalog-provider-module/portable-template.yaml +0 -9
  187. package/templates/catalog-provider-module/src/index.ts.hbs +0 -8
  188. package/templates/catalog-provider-module/src/module.ts.hbs +0 -29
  189. package/templates/catalog-provider-module/src/provider/readProviderConfigs.ts.hbs +0 -78
  190. package/templates/catalog-provider-module/src/provider/{{providerClass}}.test.ts.hbs +0 -18
  191. package/templates/catalog-provider-module/src/provider/{{providerClass}}.ts.hbs +0 -109
  192. package/templates/frontend-plugin/.eslintrc.js.hbs +0 -1
  193. package/templates/frontend-plugin/README.md.hbs +0 -13
  194. package/templates/frontend-plugin/dev/index.tsx.hbs +0 -11
  195. package/templates/frontend-plugin/package.json.hbs +0 -54
  196. package/templates/frontend-plugin/portable-template.yaml +0 -6
  197. package/templates/frontend-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +0 -28
  198. package/templates/frontend-plugin/src/components/ExampleComponent/ExampleComponent.tsx.hbs +0 -37
  199. package/templates/frontend-plugin/src/components/ExampleComponent/index.ts +0 -1
  200. package/templates/frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +0 -19
  201. package/templates/frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs +0 -308
  202. package/templates/frontend-plugin/src/components/ExampleFetchComponent/index.ts +0 -1
  203. package/templates/frontend-plugin/src/index.ts.hbs +0 -1
  204. package/templates/frontend-plugin/src/plugin.test.ts.hbs +0 -7
  205. package/templates/frontend-plugin/src/plugin.ts.hbs +0 -22
  206. package/templates/frontend-plugin/src/routes.ts.hbs +0 -5
  207. package/templates/frontend-plugin/src/setupTests.ts +0 -1
  208. package/templates/new-frontend-plugin/.eslintrc.js.hbs +0 -1
  209. package/templates/new-frontend-plugin/README.md.hbs +0 -20
  210. package/templates/new-frontend-plugin/dev/index.tsx +0 -10
  211. package/templates/new-frontend-plugin/package.json.hbs +0 -49
  212. package/templates/new-frontend-plugin/portable-template.yaml +0 -5
  213. package/templates/new-frontend-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +0 -28
  214. package/templates/new-frontend-plugin/src/components/ExampleComponent/ExampleComponent.tsx.hbs +0 -37
  215. package/templates/new-frontend-plugin/src/components/ExampleComponent/index.ts +0 -1
  216. package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +0 -19
  217. package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs +0 -308
  218. package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/index.ts +0 -1
  219. package/templates/new-frontend-plugin/src/index.ts.hbs +0 -1
  220. package/templates/new-frontend-plugin/src/plugin.test.ts.hbs +0 -7
  221. package/templates/new-frontend-plugin/src/plugin.tsx.hbs +0 -25
  222. package/templates/new-frontend-plugin/src/routes.ts +0 -3
  223. package/templates/new-frontend-plugin/src/setupTests.ts +0 -1
  224. package/templates/new-frontend-plugin-module/.eslintrc.js.hbs +0 -1
  225. package/templates/new-frontend-plugin-module/README.md.hbs +0 -5
  226. package/templates/new-frontend-plugin-module/package.json.hbs +0 -35
  227. package/templates/new-frontend-plugin-module/portable-template.yaml +0 -5
  228. package/templates/new-frontend-plugin-module/src/index.ts.hbs +0 -1
  229. package/templates/new-frontend-plugin-module/src/module.tsx.hbs +0 -8
  230. package/templates/new-frontend-plugin-module/src/setupTests.ts +0 -1
  231. package/templates/node-library/.eslintrc.js.hbs +0 -1
  232. package/templates/node-library/README.md.hbs +0 -12
  233. package/templates/node-library/package.json.hbs +0 -29
  234. package/templates/node-library/portable-template.yaml +0 -3
  235. package/templates/node-library/src/index.ts.hbs +0 -1
  236. package/templates/node-library/src/setupTests.ts +0 -1
  237. package/templates/plugin-common-library/.eslintrc.js.hbs +0 -1
  238. package/templates/plugin-common-library/README.md.hbs +0 -5
  239. package/templates/plugin-common-library/package.json.hbs +0 -31
  240. package/templates/plugin-common-library/portable-template.yaml +0 -3
  241. package/templates/plugin-common-library/src/index.ts.hbs +0 -19
  242. package/templates/plugin-common-library/src/setupTests.ts +0 -1
  243. package/templates/plugin-node-library/.eslintrc.js.hbs +0 -1
  244. package/templates/plugin-node-library/README.md.hbs +0 -5
  245. package/templates/plugin-node-library/package.json.hbs +0 -30
  246. package/templates/plugin-node-library/portable-template.yaml +0 -3
  247. package/templates/plugin-node-library/src/index.ts.hbs +0 -18
  248. package/templates/plugin-node-library/src/setupTests.ts +0 -1
  249. package/templates/plugin-web-library/.eslintrc.js.hbs +0 -1
  250. package/templates/plugin-web-library/README.md.hbs +0 -5
  251. package/templates/plugin-web-library/package.json.hbs +0 -42
  252. package/templates/plugin-web-library/portable-template.yaml +0 -3
  253. package/templates/plugin-web-library/src/components/ExampleComponent/ExampleComponent.test.tsx +0 -17
  254. package/templates/plugin-web-library/src/components/ExampleComponent/ExampleComponent.tsx +0 -28
  255. package/templates/plugin-web-library/src/components/ExampleComponent/index.ts +0 -2
  256. package/templates/plugin-web-library/src/components/index.ts +0 -5
  257. package/templates/plugin-web-library/src/hooks/index.ts +0 -5
  258. package/templates/plugin-web-library/src/hooks/useExample/index.ts +0 -1
  259. package/templates/plugin-web-library/src/hooks/useExample/useExample.ts +0 -15
  260. package/templates/plugin-web-library/src/index.ts.hbs +0 -12
  261. package/templates/plugin-web-library/src/setupTests.ts +0 -1
  262. package/templates/scaffolder-backend-module/.eslintrc.js.hbs +0 -1
  263. package/templates/scaffolder-backend-module/README.md.hbs +0 -5
  264. package/templates/scaffolder-backend-module/package.json.hbs +0 -36
  265. package/templates/scaffolder-backend-module/portable-template.yaml +0 -6
  266. package/templates/scaffolder-backend-module/src/actions/example.test.ts +0 -24
  267. package/templates/scaffolder-backend-module/src/actions/example.ts +0 -39
  268. package/templates/scaffolder-backend-module/src/index.ts.hbs +0 -8
  269. package/templates/scaffolder-backend-module/src/module.ts +0 -21
  270. package/templates/web-library/.eslintrc.js.hbs +0 -1
  271. package/templates/web-library/README.md.hbs +0 -12
  272. package/templates/web-library/package.json.hbs +0 -30
  273. package/templates/web-library/portable-template.yaml +0 -3
  274. package/templates/web-library/src/index.ts.hbs +0 -1
  275. package/templates/web-library/src/setupTests.ts +0 -1
  276. /package/dist/{packages/opaque-internal → opaque-internal}/src/OpaqueType.cjs.js +0 -0
@@ -1,87 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cleye = require('cleye');
6
- var fs = require('fs-extra');
7
- var path = require('node:path');
8
- var cliNode = require('@backstage/cli-node');
9
-
10
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
-
12
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
13
-
14
- const configArgPattern = /--config[=\s][^\s$]+/;
15
- const noStartRoles = ["cli", "common-library"];
16
- var packageScripts = async ({ args, info }) => {
17
- cleye.cli({ help: info, booleanFlagNegation: true }, void 0, args);
18
- const packages = await cliNode.PackageGraph.listTargetPackages();
19
- await Promise.all(
20
- packages.map(async ({ dir, packageJson }) => {
21
- const role = cliNode.PackageRoles.getRoleFromPackage(packageJson);
22
- if (!role) {
23
- return;
24
- }
25
- const roleInfo = cliNode.PackageRoles.getRoleInfo(role);
26
- const hasStart = !noStartRoles.includes(role);
27
- const needsPack = !(roleInfo.output.includes("bundle") || role === "cli");
28
- const scripts = packageJson.scripts ?? {};
29
- const startCmd = ["start"];
30
- if (scripts.start?.includes("--check")) {
31
- startCmd.push("--check");
32
- }
33
- if (scripts.start?.includes("--config")) {
34
- startCmd.push(...scripts.start.match(configArgPattern) ?? []);
35
- }
36
- const buildCmd = ["build"];
37
- if (scripts.build?.includes("--minify")) {
38
- buildCmd.push("--minify");
39
- }
40
- if (scripts.build?.includes("--config")) {
41
- buildCmd.push(...scripts.build.match(configArgPattern) ?? []);
42
- }
43
- const testCmd = ["test"];
44
- if (scripts.test?.startsWith("backstage-cli test")) {
45
- const testArgs = scripts.test.slice("backstage-cli test".length).split(" ").filter(Boolean);
46
- if (testArgs.includes("--passWithNoTests")) {
47
- testArgs.splice(testArgs.indexOf("--passWithNoTests"), 1);
48
- }
49
- testCmd.push(...testArgs);
50
- }
51
- const expectedScripts = {
52
- ...hasStart && {
53
- start: `backstage-cli package ${startCmd.join(" ")}`
54
- },
55
- build: `backstage-cli package ${buildCmd.join(" ")}`,
56
- lint: "backstage-cli package lint",
57
- test: `backstage-cli package ${testCmd.join(" ")}`,
58
- clean: "backstage-cli package clean",
59
- ...needsPack && {
60
- postpack: "backstage-cli package postpack",
61
- prepack: "backstage-cli package prepack"
62
- }
63
- };
64
- let changed = false;
65
- const currentScripts = packageJson.scripts = packageJson.scripts || {};
66
- for (const [name, value] of Object.entries(expectedScripts)) {
67
- const currentScript = currentScripts[name];
68
- const isMissing = !currentScript;
69
- const isDifferent = currentScript !== value;
70
- const isBackstageScript = currentScript?.includes("backstage-cli");
71
- if (isMissing || isDifferent && isBackstageScript) {
72
- changed = true;
73
- currentScripts[name] = value;
74
- }
75
- }
76
- if (changed) {
77
- console.log(`Updating scripts for ${packageJson.name}`);
78
- await fs__default.default.writeJson(path.resolve(dir, "package.json"), packageJson, {
79
- spaces: 2
80
- });
81
- }
82
- })
83
- );
84
- };
85
-
86
- exports.default = packageScripts;
87
- //# sourceMappingURL=packageScripts.cjs.js.map
@@ -1,51 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cleye = require('cleye');
6
- var fs = require('fs-extra');
7
- var path = require('node:path');
8
- var cliNode = require('@backstage/cli-node');
9
-
10
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
-
12
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
13
-
14
- const REACT_ROUTER_DEPS = ["react-router", "react-router-dom"];
15
- const REACT_ROUTER_RANGE = "6.0.0-beta.0 || ^6.3.0";
16
- var reactRouterDeps = async ({ args, info }) => {
17
- cleye.cli({ help: info, booleanFlagNegation: true }, void 0, args);
18
- const packages = await cliNode.PackageGraph.listTargetPackages();
19
- await Promise.all(
20
- packages.map(async ({ dir, packageJson }) => {
21
- const role = cliNode.PackageRoles.getRoleFromPackage(packageJson);
22
- if (role === "frontend") {
23
- console.log(`Skipping ${packageJson.name}`);
24
- return;
25
- }
26
- let changed = false;
27
- for (const depName of ["dependencies", "devDependencies"]) {
28
- const depsCollection = packageJson[depName];
29
- if (depsCollection) {
30
- for (const key of Object.keys(depsCollection)) {
31
- if (REACT_ROUTER_DEPS.includes(key)) {
32
- delete depsCollection[key];
33
- const peerDeps = packageJson.peerDependencies = packageJson.peerDependencies ?? {};
34
- peerDeps[key] = REACT_ROUTER_RANGE;
35
- changed = true;
36
- }
37
- }
38
- }
39
- }
40
- if (changed) {
41
- console.log(`Updating dependencies for ${packageJson.name}`);
42
- await fs__default.default.writeJson(path.resolve(dir, "package.json"), packageJson, {
43
- spaces: 2
44
- });
45
- }
46
- })
47
- );
48
- };
49
-
50
- exports.default = reactRouterDeps;
51
- //# sourceMappingURL=reactRouterDeps.cjs.js.map
@@ -1,403 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cliCommon = require('@backstage/cli-common');
6
- var node_process = require('node:process');
7
- var fs = require('fs-extra');
8
- var chalk = require('chalk');
9
- var minimatch = require('minimatch');
10
- var semver = require('semver');
11
- var cleye = require('cleye');
12
- var errors = require('@backstage/errors');
13
- var path = require('node:path');
14
- var cliNode = require('@backstage/cli-node');
15
- var packages = require('../../lib/versioning/packages.cjs.js');
16
- var releaseManifests = require('@backstage/release-manifests');
17
- var migrate = require('./migrate.cjs.js');
18
- var utils = require('../../lib/utils.cjs.js');
19
-
20
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
21
-
22
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
23
- var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
24
- var semver__default = /*#__PURE__*/_interopDefaultCompat(semver);
25
-
26
- cliCommon.bootstrapEnvProxyAgents();
27
- const DEP_TYPES = [
28
- "dependencies",
29
- "devDependencies",
30
- "peerDependencies",
31
- "optionalDependencies"
32
- ];
33
- const DEFAULT_PATTERN_GLOB = "@backstage/*";
34
- function extendsDefaultPattern(pattern) {
35
- if (!pattern.endsWith("/*")) {
36
- return false;
37
- }
38
- return minimatch.minimatch("@backstage/", pattern.slice(0, -1));
39
- }
40
- var bump = async ({ args, info }) => {
41
- const {
42
- flags: { pattern: patternFlag, release, skipInstall, skipMigrate }
43
- } = cleye.cli(
44
- {
45
- help: info,
46
- booleanFlagNegation: true,
47
- flags: {
48
- pattern: {
49
- type: String,
50
- description: "Override glob for matching packages to upgrade"
51
- },
52
- release: {
53
- type: String,
54
- description: "Bump to a specific Backstage release line or version",
55
- default: "main"
56
- },
57
- skipInstall: {
58
- type: Boolean,
59
- description: "Skips yarn install step"
60
- },
61
- skipMigrate: {
62
- type: Boolean,
63
- description: "Skips migration of any moved packages"
64
- }
65
- }
66
- },
67
- void 0,
68
- args
69
- );
70
- const lockfilePath = cliCommon.targetPaths.resolveRoot("yarn.lock");
71
- const lockfile = await cliNode.Lockfile.load(lockfilePath);
72
- const yarnPluginEnabled = await cliNode.hasBackstageYarnPlugin();
73
- let pattern = patternFlag;
74
- if (!pattern) {
75
- console.log(`Using default pattern glob ${DEFAULT_PATTERN_GLOB}`);
76
- pattern = DEFAULT_PATTERN_GLOB;
77
- } else if (pattern === "*") {
78
- throw new Error(`Rejected pattern '*', please use a more specific pattern`);
79
- } else {
80
- console.log(`Using custom pattern glob ${pattern}`);
81
- }
82
- let findTargetVersion;
83
- let releaseManifest;
84
- if (node_process.env.BACKSTAGE_MANIFEST_FILE) {
85
- releaseManifest = await fs__default.default.readJson(node_process.env.BACKSTAGE_MANIFEST_FILE);
86
- findTargetVersion = createStrictVersionFinder({
87
- releaseManifest
88
- });
89
- } else if (semver__default.default.valid(release)) {
90
- releaseManifest = await releaseManifests.getManifestByVersion({ version: release });
91
- findTargetVersion = createStrictVersionFinder({
92
- releaseManifest
93
- });
94
- } else {
95
- if (release === "next") {
96
- const next = await releaseManifests.getManifestByReleaseLine({
97
- releaseLine: "next",
98
- versionsBaseUrl: node_process.env.BACKSTAGE_VERSIONS_BASE_URL
99
- });
100
- const main = await releaseManifests.getManifestByReleaseLine({
101
- releaseLine: "main",
102
- versionsBaseUrl: node_process.env.BACKSTAGE_VERSIONS_BASE_URL
103
- });
104
- releaseManifest = semver__default.default.gt(next.releaseVersion, main.releaseVersion) ? next : main;
105
- } else {
106
- releaseManifest = await releaseManifests.getManifestByReleaseLine({
107
- releaseLine: release,
108
- versionsBaseUrl: node_process.env.BACKSTAGE_VERSIONS_BASE_URL
109
- });
110
- }
111
- findTargetVersion = createVersionFinder({
112
- releaseLine: release,
113
- releaseManifest
114
- });
115
- }
116
- if (yarnPluginEnabled) {
117
- console.log();
118
- console.log(
119
- `Updating yarn plugin to v${releaseManifest.releaseVersion}...`
120
- );
121
- console.log();
122
- const yarnPluginUrl = node_process.env.BACKSTAGE_VERSIONS_BASE_URL ? `${node_process.env.BACKSTAGE_VERSIONS_BASE_URL}/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin` : `https://versions.backstage.io/v1/releases/${releaseManifest.releaseVersion}/yarn-plugin`;
123
- await cliCommon.run(["yarn", "plugin", "import", yarnPluginUrl]).waitForExit();
124
- console.log();
125
- }
126
- const dependencyMap = await packages.mapDependencies(cliCommon.targetPaths.dir, pattern);
127
- const versionBumps = /* @__PURE__ */ new Map();
128
- await cliNode.runConcurrentTasks({
129
- concurrencyFactor: 4,
130
- items: dependencyMap.entries(),
131
- async worker([name, pkgs]) {
132
- let target;
133
- try {
134
- target = await findTargetVersion(name);
135
- } catch (error) {
136
- if (errors.isError(error) && error.name === "NotFoundError") {
137
- console.log(`Package info not found, ignoring package ${name}`);
138
- return;
139
- }
140
- throw error;
141
- }
142
- for (const pkg of pkgs) {
143
- versionBumps.set(
144
- pkg.name,
145
- (versionBumps.get(pkg.name) ?? []).concat({
146
- name,
147
- location: pkg.location,
148
- range: `^${target}`,
149
- // TODO(Rugvip): Option to use something else than ^?
150
- target
151
- })
152
- );
153
- }
154
- }
155
- });
156
- if (versionBumps.size === 0) {
157
- console.log(chalk__default.default.green("All Backstage packages are up to date!"));
158
- } else {
159
- console.log(chalk__default.default.yellow("Some packages are outdated, updating"));
160
- console.log();
161
- const breakingUpdates = /* @__PURE__ */ new Map();
162
- await cliNode.runConcurrentTasks({
163
- concurrencyFactor: 4,
164
- items: versionBumps.entries(),
165
- async worker([name, deps]) {
166
- const pkgPath = path.resolve(deps[0].location, "package.json");
167
- const pkgJson = await fs__default.default.readJson(pkgPath);
168
- for (const dep of deps) {
169
- console.log(
170
- `${chalk__default.default.cyan("bumping")} ${dep.name} in ${chalk__default.default.cyan(
171
- name
172
- )} to ${chalk__default.default.yellow(dep.range)}`
173
- );
174
- for (const depType of DEP_TYPES) {
175
- if (depType in pkgJson && dep.name in pkgJson[depType]) {
176
- const oldRange = pkgJson[depType][dep.name];
177
- const oldLockfileRange = await asLockfileVersion(oldRange);
178
- const useBackstageRange = yarnPluginEnabled && // Only use backstage:^ versions if the package is present in
179
- // the manifest for the release we're bumping to.
180
- releaseManifest.packages.find(
181
- ({ name: manifestPackageName }) => dep.name === manifestPackageName
182
- ) && // Don't use backstage:^ versions for peerDependencies; they only
183
- // support npm and workspace: versions.
184
- depType !== "peerDependencies";
185
- const newRange = useBackstageRange ? "backstage:^" : dep.range;
186
- pkgJson[depType][dep.name] = newRange;
187
- const lockfileEntry = lockfile.get(dep.name)?.find((entry) => entry.range === oldLockfileRange);
188
- if (lockfileEntry) {
189
- const from = lockfileEntry.version;
190
- const to = dep.target;
191
- if (!semver__default.default.satisfies(to, `^${from}`)) {
192
- breakingUpdates.set(dep.name, { from, to });
193
- }
194
- }
195
- }
196
- }
197
- }
198
- await fs__default.default.writeJson(pkgPath, pkgJson, { spaces: 2 });
199
- }
200
- });
201
- console.log();
202
- if (extendsDefaultPattern(pattern)) {
203
- await bumpBackstageJsonVersion(
204
- releaseManifest.releaseVersion,
205
- yarnPluginEnabled
206
- );
207
- } else {
208
- console.log(
209
- chalk__default.default.yellow(
210
- `Skipping backstage.json update as custom pattern is used`
211
- )
212
- );
213
- }
214
- if (!skipInstall) {
215
- await utils.runYarnInstall();
216
- } else {
217
- console.log();
218
- console.log(chalk__default.default.yellow(`Skipping yarn install`));
219
- }
220
- if (!skipMigrate) {
221
- console.log();
222
- const changed = await migrate.migrateMovedPackages({
223
- pattern: patternFlag
224
- });
225
- if (changed && !skipInstall) {
226
- await utils.runYarnInstall();
227
- }
228
- }
229
- if (breakingUpdates.size > 0) {
230
- console.log();
231
- console.log(
232
- chalk__default.default.yellow("\u26A0\uFE0F The following packages may have breaking changes:")
233
- );
234
- console.log();
235
- for (const [name, { from, to }] of Array.from(
236
- breakingUpdates.entries()
237
- ).sort()) {
238
- console.log(
239
- ` ${chalk__default.default.yellow(name)} : ${chalk__default.default.yellow(from)} ~> ${chalk__default.default.yellow(
240
- to
241
- )}`
242
- );
243
- let path;
244
- if (name.startsWith("@backstage/plugin-")) {
245
- path = `plugins/${name.replace("@backstage/plugin-", "")}`;
246
- } else if (name.startsWith("@backstage/")) {
247
- path = `packages/${name.replace("@backstage/", "")}`;
248
- }
249
- if (path) {
250
- console.log(
251
- ` https://github.com/backstage/backstage/blob/master/${path}/CHANGELOG.md`
252
- );
253
- }
254
- console.log();
255
- }
256
- } else {
257
- console.log();
258
- }
259
- if (yarnPluginEnabled) {
260
- console.log();
261
- console.log(
262
- chalk__default.default.blue(
263
- `${chalk__default.default.bold(
264
- "NOTE"
265
- )}: this bump used backstage:^ versions in package.json files, since the Backstage yarn plugin was detected in the repository. To migrate back to explicit npm versions, remove the plugin by running "yarn plugin remove @yarnpkg/plugin-backstage", then repeat this command.`
266
- )
267
- );
268
- console.log();
269
- }
270
- console.log(chalk__default.default.green("Version bump complete!"));
271
- }
272
- console.log();
273
- };
274
- function createStrictVersionFinder(options) {
275
- const releasePackages = new Map(
276
- options.releaseManifest.packages.map((p) => [p.name, p.version])
277
- );
278
- return async function findTargetVersion(name) {
279
- console.log(`Checking for updates of ${name}`);
280
- const manifestVersion = releasePackages.get(name);
281
- if (manifestVersion) {
282
- return manifestVersion;
283
- }
284
- throw new errors.NotFoundError(`Package ${name} not found in release manifest`);
285
- };
286
- }
287
- function createVersionFinder(options) {
288
- const {
289
- releaseLine = "latest",
290
- packageInfoFetcher = packages.fetchPackageInfo,
291
- releaseManifest
292
- } = options;
293
- const distTag = releaseLine === "main" ? "latest" : releaseLine;
294
- const found = /* @__PURE__ */ new Map();
295
- const releasePackages = new Map(
296
- releaseManifest?.packages.map((p) => [p.name, p.version])
297
- );
298
- return async function findTargetVersion(name) {
299
- const existing = found.get(name);
300
- if (existing) {
301
- return existing;
302
- }
303
- console.log(`Checking for updates of ${name}`);
304
- const manifestVersion = releasePackages.get(name);
305
- if (manifestVersion) {
306
- return manifestVersion;
307
- }
308
- const info = await packageInfoFetcher(name);
309
- const latestVersion = info["dist-tags"].latest;
310
- if (!latestVersion) {
311
- throw new Error(`No target 'latest' version found for ${name}`);
312
- }
313
- const taggedVersion = info["dist-tags"][distTag];
314
- if (distTag === "latest" || !taggedVersion) {
315
- found.set(name, latestVersion);
316
- return latestVersion;
317
- }
318
- const latestVersionDateStr = info.time[latestVersion];
319
- const taggedVersionDateStr = info.time[taggedVersion];
320
- if (!latestVersionDateStr) {
321
- throw new Error(
322
- `No time available for version '${latestVersion}' of ${name}`
323
- );
324
- }
325
- if (!taggedVersionDateStr) {
326
- throw new Error(
327
- `No time available for version '${taggedVersion}' of ${name}`
328
- );
329
- }
330
- const latestVersionRelease = new Date(latestVersionDateStr).getTime();
331
- const taggedVersionRelease = new Date(taggedVersionDateStr).getTime();
332
- if (latestVersionRelease > taggedVersionRelease) {
333
- found.set(name, latestVersion);
334
- return latestVersion;
335
- }
336
- found.set(name, taggedVersion);
337
- return taggedVersion;
338
- };
339
- }
340
- function getBackstageJsonPath() {
341
- return cliCommon.targetPaths.resolveRoot(cliCommon.BACKSTAGE_JSON);
342
- }
343
- async function getBackstageJson() {
344
- const backstageJsonPath = getBackstageJsonPath();
345
- return fs__default.default.readJSON(backstageJsonPath).catch((e) => {
346
- if (e.code === "ENOENT") {
347
- return;
348
- }
349
- throw e;
350
- });
351
- }
352
- async function bumpBackstageJsonVersion(version, useYarnPlugin) {
353
- const backstageJson = await getBackstageJson();
354
- const prevVersion = backstageJson?.version;
355
- if (prevVersion === version) {
356
- return;
357
- }
358
- const { yellow, cyan, green } = chalk__default.default;
359
- if (prevVersion) {
360
- const from = encodeURIComponent(prevVersion);
361
- const to = encodeURIComponent(version);
362
- let link = `https://backstage.github.io/upgrade-helper/?from=${from}&to=${to}`;
363
- if (useYarnPlugin) {
364
- link += "&yarnPlugin=1";
365
- }
366
- console.log(
367
- yellow(
368
- `Upgraded from release ${green(prevVersion)} to ${green(
369
- version
370
- )}, please review these template changes:`
371
- )
372
- );
373
- console.log();
374
- console.log(` ${cyan(link)}`);
375
- console.log();
376
- } else {
377
- console.log(
378
- yellow(
379
- `Your project is now at version ${version}, which has been written to ${cliCommon.BACKSTAGE_JSON}`
380
- )
381
- );
382
- }
383
- await fs__default.default.writeJson(
384
- getBackstageJsonPath(),
385
- { ...backstageJson, version },
386
- {
387
- spaces: 2,
388
- encoding: "utf8"
389
- }
390
- );
391
- }
392
- async function asLockfileVersion(version) {
393
- if (version === "backstage:^") {
394
- return `backstage:${(await getBackstageJson())?.version}`;
395
- }
396
- return version;
397
- }
398
-
399
- exports.bumpBackstageJsonVersion = bumpBackstageJsonVersion;
400
- exports.createStrictVersionFinder = createStrictVersionFinder;
401
- exports.createVersionFinder = createVersionFinder;
402
- exports.default = bump;
403
- //# sourceMappingURL=bump.cjs.js.map
@@ -1,133 +0,0 @@
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('node:path');
8
- var cleye = require('cleye');
9
- var fs = require('fs-extra');
10
- var minimatch = require('minimatch');
11
- var utils = require('../../lib/utils.cjs.js');
12
- var replace = require('replace-in-file');
13
-
14
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
15
-
16
- var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
17
- var replace__default = /*#__PURE__*/_interopDefaultCompat(replace);
18
-
19
- var migrate = async ({ args, info }) => {
20
- const {
21
- flags: { pattern, skipCodeChanges }
22
- } = cleye.cli(
23
- {
24
- help: info,
25
- booleanFlagNegation: true,
26
- flags: {
27
- pattern: {
28
- type: String,
29
- description: "Override glob for matching packages to upgrade"
30
- },
31
- skipCodeChanges: {
32
- type: Boolean,
33
- description: "Skip code changes and only update package.json files"
34
- }
35
- }
36
- },
37
- void 0,
38
- args
39
- );
40
- const changed = await migrateMovedPackages({
41
- pattern,
42
- skipCodeChanges
43
- });
44
- if (changed) {
45
- await utils.runYarnInstall();
46
- }
47
- };
48
- async function migrateMovedPackages(options) {
49
- console.log(
50
- "Checking for moved packages to the @backstage-community namespace..."
51
- );
52
- const packages = await cliNode.PackageGraph.listTargetPackages();
53
- let didAnythingChange = false;
54
- for (const pkg of packages) {
55
- const pkgName = pkg.packageJson.name;
56
- let didPackageChange = false;
57
- const movedPackages = /* @__PURE__ */ new Map();
58
- for (const depType of [
59
- "dependencies",
60
- "devDependencies",
61
- "peerDependencies"
62
- ]) {
63
- const depsObj = pkg.packageJson[depType];
64
- if (!depsObj) {
65
- continue;
66
- }
67
- for (const [depName, depVersion] of Object.entries(depsObj)) {
68
- if (options?.pattern && !minimatch.minimatch(depName, options.pattern)) {
69
- continue;
70
- }
71
- let packageInfo;
72
- try {
73
- packageInfo = await fs.readJson(
74
- require.resolve(`${depName}/package.json`, {
75
- paths: [pkg.dir]
76
- })
77
- );
78
- } catch (ex) {
79
- console.warn(
80
- chalk__default.default.yellow(
81
- `Could not find package.json for ${depName}@${depVersion} in ${pkgName} (${depType})`
82
- )
83
- );
84
- continue;
85
- }
86
- const movedPackageName = packageInfo.backstage?.moved;
87
- if (movedPackageName) {
88
- movedPackages.set(depName, movedPackageName);
89
- console.log(
90
- chalk__default.default.yellow(
91
- `Found a moved package ${depName}@${depVersion} -> ${movedPackageName} in ${pkgName} (${depType})`
92
- )
93
- );
94
- didPackageChange = true;
95
- didAnythingChange = true;
96
- depsObj[movedPackageName] = depsObj[depName];
97
- delete depsObj[depName];
98
- }
99
- }
100
- }
101
- if (didPackageChange) {
102
- await fs.writeJson(path.resolve(pkg.dir, "package.json"), pkg.packageJson, {
103
- spaces: 2
104
- });
105
- if (!options?.skipCodeChanges) {
106
- const files = await replace__default.default({
107
- files: path.join(pkg.dir, "src", "**"),
108
- allowEmptyPaths: true,
109
- processor: (content) => {
110
- return Array.from(movedPackages.entries()).reduce(
111
- (newContent, [oldName, newName]) => {
112
- return newContent.replace(new RegExp(`"${oldName}"`, "g"), `"${newName}"`).replace(new RegExp(`'${oldName}'`, "g"), `'${newName}'`).replace(new RegExp(`${oldName}/`, "g"), `${newName}/`);
113
- },
114
- content
115
- );
116
- }
117
- });
118
- if (files.length > 0) {
119
- console.log(
120
- chalk__default.default.green(
121
- `Updated ${files.length} files in ${pkgName} to use the new package names`
122
- )
123
- );
124
- }
125
- }
126
- }
127
- }
128
- return didAnythingChange;
129
- }
130
-
131
- exports.default = migrate;
132
- exports.migrateMovedPackages = migrateMovedPackages;
133
- //# sourceMappingURL=migrate.cjs.js.map