@nx/react 23.0.0-beta.2 → 23.0.0-beta.21

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 (166) hide show
  1. package/generators.json +16 -3
  2. package/index.d.ts +0 -3
  3. package/index.d.ts.map +1 -1
  4. package/index.js +1 -4
  5. package/migrations.json +6 -0
  6. package/package.json +18 -18
  7. package/plugins/component-testing/index.js +7 -7
  8. package/plugins/component-testing/webpack-fallback.js +2 -2
  9. package/plugins/storybook/index.js +3 -3
  10. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts.map +1 -1
  11. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +6 -4
  12. package/src/executors/module-federation-dev-server/schema.json +1 -0
  13. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts.map +1 -1
  14. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +7 -5
  15. package/src/executors/module-federation-ssr-dev-server/schema.json +1 -0
  16. package/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts.map +1 -1
  17. package/src/executors/module-federation-static-server/module-federation-static-server.impl.js +6 -4
  18. package/src/executors/module-federation-static-server/schema.json +1 -0
  19. package/src/generators/_utils/mf-dependencies.d.ts +8 -0
  20. package/src/generators/_utils/mf-dependencies.d.ts.map +1 -0
  21. package/src/generators/_utils/mf-dependencies.js +84 -0
  22. package/src/generators/_utils/mf-versions.d.ts +12 -0
  23. package/src/generators/_utils/mf-versions.d.ts.map +1 -0
  24. package/src/generators/_utils/mf-versions.js +29 -0
  25. package/src/generators/_utils/normalize.d.ts +20 -0
  26. package/src/generators/_utils/normalize.d.ts.map +1 -0
  27. package/src/generators/_utils/normalize.js +48 -0
  28. package/src/generators/application/application.d.ts.map +1 -1
  29. package/src/generators/application/application.js +32 -18
  30. package/src/generators/application/lib/add-e2e.d.ts.map +1 -1
  31. package/src/generators/application/lib/add-linting.js +10 -11
  32. package/src/generators/application/lib/add-project.d.ts.map +1 -1
  33. package/src/generators/application/lib/add-project.js +10 -0
  34. package/src/generators/application/lib/add-routing.js +2 -2
  35. package/src/generators/application/lib/bundlers/add-vite.d.ts.map +1 -1
  36. package/src/generators/application/lib/bundlers/add-vite.js +10 -2
  37. package/src/generators/application/lib/create-application-files.d.ts +1 -1
  38. package/src/generators/application/lib/create-application-files.js +2 -2
  39. package/src/generators/application/lib/normalize-options.js +5 -5
  40. package/src/generators/component/component.js +2 -2
  41. package/src/generators/component/lib/normalize-options.d.ts.map +1 -1
  42. package/src/generators/component/lib/normalize-options.js +5 -6
  43. package/src/generators/component/schema.d.ts +2 -7
  44. package/src/generators/component/schema.json +0 -5
  45. package/src/generators/component-story/component-story.d.ts.map +1 -1
  46. package/src/generators/component-story/component-story.js +3 -4
  47. package/src/generators/component-test/component-test.d.ts.map +1 -1
  48. package/src/generators/component-test/component-test.js +3 -4
  49. package/src/generators/consumer/consumer.d.ts +5 -0
  50. package/src/generators/consumer/consumer.d.ts.map +1 -0
  51. package/src/generators/consumer/consumer.js +135 -0
  52. package/src/generators/consumer/files/_common/src/App.tsx__tmpl__ +53 -0
  53. package/src/generators/consumer/files/_common/src/bootstrap.tsx__tmpl__ +12 -0
  54. package/src/generators/consumer/files/_common/src/index.ts__tmpl__ +4 -0
  55. package/src/generators/consumer/files/_common/src/mf.ts__tmpl__ +35 -0
  56. package/src/generators/consumer/files/_common/tsconfig.json__tmpl__ +17 -0
  57. package/src/generators/consumer/files/rsbuild/index.html__tmpl__ +12 -0
  58. package/src/generators/consumer/files/rsbuild/package.json__tmpl__ +23 -0
  59. package/src/generators/consumer/files/rsbuild/rsbuild.config.ts__tmpl__ +25 -0
  60. package/src/generators/consumer/files/rspack/index.html__tmpl__ +12 -0
  61. package/src/generators/consumer/files/rspack/package.json__tmpl__ +23 -0
  62. package/src/generators/consumer/files/rspack/rspack.config.ts__tmpl__ +59 -0
  63. package/src/generators/consumer/files/vite/index.html__tmpl__ +12 -0
  64. package/src/generators/consumer/files/vite/package.json__tmpl__ +24 -0
  65. package/src/generators/consumer/files/vite/vite.config.ts__tmpl__ +27 -0
  66. package/src/generators/consumer/schema.d.ts +8 -0
  67. package/src/generators/consumer/schema.json +43 -0
  68. package/src/generators/cypress-component-configuration/lib/add-files.d.ts +1 -1
  69. package/src/generators/cypress-component-configuration/lib/add-files.d.ts.map +1 -1
  70. package/src/generators/cypress-component-configuration/lib/add-files.js +4 -4
  71. package/src/generators/federate-module/federate-module.d.ts.map +1 -1
  72. package/src/generators/federate-module/federate-module.js +4 -2
  73. package/src/generators/federate-module/lib/utils.js +2 -2
  74. package/src/generators/hook/hook.d.ts.map +1 -1
  75. package/src/generators/hook/hook.js +5 -6
  76. package/src/generators/host/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +1 -1
  77. package/src/generators/host/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +1 -1
  78. package/src/generators/host/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +1 -1
  79. package/src/generators/host/files/rspack-module-federation-ts/rspack.config.prod.ts__tmpl__ +2 -2
  80. package/src/generators/host/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +1 -1
  81. package/src/generators/host/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +1 -1
  82. package/src/generators/host/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +1 -1
  83. package/src/generators/host/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +1 -1
  84. package/src/generators/host/files/webpack-module-federation-ts/webpack.config.prod.ts__tmpl__ +2 -2
  85. package/src/generators/host/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +2 -2
  86. package/src/generators/host/host.d.ts.map +1 -1
  87. package/src/generators/host/host.js +7 -5
  88. package/src/generators/host/lib/add-module-federation-files.d.ts.map +1 -1
  89. package/src/generators/host/lib/add-module-federation-files.js +3 -3
  90. package/src/generators/host/lib/normalize-host-name.js +2 -2
  91. package/src/generators/host/lib/update-module-federation-tsconfig.js +2 -2
  92. package/src/generators/init/init.d.ts.map +1 -1
  93. package/src/generators/init/init.js +2 -2
  94. package/src/generators/library/lib/add-linting.js +7 -8
  95. package/src/generators/library/lib/add-rollup-build-target.d.ts.map +1 -1
  96. package/src/generators/library/lib/add-rollup-build-target.js +6 -0
  97. package/src/generators/library/lib/install-common-dependencies.js +2 -2
  98. package/src/generators/library/lib/normalize-options.d.ts.map +1 -1
  99. package/src/generators/library/lib/normalize-options.js +7 -7
  100. package/src/generators/library/lib/update-app-routes.js +2 -2
  101. package/src/generators/library/library.d.ts.map +1 -1
  102. package/src/generators/library/library.js +14 -18
  103. package/src/generators/provider/files/_common/src/__componentName__.tsx__tmpl__ +11 -0
  104. package/src/generators/provider/files/_common/src/bootstrap.tsx__tmpl__ +12 -0
  105. package/src/generators/provider/files/_common/src/index.ts__tmpl__ +5 -0
  106. package/src/generators/provider/files/_common/tsconfig.json__tmpl__ +17 -0
  107. package/src/generators/provider/files/rsbuild/index.html__tmpl__ +12 -0
  108. package/src/generators/provider/files/rsbuild/package.json__tmpl__ +22 -0
  109. package/src/generators/provider/files/rsbuild/rsbuild.config.ts__tmpl__ +31 -0
  110. package/src/generators/provider/files/rspack/index.html__tmpl__ +12 -0
  111. package/src/generators/provider/files/rspack/package.json__tmpl__ +22 -0
  112. package/src/generators/provider/files/rspack/rspack.config.ts__tmpl__ +69 -0
  113. package/src/generators/provider/files/vite/index.html__tmpl__ +12 -0
  114. package/src/generators/provider/files/vite/package.json__tmpl__ +23 -0
  115. package/src/generators/provider/files/vite/vite.config.ts__tmpl__ +37 -0
  116. package/src/generators/provider/provider.d.ts +5 -0
  117. package/src/generators/provider/provider.d.ts.map +1 -0
  118. package/src/generators/provider/provider.js +92 -0
  119. package/src/generators/provider/schema.d.ts +9 -0
  120. package/src/generators/provider/schema.json +46 -0
  121. package/src/generators/redux/redux.d.ts.map +1 -1
  122. package/src/generators/redux/redux.js +7 -8
  123. package/src/generators/redux/schema.d.ts +1 -1
  124. package/src/generators/remote/files/rspack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +1 -1
  125. package/src/generators/remote/files/rspack-module-federation-ssr-ts/rspack.config.ts__tmpl__ +1 -1
  126. package/src/generators/remote/files/rspack-module-federation-ts/module-federation.config.ts__tmpl__ +1 -1
  127. package/src/generators/remote/files/rspack-module-federation-ts/rspack.config.ts__tmpl__ +1 -1
  128. package/src/generators/remote/files/webpack-module-federation-ssr-ts/module-federation.server.config.ts__tmpl__ +1 -1
  129. package/src/generators/remote/files/webpack-module-federation-ssr-ts/webpack.server.config.ts__tmpl__ +1 -1
  130. package/src/generators/remote/files/webpack-module-federation-ts/module-federation.config.ts__tmpl__ +1 -1
  131. package/src/generators/remote/files/webpack-module-federation-ts/webpack.config.ts__tmpl__ +1 -1
  132. package/src/generators/remote/lib/setup-package-json-exports-for-remote.js +2 -2
  133. package/src/generators/remote/lib/update-host-with-remote.js +4 -5
  134. package/src/generators/remote/remote.d.ts.map +1 -1
  135. package/src/generators/remote/remote.js +9 -7
  136. package/src/generators/setup-ssr/setup-ssr.d.ts.map +1 -1
  137. package/src/generators/setup-ssr/setup-ssr.js +5 -7
  138. package/src/generators/stories/stories.js +5 -6
  139. package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.d.ts.map +1 -1
  140. package/src/migrations/update-20-2-0/migrate-with-mf-import-to-new-package.js +2 -2
  141. package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.d.ts.map +1 -1
  142. package/src/migrations/update-20-3-0/ensure-nx-module-federation-package.js +2 -2
  143. package/src/migrations/update-22-0-0/add-svgr-to-webpack-config.d.ts.map +1 -1
  144. package/src/migrations/update-22-0-0/add-svgr-to-webpack-config.js +2 -2
  145. package/src/migrations/update-23-0-0/remove-nx-react-webpack-plugin-import.d.ts +3 -0
  146. package/src/migrations/update-23-0-0/remove-nx-react-webpack-plugin-import.d.ts.map +1 -0
  147. package/src/migrations/update-23-0-0/remove-nx-react-webpack-plugin-import.js +128 -0
  148. package/src/module-federation/ast-utils.js +2 -2
  149. package/src/plugins/router-plugin.d.ts.map +1 -1
  150. package/src/plugins/router-plugin.js +14 -23
  151. package/src/rules/update-module-federation-project.js +3 -3
  152. package/src/utils/add-mf-env-to-inputs.d.ts.map +1 -1
  153. package/src/utils/add-mf-env-to-inputs.js +15 -8
  154. package/src/utils/ast-utils.js +15 -15
  155. package/src/utils/component-props.js +3 -3
  156. package/src/utils/create-ts-config.js +3 -3
  157. package/src/utils/ct-utils.d.ts +1 -1
  158. package/src/utils/ct-utils.d.ts.map +1 -1
  159. package/src/utils/ct-utils.js +6 -6
  160. package/src/utils/module-federation-deprecation.d.ts +13 -0
  161. package/src/utils/module-federation-deprecation.d.ts.map +1 -0
  162. package/src/utils/module-federation-deprecation.js +46 -0
  163. package/src/utils/normalize-remote.js +2 -2
  164. package/src/utils/versions.d.ts +1 -1
  165. package/src/utils/versions.js +1 -1
  166. package/tailwind.js +2 -2
