@nx/angular 24.0.0-beta.2 → 24.0.0-beta.3

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 (187) hide show
  1. package/dist/executors.d.ts +0 -2
  2. package/dist/executors.js +0 -2
  3. package/dist/generators.d.ts +0 -4
  4. package/dist/generators.js +0 -4
  5. package/dist/src/generators/add-linting/add-linting.js +0 -2
  6. package/dist/src/generators/add-linting/schema.d.ts +0 -1
  7. package/dist/src/generators/application/application.js +1 -2
  8. package/dist/src/generators/application/lib/add-e2e.js +0 -6
  9. package/dist/src/generators/application/lib/add-linting.js +0 -1
  10. package/dist/src/generators/application/lib/add-unit-test-runner.js +0 -2
  11. package/dist/src/generators/application/lib/normalize-options.d.ts +1 -1
  12. package/dist/src/generators/application/lib/normalize-options.js +1 -8
  13. package/dist/src/generators/application/schema.d.ts +0 -1
  14. package/dist/src/generators/application/schema.json +1 -1
  15. package/dist/src/generators/convert-to-rspack/convert-to-rspack.js +3 -4
  16. package/dist/src/generators/convert-to-rspack/lib/get-custom-webpack-config.d.ts +1 -2
  17. package/dist/src/generators/convert-to-rspack/lib/get-custom-webpack-config.js +0 -63
  18. package/dist/src/generators/convert-to-rspack/lib/validate-no-module-federation.d.ts +2 -0
  19. package/dist/src/generators/convert-to-rspack/lib/validate-no-module-federation.js +32 -0
  20. package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.js +3 -15
  21. package/dist/src/generators/init/init.js +1 -2
  22. package/dist/src/generators/init/schema.d.ts +0 -2
  23. package/dist/src/generators/library/schema.d.ts +0 -1
  24. package/dist/src/generators/ng-add/migrators/builders/angular-eslint-lint.migrator.js +12 -1
  25. package/dist/src/generators/ng-add/migrators/projects/e2e.migrator.js +12 -16
  26. package/dist/src/generators/ng-add/utilities/workspace.js +1 -3
  27. package/dist/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +0 -2
  28. package/dist/src/generators/utils/add-jest.d.ts +0 -1
  29. package/dist/src/generators/utils/add-jest.js +0 -2
  30. package/dist/src/generators/utils/add-vitest.d.ts +0 -1
  31. package/dist/src/generators/utils/add-vitest.js +0 -1
  32. package/dist/src/generators/utils/testing.d.ts +0 -4
  33. package/dist/src/generators/utils/testing.js +0 -12
  34. package/dist/src/utils/backward-compatible-versions.js +0 -8
  35. package/dist/src/utils/versions.d.ts +0 -4
  36. package/dist/src/utils/versions.js +1 -5
  37. package/executors.json +0 -10
  38. package/generators.json +0 -35
  39. package/package.json +11 -20
  40. package/dist/.npmignore +0 -2
  41. package/dist/fesm2022/nx-angular-mf.mjs +0 -193
  42. package/dist/fesm2022/nx-angular-mf.mjs.map +0 -1
  43. package/dist/mf/package.json +0 -4
  44. package/dist/src/builders/utilities/module-federation.d.ts +0 -11
  45. package/dist/src/builders/utilities/module-federation.js +0 -109
  46. package/dist/src/executors/module-federation-dev-server/lib/index.d.ts +0 -2
  47. package/dist/src/executors/module-federation-dev-server/lib/index.js +0 -5
  48. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.d.ts +0 -2
  49. package/dist/src/executors/module-federation-dev-server/lib/normalize-options.js +0 -22
  50. package/dist/src/executors/module-federation-dev-server/lib/start-dev-remotes.d.ts +0 -5
  51. package/dist/src/executors/module-federation-dev-server/lib/start-dev-remotes.js +0 -29
  52. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts +0 -4
  53. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +0 -111
  54. package/dist/src/executors/module-federation-dev-server/schema.d.ts +0 -38
  55. package/dist/src/executors/module-federation-dev-server/schema.json +0 -171
  56. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.d.ts +0 -2
  57. package/dist/src/executors/module-federation-ssr-dev-server/lib/normalize-options.js +0 -20
  58. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-dev-remotes.d.ts +0 -5
  59. package/dist/src/executors/module-federation-ssr-dev-server/lib/start-dev-remotes.js +0 -30
  60. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts +0 -4
  61. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +0 -110
  62. package/dist/src/executors/module-federation-ssr-dev-server/schema.d.ts +0 -17
  63. package/dist/src/executors/module-federation-ssr-dev-server/schema.json +0 -124
  64. package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts +0 -4
  65. package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.js +0 -36
  66. package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.d.ts +0 -5
  67. package/dist/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.js +0 -448
  68. package/dist/src/generators/convert-to-with-mf/lib/check-name-matches.d.ts +0 -2
  69. package/dist/src/generators/convert-to-with-mf/lib/check-name-matches.js +0 -22
  70. package/dist/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.d.ts +0 -2
  71. package/dist/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js +0 -45
  72. package/dist/src/generators/convert-to-with-mf/lib/get-webpack-config-path.d.ts +0 -2
  73. package/dist/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +0 -18
  74. package/dist/src/generators/convert-to-with-mf/lib/index.d.ts +0 -6
  75. package/dist/src/generators/convert-to-with-mf/lib/index.js +0 -9
  76. package/dist/src/generators/convert-to-with-mf/lib/is-host-remote-config.d.ts +0 -5
  77. package/dist/src/generators/convert-to-with-mf/lib/is-host-remote-config.js +0 -57
  78. package/dist/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.d.ts +0 -2
  79. package/dist/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js +0 -13
  80. package/dist/src/generators/convert-to-with-mf/lib/write-new-webpack-config.d.ts +0 -3
  81. package/dist/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +0 -50
  82. package/dist/src/generators/convert-to-with-mf/schema.d.ts +0 -4
  83. package/dist/src/generators/convert-to-with-mf/schema.json +0 -33
  84. package/dist/src/generators/federate-module/federate-module.d.ts +0 -4
  85. package/dist/src/generators/federate-module/federate-module.js +0 -49
  86. package/dist/src/generators/federate-module/lib/add-file-to-remote-tsconfig.d.ts +0 -2
  87. package/dist/src/generators/federate-module/lib/add-file-to-remote-tsconfig.js +0 -14
  88. package/dist/src/generators/federate-module/lib/add-path-to-exposes.d.ts +0 -8
  89. package/dist/src/generators/federate-module/lib/add-path-to-exposes.js +0 -77
  90. package/dist/src/generators/federate-module/lib/add-path-to-ts-config.d.ts +0 -8
  91. package/dist/src/generators/federate-module/lib/add-path-to-ts-config.js +0 -11
  92. package/dist/src/generators/federate-module/lib/add-remote.d.ts +0 -7
  93. package/dist/src/generators/federate-module/lib/add-remote.js +0 -42
  94. package/dist/src/generators/federate-module/lib/check-remote-exists.d.ts +0 -2
  95. package/dist/src/generators/federate-module/lib/check-remote-exists.js +0 -21
  96. package/dist/src/generators/federate-module/lib/index.d.ts +0 -4
  97. package/dist/src/generators/federate-module/lib/index.js +0 -7
  98. package/dist/src/generators/federate-module/schema.d.ts +0 -13
  99. package/dist/src/generators/federate-module/schema.json +0 -83
  100. package/dist/src/generators/host/files/common/src/main.server.ts__tmpl__ +0 -78
  101. package/dist/src/generators/host/files/js/webpack.server.config.js__tmpl__ +0 -8
  102. package/dist/src/generators/host/files/ts/webpack.server.config.ts__tmpl__ +0 -9
  103. package/dist/src/generators/host/host.d.ts +0 -4
  104. package/dist/src/generators/host/host.js +0 -133
  105. package/dist/src/generators/host/lib/index.d.ts +0 -2
  106. package/dist/src/generators/host/lib/index.js +0 -5
  107. package/dist/src/generators/host/lib/update-ssr-setup.d.ts +0 -3
  108. package/dist/src/generators/host/lib/update-ssr-setup.js +0 -54
  109. package/dist/src/generators/host/lib/validate-options.d.ts +0 -3
  110. package/dist/src/generators/host/lib/validate-options.js +0 -12
  111. package/dist/src/generators/host/schema.d.ts +0 -36
  112. package/dist/src/generators/host/schema.json +0 -195
  113. package/dist/src/generators/remote/files/base/webpack.server.config.js__tmpl__ +0 -9
  114. package/dist/src/generators/remote/files/base-ts/webpack.server.config.ts__tmpl__ +0 -9
  115. package/dist/src/generators/remote/files/common/src/main.server.ts__tmpl__ +0 -84
  116. package/dist/src/generators/remote/files/standalone/src/bootstrap.server.ts__tmpl__ +0 -12
  117. package/dist/src/generators/remote/lib/find-next-available-port.d.ts +0 -2
  118. package/dist/src/generators/remote/lib/find-next-available-port.js +0 -16
  119. package/dist/src/generators/remote/lib/index.d.ts +0 -3
  120. package/dist/src/generators/remote/lib/index.js +0 -6
  121. package/dist/src/generators/remote/lib/update-ssr-setup.d.ts +0 -9
  122. package/dist/src/generators/remote/lib/update-ssr-setup.js +0 -82
  123. package/dist/src/generators/remote/lib/validate-options.d.ts +0 -3
  124. package/dist/src/generators/remote/lib/validate-options.js +0 -12
  125. package/dist/src/generators/remote/remote.d.ts +0 -4
  126. package/dist/src/generators/remote/remote.js +0 -114
  127. package/dist/src/generators/remote/schema.d.ts +0 -34
  128. package/dist/src/generators/remote/schema.json +0 -184
  129. package/dist/src/generators/setup-mf/files/entry-module-files/__entryModuleFileName__.ts__tmpl__ +0 -18
  130. package/dist/src/generators/setup-mf/files/entry-module-files/entry.routes.ts__tmpl__ +0 -4
  131. package/dist/src/generators/setup-mf/files/entry-module-files/entry__componentFileSuffix__.ts__tmpl__ +0 -10
  132. package/dist/src/generators/setup-mf/files/host-files/__appFileName__.spec.ts__tmpl__ +0 -42
  133. package/dist/src/generators/setup-mf/files/standalone-entry-component-files/entry.routes.ts__tmpl__ +0 -4
  134. package/dist/src/generators/setup-mf/files/standalone-entry-component-files/entry__componentFileSuffix__.ts__tmpl__ +0 -11
  135. package/dist/src/generators/setup-mf/files/ts-webpack/module-federation.config.ts__tmpl__ +0 -27
  136. package/dist/src/generators/setup-mf/files/ts-webpack/tsconfig.lint.json__tmpl__ +0 -12
  137. package/dist/src/generators/setup-mf/files/ts-webpack/webpack.config.ts__tmpl__ +0 -9
  138. package/dist/src/generators/setup-mf/files/ts-webpack/webpack.prod.config.ts__tmpl__ +0 -21
  139. package/dist/src/generators/setup-mf/files/webpack/module-federation.config.js__tmpl__ +0 -23
  140. package/dist/src/generators/setup-mf/files/webpack/webpack.config.js__tmpl__ +0 -9
  141. package/dist/src/generators/setup-mf/files/webpack/webpack.prod.config.js__tmpl__ +0 -21
  142. package/dist/src/generators/setup-mf/lib/add-cypress-workaround.d.ts +0 -3
  143. package/dist/src/generators/setup-mf/lib/add-cypress-workaround.js +0 -52
  144. package/dist/src/generators/setup-mf/lib/add-remote-entry.d.ts +0 -3
  145. package/dist/src/generators/setup-mf/lib/add-remote-entry.js +0 -27
  146. package/dist/src/generators/setup-mf/lib/add-remote-to-host.d.ts +0 -9
  147. package/dist/src/generators/setup-mf/lib/add-remote-to-host.js +0 -127
  148. package/dist/src/generators/setup-mf/lib/change-build-target.d.ts +0 -3
  149. package/dist/src/generators/setup-mf/lib/change-build-target.js +0 -24
  150. package/dist/src/generators/setup-mf/lib/fix-bootstrap.d.ts +0 -3
  151. package/dist/src/generators/setup-mf/lib/fix-bootstrap.js +0 -40
  152. package/dist/src/generators/setup-mf/lib/generate-config.d.ts +0 -6
  153. package/dist/src/generators/setup-mf/lib/generate-config.js +0 -32
  154. package/dist/src/generators/setup-mf/lib/get-remotes-with-ports.d.ts +0 -6
  155. package/dist/src/generators/setup-mf/lib/get-remotes-with-ports.js +0 -20
  156. package/dist/src/generators/setup-mf/lib/index.d.ts +0 -15
  157. package/dist/src/generators/setup-mf/lib/index.js +0 -18
  158. package/dist/src/generators/setup-mf/lib/move-angular-plugin-to-dependencies.d.ts +0 -2
  159. package/dist/src/generators/setup-mf/lib/move-angular-plugin-to-dependencies.js +0 -15
  160. package/dist/src/generators/setup-mf/lib/normalize-options.d.ts +0 -3
  161. package/dist/src/generators/setup-mf/lib/normalize-options.js +0 -26
  162. package/dist/src/generators/setup-mf/lib/remove-dead-code-from-remote.d.ts +0 -3
  163. package/dist/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +0 -61
  164. package/dist/src/generators/setup-mf/lib/setup-host-if-dynamic.d.ts +0 -3
  165. package/dist/src/generators/setup-mf/lib/setup-host-if-dynamic.js +0 -20
  166. package/dist/src/generators/setup-mf/lib/setup-serve-target.d.ts +0 -3
  167. package/dist/src/generators/setup-mf/lib/setup-serve-target.js +0 -39
  168. package/dist/src/generators/setup-mf/lib/setup-tspath-for-remote.d.ts +0 -3
  169. package/dist/src/generators/setup-mf/lib/setup-tspath-for-remote.js +0 -15
  170. package/dist/src/generators/setup-mf/lib/update-host-app-routes.d.ts +0 -3
  171. package/dist/src/generators/setup-mf/lib/update-host-app-routes.js +0 -39
  172. package/dist/src/generators/setup-mf/lib/update-tsconfig.d.ts +0 -3
  173. package/dist/src/generators/setup-mf/lib/update-tsconfig.js +0 -18
  174. package/dist/src/generators/setup-mf/schema.d.ts +0 -35
  175. package/dist/src/generators/setup-mf/schema.json +0 -99
  176. package/dist/src/generators/setup-mf/setup-mf.d.ts +0 -4
  177. package/dist/src/generators/setup-mf/setup-mf.js +0 -90
  178. package/dist/src/generators/utils/add-mf-env-to-inputs.d.ts +0 -2
  179. package/dist/src/generators/utils/add-mf-env-to-inputs.js +0 -36
  180. package/dist/src/generators/utils/assert-mf-utils.d.ts +0 -1
  181. package/dist/src/generators/utils/assert-mf-utils.js +0 -8
  182. package/dist/src/utils/get-mf-projects.d.ts +0 -4
  183. package/dist/src/utils/get-mf-projects.js +0 -31
  184. package/dist/src/utils/module-federation-deprecation.d.ts +0 -4
  185. package/dist/src/utils/module-federation-deprecation.js +0 -29
  186. package/dist/types/nx-angular-mf.d.ts +0 -72
  187. package/dist/types/nx-angular-mf.d.ts.map +0 -1
