@nx/angular 23.2.0-beta.4 → 23.2.0-beta.6

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 (27) hide show
  1. package/dist/src/builders/dev-server/dev-server.impl.js +6 -8
  2. package/dist/src/builders/webpack-browser/webpack-browser.impl.js +5 -6
  3. package/dist/src/executors/application/application.impl.js +1 -1
  4. package/dist/src/executors/browser-esbuild/browser-esbuild.impl.js +1 -1
  5. package/dist/src/executors/extract-i18n/extract-i18n.impl.js +3 -3
  6. package/dist/src/executors/module-federation-dev-server/module-federation-dev-server.impl.js +1 -1
  7. package/dist/src/executors/module-federation-ssr-dev-server/module-federation-ssr-dev-server.impl.js +2 -3
  8. package/dist/src/executors/unit-test/unit-test.impl.js +1 -1
  9. package/dist/src/generators/application/lib/create-files.js +3 -3
  10. package/dist/src/generators/component-test/component-test.js +2 -0
  11. package/dist/src/generators/cypress-component-configuration/cypress-component-configuration.js +2 -0
  12. package/dist/src/generators/library/lib/create-files.js +3 -0
  13. package/dist/src/generators/ng-add/utilities/format-files-task.js +2 -2
  14. package/dist/src/generators/ng-add/utilities/projects.js +2 -2
  15. package/dist/src/generators/ng-add/utilities/workspace.js +3 -4
  16. package/dist/src/generators/scam-to-standalone/lib/get-component-data-from-ast.d.ts +1 -1
  17. package/dist/src/generators/scam-to-standalone/lib/get-target-project.d.ts +1 -1
  18. package/dist/src/generators/scam-to-standalone/lib/replace-module-usages-with-component.d.ts +1 -1
  19. package/dist/src/generators/utils/add-vitest.js +1 -2
  20. package/dist/src/migrations/update-21-0-0/change-data-persistence-operators-imports-to-ngrx-router-store-data-persistence.js +4 -4
  21. package/dist/src/plugins/plugin.js +2 -4
  22. package/dist/src/utils/assert-cypress-component-testing-support.d.ts +6 -0
  23. package/dist/src/utils/assert-cypress-component-testing-support.js +27 -0
  24. package/dist/src/utils/versions.d.ts +4 -4
  25. package/dist/src/utils/versions.js +4 -4
  26. package/migrations.json +161 -0
  27. package/package.json +12 -12
@@ -4,17 +4,15 @@ exports.executeDevServerBuilder = executeDevServerBuilder;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const js_1 = require("@nx/js");
6
6
  const fs_1 = require("fs");
7
- const configuration_1 = require("nx/src/config/configuration");
8
- const operators_1 = require("nx/src/project-graph/operators");
9
- const project_graph_1 = require("nx/src/project-graph/project-graph");
10
7
  const path_1 = require("path");
11
8
  const rxjs_1 = require("rxjs");
12
- const operators_2 = require("rxjs/operators");
9
+ const operators_1 = require("rxjs/operators");
13
10
  const builder_package_1 = require("../../executors/utilities/builder-package");
14
11
  const esbuild_extensions_1 = require("../../executors/utilities/esbuild-extensions");
15
12
  const patch_builder_context_1 = require("../../executors/utilities/patch-builder-context");
16
13
  const buildable_libs_1 = require("../utilities/buildable-libs");
17
14
  const lib_1 = require("./lib");
15
+ const internal_1 = require("@nx/devkit/internal");
18
16
  function executeDevServerBuilder(rawOptions, context) {
19
17
  (0, lib_1.validateOptions)(rawOptions);
20
18
  process.env.NX_TSCONFIG_PATH = (0, js_1.getRootTsConfigPath)();
@@ -26,10 +24,10 @@ function executeDevServerBuilder(rawOptions, context) {
26
24
  projectName: context.target.project,
27
25
  projectsConfigurations: (0, devkit_1.readProjectsConfigurationFromProjectGraph)(projectGraph),
28
26
  root: context.workspaceRoot,
29
- nxJsonConfiguration: (0, configuration_1.readNxJson)(devkit_1.workspaceRoot),
27
+ nxJsonConfiguration: (0, internal_1.readNxJsonFromDisk)(devkit_1.workspaceRoot),
30
28
  isVerbose: false,
31
29
  });
32
- const browserTargetProjectConfiguration = (0, project_graph_1.readCachedProjectConfiguration)(parsedBuildTarget.project);
30
+ const browserTargetProjectConfiguration = (0, internal_1.readCachedProjectConfiguration)(parsedBuildTarget.project);
33
31
  const buildTarget = browserTargetProjectConfiguration.targets[parsedBuildTarget.target];
