@nx/react 23.0.0-beta.20 → 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 (66) hide show
  1. package/generators.json +16 -3
  2. package/package.json +16 -16
  3. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.d.ts.map +1 -1
  4. package/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +2 -0
  5. package/src/executors/module-federation-dev-server/schema.json +1 -0
  6. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.d.ts.map +1 -1
  7. package/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +2 -0
  8. package/src/executors/module-federation-ssr-dev-server/schema.json +1 -0
  9. package/src/executors/module-federation-static-server/module-federation-static-server.impl.d.ts.map +1 -1
  10. package/src/executors/module-federation-static-server/module-federation-static-server.impl.js +2 -0
  11. package/src/executors/module-federation-static-server/schema.json +1 -0
  12. package/src/generators/_utils/mf-dependencies.d.ts +8 -0
  13. package/src/generators/_utils/mf-dependencies.d.ts.map +1 -0
  14. package/src/generators/_utils/mf-dependencies.js +84 -0
  15. package/src/generators/_utils/mf-versions.d.ts +12 -0
  16. package/src/generators/_utils/mf-versions.d.ts.map +1 -0
  17. package/src/generators/_utils/mf-versions.js +29 -0
  18. package/src/generators/_utils/normalize.d.ts +20 -0
  19. package/src/generators/_utils/normalize.d.ts.map +1 -0
  20. package/src/generators/_utils/normalize.js +48 -0
  21. package/src/generators/consumer/consumer.d.ts +5 -0
  22. package/src/generators/consumer/consumer.d.ts.map +1 -0
  23. package/src/generators/consumer/consumer.js +135 -0
  24. package/src/generators/consumer/files/_common/src/App.tsx__tmpl__ +53 -0
  25. package/src/generators/consumer/files/_common/src/bootstrap.tsx__tmpl__ +12 -0
  26. package/src/generators/consumer/files/_common/src/index.ts__tmpl__ +4 -0
  27. package/src/generators/consumer/files/_common/src/mf.ts__tmpl__ +35 -0
  28. package/src/generators/consumer/files/_common/tsconfig.json__tmpl__ +17 -0
  29. package/src/generators/consumer/files/rsbuild/index.html__tmpl__ +12 -0
  30. package/src/generators/consumer/files/rsbuild/package.json__tmpl__ +23 -0
  31. package/src/generators/consumer/files/rsbuild/rsbuild.config.ts__tmpl__ +25 -0
  32. package/src/generators/consumer/files/rspack/index.html__tmpl__ +12 -0
  33. package/src/generators/consumer/files/rspack/package.json__tmpl__ +23 -0
  34. package/src/generators/consumer/files/rspack/rspack.config.ts__tmpl__ +59 -0
  35. package/src/generators/consumer/files/vite/index.html__tmpl__ +12 -0
  36. package/src/generators/consumer/files/vite/package.json__tmpl__ +24 -0
  37. package/src/generators/consumer/files/vite/vite.config.ts__tmpl__ +27 -0
  38. package/src/generators/consumer/schema.d.ts +8 -0
  39. package/src/generators/consumer/schema.json +43 -0
  40. package/src/generators/federate-module/federate-module.d.ts.map +1 -1
  41. package/src/generators/federate-module/federate-module.js +2 -0
  42. package/src/generators/host/host.d.ts.map +1 -1
  43. package/src/generators/host/host.js +2 -0
  44. package/src/generators/provider/files/_common/src/__componentName__.tsx__tmpl__ +11 -0
  45. package/src/generators/provider/files/_common/src/bootstrap.tsx__tmpl__ +12 -0
  46. package/src/generators/provider/files/_common/src/index.ts__tmpl__ +5 -0
  47. package/src/generators/provider/files/_common/tsconfig.json__tmpl__ +17 -0
  48. package/src/generators/provider/files/rsbuild/index.html__tmpl__ +12 -0
  49. package/src/generators/provider/files/rsbuild/package.json__tmpl__ +22 -0
  50. package/src/generators/provider/files/rsbuild/rsbuild.config.ts__tmpl__ +31 -0
  51. package/src/generators/provider/files/rspack/index.html__tmpl__ +12 -0
  52. package/src/generators/provider/files/rspack/package.json__tmpl__ +22 -0
  53. package/src/generators/provider/files/rspack/rspack.config.ts__tmpl__ +69 -0
  54. package/src/generators/provider/files/vite/index.html__tmpl__ +12 -0
  55. package/src/generators/provider/files/vite/package.json__tmpl__ +23 -0
  56. package/src/generators/provider/files/vite/vite.config.ts__tmpl__ +37 -0
  57. package/src/generators/provider/provider.d.ts +5 -0
  58. package/src/generators/provider/provider.d.ts.map +1 -0
  59. package/src/generators/provider/provider.js +92 -0
  60. package/src/generators/provider/schema.d.ts +9 -0
  61. package/src/generators/provider/schema.json +46 -0
  62. package/src/generators/remote/remote.d.ts.map +1 -1
  63. package/src/generators/remote/remote.js +2 -0
  64. package/src/utils/module-federation-deprecation.d.ts +13 -0
  65. package/src/utils/module-federation-deprecation.d.ts.map +1 -0
  66. package/src/utils/module-federation-deprecation.js +46 -0
