nx-npm-tools 0.2.1 → 0.2.3
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 +31 -0
- package/dist/commands/gitSync.js +7 -5
- package/dist/commands/gitSync.js.map +1 -1
- package/dist/commands/publishOne.js +6 -4
- package/dist/commands/publishOne.js.map +1 -1
- package/dist/commands/publishStation.js +11 -5
- package/dist/commands/publishStation.js.map +1 -1
- package/dist/commands/reportStation.js +5 -1
- package/dist/commands/reportStation.js.map +1 -1
- package/dist/commands/runOnce.js +10 -2
- package/dist/commands/runOnce.js.map +1 -1
- package/dist/station/discover.js +10 -2
- package/dist/station/discover.js.map +1 -1
- package/dist/utils/config.js +43 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/git.js +64 -7
- package/dist/utils/git.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# nx-npm-tools
|
|
2
2
|
|
|
3
3
|
Install globally:
|
|
4
|
+
|
|
4
5
|
```bash
|
|
5
6
|
npm i -g nx-npm-tools
|
|
6
7
|
```
|
|
@@ -50,3 +51,33 @@ Git sync:
|
|
|
50
51
|
```bash
|
|
51
52
|
nx-npm-tools gitSync --message "publishing"
|
|
52
53
|
```
|
|
54
|
+
|
|
55
|
+
## Excluding packages
|
|
56
|
+
|
|
57
|
+
Exclude old/legacy packages from station operations:
|
|
58
|
+
|
|
59
|
+
**Option 1: Config file** (recommended)
|
|
60
|
+
|
|
61
|
+
Create `.nx-npm-tools.json` in your station root:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"exclude": {
|
|
66
|
+
"packages": [
|
|
67
|
+
"@scope/old-package",
|
|
68
|
+
"legacy-package"
|
|
69
|
+
],
|
|
70
|
+
"paths": [
|
|
71
|
+
"old-folder/**",
|
|
72
|
+
"deprecated/*"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Option 2: Command-line**
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
nx-npm-tools reportStation --pro --exclude "old-pkg,legacy-pkg"
|
|
82
|
+
nx-npm-tools publishStation --pro --exclude "old-pkg,legacy-pkg"
|
|
83
|
+
```
|
package/dist/commands/gitSync.js
CHANGED
|
@@ -3,22 +3,24 @@ import path from "node:path";
|
|
|
3
3
|
import { gitAddCommitPush } from "../utils/git.js";
|
|
4
4
|
export function gitSyncCommand() {
|
|
5
5
|
return new Command("gitSync")
|
|
6
|
-
.description("git add . + git commit + git push (
|
|
6
|
+
.description("git add . + git commit + git push (solo mode: auto-upstream + safe force; collaborative: safer)")
|
|
7
7
|
.option("--cwd <path>", "Repo folder (default: current dir)", process.cwd())
|
|
8
8
|
.option("--message <msg>", "Commit message", "publishing")
|
|
9
9
|
.option("--no-push", "Don't push")
|
|
10
10
|
.option("--remote <name>", "Remote name", "origin")
|
|
11
|
-
.option("--branch <name>", "Branch name (
|
|
12
|
-
.option("--
|
|
13
|
-
.option("--
|
|
11
|
+
.option("--branch <name>", "Branch name (auto-detected if not provided)")
|
|
12
|
+
.option("--solo", "Solo mode: auto-setup upstream, allow force-with-lease (default)", true)
|
|
13
|
+
.option("--collaborative", "Collaborative mode: safer, no force push")
|
|
14
|
+
.option("--force-upstream", "Push with --force-with-lease (solo mode only)")
|
|
14
15
|
.action(async (opts) => {
|
|
15
16
|
const cwd = path.resolve(opts.cwd);
|
|
17
|
+
const soloMode = !opts.collaborative; // default to solo
|
|
16
18
|
await gitAddCommitPush(cwd, {
|
|
17
19
|
message: opts.message,
|
|
18
20
|
push: Boolean(opts.push),
|
|
19
21
|
remote: opts.remote,
|
|
20
22
|
branch: opts.branch,
|
|
21
|
-
|
|
23
|
+
soloMode,
|
|
22
24
|
forceWithLease: Boolean(opts.forceUpstream)
|
|
23
25
|
});
|
|
24
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitSync.js","sourceRoot":"","sources":["../../src/commands/gitSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;SAC1B,WAAW,CAAC
|
|
1
|
+
{"version":3,"file":"gitSync.js","sourceRoot":"","sources":["../../src/commands/gitSync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;SAC1B,WAAW,CAAC,iGAAiG,CAAC;SAC9G,MAAM,CAAC,cAAc,EAAE,oCAAoC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAC3E,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,YAAY,CAAC;SACzD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;SACjC,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;SACxE,MAAM,CAAC,QAAQ,EAAE,kEAAkE,EAAE,IAAI,CAAC;SAC1F,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,kBAAkB;QAExD,MAAM,gBAAgB,CAAC,GAAG,EAAE;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -9,9 +9,10 @@ export function publishOneCommand() {
|
|
|
9
9
|
.option("--forceInstall", "Force reinstall (rm node_modules + lock + cache clean)")
|
|
10
10
|
.option("--no-push", "Don't push")
|
|
11
11
|
.option("--remote <name>", "Remote name", "origin")
|
|
12
|
-
.option("--branch <name>", "Branch name (
|
|
13
|
-
.option("--
|
|
14
|
-
.option("--
|
|
12
|
+
.option("--branch <name>", "Branch name (auto-detected if not provided)")
|
|
13
|
+
.option("--solo", "Solo mode: auto-setup upstream, allow force-with-lease (default)", true)
|
|
14
|
+
.option("--collaborative", "Collaborative mode: safer, no force push")
|
|
15
|
+
.option("--force-upstream", "Push with --force-with-lease (solo mode only)")
|
|
15
16
|
.option("--build-script <name>", "Build script name", "build")
|
|
16
17
|
.option("--dist-check <path>", "File to verify after build", "dist/index.js")
|
|
17
18
|
.option("--bump <type>", "npm version bump (patch|minor|major|none)", "patch")
|
|
@@ -20,13 +21,14 @@ export function publishOneCommand() {
|
|
|
20
21
|
.option("--dry-run", "Don't execute commands", false)
|
|
21
22
|
.action(async (opts) => {
|
|
22
23
|
const cwd = path.resolve(opts.cwd);
|
|
24
|
+
const soloMode = !opts.collaborative; // default to solo
|
|
23
25
|
await publishPackageFlow(cwd, {
|
|
24
26
|
message: opts.message,
|
|
25
27
|
forceInstall: Boolean(opts.forceInstall),
|
|
26
28
|
push: Boolean(opts.push),
|
|
27
29
|
remote: opts.remote,
|
|
28
30
|
branch: opts.branch,
|
|
29
|
-
|
|
31
|
+
soloMode,
|
|
30
32
|
forceWithLease: Boolean(opts.forceUpstream),
|
|
31
33
|
buildScript: opts.buildScript,
|
|
32
34
|
distCheck: opts.distCheck,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishOne.js","sourceRoot":"","sources":["../../src/commands/publishOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;SAC7B,WAAW,CAAC,wFAAwF,CAAC;SACrG,MAAM,CAAC,cAAc,EAAE,uCAAuC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAC9E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,CAAC;SAC7D,MAAM,CAAC,gBAAgB,EAAE,wDAAwD,CAAC;SAClF,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;SACjC,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"publishOne.js","sourceRoot":"","sources":["../../src/commands/publishOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;SAC7B,WAAW,CAAC,wFAAwF,CAAC;SACrG,MAAM,CAAC,cAAc,EAAE,uCAAuC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;SAC9E,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,CAAC;SAC7D,MAAM,CAAC,gBAAgB,EAAE,wDAAwD,CAAC;SAClF,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;SACjC,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;SACxE,MAAM,CAAC,QAAQ,EAAE,kEAAkE,EAAE,IAAI,CAAC;SAC1F,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,OAAO,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,eAAe,CAAC;SAC5E,MAAM,CAAC,eAAe,EAAE,2CAA2C,EAAE,OAAO,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,EAAE,QAAQ,CAAC;SAC7E,MAAM,CAAC,cAAc,EAAE,yBAAyB,EAAE,EAAE,CAAC;SACrD,MAAM,CAAC,WAAW,EAAE,wBAAwB,EAAE,KAAK,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,kBAAkB;QAExD,MAAM,kBAAkB,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;YACxC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;YAC3C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;YAC3B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -15,9 +15,10 @@ export function publishStationCommand() {
|
|
|
15
15
|
.option("--forceInstall", "Force reinstall per package")
|
|
16
16
|
.option("--no-push", "Don't push")
|
|
17
17
|
.option("--remote <name>", "Remote name", "origin")
|
|
18
|
-
.option("--branch <name>", "Branch name (
|
|
19
|
-
.option("--
|
|
20
|
-
.option("--
|
|
18
|
+
.option("--branch <name>", "Branch name (auto-detected if not provided)")
|
|
19
|
+
.option("--solo", "Solo mode: auto-setup upstream, allow force-with-lease (default)", true)
|
|
20
|
+
.option("--collaborative", "Collaborative mode: safer, no force push")
|
|
21
|
+
.option("--force-upstream", "Push with --force-with-lease (solo mode only)")
|
|
21
22
|
.option("--build-script <name>", "Build script name", "build")
|
|
22
23
|
.option("--dist-check <path>", "File to verify after build", "dist/index.js")
|
|
23
24
|
.option("--bump <type>", "npm version bump (patch|minor|major|none)", "patch")
|
|
@@ -25,6 +26,7 @@ export function publishStationCommand() {
|
|
|
25
26
|
.option("--tag <name>", "npm dist-tag (optional)", "")
|
|
26
27
|
.option("--include-private", "Include packages marked private=true (NOT recommended)", false)
|
|
27
28
|
.option("--only <names>", "Comma-separated package names to publish (still ordered)", "")
|
|
29
|
+
.option("--exclude <names>", "Comma-separated package names to exclude", "")
|
|
28
30
|
.option("--dry-run", "Don't execute commands", false)
|
|
29
31
|
.action(async (opts) => {
|
|
30
32
|
const stationRoot = resolveStationRoot({
|
|
@@ -35,7 +37,10 @@ export function publishStationCommand() {
|
|
|
35
37
|
maxUp: opts.maxUp
|
|
36
38
|
});
|
|
37
39
|
console.log(`Station root: ${stationRoot}`);
|
|
38
|
-
const
|
|
40
|
+
const excludePackages = opts.exclude
|
|
41
|
+
? String(opts.exclude).split(",").map(s => s.trim()).filter(Boolean)
|
|
42
|
+
: undefined;
|
|
43
|
+
const inv = await discoverStationInventory(stationRoot, excludePackages);
|
|
39
44
|
const graph = buildStationGraph(inv);
|
|
40
45
|
if (graph.issues.length) {
|
|
41
46
|
console.log("Graph issues:");
|
|
@@ -62,6 +67,7 @@ export function publishStationCommand() {
|
|
|
62
67
|
for (const p of publishables)
|
|
63
68
|
console.log(`- ${p.name} @ ${p.version} (${p.cwd})`);
|
|
64
69
|
console.log("");
|
|
70
|
+
const soloMode = !opts.collaborative; // default to solo
|
|
65
71
|
for (const p of publishables) {
|
|
66
72
|
console.log(`\n=== Publishing: ${p.name} (${p.cwd}) ===`);
|
|
67
73
|
await publishPackageFlow(p.cwd, {
|
|
@@ -70,7 +76,7 @@ export function publishStationCommand() {
|
|
|
70
76
|
push: Boolean(opts.push),
|
|
71
77
|
remote: opts.remote,
|
|
72
78
|
branch: opts.branch,
|
|
73
|
-
|
|
79
|
+
soloMode,
|
|
74
80
|
forceWithLease: Boolean(opts.forceUpstream),
|
|
75
81
|
buildScript: opts.buildScript,
|
|
76
82
|
distCheck: opts.distCheck,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishStation.js","sourceRoot":"","sources":["../../src/commands/publishStation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;SACjC,WAAW,CAAC,6EAA6E,CAAC;SAC1F,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;SAC7C,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACxC,MAAM,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,YAAY,CAAC;SAC5E,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,CAAC;SAC7D,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;SACjC,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"publishStation.js","sourceRoot":"","sources":["../../src/commands/publishStation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;SACjC,WAAW,CAAC,6EAA6E,CAAC;SAC1F,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;SAC7C,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACxC,MAAM,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,YAAY,CAAC;SAC5E,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;SAChE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,YAAY,CAAC;SAC7D,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;SACjC,MAAM,CAAC,iBAAiB,EAAE,aAAa,EAAE,QAAQ,CAAC;SAClD,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;SACxE,MAAM,CAAC,QAAQ,EAAE,kEAAkE,EAAE,IAAI,CAAC;SAC1F,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,OAAO,CAAC;SAC7D,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,EAAE,eAAe,CAAC;SAC5E,MAAM,CAAC,eAAe,EAAE,2CAA2C,EAAE,OAAO,CAAC;SAC7E,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,EAAE,QAAQ,CAAC;SAC7E,MAAM,CAAC,cAAc,EAAE,yBAAyB,EAAE,EAAE,CAAC;SACrD,MAAM,CAAC,mBAAmB,EAAE,wDAAwD,EAAE,KAAK,CAAC;SAC5F,MAAM,CAAC,gBAAgB,EAAE,0DAA0D,EAAE,EAAE,CAAC;SACxF,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,EAAE,EAAE,CAAC;SAC3E,MAAM,CAAC,WAAW,EAAE,wBAAwB,EAAE,KAAK,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;QAE5C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO;YAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YACpE,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACzE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;oBAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrF,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB;oBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,uBAAuB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClG,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QAEvB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YACrF,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,YAAY,GAAG,KAAK;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAE9B,OAAO,CAAC,GAAG,CAAC,kBAAkB,YAAY,CAAC,MAAM,IAAI,CAAC,CAAC;QACvD,KAAK,MAAM,CAAC,IAAI,YAAY;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,kBAAkB;QAExD,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;YAC1D,MAAM,kBAAkB,CAAC,CAAC,CAAC,GAAG,EAAE;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;gBACxC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ;gBACR,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;gBAC3B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -12,6 +12,7 @@ export function reportStationCommand() {
|
|
|
12
12
|
.option("--pro", "Alias of --prometheus")
|
|
13
13
|
.option("--prometheus-name <folder>", "Prometheus folder name", "prometheus")
|
|
14
14
|
.option("--max-up <n>", "Max parent hops", (v) => Number(v), 120)
|
|
15
|
+
.option("--exclude <names>", "Comma-separated package names to exclude", "")
|
|
15
16
|
.option("--out <file>", "Write report to file (otherwise prints to stdout)", "")
|
|
16
17
|
.action(async (opts) => {
|
|
17
18
|
const stationRoot = resolveStationRoot({
|
|
@@ -21,7 +22,10 @@ export function reportStationCommand() {
|
|
|
21
22
|
prometheusName: opts.prometheusName,
|
|
22
23
|
maxUp: opts.maxUp
|
|
23
24
|
});
|
|
24
|
-
const
|
|
25
|
+
const excludePackages = opts.exclude
|
|
26
|
+
? String(opts.exclude).split(",").map(s => s.trim()).filter(Boolean)
|
|
27
|
+
: undefined;
|
|
28
|
+
const inv = await discoverStationInventory(stationRoot, excludePackages);
|
|
25
29
|
const graph = buildStationGraph(inv);
|
|
26
30
|
const lines = [];
|
|
27
31
|
lines.push(`# Station Report`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reportStation.js","sourceRoot":"","sources":["../../src/commands/reportStation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC;SAChC,WAAW,CAAC,mFAAmF,CAAC;SAChG,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;SAC7C,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACxC,MAAM,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,YAAY,CAAC;SAC5E,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,mDAAmD,EAAE,EAAE,CAAC;SAC/E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"reportStation.js","sourceRoot":"","sources":["../../src/commands/reportStation.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/runOnce.js
CHANGED
|
@@ -15,6 +15,9 @@ export function runOnceCommand() {
|
|
|
15
15
|
.option("--commit", "Commit changes (per repo) if any")
|
|
16
16
|
.option("--push", "Push changes (per repo) if any", true)
|
|
17
17
|
.option("--message <msg>", "Commit message", "chore: add/update renovate config")
|
|
18
|
+
.option("--solo", "Solo mode: auto-setup upstream, allow force-with-lease (default)", true)
|
|
19
|
+
.option("--collaborative", "Collaborative mode: safer, no force push")
|
|
20
|
+
.option("--exclude <names>", "Comma-separated package names to exclude", "")
|
|
18
21
|
.option("--dry-run", "No writes", false)
|
|
19
22
|
.action(async (opts) => {
|
|
20
23
|
const stationRoot = resolveStationRoot({
|
|
@@ -25,7 +28,10 @@ export function runOnceCommand() {
|
|
|
25
28
|
maxUp: opts.maxUp
|
|
26
29
|
});
|
|
27
30
|
console.log(`Station root: ${stationRoot}`);
|
|
28
|
-
const
|
|
31
|
+
const excludePackages = opts.exclude
|
|
32
|
+
? String(opts.exclude).split(",").map(s => s.trim()).filter(Boolean)
|
|
33
|
+
: undefined;
|
|
34
|
+
const inv = await discoverStationInventory(stationRoot, excludePackages);
|
|
29
35
|
// group by repoRoot
|
|
30
36
|
const repos = new Map(); // repoRoot -> packageJsonPaths under it
|
|
31
37
|
for (const p of inv.packages) {
|
|
@@ -52,9 +58,11 @@ export function runOnceCommand() {
|
|
|
52
58
|
}
|
|
53
59
|
const changed = changedRenovate || changedNcu;
|
|
54
60
|
if (changed && opts.commit) {
|
|
61
|
+
const soloMode = !opts.collaborative; // default to solo
|
|
55
62
|
await (await import("../utils/git.js")).gitAddCommitPush(repoRoot, {
|
|
56
63
|
message: opts.message,
|
|
57
|
-
push: Boolean(opts.push)
|
|
64
|
+
push: Boolean(opts.push),
|
|
65
|
+
soloMode
|
|
58
66
|
});
|
|
59
67
|
}
|
|
60
68
|
console.log(`OK ${repoRoot}${changed ? " (changed)" : " (no-op)"}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runOnce.js","sourceRoot":"","sources":["../../src/commands/runOnce.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,MAAM,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;SAC/B,WAAW,CAAC,gGAAgG,CAAC;SAC7G,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,cAAc,EAAE,0DAA0D,CAAC;SAClF,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACxC,MAAM,CAAC,4BAA4B,EAAE,wBAAwB,EAAE,YAAY,CAAC;SAC5E,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;SAChE,MAAM,CAAC,WAAW,EAAE,8BAA8B,CAAC;SACnD,MAAM,CAAC,UAAU,EAAE,kCAAkC,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,gCAAgC,EAAE,IAAI,CAAC;SACxD,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,mCAAmC,CAAC;SAChF,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;QAE5C,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runOnce.js","sourceRoot":"","sources":["../../src/commands/runOnce.ts"],"names":[],"mappings":"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"}
|
package/dist/station/discover.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fg from "fast-glob";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { exists, isDir, readJson } from "../utils/fs.js";
|
|
4
|
+
import { loadStationConfig, shouldExcludePackage } from "../utils/config.js";
|
|
4
5
|
const IGNORE = [
|
|
5
6
|
"**/node_modules/**",
|
|
6
7
|
"**/.git/**",
|
|
@@ -44,10 +45,12 @@ function depsBlock(p) {
|
|
|
44
45
|
};
|
|
45
46
|
}
|
|
46
47
|
async function findGitRepoRoots(stationRoot) {
|
|
48
|
+
// Don't ignore .git directories when looking for them
|
|
49
|
+
const gitIgnore = IGNORE.filter(p => p !== "**/.git/**");
|
|
47
50
|
const gitDirs = await fg(["**/.git"], {
|
|
48
51
|
cwd: stationRoot,
|
|
49
52
|
onlyDirectories: true,
|
|
50
|
-
ignore:
|
|
53
|
+
ignore: gitIgnore,
|
|
51
54
|
followSymbolicLinks: false
|
|
52
55
|
});
|
|
53
56
|
const repoRoots = gitDirs
|
|
@@ -72,7 +75,8 @@ async function discoverWorkspacePackages(repoRoot) {
|
|
|
72
75
|
});
|
|
73
76
|
return matches.map(m => path.join(repoRoot, m));
|
|
74
77
|
}
|
|
75
|
-
export async function discoverStationInventory(stationRoot) {
|
|
78
|
+
export async function discoverStationInventory(stationRoot, excludePackages) {
|
|
79
|
+
const config = await loadStationConfig(stationRoot);
|
|
76
80
|
const repoRoots = await findGitRepoRoots(stationRoot);
|
|
77
81
|
const packageJsonPaths = [];
|
|
78
82
|
for (const repoRoot of repoRoots) {
|
|
@@ -90,6 +94,10 @@ export async function discoverStationInventory(stationRoot) {
|
|
|
90
94
|
const pkg = readJson(pkgPath);
|
|
91
95
|
if (!pkg.name || !pkg.version)
|
|
92
96
|
continue;
|
|
97
|
+
// Check exclusions
|
|
98
|
+
if (shouldExcludePackage({ name: pkg.name, cwd }, stationRoot, config, excludePackages)) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
93
101
|
// repoRoot = nearest ancestor containing .git (we already enumerated repo roots, so match by prefix)
|
|
94
102
|
const repoRoot = repoRoots.find(r => cwd === r || cwd.startsWith(r + path.sep));
|
|
95
103
|
if (!repoRoot)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/station/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/station/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { exists, readJson } from "./fs.js";
|
|
3
|
+
export async function loadStationConfig(stationRoot) {
|
|
4
|
+
const configPath = path.join(stationRoot, ".nx-npm-tools.json");
|
|
5
|
+
if (!exists(configPath))
|
|
6
|
+
return {};
|
|
7
|
+
try {
|
|
8
|
+
return readJson(configPath);
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function shouldExcludePackage(pkg, stationRoot, config, cliExcludes) {
|
|
15
|
+
// Combine config and CLI exclusions
|
|
16
|
+
const excludePackages = new Set([
|
|
17
|
+
...(config.exclude?.packages ?? []),
|
|
18
|
+
...(cliExcludes ?? [])
|
|
19
|
+
]);
|
|
20
|
+
// Check package name exclusion
|
|
21
|
+
if (excludePackages.has(pkg.name))
|
|
22
|
+
return true;
|
|
23
|
+
// Check path pattern exclusions
|
|
24
|
+
if (config.exclude?.paths) {
|
|
25
|
+
const relPath = path.relative(stationRoot, pkg.cwd);
|
|
26
|
+
for (const pattern of config.exclude.paths) {
|
|
27
|
+
// Simple glob-like matching (supports * and **)
|
|
28
|
+
if (matchesPattern(relPath, pattern))
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
function matchesPattern(path, pattern) {
|
|
35
|
+
// Convert glob pattern to regex
|
|
36
|
+
const regexPattern = pattern
|
|
37
|
+
.replace(/\*\*/g, ".*")
|
|
38
|
+
.replace(/\*/g, "[^/]*")
|
|
39
|
+
.replace(/\./g, "\\.");
|
|
40
|
+
const regex = new RegExp(`^${regexPattern}$`);
|
|
41
|
+
return regex.test(path);
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAS3C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,OAAO,QAAQ,CAAgB,UAAU,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,GAAkC,EAClC,WAAmB,EACnB,MAAqB,EACrB,WAAsB;IAEtB,oCAAoC;IACpC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;KACvB,CAAC,CAAC;IAEH,+BAA+B;IAC/B,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,gCAAgC;IAChC,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACpD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3C,gDAAgD;YAChD,IAAI,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,OAAe;IACnD,gCAAgC;IAChC,MAAM,YAAY,GAAG,OAAO;SACzB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;SACvB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
package/dist/utils/git.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import fs from "node:fs";
|
|
3
|
-
import { run } from "./exec.js";
|
|
3
|
+
import { run, runCapture } from "./exec.js";
|
|
4
4
|
import { exists, readJson, writeJson, readText, writeText } from "./fs.js";
|
|
5
|
+
async function getCurrentBranch(cwd) {
|
|
6
|
+
try {
|
|
7
|
+
const output = await runCapture("git", ["branch", "--show-current"], cwd);
|
|
8
|
+
return output.trim() || null;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
5
14
|
export async function gitAddCommitPush(cwd, opts) {
|
|
6
15
|
const remote = opts.remote ?? "origin";
|
|
16
|
+
const soloMode = opts.soloMode ?? true; // default to solo
|
|
7
17
|
await run("git", ["add", "."], cwd, true);
|
|
8
18
|
// commit may fail if nothing to commit; ignore
|
|
9
19
|
try {
|
|
@@ -14,14 +24,61 @@ export async function gitAddCommitPush(cwd, opts) {
|
|
|
14
24
|
}
|
|
15
25
|
if (!opts.push)
|
|
16
26
|
return;
|
|
27
|
+
// Auto-detect branch if not provided
|
|
28
|
+
let branch = opts.branch;
|
|
29
|
+
if (!branch) {
|
|
30
|
+
const detected = await getCurrentBranch(cwd);
|
|
31
|
+
branch = detected ?? undefined;
|
|
32
|
+
}
|
|
33
|
+
// Build push args
|
|
17
34
|
const args = ["push", remote];
|
|
18
|
-
if (
|
|
19
|
-
args.push(
|
|
20
|
-
|
|
35
|
+
if (branch)
|
|
36
|
+
args.push(branch);
|
|
37
|
+
// Solo mode: auto-setup upstream, allow force-with-lease on failure
|
|
38
|
+
if (soloMode && branch) {
|
|
39
|
+
// Check if upstream exists by trying to get the upstream branch
|
|
40
|
+
try {
|
|
41
|
+
await runCapture("git", ["rev-parse", "--abbrev-ref", "--symbolic-full-name", `${branch}@{upstream}`], cwd);
|
|
42
|
+
// Upstream exists, try normal push
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
// No upstream, set it up
|
|
46
|
+
args.push("--set-upstream");
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else if (opts.setUpstream && branch) {
|
|
21
50
|
args.push("--set-upstream");
|
|
22
|
-
|
|
51
|
+
}
|
|
52
|
+
if (opts.forceWithLease) {
|
|
23
53
|
args.push("--force-with-lease");
|
|
24
|
-
|
|
54
|
+
}
|
|
55
|
+
// Try push
|
|
56
|
+
try {
|
|
57
|
+
await run("git", args, cwd, true);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
// In solo mode, if push fails and we haven't tried force-with-lease, try it
|
|
61
|
+
if (soloMode && !opts.forceWithLease) {
|
|
62
|
+
const forceArgs = ["push", remote];
|
|
63
|
+
if (branch)
|
|
64
|
+
forceArgs.push(branch);
|
|
65
|
+
if (soloMode && branch) {
|
|
66
|
+
// Check upstream again
|
|
67
|
+
try {
|
|
68
|
+
await runCapture("git", ["rev-parse", "--abbrev-ref", "--symbolic-full-name", `${branch}@{upstream}`], cwd);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
forceArgs.push("--set-upstream");
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
forceArgs.push("--force-with-lease");
|
|
75
|
+
console.log(`Push failed, retrying with --force-with-lease (solo mode)...`);
|
|
76
|
+
await run("git", forceArgs, cwd, true);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
25
82
|
}
|
|
26
83
|
export async function ensureRenovateConfig(repoRoot) {
|
|
27
84
|
const renovatePath = path.join(repoRoot, "renovate.json");
|
|
@@ -101,7 +158,7 @@ export async function publishPackageFlow(cwd, opts) {
|
|
|
101
158
|
push: opts.push,
|
|
102
159
|
remote: opts.remote,
|
|
103
160
|
branch: opts.branch,
|
|
104
|
-
|
|
161
|
+
soloMode: opts.soloMode,
|
|
105
162
|
forceWithLease: opts.forceWithLease
|
|
106
163
|
});
|
|
107
164
|
// build
|
package/dist/utils/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.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
|
+
"version": "0.2.3",
|
|
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",
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
],
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "tsc -p tsconfig.json",
|
|
15
|
-
"prepublishOnly": "npm run build"
|
|
15
|
+
"prepublishOnly": "npm run build",
|
|
16
|
+
"deps:latest": "npx npm-check-updates -u && npm install"
|
|
16
17
|
},
|
|
17
18
|
"dependencies": {
|
|
18
19
|
"commander": "^12.1.0",
|