@nx/angular 21.2.0 → 21.2.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/angular",
3
- "version": "21.2.0",
3
+ "version": "21.2.1",
4
4
  "private": false,
5
5
  "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, Tailwind CSS, 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.",
6
6
  "repository": {
@@ -58,14 +58,14 @@
58
58
  "migrations": "./migrations.json"
59
59
  },
60
60
  "dependencies": {
61
- "@nx/devkit": "21.2.0",
62
- "@nx/eslint": "21.2.0",
63
- "@nx/js": "21.2.0",
64
- "@nx/module-federation": "21.2.0",
65
- "@nx/rspack": "21.2.0",
66
- "@nx/web": "21.2.0",
67
- "@nx/webpack": "21.2.0",
68
- "@nx/workspace": "21.2.0",
61
+ "@nx/devkit": "21.2.1",
62
+ "@nx/eslint": "21.2.1",
63
+ "@nx/js": "21.2.1",
64
+ "@nx/module-federation": "21.2.1",
65
+ "@nx/rspack": "21.2.1",
66
+ "@nx/web": "21.2.1",
67
+ "@nx/webpack": "21.2.1",
68
+ "@nx/workspace": "21.2.1",
69
69
  "@phenomnomnominal/tsquery": "~5.0.1",
70
70
  "@typescript-eslint/type-utils": "^8.0.0",
71
71
  "enquirer": "~2.3.6",
@@ -12,8 +12,9 @@ const tslib_1 = require("tslib");
12
12
  const devkit_1 = require("@nx/devkit");
13
13
  const browserslist_1 = tslib_1.__importDefault(require("browserslist"));
14
14
  const fs_1 = require("fs");
15
- const color_1 = require("ng-packagr/src/lib/utils/color");
16
15
  const path_1 = require("path");
16
+ const ng_packagr_version_1 = require("../ng-packagr-version");
17
+ const package_imports_1 = require("../package-imports");
17
18
  const maxWorkersVariable = process.env['NG_BUILD_MAX_WORKERS'];
18
19
  const maxThreads = typeof maxWorkersVariable === 'string' && maxWorkersVariable !== ''
19
20
  ? +maxWorkersVariable
@@ -76,6 +77,8 @@ class StylesheetProcessor {
76
77
  devkit_1.workspaceRoot,
77
78
  ]);
78
79
  const tailwindConfigPath = findTailwindConfiguration(searchDirs);
80
+ const { major: ngPackagrMajorVersion } = (0, ng_packagr_version_1.getNgPackagrVersionInfo)();
81
+ const { colors } = (0, package_imports_1.importNgPackagrPath)('ng-packagr/src/lib/utils/color', ngPackagrMajorVersion);
79
82
  const Piscina = getPiscina();
