@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,199 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cliNode = require('@backstage/cli-node');
6
- var path = require('node:path');
7
- var cliCommon = require('@backstage/cli-common');
8
- var cleye = require('cleye');
9
- var resolveLinkedWorkspace = require('../package/start/resolveLinkedWorkspace.cjs.js');
10
- var startPackage = require('../package/start/startPackage.cjs.js');
11
- var node_util = require('node:util');
12
-
13
- const ACCEPTED_PACKAGE_ROLES = [
14
- "frontend",
15
- "backend",
16
- "frontend-plugin",
17
- "backend-plugin"
18
- ];
19
- var start = async ({ args, info }) => {
20
- const {
21
- flags: { plugin, config, require: requirePath, link, inspect, inspectBrk },
22
- _: namesOrPaths
23
- } = cleye.cli(
24
- {
25
- help: { ...info, usage: `${info.usage} [packages...]` },
26
- booleanFlagNegation: true,
27
- parameters: ["[packages...]"],
28
- flags: {
29
- plugin: {
30
- type: [String],
31
- description: "Start the dev entry-point for any matching plugin package in the repo",
32
- default: []
33
- },
34
- config: {
35
- type: [String],
36
- description: "Config files to load instead of app-config.yaml",
37
- default: []
38
- },
39
- require: {
40
- type: String,
41
- description: "Add a --require argument to the node process. Applies to backend package only"
42
- },
43
- link: {
44
- type: String,
45
- description: "Link an external workspace for module resolution"
46
- },
47
- inspect: {
48
- type: String,
49
- description: "Enable the Node.js inspector, optionally at a specific host:port"
50
- },
51
- inspectBrk: {
52
- type: String,
53
- description: "Enable the Node.js inspector and break before user code starts"
54
- }
55
- }
56
- },
57
- void 0,
58
- args
59
- );
60
- const targetPackages = await findTargetPackages(namesOrPaths, plugin);
61
- const packageOptions = await resolvePackageOptions(targetPackages, {
62
- config,
63
- inspect: inspect || (inspect === "" ? true : void 0),
64
- inspectBrk: inspectBrk || (inspectBrk === "" ? true : void 0),
65
- require: requirePath,
66
- link
67
- });
68
- if (packageOptions.length === 0) {
69
- console.log("No packages found to start");
70
- return;
71
- }
72
- console.log(
73
- `Starting ${packageOptions.map(({ pkg }) => pkg.packageJson.name).join(", ")}`
74
- );
75
- await Promise.all(packageOptions.map((entry) => startPackage.startPackage(entry.options)));
76
- };
77
- async function findTargetPackages(namesOrPaths, pluginIds) {
78
- const targetPackages = new Array();
79
- const packages = await cliNode.PackageGraph.listTargetPackages();
80
- for (const pluginId of pluginIds) {
81
- const matchingPackages = packages.filter((pkg) => {
82
- return pluginId === pkg.packageJson.backstage?.pluginId && ACCEPTED_PACKAGE_ROLES.includes(pkg.packageJson.backstage.role);
83
- });
84
- if (matchingPackages.length === 0) {
85
- throw new Error(
86
- `Unable to find any plugin packages with plugin ID '${pluginId}'. Make sure backstage.pluginId is set in your package.json files by running 'yarn fix --publish'.`
87
- );
88
- }
89
- targetPackages.push(...matchingPackages);
90
- }
91
- if (targetPackages.length > 0) {
92
- return targetPackages;
93
- }
94
- for (const nameOrPath of namesOrPaths) {
95
- let matchingPackage = packages.find(
96
- (pkg) => nameOrPath === pkg.packageJson.name
97
- );
98
- if (!matchingPackage) {
99
- const absPath = cliCommon.targetPaths.resolveRoot(nameOrPath);
100
- matchingPackage = packages.find(
101
- (pkg) => path.relative(pkg.dir, absPath) === ""
102
- );
103
- }
104
- if (!matchingPackage) {
105
- throw new Error(`Unable to find package by name '${nameOrPath}'`);
106
- }
107
- targetPackages.push(matchingPackage);
108
- }
109
- if (targetPackages.length > 0) {
110
- return targetPackages;
111
- }
112
- for (const role of ["frontend", "backend"]) {
113
- const matchingPackages = packages.filter(
114
- (pkg) => pkg.packageJson.backstage?.role === role
115
- );
116
- if (matchingPackages.length > 1) {
117
- const expectedPath = cliCommon.targetPaths.resolveRoot(
118
- role === "frontend" ? "packages/app" : "packages/backend"
119
- );
120
- const matchByPath = matchingPackages.find(
121
- (pkg) => path.relative(expectedPath, pkg.dir) === ""
122
- );
123
- if (matchByPath) {
124
- targetPackages.push(matchByPath);
125
- continue;
126
- }
127
- throw new Error(
128
- `Found multiple packages with role '${role}' but none of the use the default path '${expectedPath}',choose which packages you want to run by passing the package names explicitly as arguments, for example 'yarn backstage-cli repo start my-app my-backend'.`
129
- );
130
- }
131
- targetPackages.push(...matchingPackages);
132
- }
133
- if (targetPackages.length > 0) {
134
- return targetPackages;
135
- }
136
- for (const role of ["frontend-plugin", "backend-plugin"]) {
137
- const matchingPackages = packages.filter(
138
- (pkg) => pkg.packageJson.backstage?.role === role
139
- );
140
- if (matchingPackages.length > 1) {
141
- throw new Error(
142
- `Found multiple packages with role '${role}', please choose which packages you want to run by passing the package names explicitly as arguments, for example 'yarn backstage-cli repo start my-plugin my-plugin-backend'.`
143
- );
144
- }
145
- targetPackages.push(...matchingPackages);
146
- }
147
- if (targetPackages.length > 0) {
148
- return targetPackages;
149
- }
150
- throw new Error(
151
- `Unable to find any packages with role 'frontend', 'backend', 'frontend-plugin', or 'backend-plugin'.`
152
- );
153
- }
154
- async function resolvePackageOptions(targetPackages, options) {
155
- const linkedWorkspace = await resolveLinkedWorkspace.resolveLinkedWorkspace(options.link);
156
- return targetPackages.flatMap((pkg) => {
157
- const startScript = pkg.packageJson.scripts?.start;
158
- if (!startScript) {
159
- console.log(
160
- `No start script found for package ${pkg.packageJson.name}, skipping...`
161
- );
162
- return [];
163
- }
164
- const { values: parsedOpts } = node_util.parseArgs({
165
- args: startScript.split(" "),
166
- strict: false,
167
- options: {
168
- config: {
169
- type: "string",
170
- multiple: true
171
- },
172
- require: {
173
- type: "string"
174
- }
175
- }
176
- });
177
- const parsedRequire = typeof parsedOpts.require === "string" ? parsedOpts.require : void 0;
178
- const parsedConfig = parsedOpts.config?.filter((c) => typeof c === "string") ?? [];
179
- return [
180
- {
181
- pkg,
182
- options: {
183
- role: pkg.packageJson.backstage?.role,
184
- targetDir: pkg.dir,
185
- configPaths: options.config.length > 0 ? options.config : parsedConfig,
186
- checksEnabled: false,
187
- linkedWorkspace,
188
- inspectEnabled: options.inspect,
189
- inspectBrkEnabled: options.inspectBrk,
190
- require: options.require ?? parsedRequire
191
- }
192
- }
193
- ];
194
- });
195
- }
196
-
197
- exports.default = start;
198
- exports.findTargetPackages = findTargetPackages;
199
- //# sourceMappingURL=start.cjs.js.map
@@ -1,68 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var factory = require('../../wiring/factory.cjs.js');
6
-
7
- const buildPlugin = factory.createCliPlugin({
8
- pluginId: "build",
9
- init: async (reg) => {
10
- reg.addCommand({
11
- path: ["package", "build"],
12
- description: "Build a package for production deployment or publishing",
13
- execute: { loader: () => import('./commands/package/build/index.cjs.js') }
14
- });
15
- reg.addCommand({
16
- path: ["repo", "build"],
17
- description: "Build packages in the project, excluding bundled app and backend packages.",
18
- execute: { loader: () => import('./commands/repo/build.cjs.js') }
19
- });
20
- reg.addCommand({
21
- path: ["package", "start"],
22
- description: "Start a package for local development",
23
- execute: { loader: () => import('./commands/package/start/index.cjs.js') }
24
- });
25
- reg.addCommand({
26
- path: ["repo", "start"],
27
- description: "Starts packages in the repo for local development",
28
- execute: { loader: () => import('./commands/repo/start.cjs.js') }
29
- });
30
- reg.addCommand({
31
- path: ["package", "clean"],
32
- description: "Delete cache directories",
33
- execute: {
34
- loader: () => import('./commands/package/clean.cjs.js')
35
- }
36
- });
37
- reg.addCommand({
38
- path: ["package", "prepack"],
39
- description: "Prepares a package for packaging before publishing",
40
- execute: {
41
- loader: () => import('./commands/package/prepack.cjs.js')
42
- }
43
- });
44
- reg.addCommand({
45
- path: ["package", "postpack"],
46
- description: "Restores the changes made by the prepack command",
47
- execute: {
48
- loader: () => import('./commands/package/postpack.cjs.js')
49
- }
50
- });
51
- reg.addCommand({
52
- path: ["repo", "clean"],
53
- description: "Delete cache and output directories",
54
- execute: {
55
- loader: () => import('./commands/repo/clean.cjs.js')
56
- }
57
- });
58
- reg.addCommand({
59
- path: ["build-workspace"],
60
- description: "Builds a temporary dist workspace from the provided packages",
61
- execute: { loader: () => import('./commands/buildWorkspace.cjs.js') }
62
- });
63
- }
64
- });
65
-
66
- exports.buildPlugin = buildPlugin;
67
- exports.default = buildPlugin;
68
- //# sourceMappingURL=index.cjs.js.map
@@ -1,81 +0,0 @@
1
- 'use strict';
2
-
3
- var os = require('node:os');
4
- var fs = require('fs-extra');
5
- var path = require('node:path');
6
- var tar = require('tar');
7
- var createDistWorkspace = require('./packager/createDistWorkspace.cjs.js');
8
- var packager = require('./builder/packager.cjs.js');
9
- var types = require('./builder/types.cjs.js');
10
- var cliNode = require('@backstage/cli-node');
11
-
12
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
13
-
14
- function _interopNamespaceCompat(e) {
15
- if (e && typeof e === 'object' && 'default' in e) return e;
16
- var n = Object.create(null);
17
- if (e) {
18
- Object.keys(e).forEach(function (k) {
19
- if (k !== 'default') {
20
- var d = Object.getOwnPropertyDescriptor(e, k);
21
- Object.defineProperty(n, k, d.get ? d : {
22
- enumerable: true,
23
- get: function () { return e[k]; }
24
- });
25
- }
26
- });
27
- }
28
- n.default = e;
29
- return Object.freeze(n);
30
- }
31
-
32
- var os__default = /*#__PURE__*/_interopDefaultCompat(os);
33
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
34
- var tar__namespace = /*#__PURE__*/_interopNamespaceCompat(tar);
35
-
36
- const BUNDLE_FILE = "bundle.tar.gz";
37
- const SKELETON_FILE = "skeleton.tar.gz";
38
- async function buildBackend(options) {
39
- const { targetDir, skipBuildDependencies, configPaths, minify } = options;
40
- const pkg = await fs__default.default.readJson(path.resolve(targetDir, "package.json"));
41
- await packager.buildPackage({
42
- targetDir,
43
- packageJson: pkg,
44
- outputs: /* @__PURE__ */ new Set([types.Output.cjs]),
45
- minify,
46
- workspacePackages: await cliNode.PackageGraph.listTargetPackages()
47
- });
48
- const tmpDir = await fs__default.default.mkdtemp(path.resolve(os__default.default.tmpdir(), "backstage-bundle"));
49
- try {
50
- await createDistWorkspace.createDistWorkspace([pkg.name], {
51
- targetDir: tmpDir,
52
- configPaths,
53
- buildDependencies: !skipBuildDependencies,
54
- buildExcludes: [pkg.name],
55
- skeleton: SKELETON_FILE,
56
- minify
57
- });
58
- const distDir = path.resolve(targetDir, "dist");
59
- await fs__default.default.remove(distDir);
60
- await fs__default.default.mkdir(distDir);
61
- await fs__default.default.move(
62
- path.resolve(tmpDir, SKELETON_FILE),
63
- path.resolve(distDir, SKELETON_FILE)
64
- );
65
- await tar__namespace.create(
66
- {
67
- file: path.resolve(distDir, BUNDLE_FILE),
68
- cwd: tmpDir,
69
- portable: true,
70
- noMtime: true,
71
- gzip: true
72
- },
73
- [""]
74
- );
75
- } finally {
76
- await fs__default.default.remove(tmpDir);
77
- }
78
- }
79
-
80
- exports.buildBackend = buildBackend;
81
- //# sourceMappingURL=buildBackend.cjs.js.map
@@ -1,50 +0,0 @@
1
- 'use strict';
2
-
3
- var fs = require('fs-extra');
4
- var path = require('node:path');
5
- var bundle = require('./bundler/bundle.cjs.js');
6
- var moduleFederation = require('./bundler/moduleFederation.cjs.js');
7
- require('chalk');
8
- require('react-dev-utils/openBrowser');
9
- require('@rspack/core');
10
- require('@rspack/dev-server');
11
- require('@backstage/cli-common');
12
- var config = require('./config.cjs.js');
13
- require('eslint-rspack-plugin');
14
- require('ts-checker-rspack-plugin');
15
- require('html-webpack-plugin');
16
- require('react-dev-utils/ModuleScopePlugin');
17
- require('@module-federation/enhanced/rspack');
18
- require('lodash/pickBy');
19
- require('../../../wiring/version.cjs.js');
20
- require('yn');
21
- require('@manypkg/get-packages');
22
- require('./bundler/packageDetection.cjs.js');
23
-
24
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
25
-
26
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
27
-
28
- async function buildFrontend(options) {
29
- const { targetDir, writeStats, configPaths, webpack } = options;
30
- const packageJson = await fs__default.default.readJson(
31
- path.resolve(targetDir, "package.json")
32
- );
33
- await bundle.buildBundle({
34
- targetDir,
35
- entry: "src/index",
36
- statsJsonEnabled: writeStats,
37
- moduleFederationRemote: options.isModuleFederationRemote ? await moduleFederation.getModuleFederationRemoteOptions(
38
- packageJson,
39
- path.resolve(targetDir)
40
- ) : void 0,
41
- ...await config.loadCliConfig({
42
- args: configPaths,
43
- fromPackage: packageJson.name
44
- }),
45
- webpack
46
- });
47
- }
48
-
49
- exports.buildFrontend = buildFrontend;
50
- //# sourceMappingURL=buildFrontend.cjs.js.map
@@ -1,257 +0,0 @@
1
- 'use strict';
2
-
3
- var chalk = require('chalk');
4
- var fs = require('fs-extra');
5
- var crypto = require('node:crypto');
6
- var path = require('node:path');
7
- var commonjs = require('@rollup/plugin-commonjs');
8
- var resolve = require('@rollup/plugin-node-resolve');
9
- var postcss = require('rollup-plugin-postcss');
10
- var esbuild = require('rollup-plugin-esbuild');
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 cliCommon = require('@backstage/cli-common');
17
- var entryPoints = require('../entryPoints.cjs.js');
18
-
19
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
20
-
21
- var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
22
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
23
- var commonjs__default = /*#__PURE__*/_interopDefaultCompat(commonjs);
24
- var resolve__default = /*#__PURE__*/_interopDefaultCompat(resolve);
25
- var postcss__default = /*#__PURE__*/_interopDefaultCompat(postcss);
26
- var esbuild__default = /*#__PURE__*/_interopDefaultCompat(esbuild);
27
- var dts__default = /*#__PURE__*/_interopDefaultCompat(dts);
28
- var json__default = /*#__PURE__*/_interopDefaultCompat(json);
29
- var yaml__default = /*#__PURE__*/_interopDefaultCompat(yaml);
30
-
31
- const SCRIPT_EXTS = [".js", ".jsx", ".ts", ".tsx"];
32
- const MODULE_EXTS = [".mjs", ".mts"];
33
- const COMMONJS_EXTS = [".cjs", ".cts"];
34
- const MOD_EXT = ".mjs";
35
- const CJS_EXT = ".cjs";
36
- const CJS_JS_EXT = ".cjs.js";
37
- function isFileImport(source) {
38
- if (source.startsWith(".")) {
39
- return true;
40
- }
41
- if (source.startsWith("/")) {
42
- return true;
43
- }
44
- if (source.match(/[a-z]:/i)) {
45
- return true;
46
- }
47
- return false;
48
- }
49
- function buildInternalImportPattern(options) {
50
- const inlinedPackages = options.workspacePackages.filter(
51
- (pkg) => pkg.packageJson.backstage?.inline
52
- );
53
- for (const { packageJson } of inlinedPackages) {
54
- if (!packageJson.private) {
55
- throw new Error(
56
- `Inlined package ${packageJson.name} must be marked as private`
57
- );
58
- }
59
- }
60
- const names = inlinedPackages.map((pkg) => pkg.packageJson.name);
61
- return new RegExp(`^(?:${names.join("|")})(?:$|/)`);
62
- }
63
- function multiOutputFormat() {
64
- return {
65
- name: "backstage-multi-output-format",
66
- generateBundle(opts, bundle) {
67
- const filter = opts.format === "cjs" ? (s) => s.endsWith(MOD_EXT) : (s) => !s.endsWith(MOD_EXT);
68
- for (const name in bundle) {
69
- if (filter(name)) {
70
- delete bundle[name];
71
- delete bundle[`${name}.map`];
72
- }
73
- }
74
- },
75
- renderDynamicImport(opts) {
76
- if (opts.format === "cjs") {
77
- return {
78
- left: "import(",
79
- right: ")"
80
- };
81
- }
82
- return void 0;
83
- }
84
- };
85
- }
86
- async function makeRollupConfigs(options) {
87
- const configs = new Array();
88
- const targetDir = options.targetDir ?? cliCommon.targetPaths.dir;
89
- let targetPkg = options.packageJson;
90
- if (!targetPkg) {
91
- const packagePath = path.resolve(targetDir, "package.json");
92
- targetPkg = await fs__default.default.readJson(packagePath);
93
- }
94
- const onwarn = ({ code, message }) => {
95
- if (code === "EMPTY_BUNDLE") {
96
- return;
97
- }
98
- if (options.logPrefix) {
99
- console.log(options.logPrefix + message);
100
- } else {
101
- console.log(message);
102
- }
103
- };
104
- const distDir = path.resolve(targetDir, "dist");
105
- const entryPoints$1 = entryPoints.readEntryPoints(targetPkg);
106
- const scriptEntryPoints = entryPoints$1.filter(
107
- (e) => SCRIPT_EXTS.includes(e.ext)
108
- );
109
- const internalImportPattern = buildInternalImportPattern(options);
110
- const external = (source, importer, isResolved) => Boolean(
111
- importer && !isResolved && !internalImportPattern.test(source) && !isFileImport(source)
112
- );
113
- if (options.outputs.has(types.Output.cjs) || options.outputs.has(types.Output.esm)) {
114
- const output = new Array();
115
- const mainFields = ["module", "main"];
116
- const rewriteNodeModules = (name) => name.replaceAll("node_modules", "node_modules_dist");
117
- if (options.outputs.has(types.Output.cjs)) {
118
- const defaultExt = targetPkg.type === "module" ? MOD_EXT : CJS_JS_EXT;
119
- const outputOpts = {
120
- dir: distDir,
121
- entryFileNames(chunkInfo) {
122
- const cleanName = rewriteNodeModules(chunkInfo.name);
123
- const inputId = chunkInfo.facadeModuleId;
124
- if (!inputId) {
125
- return cleanName + defaultExt;
126
- }
127
- const inputExt = path.extname(inputId);
128
- if (MODULE_EXTS.includes(inputExt)) {
129
- return cleanName + MOD_EXT;
130
- }
131
- if (COMMONJS_EXTS.includes(inputExt)) {
132
- return cleanName + CJS_EXT;
133
- }
134
- return cleanName + defaultExt;
135
- },
136
- sourcemap: true,
137
- preserveModules: true,
138
- preserveModulesRoot: `${targetDir}/src`,
139
- interop: "compat",
140
- exports: "named",
141
- plugins: [multiOutputFormat()]
142
- };
143
- output.push({
144
- ...outputOpts,
145
- format: "cjs"
146
- });
147
- output.push({
148
- ...outputOpts,
149
- format: "module"
150
- });
151
- }
152
- if (options.outputs.has(types.Output.esm)) {
153
- output.push({
154
- dir: distDir,
155
- entryFileNames: (chunkInfo) => `${rewriteNodeModules(chunkInfo.name)}.esm.js`,
156
- chunkFileNames: `esm/[name]-[hash].esm.js`,
157
- format: "module",
158
- sourcemap: true,
159
- preserveModules: true,
160
- preserveModulesRoot: `${targetDir}/src`
161
- });
162
- mainFields.unshift("browser");
163
- }
164
- configs.push({
165
- input: Object.fromEntries(
166
- scriptEntryPoints.map((e) => [e.name, path.resolve(targetDir, e.path)])
167
- ),
168
- output,
169
- onwarn,
170
- makeAbsoluteExternalsRelative: false,
171
- preserveEntrySignatures: "strict",
172
- // All module imports are always marked as external
173
- external,
174
- plugins: [
175
- resolve__default.default({
176
- mainFields,
177
- extensions: SCRIPT_EXTS
178
- }),
179
- commonjs__default.default({
180
- include: /node_modules/,
181
- exclude: [/\/[^/]+\.(?:stories|test)\.[^/]+$/]
182
- }),
183
- postcss__default.default({
184
- modules: {
185
- generateScopedName(name, filename, css) {
186
- const hash = crypto.createHash("md5").update(css).digest("hex").slice(0, 10);
187
- const file = path.basename(filename, ".module.css");
188
- return `${file}_${name}__${hash}`;
189
- }
190
- }
191
- }),
192
- plugins.forwardFileImports({
193
- exclude: /\.icon\.svg$/,
194
- include: [
195
- /\.svg$/,
196
- /\.png$/,
197
- /\.gif$/,
198
- /\.jpg$/,
199
- /\.jpeg$/,
200
- /\.webp$/,
201
- /\.eot$/,
202
- /\.woff$/,
203
- /\.woff2$/,
204
- /\.ttf$/,
205
- /\.md$/
206
- ]
207
- }),
208
- json__default.default(),
209
- yaml__default.default(),
210
- esbuild__default.default({
211
- target: "ES2023",
212
- minify: options.minify
213
- }),
214
- plugins.cssEntryPoints({ entryPoints: entryPoints$1, targetDir })
215
- ]
216
- });
217
- }
218
- if (options.outputs.has(types.Output.types)) {
219
- const input = Object.fromEntries(
220
- scriptEntryPoints.map((e) => [
221
- e.name,
222
- cliCommon.targetPaths.resolveRoot(
223
- "dist-types",
224
- path.relative(cliCommon.targetPaths.rootDir, targetDir),
225
- e.path.replace(/\.(?:ts|tsx)$/, ".d.ts")
226
- )
227
- ])
228
- );
229
- for (const path$1 of Object.values(input)) {
230
- const declarationsExist = await fs__default.default.pathExists(path$1);
231
- if (!declarationsExist) {
232
- const declarationPath = path.relative(targetDir, path$1);
233
- throw new Error(
234
- `No declaration files found at ${declarationPath}, be sure to run ${chalk__default.default.bgRed.white(
235
- "yarn tsc"
236
- )} to generate .d.ts files before packaging`
237
- );
238
- }
239
- }
240
- configs.push({
241
- input,
242
- output: {
243
- dir: distDir,
244
- entryFileNames: `[name].d.ts`,
245
- chunkFileNames: `types/[name]-[hash].d.ts`,
246
- format: "es"
247
- },
248
- external: (source, importer, isResolved) => /\.css|scss|sass|svg|eot|woff|woff2|ttf$/.test(source) || external(source, importer, isResolved),
249
- onwarn,
250
- plugins: [dts__default.default({ respectExternal: true })]
251
- });
252
- }
253
- return configs;
254
- }
255
-
256
- exports.makeRollupConfigs = makeRollupConfigs;
257
- //# sourceMappingURL=config.cjs.js.map