@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@backstage/cli",
3
- "version": "0.36.0-next.2",
3
+ "version": "0.36.0",
4
4
  "description": "CLI for developing Backstage plugins and apps",
5
5
  "backstage": {
6
6
  "role": "cli"
@@ -41,56 +41,28 @@
41
41
  "ext": "ts",
42
42
  "watch": "./src"
43
43
  },
44
- "jest": {
45
- "coveragePathIgnorePatterns": [
46
- "/__fixtures__/"
47
- ]
48
- },
49
44
  "dependencies": {
50
- "@backstage/catalog-model": "1.7.6",
51
- "@backstage/cli-common": "0.2.0-next.2",
52
- "@backstage/cli-node": "0.2.19-next.1",
53
- "@backstage/config": "1.3.6",
54
- "@backstage/config-loader": "1.10.9-next.0",
55
- "@backstage/errors": "1.2.7",
56
- "@backstage/eslint-plugin": "0.2.2-next.0",
57
- "@backstage/integration": "2.0.0-next.2",
58
- "@backstage/module-federation-common": "0.1.2-next.0",
59
- "@backstage/release-manifests": "0.0.13",
60
- "@backstage/types": "1.2.2",
45
+ "@backstage/cli-common": "^0.2.0",
46
+ "@backstage/cli-defaults": "^0.1.0",
47
+ "@backstage/cli-module-build": "^0.1.0",
48
+ "@backstage/cli-module-test-jest": "^0.1.0",
49
+ "@backstage/cli-node": "^0.3.0",
50
+ "@backstage/errors": "^1.2.7",
51
+ "@backstage/eslint-plugin": "^0.2.2",
61
52
  "@manypkg/get-packages": "^1.1.3",
62
- "@module-federation/enhanced": "^0.21.6",
63
- "@octokit/request": "^8.0.0",
64
- "@rollup/plugin-commonjs": "^26.0.0",
65
- "@rollup/plugin-json": "^6.0.0",
66
- "@rollup/plugin-node-resolve": "^15.0.0",
67
- "@rollup/plugin-yaml": "^4.0.0",
68
- "@rspack/core": "^1.4.11",
69
- "@rspack/dev-server": "^1.1.4",
70
- "@rspack/plugin-react-refresh": "^1.4.3",
71
53
  "@spotify/eslint-config-base": "^15.0.0",
72
54
  "@spotify/eslint-config-react": "^15.0.0",
73
55
  "@spotify/eslint-config-typescript": "^15.0.0",
74
56
  "@swc/core": "^1.15.6",
75
- "@swc/helpers": "^0.5.17",
76
57
  "@swc/jest": "^0.2.39",
77
58
  "@types/webpack-env": "^1.15.2",
78
59
  "@typescript-eslint/eslint-plugin": "^8.17.0",
79
60
  "@typescript-eslint/parser": "^8.16.0",
80
- "bfj": "^9.0.2",
81
- "buffer": "^6.0.3",
82
61
  "chalk": "^4.0.0",
83
- "chokidar": "^3.3.1",
84
- "cleye": "^2.3.0",
85
62
  "commander": "^14.0.3",
86
63
  "cross-fetch": "^4.0.0",
87
- "cross-spawn": "^7.0.3",
88
- "css-loader": "^6.5.1",
89
- "ctrlc-windows": "^2.1.0",
90
- "esbuild": "^0.27.0",
91
64
  "eslint": "^8.6.0",
92
65
  "eslint-config-prettier": "^9.0.0",
93
- "eslint-formatter-friendly": "^7.0.0",
94
66
  "eslint-plugin-deprecation": "^3.0.0",
95
67
  "eslint-plugin-import": "^2.31.0",
96
68
  "eslint-plugin-jest": "^28.9.0",
@@ -98,159 +70,54 @@
98
70
  "eslint-plugin-react": "^7.37.2",
99
71
  "eslint-plugin-react-hooks": "^5.0.0",
100
72
  "eslint-plugin-unused-imports": "^4.1.4",
101
- "eslint-rspack-plugin": "^4.2.1",
102
- "express": "^4.22.0",
103
73
  "fs-extra": "^11.2.0",
104
- "git-url-parse": "^15.0.0",
105
74
  "glob": "^7.1.7",
106
- "global-agent": "^3.0.0",
107
- "globby": "^11.1.0",
108
- "handlebars": "^4.7.3",
109
- "html-webpack-plugin": "^5.6.3",
110
- "inquirer": "^8.2.0",
111
75
  "jest-css-modules": "^2.1.0",
112
- "json-schema": "^0.4.0",
113
- "lodash": "^4.17.21",
114
- "minimatch": "^10.2.1",
115
- "node-stdlib-browser": "^1.3.1",
116
- "npm-packlist": "^5.0.0",
117
- "ora": "^5.3.0",
118
- "p-queue": "^6.6.2",
119
76
  "pirates": "^4.0.6",
120
77
  "postcss": "^8.1.0",
121
- "postcss-import": "^16.1.0",
122
- "process": "^0.11.10",
123
- "proper-lockfile": "^4.1.2",
124
- "raw-loader": "^4.0.2",
125
- "react-dev-utils": "^12.0.0-next.60",
126
- "react-refresh": "^0.18.0",
127
- "recursive-readdir": "^2.2.2",
128
- "replace-in-file": "^7.1.0",
129
- "rollup": "^4.27.3",
130
- "rollup-plugin-dts": "^6.1.0",
131
- "rollup-plugin-esbuild": "^6.1.1",
132
- "rollup-plugin-postcss": "^4.0.0",
133
- "rollup-pluginutils": "^2.8.2",
134
- "semver": "^7.5.3",
135
- "shell-quote": "^1.8.1",
136
- "style-loader": "^3.3.1",
137
78
  "sucrase": "^3.20.2",
138
- "swc-loader": "^0.2.3",
139
- "tar": "^7.5.6",
140
- "ts-checker-rspack-plugin": "^1.1.5",
141
- "ts-morph": "^24.0.0",
142
- "undici": "^7.2.3",
143
- "util": "^0.12.3",
144
- "yaml": "^2.0.0",
145
- "yargs": "^16.2.0",
146
- "yml-loader": "^2.1.0",
147
- "yn": "^4.0.0",
148
- "zod": "^3.25.76",
149
- "zod-validation-error": "^4.0.2"
79
+ "yaml": "^2.0.0"
150
80
  },
