nx-npm-tools 0.2.3 → 1.0.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/README.md CHANGED
@@ -14,6 +14,109 @@ Alias:
14
14
 
15
15
  * `--pro` is the same as `--prometheus`
16
16
 
17
+ ---
18
+
19
+ ## 📖 Playbook
20
+
21
+ ### 🎯 One-time setup (per station)
22
+
23
+ **Step 1: Map your station**
24
+ ```bash
25
+ npx nx-npm-tools reportStation --pro --out station-report.md
26
+ ```
27
+ Review the report to see:
28
+ - **Relationships**: Which packages depend on which (only non-archived/non-ignored packages)
29
+ - **External private deps**: Packages that depend on private/scoped packages not in this station
30
+ - **Orphaned packages**: Packages not used by any other package in the station
31
+ - **⚠️ Recommended to move**: Packages that are BOTH orphaned AND have external private deps (should be moved to a different station)
32
+
33
+ **Step 2: Preview what would be published**
34
+ ```bash
35
+ npx nx-npm-tools publishStation --pro --preview --preview-file publish-preview.md --bump patch --access public
36
+ ```
37
+ This:
38
+ - Shows a numbered list in the console (packages that WILL be published)
39
+ - Creates `publish-preview.md` with ALL packages numbered (including already excluded ones)
40
+ - Review the file and note the numbers of packages you want to exclude
41
+
42
+ **Step 3: Configure exclusions by package numbers**
43
+ ```bash
44
+ # View packages from preview file
45
+ npx nx-npm-tools excludePackages --pro --preview-file publish-preview.md
46
+
47
+ # Add packages to exclusion list by numbers
48
+ npx nx-npm-tools excludePackages --pro --numbers "1,2,3,5,8"
49
+
50
+ # Or use the preview file directly
51
+ npx nx-npm-tools excludePackages --pro --preview-file publish-preview.md --numbers "1,2,3,5,8"
52
+ ```
53
+ This adds the specified packages (by their numbers from the preview file) to the exclusion list in `.nx-npm-tools.json`.
54
+
55
+ - You can run this multiple times to add more packages
56
+ - Use `--remove` to remove packages: `--numbers "1,2" --remove`
57
+ - The numbers correspond to the order in the preview file
58
+
59
+ Alternatively, manually edit `.nx-npm-tools.json`:
60
+ ```json
61
+ {
62
+ "exclude": {
63
+ "packages": [
64
+ "old-package-1",
65
+ "legacy-package-2"
66
+ ],
67
+ "paths": []
68
+ }
69
+ }
70
+ ```
71
+
72
+ **Step 4: Archive excluded packages (optional but recommended)**
73
+ ```bash
74
+ # Preview what will be archived
75
+ npx nx-npm-tools archiveExcluded --pro --dry-run
76
+
77
+ # Actually move excluded packages to archive folder
78
+ npx nx-npm-tools archiveExcluded --pro
79
+ ```
80
+ This moves excluded packages to an `archive` folder (sibling of prometheus root).
81
+
82
+ **Step 5: Set up Renovate configs**
83
+ ```bash
84
+ npx nx-npm-tools runOnce --pro --add-ncu --commit
85
+ ```
86
+ This adds `renovate.json` and `deps:latest` scripts to all repos.
87
+
88
+ ---
89
+
90
+ ### 🔄 Regular publishing workflow
91
+
92
+ **Step 1: Preview what will be published**
93
+ ```bash
94
+ npx nx-npm-tools publishStation --pro --preview --bump patch --access public
95
+ ```
96
+ **Note**: The preview shows packages in **dependency order** (topological sort) - dependencies are published first.
97
+ ```
98
+ Always preview first to verify the publish order and packages.
99
+
100
+ **Step 2: Publish all packages in dependency order**
101
+ ```bash
102
+ npx nx-npm-tools publishStation --pro --access public --bump patch
103
+ ```
104
+
105
+ This will:
106
+ - Install dependencies per package
107
+ - Build each package
108
+ - Bump version (patch/minor/major)
109
+ - Publish to npm
110
+ - Commit and push changes (solo mode handles git automatically)
111
+
112
+ **Alternative: Publish a single package**
113
+ ```bash
114
+ cd /path/to/package
115
+ npx nx-npm-tools publishOne --cwd . --access public --bump patch
116
+ ```
117
+
118
+ ---
119
+
17
120
  ## Commands
18
121
 
19
122
  ### runOnce (per-station setup)
@@ -30,6 +133,14 @@ nx-npm-tools reportStation --pro --out station-report.md
30
133
 
31
134
  ### publishStation (publish everything in dependency order)
32
135
 
136
+ **Preview what will be published (recommended first):**
137
+
138
+ ```bash
139
+ nx-npm-tools publishStation --pro --preview --bump patch --access public
140
+ ```
141
+
142
+ **Actually publish:**
143
+
33
144
  ```bash