34
32
  const buildTargetOptions = {
35
33
  ...buildTarget.options,
@@ -106,12 +104,12 @@ function executeDevServerBuilder(rawOptions, context) {
106
104
  (0, rxjs_1.from)((0, esbuild_extensions_1.loadPlugins)(buildTargetOptions.plugins, buildTargetOptions.tsConfig)),
107
105
  (0, rxjs_1.from)((0, esbuild_extensions_1.loadMiddleware)(options.esbuildMiddleware, buildTargetOptions.tsConfig)),
108
106
  (0, rxjs_1.from)(loadIndexHtmlFileTransformer(pathToIndexFileTransformer, buildTargetOptions.tsConfig, context, isUsingWebpackBuilder)),
109
- ]).pipe((0, operators_2.switchMap)(([{ executeDevServerBuilder }, plugins, middleware, indexHtmlTransformer,]) => executeDevServerBuilder(delegateBuilderOptions, context, {
107
+ ]).pipe((0, operators_1.switchMap)(([{ executeDevServerBuilder }, plugins, middleware, indexHtmlTransformer,]) => executeDevServerBuilder(delegateBuilderOptions, context, {
110
108
  webpackConfiguration: isUsingWebpackBuilder
111
109
  ? async (baseWebpackConfig) => {
112
110
  if (!buildLibsFromSource) {
113
111
  const workspaceDependencies = dependencies
114
- .filter((dep) => !(0, operators_1.isNpmProject)(dep.node))
112
+ .filter((dep) => !(0, internal_1.isNpmProject)(dep.node))
115
113
  .map((dep) => dep.node.name);
116
114
  // default for `nx run-many` is --all projects
117
115
  // by passing an empty string for --projects, run-many will default to
@@ -3,13 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeWebpackBrowserBuilder = executeWebpackBrowserBuilder;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const fs_1 = require("fs");
6
- const operators_1 = require("nx/src/project-graph/operators");
7
- const utils_1 = require("nx/src/tasks-runner/utils");
8
6
  const path_1 = require("path");
9
7
  const rxjs_1 = require("rxjs");
10
- const operators_2 = require("rxjs/operators");
8
+ const operators_1 = require("rxjs/operators");
11
9
  const builder_package_1 = require("../../executors/utilities/builder-package");
12
10
  const buildable_libs_1 = require("../utilities/buildable-libs");
11
+ const internal_1 = require("@nx/devkit/internal");
13
12
  // This is required to ensure that the webpack version used by the Module Federation is the same as the one used by the builders.
14
13
  const Module = require('module');
15
14
  const originalResolveFilename = Module._resolveFilename;
@@ -34,7 +33,7 @@ function shouldSkipInitialTargetRun(projectGraph, project, target) {
34
33
  allTargetNames.add(targetName);
35
34
  }
36
35
  }
37
- const projectDependencyConfigs = (0, utils_1.getDependencyConfigs)({ project, target }, {}, projectGraph, Array.from(allTargetNames));
36
+ const projectDependencyConfigs = (0, internal_1.getDependencyConfigs)({ project, target }, {}, projectGraph, Array.from(allTargetNames));
38
37
  // if the task runner already ran the target, skip the initial run
39
38
  return projectDependencyConfigs.some((d) => d.target === target && d.projects === 'dependencies');
40
39
  }
@@ -69,11 +68,11 @@ function executeWebpackBrowserBuilder(options, context) {
69
68
  import('@angular-devkit/build-angular'),
70
69
  import('@nx/webpack/internal'),
71
70
  import('../utilities/webpack.js'),
72
- ])).pipe((0, operators_2.switchMap)(([{ executeBrowserBuilder }, { WebpackNxBuildCoordinationPlugin }, { mergeCustomWebpackConfig, resolveIndexHtmlTransformer },]) => executeBrowserBuilder(delegateBuilderOptions, context, {
71
+ ])).pipe((0, operators_1.switchMap)(([{ executeBrowserBuilder }, { WebpackNxBuildCoordinationPlugin }, { mergeCustomWebpackConfig, resolveIndexHtmlTransformer },]) => executeBrowserBuilder(delegateBuilderOptions, context, {
73
72
  webpackConfiguration: (baseWebpackConfig) => {
74
73
  if (!buildLibsFromSource && delegateBuilderOptions.watch) {
75
74
  const workspaceDependencies = dependencies
76
- .filter((dep) => !(0, operators_1.isNpmProject)(dep.node))
75
+ .filter((dep) => !(0, internal_1.isNpmProject)(dep.node))
77
76
  .map((dep) => dep.node.name);
78
77
  // default for `nx run-many` is --all projects
79
78
  // by passing an empty string for --projects, run-many will default to
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = applicationExecutor;
4
- const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
5
4
  const buildable_libs_1 = require("../utilities/buildable-libs");
6
5
  const builder_package_1 = require("../utilities/builder-package");
7
6
  const esbuild_extensions_1 = require("../utilities/esbuild-extensions");
8
7
  const normalize_options_1 = require("./utils/normalize-options");
9
8
  const validate_options_1 = require("./utils/validate-options");
9
+ const ngcli_adapter_1 = require("@nx/devkit/ngcli-adapter");
10
10
  async function* applicationExecutor(options, context) {
11
11
  (0, validate_options_1.validateOptions)(options);
12
12
  const { buildLibsFromSource = true, plugins: pluginPaths, indexHtmlTransformer: indexHtmlTransformerPath, ...delegateExecutorOptions } = (0, normalize_options_1.normalizeOptions)(options);
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = esbuildExecutor;
4
- const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
5
4
  const buildable_libs_1 = require("../utilities/buildable-libs");
6
5
  const esbuild_extensions_1 = require("../utilities/esbuild-extensions");
6
+ const ngcli_adapter_1 = require("@nx/devkit/ngcli-adapter");
7
7
  async function* esbuildExecutor(options, context) {
8
8
  options.buildLibsFromSource ??= true;
9
9
  const { buildLibsFromSource, plugins: pluginPaths, ...delegateExecutorOptions } = options;
@@ -2,13 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = extractI18nExecutor;
4
4
  const devkit_1 = require("@nx/devkit");
5
- const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
6
- const project_graph_1 = require("nx/src/project-graph/project-graph");
7
5
  const builder_package_1 = require("../utilities/builder-package");
8
6
  const patch_builder_context_1 = require("../utilities/patch-builder-context");
7
+ const ngcli_adapter_1 = require("@nx/devkit/ngcli-adapter");
8
+ const internal_1 = require("@nx/devkit/internal");
9
9
  async function* extractI18nExecutor(options, context) {
10
10
  const parsedBuildTarget = (0, devkit_1.parseTargetString)(options.buildTarget, context);
11
- const buildTargetProjectConfiguration = (0, project_graph_1.readCachedProjectConfiguration)(parsedBuildTarget.project);
11
+ const buildTargetProjectConfiguration = (0, internal_1.readCachedProjectConfiguration)(parsedBuildTarget.project);
12
12
  const buildTarget = buildTargetProjectConfiguration.targets[parsedBuildTarget.target];
13
13
  const isUsingEsbuildBuilder = [
14
14
  '@angular/build:application',
@@ -6,12 +6,12 @@ const devkit_1 = require("@nx/devkit");
6
6
  const builder_package_1 = require("../utilities/builder-package");
7
7
  const lib_1 = require("./lib");
8
8
  const internal_2 = require("@nx/web/internal");
9
- const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
10
9
  const dev_server_impl_1 = require("../../builders/dev-server/dev-server.impl");
11
10
  const module_federation_1 = require("../../builders/utilities/module-federation");
12
11
  const path_1 = require("path");
13
12
  const fs_1 = require("fs");
14
13
  const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
14
+ const ngcli_adapter_1 = require("@nx/devkit/ngcli-adapter");
15
15
  // This is required to ensure that the webpack version used by the Module Federation is the same as the one used by the builders.
16
16
  const Module = require('module');
17
17
  const originalResolveFilename = Module._resolveFilename;
@@ -5,14 +5,13 @@ const devkit_1 = require("@nx/devkit");
5
5
  const internal_1 = require("@nx/devkit/internal");
6
6
  const internal_2 = require("@nx/web/internal");
7
7
  const fs_1 = require("fs");
8
- const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
9
- const project_graph_1 = require("nx/src/project-graph/project-graph");
10
8
  const path_1 = require("path");
11
9
  const module_federation_1 = require("../../builders/utilities/module-federation");
12
10
  const builder_package_1 = require("../utilities/builder-package");
13
11
  const normalize_options_1 = require("./lib/normalize-options");
14
12
  const start_dev_remotes_1 = require("./lib/start-dev-remotes");
15
13
  const module_federation_deprecation_1 = require("../../utils/module-federation-deprecation");
14
+ const ngcli_adapter_1 = require("@nx/devkit/ngcli-adapter");
16
15
  // This is required to ensure that the webpack version used by the Module Federation is the same as the one used by the builders.
17
16
  const Module = require('module');
18
17
  const originalResolveFilename = Module._resolveFilename;
@@ -44,7 +43,7 @@ async function* moduleFederationSsrDevServerExecutor(schema, context) {
44
43
  if (options.isInitialHost === false) {
45
44
  return yield* currIter;
46
45
  }
47
- const { projects: workspaceProjects } = (0, project_graph_1.readProjectsConfigurationFromProjectGraph)(context.projectGraph);
46
+ const { projects: workspaceProjects } = (0, devkit_1.readProjectsConfigurationFromProjectGraph)(context.projectGraph);
48
47
  const project = workspaceProjects[context.projectName];
49
48
  let pathToManifestFile;
50
49
  if (options.pathToManifestFile) {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = unitTestExecutor;
4
- const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
4
+ const ngcli_adapter_1 = require("@nx/devkit/ngcli-adapter");
5
5
  const targets_1 = require("../../utils/targets");
6
6
  const semver_1 = require("semver");
7
7
  const angular_version_utils_1 = require("../utilities/angular-version-utils");
@@ -3,19 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createFiles = createFiles;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const js_1 = require("@nx/js");
6
- const onboarding_1 = require("nx/src/nx-cloud/utilities/onboarding");
7
6
  const test_runners_1 = require("../../../utils/test-runners");
8
7
  const artifact_types_1 = require("../../utils/artifact-types");
9
8
  const selector_1 = require("../../utils/selector");
10
9
  const update_project_root_tsconfig_1 = require("../../utils/update-project-root-tsconfig");
10
+ const internal_1 = require("@nx/devkit/internal");
11
11
  async function createFiles(tree, options, rootOffset) {
12
12
  const rootSelector = `${options.prefix}-root`;
13
13
  (0, selector_1.validateHtmlSelector)(rootSelector);
14
14
  const nxWelcomeSelector = `${options.prefix}-nx-welcome`;
15
15
  (0, selector_1.validateHtmlSelector)(nxWelcomeSelector);
16
- const onBoardingStatus = await (0, onboarding_1.createNxCloudOnboardingURLForWelcomeApp)(tree, options.nxCloudToken);
16
+ const onBoardingStatus = await (0, internal_1.createNxCloudOnboardingURLForWelcomeApp)(tree, options.nxCloudToken);
17
17
  const connectCloudUrl = onBoardingStatus === 'unclaimed' &&
18
- (await (0, onboarding_1.getNxCloudAppOnBoardingUrl)(options.nxCloudToken));
18
+ (await (0, internal_1.getNxCloudAppOnBoardingUrl)(options.nxCloudToken));
19
19
  const componentType = (0, artifact_types_1.getComponentType)(tree);
20
20
  const componentFileSuffix = componentType ? `.${componentType}` : '';
21
21
  const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(tree);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.componentTestGenerator = componentTestGenerator;
4
4
  const devkit_1 = require("@nx/devkit");
5
+ const assert_cypress_component_testing_support_1 = require("../../utils/assert-cypress-component-testing-support");
5
6
  const assert_supported_angular_version_1 = require("../../utils/assert-supported-angular-version");
6
7
  const versions_1 = require("../../utils/versions");
7
8
  const storybook_inputs_1 = require("../utils/storybook-ast/storybook-inputs");
@@ -9,6 +10,7 @@ const version_utils_1 = require("../utils/version-utils");
9
10
  async function componentTestGenerator(tree, options) {
10
11
  (0, assert_supported_angular_version_1.assertSupportedAngularVersion)(tree);
11
12
  (0, devkit_1.ensurePackage)('@nx/cypress', versions_1.nxVersion);
13
+ (0, assert_cypress_component_testing_support_1.assertCypressComponentTestingSupport)(tree);
12
14
  const { root } = (0, devkit_1.readProjectConfiguration)(tree, options.project);
13
15
  const componentDirPath = (0, devkit_1.joinPathFragments)(root, options.componentDir);
14
16
  const componentFilePath = (0, devkit_1.joinPathFragments)(componentDirPath, `${options.componentFileName}.ts`);
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cypressComponentConfiguration = cypressComponentConfiguration;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const path_1 = require("path");
6
+ const assert_cypress_component_testing_support_1 = require("../../utils/assert-cypress-component-testing-support");
6
7
  const assert_supported_angular_version_1 = require("../../utils/assert-supported-angular-version");
7
8
  const zoneless_1 = require("../../utils/zoneless");
8
9
  const versions_1 = require("../../utils/versions");
@@ -31,6 +32,7 @@ const esbuildExecutors = new Set([
31
32
  async function cypressComponentConfiguration(tree, options) {
32
33
  (0, assert_supported_angular_version_1.assertSupportedAngularVersion)(tree);
33
34
  const { componentConfigurationGenerator: baseCyCTConfig } = (0, devkit_1.ensurePackage)('@nx/cypress', versions_1.nxVersion);
35
+ (0, assert_cypress_component_testing_support_1.assertCypressComponentTestingSupport)(tree);
34
36
  const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.project);
35
37
  let isZoneless;
36
38
  if (projectConfig.projectType === 'application') {
@@ -41,6 +41,9 @@ function createFiles(tree, options, project) {
41
41
  tpl: '',
42
42
  };
43
43
  (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/base'), options.libraryOptions.projectRoot, substitutions);
44
+ if (options.libraryOptions.buildable && !options.libraryOptions.publishable) {
45
+ (0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(options.libraryOptions.projectRoot, 'package.json'), (json) => ({ ...json, private: true }));
46
+ }
44
47
  if (options.libraryOptions.standalone) {
45
48
  (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-components'), options.libraryOptions.projectRoot, substitutions);
46
49
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatFilesTask = formatFilesTask;
4
- const child_process_1 = require("nx/src/utils/child-process");
4
+ const internal_1 = require("@nx/devkit/internal");
5
5
  function formatFilesTask(tree) {
6
6
  if (!tree
7
7
  .listChanges()
@@ -9,7 +9,7 @@ function formatFilesTask(tree) {
9
9
  return;
10
10
  }
11
11
  try {
12
- (0, child_process_1.runNxSync)(`format`, { cwd: tree.root, stdio: [0, 1, 2] });
12
+ (0, internal_1.runNxSync)(`format`, { cwd: tree.root, stdio: [0, 1, 2] });
13
13
  }
14
14
  catch { }
15
15
  }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAllProjects = getAllProjects;
4
4
  exports.convertToNxProject = convertToNxProject;
5
5
  const devkit_1 = require("@nx/devkit");
6
- const angular_json_1 = require("nx/src/adapter/angular-json");
6
+ const internal_1 = require("@nx/devkit/internal");
7
7
  function getAllProjects(tree) {
8
8
  const projects = (0, devkit_1.getProjects)(tree);
9
9
  const result = {
@@ -26,7 +26,7 @@ function getAllProjects(tree) {
26
26
  }
27
27
  function convertToNxProject(tree, projectName) {
28
28
  const angularJson = (0, devkit_1.readJson)(tree, 'angular.json');
29
- const project = (0, angular_json_1.toNewFormat)(angularJson).projects[projectName];
29
+ const project = (0, internal_1.toNewFormat)(angularJson).projects[projectName];
30
30
  project.name = projectName;
31
31
  (0, devkit_1.addProjectConfiguration)(tree, projectName, project);
32
32
  delete angularJson.projects[projectName];
@@ -17,11 +17,10 @@ const devkit_1 = require("@nx/devkit");
17
17
  const eslint_1 = require("@nx/eslint");
18
18
  const internal_1 = require("@nx/eslint/internal");
19
19
  const js_1 = require("@nx/js");
20
- const default_base_1 = require("nx/src/utils/default-base");
21
20
  const internal_2 = require("@nx/js/internal");
22
- const angular_json_1 = require("nx/src/adapter/angular-json");
23
21
  const versions_1 = require("../../../utils/versions");
24
22
  const path_1 = require("path");
23
+ const internal_3 = require("@nx/devkit/internal");
25
24
  function validateWorkspace(tree) {
26
25
  const errors = [];
27
26
  if (!tree.exists('package.json')) {
@@ -40,7 +39,7 @@ function validateWorkspace(tree) {
40
39
  function createNxJson(tree, options, defaultProject) {
41
40
  const targets = getWorkspaceCommonTargets(tree);
42
41
  (0, devkit_1.writeJson)(tree, 'nx.json', {
43
- defaultBase: options.defaultBase ?? (0, default_base_1.deduceDefaultBase)(),
42
+ defaultBase: options.defaultBase ?? (0, internal_3.deduceDefaultBase)(),
44
43
  namedInputs: {
45
44
  sharedGlobals: [],
46
45
  default: ['{projectRoot}/**/*', 'sharedGlobals'],
@@ -278,7 +277,7 @@ function updateVsCodeRecommendedExtensions(tree) {
278
277
  }
279
278
  }
280
279
  function deleteAngularJson(tree) {
281
- const projects = (0, angular_json_1.toNewFormat)((0, devkit_1.readJson)(tree, 'angular.json')).projects;
280
+ const projects = (0, internal_3.toNewFormat)((0, devkit_1.readJson)(tree, 'angular.json')).projects;
282
281
  if (!Object.keys(projects).length) {
283
282
  tree.delete('angular.json');
284
283
  }
@@ -1,4 +1,4 @@
1
- import type { Tree } from 'nx/src/generators/tree';
1
+ import { type Tree } from '@nx/devkit';
2
2
  export declare function getComponentDataFromAST(tree: Tree, normalizedComponentPath: string): {
3
3
  componentFileContents: string;
4
4
  componentAST: any;
@@ -1,2 +1,2 @@
1
- import { ProjectConfiguration } from 'nx/src/config/workspace-json-project-json';
1
+ import { ProjectConfiguration } from '@nx/devkit';
2
2
  export declare function getTargetProject(projectName: string, projects: Map<string, ProjectConfiguration>): ProjectConfiguration;
@@ -1,2 +1,2 @@
1
- import { Tree } from 'nx/src/generators/tree';
1
+ import { Tree } from '@nx/devkit';
2
2
  export declare function replaceModuleUsagesWithComponent(tree: Tree, moduleName: string, componentName: string): void;
@@ -4,7 +4,6 @@ exports.addVitestAngular = addVitestAngular;
4
4
  exports.addVitestAnalog = addVitestAnalog;
5
5
  const devkit_1 = require("@nx/devkit");
6
6
  const internal_1 = require("@nx/devkit/internal");
7
- const devkit_internals_1 = require("nx/src/devkit-internals");
8
7
  const semver_1 = require("semver");
9
8
  const versions_1 = require("../../utils/versions");
10
9
  const version_utils_1 = require("./version-utils");
@@ -90,7 +89,7 @@ function validateVitestVersion(tree) {
90
89
  let installedVitestVersion = null;
91
90
  // Try to get the actual installed version from node_modules
92
91
  try {
93
- const { packageJson } = (0, devkit_internals_1.readModulePackageJson)('vitest');
92
+ const { packageJson } = (0, internal_1.readModulePackageJson)('vitest');
94
93
  installedVitestVersion = packageJson.version;
95
94
  }
96
95
  catch { }
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = default_1;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const internal_1 = require("@nx/js/internal");
6
- const project_graph_1 = require("nx/src/config/project-graph");
7
- const nx_deps_cache_1 = require("nx/src/project-graph/nx-deps-cache");
6
+ const internal_2 = require("@nx/devkit/internal");
7
+ const internal_3 = require("@nx/devkit/internal");
8
8
  const version_utils_1 = require("../../generators/utils/version-utils");
9
9
  const file_change_recorder_1 = require("../../utils/file-change-recorder");
10
10
  const projects_1 = require("../utils/projects");
@@ -27,7 +27,7 @@ async function default_1(tree) {
27
27
  const tsqueryModule = require('@phenomnomnominal/tsquery');
28
28
  tsqueryAst = tsqueryModule.ast;
29
29
  tsqueryQuery = tsqueryModule.query;
30
- const cachedFileMap = (0, nx_deps_cache_1.readFileMapCache)().fileMap.projectFileMap;
30
+ const cachedFileMap = (0, internal_3.readFileMapCache)().fileMap.projectFileMap;
31
31
  const filesWithNxAngularImports = [];
32
32
  for (const graphNode of projects) {
33
33
  const files = filterFilesWithNxAngularDep(cachedFileMap[graphNode.name] || []);
@@ -115,7 +115,7 @@ function addNgrxRouterStoreIfNotInstalled(tree) {
115
115
  function filterFilesWithNxAngularDep(files) {
116
116
  const filteredFiles = [];
117
117
  for (const file of files) {
118
- if (file.deps?.some((dep) => angularPluginTargetNames.includes((0, project_graph_1.fileDataDepTarget)(dep)))) {
118
+ if (file.deps?.some((dep) => angularPluginTargetNames.includes((0, internal_2.fileDataDepTarget)(dep)))) {
119
119
  filteredFiles.push(file);
120
120
  }
121
121
  }
@@ -8,8 +8,6 @@ const js_1 = require("@nx/js");
8
8
  const node_fs_1 = require("node:fs");
9
9
  const node_path_1 = require("node:path");
10
10
  const posix = tslib_1.__importStar(require("node:path/posix"));
11
- const devkit_internals_1 = require("nx/src/devkit-internals");
12
- const cache_directory_1 = require("nx/src/utils/cache-directory");
13
11
  const targets_1 = require("../utils/targets");
14
12
  const vitest_1 = require("./utils/vitest");
15
13
  const knownExecutors = {
@@ -48,8 +46,8 @@ const knownExecutors = {
48
46
  exports.createNodes = [
49
47
  '**/angular.json',
50
48
  async (configFiles, options, context) => {
51
- const optionsHash = (0, devkit_internals_1.hashObject)(options);
52
- const cachePath = (0, node_path_1.join)(cache_directory_1.workspaceDataDirectory, `angular-${optionsHash}.hash`);
49
+ const optionsHash = (0, internal_1.hashObject)(options);
50
+ const cachePath = (0, node_path_1.join)(internal_1.workspaceDataDirectory, `angular-${optionsHash}.hash`);
53
51
  const projectsCache = new internal_1.PluginCache(cachePath);
54
52
  const packageManager = (0, devkit_1.detectPackageManager)(context.workspaceRoot);
55
53
  const pmc = (0, devkit_1.getPackageManagerCommand)(packageManager);
@@ -0,0 +1,6 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ /**
3
+ * Asserts the workspace's Cypress version can run Component Testing against its
4
+ * Angular version. Must be called after `@nx/cypress` has been ensured.
5
+ */
6
+ export declare function assertCypressComponentTestingSupport(tree: Tree): void;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assertCypressComponentTestingSupport = assertCypressComponentTestingSupport;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const internal_1 = require("@nx/devkit/internal");
6
+ const semver_1 = require("semver");
7
+ /**
8
+ * Asserts the workspace's Cypress version can run Component Testing against its
9
+ * Angular version. Must be called after `@nx/cypress` has been ensured.
10
+ */
11
+ function assertCypressComponentTestingSupport(tree) {
12
+ const angularVersion = (0, internal_1.getDeclaredPackageVersion)(tree, '@angular/core');
13
+ if (!angularVersion || (0, semver_1.lt)(angularVersion, '22.1.0')) {
14
+ return;
15
+ }
16
+ const { cypressVersion, } = require('@nx/cypress/internal');
17
+ // When Cypress is not installed, the generators install `cypressVersion`
18
+ const declaredCypressVersion = (0, devkit_1.getDependencyVersionFromPackageJson)(tree, 'cypress') ?? cypressVersion;
19
+ // A dist tag (`latest`, `next`) can't be compared, so it's not gated
20
+ const installedCypressVersion = (0, semver_1.coerce)(declaredCypressVersion)?.version;
21
+ if (installedCypressVersion && (0, semver_1.lt)(installedCypressVersion, '16.0.0')) {
22
+ throw new Error(`Cypress Component Testing doesn't support Angular 22.1 and higher for Cypress version ${installedCypressVersion}. ` +
23
+ `Angular 22.1 moved @angular-devkit/build-angular to Babel 8, which Cypress can't load. ` +
24
+ `Cypress 16 should be the first release to support it. ` +
25
+ `See https://github.com/cypress-io/cypress/issues/34461.`);
26
+ }
27
+ }
@@ -1,7 +1,7 @@
1
1
  export declare const nxVersion: any;
2
- export declare const angularVersion = "~22.0.4";
3
- export declare const angularDevkitVersion = "~22.0.4";
4
- export declare const ngPackagrVersion = "~22.0.0";
2
+ export declare const angularVersion = "~22.1.0";
3
+ export declare const angularDevkitVersion = "~22.1.0";
4
+ export declare const ngPackagrVersion = "~22.1.0";
5
5
  export declare const ngrxVersion = "^21.0.0";
6
6
  export declare const rxjsVersion = "~7.8.0";
7
7
  export declare const zoneJsVersion = "~0.16.2";
@@ -14,7 +14,7 @@ export declare const browserSyncVersion = "^3.0.0";
14
14
  export declare const moduleFederationNodeVersion = "^2.7.21";
15
15
  export declare const moduleFederationEnhancedVersion = "^2.1.0";
16
16
  export declare const webpackMergeVersion = "^5.8.0";
17
- export declare const angularEslintVersion = "^22.0.0";
17
+ export declare const angularEslintVersion = "^22.1.0";
18
18
  export declare const typescriptEslintVersion = "^8.40.0";
19
19
  export declare const postcssVersion = "^8.4.5";
20
20
  export declare const postcssUrlVersion = "~10.1.3";
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.jsoncEslintParserVersion = exports.oxcProjectRuntimeVersion = exports.jsdomVersion = exports.vitestVersion = exports.jasmineMarblesVersion = exports.typesNodeVersion = exports.jestPresetAngularVersion = exports.lessVersion = exports.tsNodeVersion = exports.autoprefixerVersion = exports.postcssUrlVersion = exports.postcssVersion = exports.typescriptEslintVersion = exports.angularEslintVersion = exports.webpackMergeVersion = exports.moduleFederationEnhancedVersion = exports.moduleFederationNodeVersion = exports.browserSyncVersion = exports.typesExpressVersion = exports.expressVersion = exports.typesCorsVersion = exports.corsVersion = exports.tsLibVersion = exports.zoneJsVersion = exports.rxjsVersion = exports.ngrxVersion = exports.ngPackagrVersion = exports.angularDevkitVersion = exports.angularVersion = exports.nxVersion = void 0;
4
4
  const path_1 = require("path");
5
5
  exports.nxVersion = require((0, path_1.join)('@nx/angular', 'package.json')).version;
6
- exports.angularVersion = '~22.0.4';
7
- exports.angularDevkitVersion = '~22.0.4';
8
- exports.ngPackagrVersion = '~22.0.0';
6
+ exports.angularVersion = '~22.1.0';
7
+ exports.angularDevkitVersion = '~22.1.0';
8
+ exports.ngPackagrVersion = '~22.1.0';
9
9
  exports.ngrxVersion = '^21.0.0';
10
10
  exports.rxjsVersion = '~7.8.0';
11
11
  exports.zoneJsVersion = '~0.16.2';
@@ -18,7 +18,7 @@ exports.browserSyncVersion = '^3.0.0';
18
18
  exports.moduleFederationNodeVersion = '^2.7.21';
19
19
  exports.moduleFederationEnhancedVersion = '^2.1.0';
20
20
  exports.webpackMergeVersion = '^5.8.0';
21
- exports.angularEslintVersion = '^22.0.0';
21
+ exports.angularEslintVersion = '^22.1.0';
22
22
  exports.typescriptEslintVersion = '^8.40.0';
23
23
  exports.postcssVersion = '^8.4.5';
24
24
  exports.postcssUrlVersion = '~10.1.3';
package/migrations.json CHANGED
@@ -2150,6 +2150,167 @@
2150
2150
  "alwaysAddToPackageJson": false
2151
2151
  }
2152
2152
  }
2153
+ },
2154
+ "23.2.0": {
2155
+ "version": "23.2.0-beta.5",
2156
+ "requires": {
2157
+ "@angular/core": ">=22.0.0 <22.1.0"
2158
+ },
2159
+ "packages": {
2160
+ "@angular/cli": {
2161
+ "version": "~22.1.0",
2162
+ "alwaysAddToPackageJson": false,
2163
+ "ignorePackageGroup": true,
2164
+ "ignoreMigrations": true
2165
+ },
2166
+ "@angular-devkit/build-angular": {
2167
+ "version": "~22.1.0",
2168
+ "alwaysAddToPackageJson": false
2169
+ },
2170
+ "@angular-devkit/core": {
2171
+ "version": "~22.1.0",
2172
+ "alwaysAddToPackageJson": false
2173
+ },
2174
+ "@angular-devkit/schematics": {
2175
+ "version": "~22.1.0",
2176
+ "alwaysAddToPackageJson": false
2177
+ },
2178
+ "@angular/build": {
2179
+ "version": "~22.1.0",
2180
+ "alwaysAddToPackageJson": false
2181
+ },
2182
+ "@angular/pwa": {
2183
+ "version": "~22.1.0",
2184
+ "alwaysAddToPackageJson": false
2185
+ },
2186
+ "@angular/ssr": {
2187
+ "version": "~22.1.0",
2188
+ "alwaysAddToPackageJson": false
2189
+ },
2190
+ "@schematics/angular": {
2191
+ "version": "~22.1.0",
2192
+ "alwaysAddToPackageJson": false
2193
+ },
2194
+ "@angular-devkit/architect": {
2195
+ "version": "~0.2201.0",
2196
+ "alwaysAddToPackageJson": false
2197
+ },
2198
+ "@angular-devkit/build-webpack": {
2199
+ "version": "~0.2201.0",
2200
+ "alwaysAddToPackageJson": false
2201
+ },
2202
+ "@angular/core": {
2203
+ "version": "~22.1.0",
2204
+ "alwaysAddToPackageJson": true
2205
+ },
2206
+ "@angular/material": {
2207
+ "version": "~22.1.0",
2208
+ "alwaysAddToPackageJson": false
2209
+ },
2210
+ "@angular/cdk": {
2211
+ "version": "~22.1.0",
2212
+ "alwaysAddToPackageJson": false
2213
+ },
2214
+ "@angular/google-maps": {
2215
+ "version": "~22.1.0",
2216
+ "alwaysAddToPackageJson": false
2217
+ },
2218
+ "ng-packagr": {
2219
+ "version": "~22.1.0",
2220
+ "alwaysAddToPackageJson": false
2221
+ },
2222
+ "zone.js": {
2223
+ "version": "~0.16.2",
2224
+ "alwaysAddToPackageJson": false
2225
+ }
2226
+ }
2227
+ },
2228
+ "23.2.0-angular-eslint": {
2229
+ "version": "23.2.0-beta.5",
2230
+ "requires": {
2231
+ "@angular/core": ">= 22.0.0 < 23.0.0",
2232
+ "typescript-eslint": "^8.0.0",
2233
+ "eslint": "^9.0.0 || ^10.0.0"
2234
+ },
2235
+ "packages": {
2236
+ "angular-eslint": {
2237
+ "version": "^22.1.0",
2238
+ "alwaysAddToPackageJson": false
2239
+ },
2240
+ "@angular-eslint/eslint-plugin": {
2241
+ "version": "^22.1.0",
2242
+ "alwaysAddToPackageJson": false
2243
+ },
2244
+ "@angular-eslint/eslint-plugin-template": {
2245
+ "version": "^22.1.0",
2246
+ "alwaysAddToPackageJson": false
2247
+ },
2248
+ "@angular-eslint/template-parser": {
2249
+ "version": "^22.1.0",
2250
+ "alwaysAddToPackageJson": false
2251
+ },
2252
+ "@angular-eslint/utils": {
2253
+ "version": "^22.1.0",
2254
+ "alwaysAddToPackageJson": false
2255
+ },
2256
+ "@angular-eslint/schematics": {
2257
+ "version": "^22.1.0",
2258
+ "alwaysAddToPackageJson": false
2259
+ },
2260
+ "@angular-eslint/test-utils": {
2261
+ "version": "^22.1.0",
2262
+ "alwaysAddToPackageJson": false
2263
+ },
2264
+ "@angular-eslint/builder": {
2265
+ "version": "^22.1.0",
2266
+ "alwaysAddToPackageJson": false
2267
+ },
2268
+ "@angular-eslint/bundled-angular-compiler": {
2269
+ "version": "^22.1.0",
2270
+ "alwaysAddToPackageJson": false
2271
+ }
2272
+ }
2273
+ },
2274
+ "23.2.0-@angular-eslint": {
2275
+ "version": "23.2.0-beta.5",
2276
+ "requires": {
2277
+ "@angular/core": ">= 22.0.0 < 23.0.0",
2278
+ "eslint": "^9.0.0 || ^10.0.0"
2279
+ },
2280
+ "packages": {
2281
+ "@angular-eslint/eslint-plugin": {
2282
+ "version": "^22.1.0",
2283
+ "alwaysAddToPackageJson": false
2284
+ },
2285
+ "@angular-eslint/eslint-plugin-template": {
2286
+ "version": "^22.1.0",
2287
+ "alwaysAddToPackageJson": false
2288
+ },
2289
+ "@angular-eslint/template-parser": {
2290
+ "version": "^22.1.0",
2291
+ "alwaysAddToPackageJson": false
2292
+ },
2293
+ "@angular-eslint/utils": {
2294
+ "version": "^22.1.0",
2295
+ "alwaysAddToPackageJson": false
2296
+ },
2297
+ "@angular-eslint/schematics": {
2298
+ "version": "^22.1.0",
2299
+ "alwaysAddToPackageJson": false
2300
+ },
2301
+ "@angular-eslint/test-utils": {
2302
+ "version": "^22.1.0",
2303
+ "alwaysAddToPackageJson": false
2304
+ },
2305
+ "@angular-eslint/builder": {
2306
+ "version": "^22.1.0",
2307
+ "alwaysAddToPackageJson": false
2308
+ },
2309
+ "@angular-eslint/bundled-angular-compiler": {
2310
+ "version": "^22.1.0",
2311
+ "alwaysAddToPackageJson": false
2312
+ }
2313
+ }
2153
2314
  }
2154
2315
  }
2155
2316
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/angular",
3
- "version": "23.2.0-beta.4",
3
+ "version": "23.2.0-beta.6",
4
4
  "private": false,
5
5
  "type": "commonjs",
6
6
  "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.",
@@ -80,14 +80,14 @@
80
80
  "picomatch": "4.0.4",
81
81
  "semver": "^7.6.3",
82
82
  "tslib": "^2.3.0",
83
- "@nx/devkit": "23.2.0-beta.4",
84
- "@nx/eslint": "23.2.0-beta.4",
85
- "@nx/js": "23.2.0-beta.4",
86
- "@nx/web": "23.2.0-beta.4"
83
+ "@nx/eslint": "23.2.0-beta.6",
84
+ "@nx/web": "23.2.0-beta.6",
85
+ "@nx/devkit": "23.2.0-beta.6",
86
+ "@nx/js": "23.2.0-beta.6"
87
87
  },
88
88
  "devDependencies": {
89
- "@nx/vitest": "23.2.0-beta.4",
90
- "nx": "23.2.0-beta.4"
89
+ "@nx/vitest": "23.2.0-beta.6",
90
+ "nx": "23.2.0-beta.6"
91
91
  },
92
92
  "peerDependencies": {
93
93
  "@angular/build": ">= 20.0.0 < 23.0.0",
@@ -98,11 +98,11 @@
98
98
  "ng-packagr": ">= 20.0.0 < 23.0.0",
99
99
  "rxjs": "^6.5.3 || ^7.5.0",
100
100
  "webpack-merge": "^5.8.0",
101
- "@nx/playwright": "23.2.0-beta.4",
102
- "@nx/cypress": "23.2.0-beta.4",
103
- "@nx/rspack": "23.2.0-beta.4",
104
- "@nx/module-federation": "23.2.0-beta.4",
105
- "@nx/webpack": "23.2.0-beta.4"
101
+ "@nx/playwright": "23.2.0-beta.6",
102
+ "@nx/cypress": "23.2.0-beta.6",
103
+ "@nx/rspack": "23.2.0-beta.6",
104
+ "@nx/webpack": "23.2.0-beta.6",
105
+ "@nx/module-federation": "23.2.0-beta.6"
106
106
  },
107
107
  "peerDependenciesMeta": {
108
108
  "@angular/build": {