@@ -0,0 +1,37 @@
1
+ import { defineConfig } from 'vite';
2
+ import react from '@vitejs/plugin-react';
3
+ import { federation } from '@module-federation/vite';
4
+
5
+ // Port deliberately avoids 5000 (macOS AirTunes binds it on 0.0.0.0, leading
6
+ // to silent EADDRINUSE on 127.0.0.1). Override `--port` only if 5000+ is free.
7
+ const PORT = <%= port %>;
8
+
9
+ export default defineConfig({
10
+ server: {
11
+ port: PORT,
12
+ strictPort: true,
13
+ origin: `http://localhost:${PORT}`,
14
+ host: '127.0.0.1',
15
+ // Allow cross-origin fetches of mf-manifest.json + chunks from a consumer
16
+ // running on a different port. Vite 8 narrows the default CORS allowlist
17
+ // to specific localhost patterns; setting `cors: true` emits a wildcard
18
+ // `Access-Control-Allow-Origin: *` for dev which is what federation needs.
19
+ cors: true,
20
+ },
21
+ preview: { port: PORT, strictPort: true, cors: true },
22
+ build: { target: 'chrome89' },
23
+ plugins: [
24
+ federation({
25
+ name: '<%= federationName %>',
26
+ filename: 'remoteEntry.js',
27
+ exposes: {
28
+ './<%= exposeName %>': './src/<%= componentName %>.tsx',
29
+ },
30
+ shared: {
31
+ react: { singleton: true },
32
+ 'react-dom': { singleton: true },
33
+ },
34
+ }),
35
+ react(),
36
+ ],
37
+ });
@@ -0,0 +1,5 @@
1
+ import { GeneratorCallback, Tree } from '@nx/devkit';
2
+ import type { ProviderGeneratorSchema } from './schema';
3
+ export declare function providerGenerator(tree: Tree, schema: ProviderGeneratorSchema): Promise<GeneratorCallback>;
4
+ export default providerGenerator;
5
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/provider/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,iBAAiB,EAIjB,IAAI,EACL,MAAM,YAAY,CAAC;AAWpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAgBxD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAwF5B;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.providerGenerator = providerGenerator;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const versions_1 = require("@nx/js/src/utils/versions");
7
+ const versions_2 = require("../../utils/versions");
8
+ const mfVersions = tslib_1.__importStar(require("../_utils/mf-versions"));
9
+ const mf_dependencies_1 = require("../_utils/mf-dependencies");
10
+ const normalize_1 = require("../_utils/normalize");
11
+ // `--mode=...` is rspack's portable equivalent of `NODE_ENV=...` and works on
12
+ // Windows without a shell prefix.
13
+ const BUNDLER_DEV_COMMAND = {
14
+ vite: 'vite',
15
+ rsbuild: 'rsbuild dev',
16
+ rspack: 'rspack serve --mode=development',
17
+ };
18
+ const BUNDLER_BUILD_COMMAND = {
19
+ vite: 'vite build',
20
+ rsbuild: 'rsbuild build',
21
+ rspack: 'rspack build --mode=production',
22
+ };
23
+ async function providerGenerator(tree, schema) {
24
+ const opts = await (0, normalize_1.normalizeScaffoldOptions)(tree, {
25
+ directory: schema.directory,
26
+ surface: 'provider',
27
+ bundler: schema.bundler,
28
+ port: schema.port,
29
+ });
30
+ // `exposeName` is the public MF expose key (consumers reference
31
+ // `<provider>/<exposeName>`) and may be kebab-case, e.g. `cart-widget`.
32
+ // `componentName` is the PascalCase identifier used for the React function
33
+ // and its filename, since `export function cart-widget()` would be invalid.
34
+ const exposeName = schema.exposeName?.trim() || 'App';
35
+ const componentName = (0, devkit_1.names)(exposeName).className;
36
+ // `dependsOn` on a `continuous: true` target lets nx spin up the consumer
37
+ // alongside the provider - matches the deprecated host/remote 'serve a
38
+ // remote, host comes along' UX. Only wired when --consumer is set (e.g.
39
+ // when the consumer generator scaffolds this provider).
40
+ const serveTarget = {
41
+ executor: 'nx:run-commands',
42
+ continuous: true,
43
+ options: {
44
+ command: BUNDLER_DEV_COMMAND[opts.bundler],
45
+ cwd: opts.projectRoot,
46
+ },
47
+ };
48
+ if (schema.consumer) {
49
+ serveTarget.dependsOn = [`${schema.consumer}:serve`];
50
+ }
51
+ (0, devkit_1.addProjectConfiguration)(tree, opts.projectName, {
52
+ root: opts.projectRoot,
53
+ sourceRoot: (0, devkit_1.joinPathFragments)(opts.projectRoot, 'src'),
54
+ projectType: 'application',
55
+ targets: {
56
+ serve: serveTarget,
57
+ build: {
58
+ executor: 'nx:run-commands',
59
+ options: {
60
+ command: BUNDLER_BUILD_COMMAND[opts.bundler],
61
+ cwd: opts.projectRoot,
62
+ },
63
+ },
64
+ },
65
+ });
66
+ const templateSubstitutions = {
67
+ projectName: opts.projectName,
68
+ federationName: opts.federationName,
69
+ port: opts.port,
70
+ exposeName,
71
+ componentName,
72
+ versions: {
73
+ ...mfVersions,
74
+ reactVersion: versions_2.reactVersion,
75
+ reactDomVersion: versions_2.reactDomVersion,
76
+ typesReactVersion: versions_2.typesReactVersion,
77
+ typesReactDomVersion: versions_2.typesReactDomVersion,
78
+ typescriptVersion: versions_1.typescriptVersion,
79
+ },
80
+ tmpl: '',
81
+ };
82
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', '_common'), opts.projectRoot, templateSubstitutions);
83
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', opts.bundler), opts.projectRoot, templateSubstitutions);
84
+ // Write deps into the workspace root package.json so bare bundler bins
85
+ // resolve when nx invokes the generated run-commands serve target. The
86
+ // per-project package.json template still ships for pnpm-workspace setups.
87
+ const deps = (0, mf_dependencies_1.getProviderDeps)(opts.bundler);
88
+ const installTask = (0, devkit_1.addDependenciesToPackageJson)(tree, deps.dependencies, deps.devDependencies);
89
+ await (0, devkit_1.formatFiles)(tree);
90
+ return (0, devkit_1.runTasksInSerial)(installTask);
91
+ }
92
+ exports.default = providerGenerator;
@@ -0,0 +1,9 @@
1
+ import type { SupportedBundler } from '../_utils/normalize';
2
+
3
+ export interface ProviderGeneratorSchema {
4
+ directory: string;
5
+ bundler?: SupportedBundler;
6
+ port?: number;
7
+ exposeName?: string;
8
+ consumer?: string;
9
+ }
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "NxReactProvider",
4
+ "title": "Create a Module Federation provider",
5
+ "description": "Scaffold a React Module Federation provider that exposes a federated component. The bundler is selected at generation time; the generated project has no Nx-wrapped bundler config.",
6
+ "cli": "nx",
7
+ "type": "object",
8
+ "properties": {
9
+ "directory": {
10
+ "type": "string",
11
+ "description": "Directory the provider is generated in, e.g. `apps/my-provider`. The project name (also used as the federation `name`, with hyphens converted to underscores) is inferred from the trailing path segment.",
12
+ "alias": "dir",
13
+ "$default": { "$source": "argv", "index": 0 },
14
+ "x-prompt": "Which directory do you want to create the provider in?"
15
+ },
16
+ "bundler": {
17
+ "type": "string",
18
+ "description": "Bundler used by the provider. The choice is final - the bundler config is too different to switch later.",
19
+ "enum": ["vite", "rsbuild", "rspack"],
20
+ "default": "vite",
21
+ "x-prompt": {
22
+ "message": "Which bundler should the provider use?",
23
+ "type": "list",
24
+ "items": [
25
+ { "value": "vite", "label": "Vite (default)" },
26
+ { "value": "rsbuild", "label": "Rsbuild" },
27
+ { "value": "rspack", "label": "Rspack" }
28
+ ]
29
+ }
30
+ },
31
+ "port": {
32
+ "type": "number",
33
+ "description": "Dev-server port the provider listens on. Defaults to a non-5000 port to avoid the macOS AirTunes collision on Vite."
34
+ },
35
+ "exposeName": {
36
+ "type": "string",
37
+ "description": "Name under which the federated component is exposed (consumers reference `<name>/<exposeName>`).",
38
+ "default": "App"
39
+ },
40
+ "consumer": {
41
+ "type": "string",
42
+ "description": "Name of a consumer project whose `serve` target this provider should depend on. When set, `nx serve <provider>` also spins up the consumer (the 'serve a remote, host comes along' UX from the deprecated host/remote generators). Set automatically when the provider is generated as part of `@nx/react:consumer --providerNames=...`."
43
+ }
44
+ },
45
+ "required": ["directory"]
46
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/remote/remote.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,iBAAiB,EAOjB,IAAI,EAGL,MAAM,YAAY,CAAC;AAmBpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAmFlC;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAqK/D;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../../../packages/react/src/generators/remote/remote.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,iBAAiB,EAOjB,IAAI,EAGL,MAAM,YAAY,CAAC;AAoBpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAOzD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAmFlC;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,8BAsK/D;AAED,eAAe,eAAe,CAAC"}
@@ -12,6 +12,7 @@ const update_module_federation_project_1 = require("../../rules/update-module-fe
12
12
  const add_mf_env_to_inputs_1 = require("../../utils/add-mf-env-to-inputs");
13
13
  const normalize_remote_1 = require("../../utils/normalize-remote");
14
14
  const maybe_js_1 = require("../../utils/maybe-js");
15
+ const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
15
16
  const versions_1 = require("../../utils/versions");
16
17
  const application_1 = tslib_1.__importDefault(require("../application/application"));
17
18
  const create_application_files_1 = require("../application/lib/create-application-files");
@@ -68,6 +69,7 @@ function addModuleFederationFiles(host, options) {
68
69
  }
69
70
  }