151
81
  "devDependencies": {
152
- "@backstage/backend-plugin-api": "1.8.0-next.1",
153
- "@backstage/backend-test-utils": "1.11.1-next.2",
154
- "@backstage/catalog-client": "1.14.0-next.2",
155
- "@backstage/config": "1.3.6",
156
- "@backstage/core-app-api": "1.19.6-next.1",
157
- "@backstage/core-components": "0.18.8-next.1",
158
- "@backstage/core-plugin-api": "1.12.4-next.1",
159
- "@backstage/dev-utils": "1.1.21-next.1",
160
- "@backstage/errors": "1.2.7",
161
- "@backstage/plugin-auth-backend": "0.27.1-next.2",
162
- "@backstage/plugin-auth-backend-module-guest-provider": "0.2.17-next.1",
163
- "@backstage/plugin-catalog-node": "2.1.0-next.2",
164
- "@backstage/plugin-scaffolder-node": "0.13.0-next.2",
165
- "@backstage/plugin-scaffolder-node-test-utils": "0.3.9-next.2",
166
- "@backstage/test-utils": "1.7.16-next.0",
167
- "@backstage/theme": "0.7.2",
82
+ "@backstage/backend-plugin-api": "^1.8.0",
83
+ "@backstage/backend-test-utils": "^1.11.1",
84
+ "@backstage/catalog-client": "^1.14.0",
85
+ "@backstage/config": "^1.3.6",
86
+ "@backstage/core-app-api": "^1.19.6",
87
+ "@backstage/core-components": "^0.18.8",
88
+ "@backstage/core-plugin-api": "^1.12.4",
89
+ "@backstage/dev-utils": "^1.1.21",
90
+ "@backstage/errors": "^1.2.7",
91
+ "@backstage/plugin-auth-backend": "^0.27.2",
92
+ "@backstage/plugin-auth-backend-module-guest-provider": "^0.2.17",
93
+ "@backstage/plugin-catalog-node": "^2.1.0",
94
+ "@backstage/plugin-scaffolder-node": "^0.13.0",
95
+ "@backstage/plugin-scaffolder-node-test-utils": "^0.3.9",
96
+ "@backstage/test-utils": "^1.7.16",
97
+ "@backstage/theme": "^0.7.2",
168
98
  "@jest/environment-jsdom-abstract": "^30.0.0",
169
- "@pmmmwh/react-refresh-webpack-plugin": "^0.6.0",
170
- "@types/cross-spawn": "^6.0.2",
171
- "@types/ejs": "^3.1.3",
172
- "@types/express": "^4.17.6",
173
99
  "@types/fs-extra": "^11.0.0",
174
- "@types/http-proxy": "^1.17.4",
175
- "@types/inquirer": "^8.1.3",
176
100
  "@types/jest": "^30.0.0",
177
101
  "@types/node": "^22.13.14",
178
- "@types/npm-packlist": "^3.0.0",
179
- "@types/proper-lockfile": "^4",
180
- "@types/recursive-readdir": "^2.2.0",
181
- "@types/rollup-plugin-peer-deps-external": "^2.2.0",
182
- "@types/rollup-plugin-postcss": "^3.1.4",
183
- "@types/shell-quote": "^1.7.5",
184
- "@types/svgo": "^2.6.2",
185
- "@types/terser-webpack-plugin": "^5.0.4",
186
- "@types/webpack-sources": "^3.2.3",
187
- "del": "^8.0.0",
188
- "esbuild-loader": "^4.0.0",
189
- "eslint-webpack-plugin": "^4.2.0",
190
- "fork-ts-checker-webpack-plugin": "^9.0.0",
191
102
  "jest": "^30.2.0",
192
103
  "jsdom": "^27.1.0",
193
- "mini-css-extract-plugin": "^2.4.2",
194
- "msw": "^1.0.0",
195
- "nodemon": "^3.0.1",
196
- "terser-webpack-plugin": "^5.1.3",
197
- "webpack": "~5.105.0",
198
- "webpack-dev-server": "^5.0.0"
199
- },
200
- "optionalDependencies": {
201
- "keytar": "^7.9.0"
104
+ "nodemon": "^3.0.1"
202
105
  },