@@ -1,3 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- import type { Schema } from '../schema';
3
- export declare function setupServeTarget(host: Tree, options: Schema): void;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupServeTarget = setupServeTarget;
4
- const devkit_1 = require("@nx/devkit");
5
- function setupServeTarget(host, options) {
6
- const appConfig = (0, devkit_1.readProjectConfiguration)(host, options.appName);
7
- appConfig.targets['serve'] = {
8
- ...appConfig.targets['serve'],
9
- executor: options.mfType === 'host'
10
- ? '@nx/angular:module-federation-dev-server'
11
- : '@nx/angular:dev-server',
12
- options: {
13
- ...appConfig.targets['serve'].options,
14
- port: options.port ?? undefined,
15
- publicHost: `http://localhost:${options.port ?? 4200}`,
16
- },
17
- };
18
- if (options.mfType === 'remote') {
19
- appConfig.targets['serve-static'] = {
20
- continuous: true,
21
- executor: '@nx/web:file-server',
22
- defaultConfiguration: 'production',
23
- options: {
24
- buildTarget: `${options.appName}:build`,
25
- port: options.port,
26
- watch: false,
27
- },
28
- configurations: {
29
- development: {
30
- buildTarget: `${options.appName}:build:development`,
31
- },
32
- production: {
33
- buildTarget: `${options.appName}:build:production`,
34
- },
35
- },
36
- };
37
- }
38
- (0, devkit_1.updateProjectConfiguration)(host, options.appName, appConfig);
39
- }
@@ -1,3 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- import type { NormalizedOptions } from '../schema';
3
- export declare function setupTspathForRemote(tree: Tree, options: NormalizedOptions): void;
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupTspathForRemote = setupTspathForRemote;
4
- const devkit_1 = require("@nx/devkit");
5
- const js_1 = require("@nx/js");
6
- const versions_1 = require("../../../utils/versions");
7
- function setupTspathForRemote(tree, options) {
8
- const { normalizeProjectName } = (0, devkit_1.ensurePackage)('@nx/module-federation', versions_1.nxVersion);
9
- const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
10
- const exportPath = options.standalone
11
- ? `./src/app/remote-entry/entry.routes.ts`
12
- : `./src/app/remote-entry/${options.entryModuleFileName}.ts`;
13
- const exportName = options.standalone ? 'Routes' : 'Module';
14
- (0, js_1.addTsConfigPath)(tree, `${normalizeProjectName(options.appName)}/${exportName}`, [(0, devkit_1.joinPathFragments)(project.root, exportPath)]);
15
- }
@@ -1,3 +0,0 @@
1
- import { type Tree } from '@nx/devkit';
2
- import type { NormalizedOptions } from '../schema';
3
- export declare function updateHostAppRoutes(tree: Tree, options: NormalizedOptions): void;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateHostAppRoutes = updateHostAppRoutes;
4
- const devkit_1 = require("@nx/devkit");
5
- const route_utils_1 = require("../../../utils/nx-devkit/route-utils");
6
- const zoneless_1 = require("../../../utils/zoneless");
7
- function updateHostAppRoutes(tree, options) {
8
- const project = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
9
- const { appComponentInfo, nxWelcomeComponentInfo } = options;
10
- const zoneless = (0, zoneless_1.isZonelessApp)(project);
11
- tree.write((0, devkit_1.joinPathFragments)(project.sourceRoot, 'app', `${appComponentInfo.extensionlessFileName}.html`), `<ul class="remote-menu">
12
- <li><a routerLink="/">Home</a></li>
13
- </ul>
14
- <router-outlet></router-outlet>
15
- `);
16
- let pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app.routes.ts');
17
- if (!tree.exists(pathToHostRootRoutingFile)) {
18
- pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app-routing.module.ts');
19
- }
20
- if (!tree.exists(pathToHostRootRoutingFile)) {
21
- pathToHostRootRoutingFile = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app/app-routing-module.ts');
22
- }
23
- (0, route_utils_1.addRoute)(tree, pathToHostRootRoutingFile, `{
24
- path: '',
25
- component: ${nxWelcomeComponentInfo.symbolName}
26
- }`);
27
- tree.write(pathToHostRootRoutingFile, `import { ${nxWelcomeComponentInfo.symbolName} } from './${nxWelcomeComponentInfo.extensionlessFileName}';
28
- ${tree.read(pathToHostRootRoutingFile, 'utf-8')}`);
29
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/host-files'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'app'), {
30
- appName: options.appName,
31
- standalone: options.standalone,
32
- appFileName: appComponentInfo.extensionlessFileName,
33
- appSymbolName: appComponentInfo.symbolName,
34
- nxWelcomeFileName: nxWelcomeComponentInfo.extensionlessFileName,
35
- nxWelcomeSymbolName: nxWelcomeComponentInfo.symbolName,
36
- zoneless,
37
- tmpl: '',
38
- });
39
- }
@@ -1,3 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- import type { NormalizedOptions } from '../schema';
3
- export declare function updateTsConfig(tree: Tree, options: NormalizedOptions): void;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateTsConfig = updateTsConfig;
4
- const devkit_1 = require("@nx/devkit");
5
- function updateTsConfig(tree, options) {
6
- const { root } = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
7
- (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(root, `tsconfig.app.json`), (json) => {
8
- json.compilerOptions ??= {};
9
- json.compilerOptions.target = 'ES2020';
10
- if (options.mfType === 'remote') {
11
- json.files ??= [];
12
- json.files.push(options.standalone
13
- ? 'src/app/remote-entry/entry.routes.ts'
14
- : `src/app/remote-entry/${options.entryModuleFileName}.ts`);
15
- }
16
- return json;
17
- });
18
- }
@@ -1,35 +0,0 @@
1
- import type { ComponentMetadata } from '../utils/app-components-info';
2
-
3
- type FederationType = 'static' | 'dynamic';
4
-
5
- export interface Schema {
6
- appName: string;
7
- mfType: 'host' | 'remote';
8
- port?: number;
9
- remotes?: string[];
10
- host?: string;
11
- federationType?: FederationType;
12
- routing?: boolean;
13
- skipFormat?: boolean;
14
- skipPackageJson?: boolean;
15
- e2eProjectName?: string;
16
- prefix?: string;
17
- standalone?: boolean;
18
- skipE2E?: boolean;
19
- typescriptConfiguration?: boolean;
20
- enableTypedLinting?: boolean;
21
- /**
22
- * @deprecated Use `enableTypedLinting` instead. This option will be removed in Nx v24.
23
- */
24
- setParserOptionsProject?: boolean;
25
- }
26
-
27
- export interface NormalizedOptions extends Schema {
28
- federationType: FederationType;
29
- prefix: string | undefined;
30
- componentType: string;
31
- componentFileSuffix: string;
32
- entryModuleFileName: string;
33
- appComponentInfo: ComponentMetadata;
34
- nxWelcomeComponentInfo: ComponentMetadata;
35
- }
@@ -1,99 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/schema",
3
- "$id": "GeneratorAngularMFSetup",
4
- "cli": "nx",
5
- "title": "Generate Module Federation Setup for Angular App",
6
- "description": "Create Module Federation configuration files for given Angular Application.",
7
- "type": "object",
8
- "properties": {
9
- "appName": {
10
- "type": "string",
11
- "description": "The name of the application to generate the Module Federation configuration for.",
12
- "$default": {
13
- "$source": "argv",
14
- "index": 0
15
- },
16
- "x-prompt": "What app would you like to generate a Module Federation configuration for?",
17
- "x-dropdown": "projects"
18
- },
19
- "mfType": {
20
- "type": "string",
21
- "enum": ["host", "remote"],
22
- "description": "Type of application to generate the Module Federation configuration for.",
23
- "default": "remote"
24
- },
25
- "federationType": {
26
- "type": "string",
27
- "enum": ["static", "dynamic"],
28
- "description": "Use either Static or Dynamic Module Federation pattern for the application.",
29
- "default": "static"
30
- },
31
- "port": {
32
- "type": "number",
33
- "description": "The port at which the remote application should be served."
34
- },
35
- "remotes": {
36
- "type": "array",
37
- "description": "A list of remote application names that the Consumer (host) application should consume.",
38
- "alias": "producers"
39
- },
40
- "host": {
41
- "type": "string",
42
- "description": "The name of the host application that the remote application will be consumed by.",
43
- "alias": "consumer"
44
- },
45
- "routing": {
46
- "type": "boolean",
47
- "description": "Generate a routing setup to allow a Consumer (host) application to route to the Producer (remote) application.",
48
- "x-priority": "important"
49
- },
50
- "skipFormat": {
51
- "type": "boolean",
52
- "description": "Skip formatting the workspace after the generator completes.",
53
- "x-priority": "internal"
54
- },
55
- "skipPackageJson": {
56
- "type": "boolean",
57
- "default": false,
58
- "description": "Do not add dependencies to `package.json`.",
59
- "x-priority": "internal"
60
- },
61
- "skipE2E": {
62
- "type": "boolean",
63
- "default": false,
64
- "description": "Do not set up E2E related config."
65
- },
66
- "e2eProjectName": {
67
- "type": "string",
68
- "description": "The project name of the associated E2E project for the application. This is only required for Cypress E2E projects that do not follow the naming convention `<appName>-e2e`."
69
- },
70
- "prefix": {
71
- "type": "string",
72
- "description": "The prefix to use for any generated component."
73
- },
74
- "standalone": {
75
- "type": "boolean",
76
- "description": "Whether the application is a standalone application.",
77
- "default": true
78
- },
79
- "typescriptConfiguration": {
80
- "type": "boolean",
81
- "description": "Whether the module federation configuration and webpack configuration files should use TS.",
82
- "default": true
83
- },
84
- "enableTypedLinting": {
85
- "type": "boolean",
86
- "description": "Whether to enable typed linting. For flat configs, this configures the recommended `parserOptions.projectService` and `tsconfigRootDir`. For legacy `.eslintrc` configs, this configures `parserOptions.project`. We do not enable this by default for lint performance reasons.",
87
- "default": false
88
- },
89
- "setParserOptionsProject": {
90
- "type": "boolean",
91
- "description": "Deprecated alias for `enableTypedLinting`.",
92
- "default": false,
93
- "x-deprecated": "Use `enableTypedLinting` instead. This option will be removed in Nx v24."
94
- }
95
- },
96
- "required": ["appName", "mfType"],
97
- "additionalProperties": false,
98
- "examplesFile": "../../../docs/setup-mf-examples.md"
99
- }
@@ -1,4 +0,0 @@
1
- import { type GeneratorCallback, type Tree } from '@nx/devkit';
2
- import type { Schema } from './schema';
3
- export declare function setupMf(tree: Tree, rawOptions: Schema): Promise<GeneratorCallback>;
4
- export default setupMf;
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setupMf = setupMf;
4
- const devkit_1 = require("@nx/devkit");
5
- const assert_supported_angular_version_1 = require("../../utils/assert-supported-angular-version");
6
- const versions_1 = require("../../utils/versions");
7
- const version_utils_1 = require("../utils/version-utils");
8
- const lib_1 = require("./lib");
9
- async function setupMf(tree, rawOptions) {
10
- (0, assert_supported_angular_version_1.assertSupportedAngularVersion)(tree);
11
- const options = (0, lib_1.normalizeOptions)(tree, rawOptions);
12
- const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.appName);
13
- const tasks = [];
14
- if (options.mfType === 'remote') {
15
- (0, lib_1.addRemoteToHost)(tree, {
16
- appName: options.appName,
17
- host: options.host,
18
- standalone: options.standalone,
19
- port: options.port,
20
- });
21
- (0, lib_1.addRemoteEntry)(tree, options, projectConfig.root);
22
- (0, lib_1.removeDeadCodeFromRemote)(tree, options);
23
- (0, lib_1.setupTspathForRemote)(tree, options);
24
- if (!options.skipPackageJson) {
25
- tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {
26
- '@module-federation/enhanced': versions_1.moduleFederationEnhancedVersion,
27
- }, {
28
- '@nx/web': versions_1.nxVersion,
29
- '@nx/webpack': versions_1.nxVersion,
30
- 'webpack-merge': versions_1.webpackMergeVersion,
31
- '@nx/module-federation': versions_1.nxVersion,
32
- }));
33
- }
34
- }
35
- const remotesWithPorts = (0, lib_1.getRemotesWithPorts)(tree, options);
36
- (0, lib_1.generateWebpackConfig)(tree, options, projectConfig.root, remotesWithPorts);
37
- (0, lib_1.changeBuildTarget)(tree, options);
38
- (0, lib_1.updateTsConfig)(tree, options);
39
- (0, lib_1.setupServeTarget)(tree, options);
40
- if (options.mfType === 'host') {
41
- (0, lib_1.setupHostIfDynamic)(tree, options);
42
- (0, lib_1.updateHostAppRoutes)(tree, options);
43
- for (const { remoteName, port } of remotesWithPorts) {
44
- (0, lib_1.addRemoteToHost)(tree, {
45
- appName: remoteName,
46
- host: options.appName,
47
- standalone: options.standalone,
48
- port,
49
- });
50
- }
51
- if (!options.skipPackageJson) {
52
- tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, {
53
- '@nx/webpack': versions_1.nxVersion,
54
- 'webpack-merge': versions_1.webpackMergeVersion,
55
- '@module-federation/enhanced': versions_1.moduleFederationEnhancedVersion,
56
- '@nx/module-federation': versions_1.nxVersion,
57
- }));
58
- }
59
- }
60
- (0, lib_1.fixBootstrap)(tree, projectConfig.root, options);
61
- if (options.mfType === 'host' || options.federationType === 'dynamic') {
62
- /**
63
- * Host applications and dynamic federation applications generate runtime
64
- * code that depends on the @nx/angular plugin. Ensure that the plugin is
65
- * in the production dependencies.
66
- */
67
- (0, lib_1.moveAngularPluginToDependencies)(tree);
68
- }
69
- if (!options.skipE2E) {
70
- (0, lib_1.addCypressOnErrorWorkaround)(tree, options);
71
- }
72
- if (!options.skipPackageJson && options.typescriptConfiguration) {
73
- // Angular custom-webpack loads webpack.config.ts at build time. Node native
74
- // TS strip can't resolve the extensionless `./module-federation.config`
75
- // import under strict ESM, so loadTsFile needs ts-node as the fallback.
76
- tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, { 'ts-node': versions_1.tsNodeVersion }, undefined, true));
77
- }
78
- if (!options.skipPackageJson) {
79
- const angularDevkitVersion = (0, version_utils_1.getInstalledAngularDevkitVersion)(tree) ??
80
- (0, version_utils_1.versions)(tree).angularDevkitVersion;
81
- // the executors used by MF require @angular-devkit/build-angular
82
- tasks.push((0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@angular-devkit/build-angular': angularDevkitVersion }, undefined, true));
83
- }
84
- // format files
85
- if (!options.skipFormat) {
86
- await (0, devkit_1.formatFiles)(tree);
87
- }
88
- return (0, devkit_1.runTasksInSerial)(...tasks);
89
- }
90
- exports.default = setupMf;
@@ -1,2 +0,0 @@
1
- import { type Tree } from '@nx/devkit';
2
- export declare function addMfEnvToTargetDefaultInputs(tree: Tree): void;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addMfEnvToTargetDefaultInputs = addMfEnvToTargetDefaultInputs;
4
- const devkit_1 = require("@nx/devkit");
5
- const internal_1 = require("@nx/devkit/internal");
6
- function addMfEnvToTargetDefaultInputs(tree) {
7
- const nxJson = (0, devkit_1.readNxJson)(tree) ?? {};
8
- const webpackExecutor = '@nx/angular:webpack-browser';
9
- const mfEnvVar = 'NX_MF_DEV_REMOTES';
10
- const defaultInputs = [
11
- ...(nxJson.namedInputs && 'production' in nxJson.namedInputs
12
- ? ['production', '^production']
13
- : ['default', '^default']),
14
- ];
15
- const existing = (0, internal_1.findTargetDefault)(nxJson.targetDefaults, {
16
- executor: webpackExecutor,
17
- });
18
- const inputs = [...(existing?.inputs ?? defaultInputs)];
19
- let mfEnvVarExists = false;
20
- for (const input of inputs) {
21
- if (typeof input === 'object' && input['env'] === mfEnvVar) {
22
- mfEnvVarExists = true;
23
- break;
24
- }
25
- }
26
- if (!mfEnvVarExists) {
27
- inputs.push({ env: mfEnvVar });
28
- }
29
- (0, internal_1.upsertTargetDefault)(tree, nxJson, {
30
- executor: webpackExecutor,
31
- cache: true,
32
- inputs,
33
- dependsOn: existing?.dependsOn ?? ['^build'],
34
- });
35
- (0, devkit_1.updateNxJson)(tree, nxJson);
36
- }
@@ -1 +0,0 @@
1
- export declare function assertRspackIsCSR(bundler: 'webpack' | 'rspack', ssr: boolean): void;
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertRspackIsCSR = assertRspackIsCSR;
4
- function assertRspackIsCSR(bundler, ssr) {
5
- if (bundler === 'rspack' && ssr) {
6
- throw new Error('SSR is not currently supported for Angular Rspack Module Federation. Please use webpack instead.');
7
- }
8
- }
@@ -1,4 +0,0 @@
1
- import type { Tree } from '@nx/devkit';
2
- export declare function getMFProjects(tree: Tree, { legacy }?: {
3
- legacy: boolean;
4
- }): string[];
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMFProjects = getMFProjects;
4
- const internal_1 = require("@nx/devkit/internal");
5
- function _getMfProjects(tree, CUSTOM_WEBPACK_OPTION, MODULE_FEDERATION_IDENTIFIER, projects) {
6
- return (opts, projectName) => {
7
- const webpackPath = opts[CUSTOM_WEBPACK_OPTION]?.path;
8
- if (!webpackPath || !tree.exists(webpackPath)) {
9
- return;
10
- }
11
- const webpackConfig = tree.read(webpackPath, 'utf-8');
12
- const { ast, query } = require('@phenomnomnominal/tsquery');
13
- const sourceFile = ast(webpackConfig);
14
- const moduleFederationWebpackConfig = query(sourceFile, MODULE_FEDERATION_IDENTIFIER);
15
- if (!moduleFederationWebpackConfig ||
16
- moduleFederationWebpackConfig.length === 0) {
17
- return;
18
- }
19
- projects.push(projectName);
20
- };
21
- }
22
- function getMFProjects(tree, { legacy } = { legacy: false }) {
23
- const CUSTOM_WEBPACK_OPTION = 'customWebpackConfig';
24
- const MODULE_FEDERATION_IDENTIFIER = legacy
25
- ? 'Identifier[name=ModuleFederationPlugin]'
26
- : 'Identifier[name=withModuleFederation]';
27
- const projects = [];
28
- (0, internal_1.forEachExecutorOptions)(tree, '@nx/angular:webpack-browser', _getMfProjects(tree, CUSTOM_WEBPACK_OPTION, MODULE_FEDERATION_IDENTIFIER, projects));
29
- (0, internal_1.forEachExecutorOptions)(tree, '@nrwl/angular:webpack-browser', _getMfProjects(tree, CUSTOM_WEBPACK_OPTION, MODULE_FEDERATION_IDENTIFIER, projects));
30
- return projects;
31
- }
@@ -1,4 +0,0 @@
1
- export declare const ANGULAR_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = "The `@nx/angular:module-federation-dev-server` executor is deprecated and will be removed in Nx v24. Angular Module Federation in Nx is no longer supported. Use `@angular-architects/native-federation` (https://www.npmjs.com/package/@angular-architects/native-federation) for the supported Angular path. See https://nx.dev/docs/technologies/module-federation/consumer-and-provider for the v23 migration guide.";
2
- export declare const ANGULAR_MF_DEV_SSR_EXECUTOR_DEPRECATION_MESSAGE = "The `@nx/angular:module-federation-dev-ssr` executor is deprecated and will be removed in Nx v24. Angular Module Federation in Nx is no longer supported. Use `@angular-architects/native-federation` (https://www.npmjs.com/package/@angular-architects/native-federation) for the supported Angular path. See https://nx.dev/docs/technologies/module-federation/consumer-and-provider for the v23 migration guide.";
3
- export declare function warnAngularMfDevServerExecutorDeprecation(): void;
4
- export declare function warnAngularMfDevSsrExecutorDeprecation(): void;
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ANGULAR_MF_DEV_SSR_EXECUTOR_DEPRECATION_MESSAGE = exports.ANGULAR_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = void 0;
4
- exports.warnAngularMfDevServerExecutorDeprecation = warnAngularMfDevServerExecutorDeprecation;
5
- exports.warnAngularMfDevSsrExecutorDeprecation = warnAngularMfDevSsrExecutorDeprecation;
6
- const devkit_1 = require("@nx/devkit");
7
- // TODO(v24): Remove all Angular Module Federation surfaces from @nx/angular.
8
- // Angular Native Federation (@angular-architects/native-federation) is the
9
- // supported Angular MF path going forward; the new @nx/module-federation
10
- // generators are React-only.
11
- const MIGRATION_URL = 'https://nx.dev/docs/technologies/module-federation/consumer-and-provider';
12
- const ANGULAR_NATIVE_FED_URL = 'https://www.npmjs.com/package/@angular-architects/native-federation';
13
- const ANGULAR_MF_TRAILER = `Angular Module Federation in Nx is no longer supported. Use \`@angular-architects/native-federation\` (${ANGULAR_NATIVE_FED_URL}) for the supported Angular path. See ${MIGRATION_URL} for the v23 migration guide.`;
14
- exports.ANGULAR_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = `The \`@nx/angular:module-federation-dev-server\` executor is deprecated and will be removed in Nx v24. ${ANGULAR_MF_TRAILER}`;
15
- exports.ANGULAR_MF_DEV_SSR_EXECUTOR_DEPRECATION_MESSAGE = `The \`@nx/angular:module-federation-dev-ssr\` executor is deprecated and will be removed in Nx v24. ${ANGULAR_MF_TRAILER}`;
16
- // Executor warnings fire once per process to avoid flooding dev-server loops.
17
- const executorWarned = new Set();
18
- function warnOnce(key, message) {
19
- if (executorWarned.has(key))
20
- return;
21
- executorWarned.add(key);
22
- devkit_1.logger.warn(message);
23
- }
24
- function warnAngularMfDevServerExecutorDeprecation() {
25
- warnOnce('angular-mf-dev-server', exports.ANGULAR_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE);
26
- }
27
- function warnAngularMfDevSsrExecutorDeprecation() {
28
- warnOnce('angular-mf-dev-ssr', exports.ANGULAR_MF_DEV_SSR_EXECUTOR_DEPRECATION_MESSAGE);
29
- }
@@ -1,72 +0,0 @@
1
- type ResolveRemoteUrlFunction = (remoteName: string) => string | Promise<string>;
2
- /**
3
- * @deprecated Use Runtime Helpers from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
4
- */
5
- declare function setRemoteUrlResolver(_resolveRemoteUrl: ResolveRemoteUrlFunction): void;
6
- /**
7
- * @deprecated Use init() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
8
- * If you have a remote app called `my-remote-app` and you want to use the `http://localhost:4201/mf-manifest.json` as the remote url, you should change it from:
9
- * ```ts
10
- * import { setRemoteDefinitions } from '@nx/angular/mf';
11
- *
12
- * setRemoteDefinitions({
13
- * 'my-remote-app': 'http://localhost:4201/mf-manifest.json'
14
- * });
15
- * ```
16
- * to use init():
17
- * ```ts
18
- * import { init } from '@module-federation/enhanced/runtime';
19
- *
20
- * init({
21
- * name: 'host',
22
- * remotes: [{
23
- * name: 'my-remote-app',
24
- * entry: 'http://localhost:4201/mf-manifest.json'
25
- * }]
26
- * });
27
- * ```
28
- */
29
- declare function setRemoteDefinitions(definitions: Record<string, string>): void;
30
- /**
31
- * @deprecated Use registerRemotes() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
32
- * If you set a remote app with `setRemoteDefinition` such as:
33
- * ```ts
34
- * import { setRemoteDefinition } from '@nx/angular/mf';
35
- *
36
- * setRemoteDefinition(
37
- * 'my-remote-app',
38
- * 'http://localhost:4201/mf-manifest.json'
39
- * );
40
- * ```
41
- * change it to use registerRemotes():
42
- * ```ts
43
- * import { registerRemotes } from '@module-federation/enhanced/runtime';
44
- *
45
- * registerRemotes([
46
- * {
47
- * name: 'my-remote-app',
48
- * entry: 'http://localhost:4201/mf-manifest.json'
49
- * }
50
- * ]);
51
- * ```
52
- */
53
- declare function setRemoteDefinition(remoteName: string, remoteUrl: string): void;
54
- /**
55
- * @deprecated Use loadRemote() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.
56
- * If you set a load a remote with `loadRemoteModule` such as:
57
- * ```ts
58
- * import { loadRemoteModule } from '@nx/angular/mf';
59
- *
60
- * loadRemoteModule('my-remote-app', './Module').then(m => m.RemoteEntryModule);
61
- * ```
62
- * change it to use loadRemote():
63
- * ```ts
64
- * import { loadRemote } from '@module-federation/enhanced/runtime';
65
- *
66
- * loadRemote<typeof import('my-remote-app/Module')>('my-remote-app/Module').then(m => m.RemoteEntryModule);
67
- * ```
68
- */
69
- declare function loadRemoteModule(remoteName: string, moduleName: string): Promise<any>;
70
-
71
- export { loadRemoteModule, setRemoteDefinition, setRemoteDefinitions, setRemoteUrlResolver };
72
- //# sourceMappingURL=nx-angular-mf.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nx-angular-mf.d.ts","sources":["../../mf/mf.ts"],"mappings":"AAEM,KAAM,wBAAwB,oCAEtB,OAAO;AAOrB;;AAEG;AACH,iBAAgB,oBAAoB,oBACf,wBAAwB;AAO7C;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH,iBAAgB,oBAAoB,cAAc,MAAM;AAIxD;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH,iBAAgB,mBAAmB;AAQnC;;;;;;;;;;;;;;AAcG;AACH,iBAAsB,gBAAgB,0CAAuC,OAAA;;;;","names":[]}