package/generators.json CHANGED
@@ -65,14 +65,26 @@
65
65
  "schema": "./src/generators/host/schema.json",
66
66
  "x-type": "application",
67
67
  "description": "Generate a host react application",
68
- "aliases": ["consumer"]
68
+ "x-deprecated": "Use `@nx/react:consumer` instead (dynamic federation, no static-serve orchestration). Removed in Nx v24."
69
69
  },
70
70
  "remote": {
71
71
  "factory": "./src/generators/remote/remote",
72
72
  "schema": "./src/generators/remote/schema.json",
73
73
  "x-type": "application",
74
74
  "description": "Generate a remote react application",
75
- "aliases": ["producer"]
75
+ "x-deprecated": "Use `@nx/react:provider` instead. Removed in Nx v24."
76
+ },
77
+ "consumer": {
78
+ "factory": "./src/generators/consumer/consumer",
79
+ "schema": "./src/generators/consumer/schema.json",
80
+ "x-type": "application",
81
+ "description": "Create a React Module Federation consumer that loads federated components dynamically via an inline PROVIDERS list in src/mf.ts. Supports Vite (default), Rsbuild, and Rspack."
82
+ },
83
+ "provider": {
84
+ "factory": "./src/generators/provider/provider",
85
+ "schema": "./src/generators/provider/schema.json",
86
+ "x-type": "application",
87
+ "description": "Create a React Module Federation provider that exposes a federated component. Supports Vite (default), Rsbuild, and Rspack."
76
88
  },