34
145
  nx-npm-tools publishStation --pro --access public --bump patch
35
146
  ```
@@ -40,18 +151,32 @@ Force clean install per package:
40
151
  nx-npm-tools publishStation --pro --forceInstall --access public --bump patch
41
152
  ```
42
153
 
43
- Publish one repo/package:
154
+ ### publishOne (publish single package)
44
155
 
45
156
  ```bash
46
157
  nx-npm-tools publishOne --cwd . --access public --bump patch
47
158
  ```
48
159
 
49
- Git sync:
160
+ ### gitSync (git add + commit + push)
50
161
 
51
162
  ```bash
52
163
  nx-npm-tools gitSync --message "publishing"
53
164
  ```
54
165
 
166
+ ### archiveExcluded (move excluded packages to archive)
167
+
168
+ ```bash
169
+ # Preview what would be moved
170
+ nx-npm-tools archiveExcluded --pro --dry-run
171
+
172
+ # Actually move packages to archive folder
173
+ nx-npm-tools archiveExcluded --pro
174
+ ```
175
+
176
+ The archive folder will be created at the same level as the prometheus folder (e.g., if prometheus is at `/path/to/prometheus`, archive will be at `/path/to/archive`).
177
+
178
+ ---
179
+
55
180
  ## Excluding packages
56
181
 
57
182
  Exclude old/legacy packages from station operations:
