@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,308 +0,0 @@
1
- 'use strict';
2
-
3
- var path = require('node:path');
4
- var core = require('@rspack/core');
5
- var ESLintRspackPlugin = require('eslint-rspack-plugin');
6
- var tsCheckerRspackPlugin = require('ts-checker-rspack-plugin');
7
- var HtmlWebpackPlugin = require('html-webpack-plugin');
8
- var ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');
9
- var rspack = require('@module-federation/enhanced/rspack');
10
- var fs = require('fs-extra');
11
- var optimization = require('./optimization.cjs.js');
12
- var pickBy = require('lodash/pickBy');
13
- var cliCommon = require('@backstage/cli-common');
14
- var transforms = require('./transforms.cjs.js');
15
- var version = require('../../../../wiring/version.cjs.js');
16
- var yn = require('yn');
17
- var hasReactDomClient = require('./hasReactDomClient.cjs.js');
18
- var linkWorkspaces = require('./linkWorkspaces.cjs.js');
19
- var ConfigInjectingHtmlWebpackPlugin = require('./ConfigInjectingHtmlWebpackPlugin.cjs.js');
20
-
21
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
22
-
23
- var ESLintRspackPlugin__default = /*#__PURE__*/_interopDefaultCompat(ESLintRspackPlugin);
24
- var HtmlWebpackPlugin__default = /*#__PURE__*/_interopDefaultCompat(HtmlWebpackPlugin);
25
- var ModuleScopePlugin__default = /*#__PURE__*/_interopDefaultCompat(ModuleScopePlugin);
26
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
27
- var pickBy__default = /*#__PURE__*/_interopDefaultCompat(pickBy);
28
- var yn__default = /*#__PURE__*/_interopDefaultCompat(yn);
29
-
30
- function resolveBaseUrl(config, moduleFederationRemote) {
31
- const baseUrl = config.getOptionalString("app.baseUrl");
32
- const defaultBaseUrl = moduleFederationRemote ? `http://localhost:${process.env.PORT ?? "3000"}` : "http://localhost:3000";
33
- try {
34
- return new URL(baseUrl ?? "/", defaultBaseUrl);
35
- } catch (error) {
36
- throw new Error(`Invalid app.baseUrl, ${error}`);
37
- }
38
- }
39
- function resolveEndpoint(config, moduleFederationRemote) {
40
- const url = resolveBaseUrl(config, moduleFederationRemote);
41
- return {
42
- host: config.getOptionalString("app.listen.host") ?? url.hostname,
43
- port: config.getOptionalNumber("app.listen.port") ?? Number(url.port) ?? (url.protocol === "https:" ? 443 : 80)
44
- };
45
- }
46
- async function readBuildInfo() {
47
- const timestamp = Date.now();
48
- let commit;
49
- try {
50
- commit = await cliCommon.runOutput(["git", "rev-parse", "HEAD"]);
51
- } catch (error) {
52
- }
53
- let gitVersion;
54
- try {
55
- gitVersion = await cliCommon.runOutput(["git", "describe", "--always"]);
56
- } catch (error) {
57
- }
58
- if (commit === void 0 || gitVersion === void 0) {
59
- console.info(
60
- "NOTE: Did not compute git version or commit hash, could not execute the git command line utility"
61
- );
62
- }
63
- const { version: packageVersion } = await fs__default.default.readJson(
64
- cliCommon.targetPaths.resolve("package.json")
65
- );
66
- return {
67
- cliVersion: version.version,
68
- gitVersion: gitVersion ?? "unknown",
69
- packageVersion,
70
- timestamp,
71
- commit: commit ?? "unknown"
72
- };
73
- }
74
- async function createConfig(paths, options) {
75
- const {
76
- checksEnabled,
77
- isDev,
78
- frontendConfig,
79
- moduleFederationRemote,
80
- publicSubPath = "",
81
- webpack
82
- } = options;
83
- const { plugins, loaders } = transforms.transforms(options);
84
- const validBaseUrl = resolveBaseUrl(frontendConfig, moduleFederationRemote);
85
- let publicPath = validBaseUrl.pathname.replace(/\/$/, "");
86
- if (publicSubPath) {
87
- publicPath = `${publicPath}${publicSubPath}`.replace("//", "/");
88
- }
89
- if (isDev) {
90
- const { host, port } = resolveEndpoint(
91
- options.frontendConfig,
92
- options.moduleFederationRemote
93
- );
94
- const refreshOptions = {
95
- overlay: {
96
- sockProtocol: "ws",
97
- sockHost: host,
98
- sockPort: port
99
- }
100
- };
101
- if (webpack) {
102
- const ReactRefreshPlugin = require("@pmmmwh/react-refresh-webpack-plugin");
103
- plugins.push(new ReactRefreshPlugin(refreshOptions));
104
- } else {
105
- const RspackReactRefreshPlugin = require("@rspack/plugin-react-refresh");
106
- plugins.push(new RspackReactRefreshPlugin(refreshOptions));
107
- }
108
- }
109
- if (checksEnabled) {
110
- const TsCheckerPlugin = webpack ? require("fork-ts-checker-webpack-plugin") : tsCheckerRspackPlugin.TsCheckerRspackPlugin;
111
- const ESLintPlugin = webpack ? require("eslint-webpack-plugin") : ESLintRspackPlugin__default.default;
112
- plugins.push(
113
- new TsCheckerPlugin({
114
- typescript: { configFile: paths.targetTsConfig, memoryLimit: 8192 }
115
- }),
116
- new ESLintPlugin({
117
- cache: false,
118
- // Cache seems broken
119
- context: paths.targetPath,
120
- files: ["**/*.(ts|tsx|mts|cts|js|jsx|mjs|cjs)"]
121
- })
122
- );
123
- }
124
- const bundler = webpack ? webpack : core.rspack;
125
- plugins.push(
126
- new bundler.ProvidePlugin({
127
- process: require.resolve("process/browser"),
128
- Buffer: ["buffer", "Buffer"]
129
- })
130
- );
131
- if (!options.moduleFederationRemote) {
132
- const templateOptions = {
133
- meta: {
134
- "backstage-app-mode": options?.appMode ?? "public"
135
- },
136
- template: paths.targetHtml,
137
- templateParameters: {
138
- publicPath,
139
- config: frontendConfig
140
- }
141
- };
142
- if (webpack) {
143
- plugins.push(new HtmlWebpackPlugin__default.default(templateOptions));
144
- } else {
145
- plugins.push(
146
- new ConfigInjectingHtmlWebpackPlugin.ConfigInjectingHtmlWebpackPlugin(
147
- templateOptions,
148
- options.getFrontendAppConfigs
149
- )
150
- );
151
- }
152
- plugins.push(
153
- new HtmlWebpackPlugin__default.default({
154
- meta: {
155
- "backstage-app-mode": options?.appMode ?? "public",
156
- // This is added to be written in the later step, and finally read by the extra entry point
157
- "backstage-public-path": "<%= publicPath %>/"
158
- },
159
- minify: false,
160
- publicPath: "<%= publicPath %>",
161
- filename: "index.html.tmpl",
162
- template: `${require.resolve("raw-loader")}!${paths.targetHtml}`
163
- })
164
- );
165
- }
166
- if (options.moduleFederationRemote) {
167
- const AdaptedModuleFederationPlugin = webpack ? require("@module-federation/enhanced/webpack").ModuleFederationPlugin : rspack.ModuleFederationPlugin;
168
- const exposes = options.moduleFederationRemote.exposes ? Object.fromEntries(
169
- Object.entries(options.moduleFederationRemote?.exposes).map(
170
- ([k, v]) => [k, path.resolve(paths.targetPath, v)]
171
- )
172
- ) : {
173
- ".": paths.targetEntry
174
- };
175
- plugins.push(
176
- new AdaptedModuleFederationPlugin({
177
- filename: "remoteEntry.js",
178
- exposes,
179
- name: options.moduleFederationRemote.name,
180
- runtime: false,
181
- shared: options.moduleFederationRemote.sharedDependencies
182
- })
183
- );
184
- }
185
- const buildInfo = await readBuildInfo();
186
- plugins.push(
187
- webpack ? new webpack.DefinePlugin({
188
- "process.env.BUILD_INFO": JSON.stringify(buildInfo),
189
- "process.env.APP_CONFIG": webpack.DefinePlugin.runtimeValue(
190
- () => JSON.stringify(options.getFrontendAppConfigs()),
191
- true
192
- ),
193
- // This allows for conditional imports of react-dom/client, since there's no way
194
- // to check for presence of it in source code without module resolution errors.
195
- "process.env.HAS_REACT_DOM_CLIENT": JSON.stringify(
196
- hasReactDomClient.hasReactDomClient()
197
- )
198
- }) : new bundler.DefinePlugin({
199
- "process.env.BUILD_INFO": JSON.stringify(buildInfo),
200
- "process.env.APP_CONFIG": JSON.stringify([]),
201
- // Inject via index.html instead
202
- // This allows for conditional imports of react-dom/client, since there's no way
203
- // to check for presence of it in source code without module resolution errors.
204
- "process.env.HAS_REACT_DOM_CLIENT": JSON.stringify(
205
- hasReactDomClient.hasReactDomClient()
206
- )
207
- })
208
- );
209
- if (options.linkedWorkspace) {
210
- plugins.push(
211
- ...await linkWorkspaces.createWorkspaceLinkingPlugins(
212
- bundler,
213
- options.linkedWorkspace
214
- )
215
- );
216
- }
217
- const reactRefreshFiles = webpack ? [
218
- require.resolve(
219
- "@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js"
220
- ),
221
- require.resolve(
222
- "@pmmmwh/react-refresh-webpack-plugin/overlay/index.js"
223
- ),
224
- require.resolve("react-refresh")
225
- ] : [];
226
- const mode = isDev ? "development" : "production";
227
- const optimization$1 = optimization.optimization(options);
228
- return {
229
- mode,
230
- profile: false,
231
- ...isDev ? {
232
- watchOptions: {
233
- ignored: /node_modules\/(?!__backstage-autodetected-plugins__)/
234
- }
235
- } : {},
236
- optimization: optimization$1,
237
- bail: false,
238
- performance: {
239
- hints: false
240
- // we check the gzip size instead
241
- },
242
- devtool: isDev ? "eval-cheap-module-source-map" : "source-map",
243
- context: paths.targetPath,
244
- entry: [
245
- require.resolve("@backstage/cli/config/webpack-public-path"),
246
- ...options.additionalEntryPoints ?? [],
247
- paths.targetEntry
248
- ],
249
- resolve: {
250
- extensions: [".ts", ".tsx", ".mjs", ".js", ".jsx", ".json", ".wasm"],
251
- mainFields: ["browser", "module", "main"],
252
- fallback: {
253
- ...pickBy__default.default(require("node-stdlib-browser")),
254
- module: false,
255
- dgram: false,
256
- dns: false,
257
- fs: false,
258
- http2: false,
259
- net: false,
260
- tls: false,
261
- child_process: false,
262
- /* new ignores */
263
- path: false,
264
- https: false,
265
- http: false,
266
- util: require.resolve("util/")
267
- },
268
- // FIXME: see also https://github.com/web-infra-dev/rspack/issues/3408
269
- ...webpack && {
270
- plugins: [
271
- new ModuleScopePlugin__default.default(
272
- [paths.targetSrc, paths.targetDev],
273
- [paths.targetPackageJson, ...reactRefreshFiles]
274
- )
275
- ]
276
- }
277
- },
278
- module: {
279
- rules: loaders
280
- },
281
- output: {
282
- uniqueName: options.moduleFederationRemote?.name,
283
- path: paths.targetDist,
284
- publicPath: options.moduleFederationRemote ? "auto" : `${publicPath}/`,
285
- filename: isDev ? "[name].js" : "static/[name].[contenthash:8].js",
286
- chunkFilename: isDev ? "[name].chunk.js" : "static/[name].[contenthash:8].chunk.js",
287
- ...isDev ? {
288
- devtoolModuleFilenameTemplate: (info) => `file:///${path.resolve(info.absoluteResourcePath).replace(
289
- /\\/g,
290
- "/"
291
- )}`
292
- } : {}
293
- },
294
- experiments: {
295
- lazyCompilation: yn__default.default(process.env.EXPERIMENTAL_LAZY_COMPILATION),
296
- ...!webpack && {
297
- // We're still using `style-loader` for custom `insert` option
298
- css: false
299
- }
300
- },
301
- plugins
302
- };
303
- }
304
-
305
- exports.createConfig = createConfig;
306
- exports.resolveBaseUrl = resolveBaseUrl;
307
- exports.resolveEndpoint = resolveEndpoint;
308
- //# sourceMappingURL=config.cjs.js.map
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- var cliCommon = require('@backstage/cli-common');
4
-
5
- function hasReactDomClient() {
6
- try {
7
- require.resolve("react-dom/client", {
8
- paths: [cliCommon.targetPaths.dir]
9
- });
10
- return true;
11
- } catch {
12
- return false;
13
- }
14
- }
15
-
16
- exports.hasReactDomClient = hasReactDomClient;
17
- //# sourceMappingURL=hasReactDomClient.cjs.js.map
@@ -1,34 +0,0 @@
1
- 'use strict';
2
-
3
- var path = require('node:path');
4
- var getPackages = require('@manypkg/get-packages');
5
- var cliCommon = require('@backstage/cli-common');
6
-
7
- async function createWorkspaceLinkingPlugins(bundler, workspace) {
8
- const { packages: linkedPackages, root: linkedRoot } = await getPackages.getPackages(
9
- workspace
10
- );
11
- const replacementRegex = new RegExp(
12
- `^(?:${linkedPackages.map((pkg) => pkg.packageJson.name).join("|")})(?:/.*)?$`
13
- );
14
- return [
15
- // Any imports of a package that is present in the linked workspace will
16
- // be redirected to be resolved within the context of the linked workspace
17
- new bundler.NormalModuleReplacementPlugin(replacementRegex, (resource) => {
18
- resource.context = linkedRoot.dir;
19
- }),
20
- // react and react-dom are always resolved from the target directory
21
- // Note: this often requires that the linked and target workspace use the same versions of React
22
- new bundler.NormalModuleReplacementPlugin(
23
- /^react(?:-router)?(?:-dom)?$/,
24
- (resource) => {
25
- if (!path.relative(linkedRoot.dir, resource.context).startsWith("..")) {
26
- resource.context = cliCommon.targetPaths.dir;
27
- }
28
- }
29
- )
30
- ];
31
- }
32
-
33
- exports.createWorkspaceLinkingPlugins = createWorkspaceLinkingPlugins;
34
- //# sourceMappingURL=linkWorkspaces.cjs.js.map
@@ -1,135 +0,0 @@
1
- 'use strict';
2
-
3
- var entryPoints = require('../entryPoints.cjs.js');
4
- var typeDistProject = require('../typeDistProject.cjs.js');
5
- var moduleFederationCommon = require('@backstage/module-federation-common');
6
- var path = require('node:path');
7
- var fs = require('fs-extra');
8
- var chokidar = require('chokidar');
9
- var PQueue = require('p-queue');
10
-
11
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
12
-
13
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
14
- var chokidar__default = /*#__PURE__*/_interopDefaultCompat(chokidar);
15
- var PQueue__default = /*#__PURE__*/_interopDefaultCompat(PQueue);
16
-
17
- async function getModuleFederationRemoteOptions(packageJson, packageDir) {
18
- let exposes;
19
- const packageRole = packageJson.backstage?.role;
20
- if (packageJson.exports && packageRole) {
21
- const project = await typeDistProject.createTypeDistProject();
22
- exposes = Object.fromEntries(
23
- entryPoints.readEntryPoints(packageJson).filter((ep) => {
24
- if (ep.mount === "./package.json") {
25
- return false;
26
- }
27
- if (ep.mount === ".") {
28
- return true;
29
- }
30
- return typeDistProject.getEntryPointDefaultFeatureType(
31
- packageRole,
32
- packageDir,
33
- project,
34
- ep.path
35
- ) !== null;
36
- }).map((ep) => [ep.mount, ep.path])
37
- );
38
- }
39
- return {
40
- // The default output mode requires the name to be a usable as a code
41
- // symbol, there might be better options here but for now we need to
42
- // sanitize the name.
43
- name: packageJson.name.replaceAll("@", "").replaceAll("/", "__").replaceAll("-", "_"),
44
- exposes,
45
- sharedDependencies: moduleFederationCommon.defaultRemoteSharedDependencies()
46
- };
47
- }
48
- function prepareRuntimeSharedDependenciesScript(hostSharedDependencies) {
49
- const items = Object.entries(hostSharedDependencies).map(
50
- ([name, sharedDep]) => {
51
- if (!sharedDep.version) {
52
- throw new Error(`Version is required for shared dependency '${name}'`);
53
- }
54
- return {
55
- name,
56
- version: sharedDep.version,
57
- lib: name,
58
- // Coverted into import below
59
- shareConfig: {
60
- singleton: sharedDep.singleton,
61
- requiredVersion: sharedDep.requiredVersion,
62
- eager: sharedDep.eager
63
- }
64
- };
65
- }
66
- );
67
- return `window['${moduleFederationCommon.BACKSTAGE_RUNTIME_SHARED_DEPENDENCIES_GLOBAL}'] = ${JSON.stringify(
68
- { items, version: "v1" },
69
- null,
70
- 2
71
- ).replace(
72
- /"lib": ("[^"]+")/gm,
73
- (_, name) => `"lib": () => import(${name})`
74
- )};`;
75
- }
76
- const RUNTIME_SHARED_DEPENDENCIES_MODULE_NAME = "__backstage-module-federation-runtime-shared-dependencies__";
77
- const writeQueue = new PQueue__default.default({ concurrency: 1 });
78
- async function writeRuntimeSharedDependenciesModule(targetPath, runtimeSharedDependencies) {
79
- const script = prepareRuntimeSharedDependenciesScript(
80
- runtimeSharedDependencies
81
- );
82
- await writeQueue.add(async () => {
83
- const path$1 = path.join(
84
- targetPath,
85
- "node_modules",
86
- `${RUNTIME_SHARED_DEPENDENCIES_MODULE_NAME}.js`
87
- );
88
- await fs__default.default.ensureDir(path.dirname(path$1));
89
- await fs__default.default.writeFile(path$1, script);
90
- });
91
- }
92
- function resolveSharedDependencyVersions(targetPath, hostSharedDependencies) {
93
- return Object.fromEntries(
94
- Object.entries(hostSharedDependencies).filter(([_, sharedDep]) => sharedDep !== void 0).flatMap(([importPath, sharedDep]) => {
95
- const moduleName = importPath.startsWith("@") ? importPath.split("/").slice(0, 2).join("/") : importPath.split("/")[0];
96
- let version;
97
- try {
98
- const packagePath = require.resolve(`${moduleName}/package.json`, {
99
- paths: [targetPath]
100
- });
101
- version = require(packagePath).version;
102
- } catch (e) {
103
- console.log(
104
- `Skipping module federation shared dependency '${importPath}' because it could not be resolved.`
105
- );
106
- return [];
107
- }
108
- return [[importPath, { ...sharedDep, version }]];
109
- })
110
- );
111
- }
112
- async function createRuntimeSharedDependenciesEntryPoint(options) {
113
- const { targetPath, watch } = options;
114
- const doWriteSharedDependenciesModule = async () => {
115
- const sharedDependencies = moduleFederationCommon.defaultHostSharedDependencies();
116
- await writeRuntimeSharedDependenciesModule(
117
- targetPath,
118
- resolveSharedDependencyVersions(targetPath, sharedDependencies)
119
- );
120
- };
121
- if (watch) {
122
- const watcher = chokidar__default.default.watch(path.resolve(targetPath, "package.json"));
123
- watcher.on("change", async () => {
124
- await doWriteSharedDependenciesModule();
125
- watch();
126
- });
127
- }
128
- await doWriteSharedDependenciesModule();
129
- return [RUNTIME_SHARED_DEPENDENCIES_MODULE_NAME];
130
- }
131
-
132
- exports.createRuntimeSharedDependenciesEntryPoint = createRuntimeSharedDependenciesEntryPoint;
133
- exports.getModuleFederationRemoteOptions = getModuleFederationRemoteOptions;
134
- exports.prepareRuntimeSharedDependenciesScript = prepareRuntimeSharedDependenciesScript;
135
- //# sourceMappingURL=moduleFederation.cjs.js.map
@@ -1,68 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@rspack/core');
4
-
5
- const optimization = (options) => {
6
- const { isDev, webpack } = options;
7
- const MinifyPlugin = webpack ? require("esbuild-loader").EsbuildPlugin : core.SwcJsMinimizerRspackPlugin;
8
- return {
9
- minimize: !isDev,
10
- minimizer: [
11
- new MinifyPlugin({
12
- target: "ES2023",
13
- format: "iife",
14
- exclude: "remoteEntry.js"
15
- }),
16
- // Avoid iife wrapping of module federation remote entry as it breaks the variable assignment
17
- new MinifyPlugin({
18
- target: "ES2023",
19
- format: void 0,
20
- include: "remoteEntry.js"
21
- }),
22
- webpack ? void 0 : new core.LightningCssMinimizerRspackPlugin()
23
- ],
24
- runtimeChunk: "single",
25
- splitChunks: {
26
- automaticNameDelimiter: "-",
27
- cacheGroups: {
28
- default: false,
29
- // Put all vendor code needed for initial page load in individual files if they're big
30
- // enough, if they're smaller they end up in the main
31
- packages: {
32
- chunks: "initial",
33
- test(module) {
34
- return Boolean(
35
- module?.resource?.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)
36
- );
37
- },
38
- name(module) {
39
- const packageName = module.resource.match(
40
- /[\\/]node_modules[\\/](.*?)([\\/]|$)/
41
- )[1];
42
- return packageName.replace("@", "");
43
- },
44
- filename: isDev ? "module-[name].js" : "static/module-[name].[contenthash:8].js",
45
- priority: 10,
46
- minSize: 1e5,
47
- minChunks: 1,
48
- ...webpack && {
49
- maxAsyncRequests: Infinity,
50
- maxInitialRequests: Infinity
51
- }
52
- },
53
- // filename is not included in type, but we need it
54
- // Group together the smallest modules
55
- vendor: {
56
- chunks: "initial",
57
- test: /[\\/]node_modules[\\/]/,
58
- name: "vendor",
59
- priority: 5,
60
- enforce: true
61
- }
62
- }
63
- }
64
- };
65
- };
66
-
67
- exports.optimization = optimization;
68
- //# sourceMappingURL=optimization.cjs.js.map
@@ -1,124 +0,0 @@
1
- 'use strict';
2
-
3
- var config = require('@backstage/config');
4
- var chokidar = require('chokidar');
5
- var fs = require('fs-extra');
6
- var PQueue = require('p-queue');
7
- var path = require('node:path');
8
- var cliCommon = require('@backstage/cli-common');
9
-
10
- function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
11
-
12
- var chokidar__default = /*#__PURE__*/_interopDefaultCompat(chokidar);
13
- var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
14
- var PQueue__default = /*#__PURE__*/_interopDefaultCompat(PQueue);
15
-
16
- const DETECTED_MODULES_MODULE_NAME = "__backstage-autodetected-plugins__";
17
- function readPackageDetectionConfig(config$1) {
18
- const packages = config$1.getOptional("app.packages");
19
- if (packages === void 0 || packages === null) {
20
- return void 0;
21
- }
22
- if (typeof packages === "string") {
23
- if (packages !== "all") {
24
- throw new Error(
25
- `Invalid app.packages mode, got '${packages}', expected 'all'`
26
- );
27
- }
28
- return {};
29
- }
30
- if (typeof packages !== "object" || Array.isArray(packages)) {
31
- throw new Error("Invalid config at 'app.packages', expected object");
32
- }
33
- const packagesConfig = new config.ConfigReader(packages, "app.packages");
34
- return {
35
- include: packagesConfig.getOptionalStringArray("include"),
36
- exclude: packagesConfig.getOptionalStringArray("exclude")
37
- };
38
- }
39
- async function detectPackages(targetPath, { include, exclude }) {
40
- const pkg = await fs__default.default.readJson(
41
- path.resolve(targetPath, "package.json")
42
- );
43
- return Object.keys(pkg.dependencies ?? {}).flatMap((depName) => {
44
- if (exclude?.includes(depName)) {
45
- return [];
46
- }
47
- if (include && !include.includes(depName)) {
48
- return [];
49
- }
50
- try {
51
- const depPackageJson = require(require.resolve(
52
- `${depName}/package.json`,
53
- { paths: [targetPath] }
54
- ));
55
- if (["frontend-plugin", "frontend-plugin-module"].includes(
56
- depPackageJson.backstage?.role ?? ""
57
- )) {
58
- const exp = depPackageJson.exports;
59
- if (exp && typeof exp === "object" && "./alpha" in exp) {
60
- return [
61
- { name: depName, import: depName },
62
- { name: depName, export: "./alpha", import: `${depName}/alpha` }
63
- ];
64
- }
65
- return [{ name: depName, import: depName }];
66
- }
67
- } catch {
68
- }
69
- return [];
70
- });
71
- }
72
- const writeQueue = new PQueue__default.default({ concurrency: 1 });
73
- async function writeDetectedPackagesModule(targetPath, pkgs) {
74
- const requirePackageScript = pkgs?.map(
75
- (pkg) => `{ name: ${JSON.stringify(pkg.name)}, export: ${JSON.stringify(
76
- pkg.export
77
- )}, default: require('${pkg.import}').default }`
78
- ).join(",");
79
- await writeQueue.add(async () => {
80
- const detectedModulesPath = path.join(
81
- targetPath,
82
- "node_modules",
83
- `${DETECTED_MODULES_MODULE_NAME}.js`
84
- );
85
- await fs__default.default.ensureDir(path.dirname(detectedModulesPath));
86
- await fs__default.default.writeFile(
87
- detectedModulesPath,
88
- `window['__@backstage/discovered__'] = { modules: [${requirePackageScript}] };`
89
- );
90
- });
91
- }
92
- async function createDetectedModulesEntryPoint(options) {
93
- const { config, watch, targetPath } = options;
94
- const detectionConfig = readPackageDetectionConfig(config);
95
- if (!detectionConfig) {
96
- return [];
97
- }
98
- const legacyDetectedModulesPath = path.join(
99
- cliCommon.targetPaths.rootDir,
100
- "node_modules",
101
- `${DETECTED_MODULES_MODULE_NAME}.js`
102
- );
103
- if (await fs__default.default.pathExists(legacyDetectedModulesPath)) {
104
- await fs__default.default.remove(legacyDetectedModulesPath);
105
- }
106
- if (watch) {
107
- const watcher = chokidar__default.default.watch(path.resolve(targetPath, "package.json"));
108
- watcher.on("change", async () => {
109
- await writeDetectedPackagesModule(
110
- targetPath,
111
- await detectPackages(targetPath, detectionConfig)
112
- );
113
- watch();
114
- });
115
- }
116
- await writeDetectedPackagesModule(
117
- targetPath,
118
- await detectPackages(targetPath, detectionConfig)
119
- );
120
- return [DETECTED_MODULES_MODULE_NAME];
121
- }
122
-
123
- exports.createDetectedModulesEntryPoint = createDetectedModulesEntryPoint;
124
- //# sourceMappingURL=packageDetection.cjs.js.map