77
89
  "cypress-component-configuration": {
78
90
  "factory": "./src/generators/cypress-component-configuration/cypress-component-configuration#cypressComponentConfigGenerator",
@@ -96,7 +108,8 @@
96
108
  "factory": "./src/generators/federate-module/federate-module#federateModuleGenerator",
97
109
  "schema": "./src/generators/federate-module/schema.json",
98
110
  "description": "Federate a module.",
99
- "hidden": false
111
+ "hidden": false,
112
+ "x-deprecated": "The new `@nx/react:provider` generator exposes modules directly. Removed in Nx v24."
100
113
  }
101
114
  }
102
115
  }
package/index.d.ts CHANGED
@@ -1,6 +1,3 @@
1
- import { NxReactWebpackPlugin as _NxReactWebpackPlugin } from './plugins/nx-react-webpack-plugin/nx-react-webpack-plugin';
2
- /** @deprecated Use '@nx/react/webpack-plugin' instead, which can improve graph creation by 150-200ms per file. */
3
- export declare const NxReactWebpackPlugin: typeof _NxReactWebpackPlugin;
4
1
  export { extraEslintDependencies, extendReactEslintJson, } from './src/utils/lint';
5
2
  export { assertValidStyle } from './src/utils/assertion';
6
3
  export { reactDomVersion, reactVersion } from './src/utils/versions';
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAE1H,kHAAkH;AAClH,eAAO,MAAM,oBAAoB,8BAAwB,CAAC;AAE1D,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kFAAkF,CAAC;AACnI,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/react/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wDAAwD,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kFAAkF,CAAC;AACnI,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,cAAc,sBAAsB,CAAC"}
package/index.js CHANGED
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.componentTestGenerator = exports.cypressComponentConfigGenerator = exports.remoteGenerator = exports.hostGenerator = exports.storybookConfigurationGenerator = exports.storiesGenerator = exports.reduxGenerator = exports.reactInitGenerator = exports.libraryGenerator = exports.componentStoryGenerator = exports.hookGenerator = exports.componentGenerator = exports.applicationGenerator = exports.reactVersion = exports.reactDomVersion = exports.assertValidStyle = exports.extendReactEslintJson = exports.extraEslintDependencies = exports.NxReactWebpackPlugin = void 0;
3
+ exports.componentTestGenerator = exports.cypressComponentConfigGenerator = exports.remoteGenerator = exports.hostGenerator = exports.storybookConfigurationGenerator = exports.storiesGenerator = exports.reduxGenerator = exports.reactInitGenerator = exports.libraryGenerator = exports.componentStoryGenerator = exports.hookGenerator = exports.componentGenerator = exports.applicationGenerator = exports.reactVersion = exports.reactDomVersion = exports.assertValidStyle = exports.extendReactEslintJson = exports.extraEslintDependencies = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const nx_react_webpack_plugin_1 = require("./plugins/nx-react-webpack-plugin/nx-react-webpack-plugin");
6
- /** @deprecated Use '@nx/react/webpack-plugin' instead, which can improve graph creation by 150-200ms per file. */
7
- exports.NxReactWebpackPlugin = nx_react_webpack_plugin_1.NxReactWebpackPlugin;
8
5
  var lint_1 = require("./src/utils/lint");
9
6
  Object.defineProperty(exports, "extraEslintDependencies", { enumerable: true, get: function () { return lint_1.extraEslintDependencies; } });
10
7
  Object.defineProperty(exports, "extendReactEslintJson", { enumerable: true, get: function () { return lint_1.extendReactEslintJson; } });
package/migrations.json CHANGED
@@ -35,6 +35,12 @@
35
35
  "version": "22.0.0-beta.0",
36
36
  "description": "Updates webpack configs using React to use the new withSvgr composable function instead of the svgr option in withReact or NxReactWebpackPlugin.",
37
37
  "factory": "./src/migrations/update-22-0-0/add-svgr-to-webpack-config"
38
+ },
39
+ "update-23-0-0-remove-nx-react-webpack-plugin-import": {
40
+ "cli": "nx",
41
+ "version": "23.0.0-beta.10",
42
+ "description": "Rewrites imports of NxReactWebpackPlugin from '@nx/react' to the sub-path '@nx/react/webpack-plugin'.",
43
+ "factory": "./src/migrations/update-23-0-0/remove-nx-react-webpack-plugin-import"
38
44
  }
39
45
  },
40
46
  "packageJsonUpdates": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/react",
3
- "version": "23.0.0-beta.2",
3
+ "version": "23.0.0-beta.21",
4
4
  "private": false,
5
5
  "description": "The React plugin for Nx contains executors and generators for managing React applications and libraries within an Nx workspace. It provides:\n\n\n- Integration with libraries such as Jest, Vitest, Playwright, Cypress, and Storybook.\n\n- Generators for applications, libraries, components, hooks, and more.\n\n- Library build support for publishing packages to npm or other registries.\n\n- Utilities for automatic workspace refactoring.",
6
6
  "repository": {
@@ -33,32 +33,32 @@
33
33
  "migrations": "./migrations.json"
34
34
  },