70
71
  async function remoteGenerator(host, schema) {
72
+ (0, module_federation_deprecation_1.warnReactRemoteGeneratorDeprecation)();
71
73
  const tasks = [];
72
74
  const name = await (0, normalize_remote_1.normalizeRemoteName)(host, schema.name, schema);
73
75
  const options = {
@@ -0,0 +1,13 @@
1
+ export declare const REACT_HOST_GENERATOR_DEPRECATION_MESSAGE = "The `@nx/react:host` generator is deprecated and will be removed in Nx v24. Use `nx g @nx/react:consumer` (dynamic federation, no static-serve orchestration). See https://nx.dev/docs/technologies/module-federation/consumer-and-provider for the v23 migration guide.";
2
+ export declare const REACT_REMOTE_GENERATOR_DEPRECATION_MESSAGE = "The `@nx/react:remote` generator is deprecated and will be removed in Nx v24. Use `nx g @nx/react:provider` instead. See https://nx.dev/docs/technologies/module-federation/consumer-and-provider for the v23 migration guide.";
3
+ export declare const REACT_FEDERATE_MODULE_GENERATOR_DEPRECATION_MESSAGE = "The `@nx/react:federate-module` generator is deprecated and will be removed in Nx v24. The new `@nx/react:provider` generator exposes modules directly. See https://nx.dev/docs/technologies/module-federation/consumer-and-provider for the v23 migration guide.";
4
+ export declare const REACT_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = "The `@nx/react:module-federation-dev-server` executor is deprecated and will be removed in Nx v24. Dynamic federation in `@nx/react:consumer` removes the need for host-orchestrated remote serving. See https://nx.dev/docs/technologies/module-federation/consumer-and-provider for the v23 migration guide.";
5
+ export declare const REACT_MF_SSR_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = "The `@nx/react:module-federation-ssr-dev-server` executor is deprecated and will be removed in Nx v24. SSR is not first-classed in the new generators; see https://nx.dev/docs/technologies/module-federation/consumer-and-provider for guidance on wiring SSR with `@nx/react:consumer`.";
6
+ export declare const REACT_MF_STATIC_SERVER_EXECUTOR_DEPRECATION_MESSAGE = "The `@nx/react:module-federation-static-server` executor is deprecated and will be removed in Nx v24. Use plain `vite preview` / `rsbuild preview` via `nx:run-commands` if a static-serve workflow is still needed. See https://nx.dev/docs/technologies/module-federation/consumer-and-provider for details.";
7
+ export declare function warnReactHostGeneratorDeprecation(): void;
8
+ export declare function warnReactRemoteGeneratorDeprecation(): void;
9
+ export declare function warnReactFederateModuleGeneratorDeprecation(): void;
10
+ export declare function warnReactMfDevServerExecutorDeprecation(): void;
11
+ export declare function warnReactMfSsrDevServerExecutorDeprecation(): void;
12
+ export declare function warnReactMfStaticServerExecutorDeprecation(): void;
13
+ //# sourceMappingURL=module-federation-deprecation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-federation-deprecation.d.ts","sourceRoot":"","sources":["../../../../../packages/react/src/utils/module-federation-deprecation.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wCAAwC,6QAAyN,CAAC;AAE/Q,eAAO,MAAM,0CAA0C,mOAA+K,CAAC;AAEvO,eAAO,MAAM,mDAAmD,sQAAkN,CAAC;AAEnR,eAAO,MAAM,gDAAgD,mTAA+P,CAAC;AAE7T,eAAO,MAAM,oDAAoD,8RAA0O,CAAC;AAE5S,eAAO,MAAM,mDAAmD,mTAAmQ,CAAC;AAEpU,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAED,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D;AAED,wBAAgB,2CAA2C,IAAI,IAAI,CAElE;AAWD,wBAAgB,uCAAuC,IAAI,IAAI,CAK9D;AAED,wBAAgB,0CAA0C,IAAI,IAAI,CAKjE;AAED,wBAAgB,0CAA0C,IAAI,IAAI,CAKjE"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REACT_MF_STATIC_SERVER_EXECUTOR_DEPRECATION_MESSAGE = exports.REACT_MF_SSR_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = exports.REACT_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = exports.REACT_FEDERATE_MODULE_GENERATOR_DEPRECATION_MESSAGE = exports.REACT_REMOTE_GENERATOR_DEPRECATION_MESSAGE = exports.REACT_HOST_GENERATOR_DEPRECATION_MESSAGE = void 0;
4
+ exports.warnReactHostGeneratorDeprecation = warnReactHostGeneratorDeprecation;
5
+ exports.warnReactRemoteGeneratorDeprecation = warnReactRemoteGeneratorDeprecation;
6
+ exports.warnReactFederateModuleGeneratorDeprecation = warnReactFederateModuleGeneratorDeprecation;
7
+ exports.warnReactMfDevServerExecutorDeprecation = warnReactMfDevServerExecutorDeprecation;
8
+ exports.warnReactMfSsrDevServerExecutorDeprecation = warnReactMfSsrDevServerExecutorDeprecation;
9
+ exports.warnReactMfStaticServerExecutorDeprecation = warnReactMfStaticServerExecutorDeprecation;
10
+ const devkit_1 = require("@nx/devkit");
11
+ // TODO(v24): Remove these surfaces. Replaced by `@nx/react:consumer`
12
+ // and `@nx/react:provider` (React, dynamic federation, Vite/Rsbuild/Rspack).
13
+ const MIGRATION_URL = 'https://nx.dev/docs/technologies/module-federation/consumer-and-provider';
14
+ exports.REACT_HOST_GENERATOR_DEPRECATION_MESSAGE = `The \`@nx/react:host\` generator is deprecated and will be removed in Nx v24. Use \`nx g @nx/react:consumer\` (dynamic federation, no static-serve orchestration). See ${MIGRATION_URL} for the v23 migration guide.`;
15
+ exports.REACT_REMOTE_GENERATOR_DEPRECATION_MESSAGE = `The \`@nx/react:remote\` generator is deprecated and will be removed in Nx v24. Use \`nx g @nx/react:provider\` instead. See ${MIGRATION_URL} for the v23 migration guide.`;
16
+ exports.REACT_FEDERATE_MODULE_GENERATOR_DEPRECATION_MESSAGE = `The \`@nx/react:federate-module\` generator is deprecated and will be removed in Nx v24. The new \`@nx/react:provider\` generator exposes modules directly. See ${MIGRATION_URL} for the v23 migration guide.`;
17
+ exports.REACT_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = `The \`@nx/react:module-federation-dev-server\` executor is deprecated and will be removed in Nx v24. Dynamic federation in \`@nx/react:consumer\` removes the need for host-orchestrated remote serving. See ${MIGRATION_URL} for the v23 migration guide.`;
18
+ exports.REACT_MF_SSR_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE = `The \`@nx/react:module-federation-ssr-dev-server\` executor is deprecated and will be removed in Nx v24. SSR is not first-classed in the new generators; see ${MIGRATION_URL} for guidance on wiring SSR with \`@nx/react:consumer\`.`;
19
+ exports.REACT_MF_STATIC_SERVER_EXECUTOR_DEPRECATION_MESSAGE = `The \`@nx/react:module-federation-static-server\` executor is deprecated and will be removed in Nx v24. Use plain \`vite preview\` / \`rsbuild preview\` via \`nx:run-commands\` if a static-serve workflow is still needed. See ${MIGRATION_URL} for details.`;
20
+ function warnReactHostGeneratorDeprecation() {
21
+ devkit_1.logger.warn(exports.REACT_HOST_GENERATOR_DEPRECATION_MESSAGE);
22
+ }
23
+ function warnReactRemoteGeneratorDeprecation() {
24
+ devkit_1.logger.warn(exports.REACT_REMOTE_GENERATOR_DEPRECATION_MESSAGE);
25
+ }
26
+ function warnReactFederateModuleGeneratorDeprecation() {
27
+ devkit_1.logger.warn(exports.REACT_FEDERATE_MODULE_GENERATOR_DEPRECATION_MESSAGE);
28
+ }
29
+ // Executor warnings fire once per process (dev-server reload loops would
30
+ // otherwise flood the console).
31
+ const executorWarned = new Set();
32
+ function warnOnce(key, message) {
33
+ if (executorWarned.has(key))
34
+ return;
35
+ executorWarned.add(key);
36
+ devkit_1.logger.warn(message);
37
+ }
38
+ function warnReactMfDevServerExecutorDeprecation() {
39
+ warnOnce('react-mf-dev-server', exports.REACT_MF_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE);
40
+ }
41
+ function warnReactMfSsrDevServerExecutorDeprecation() {
42
+ warnOnce('react-mf-ssr-dev-server', exports.REACT_MF_SSR_DEV_SERVER_EXECUTOR_DEPRECATION_MESSAGE);
43
+ }
44
+ function warnReactMfStaticServerExecutorDeprecation() {
45
+ warnOnce('react-mf-static-server', exports.REACT_MF_STATIC_SERVER_EXECUTOR_DEPRECATION_MESSAGE);
46
+ }