@backstage/cli 0.36.0-next.1 → 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 (263) hide show
  1. package/CHANGELOG.md +110 -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 -10
  20. package/dist/wiring/CliInitializer.cjs.js +61 -20
  21. package/dist/wiring/CommandGraph.cjs.js +81 -23
  22. package/dist/wiring/discoverCliModules.cjs.js +44 -0
  23. package/package.json +27 -154
  24. package/dist/modules/build/commands/buildWorkspace.cjs.js +0 -24
  25. package/dist/modules/build/commands/package/build/command.cjs.js +0 -89
  26. package/dist/modules/build/commands/package/build/index.cjs.js +0 -8
  27. package/dist/modules/build/commands/package/clean.cjs.js +0 -21
  28. package/dist/modules/build/commands/package/postpack.cjs.js +0 -15
  29. package/dist/modules/build/commands/package/prepack.cjs.js +0 -29
  30. package/dist/modules/build/commands/package/start/command.cjs.js +0 -23
  31. package/dist/modules/build/commands/package/start/index.cjs.js +0 -8
  32. package/dist/modules/build/commands/package/start/resolveLinkedWorkspace.cjs.js +0 -34
  33. package/dist/modules/build/commands/package/start/startBackend.cjs.js +0 -46
  34. package/dist/modules/build/commands/package/start/startFrontend.cjs.js +0 -50
  35. package/dist/modules/build/commands/package/start/startPackage.cjs.js +0 -53
  36. package/dist/modules/build/commands/repo/build.cjs.js +0 -114
  37. package/dist/modules/build/commands/repo/clean.cjs.js +0 -41
  38. package/dist/modules/build/commands/repo/start.cjs.js +0 -150
  39. package/dist/modules/build/index.cjs.js +0 -192
  40. package/dist/modules/build/lib/buildBackend.cjs.js +0 -81
  41. package/dist/modules/build/lib/buildFrontend.cjs.js +0 -50
  42. package/dist/modules/build/lib/builder/config.cjs.js +0 -257
  43. package/dist/modules/build/lib/builder/packager.cjs.js +0 -131
  44. package/dist/modules/build/lib/builder/plugins.cjs.js +0 -125
  45. package/dist/modules/build/lib/builder/types.cjs.js +0 -10
  46. package/dist/modules/build/lib/bundler/ConfigInjectingHtmlWebpackPlugin.cjs.js +0 -43
  47. package/dist/modules/build/lib/bundler/bundle.cjs.js +0 -189
  48. package/dist/modules/build/lib/bundler/config.cjs.js +0 -308
  49. package/dist/modules/build/lib/bundler/hasReactDomClient.cjs.js +0 -17
  50. package/dist/modules/build/lib/bundler/linkWorkspaces.cjs.js +0 -34
  51. package/dist/modules/build/lib/bundler/moduleFederation.cjs.js +0 -135
  52. package/dist/modules/build/lib/bundler/optimization.cjs.js +0 -68
  53. package/dist/modules/build/lib/bundler/packageDetection.cjs.js +0 -124
  54. package/dist/modules/build/lib/bundler/paths.cjs.js +0 -62
  55. package/dist/modules/build/lib/bundler/server.cjs.js +0 -231
  56. package/dist/modules/build/lib/bundler/transforms.cjs.js +0 -145
  57. package/dist/modules/build/lib/config.cjs.js +0 -94
  58. package/dist/modules/build/lib/entryPoints.cjs.js +0 -49
  59. package/dist/modules/build/lib/ipc/IpcServer.cjs.js +0 -60
  60. package/dist/modules/build/lib/ipc/ServerDataStore.cjs.js +0 -36
  61. package/dist/modules/build/lib/optionsParser.cjs.js +0 -37
  62. package/dist/modules/build/lib/packager/createDistWorkspace.cjs.js +0 -235
  63. package/dist/modules/build/lib/packager/productionPack.cjs.js +0 -160
  64. package/dist/modules/build/lib/publishing.cjs.js +0 -40
  65. package/dist/modules/build/lib/role.cjs.js +0 -24
  66. package/dist/modules/build/lib/runner/runBackend.cjs.js +0 -136
  67. package/dist/modules/build/lib/typeDistProject.cjs.js +0 -89
  68. package/dist/modules/build/lib/urls.cjs.js +0 -13
  69. package/dist/modules/config/commands/docs.cjs.js +0 -62
  70. package/dist/modules/config/commands/print.cjs.js +0 -80
  71. package/dist/modules/config/commands/schema.cjs.js +0 -55
  72. package/dist/modules/config/commands/validate.cjs.js +0 -49
  73. package/dist/modules/config/index.cjs.js +0 -51
  74. package/dist/modules/config/lib/config.cjs.js +0 -94
  75. package/dist/modules/create-github-app/commands/create-github-app/GithubCreateAppServer.cjs.js +0 -127
  76. package/dist/modules/create-github-app/commands/create-github-app/index.cjs.js +0 -115
  77. package/dist/modules/create-github-app/index.cjs.js +0 -27
  78. package/dist/modules/info/commands/info.cjs.js +0 -181
  79. package/dist/modules/info/index.cjs.js +0 -19
  80. package/dist/modules/lint/commands/package/lint.cjs.js +0 -46
  81. package/dist/modules/lint/commands/repo/lint.cjs.js +0 -212
  82. package/dist/modules/lint/index.cjs.js +0 -82
  83. package/dist/modules/lint/lib/optionsParser.cjs.js +0 -37
  84. package/dist/modules/maintenance/commands/repo/fix.cjs.js +0 -400
  85. package/dist/modules/maintenance/commands/repo/list-deprecations.cjs.js +0 -74
  86. package/dist/modules/maintenance/index.cjs.js +0 -42
  87. package/dist/modules/migrate/commands/packageExports.cjs.js +0 -15
  88. package/dist/modules/migrate/commands/packageLintConfigs.cjs.js +0 -77
  89. package/dist/modules/migrate/commands/packageRole.cjs.js +0 -57
  90. package/dist/modules/migrate/commands/packageScripts.cjs.js +0 -87
  91. package/dist/modules/migrate/commands/reactRouterDeps.cjs.js +0 -51
  92. package/dist/modules/migrate/commands/versions/bump.cjs.js +0 -373
  93. package/dist/modules/migrate/commands/versions/migrate.cjs.js +0 -112
  94. package/dist/modules/migrate/index.cjs.js +0 -82
  95. package/dist/modules/migrate/lib/utils.cjs.js +0 -44
  96. package/dist/modules/migrate/lib/versioning/packages.cjs.js +0 -71
  97. package/dist/modules/migrate/lib/versioning/yarn.cjs.js +0 -28
  98. package/dist/modules/new/commands/new.cjs.js +0 -60
  99. package/dist/modules/new/index.cjs.js +0 -68
  100. package/dist/modules/new/lib/codeowners/codeowners.cjs.js +0 -92
  101. package/dist/modules/new/lib/createNewPackage.cjs.js +0 -32
  102. package/dist/modules/new/lib/defaultTemplates.cjs.js +0 -17
  103. package/dist/modules/new/lib/execution/PortableTemplater.cjs.js +0 -89
  104. package/dist/modules/new/lib/execution/executePortableTemplate.cjs.js +0 -66
  105. package/dist/modules/new/lib/execution/installNewPackage.cjs.js +0 -127
  106. package/dist/modules/new/lib/execution/writeTemplateContents.cjs.js +0 -116
  107. package/dist/modules/new/lib/preparation/collectPortableTemplateInput.cjs.js +0 -157
  108. package/dist/modules/new/lib/preparation/loadPortableTemplate.cjs.js +0 -81
  109. package/dist/modules/new/lib/preparation/loadPortableTemplateConfig.cjs.js +0 -132
  110. package/dist/modules/new/lib/preparation/resolvePackageParams.cjs.js +0 -40
  111. package/dist/modules/new/lib/preparation/selectTemplateInteractively.cjs.js +0 -38
  112. package/dist/modules/new/lib/tasks.cjs.js +0 -51
  113. package/dist/modules/new/lib/types.cjs.js +0 -19
  114. package/dist/modules/new/lib/version.cjs.js +0 -91
  115. package/dist/modules/test/commands/package/test.cjs.js +0 -65
  116. package/dist/modules/test/commands/repo/test.cjs.js +0 -288
  117. package/dist/modules/test/index.cjs.js +0 -54
  118. package/dist/modules/translations/commands/export.cjs.js +0 -127
  119. package/dist/modules/translations/commands/import.cjs.js +0 -164
  120. package/dist/modules/translations/index.cjs.js +0 -24
  121. package/dist/modules/translations/lib/discoverPackages.cjs.js +0 -121
  122. package/dist/modules/translations/lib/extractTranslations.cjs.js +0 -71
  123. package/dist/modules/translations/lib/messageFilePath.cjs.js +0 -43
  124. package/dist/packages/backend-defaults/package.json.cjs.js +0 -6
  125. package/dist/packages/backend-plugin-api/package.json.cjs.js +0 -6
  126. package/dist/packages/backend-test-utils/package.json.cjs.js +0 -6
  127. package/dist/packages/catalog-client/package.json.cjs.js +0 -6
  128. package/dist/packages/cli/package.json.cjs.js +0 -156
  129. package/dist/packages/config/package.json.cjs.js +0 -6
  130. package/dist/packages/core-app-api/package.json.cjs.js +0 -6
  131. package/dist/packages/core-components/package.json.cjs.js +0 -6
  132. package/dist/packages/core-plugin-api/package.json.cjs.js +0 -6
  133. package/dist/packages/dev-utils/package.json.cjs.js +0 -6
  134. package/dist/packages/errors/package.json.cjs.js +0 -6
  135. package/dist/packages/frontend-defaults/package.json.cjs.js +0 -6
  136. package/dist/packages/frontend-plugin-api/package.json.cjs.js +0 -6
  137. package/dist/packages/frontend-plugin-api/src/routing/describeParentCallSite.cjs.js +0 -26
  138. package/dist/packages/frontend-test-utils/package.json.cjs.js +0 -6
  139. package/dist/packages/test-utils/package.json.cjs.js +0 -6
  140. package/dist/packages/theme/package.json.cjs.js +0 -6
  141. package/dist/packages/types/package.json.cjs.js +0 -6
  142. package/dist/plugins/auth-backend/package.json.cjs.js +0 -6
  143. package/dist/plugins/auth-backend-module-guest-provider/package.json.cjs.js +0 -6
  144. package/dist/plugins/catalog-node/package.json.cjs.js +0 -6
  145. package/dist/plugins/scaffolder-node/package.json.cjs.js +0 -6
  146. package/dist/plugins/scaffolder-node-test-utils/package.json.cjs.js +0 -6
  147. package/dist/wiring/CommandRegistry.cjs.js +0 -14
  148. package/dist/wiring/factory.cjs.js +0 -15
  149. package/dist/wiring/lazy.cjs.js +0 -22
  150. package/dist/wiring/types.cjs.js +0 -11
  151. package/templates/backend-plugin/.eslintrc.js.hbs +0 -1
  152. package/templates/backend-plugin/README.md.hbs +0 -28
  153. package/templates/backend-plugin/dev/index.ts.hbs +0 -60
  154. package/templates/backend-plugin/package.json.hbs +0 -44
  155. package/templates/backend-plugin/portable-template.yaml +0 -5
  156. package/templates/backend-plugin/src/index.ts.hbs +0 -1
  157. package/templates/backend-plugin/src/plugin.test.ts.hbs +0 -129
  158. package/templates/backend-plugin/src/plugin.ts.hbs +0 -32
  159. package/templates/backend-plugin/src/router.test.ts +0 -67
  160. package/templates/backend-plugin/src/router.ts +0 -51
  161. package/templates/backend-plugin/src/services/TodoListService.ts +0 -155
  162. package/templates/backend-plugin/src/setupTests.ts +0 -1
  163. package/templates/backend-plugin-module/.eslintrc.js.hbs +0 -1
  164. package/templates/backend-plugin-module/README.md.hbs +0 -5
  165. package/templates/backend-plugin-module/package.json.hbs +0 -34
  166. package/templates/backend-plugin-module/portable-template.yaml +0 -5
  167. package/templates/backend-plugin-module/src/index.ts.hbs +0 -8
  168. package/templates/backend-plugin-module/src/module.ts.hbs +0 -17
  169. package/templates/catalog-provider-module/.eslintrc.js.hbs +0 -1
  170. package/templates/catalog-provider-module/README.md.hbs +0 -5
  171. package/templates/catalog-provider-module/config.d.ts.hbs +0 -34
  172. package/templates/catalog-provider-module/package.json.hbs +0 -36
  173. package/templates/catalog-provider-module/portable-template.yaml +0 -9
  174. package/templates/catalog-provider-module/src/index.ts.hbs +0 -8
  175. package/templates/catalog-provider-module/src/module.ts.hbs +0 -29
  176. package/templates/catalog-provider-module/src/provider/readProviderConfigs.ts.hbs +0 -78
  177. package/templates/catalog-provider-module/src/provider/{{providerClass}}.test.ts.hbs +0 -18
  178. package/templates/catalog-provider-module/src/provider/{{providerClass}}.ts.hbs +0 -109
  179. package/templates/frontend-plugin/.eslintrc.js.hbs +0 -1
  180. package/templates/frontend-plugin/README.md.hbs +0 -13
  181. package/templates/frontend-plugin/dev/index.tsx.hbs +0 -11
  182. package/templates/frontend-plugin/package.json.hbs +0 -54
  183. package/templates/frontend-plugin/portable-template.yaml +0 -6
  184. package/templates/frontend-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +0 -28
  185. package/templates/frontend-plugin/src/components/ExampleComponent/ExampleComponent.tsx.hbs +0 -37
  186. package/templates/frontend-plugin/src/components/ExampleComponent/index.ts +0 -1
  187. package/templates/frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +0 -19
  188. package/templates/frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs +0 -308
  189. package/templates/frontend-plugin/src/components/ExampleFetchComponent/index.ts +0 -1
  190. package/templates/frontend-plugin/src/index.ts.hbs +0 -1
  191. package/templates/frontend-plugin/src/plugin.test.ts.hbs +0 -7
  192. package/templates/frontend-plugin/src/plugin.ts.hbs +0 -22
  193. package/templates/frontend-plugin/src/routes.ts.hbs +0 -5
  194. package/templates/frontend-plugin/src/setupTests.ts +0 -1
  195. package/templates/new-frontend-plugin/.eslintrc.js.hbs +0 -1
  196. package/templates/new-frontend-plugin/README.md.hbs +0 -20
  197. package/templates/new-frontend-plugin/dev/index.tsx +0 -10
  198. package/templates/new-frontend-plugin/package.json.hbs +0 -49
  199. package/templates/new-frontend-plugin/portable-template.yaml +0 -5
  200. package/templates/new-frontend-plugin/src/components/ExampleComponent/ExampleComponent.test.tsx.hbs +0 -28
  201. package/templates/new-frontend-plugin/src/components/ExampleComponent/ExampleComponent.tsx.hbs +0 -37
  202. package/templates/new-frontend-plugin/src/components/ExampleComponent/index.ts +0 -1
  203. package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.test.tsx.hbs +0 -19
  204. package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/ExampleFetchComponent.tsx.hbs +0 -308
  205. package/templates/new-frontend-plugin/src/components/ExampleFetchComponent/index.ts +0 -1
  206. package/templates/new-frontend-plugin/src/index.ts.hbs +0 -1
  207. package/templates/new-frontend-plugin/src/plugin.test.ts.hbs +0 -7
  208. package/templates/new-frontend-plugin/src/plugin.tsx.hbs +0 -25
  209. package/templates/new-frontend-plugin/src/routes.ts +0 -3
  210. package/templates/new-frontend-plugin/src/setupTests.ts +0 -1
  211. package/templates/new-frontend-plugin-module/.eslintrc.js.hbs +0 -1
  212. package/templates/new-frontend-plugin-module/README.md.hbs +0 -5
  213. package/templates/new-frontend-plugin-module/package.json.hbs +0 -35
  214. package/templates/new-frontend-plugin-module/portable-template.yaml +0 -5
  215. package/templates/new-frontend-plugin-module/src/index.ts.hbs +0 -1
  216. package/templates/new-frontend-plugin-module/src/module.tsx.hbs +0 -8
  217. package/templates/new-frontend-plugin-module/src/setupTests.ts +0 -1
  218. package/templates/node-library/.eslintrc.js.hbs +0 -1
  219. package/templates/node-library/README.md.hbs +0 -12
  220. package/templates/node-library/package.json.hbs +0 -29
  221. package/templates/node-library/portable-template.yaml +0 -3
  222. package/templates/node-library/src/index.ts.hbs +0 -1
  223. package/templates/node-library/src/setupTests.ts +0 -1
  224. package/templates/plugin-common-library/.eslintrc.js.hbs +0 -1
  225. package/templates/plugin-common-library/README.md.hbs +0 -5
  226. package/templates/plugin-common-library/package.json.hbs +0 -31
  227. package/templates/plugin-common-library/portable-template.yaml +0 -3
  228. package/templates/plugin-common-library/src/index.ts.hbs +0 -19
  229. package/templates/plugin-common-library/src/setupTests.ts +0 -1
  230. package/templates/plugin-node-library/.eslintrc.js.hbs +0 -1
  231. package/templates/plugin-node-library/README.md.hbs +0 -5
  232. package/templates/plugin-node-library/package.json.hbs +0 -30
  233. package/templates/plugin-node-library/portable-template.yaml +0 -3
  234. package/templates/plugin-node-library/src/index.ts.hbs +0 -18
  235. package/templates/plugin-node-library/src/setupTests.ts +0 -1
  236. package/templates/plugin-web-library/.eslintrc.js.hbs +0 -1
  237. package/templates/plugin-web-library/README.md.hbs +0 -5
  238. package/templates/plugin-web-library/package.json.hbs +0 -42
  239. package/templates/plugin-web-library/portable-template.yaml +0 -3
  240. package/templates/plugin-web-library/src/components/ExampleComponent/ExampleComponent.test.tsx +0 -17
  241. package/templates/plugin-web-library/src/components/ExampleComponent/ExampleComponent.tsx +0 -28
  242. package/templates/plugin-web-library/src/components/ExampleComponent/index.ts +0 -2
  243. package/templates/plugin-web-library/src/components/index.ts +0 -5
  244. package/templates/plugin-web-library/src/hooks/index.ts +0 -5
  245. package/templates/plugin-web-library/src/hooks/useExample/index.ts +0 -1
  246. package/templates/plugin-web-library/src/hooks/useExample/useExample.ts +0 -15
  247. package/templates/plugin-web-library/src/index.ts.hbs +0 -12
  248. package/templates/plugin-web-library/src/setupTests.ts +0 -1
  249. package/templates/scaffolder-backend-module/.eslintrc.js.hbs +0 -1
  250. package/templates/scaffolder-backend-module/README.md.hbs +0 -5
  251. package/templates/scaffolder-backend-module/package.json.hbs +0 -36
  252. package/templates/scaffolder-backend-module/portable-template.yaml +0 -6
  253. package/templates/scaffolder-backend-module/src/actions/example.test.ts +0 -24
  254. package/templates/scaffolder-backend-module/src/actions/example.ts +0 -39
  255. package/templates/scaffolder-backend-module/src/index.ts.hbs +0 -8
  256. package/templates/scaffolder-backend-module/src/module.ts +0 -21
  257. package/templates/web-library/.eslintrc.js.hbs +0 -1
  258. package/templates/web-library/README.md.hbs +0 -12
  259. package/templates/web-library/package.json.hbs +0 -30
  260. package/templates/web-library/portable-template.yaml +0 -3
  261. package/templates/web-library/src/index.ts.hbs +0 -1
  262. package/templates/web-library/src/setupTests.ts +0 -1
  263. /package/dist/{packages/opaque-internal → opaque-internal}/src/OpaqueType.cjs.js +0 -0