35
35
  "dependencies": {
36
- "@phenomnomnominal/tsquery": "~6.1.4",
36
+ "@phenomnomnominal/tsquery": "~6.2.0",
37
37
  "@svgr/webpack": "^8.0.1",
38
- "minimatch": "10.2.4",
38
+ "minimatch": "10.2.5",
39
39
  "tslib": "^2.3.0",
40
- "@nx/devkit": "23.0.0-beta.2",
41
- "@nx/js": "23.0.0-beta.2",
42
- "@nx/eslint": "23.0.0-beta.2",
43
- "@nx/web": "23.0.0-beta.2",
44
- "@nx/module-federation": "23.0.0-beta.2",
45
- "@nx/rollup": "23.0.0-beta.2",
40
+ "@nx/devkit": "23.0.0-beta.21",
41
+ "@nx/js": "23.0.0-beta.21",
42
+ "@nx/eslint": "23.0.0-beta.21",
43
+ "@nx/web": "23.0.0-beta.21",
44
+ "@nx/module-federation": "23.0.0-beta.21",
45
+ "@nx/rollup": "23.0.0-beta.21",
46
46
  "express": "^4.21.2",
47
47
  "http-proxy-middleware": "^3.0.5",
48
48
  "semver": "^7.6.3"
49
49
  },
50
50
  "devDependencies": {
51
- "@nx/cypress": "23.0.0-beta.2",
52
- "@nx/playwright": "23.0.0-beta.2",
53
- "@nx/rsbuild": "23.0.0-beta.2",
54
- "@nx/vite": "23.0.0-beta.2",
55
- "@nx/vitest": "23.0.0-beta.2",
56
- "@nx/webpack": "23.0.0-beta.2",
57
- "@nx/storybook": "23.0.0-beta.2",
58
- "nx": "23.0.0-beta.2"
51
+ "@nx/cypress": "23.0.0-beta.21",
52
+ "@nx/playwright": "23.0.0-beta.21",
53
+ "@nx/rsbuild": "23.0.0-beta.21",
54
+ "@nx/vite": "23.0.0-beta.21",
55
+ "@nx/vitest": "23.0.0-beta.21",
56
+ "@nx/webpack": "23.0.0-beta.21",
57
+ "@nx/storybook": "23.0.0-beta.21",
58
+ "nx": "23.0.0-beta.21"
59
59
  },
60
60
  "optionalDependencies": {
61
- "@nx/vite": "23.0.0-beta.2"
61
+ "@nx/vite": "23.0.0-beta.21"
62
62
  },