@@ -0,0 +1,88 @@
1
+ import { Command } from "commander";
2
+ import path from "node:path";
3
+ import fs from "node:fs";
4
+ import { resolveStationRoot } from "../utils/path.js";
5
+ import { discoverStationInventory } from "../station/discover.js";
6
+ import { loadStationConfig } from "../utils/config.js";
7
+ import { shouldExcludePackage } from "../utils/config.js";
8
+ export function archiveExcludedCommand() {
9
+ return new Command("archiveExcluded")
10
+ .description("Move excluded packages to archive folder (sibling of prometheus root)")
11
+ .option("--path <folder>", "Explicit station root folder (overrides prometheus mode)")
12
+ .option("--prometheus", "Use prometheus mode")
13
+ .option("--pro", "Alias of --prometheus")
14
+ .option("--prometheus-name <folder>", "Prometheus folder name", "prometheus")
15
+ .option("--max-up <n>", "Max parent hops", (v) => Number(v), 120)
16
+ .option("--archive-name <folder>", "Archive folder name", "archive")
17
+ .option("--dry-run", "Show what would be moved without actually moving", false)
18
+ .action(async (opts) => {
19
+ const stationRoot = resolveStationRoot({
20
+ path: opts.path,
21
+ prometheus: opts.prometheus,
22
+ pro: opts.pro,
23
+ prometheusName: opts.prometheusName,
24
+ maxUp: opts.maxUp
25
+ });
26
+ const config = await loadStationConfig(stationRoot);
27
+ // Discover ALL packages (without exclusions) to find what should be archived
28
+ const inv = await discoverStationInventory(stationRoot, [], true);
29
+ // Find excluded packages
30
+ const excluded = [];
31
+ for (const pkg of inv.packages) {
32
+ if (shouldExcludePackage(pkg, stationRoot, config)) {
33
+ excluded.push(pkg);
34
+ }
35
+ }
36
+ if (excluded.length === 0) {
37
+ console.log("No excluded packages found.");
38
+ return;
39
+ }
40
+ // Archive folder is sibling of prometheus root
41
+ const prometheusParent = path.dirname(stationRoot);
42
+ const archiveRoot = path.join(prometheusParent, opts.archiveName || "archive");
43
+ console.log(`Station root: ${stationRoot}`);
44
+ console.log(`Archive root: ${archiveRoot}`);
45
+ console.log(`\nFound ${excluded.length} excluded package(s) to archive:\n`);
46
+ for (const pkg of excluded) {
47
+ console.log(`- ${pkg.name} @ ${pkg.version}`);
48
+ console.log(` From: ${pkg.cwd}`);
49
+ console.log(` To: ${path.join(archiveRoot, path.basename(pkg.cwd))}`);
50
+ }
51
+ if (opts.dryRun) {
52
+ console.log("\n[DRY RUN] Would move packages to archive folder.");
53
+ return;
54
+ }
55
+ // Create archive folder if it doesn't exist
56
+ if (!fs.existsSync(archiveRoot)) {
57
+ fs.mkdirSync(archiveRoot, { recursive: true });
58
+ console.log(`\nCreated archive folder: ${archiveRoot}`);
59
+ }
60
+ // Move packages
61
+ let moved = 0;
62
+ let failed = 0;
63
+ for (const pkg of excluded) {
64
+ const source = pkg.cwd;
65
+ const dest = path.join(archiveRoot, path.basename(pkg.cwd));
66
+ try {
67
+ if (fs.existsSync(dest)) {
68
+ console.log(`⚠️ Skipping ${pkg.name}: destination already exists: ${dest}`);
69
+ failed++;
70
+ continue;
71
+ }
72
+ fs.renameSync(source, dest);
73
+ console.log(`✅ Moved: ${pkg.name} -> ${dest}`);
74
+ moved++;
75
+ }
76
+ catch (error) {
77
+ console.log(`❌ Failed to move ${pkg.name}: ${error?.message ?? String(error)}`);
78
+ failed++;
79
+ }
80
+ }
81
+ console.log(`\nSummary: Moved=${moved}, Failed=${failed}`);
82
+ if (moved > 0) {
83
+ console.log(`\n💡 Packages moved to: ${archiveRoot}`);
84
+ console.log(`💡 Update .nx-npm-tools.json if needed to reflect new paths.`);
85
+ }
86
+ });
87
+ }
88
+ //# sourceMappingURL=archiveExcluded.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archiveExcluded.js","sourceRoot":"","sources":["../../src/commands/archiveExcluded.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { Command } from "commander";
2
+ import path from "node:path";
3
+ import { resolveStationRoot } from "../utils/path.js";
4
+ import { discoverStationInventory } from "../station/discover.js";
5
+ import { buildStationGraph } from "../station/graph.js";
6
+ import { exists, readJson, writeJson } from "../utils/fs.js";
7
+ export function excludePackagesCommand() {
8
+ return new Command("excludePackages")
9
+ .description("Add packages to exclusion list by numbers from preview output")
10
+ .option("--path <folder>", "Explicit station root folder (overrides prometheus mode)")
11
+ .option("--prometheus", "Use prometheus mode")
12
+ .option("--pro", "Alias of --prometheus")
13
+ .option("--prometheus-name <folder>", "Prometheus folder name", "prometheus")
14
+ .option("--max-up <n>", "Max parent hops", (v) => Number(v), 120)
15
+ .option("--numbers <list>", "Comma-separated package numbers to exclude (e.g., '1,2,3,5,8')", "")
16
+ .option("--preview-file <file>", "Read package numbers from preview file", "")
17
+ .option("--remove", "Remove packages instead of adding", false)
18
+ .action(async (opts) => {
19
+ const stationRoot = resolveStationRoot({
20
+ path: opts.path,
21
+ prometheus: opts.prometheus,
22
+ pro: opts.pro,
23
+ prometheusName: opts.prometheusName,
24
+ maxUp: opts.maxUp
25
+ });
26
+ let packagesToExclude = [];
27
+ let numbers = [];
28
+ // Parse numbers
29
+ if (opts.numbers) {
30
+ numbers = String(opts.numbers)
31
+ .split(",")
32
+ .map(s => parseInt(s.trim()))
33
+ .filter(n => !isNaN(n) && n > 0);
34
+ }
35
+ // If preview file provided, read package names from it
36
+ if (opts.previewFile) {
37
+ const previewPath = path.resolve(opts.previewFile);
38
+ if (!exists(previewPath)) {
39
+ console.error(`Preview file not found: ${previewPath}`);
40
+ process.exit(1);
41
+ }
42
+ const { readText } = await import("../utils/fs.js");
43
+ const content = readText(previewPath);
44
+ const lines = content.split("\n");
45
+ const filePackagesMap = new Map();
46
+ for (const line of lines) {
47
+ // Match: " 1. package-name @ version" or " 1. @scope/package-name @ version"
48
+ // Examples: " 1. micro-logs @ 1.0.0" or " 2. @nx-intelligence/xronox-config @ 1.1.1 ⚠️ EXCLUDED"
49
+ // Pattern: number, dot, space, then package name (everything until " @ " or " ⚠️")
50
+ const match = line.match(/^\s*(\d+)\.\s+(.+?)(?:\s+@\s+|⚠️|$)/);
51
+ if (match) {
52
+ const pkgName = match[2].trim();
53
+ if (pkgName && !pkgName.includes("Path:") && pkgName.length > 0) {
54
+ filePackagesMap.set(parseInt(match[1]), pkgName);
55
+ }
56
+ }
57
+ }
58
+ if (!opts.numbers) {
59
+ // Show list if no numbers provided
60
+ console.log("Packages from preview file:");
61
+ Array.from(filePackagesMap.entries())
62
+ .sort((a, b) => a[0] - b[0])
63
+ .forEach(([num, name]) => {
64
+ console.log(` ${num}. ${name}`);
65
+ });
66
+ console.log(`\nTotal: ${filePackagesMap.size} packages`);
67
+ console.log("\nUse --numbers '1,2,3' to specify which to exclude");
68
+ return;
69
+ }
70
+ // Get package names from file using numbers
71
+ packagesToExclude = numbers
72
+ .map(n => filePackagesMap.get(n))
73
+ .filter((name) => Boolean(name));
74
+ if (packagesToExclude.length === 0) {
75
+ console.error("No valid packages found for the provided numbers in preview file");
76
+ process.exit(1);
77
+ }
78
+ console.log(`Found ${packagesToExclude.length} package(s) from preview file:`);
79
+ packagesToExclude.forEach(pkg => console.log(` - ${pkg}`));
80
+ }
81
+ else {
82
+ // No preview file - use discovered packages
83
+ if (!opts.numbers) {
84
+ console.error("Error: Provide either --numbers or --preview-file");
85
+ process.exit(1);
86
+ }
87
+ // Get all packages in publish order (without exclusions)
88
+ const inv = await discoverStationInventory(stationRoot, [], true);
89
+ const graph = buildStationGraph(inv);
90
+ // Filter to publishable, non-private packages
91
+ let names = graph.topo;
92
+ names = names.filter(n => !(graph.nodes.get(n)?.private));
93
+ const publishables = names
94
+ .map(n => graph.nodes.get(n))
95
+ .filter(p => p.publishable)
96
+ .sort((a, b) => {
97
+ const aIdx = graph.topo.indexOf(a.name);
98
+ const bIdx = graph.topo.indexOf(b.name);
99
+ return aIdx - bIdx;
100
+ });
101
+ // Get package names from numbers
102
+ packagesToExclude = numbers
103
+ .map(n => publishables[n - 1])
104
+ .filter(Boolean)
105
+ .map(p => p.name);
106
+ if (packagesToExclude.length === 0) {
107
+ console.error("No valid packages found for the provided numbers");
108
+ process.exit(1);
109
+ }
110
+ }
111
+ // Load existing config
112
+ const configPath = path.join(stationRoot, ".nx-npm-tools.json");
113
+ let config = { exclude: { packages: [], paths: [] } };
114
+ if (exists(configPath)) {
115
+ try {
116
+ config = readJson(configPath);
117
+ }
118
+ catch {
119
+ // Use defaults
120
+ }
121
+ }
122
+ // Ensure exclude structure exists
123
+ if (!config.exclude)
124
+ config.exclude = { packages: [], paths: [] };
125
+ if (!config.exclude.packages)
126
+ config.exclude.packages = [];
127
+ if (!config.exclude.paths)
128
+ config.exclude.paths = [];
129
+ // Add or remove packages
130
+ const currentExcludes = new Set(config.exclude.packages);
131
+ if (opts.remove) {
132
+ packagesToExclude.forEach(pkg => currentExcludes.delete(pkg));
133
+ console.log(`\nRemoved ${packagesToExclude.length} package(s) from exclusion list`);
134
+ }
135
+ else {
136
+ packagesToExclude.forEach(pkg => currentExcludes.add(pkg));
137
+ console.log(`\nAdded ${packagesToExclude.length} package(s) to exclusion list`);
138
+ }
139
+ config.exclude.packages = Array.from(currentExcludes).sort();
140
+ // Write config
141
+ writeJson(configPath, config);
142
+ console.log(`Updated: ${configPath}`);
143
+ console.log(`Total excluded packages: ${config.exclude.packages.length}`);
144
+ if (config.exclude.packages.length > 0) {
145
+ console.log(`\nExcluded packages:`);
146
+ config.exclude.packages.forEach(pkg => console.log(` - ${pkg}`));
147
+ }
148
+ });
149
+ }
150
+ //# sourceMappingURL=excludePackages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excludePackages.js","sourceRoot":"","sources":["../../src/commands/excludePackages.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Command } from "commander";
2
+ import path from "node:path";
2
3
  import { resolveStationRoot } from "../utils/path.js";
