nx-npm-tools 0.2.3 → 1.0.0
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 +127 -2
- package/dist/commands/archiveExcluded.js +88 -0
- package/dist/commands/archiveExcluded.js.map +1 -0
- package/dist/commands/excludePackages.js +150 -0
- package/dist/commands/excludePackages.js.map +1 -0
- package/dist/commands/publishStation.js +91 -0
- package/dist/commands/publishStation.js.map +1 -1
- package/dist/commands/reportStation.js +96 -4
- package/dist/commands/reportStation.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/station/discover.js +4 -4
- package/dist/station/discover.js.map +1 -1
- package/dist/station/graph.js +34 -9
- package/dist/station/graph.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
-
|
|
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
|
-
|
|
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
|
|
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;
|
|
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"}
|
package/dist/station/discover.js
CHANGED
|
@@ -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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"}
|
package/dist/station/graph.js
CHANGED
|
@@ -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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/station/graph.ts"],"names":[],"mappings":"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"}
|