80
83
  this.renderWorker = new Piscina({
81
84
  filename: require.resolve('ng-packagr/lib/styles/stylesheet-processor-worker'),
@@ -83,7 +86,7 @@ class StylesheetProcessor {
83
86
  recordTiming: false,
84
87
  env: {
85
88
  ...process.env,
86
- FORCE_COLOR: '' + color_1.colors.enabled,
89
+ FORCE_COLOR: '' + colors.enabled,
87
90
  },
88
91
  workerData: {
89
92
  postcssConfiguration,
@@ -18,7 +18,7 @@ const dataPersistenceOperators = [
18
18
  ];
19
19
  const newImportPath = '@ngrx/router-store/data-persistence';
20
20
  async function default_1(tree) {
21
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, angularPluginTargetNames);
21
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)(angularPluginTargetNames);
22
22
  if (!projects.length) {
23
23
  return;
24
24
  }
@@ -26,7 +26,7 @@ async function default_1(tree) {
26
26
  tsquery = require('@phenomnomnominal/tsquery').tsquery;
27
27
  const cachedFileMap = (0, nx_deps_cache_1.readFileMapCache)().fileMap.projectFileMap;
28
28
  const filesWithNxAngularImports = [];
29
- for (const { graphNode } of projects) {
29
+ for (const graphNode of projects) {
30
30
  const files = filterFilesWithNxAngularDep(cachedFileMap[graphNode.name] || []);
31
31
  filesWithNxAngularImports.push(...files);
32
32
  }
@@ -26,11 +26,11 @@ async function default_1(tree) {
26
26
  if (!UNIVERSAL_PACKAGES.some((pkg) => packageJson.dependencies?.[pkg] || packageJson.devDependencies?.[pkg])) {
27
27
  return;
28
28
  }
29
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
29
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)([
30
30
  'npm:@nguniversal/common',
31
31
  'npm:@nguniversal/express-engine',
32
32
  ]);
33
- for (const { project } of projects) {
33
+ for (const { data: project } of projects) {
34
34
  if (project.projectType !== 'application') {
35
35
  continue;
36
36
  }
@@ -4,7 +4,7 @@ exports.default = default_1;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const projects_1 = require("../utils/projects");
6
6
  async function default_1(tree) {
7
- const angularProjects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
7
+ const angularProjects = await (0, projects_1.getProjectsFilteredByDependencies)([
8
8
  'npm:@angular/core',
9
9
  ]);
10
10
  if (!angularProjects.length) {
@@ -12,8 +12,8 @@ async function default_1(tree) {
12
12
  }
13
13
  const zoneJsImportRegex = /(['"`])zone\.js\/dist\/zone(['"`])/g;
14
14
  const zoneJsTestingImportRegex = /(['"`])zone\.js\/dist\/zone-testing(['"`])/g;
15
- for (const { project } of angularProjects) {
16
- (0, devkit_1.visitNotIgnoredFiles)(tree, project.root, (file) => {
15
+ for (const graphNode of angularProjects) {
16
+ (0, devkit_1.visitNotIgnoredFiles)(tree, graphNode.data.root, (file) => {
17
17
  // we are only interested in .ts files
18
18
  if (!file.endsWith('.ts')) {
19
19
  return;
@@ -6,10 +6,11 @@ const eslint_file_1 = require("@nx/eslint/src/generators/utils/eslint-file");
6
6
  const projects_1 = require("../utils/projects");
7
7
  const preferStandaloneRule = '@angular-eslint/prefer-standalone';
8
8
  async function default_1(tree) {
9
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
9
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)([
10
10
  'npm:@angular/core',
11
11
  ]);
12
- for (const { project: { root }, } of projects) {
12
+ for (const graphNode of projects) {
13
+ const root = graphNode.data.root;
13
14
  if (!(0, eslint_file_1.isEslintConfigSupported)(tree, root)) {
14
15
  // ESLint config is not supported, skip
15
16
  continue;
@@ -11,11 +11,12 @@ exports.rulesToRemove = [
11
11
  '@angular-eslint/prefer-standalone-component',
12
12
  ];
13
13
  async function default_1(tree) {
14
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
14
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)([
15
15
  'npm:@angular/core',
16
16
  ]);
17
17
  let hasRootProject = false;
18
- for (const { project: { root }, } of projects) {
18
+ for (const graphNode of projects) {
19
+ const root = graphNode.data.root;
19
20
  if (!(0, eslint_file_1.isEslintConfigSupported)(tree, root)) {
20
21
  // ESLint config is not supported, skip
21
22
  continue;
@@ -7,11 +7,11 @@ const ts = tslib_1.__importStar(require("typescript"));
7
7
  const file_change_recorder_1 = require("../../utils/file-change-recorder");
8
8
  const projects_1 = require("../utils/projects");
9
9
  async function default_1(tree) {
10
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
10
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)([
11
11
  'npm:@angular/ssr',
12
12
  ]);
13
- for (const { project } of projects) {
14
- (0, devkit_1.visitNotIgnoredFiles)(tree, project.root, (path) => {
13
+ for (const graphNode of projects) {
14
+ (0, devkit_1.visitNotIgnoredFiles)(tree, graphNode.data.root, (path) => {
15
15
  if (!path.endsWith('.ts') || path.endsWith('.d.ts')) {
16
16
  return;
17
17
  }
@@ -18,7 +18,7 @@ const dataPersistenceOperators = [
18
18
  ];
19
19
  const newImportPath = '@ngrx/router-store/data-persistence';
20
20
  async function default_1(tree) {
21
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, angularPluginTargetNames);
21
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)(angularPluginTargetNames);
22
22
  if (!projects.length) {
23
23
  return;
24
24
  }
@@ -26,7 +26,7 @@ async function default_1(tree) {
26
26
  tsquery = require('@phenomnomnominal/tsquery').tsquery;
27
27
  const cachedFileMap = (0, nx_deps_cache_1.readFileMapCache)().fileMap.projectFileMap;
28
28
  const filesWithNxAngularImports = [];
29
- for (const { graphNode } of projects) {
29
+ for (const graphNode of projects) {
30
30
  const files = filterFilesWithNxAngularDep(cachedFileMap[graphNode.name] || []);
31
31
  filesWithNxAngularImports.push(...files);
32
32
  }
@@ -8,15 +8,15 @@ const file_change_recorder_1 = require("../../utils/file-change-recorder");
8
8
  const versions_1 = require("../../utils/versions");
9
9
  const projects_1 = require("../utils/projects");
10
10
  async function default_1(tree) {
11
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
11
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)([
12
12
  'npm:@angular/platform-server',
13
13
  ]);
14
14
  if (!projects.length) {
15
15
  return;
16
16
  }
17
17
  let isSsrInstalled = false;
18
- for (const { project } of projects) {
19
- (0, devkit_1.visitNotIgnoredFiles)(tree, project.root, (file) => {
18
+ for (const graphNode of projects) {
19
+ (0, devkit_1.visitNotIgnoredFiles)(tree, graphNode.data.root, (file) => {
20
20
  if (!file.endsWith('.ts') || file.endsWith('.d.ts')) {
21
21
  return;
22
22
  }
@@ -8,14 +8,14 @@ const ts = tslib_1.__importStar(require("typescript"));
8
8
  const file_change_recorder_1 = require("../../utils/file-change-recorder");
9
9
  const projects_1 = require("../utils/projects");
10
10
  async function default_1(tree) {
11
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
11
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)([
12
12
  'npm:@angular/ssr',
13
13
  ]);
14
14
  if (!projects.length) {
15
15
  return;
16
16
  }
17
- for (const { project } of projects) {
18
- (0, devkit_1.visitNotIgnoredFiles)(tree, project.root, (file) => {
17
+ for (const graphNode of projects) {
18
+ (0, devkit_1.visitNotIgnoredFiles)(tree, graphNode.data.root, (file) => {
19
19
  if (!file.endsWith('.ts') || file.endsWith('.d.ts')) {
20
20
  return;
21
21
  }
@@ -6,11 +6,11 @@ const targets_1 = require("../../utils/targets");
6
6
  const projects_1 = require("../utils/projects");
7
7
  async function default_1(tree) {
8
8
  const uniqueTsConfigs = new Set();
9
- const projects = await (0, projects_1.getProjectsFilteredByDependencies)(tree, [
9
+ const projects = await (0, projects_1.getProjectsFilteredByDependencies)([
10
10
  'npm:@angular/core',
11
11
  ]);
12
- for (const { project } of projects) {
13
- for (const [, target] of (0, targets_1.allProjectTargets)(project)) {
12
+ for (const graphNode of projects) {
13
+ for (const [, target] of (0, targets_1.allProjectTargets)(graphNode.data)) {
14
14
  for (const [, options] of (0, targets_1.allTargetOptions)(target)) {
15
15
  if (typeof options?.tsConfig === 'string') {
16
16
  uniqueTsConfigs.add(options.tsConfig);
@@ -1,5 +1,2 @@
1
- import type { ProjectConfiguration, ProjectGraphProjectNode, Tree } from '@nx/devkit';
2
- export declare function getProjectsFilteredByDependencies(tree: Tree, dependencies: string[]): Promise<Array<{
3
- project: ProjectConfiguration;
4
- graphNode: ProjectGraphProjectNode;
5
- }>>;
1
+ import type { ProjectGraphProjectNode } from '@nx/devkit';
2
+ export declare function getProjectsFilteredByDependencies(dependencies: string[]): Promise<ProjectGraphProjectNode[]>;
@@ -2,13 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getProjectsFilteredByDependencies = getProjectsFilteredByDependencies;
4
4
  const devkit_1 = require("@nx/devkit");
5
- async function getProjectsFilteredByDependencies(tree, dependencies) {
5
+ async function getProjectsFilteredByDependencies(dependencies) {
6
6
  const projectGraph = await (0, devkit_1.createProjectGraphAsync)();
7
7
  return Object.entries(projectGraph.dependencies)
8
8
  .filter(([node, deps]) => !projectGraph.externalNodes?.[node] &&
9
9
  deps.some(({ target }) => dependencies.includes(target)))
10
- .map(([projectName]) => ({
11
- project: (0, devkit_1.readProjectConfiguration)(tree, projectName),
12
- graphNode: projectGraph.nodes[projectName],
13
- }));
10
+ .map(([projectName]) => projectGraph.nodes[projectName]);
14
11
  }