203
106
  "peerDependencies": {
204
107
  "@jest/environment-jsdom-abstract": "^30.0.0",
205
- "@module-federation/enhanced": "^0.21.6",
206
- "@pmmmwh/react-refresh-webpack-plugin": "^0.6.0",
207
- "esbuild-loader": "^4.0.0",
208
- "eslint-webpack-plugin": "^4.2.0",
209
- "fork-ts-checker-webpack-plugin": "^9.0.0",
210
108
  "jest": "^29.0.0 || ^30.0.0",
211
109
  "jest-environment-jsdom": "*",
212
- "jsdom": "^27.1.0",
213
- "mini-css-extract-plugin": "^2.4.2",
214
- "terser-webpack-plugin": "^5.1.3",
215
- "webpack": "~5.105.0",
216
- "webpack-dev-server": "^5.0.0"
110
+ "jsdom": "^27.1.0"
217
111
  },
218
112
  "peerDependenciesMeta": {
219
113
  "@jest/environment-jsdom-abstract": {
220
114
  "optional": true
221
115
  },
222
- "@module-federation/enhanced": {
223
- "optional": true
224
- },
225
- "@pmmmwh/react-refresh-webpack-plugin": {
226
- "optional": true
227
- },
228
- "esbuild-loader": {
229
- "optional": true
230
- },
231
- "eslint-webpack-plugin": {
232
- "optional": true
233
- },
234
- "fork-ts-checker-webpack-plugin": {
235
- "optional": true
236
- },
237
116
  "jest-environment-jsdom": {
238
117
  "optional": true
239
118
  },
240
119
  "jsdom": {
241
120
  "optional": true
242
- },
243
- "mini-css-extract-plugin": {
244
- "optional": true
245
- },
246
- "terser-webpack-plugin": {
247
- "optional": true
248
- },
249
- "webpack": {
250
- "optional": true
251
- },
252
- "webpack-dev-server": {
253
- "optional": true
254
121
  }
255
122
  },