@@ -1,82 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var factory = require('../../wiring/factory.cjs.js');
6
- var commander = require('commander');
7
- var lazy = require('../../wiring/lazy.cjs.js');
8
-
9
- var index = factory.createCliPlugin({
10
- pluginId: "migrate",
11
- init: async (reg) => {
12
- reg.addCommand({
13
- path: ["versions:migrate"],
14
- description: "Migrate any plugins that have been moved to the @backstage-community namespace automatically",
15
- execute: async ({ args }) => {
16
- const command = new commander.Command();
17
- const defaultCommand = command.option(
18
- "--pattern <glob>",
19
- "Override glob for matching packages to upgrade"
20
- ).option(
21
- "--skip-code-changes",
22
- "Skip code changes and only update package.json files"
23
- ).action(lazy.lazy(() => import('./commands/versions/migrate.cjs.js'), "default"));
24
- await defaultCommand.parseAsync(args, { from: "user" });
25
- }
26
- });
27
- reg.addCommand({
28
- path: ["versions:bump"],
29
- description: "Bump Backstage packages to the latest versions",
30
- execute: async ({ args }) => {
31
- const command = new commander.Command();
32
- const defaultCommand = command.option(
33
- "--pattern <glob>",
34
- "Override glob for matching packages to upgrade"
35
- ).option(
36
- "--release <version|next|main>",
37
- "Bump to a specific Backstage release line or version",
38
- "main"
39
- ).option("--skip-install", "Skips yarn install step").option("--skip-migrate", "Skips migration of any moved packages").action(lazy.lazy(() => import('./commands/versions/bump.cjs.js'), "default"));
40
- await defaultCommand.parseAsync(args, { from: "user" });
41
- }
42
- });
43
- reg.addCommand({
44
- path: ["migrate", "package-roles"],
45
- description: `Add package role field to packages that don't have it`,
46
- execute: {
47
- loader: () => import('./commands/packageRole.cjs.js')
48
- }
49
- });
50
- reg.addCommand({
51
- path: ["migrate", "package-scripts"],
52
- description: "Set package scripts according to each package role",
53
- execute: {
54
- loader: () => import('./commands/packageScripts.cjs.js')
55
- }
56
- });
57
- reg.addCommand({
58
- path: ["migrate", "package-exports"],
59
- description: "Synchronize package subpath export definitions",
60
- execute: {
61
- loader: () => import('./commands/packageExports.cjs.js')
62
- }
63
- });
64
- reg.addCommand({
65
- path: ["migrate", "package-lint-configs"],
66
- description: "Migrates all packages to use @backstage/cli/config/eslint-factory",
67
- execute: {
68
- loader: () => import('./commands/packageLintConfigs.cjs.js')
69
- }
70
- });
71
- reg.addCommand({
72
- path: ["migrate", "react-router-deps"],
73
- description: "Migrates the react-router dependencies for all packages to be peer dependencies",
74
- execute: {
75
- loader: () => import('./commands/reactRouterDeps.cjs.js')
76
- }
77
- });
78
- }
79
- });
80
-
81
- exports.default = index;
82
- //# sourceMappingURL=index.cjs.js.map
@@ -1,44 +0,0 @@
1
- 'use strict';
2
-
3
- var ora = require('ora');
4
- var chalk = require('chalk');
5
- var cliCommon = require('@backstage/cli-common');
6
-
7
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
8
-
9
- var ora__default = /*#__PURE__*/_interopDefaultCompat(ora);
10
- var chalk__default = /*#__PURE__*/_interopDefaultCompat(chalk);
11
-
12
- async function runYarnInstall() {
13
- const spinner = ora__default.default({
14
- prefixText: `Running ${chalk__default.default.blue("yarn install")} to install new versions`,
15
- spinner: "arc",
16
- color: "green"
17
- }).start();
18
- const installOutput = new Array();
19
- try {
20
- await cliCommon.run(["yarn", "install"], {
21
- env: {
22
- FORCE_COLOR: "true",
23
- // We filter out all of the npm_* environment variables that are added when
24
- // executing through yarn. This works around an issue where these variables
25
- // incorrectly override local yarn or npm config in the project directory.
26
- ...Object.fromEntries(
27
- Object.entries(process.env).map(
28
- ([name, value]) => name.startsWith("npm_") ? [name, void 0] : [name, value]
29
- )
30
- )
31
- },
32
- onStdout: (data) => installOutput.push(data),
33
- onStderr: (data) => installOutput.push(data)
34
- }).waitForExit();
35
- spinner.succeed();
36
- } catch (error) {
37
- spinner.fail();
38
- process.stdout.write(Buffer.concat(installOutput));
39
- throw error;
40
- }
41
- }
42
-
43
- exports.runYarnInstall = runYarnInstall;
44
- //# sourceMappingURL=utils.cjs.js.map
@@ -1,71 +0,0 @@
1
- 'use strict';
2
-
3
- var minimatch = require('minimatch');
4
- var getPackages = require('@manypkg/get-packages');
5
- var yarn = require('./yarn.cjs.js');
6
- var cliCommon = require('@backstage/cli-common');
7
- var errors = require('@backstage/errors');
8
-
9
- const DEP_TYPES = [
10
- "dependencies",
11
- "devDependencies",
12
- "peerDependencies",
13
- "optionalDependencies"
14
- ];
15
- async function fetchPackageInfo(name) {
16
- const yarnVersion = await yarn.detectYarnVersion();
17
- const cmd = yarnVersion === "classic" ? ["info"] : ["npm", "info"];
18
- try {
19
- const output = await cliCommon.runOutput(["yarn", ...cmd, "--json", name]);
20
- if (!output) {
21
- throw new errors.NotFoundError(
22
- `No package information found for package ${name}`
23
- );
24
- }
25
- if (yarnVersion === "berry") {
26
- return JSON.parse(output);
27
- }
28
- const info = JSON.parse(output);
29
- if (info.type !== "inspect") {
30
- throw new Error(`Received unknown yarn info for ${name}, ${output}`);
31
- }
32
- return info.data;
33
- } catch (error) {
34
- if (yarnVersion === "classic") {
35
- throw error;
36
- }
37
- if (error instanceof Error && "stdout" in error && typeof error.stdout === "string" && error.stdout.includes("Response Code: 404")) {
38
- throw new errors.NotFoundError(
39
- `No package information found for package ${name}`
40
- );
41
- }
42
- throw error;
43
- }
44
- }
45
- async function mapDependencies(targetDir, pattern) {
46
- const { packages, root } = await getPackages.getPackages(targetDir);
47
- packages.push(root);
48
- const dependencyMap = /* @__PURE__ */ new Map();
49
- for (const pkg of packages) {
50
- const deps = DEP_TYPES.flatMap(
51
- (t) => Object.entries(pkg.packageJson[t] ?? {})
52
- );
53
- for (const [name, range] of deps) {
54
- if (minimatch.minimatch(name, pattern)) {
55
- dependencyMap.set(
56
- name,
57
- (dependencyMap.get(name) ?? []).concat({
58
- range,
59
- name: pkg.packageJson.name,
60
- location: pkg.dir
61
- })
62
- );
63
- }
64
- }
65
- }
66
- return dependencyMap;
67
- }
68
-
69
- exports.fetchPackageInfo = fetchPackageInfo;
70
- exports.mapDependencies = mapDependencies;
71
- //# sourceMappingURL=packages.cjs.js.map
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- var errors = require('@backstage/errors');
4
- var cliCommon = require('@backstage/cli-common');
5
-
6
- const versions = /* @__PURE__ */ new Map();
7
- function detectYarnVersion(dir) {
8
- const cwd = process.cwd();
9
- if (versions.has(cwd)) {
10
- return versions.get(cwd);
11
- }
12
- const promise = Promise.resolve().then(async () => {
13
- try {
14
- const stdout = await cliCommon.runOutput(["yarn", "--version"], {
15
- cwd
16
- });
17
- return stdout.trim().startsWith("1.") ? "classic" : "berry";
18
- } catch (error) {
19
- errors.assertError(error);
20
- throw new errors.ForwardedError("Failed to determine yarn version", error);
21
- }
22
- });
23
- versions.set(cwd, promise);
24
- return promise;
25
- }
26
-
27
- exports.detectYarnVersion = detectYarnVersion;
28
- //# sourceMappingURL=yarn.cjs.js.map
@@ -1,60 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var createNewPackage = require('../lib/createNewPackage.cjs.js');
6
-
7
- var _new = async (opts) => {
8
- const {
9
- option: rawArgOptions,
10
- select: preselectedTemplateId,
11
- skipInstall,
12
- scope,
13
- private: isPrivate,
14
- ...otherGlobals
15
- } = opts;
16
- const prefilledParams = parseParams(rawArgOptions);
17
- let pluginInfix = void 0;
18
- let packagePrefix = void 0;
19
- if (scope) {
20
- const normalizedScope = scope.startsWith("@") ? scope : `@${scope}`;
21
- packagePrefix = normalizedScope.includes("/") ? normalizedScope : `${normalizedScope}/`;
22
- pluginInfix = scope.includes("backstage") ? "plugin-" : "backstage-plugin-";
23
- }
24
- if (isPrivate === false || // set to false with --no-private flag
25
- Object.values(otherGlobals).filter(Boolean).length !== 0) {
26
- console.warn(
27
- `Global template configuration via CLI flags is deprecated, see https://backstage.io/docs/cli/new for information on how to configure package templating`
28
- );
29
- }
30
- await createNewPackage.createNewPackage({
31
- prefilledParams,
32
- preselectedTemplateId,
33
- configOverrides: {
34
- license: otherGlobals.license,
35
- version: otherGlobals.baseVersion,
36
- private: isPrivate,
37
- publishRegistry: otherGlobals.npmRegistry,
38
- packageNamePrefix: packagePrefix,
39
- packageNamePluginInfix: pluginInfix
40
- },
41
- skipInstall
42
- });
43
- };
44
- function parseParams(optionStrings) {
45
- const options = {};
46
- for (const str of optionStrings) {
47
- const [key] = str.split("=", 1);
48
- const value = str.slice(key.length + 1);
49
- if (!key || str[key.length] !== "=") {
50
- throw new Error(
51
- `Invalid option '${str}', must be of the format <key>=<value>`
52
- );
53
- }
54
- options[key] = value;
55
- }
56
- return options;
57
- }
58
-
59
- exports.default = _new;
60
- //# sourceMappingURL=new.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
- var commander = require('commander');
7
- var lazy = require('../../wiring/lazy.cjs.js');
8
- var errors = require('@backstage/errors');
9
-
10
- var index = factory.createCliPlugin({
11
- pluginId: "new",
12
- init: async (reg) => {
13
- reg.addCommand({
14
- path: ["new"],
15
- description: "Open up an interactive guide to creating new things in your app",
16
- execute: async ({ args }) => {
17
- const command = new commander.Command();
18
- const defaultCommand = command.storeOptionsAsProperties(false).description(
19
- "Open up an interactive guide to creating new things in your app"
20
- ).option(
21
- "--select <name>",
22
- "Select the thing you want to be creating upfront"
23
- ).option(
24
- "--option <name>=<value>",
25
- "Pre-fill options for the creation process",
26
- (opt, arr) => [...arr, opt],
27
- []
28
- ).option(
29
- "--skip-install",
30
- `Skips running 'yarn install' and 'yarn lint --fix'`
31
- ).option("--scope <scope>", "The scope to use for new packages").option(
32
- "--npm-registry <URL>",
33
- "The package registry to use for new packages"
34
- ).option(
35
- "--baseVersion <version>",
36
- "The version to use for any new packages (default: 0.1.0)"
37
- ).option(
38
- "--license <license>",
39
- "The license to use for any new packages (default: Apache-2.0)"
40
- ).option("--no-private", "Do not mark new packages as private").action(lazy.lazy(() => import('./commands/new.cjs.js'), "default"));
41
- await defaultCommand.parseAsync(args, { from: "user" });
42
- }
43
- });
44
- reg.addCommand({
45
- path: ["create"],
46
- description: "Create a new Backstage app",
47
- deprecated: true,
48
- execute: async () => {
49
- throw new errors.NotImplementedError(
50
- `This command has been removed, use 'backstage-cli new' instead`
51
- );
52
- }
53
- });
54
- reg.addCommand({
55
- path: ["create-plugin"],
56
- description: "Create a new Backstage plugin",
57
- deprecated: true,
58
- execute: async () => {
59
- throw new errors.NotImplementedError(
60
- `This command has been removed, use 'backstage-cli new' instead`
61
- );
62
- }
63
- });
64
- }
65
- });
66
-
67
- exports.default = index;
68
- //# sourceMappingURL=index.cjs.js.map
@@ -1,92 +0,0 @@
1
- 'use strict';
2
-
3
- var fs = require('fs-extra');
4
- var path = require('node:path');
5
- var cliCommon = require('@backstage/cli-common');
6
-
7
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
8
-
9
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
10
- var path__default = /*#__PURE__*/_interopDefaultCompat(path);
11
-
12
- const TEAM_ID_RE = /^@[-\w]+\/[-\w]+$/;
13
- const USER_ID_RE = /^@[-\w]+$/;
14
- const EMAIL_RE = /^[^@]+@[-.\w]+\.[-\w]+$/i;
15
- const DEFAULT_OWNER = "@backstage/maintainers";
16
- async function getCodeownersFilePath(rootDir) {
17
- const possiblePaths = [
18
- path__default.default.join(rootDir, ".github", "CODEOWNERS"),
19
- path__default.default.join(rootDir, ".gitlab", "CODEOWNERS"),
20
- path__default.default.join(rootDir, "docs", "CODEOWNERS"),
21
- path__default.default.join(rootDir, "CODEOWNERS")
22
- ];
23
- for (const p of possiblePaths) {
24
- if (await fs__default.default.pathExists(p)) {
25
- return p;
26
- }
27
- }
28
- return void 0;
29
- }
30
- function isValidSingleOwnerId(id) {
31
- if (!id || typeof id !== "string") {
32
- return false;
33
- }
34
- return TEAM_ID_RE.test(id) || USER_ID_RE.test(id) || EMAIL_RE.test(id);
35
- }
36
- function parseOwnerIds(spaceSeparatedOwnerIds) {
37
- if (!spaceSeparatedOwnerIds || typeof spaceSeparatedOwnerIds !== "string") {
38
- return void 0;
39
- }
40
- const ids = spaceSeparatedOwnerIds.split(" ").filter(Boolean);
41
- if (!ids.every(isValidSingleOwnerId)) {
42
- return void 0;
43
- }
44
- return ids;
45
- }
46
- async function addCodeownersEntry(ownedPath, ownerStr, codeownersFilePath) {
47
- const ownerIds = parseOwnerIds(ownerStr);
48
- if (!ownerIds || ownerIds.length === 0) {
49
- return false;
50
- }
51
- let filePath = codeownersFilePath;
52
- if (!filePath) {
53
- filePath = await getCodeownersFilePath(cliCommon.targetPaths.rootDir);
54
- if (!filePath) {
55
- return false;
56
- }
57
- }
58
- const allLines = (await fs__default.default.readFile(filePath, "utf8")).split("\n");
59
- const commentLines = [];
60
- for (const line of allLines) {
61
- if (line[0] !== "#") {
62
- break;
63
- }
64
- commentLines.push(line);
65
- }
66
- const oldDeclarationEntries = allLines.filter((line) => line[0] !== "#").map((line) => line.split(/\s+/).filter(Boolean)).filter((tokens) => tokens.length >= 2).map((tokens) => ({
67
- ownedPath: tokens[0],
68
- ownerIds: tokens.slice(1)
69
- }));
70
- const newDeclarationEntries = oldDeclarationEntries.filter((entry) => entry.ownedPath !== "*").concat([{ ownedPath, ownerIds }]).sort((l1, l2) => l1.ownedPath.localeCompare(l2.ownedPath));
71
- newDeclarationEntries.unshift({
72
- ownedPath: "*",
73
- ownerIds: [DEFAULT_OWNER]
74
- });
75
- const longestOwnedPath = newDeclarationEntries.reduce(
76
- (length, entry) => Math.max(length, entry.ownedPath.length),
77
- 0
78
- );
79
- const newDeclarationLines = newDeclarationEntries.map((entry) => {
80
- const entryPath = entry.ownedPath + " ".repeat(longestOwnedPath - entry.ownedPath.length);
81
- return [entryPath, ...entry.ownerIds].join(" ");
82
- });
83
- const newLines = [...commentLines, "", ...newDeclarationLines, ""];
84
- await fs__default.default.writeFile(filePath, newLines.join("\n"), "utf8");
85
- return true;
86
- }
87
-
88
- exports.addCodeownersEntry = addCodeownersEntry;
89
- exports.getCodeownersFilePath = getCodeownersFilePath;
90
- exports.isValidSingleOwnerId = isValidSingleOwnerId;
91
- exports.parseOwnerIds = parseOwnerIds;
92
- //# sourceMappingURL=codeowners.cjs.js.map
@@ -1,32 +0,0 @@
1
- 'use strict';
2
-
3
- var collectPortableTemplateInput = require('./preparation/collectPortableTemplateInput.cjs.js');
4
- var loadPortableTemplateConfig = require('./preparation/loadPortableTemplateConfig.cjs.js');
5
- var selectTemplateInteractively = require('./preparation/selectTemplateInteractively.cjs.js');
6
- var loadPortableTemplate = require('./preparation/loadPortableTemplate.cjs.js');
7
- var executePortableTemplate = require('./execution/executePortableTemplate.cjs.js');
8
-
9
- async function createNewPackage(options) {
10
- const config = await loadPortableTemplateConfig.loadPortableTemplateConfig({
11
- overrides: options.configOverrides
12
- });
13
- const selectedTemplate = await selectTemplateInteractively.selectTemplateInteractively(
14
- config,
15
- options.preselectedTemplateId
16
- );
17
- const template = await loadPortableTemplate.loadPortableTemplate(selectedTemplate);
18
- const input = await collectPortableTemplateInput.collectPortableTemplateInput({
19
- config,
20
- template,
21
- prefilledParams: options.prefilledParams
22
- });
23
- await executePortableTemplate.executePortableTemplate({
24
- config,
25
- template,
26
- input,
27
- skipInstall: options.skipInstall
28
- });
29
- }
30
-
31
- exports.createNewPackage = createNewPackage;
32
- //# sourceMappingURL=createNewPackage.cjs.js.map
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const defaultTemplates = [
4
- "@backstage/cli/templates/frontend-plugin",
5
- "@backstage/cli/templates/backend-plugin",
6
- "@backstage/cli/templates/backend-plugin-module",
7
- "@backstage/cli/templates/plugin-web-library",
8
- "@backstage/cli/templates/plugin-node-library",
9
- "@backstage/cli/templates/plugin-common-library",
10
- "@backstage/cli/templates/web-library",
11
- "@backstage/cli/templates/node-library",
12
- "@backstage/cli/templates/catalog-provider-module",
13
- "@backstage/cli/templates/scaffolder-backend-module"
14
- ];
15
-
16
- exports.defaultTemplates = defaultTemplates;
17
- //# sourceMappingURL=defaultTemplates.cjs.js.map
@@ -1,89 +0,0 @@
1
- 'use strict';
2
-
3
- var handlebars = require('handlebars');
4
- var camelCase = require('lodash/camelCase');
5
- var kebabCase = require('lodash/kebabCase');
6
- var lowerCase = require('lodash/lowerCase');
7
- var snakeCase = require('lodash/snakeCase');
8
- var startCase = require('lodash/startCase');
9
- var upperCase = require('lodash/upperCase');
10
- var upperFirst = require('lodash/upperFirst');
11
- var lowerFirst = require('lodash/lowerFirst');
12
- var cliNode = require('@backstage/cli-node');
13
- var cliCommon = require('@backstage/cli-common');
14
- var version = require('../version.cjs.js');
15
-
16
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
17
-
18
- var handlebars__default = /*#__PURE__*/_interopDefaultCompat(handlebars);
19
- var camelCase__default = /*#__PURE__*/_interopDefaultCompat(camelCase);
20
- var kebabCase__default = /*#__PURE__*/_interopDefaultCompat(kebabCase);
21
- var lowerCase__default = /*#__PURE__*/_interopDefaultCompat(lowerCase);
22
- var snakeCase__default = /*#__PURE__*/_interopDefaultCompat(snakeCase);
23
- var startCase__default = /*#__PURE__*/_interopDefaultCompat(startCase);
24
- var upperCase__default = /*#__PURE__*/_interopDefaultCompat(upperCase);
25
- var upperFirst__default = /*#__PURE__*/_interopDefaultCompat(upperFirst);
26
- var lowerFirst__default = /*#__PURE__*/_interopDefaultCompat(lowerFirst);
27
-
28
- const builtInHelpers = {
29
- camelCase: camelCase__default.default,
30
- kebabCase: kebabCase__default.default,
31
- lowerCase: lowerCase__default.default,
32
- snakeCase: snakeCase__default.default,
33
- startCase: startCase__default.default,
34
- upperCase: upperCase__default.default,
35
- upperFirst: upperFirst__default.default,
36
- lowerFirst: lowerFirst__default.default
37
- };
38
- class PortableTemplater {
39
- static async create(options = {}) {
40
- let lockfile;
41
- try {
42
- lockfile = await cliNode.Lockfile.load(cliCommon.targetPaths.resolveRoot("yarn.lock"));
43
- } catch {
44
- }
45
- const yarnPluginEnabled = await cliNode.hasBackstageYarnPlugin();
46
- const versionProvider = version.createPackageVersionProvider(lockfile, {
47
- preferBackstageProtocol: yarnPluginEnabled
48
- });
49
- const templater = new PortableTemplater(
50
- {
51
- versionQuery(name, versionHint) {
52
- return versionProvider(
53
- name,
54
- typeof versionHint === "string" ? versionHint : void 0
55
- );
56
- }
57
- },
58
- options.values ?? {}
59
- );
60
- if (options.templatedValues) {
61
- templater.appendTemplatedValues(options.templatedValues);
62
- }
63
- return templater;
64
- }
65
- #templater;
66
- #values;
67
- constructor(helpers, values) {
68
- this.#templater = handlebars__default.default.create();
69
- this.#templater.registerHelper(builtInHelpers);
70
- if (helpers) {
71
- this.#templater.registerHelper(helpers);
72
- }
73
- this.#values = values;
74
- }
75
- template(content) {
76
- return this.#templater.compile(content, {
77
- strict: true
78
- })(this.#values);
79
- }
80
- appendTemplatedValues(record) {
81
- const newValues = Object.fromEntries(
82
- Object.entries(record).map(([key, value]) => [key, this.template(value)])
83
- );
84
- this.#values = { ...this.#values, ...newValues };
85
- }
86
- }
87
-
88
- exports.PortableTemplater = PortableTemplater;
89
- //# sourceMappingURL=PortableTemplater.cjs.js.map
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- var errors = require('@backstage/errors');
4
- var codeowners = require('../codeowners/codeowners.cjs.js');
5
- var tasks = require('../tasks.cjs.js');
6
- var installNewPackage = require('./installNewPackage.cjs.js');
7
- var writeTemplateContents = require('./writeTemplateContents.cjs.js');
8
- var cliCommon = require('@backstage/cli-common');
9
-
10
- async function executePortableTemplate(options) {
11
- const { template, input } = options;
12
- let modified = false;
13
- try {
14
- const { targetDir } = await tasks.Task.forItem(
15
- "templating",
16
- input.packagePath,
17
- () => writeTemplateContents.writeTemplateContents(template, input)
18
- );
19
- modified = true;
20
- await installNewPackage.installNewPackage(input);
21
- if (input.owner) {
22
- await codeowners.addCodeownersEntry(targetDir, input.owner);
23
- }
24
- if (!options.skipInstall) {
25
- for (const command of [
26
- ["yarn", "install"],
27
- ["yarn", "lint", "--fix"]
28
- ]) {
29
- const commandStr = command.join(" ");
30
- try {
31
- await tasks.Task.forItem("executing", commandStr, async () => {
32
- await cliCommon.run(command, {
33
- cwd: targetDir,
34
- stdio: "ignore"
35
- }).waitForExit();
36
- });
37
- } catch (error) {
38
- errors.assertError(error);
39
- tasks.Task.error(
40
- `Warning: Failed to execute command '${commandStr}', ${error}`
41
- );
42
- }
43
- }
44
- }
45
- tasks.Task.log();
46
- tasks.Task.log(`\u{1F389} Successfully created ${template.name}`);
47
- tasks.Task.log();
48
- } catch (error) {
49
- errors.assertError(error);
50
- tasks.Task.error(error.message);
51
- if (modified) {
52
- tasks.Task.log("It seems that something went wrong in the creation process \u{1F914}");
53
- tasks.Task.log();
54
- tasks.Task.log(
55
- "We have left the changes that were made intact in case you want to"
56
- );
57
- tasks.Task.log(
58
- "continue manually, but you can also revert the changes and try again."
59
- );
60
- tasks.Task.error(`\u{1F525} Failed to create ${template.name}!`);
61
- }
62
- }
63
- }
64
-
65
- exports.executePortableTemplate = executePortableTemplate;
66
- //# sourceMappingURL=executePortableTemplate.cjs.js.map