63
63
  "publishConfig": {
64
64
  "access": "public"
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.nxComponentTestingPreset = nxComponentTestingPreset;
4
4
  const cypress_preset_1 = require("@nx/cypress/plugins/cypress-preset");
5
- const ct_helpers_1 = require("@nx/cypress/src/utils/ct-helpers");
5
+ const internal_1 = require("@nx/cypress/internal");
6
6
  const devkit_1 = require("@nx/devkit");
7
- const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
7
+ const internal_2 = require("@nx/js/internal");
8
8
  const fs_1 = require("fs");
9
9
  const path_1 = require("path");
10
10
  /**
@@ -71,10 +71,10 @@ function nxComponentTestingPreset(pathToConfig, options) {
71
71
  let webpackConfig = null;
72
72
  try {
73
73
  const graph = (0, devkit_1.readCachedProjectGraph)();
74
- const { targets: ctTargets, name: ctProjectName } = (0, ct_helpers_1.getProjectConfigByPath)(graph, pathToConfig);
74
+ const { targets: ctTargets, name: ctProjectName } = (0, internal_1.getProjectConfigByPath)(graph, pathToConfig);
75
75
  const ctTargetName = options?.ctTargetName || 'component-test';
76
76
  const ctConfigurationName = process.env.NX_CYPRESS_TARGET_CONFIGURATION;
77
- const ctExecutorContext = (0, ct_helpers_1.createExecutorContext)(graph, ctTargets, ctProjectName, ctTargetName, ctConfigurationName);
77
+ const ctExecutorContext = (0, internal_1.createExecutorContext)(graph, ctTargets, ctProjectName, ctTargetName, ctConfigurationName);
78
78
  let buildTarget = options?.buildTarget;
79
79
  if (!buildTarget) {
80
80
  const ctExecutorOptions = (0, devkit_1.readTargetOptions)({
@@ -161,13 +161,13 @@ function buildTargetWebpack(ctx, buildTarget, componentTestingProjectName) {
161
161
  throw new InvalidExecutorError(`The '${parsed.target}' target of the '${parsed.project}' project is not using the '@nx/webpack:webpack' or '@nx/rspack:rspack' executor. ` +
162
162
  `Please make sure to use '@nx/webpack:webpack' or '@nx/rspack:rspack' executor in that target to use Cypress Component Testing.`);
163
163
  }
164
- const context = (0, ct_helpers_1.createExecutorContext)(graph, buildableProjectConfig.targets, parsed.project, parsed.target, parsed.target);
164
+ const context = (0, internal_1.createExecutorContext)(graph, buildableProjectConfig.targets, parsed.project, parsed.target, parsed.target);
165
165
  const { normalizeOptions, } = require('@nx/webpack/src/executors/webpack/lib/normalize-options');
166
166
  const { resolveUserDefinedWebpackConfig, } = require('@nx/webpack/src/utils/webpack/resolve-user-defined-webpack-config');
167
167
  const { composePluginsSync } = require('@nx/webpack/src/utils/config');
168
168
  const { withNx } = require('@nx/webpack/src/utils/with-nx');
169
169
  const { withWeb } = require('@nx/webpack/src/utils/with-web');
170
- const options = normalizeOptions(withSchemaDefaults(parsed, context), devkit_1.workspaceRoot, buildableProjectConfig.root, (0, ts_solution_setup_1.getProjectSourceRoot)(buildableProjectConfig));
170
+ const options = normalizeOptions(withSchemaDefaults(parsed, context), devkit_1.workspaceRoot, buildableProjectConfig.root, (0, internal_2.getProjectSourceRoot)(buildableProjectConfig));
171
171
  let customWebpack;
172
172
  if (options.webpackConfig) {
173
173
  customWebpack = resolveUserDefinedWebpackConfig(options.webpackConfig, options.tsConfig.startsWith(context.root)
@@ -189,7 +189,7 @@ function buildTargetWebpack(ctx, buildTarget, componentTestingProjectName) {
189
189
  extractLicenses: false,
190
190
  root: devkit_1.workspaceRoot,
191
191
  projectRoot: ctProjectConfig.root,
192
- sourceRoot: (0, ts_solution_setup_1.getProjectSourceRoot)(ctProjectConfig),
192
+ sourceRoot: (0, internal_2.getProjectSourceRoot)(ctProjectConfig),
193
193
  },
194
194
  context,
195
195
  configuration: parsed.configuration,
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildBaseWebpackConfig = buildBaseWebpackConfig;
4
4
  const tsconfig_paths_webpack_plugin_1 = require("tsconfig-paths-webpack-plugin");
5
5
  const webpack_1 = require("@nx/webpack");
6
- const ts_config_1 = require("@nx/js/src/utils/typescript/ts-config");
6
+ const js_1 = require("@nx/js");
7
7
  function buildBaseWebpackConfig({ tsConfigPath = 'tsconfig.cy.json', compiler = 'babel', }) {
8
8
  const extensions = ['.ts', '.tsx', '.mjs', '.js', '.jsx'];
9
9
  const config = {
@@ -13,7 +13,7 @@ function buildBaseWebpackConfig({ tsConfigPath = 'tsconfig.cy.json', compiler =
13
13
  plugins: [
14
14
  new tsconfig_paths_webpack_plugin_1.TsconfigPathsPlugin({
15
15
  configFile: tsConfigPath,
16
- baseUrl: (0, ts_config_1.resolvePathsBaseUrl)(tsConfigPath),
16
+ baseUrl: (0, js_1.resolvePathsBaseUrl)(tsConfigPath),
17
17
  extensions,
18
18
  }),
19
19
  ],
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.webpack = exports.core = void 0;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
5
+ const internal_1 = require("@nx/js/internal");
6
6
  const config_1 = require("@nx/webpack/src/utils/config");
7
7
  const fs_1 = require("fs");
8
8
  const path_1 = require("path");
@@ -64,7 +64,7 @@ const getProjectData = async (storybookOptions) => {
64
64
  ? {
65
65
  workspaceRoot: process.env.NX_WORKSPACE_ROOT,
66
66
  projectRoot: projectNode.data.root,
67
- sourceRoot: (0, ts_solution_setup_1.getProjectSourceRoot)(projectNode.data),
67
+ sourceRoot: (0, internal_1.getProjectSourceRoot)(projectNode.data),
68
68
  projectNode,
69
69
  }
70
70
  : // Edge-case: missing project node
@@ -130,7 +130,7 @@ const webpack = async (storybookWebpackConfig = {}, options) => {
130
130
  ...options,
131
131
  root: projectData.workspaceRoot,
132
132
  projectRoot: projectData.projectRoot,
133
- sourceRoot: (0, ts_solution_setup_1.getProjectSourceRoot)(projectData.projectNode.data),
133
+ sourceRoot: (0, internal_1.getProjectSourceRoot)(projectData.projectNode.data),
134
134
  fileReplacements: [],
135
135
  sourceMap: true,
136
136
  styles: options.styles ?? [],
@@ -1 +1 @@
1
- {"version":3,"file":"module-federation-dev-server.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/executors/module-federation-dev-server/module-federation-dev-server.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,YAAY,CAAC;AAarD,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAE5D,wBAA+B,yBAAyB,CACtD,MAAM,EAAE,gCAAgC,EACxC,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuG/D"}
1
+ {"version":3,"file":"module-federation-dev-server.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/executors/module-federation-dev-server/module-federation-dev-server.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,YAAY,CAAC;AAarD,OAAO,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAG5D,wBAA+B,yBAAyB,CACtD,MAAM,EAAE,gCAAgC,EACxC,OAAO,EAAE,eAAe,GACvB,qBAAqB,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwG/D"}
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = moduleFederationDevServer;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
- const async_iterable_1 = require("@nx/devkit/src/utils/async-iterable");
7
- const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
6
+ const internal_1 = require("@nx/devkit/internal");
7
+ const internal_2 = require("@nx/js/internal");
8
8
  const utils_1 = require("@nx/module-federation/src/executors/utils");
9
9
  const file_server_impl_1 = tslib_1.__importDefault(require("@nx/web/src/executors/file-server/file-server.impl"));
10
10
  const wait_for_port_open_1 = require("@nx/web/src/utils/wait-for-port-open");
@@ -12,7 +12,9 @@ const dev_server_impl_1 = tslib_1.__importDefault(require("@nx/webpack/src/execu
12
12
  const fs_1 = require("fs");
13
13
  const path_1 = require("path");
14
14
  const lib_1 = require("./lib");
15
+ const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
15
16
  async function* moduleFederationDevServer(schema, context) {
17
+ (0, module_federation_deprecation_1.warnReactMfDevServerExecutorDeprecation)();
16
18
  const options = (0, lib_1.normalizeOptions)(schema);
17
19
  const currIter = options.static
18
20
  ? (0, file_server_impl_1.default)({
@@ -26,7 +28,7 @@ async function* moduleFederationDevServer(schema, context) {
26
28
  : // TODO(JamesHenry): remove type assertion once the nx repo is updated to use https://github.com/nrwl/nx/pull/33095
27
29
  (0, dev_server_impl_1.default)(options, context);
28
30
  const p = context.projectsConfigurations.projects[context.projectName];
29
- let pathToManifestFile = (0, path_1.join)(context.root, (0, ts_solution_setup_1.getProjectSourceRoot)(p), 'assets/module-federation.manifest.json');
31
+ let pathToManifestFile = (0, path_1.join)(context.root, (0, internal_2.getProjectSourceRoot)(p), 'assets/module-federation.manifest.json');
30
32
  if (options.pathToManifestFile) {
31
33
  const userPathToManifestFile = (0, path_1.join)(context.root, options.pathToManifestFile);
32
34
  if (!(0, fs_1.existsSync)(userPathToManifestFile)) {
@@ -41,7 +43,7 @@ async function* moduleFederationDevServer(schema, context) {
41
43
  return yield* currIter;
42
44
  }
43
45
  const { staticRemotesIter, devRemoteIters, remotes } = await (0, utils_1.startRemoteIterators)(options, context, lib_1.startRemotes, pathToManifestFile, 'react');
44
- return yield* (0, async_iterable_1.combineAsyncIterables)(currIter, ...devRemoteIters, ...(staticRemotesIter ? [staticRemotesIter] : []), (0, async_iterable_1.createAsyncIterable)(async ({ next, done }) => {
46
+ return yield* (0, internal_1.combineAsyncIterables)(currIter, ...devRemoteIters, ...(staticRemotesIter ? [staticRemotesIter] : []), (0, internal_1.createAsyncIterable)(async ({ next, done }) => {
45
47
  if (!options.isInitialHost) {
46
48
  done();
47
49
  return;
@@ -3,6 +3,7 @@
3
3
  "continuous": true,
4
4
  "outputCapture": "direct-nodejs",
5
5
  "title": "Module Federation Dev Server",
6
+ "x-deprecated": "The `@nx/react:module-federation-dev-server` executor is deprecated. Dynamic federation in `@nx/react:consumer` removes the need for host-orchestrated remote serving. Removed in Nx v24.",
6
7
  "description": "Serve a web application.",
7
8
  "cli": "nx",
8
9
  "type": "object",
@@ -1 +1 @@
1
- {"version":3,"file":"module-federation-ssr-dev-server.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,YAAY,CAAC;AAYrD,OAAO,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AAE/D,wBAA+B,4BAA4B,CACzD,mBAAmB,EAAE,mCAAmC,EACxD,OAAO,EAAE,eAAe,iCA4GzB"}
1
+ {"version":3,"file":"module-federation-ssr-dev-server.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,YAAY,CAAC;AAYrD,OAAO,EAAE,mCAAmC,EAAE,MAAM,UAAU,CAAC;AAG/D,wBAA+B,4BAA4B,CACzD,mBAAmB,EAAE,mCAAmC,EACxD,OAAO,EAAE,eAAe,iCA6GzB"}
@@ -3,20 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = moduleFederationSsrDevServer;
4
4
  const tslib_1 = require("tslib");
5
5
  const devkit_1 = require("@nx/devkit");
6
- const async_iterable_1 = require("@nx/devkit/src/utils/async-iterable");
7
- const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
6
+ const internal_1 = require("@nx/devkit/internal");
7
+ const internal_2 = require("@nx/js/internal");
8
8
  const utils_1 = require("@nx/module-federation/src/executors/utils");
9
9
  const wait_for_port_open_1 = require("@nx/web/src/utils/wait-for-port-open");
10
10
  const ssr_dev_server_impl_1 = tslib_1.__importDefault(require("@nx/webpack/src/executors/ssr-dev-server/ssr-dev-server.impl"));
11
11
  const fs_1 = require("fs");
12
12
  const path_1 = require("path");
13
13
  const lib_1 = require("./lib");
14
+ const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
14
15
  async function* moduleFederationSsrDevServer(ssrDevServerOptions, context) {
16
+ (0, module_federation_deprecation_1.warnReactMfSsrDevServerExecutorDeprecation)();
15
17
  const options = (0, lib_1.normalizeOptions)(ssrDevServerOptions);
16
18
  // TODO(JamesHenry): remove type assertion once the nx repo is updated to use https://github.com/nrwl/nx/pull/33095
17
19
  let iter = (0, ssr_dev_server_impl_1.default)(options, context);
18
20
  const projectConfig = context.projectsConfigurations.projects[context.projectName];
19
- let pathToManifestFile = (0, path_1.join)(context.root, (0, ts_solution_setup_1.getProjectSourceRoot)(projectConfig), 'assets/module-federation.manifest.json');
21
+ let pathToManifestFile = (0, path_1.join)(context.root, (0, internal_2.getProjectSourceRoot)(projectConfig), 'assets/module-federation.manifest.json');
20
22
  if (options.pathToManifestFile) {
21
23
  const userPathToManifestFile = (0, path_1.join)(context.root, options.pathToManifestFile);
22
24
  if (!(0, fs_1.existsSync)(userPathToManifestFile)) {
@@ -31,7 +33,7 @@ async function* moduleFederationSsrDevServer(ssrDevServerOptions, context) {
31
33
  return yield* iter;
32
34
  }
33
35
  const { staticRemotesIter, devRemoteIters, remotes } = await (0, utils_1.startRemoteIterators)(options, context, lib_1.startRemotes, pathToManifestFile, 'react', true);
34
- const combined = (0, async_iterable_1.combineAsyncIterables)(staticRemotesIter, ...devRemoteIters);
36
+ const combined = (0, internal_1.combineAsyncIterables)(staticRemotesIter, ...devRemoteIters);
35
37
  let refs = 1 + (devRemoteIters?.length ?? 0);
36
38
  for await (const result of combined) {
37
39
  if (result.success === false)
@@ -41,7 +43,7 @@ async function* moduleFederationSsrDevServer(ssrDevServerOptions, context) {
41
43
  if (refs === 0)
42
44
  break;
43
45
  }
44
- return yield* (0, async_iterable_1.combineAsyncIterables)(iter, (0, async_iterable_1.createAsyncIterable)(async ({ next, done }) => {
46
+ return yield* (0, internal_1.combineAsyncIterables)(iter, (0, internal_1.createAsyncIterable)(async ({ next, done }) => {
45
47
  const host = options.host ?? 'localhost';
46
48
  const baseUrl = `http${options.ssl ? 's' : ''}://${host}:${options.port}`;
47
49
  if (!options.isInitialHost) {
@@ -3,6 +3,7 @@
3
3
  "continuous": true,
4
4
  "outputCapture": "direct-nodejs",
5
5
  "title": "Module Federation SSR Dev Server",
6
+ "x-deprecated": "The `@nx/react:module-federation-ssr-dev-server` executor is deprecated. SSR is not first-classed in the new `@nx/react:consumer`/`@nx/react:provider` generators. Removed in Nx v24.",
6
7
  "description": "Serve a SSR Consumer (host) application along with its known Producers (remotes).",
7
8
  "cli": "nx",
8
9
  "type": "object",
@@ -1 +1 @@
1
- {"version":3,"file":"module-federation-static-server.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/executors/module-federation-static-server/module-federation-static-server.impl.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAOzC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAC;AAgJ9D,wBAAgB,YAAY,CAC1B,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gCAAgC,EAClD,oBAAoB,EAAE,MAAM,EAC5B,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,UAAU,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,QAgEvD;AAED,wBAA+B,4BAA4B,CACzD,MAAM,EAAE,kCAAkC,EAC1C,OAAO,EAAE,eAAe;;;aAiJzB"}
1
+ {"version":3,"file":"module-federation-static-server.impl.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/executors/module-federation-static-server/module-federation-static-server.impl.ts"],"names":[],"mappings":"AAaA,OAAO,EAIL,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,gCAAgC,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,kCAAkC,EAAE,MAAM,UAAU,CAAC;AAgJ9D,wBAAgB,YAAY,CAC1B,mBAAmB,EAAE,mBAAmB,EACxC,gBAAgB,EAAE,gCAAgC,EAClD,oBAAoB,EAAE,MAAM,EAC5B,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChD,UAAU,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,QAgEvD;AAED,wBAA+B,4BAA4B,CACzD,MAAM,EAAE,kCAAkC,EAC1C,OAAO,EAAE,eAAe;;;aAkJzB"}
@@ -3,13 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.startProxies = startProxies;
4
4
  exports.default = moduleFederationStaticServer;
5
5
  const tslib_1 = require("tslib");
6
+ const internal_1 = require("@nx/devkit/internal");
6
7
  const devkit_1 = require("@nx/devkit");
7
- const async_iterable_1 = require("@nx/devkit/src/utils/async-iterable");
8
- const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
8
+ const internal_2 = require("@nx/js/internal");
9
9
  const utils_1 = require("@nx/module-federation/src/executors/utils");
10
10
  const utils_2 = require("@nx/module-federation/src/utils");
11
11
  const file_server_impl_1 = tslib_1.__importDefault(require("@nx/web/src/executors/file-server/file-server.impl"));
12
12
  const wait_for_port_open_1 = require("@nx/web/src/utils/wait-for-port-open");
13
+ const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
13
14
  const child_process_1 = require("child_process");
14
15
  const fs_1 = require("fs");
15
16
  const path_1 = require("path");
@@ -18,7 +19,7 @@ function getBuildAndServeOptionsFromServeTarget(serveTarget, context) {
18
19
  const serveOptions = (0, devkit_1.readTargetOptions)(target, context);
19
20
  const buildTarget = (0, devkit_1.parseTargetString)(serveOptions.buildTarget, context);
20
21
  const buildOptions = (0, devkit_1.readTargetOptions)(buildTarget, context);
21
- let pathToManifestFile = (0, path_1.join)(context.root, (0, ts_solution_setup_1.getProjectSourceRoot)(context.projectGraph.nodes[context.projectName].data), 'assets/module-federation.manifest.json');
22
+ let pathToManifestFile = (0, path_1.join)(context.root, (0, internal_2.getProjectSourceRoot)(context.projectGraph.nodes[context.projectName].data), 'assets/module-federation.manifest.json');
22
23
  if (serveOptions.pathToManifestFile) {
23
24
  const userPathToManifestFile = (0, path_1.join)(context.root, serveOptions.pathToManifestFile);
24
25
  if (!(0, fs_1.existsSync)(userPathToManifestFile)) {
@@ -159,6 +160,7 @@ function startProxies(staticRemotesConfig, hostServeOptions, mappedLocationOfHos
159
160
  devkit_1.logger.info('NX Static Consumer (host) proxy started successfully');
160
161
  }
161
162
  async function* moduleFederationStaticServer(schema, context) {
163
+ (0, module_federation_deprecation_1.warnReactMfStaticServerExecutorDeprecation)();
162
164
  // Force Node to resolve to look for the nx binary that is inside node_modules
163
165
  const nxBin = require.resolve('nx/bin/nx');
164
166
  // Get the remotes from the module federation config
@@ -201,7 +203,7 @@ async function* moduleFederationStaticServer(schema, context) {
201
203
  pathToKey: (0, path_1.join)(devkit_1.workspaceRoot, options.serveOptions.sslKey),
202
204
  }
203
205
  : undefined);
204
- return yield* (0, async_iterable_1.combineAsyncIterables)(staticFileServerIter, (0, async_iterable_1.createAsyncIterable)(async ({ next, done }) => {
206
+ return yield* (0, internal_1.combineAsyncIterables)(staticFileServerIter, (0, internal_1.createAsyncIterable)(async ({ next, done }) => {
205
207
  const host = options.serveOptions.host ?? 'localhost';
206
208
  const baseUrl = `http${options.serveOptions.ssl ? 's' : ''}://${host}:${options.serveOptions.port}`;
207
209
  if (remotes.remotePorts.length === 0) {
@@ -3,6 +3,7 @@
3
3
  "continuous": true,
4
4
  "outputCapture": "direct-nodejs",
5
5
  "title": "Module Federation Static Dev Server",
6
+ "x-deprecated": "The `@nx/react:module-federation-static-server` executor is deprecated. Use `vite preview` / `rsbuild preview` via `nx:run-commands` instead. Removed in Nx v24.",
6
7
  "description": "Serve a Consumer (host) application statically along with its Producers (remotes).",
7
8
  "cli": "nx",
8
9
  "type": "object",
@@ -0,0 +1,8 @@
1
+ import type { SupportedBundler } from './normalize';
2
+ export interface DepsBundle {
3
+ dependencies: Record<string, string>;
4
+ devDependencies: Record<string, string>;
5
+ }
6
+ export declare function getProviderDeps(bundler: SupportedBundler): DepsBundle;
7
+ export declare function getConsumerDeps(bundler: SupportedBundler): DepsBundle;
8
+ //# sourceMappingURL=mf-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mf-dependencies.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/_utils/mf-dependencies.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAQD,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAarE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,CAcrE"}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProviderDeps = getProviderDeps;
4
+ exports.getConsumerDeps = getConsumerDeps;
5
+ const tslib_1 = require("tslib");
6
+ const mfVersions = tslib_1.__importStar(require("./mf-versions"));
7
+ const versions_1 = require("@nx/js/src/utils/versions");
8
+ const versions_2 = require("../../utils/versions");
9
+ // Returned to both surfaces:
10
+ // - addDependenciesToPackageJson(tree, deps, devDeps) writes to root package.json
11
+ // so bare `vite` / `rsbuild` / `rspack` in the run-commands serve target resolve
12
+ // in integrated workspaces.
13
+ // - The per-project package.json template uses the same map so a pnpm-workspace
14
+ // setup (which installs per-project) gets the same versions without drift.
15
+ function getProviderDeps(bundler) {
16
+ const base = {
17
+ dependencies: {
18
+ react: versions_2.reactVersion,
19
+ 'react-dom': versions_2.reactDomVersion,
20
+ },
21
+ devDependencies: {
22
+ '@types/react': versions_2.typesReactVersion,
23
+ '@types/react-dom': versions_2.typesReactDomVersion,
24
+ typescript: versions_1.typescriptVersion,
25
+ },
26
+ };
27
+ return mergeWith(base, bundlerDeps(bundler));
28
+ }
29
+ function getConsumerDeps(bundler) {
30
+ const base = {
31
+ dependencies: {
32
+ '@module-federation/runtime': mfVersions.moduleFederationRuntimeVersion,
33
+ react: versions_2.reactVersion,
34
+ 'react-dom': versions_2.reactDomVersion,
35
+ },
36
+ devDependencies: {
37
+ '@types/react': versions_2.typesReactVersion,
38
+ '@types/react-dom': versions_2.typesReactDomVersion,
39
+ typescript: versions_1.typescriptVersion,
40
+ },
41
+ };
42
+ return mergeWith(base, bundlerDeps(bundler));
43
+ }
44
+ function bundlerDeps(bundler) {
45
+ switch (bundler) {
46
+ case 'vite':
47
+ return {
48
+ dependencies: {},
49
+ devDependencies: {
50
+ '@module-federation/vite': mfVersions.moduleFederationVitePluginVersion,
51
+ '@vitejs/plugin-react': mfVersions.vitejsPluginReactVersion,
52
+ vite: mfVersions.viteVersion,
53
+ },
54
+ };
55
+ case 'rsbuild':
56
+ return {
57
+ dependencies: {},
58
+ devDependencies: {
59
+ '@module-federation/rsbuild-plugin': mfVersions.moduleFederationRsbuildPluginVersion,
60
+ '@rsbuild/core': mfVersions.rsbuildCoreVersion,
61
+ '@rsbuild/plugin-react': mfVersions.rsbuildPluginReactVersion,
62
+ },
63
+ };
64
+ case 'rspack':
65
+ // Rspack provider/consumer both put @module-federation/enhanced in
66
+ // dependencies (it's imported at runtime by the federation plugin call).
67
+ return {
68
+ dependencies: {
69
+ '@module-federation/enhanced': mfVersions.moduleFederationEnhancedVersion,
70
+ },
71
+ devDependencies: {
72
+ '@rspack/cli': mfVersions.rspackCliVersion,
73
+ '@rspack/core': mfVersions.rspackCoreVersion,
74
+ '@rspack/dev-server': mfVersions.rspackDevServerVersion,
75
+ },
76
+ };
77
+ }
78
+ }
79
+ function mergeWith(a, b) {
80
+ return {
81
+ dependencies: { ...a.dependencies, ...b.dependencies },
82
+ devDependencies: { ...a.devDependencies, ...b.devDependencies },
83
+ };
84
+ }
@@ -0,0 +1,12 @@
1
+ export declare const moduleFederationEnhancedVersion = "^2.4.0";
2
+ export declare const moduleFederationVitePluginVersion = "^1.15.5";
3
+ export declare const moduleFederationRuntimeVersion = "^2.4.0";
4
+ export declare const viteVersion = "^8.0.13";
5
+ export declare const vitejsPluginReactVersion = "^6.0.2";
6
+ export declare const rsbuildCoreVersion = "^1.4.0";
7
+ export declare const rsbuildPluginReactVersion = "^1.3.0";
8
+ export declare const moduleFederationRsbuildPluginVersion = "^2.5.0";
9
+ export declare const rspackCoreVersion = "^2.0.3";
10
+ export declare const rspackCliVersion = "^2.0.3";
11
+ export declare const rspackDevServerVersion = "2.0.1";
12
+ //# sourceMappingURL=mf-versions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mf-versions.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/_utils/mf-versions.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,+BAA+B,WAAW,CAAC;AACxD,eAAO,MAAM,iCAAiC,YAAY,CAAC;AAC3D,eAAO,MAAM,8BAA8B,WAAW,CAAC;AAGvD,eAAO,MAAM,WAAW,YAAY,CAAC;AACrC,eAAO,MAAM,wBAAwB,WAAW,CAAC;AAGjD,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAC3C,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAIlD,eAAO,MAAM,oCAAoC,WAAW,CAAC;AAG7D,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAIzC,eAAO,MAAM,sBAAsB,UAAU,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ // Module Federation runtime + bundler-specific deps live here. Framework
3
+ // versions (react, react-dom, @types/*, typescript) are owned by @nx/react
4
+ // (../../utils/versions) and @nx/js so each dep has a single source of truth.
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.rspackDevServerVersion = exports.rspackCliVersion = exports.rspackCoreVersion = exports.moduleFederationRsbuildPluginVersion = exports.rsbuildPluginReactVersion = exports.rsbuildCoreVersion = exports.vitejsPluginReactVersion = exports.viteVersion = exports.moduleFederationRuntimeVersion = exports.moduleFederationVitePluginVersion = exports.moduleFederationEnhancedVersion = void 0;
7
+ // Module Federation runtime packages. Keep `runtime` on the same major as
8
+ // `enhanced` / the `vite` plugin (both pull runtime 2.4.x). A 0.x runtime in
9
+ // the consumer would mismatch the 2.x runtime baked into the providers.
10
+ exports.moduleFederationEnhancedVersion = '^2.4.0';
11
+ exports.moduleFederationVitePluginVersion = '^1.15.5';
12
+ exports.moduleFederationRuntimeVersion = '^2.4.0';
13
+ // Vite stack.
14
+ exports.viteVersion = '^8.0.13';
15
+ exports.vitejsPluginReactVersion = '^6.0.2';
16
+ // Rsbuild stack.
17
+ exports.rsbuildCoreVersion = '^1.4.0';
18
+ exports.rsbuildPluginReactVersion = '^1.3.0';
19
+ // Official MF rsbuild integration. Peers @rsbuild/core ^1.3.21, so the pin
20
+ // above satisfies it. Used instead of @module-federation/enhanced/rspack so
21
+ // the federation config is a first-class rsbuild plugin, not a tools.rspack hack.
22
+ exports.moduleFederationRsbuildPluginVersion = '^2.5.0';
23
+ // Rspack stack.
24
+ exports.rspackCoreVersion = '^2.0.3';
25
+ exports.rspackCliVersion = '^2.0.3';
26
+ // Pinned (no ^) to dodge the broken 2.0.2 publish, which ships no dist/ so
27
+ // @rspack/cli can't load it for `rspack serve`. Re-float to ^ once upstream
28
+ // republishes a fixed 2.0.3+.
29
+ exports.rspackDevServerVersion = '2.0.1';
@@ -0,0 +1,20 @@
1
+ import { Tree } from '@nx/devkit';
2
+ export type SupportedBundler = 'vite' | 'rsbuild' | 'rspack';
3
+ export type SupportedSurface = 'consumer' | 'provider';
4
+ export interface NormalizedScaffoldOptions {
5
+ projectName: string;
6
+ federationName: string;
7
+ bundler: SupportedBundler;
8
+ port: number;
9
+ projectRoot: string;
10
+ }
11
+ export interface RawScaffoldOptions {
12
+ directory: string;
13
+ surface: SupportedSurface;
14
+ bundler?: SupportedBundler;
15
+ port?: number;
16
+ }
17
+ export declare function getDefaultPort(bundler: SupportedBundler, surface: SupportedSurface): number;
18
+ export declare function toFederationName(projectName: string): string;
19
+ export declare function normalizeScaffoldOptions(tree: Tree, raw: RawScaffoldOptions): Promise<NormalizedScaffoldOptions>;
20
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/_utils/normalize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,MAAM,YAAY,CAAC;AAGzC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,UAAU,CAAC;AAevD,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAGR;AAKD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAe5D;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,yBAAyB,CAAC,CAYpC"}