256
123
  "configSchema": {
@@ -1,23 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cleye = require('cleye');
6
- var storage = require('../lib/storage.cjs.js');
7
-
8
- var list = async ({ args, info }) => {
9
- cleye.cli({ help: info }, void 0, args);
10
- const { instances, selected } = await storage.getAllInstances();
11
- if (!instances.length) {
12
- process.stderr.write("No instances found\n");
13
- return;
14
- }
15
- for (const inst of instances) {
16
- const mark = inst.name === selected?.name ? "* " : " ";
17
- process.stdout.write(`${mark}${inst.name} - ${inst.baseUrl}
18
- `);
19
- }
20
- };
21
-
22
- exports.default = list;
23
- //# sourceMappingURL=list.cjs.js.map
@@ -1,316 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cleye = require('cleye');
6
- var localServer = require('../lib/localServer.cjs.js');
7
- var node_child_process = require('node:child_process');
8
- var pkce = require('../lib/pkce.cjs.js');
9
- var http = require('../lib/http.cjs.js');
10
- var storage = require('../lib/storage.cjs.js');
11
- var secretStore = require('../lib/secretStore.cjs.js');
12
- var crypto = require('node:crypto');
13
- var fs = require('fs-extra');
14
- var path = require('node:path');
15
- var glob = require('glob');
16
- var YAML = require('yaml');
17
- var inquirer = require('inquirer');
18
-
19
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
20
-
21
- var crypto__default = /*#__PURE__*/_interopDefaultCompat(crypto);
22
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
23
- var path__default = /*#__PURE__*/_interopDefaultCompat(path);
24
- var glob__default = /*#__PURE__*/_interopDefaultCompat(glob);
25
- var YAML__default = /*#__PURE__*/_interopDefaultCompat(YAML);
26
- var inquirer__default = /*#__PURE__*/_interopDefaultCompat(inquirer);
27
-
28
- const TOKEN_EXCHANGE_TIMEOUT_MS = 3e4;
29
- var login = async ({ args, info }) => {
30
- const {
31
- flags: { backendUrl, noBrowser, instance: instanceFlag }
32
- } = cleye.cli(
33
- {
34
- help: info,
35
- flags: {
36
- backendUrl: { type: String, description: "Backend base URL" },
37
- noBrowser: {
38
- type: Boolean,
39
- description: "Do not open browser automatically"
40
- },
41
- instance: {
42
- type: String,
43
- description: "Name for this instance (used by other auth commands)"
44
- }
45
- }
46
- },
47
- void 0,
48
- args
49
- );
50
- const { instances, selected } = await storage.getAllInstances();
51
- let backendBaseUrl;
52
- let instanceName;
53
- if (instanceFlag) {
54
- instanceName = instanceFlag;
55
- const targetInstance = instances.find((i) => i.name === instanceFlag);
56
- if (targetInstance) {
57
- backendBaseUrl = normalizeUrl(backendUrl) ?? targetInstance.baseUrl;
58
- } else {
59
- backendBaseUrl = normalizeUrl(backendUrl) ?? await pickBaseUrl();
60
- }
61
- } else if (backendUrl) {
62
- backendBaseUrl = normalizeUrl(backendUrl);
63
- instanceName = deriveInstanceName(backendBaseUrl);
64
- } else if (instances.length > 0) {
65
- const choice = await promptForInstance(instances, selected);
66
- if (choice === "__new__") {
67
- backendBaseUrl = await pickBaseUrl();
68
- instanceName = deriveInstanceName(backendBaseUrl);
69
- } else {
70
- const targetInstance = instances.find((i) => i.name === choice);
71
- if (!targetInstance) {
72
- throw new Error("Instance not found");
73
- }
74
- backendBaseUrl = targetInstance.baseUrl;
75
- instanceName = targetInstance.name;
76
- }
77
- } else {
78
- backendBaseUrl = await pickBaseUrl();
79
- instanceName = deriveInstanceName(backendBaseUrl);
80
- }
81
- const authBaseUrl = `${backendBaseUrl}/api/auth`;
82
- const clientId = `${authBaseUrl}/.well-known/oauth-client/cli.json`;
83
- const metadataResponse = await fetch(clientId, {
84
- signal: AbortSignal.timeout(3e4)
85
- });
86
- if (!metadataResponse.ok) {
87
- throw new Error(
88
- `Server does not support CLI authentication. Ensure CIMD is enabled on the backend.`
89
- );
90
- }
91
- const { verifier, challenge, state } = createPkceState();
92
- const callback = await localServer.startCallbackServer({ state });
93
- try {
94
- const authorizeUrl = buildAuthorizeUrl({
95
- authBaseUrl,
96
- clientId,
97
- redirectUri: callback.url,
98
- state,
99
- challenge
100
- });
101
- await openBrowserOrPrint(authorizeUrl, noBrowser);
102
- const code = await waitForAuthorizationCode(callback, state);
103
- const token = await exchangeAuthorizationCode({
104
- authBaseUrl,
105
- code,
106
- redirectUri: callback.url,
107
- verifier
108
- });
109
- await persistInstance({
110
- instanceName,
111
- backendBaseUrl,
112
- clientId,
113
- token
114
- });
115
- process.stdout.write("Login successful\n");
116
- } finally {
117
- await callback.close();
118
- }
119
- };
120
- async function promptForInstance(instances, selected) {
121
- const choices = instances.map((i) => ({
122
- name: `${i.name === selected?.name ? "* " : " "}${i.name} (${i.baseUrl})`,
123
- value: i.name
124
- }));
125
- choices.push({
126
- name: "Add new instance...",
127
- value: "__new__"
128
- });
129
- const { choice } = await inquirer__default.default.prompt([
130
- {
131
- type: "list",
132
- name: "choice",
133
- message: "Select instance to authenticate:",
134
- choices,
135
- default: selected?.name ?? "__new__"
136
- }
137
- ]);
138
- return choice;
139
- }
140
- async function pickBaseUrl() {
141
- const cwd = process.cwd();
142
- const candidates = [];
143
- const patterns = [
144
- "app-config.yaml",
145
- "app-config.*.yaml",
146
- "packages/*/app-config.yaml",
147
- "packages/*/app-config.*.yaml"
148
- ];
149
- const files = patterns.flatMap((p) => glob__default.default.sync(p, { cwd, nodir: true }));
150
- for (const file of files) {
151
- try {
152
- const content = await fs__default.default.readFile(path__default.default.resolve(cwd, file), "utf8");
153
- const doc = YAML__default.default.parse(content);
154
- const url = doc?.backend?.baseUrl;
155
- if (url) {
156
- candidates.push({ url: normalizeUrl(url), file });
157
- }
158
- } catch {
159
- }
160
- }
161
- const list = [...new Map(candidates.map((c) => [c.url, c])).values()];
162
- if (list.length === 0) {
163
- const { manual } = await inquirer__default.default.prompt([
164
- { type: "input", name: "manual", message: "Enter backend base URL" }
165
- ]);
166
- return normalizeUrl(manual);
167
- }
168
- if (list.length === 1) {
169
- return list[0].url;
170
- }
171
- const { picked } = await inquirer__default.default.prompt([
172
- {
173
- type: "list",
174
- name: "picked",
175
- message: "Select backend base URL",
176
- choices: [
177
- ...list.map((e) => ({ name: `${e.url} (${e.file})`, value: e.url })),
178
- { name: "Enter manually", value: "__manual__" }
179
- ]
180
- }
181
- ]);
182
- if (picked === "__manual__") {
183
- const { manual } = await inquirer__default.default.prompt([
184
- { type: "input", name: "manual", message: "Enter backend base URL" }
185
- ]);
186
- return normalizeUrl(manual);
187
- }
188
- return picked;
189
- }
190
- function normalizeUrl(u) {
191
- if (u === void 0) {
192
- return void 0;
193
- }
194
- try {
195
- const url = new URL(u);
196
- return url.toString().replace(/\/$/, "");
197
- } catch {
198
- throw new Error(`'${u}' is not a valid URL`);
199
- }
200
- }
201
- function deriveInstanceName(url) {
202
- return new URL(url).host;
203
- }
204
- function createPkceState() {
205
- const verifier = pkce.generateVerifier();
206
- const challenge = pkce.challengeFromVerifier(verifier);
207
- const state = cryptoRandom();
208
- return { verifier, challenge, state };
209
- }
210
- function buildAuthorizeUrl(options) {
211
- const { authBaseUrl, clientId, redirectUri, state, challenge } = options;
212
- const authorize = new URL(`${authBaseUrl}/v1/authorize`);
213
- authorize.searchParams.set("client_id", clientId);
214
- authorize.searchParams.set("redirect_uri", redirectUri);
215
- authorize.searchParams.set("response_type", "code");
216
- authorize.searchParams.set("scope", "openid offline_access");
217
- authorize.searchParams.set("state", state);
218
- authorize.searchParams.set("code_challenge", challenge);
219
- authorize.searchParams.set("code_challenge_method", "S256");
220
- return authorize.toString();
221
- }
222
- async function openBrowserOrPrint(url, noBrowser) {
223
- if (noBrowser) {
224
- process.stdout.write(`Open this URL to continue: ${url}
225
- `);
226
- } else {
227
- process.stdout.write(`Opening the following URL: ${url}
228
- `);
229
- openInBrowser(url);
230
- }
231
- }
232
- async function waitForAuthorizationCode(callback, expectedState) {
233
- const { code, state } = await callback.waitForCode();
234
- if (state !== expectedState) {
235
- throw new Error("State mismatch");
236
- }
237
- return code;
238
- }
239
- async function exchangeAuthorizationCode(options) {
240
- const { authBaseUrl, code, redirectUri, verifier } = options;
241
- return await http.httpJson(`${authBaseUrl}/v1/token`, {
242
- method: "POST",
243
- body: {
244
- grant_type: "authorization_code",
245
- code,
246
- redirect_uri: redirectUri,
247
- code_verifier: verifier
248
- },
249
- signal: AbortSignal.timeout(TOKEN_EXCHANGE_TIMEOUT_MS)
250
- });
251
- }
252
- async function persistInstance(options) {
253
- const { instanceName, backendBaseUrl, clientId, token } = options;
254
- const secretStore$1 = await secretStore.getSecretStore();
255
- await storage.withMetadataLock(async () => {
256
- const service = `backstage-cli:auth-instance:${instanceName}`;
257
- await secretStore$1.set(service, "accessToken", token.access_token);
258
- if (token.refresh_token) {
259
- await secretStore$1.set(service, "refreshToken", token.refresh_token);
260
- } else {
261
- process.stderr.write(
262
- "Warning: No refresh token received. You will need to re-authenticate when the access token expires.\n"
263
- );
264
- }
265
- let existing;
266
- try {
267
- existing = await storage.getInstanceByName(instanceName);
268
- } catch {
269
- }
270
- await storage.upsertInstance({
271
- name: instanceName,
272
- baseUrl: backendBaseUrl,
273
- clientId,
274
- issuedAt: Date.now(),
275
- accessTokenExpiresAt: Date.now() + token.expires_in * 1e3,
276
- selected: existing?.selected
277
- });
278
- });
279
- }
280
- function cryptoRandom() {
281
- return crypto__default.default.randomBytes(32).toString("hex");
282
- }
283
- function openInBrowser(url) {
284
- const handleError = (error) => {
285
- const message = error instanceof Error ? error.message : "Unknown error";
286
- process.stderr.write(
287
- `Warning: Failed to open browser automatically: ${message}
288
- `
289
- );
290
- process.stderr.write(`Please open this URL manually: ${url}
291
- `);
292
- };
293
- const spawnOpts = { detached: true, stdio: "ignore" };
294
- let child;
295
- try {
296
- if (process.platform === "darwin") {
297
- child = node_child_process.spawn("open", [url], spawnOpts);
298
- } else if (process.platform === "win32") {
299
- child = node_child_process.spawn(
300
- "powershell",
301
- ["-Command", `Start-Process '${url.replace(/'/g, "''")}'`],
302
- spawnOpts
303
- );
304
- } else {
305
- child = node_child_process.spawn("xdg-open", [url], spawnOpts);
306
- }
307
- child.unref();
308
- child.on("error", handleError);
309
- } catch (error) {
310
- handleError(error);
311
- }
312
- }
313
-
314
- exports.default = login;
315
- exports.openInBrowser = openInBrowser;
316
- //# sourceMappingURL=login.cjs.js.map
@@ -1,55 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cleye = require('cleye');
6
- var secretStore = require('../lib/secretStore.cjs.js');
7
- var storage = require('../lib/storage.cjs.js');
8
- var http = require('../lib/http.cjs.js');
9
- var prompt = require('../lib/prompt.cjs.js');
10
-
11
- var logout = async ({ args, info }) => {
12
- const {
13
- flags: { instance: instanceFlag }
14
- } = cleye.cli(
15
- {
16
- help: info,
17
- flags: {
18
- instance: {
19
- type: String,
20
- description: "Name of the instance to log out"
21
- }
22
- }
23
- },
24
- void 0,
25
- args
26
- );
27
- const { name: instanceName } = await prompt.pickInstance(instanceFlag);
28
- await storage.withMetadataLock(async () => {
29
- const instance = await storage.getInstanceByName(instanceName);
30
- const secretStore$1 = await secretStore.getSecretStore();
31
- const service = `backstage-cli:auth-instance:${instanceName}`;
32
- const refreshToken = await secretStore$1.get(service, "refreshToken") ?? "";
33
- if (refreshToken) {
34
- try {
35
- const authBaseUrl = new URL("/api/auth", instance.baseUrl).toString().replace(/\/$/, "");
36
- await http.httpJson(`${authBaseUrl}/v1/revoke`, {
37
- method: "POST",
38
- body: {
39
- token: refreshToken,
40
- token_type_hint: "refresh_token"
41
- },
42
- signal: AbortSignal.timeout(3e4)
43
- });
44
- } catch {
45
- }
46
- }
47
- await secretStore$1.delete(service, "accessToken");
48
- await secretStore$1.delete(service, "refreshToken");
49
- await storage.removeInstance(instance.name);
50
- });
51
- process.stdout.write("Logged out\n");
52
- };
53
-
54
- exports.default = logout;
55
- //# sourceMappingURL=logout.cjs.js.map
@@ -1,41 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var cleye = require('cleye');
6
- var auth = require('../lib/auth.cjs.js');
7
- var storage = require('../lib/storage.cjs.js');
8
- var secretStore = require('../lib/secretStore.cjs.js');
9
-
10
- var printToken = async ({ args, info }) => {
11
- const {
12
- flags: { instance: instanceFlag }
13
- } = cleye.cli(
14
- {
15
- help: info,
16
- flags: {
17
- instance: {
18
- type: String,
19
- description: "Name of the instance to use"
20
- }
21
- }
22
- },
23
- void 0,
24
- args
25
- );
26
- let instance = await storage.getSelectedInstance(instanceFlag);
27
- if (auth.accessTokenNeedsRefresh(instance)) {
28
- instance = await auth.refreshAccessToken(instance.name);
29
- }
30
- const secretStore$1 = await secretStore.getSecretStore();
31
- const service = `backstage-cli:auth-instance:${instance.name}`;
32
- const accessToken = await secretStore$1.get(service, "accessToken");
33
- if (!accessToken) {
34
- throw new Error('No access token found. Run "auth login" to authenticate.');
35
- }
36
- process.stdout.write(`${accessToken}
37
- `);
38
- };
39
-
40
- exports.default = printToken;
41
- //# sourceMappingURL=printToken.cjs.js.map