3
4
  import { discoverStationInventory } from "../station/discover.js";
4
5
  import { buildStationGraph } from "../station/graph.js";
@@ -27,6 +28,8 @@ export function publishStationCommand() {
27
28
  .option("--include-private", "Include packages marked private=true (NOT recommended)", false)
28
29
  .option("--only <names>", "Comma-separated package names to publish (still ordered)", "")
29
30
  .option("--exclude <names>", "Comma-separated package names to exclude", "")
31
+ .option("--preview", "Preview mode: show what would be published and exit (no execution)", false)
32
+ .option("--preview-file <file>", "Write preview to file (for use with excludePackages command)", "")
30
33
  .option("--dry-run", "Don't execute commands", false)
31
34
  .action(async (opts) => {
32
35
  const stationRoot = resolveStationRoot({
@@ -63,6 +66,94 @@ export function publishStationCommand() {
63
66
  const publishables = names
64
67
  .map(n => graph.nodes.get(n))
65
68
  .filter(p => p.publishable);
69
+ // Preview mode: show detailed plan and exit
70
+ if (opts.preview || opts.dryRun) {
71
+ console.log(`\n📋 PUBLISH PLAN (${publishables.length} packages)\n`);
72
+ console.log("=".repeat(80));
73
+ console.log(`Station root: ${stationRoot}`);
74
+ console.log(`Bump type: ${opts.bump}`);
75
+ console.log(`Access: ${opts.access}`);
76
+ if (opts.tag)
77
+ console.log(`Tag: ${opts.tag}`);
78
+ console.log(`Mode: ${opts.collaborative ? "collaborative" : "solo"}`);
79
+ console.log("=".repeat(80));
80
+ console.log("\n📦 Packages to publish (in dependency order):\n");
81
+ publishables.forEach((p, idx) => {
82
+ const deps = [...(graph.edges.get(p.name) ?? [])].filter(d => publishables.some(pub => pub.name === d));
83
+ console.log(`${(idx + 1).toString().padStart(3)}. ${p.name} @ ${p.version}`);
84
+ console.log(` Path: ${p.cwd}`);
85
+ if (deps.length > 0) {
86
+ console.log(` Depends on: ${deps.join(", ")}`);
87
+ }
88
+ if (p.private)
89
+ console.log(` ⚠️ WARNING: Package is marked private!`);
90
+ console.log("");
91
+ });
92
+ console.log("=".repeat(80));
93
+ console.log("\n💡 To exclude packages by number: nx-npm-tools excludePackages --numbers '1,2,3'");
94
+ console.log("💡 To publish, run without --preview or --dry-run");
95
+ console.log("\n");
96
+ // Write to file if requested - show ALL packages (before exclusions) for stable numbering
97
+ if (opts.previewFile) {
98
+ const { writeText } = await import("../utils/fs.js");
99
+ const previewPath = path.resolve(opts.previewFile);
100
+ // Get ALL packages (without exclusions) for the file
101
+ const allInv = await discoverStationInventory(stationRoot, [], true);
102
+ const allGraph = buildStationGraph(allInv);
103
+ let allNames = allGraph.topo;
104
+ allNames = allNames.filter(n => !(allGraph.nodes.get(n)?.private));
105
+ const allPublishables = allNames
106
+ .map(n => allGraph.nodes.get(n))
107
+ .filter(p => p.publishable);
108
+ const previewContent = [
109
+ `# Publish Preview`,
110
+ `Station root: ${stationRoot}`,
111
+ `Bump type: ${opts.bump}`,
112
+ `Access: ${opts.access}`,
113
+ `Mode: ${opts.collaborative ? "collaborative" : "solo"}`,
114
+ ``,
115
+ `## All packages (${allPublishables.length} total, ${publishables.length} will be published after exclusions)`,
116
+ ``,
117
+ ...allPublishables.map((p, idx) => {
118
+ const deps = [...(allGraph.edges.get(p.name) ?? [])].filter(d => allPublishables.some(pub => pub.name === d));
119
+ const isExcluded = !publishables.some(pub => pub.name === p.name);
120
+ let line = `${(idx + 1).toString().padStart(3)}. ${p.name} @ ${p.version}`;
121
+ if (isExcluded) {
122
+ line += ` ⚠️ EXCLUDED`;
123
+ }
124
+ if (deps.length > 0) {
125
+ line += ` (depends on: ${deps.join(", ")})`;
126
+ }
127
+ line += `\n Path: ${p.cwd}`;
128
+ return line;
129
+ }),
130
+ ``,
131
+ `## Usage`,
132
+ ``,
133
+ `To exclude packages by number:`,
134
+ ` nx-npm-tools excludePackages --pro --numbers '1,2,3,5,8'`,
135
+ ``,
136
+ `To remove packages from exclusion list:`,
137
+ ` nx-npm-tools excludePackages --pro --numbers '1,2' --remove`
138
+ ].join("\n");
139
+ writeText(previewPath, previewContent);
140
+ console.log(`\n📄 Preview written to: ${previewPath}`);
141
+ console.log(` (Shows all ${allPublishables.length} packages with numbers for exclusion)`);
142
+ }
143
+ if (opts.preview) {
144
+ // In preview mode, also show excluded packages for reference
145
+ const allPackages = inv.packages.filter(p => !p.private && p.publishable);
146
+ const excluded = allPackages.filter(p => !publishables.some(pub => pub.name === p.name));
147
+ if (excluded.length > 0) {
148
+ console.log(`\n📝 Excluded packages (${excluded.length}):`);
149
+ excluded.forEach(p => {
150
+ console.log(` - ${p.name} @ ${p.version} (${p.cwd})`);
151
+ });
152
+ console.log("");
153
+ }
154
+ }
155
+ return; // Exit without publishing
156
+ }
66
157
  console.log(`Publish order (${publishables.length}):`);
67
158
  for (const p of publishables)
68
159
  console.log(`- ${p.name} @ ${p.version} (${p.cwd})`);
@@ -1 +1 @@
1
- {"version":3,"file":"publishStation.js","sourceRoot":"","sources":["../../src/commands/publishStation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publishStation.js","sourceRoot":"","sources":["../../src/commands/publishStation.ts"],"names":[],"mappings":"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"}
@@ -27,11 +27,50 @@ export function reportStationCommand() {
27
27
  : undefined;
28
28
  const inv = await discoverStationInventory(stationRoot, excludePackages);
29
29
  const graph = buildStationGraph(inv);
30
+ // Find packages that are orphaned (not used by any other package in station)
31
+ const orphanedPackages = new Set();
32
+ for (const p of inv.packages) {
33
+ const dependents = graph.reverseEdges.get(p.name) ?? new Set();
34
+ if (dependents.size === 0) {
35
+ orphanedPackages.add(p.name);
36
+ }
37
+ }
38
+ // Find packages with external private dependencies
39
+ const packagesWithExternalPrivateDeps = new Map();
40
+ for (const [pkgName, deps] of graph.externalPrivateDeps) {
41
+ packagesWithExternalPrivateDeps.set(pkgName, deps);
42
+ }
43
+ // Find packages that are BOTH orphaned AND have external private deps (recommended to move)
44
+ const recommendedToMove = new Set();
45
+ for (const pkgName of orphanedPackages) {
46
+ if (packagesWithExternalPrivateDeps.has(pkgName)) {
47
+ recommendedToMove.add(pkgName);
48
+ }
49
+ }
30
50
  const lines = [];
31
51
  lines.push(`# Station Report`);
32
52
  lines.push(`- Station root: \`${stationRoot}\``);
33
53
  lines.push(`- Packages discovered: **${inv.packages.length}**`);
54
+ lines.push(`- Orphaned packages (not used by others): **${orphanedPackages.size}**`);
55
+ lines.push(`- Packages with external private deps: **${packagesWithExternalPrivateDeps.size}**`);
56
+ lines.push(`- ⚠️ Recommended to move: **${recommendedToMove.size}**`);
34
57
  lines.push("");
58
+ // Show recommended moves first (most important)
59
+ if (recommendedToMove.size > 0) {
60
+ lines.push(`## ⚠️ Recommended to Move (Orphaned + External Private Deps)`);
61
+ lines.push("");
62
+ lines.push(`These packages are **not used by any other package in this station** and have **external private dependencies**.`);
63
+ lines.push(`Consider moving them to a different station or archiving them.`);
64
+ lines.push("");
65
+ for (const pkgName of recommendedToMove) {
66
+ const p = graph.nodes.get(pkgName);
67
+ const extPrivateDeps = packagesWithExternalPrivateDeps.get(pkgName);
68
+ lines.push(`- \`${pkgName}\` @ \`${p.version}\``);
69
+ lines.push(` - Path: \`${p.cwd}\``);
70
+ lines.push(` - External private deps: ${Array.from(extPrivateDeps).map(d => `\`${d}\``).join(", ")}`);
71
+ lines.push("");
72
+ }
73
+ }
35
74
  if (graph.issues.length) {
36
75
  lines.push(`## Issues`);
37
76
  for (const i of graph.issues) {
@@ -48,16 +87,69 @@ export function reportStationCommand() {
48
87
  lines.push(`- ${p.private ? "🔒" : "📦"} \`${p.name}\` @ \`${p.version}\`${p.publishable ? "" : " (not publishable?)"} — \`${p.cwd}\``);
49
88
  }
50
89
  lines.push("");
51
- lines.push(`## Packages`);
52
- lines.push(`| Package | Version | Private | Publishable | Repo | Path | Local deps |`);
90
+ // Show packages with external private deps (but not orphaned)
91
+ const packagesWithExtPrivateOnly = new Set();
92
+ for (const [pkgName] of packagesWithExternalPrivateDeps) {
93
+ if (!orphanedPackages.has(pkgName)) {
94
+ packagesWithExtPrivateOnly.add(pkgName);
95
+ }
96
+ }
97
+ if (packagesWithExtPrivateOnly.size > 0) {
98
+ lines.push(`## Packages with External Private Dependencies`);
99
+ lines.push("");
100
+ lines.push(`These packages depend on private packages that are not in this station.`);
101
+ lines.push("");
102
+ for (const pkgName of packagesWithExtPrivateOnly) {
103
+ const p = graph.nodes.get(pkgName);
104
+ const extPrivateDeps = packagesWithExternalPrivateDeps.get(pkgName);
105
+ const dependents = graph.reverseEdges.get(pkgName) ?? new Set();
106
+ lines.push(`- \`${pkgName}\` @ \`${p.version}\``);
107
+ lines.push(` - Used by: ${dependents.size > 0 ? Array.from(dependents).map(d => `\`${d}\``).join(", ") : "none"}`);
108
+ lines.push(` - External private deps: ${Array.from(extPrivateDeps).map(d => `\`${d}\``).join(", ")}`);
109
+ lines.push("");
110
+ }
111
+ }
112
+ // Show orphaned packages (but not those with external private deps - already shown above)
113
+ const orphanedOnly = new Set();
114
+ for (const pkgName of orphanedPackages) {
115
+ if (!packagesWithExternalPrivateDeps.has(pkgName)) {
116
+ orphanedOnly.add(pkgName);
117
+ }
118
+ }
119
+ if (orphanedOnly.size > 0) {
120
+ lines.push(`## Orphaned Packages (Not Used by Others)`);
121
+ lines.push("");
122
+ lines.push(`These packages are not used by any other package in this station.`);
123
+ lines.push("");
124
+ for (const pkgName of orphanedOnly) {
125
+ const p = graph.nodes.get(pkgName);
126
+ lines.push(`- \`${pkgName}\` @ \`${p.version}\` — \`${p.cwd}\``);
127
+ }
128
+ lines.push("");
129
+ }
130
+ lines.push(`## All Packages`);
131
+ lines.push(`| Package | Version | Private | Publishable | Local deps | Used by | External private deps |`);
53
132
  lines.push(`|---|---:|:---:|:---:|---|---|---|`);
54
133
  for (const p of inv.packages) {
55
134
  const localDeps = [...(graph.edges.get(p.name) ?? [])].sort().join(", ");
56
- lines.push(`| \`${p.name}\` | \`${p.version}\` | ${p.private ? "yes" : "no"} | ${p.publishable ? "yes" : "no"} | \`${p.repoRoot}\` | \`${p.cwd}\` | ${localDeps ? localDeps : ""} |`);
135
+ const dependents = [...(graph.reverseEdges.get(p.name) ?? [])].sort();
136
+ const usedBy = dependents.length > 0 ? dependents.join(", ") : "";
137
+ const extPrivateDeps = graph.externalPrivateDeps.get(p.name);
138
+ const extPrivateStr = extPrivateDeps ? Array.from(extPrivateDeps).join(", ") : "";
139
+ let row = `| \`${p.name}\` | \`${p.version}\` | ${p.private ? "yes" : "no"} | ${p.publishable ? "yes" : "no"} | ${localDeps || ""} | ${usedBy || ""} | ${extPrivateStr || ""} |`;
140
+ // Mark recommended to move
141
+ if (recommendedToMove.has(p.name)) {
142
+ row = row.replace(`| \`${p.name}\``, `| ⚠️ \`${p.name}\``);
143
+ }
144
+ lines.push(row);
57
145
  }
58
146
  lines.push("");
59
147
  lines.push(`## Notes`);
60
- lines.push(`- Local deps are inferred from dependencies/devDependencies/peerDependencies/optionalDependencies that match other discovered package names.`);
148
+ lines.push(`- **Local deps**: Dependencies that match other discovered package names in this station.`);
149
+ lines.push(`- **Used by**: Other packages in this station that depend on this package.`);
150
+ lines.push(`- **External private deps**: Dependencies on packages not in this station (likely private/scoped packages).`);
151
+ lines.push(`- **Orphaned**: Packages not used by any other package in this station.`);
152
+ lines.push(`- **⚠️ Recommended to move**: Packages that are both orphaned AND have external private deps.`);
61
153
  lines.push(`- Publish order is a topological sort (dependencies first). Cycles are reported and then appended in stable order.`);
62
154
  lines.push("");
63
155
  const out = lines.join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"reportStation.js","sourceRoot":"","sources":["../../src/commands/reportStation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reportStation.js","sourceRoot":"","sources":["../../src/commands/reportStation.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ import { gitSyncCommand } from "./commands/gitSync.js";
5
5
  import { publishOneCommand } from "./commands/publishOne.js";
6
6
  import { publishStationCommand } from "./commands/publishStation.js";
7
7
  import { reportStationCommand } from "./commands/reportStation.js";
8
+ import { archiveExcludedCommand } from "./commands/archiveExcluded.js";
9
+ import { excludePackagesCommand } from "./commands/excludePackages.js";
8
10
  const program = new Command();
9
11
  program
10
12
  .name("nx-npm-tools")
@@ -15,5 +17,7 @@ program.addCommand(gitSyncCommand());
15
17
  program.addCommand(publishOneCommand());
16
18
  program.addCommand(publishStationCommand());
17
19
  program.addCommand(reportStationCommand());
20
+ program.addCommand(archiveExcludedCommand());
21
+ program.addCommand(excludePackagesCommand());
18
22
  program.parse(process.argv);
19
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,4EAA4E,CAAC;KACzF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAE3C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,cAAc,CAAC;KACpB,WAAW,CAAC,4EAA4E,CAAC;KACzF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAC5C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC7C,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAE7C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -75,8 +75,8 @@ async function discoverWorkspacePackages(repoRoot) {
75
75
  });
76
76
  return matches.map(m => path.join(repoRoot, m));
77
77
  }
78
- export async function discoverStationInventory(stationRoot, excludePackages) {
79
- const config = await loadStationConfig(stationRoot);
78
+ export async function discoverStationInventory(stationRoot, excludePackages, skipExclusions) {
79
+ const config = skipExclusions ? {} : await loadStationConfig(stationRoot);
80
80
  const repoRoots = await findGitRepoRoots(stationRoot);
81
81
  const packageJsonPaths = [];
82
82
  for (const repoRoot of repoRoots) {
@@ -94,8 +94,8 @@ export async function discoverStationInventory(stationRoot, excludePackages) {
94
94
  const pkg = readJson(pkgPath);
95
95
  if (!pkg.name || !pkg.version)
96
96
  continue;
97
- // Check exclusions
98
- if (shouldExcludePackage({ name: pkg.name, cwd }, stationRoot, config, excludePackages)) {
97
+ // Check exclusions (unless skipped)
98
+ if (!skipExclusions && shouldExcludePackage({ name: pkg.name, cwd }, stationRoot, config, excludePackages)) {
99
99
  continue;
100
100
  }
101
101
  // repoRoot = nearest ancestor containing .git (we already enumerated repo roots, so match by prefix)
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/station/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/station/discover.ts"],"names":[],"mappings":"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"}
@@ -10,22 +10,47 @@ export function buildStationGraph(inv) {
10
10
  const nodes = new Map();
11
11
  for (const p of inv.packages)
12
12
  nodes.set(p.name, p);
13
- const edges = new Map();
13
+ const edges = new Map(); // package -> local deps
14
+ const reverseEdges = new Map(); // package -> packages that depend on it
15
+ const externalPrivateDeps = new Map(); // package -> external private deps
14
16
  const issues = [];
17
+ // Initialize reverse edges
18
+ for (const p of inv.packages) {
19
+ reverseEdges.set(p.name, new Set());
20
+ }
15
21
  for (const p of inv.packages) {
16
22
  const deps = collectAllDeps(p);
17
23
  const local = new Set();
24
+ const externalPrivate = new Set();
18
25
  for (const depName of Object.keys(deps)) {
19
- if (nodes.has(depName))
26
+ if (nodes.has(depName)) {
20
27
  local.add(depName);
28
+ // Track reverse dependency
29
+ const rev = reverseEdges.get(depName) ?? new Set();
30
+ rev.add(p.name);
31
+ reverseEdges.set(depName, rev);
32
+ }
33
+ else {
34
+ // Check if it's a potential private package (scoped packages that aren't in station)
35
+ // Exclude well-known public scopes
36
+ const wellKnownPublicScopes = [
37
+ "@types/", "@vitest/", "@openai/", "@anthropic-ai/", "@google/",
38
+ "@octokit/", "@typescript-eslint/", "@eslint/", "@babel/", "@rollup/",
39
+ "@jest/", "@testing-library/", "@storybook/", "@angular/", "@vue/",
40
+ "@react/", "@next/", "@nuxt/", "@svelte/", "@remix-run/"
41
+ ];
42
+ const isWellKnownPublic = wellKnownPublicScopes.some(scope => depName.startsWith(scope));
43
+ // Flag scoped packages that aren't well-known public scopes
44
+ // These are likely private packages or custom scoped packages
45
+ if (depName.includes("/") && !isWellKnownPublic) {
46
+ externalPrivate.add(depName);
47
+ }
48
+ }
21
49
  }
22
50
  edges.set(p.name, local);
23
- // (optional) if you want to warn about @scope/* deps not found locally:
24
- // for (const depName of Object.keys(deps)) {
25
- // if (depName.startsWith("@athenices/") && !nodes.has(depName)) {
26
- // issues.push({ type: "missingLocalDep", package: p.name, missing: depName });
27
- // }
28
- // }
51
+ if (externalPrivate.size > 0) {
52
+ externalPrivateDeps.set(p.name, externalPrivate);
53
+ }
29
54
  }
30
55
  // Toposort (Kahn)
31
56
  const indeg = new Map();
@@ -62,6 +87,6 @@ export function buildStationGraph(inv) {
62
87
  // Current topo puts zero-indeg first (packages that nothing depends on), which is reverse for publishing.
63
88
  // So reverse it.
64
89
  topo.reverse();
65
- return { nodes, edges, topo, issues };
90
+ return { nodes, edges, reverseEdges, externalPrivateDeps, topo, issues };
66
91
  }
67
92
  //# sourceMappingURL=graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/station/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/station/graph.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx-npm-tools",
3
- "version": "0.2.3",
3
+ "version": "1.0.1",
4
4
  "description": "CLI helpers for Renovate setup, station scanning, dependency graph, git sync, and ordered npm publishing.",
5
5
  "license": "MIT",
6
6
  "type": "module",