@devrouter/cli 0.0.69 → 0.0.70

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.
@@ -5159,7 +5159,7 @@ function loadRepoConfig(repoPath, read2 = (file) => import_node_fs14.default.rea
5159
5159
  const config = parseConfig(parsed ?? {}, configPath);
5160
5160
  const requiredVersion = config.devrouter?.version;
5161
5161
  if (requiredVersion && !hasWarnedVersionMismatch) {
5162
- const cliVersion = true ? "0.0.69" : "0.0.0-dev";
5162
+ const cliVersion = true ? "0.0.70" : "0.0.0-dev";
5163
5163
  if (cliVersion !== "0.0.0-dev" && compareSemver(requiredVersion, cliVersion) > 0) {
5164
5164
  hasWarnedVersionMismatch = true;
5165
5165
  process.stderr.write(
@@ -9037,7 +9037,7 @@ var import_node_fs25 = __toESM(require("fs"));
9037
9037
  var import_node_path30 = __toESM(require("path"));
9038
9038
  var import_node_util5 = require("util");
9039
9039
  function installedCliVersion() {
9040
- return true ? "0.0.69" : "0.0.0-dev";
9040
+ return true ? "0.0.70" : "0.0.0-dev";
9041
9041
  }
9042
9042
  function compareCliVersions(left, right) {
9043
9043
  const parts = (value) => value.split(".").map((part) => Number.parseInt(part, 10) || 0);
@@ -10147,7 +10147,11 @@ function parseHolderPortMap(value) {
10147
10147
  ports.push({ hostIp: normalizeHostIp(entry.HostIp), hostPort: bound, protocol });
10148
10148
  }
10149
10149
  }
10150
- return ports;
10150
+ const unique = /* @__PURE__ */ new Map();
10151
+ for (const port of ports) {
10152
+ unique.set(`${port.hostIp ?? ""}|${port.hostPort}|${port.protocol}`, port);
10153
+ }
10154
+ return [...unique.values()];
10151
10155
  }
10152
10156
  function parseHolderSnapshots(stdout) {
10153
10157
  return stdout.split(/\r?\n/).map((line) => line.trim()).filter(Boolean).map((line) => {
package/dist/devrouter.js CHANGED
@@ -4133,7 +4133,7 @@ function loadRepoConfig(repoPath, read2 = (file) => import_node_fs7.default.read
4133
4133
  const config = parseConfig(parsed ?? {}, configPath);
4134
4134
  const requiredVersion = config.devrouter?.version;
4135
4135
  if (requiredVersion && !hasWarnedVersionMismatch) {
4136
- const cliVersion = true ? "0.0.69" : "0.0.0-dev";
4136
+ const cliVersion = true ? "0.0.70" : "0.0.0-dev";
4137
4137
  if (cliVersion !== "0.0.0-dev" && compareSemver(requiredVersion, cliVersion) > 0) {
4138
4138
  hasWarnedVersionMismatch = true;
4139
4139
  process.stderr.write(
@@ -5386,7 +5386,7 @@ var init_reliability_contract = __esm({
5386
5386
 
5387
5387
  // src/core/reliability-operation-store.ts
5388
5388
  function installedCliVersion() {
5389
- return true ? "0.0.69" : "0.0.0-dev";
5389
+ return true ? "0.0.70" : "0.0.0-dev";
5390
5390
  }
5391
5391
  function compareCliVersions(left, right) {
5392
5392
  const parts = (value) => value.split(".").map((part) => Number.parseInt(part, 10) || 0);
@@ -13062,7 +13062,11 @@ function parseHolderPortMap(value) {
13062
13062
  ports.push({ hostIp: normalizeHostIp(entry.HostIp), hostPort: bound, protocol });
13063
13063
  }
13064
13064
  }
13065
- return ports;
13065
+ const unique = /* @__PURE__ */ new Map();
13066
+ for (const port of ports) {
13067
+ unique.set(`${port.hostIp ?? ""}|${port.hostPort}|${port.protocol}`, port);
13068
+ }
13069
+ return [...unique.values()];
13066
13070
  }
13067
13071
  function parseHolderSnapshots(stdout) {
13068
13072
  return stdout.split(/\r?\n/).map((line) => line.trim()).filter(Boolean).map((line) => {
@@ -20385,7 +20389,7 @@ async function buildDoctorReport(options = {}) {
20385
20389
  const config = runtimeConfig.config;
20386
20390
  loadedConfig = config;
20387
20391
  loadedWorkspace = runtimeConfig.workspace;
20388
- const cliVersion = true ? "0.0.69" : "0.0.0-dev";
20392
+ const cliVersion = true ? "0.0.70" : "0.0.0-dev";
20389
20393
  const configVersion = config.devrouter?.version;
20390
20394
  if (configVersion && cliVersion !== "0.0.0-dev" && compareSemver(configVersion, cliVersion) > 0) {
20391
20395
  addCheck(checks, {
@@ -25815,7 +25819,7 @@ var init_version = __esm({
25815
25819
 
25816
25820
  // src/cli.ts
25817
25821
  var import_commander = require("commander");
25818
- var CLI_VERSION = true ? "0.0.69" : "0.0.0-dev";
25822
+ var CLI_VERSION = true ? "0.0.70" : "0.0.0-dev";
25819
25823
  var VERSION_FLAGS = /* @__PURE__ */ new Set(["-V", "--version"]);
25820
25824
  function withErrorHandling(action2) {
25821
25825
  return async (...args) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devrouter/cli",
3
- "version": "0.0.69",
3
+ "version": "0.0.70",
4
4
  "description": "Local dev routing CLI with shared Traefik reverse proxy",
5
5
  "author": "Roland Schlaefli",
6
6
  "homepage": "https://github.com/rschlaefli/devrouter#readme",
@@ -0,0 +1,23 @@
1
+ # Upgrade to devrouter 0.0.70
2
+
3
+ This patch release fixes host-port claim reporting so a holder that binds the
4
+ same port on both address families (0.0.0.0 and ::) is reported as one
5
+ conflict instead of duplicates. No schema, configuration, or CLI flag changes.
6
+
7
+ ## Task
8
+
9
+ Install the published release and update `.devrouter.yml` devrouter.version to
10
+ 0.0.70. No configuration change is required.
11
+
12
+ ## Validation
13
+
14
+ On a repository whose managed overlay declares a fixed published binding that
15
+ a running container holds, run `devrouter doctor --repo <path> --json` and
16
+ confirm `repo.host-port-claims` reports one conflict per distinct binding, not
17
+ one row per address family. `devrouter ensure <path> --json` must return the
18
+ same single `hostPortConflicts` entry.
19
+
20
+ ## Report
21
+
22
+ Report the tested CLI version, the repository and binding exercised, the
23
+ doctor check details, and whether duplicate conflict rows were observed.