@unisphere/cli 2.1.6 → 2.1.8

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": "@unisphere/cli",
3
- "version": "2.1.6",
3
+ "version": "2.1.8",
4
4
  "bin": {
5
5
  "unisphere": "./src/cli.js"
6
6
  },
@@ -5,49 +5,6 @@ const tslib_1 = require("tslib");
5
5
  const path = require("path");
6
6
  const debug_1 = require("debug");
7
7
  const debug = (0, debug_1.default)('unisphere:utils:get-dependency-graph');
8
- /**
9
- * Resolves and loads @nrwl/devkit (or @nx/devkit) from the consumer's node_modules
10
- * This ensures that when testing locally, we use the same version as the consumer would
11
- * when the CLI is installed in their project.
12
- *
13
- * @param consumerRootDir - The root directory of the consumer project (where --cwd points)
14
- * @returns The devkit module with createProjectGraphAsync function
15
- */
16
- function loadDevkitFromConsumer(consumerRootDir) {
17
- // Try @nx/devkit first (for Nx v16+), then fall back to @nrwl/devkit (for Nx v15)
18
- let devkitPath;
19
- let devkitModule;
20
- try {
21
- // Attempt to resolve from consumer's node_modules
22
- devkitPath = require.resolve('@nx/devkit', {
23
- paths: [consumerRootDir, path.join(consumerRootDir, 'node_modules')]
24
- });
25
- debug('Resolved @nx/devkit from consumer at: %s', devkitPath);
26
- devkitModule = require(devkitPath);
27
- }
28
- catch (e) {
29
- try {
30
- // Fall back to @nrwl/devkit (for Nx v15)
31
- devkitPath = require.resolve('@nrwl/devkit', {
32
- paths: [consumerRootDir, path.join(consumerRootDir, 'node_modules')]
33
- });
34
- debug('Resolved @nrwl/devkit from consumer at: %s', devkitPath);
35
- devkitModule = require(devkitPath);
36
- }
37
- catch (e2) {
38
- // If not found in consumer's node_modules, fall back to default resolution
39
- // This handles cases where the consumer doesn't have it installed yet
40
- debug('Could not resolve devkit from consumer, using default resolution: %s', e2.message);
41
- try {
42
- devkitModule = require('@nx/devkit');
43
- }
44
- catch (_a) {
45
- devkitModule = require('@nrwl/devkit');
46
- }
47
- }
48
- }
49
- return devkitModule;
50
- }
51
8
  function matchesPattern(packageName, pattern) {
52
9
  // Convert glob-like pattern to regex
53
10
  // * matches any characters except /
@@ -64,23 +21,48 @@ function getDependencyGraphAndFilteredDeps(rootDir_1, packageDir_1) {
64
21
  const { includeTransitive = true } = options; // Default to true for backward compatibility
65
22
  const packagePath = path.resolve(rootDir, packageDir);
66
23
  debug('get dependency graph for %s', packagePath);
67
- // Load devkit from consumer's node_modules to ensure we use their Nx version
68
- // This makes local testing behave the same as when the CLI is installed in a consumer project
69
- const devkit = loadDevkitFromConsumer(rootDir);
70
- const { createProjectGraphAsync } = devkit;
71
- // Get the Nx project graph
72
- // Note: createProjectGraphAsync() reads from the current working directory context,
73
- // so it will use the consumer's workspace configuration
74
- const projectGraph = yield createProjectGraphAsync();
24
+ // Get the Nx project graph using a subprocess
25
+ // We need to spawn a child process because the devkit module caches workspace state,
26
+ // and we need to generate the graph in the context of the consumer's workspace
27
+ const { execSync } = require('child_process');
28
+ debug('Getting project graph via subprocess in %s', rootDir);
29
+ let projectGraph;
30
+ try {
31
+ // Run a Node script that outputs the project graph as JSON
32
+ const script = `
33
+ const { createProjectGraphAsync } = require('@nx/devkit');
34
+ createProjectGraphAsync().then(graph => {
35
+ console.log(JSON.stringify(graph));
36
+ }).catch(err => {
37
+ console.error('ERROR:', err.message);
38
+ process.exit(1);
39
+ });
40
+ `;
41
+ const result = execSync(`node -e "${script.replace(/\n/g, ' ').replace(/"/g, '\\"')}"`, {
42
+ cwd: rootDir,
43
+ encoding: 'utf-8',
44
+ env: Object.assign(Object.assign({}, process.env), { NX_WORKSPACE_ROOT: rootDir, NX_DAEMON: 'false' }),
45
+ maxBuffer: 50 * 1024 * 1024, // 50MB buffer for large project graphs
46
+ });
47
+ projectGraph = JSON.parse(result);
48
+ debug('Project graph loaded via subprocess');
49
+ }
50
+ catch (graphError) {
51
+ debug('Failed to get project graph via subprocess: %s', graphError.message);
52
+ throw new Error(`Failed to load Nx project graph: ${graphError.message}`);
53
+ }
75
54
  const externalNodesCount = Object.keys(projectGraph.externalNodes || {}).length;
76
- debug('Project graph loaded: %d workspace projects, %d external npm packages', Object.keys(projectGraph.nodes).length, externalNodesCount);
55
+ const workspaceProjects = Object.keys(projectGraph.nodes);
56
+ debug('Project graph loaded: %d workspace projects, %d external npm packages', workspaceProjects.length, externalNodesCount);
77
57
  // Find the project name from the package directory
78
58
  const projectName = Object.keys(projectGraph.nodes).find(name => {
79
59
  const node = projectGraph.nodes[name];
80
- return node.data.root === packageDir || path.resolve(rootDir, node.data.root) === packagePath;
60
+ const nodeRoot = node.data.root;
61
+ const resolvedPath = path.resolve(rootDir, nodeRoot);
62
+ return nodeRoot === packageDir || resolvedPath === packagePath;
81
63
  });
82
64
  if (!projectName) {
83
- throw new Error(`Project not found for path ${packagePath}`);
65
+ throw new Error(`Project not found for path ${packagePath}. Available: ${workspaceProjects.join(', ')}`);
84
66
  }
85
67
  debug('Found project: %s', projectName);
86
68
  const graph = {};
@@ -136,7 +118,10 @@ function getDependencyGraphAndFilteredDeps(rootDir_1, packageDir_1) {
136
118
  directDependenciesName: directDependencyName ? [resolvedDirectDependencyName] : []
137
119
  };
138
120
  // Build dependency graph recursively
139
- if (includeTransitive) {
121
+ // Only traverse transitive dependencies for workspace projects, not external npm packages
122
+ // External npm packages (like @vitejs/plugin-react, vitest) have their own transitive deps
123
+ // (like react-refresh, react-is) which are build tools, not actual runtime dependencies
124
+ if (includeTransitive && !externalNode) {
140
125
  dependencies.forEach(dep => {
141
126
  traverse(dep, resolvedDirectDependencyName, visited);
142
127
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-dependency-graph.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/utils/unisphere/get-dependency-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-dependency-graph.js","sourceRoot":"","sources":["../../../../../../../packages/unisphere-cli/src/lib/utils/unisphere/get-dependency-graph.ts"],"names":[],"mappings":"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"}