@devrouter/cli 0.0.48 → 0.0.49
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/dist/devrouter.js +14 -6
- package/package.json +1 -1
- package/upgrade-prompts/0.0.49.md +26 -0
package/dist/devrouter.js
CHANGED
|
@@ -2668,7 +2668,7 @@ function loadRepoConfig(repoPath) {
|
|
|
2668
2668
|
const config = parseConfig(parsed ?? {}, configPath);
|
|
2669
2669
|
const requiredVersion = config.devrouter?.version;
|
|
2670
2670
|
if (requiredVersion && !hasWarnedVersionMismatch) {
|
|
2671
|
-
const cliVersion = true ? "0.0.
|
|
2671
|
+
const cliVersion = true ? "0.0.49" : "0.0.0-dev";
|
|
2672
2672
|
if (cliVersion !== "0.0.0-dev" && compareSemver(requiredVersion, cliVersion) > 0) {
|
|
2673
2673
|
hasWarnedVersionMismatch = true;
|
|
2674
2674
|
process.stderr.write(
|
|
@@ -8986,7 +8986,7 @@ async function buildDoctorReport(options = {}) {
|
|
|
8986
8986
|
const config = runtimeConfig.config;
|
|
8987
8987
|
loadedConfig = config;
|
|
8988
8988
|
loadedWorkspace = runtimeConfig.workspace;
|
|
8989
|
-
const cliVersion = true ? "0.0.
|
|
8989
|
+
const cliVersion = true ? "0.0.49" : "0.0.0-dev";
|
|
8990
8990
|
const configVersion = config.devrouter?.version;
|
|
8991
8991
|
if (configVersion && cliVersion !== "0.0.0-dev" && compareSemver(configVersion, cliVersion) > 0) {
|
|
8992
8992
|
addCheck(checks, {
|
|
@@ -9741,7 +9741,7 @@ function inspectRouterApi(protocol) {
|
|
|
9741
9741
|
"--fail",
|
|
9742
9742
|
"--max-time",
|
|
9743
9743
|
"2",
|
|
9744
|
-
`${ROUTER_API_BASE}/${protocol}/routers`
|
|
9744
|
+
`${ROUTER_API_BASE}/${protocol}/routers?per_page=${ROUTER_API_PAGE_SIZE}`
|
|
9745
9745
|
],
|
|
9746
9746
|
{ encoding: "utf-8" }
|
|
9747
9747
|
);
|
|
@@ -9762,6 +9762,7 @@ function inspectRouterApi(protocol) {
|
|
|
9762
9762
|
}
|
|
9763
9763
|
return {
|
|
9764
9764
|
ok: true,
|
|
9765
|
+
reachedPageLimit: value.length >= ROUTER_API_PAGE_SIZE,
|
|
9765
9766
|
names: new Set(
|
|
9766
9767
|
value.flatMap((item) => {
|
|
9767
9768
|
if (!item || typeof item !== "object") return [];
|
|
@@ -9783,7 +9784,13 @@ function inspectExpectedRoutes(routes) {
|
|
|
9783
9784
|
missing.push(...expected);
|
|
9784
9785
|
continue;
|
|
9785
9786
|
}
|
|
9786
|
-
|
|
9787
|
+
const absent = expected.filter((name) => !result.names.has(name));
|
|
9788
|
+
if (absent.length > 0 && result.reachedPageLimit) {
|
|
9789
|
+
failures.push(
|
|
9790
|
+
`${protocol.toUpperCase()} router API reached the ${ROUTER_API_PAGE_SIZE}-entry safety limit`
|
|
9791
|
+
);
|
|
9792
|
+
}
|
|
9793
|
+
missing.push(...absent);
|
|
9787
9794
|
}
|
|
9788
9795
|
return missing.length === 0 ? { ok: true } : {
|
|
9789
9796
|
ok: false,
|
|
@@ -9831,7 +9838,7 @@ async function ensureTraefikRoutesLoaded(routes, options = {}) {
|
|
|
9831
9838
|
}
|
|
9832
9839
|
);
|
|
9833
9840
|
}
|
|
9834
|
-
var import_node_child_process20, import_node_fs24, import_node_path25, ROUTER_API_BASE, ROUTER_RELOAD_LOCK_FILE, DEFAULT_INITIAL_TIMEOUT_MS, DEFAULT_RECOVERY_TIMEOUT_MS, DEFAULT_POLL_INTERVAL_MS;
|
|
9841
|
+
var import_node_child_process20, import_node_fs24, import_node_path25, ROUTER_API_BASE, ROUTER_RELOAD_LOCK_FILE, DEFAULT_INITIAL_TIMEOUT_MS, DEFAULT_RECOVERY_TIMEOUT_MS, DEFAULT_POLL_INTERVAL_MS, ROUTER_API_PAGE_SIZE;
|
|
9835
9842
|
var init_traefik_route_health = __esm({
|
|
9836
9843
|
"src/core/traefik-route-health.ts"() {
|
|
9837
9844
|
"use strict";
|
|
@@ -9846,6 +9853,7 @@ var init_traefik_route_health = __esm({
|
|
|
9846
9853
|
DEFAULT_INITIAL_TIMEOUT_MS = 3e3;
|
|
9847
9854
|
DEFAULT_RECOVERY_TIMEOUT_MS = 1e4;
|
|
9848
9855
|
DEFAULT_POLL_INTERVAL_MS = 250;
|
|
9856
|
+
ROUTER_API_PAGE_SIZE = 1e3;
|
|
9849
9857
|
}
|
|
9850
9858
|
});
|
|
9851
9859
|
|
|
@@ -15502,7 +15510,7 @@ var init_version = __esm({
|
|
|
15502
15510
|
|
|
15503
15511
|
// src/cli.ts
|
|
15504
15512
|
var import_commander = require("commander");
|
|
15505
|
-
var CLI_VERSION = true ? "0.0.
|
|
15513
|
+
var CLI_VERSION = true ? "0.0.49" : "0.0.0-dev";
|
|
15506
15514
|
var VERSION_FLAGS = /* @__PURE__ */ new Set(["-V", "--version"]);
|
|
15507
15515
|
function withErrorHandling(action2) {
|
|
15508
15516
|
return async (...args) => {
|
package/package.json
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Upgrade to devrouter 0.0.49
|
|
2
|
+
|
|
3
|
+
Devrouter now checks a bounded 1,000-router view from both Traefik router APIs
|
|
4
|
+
when proving managed routes. This prevents Traefik's default 100-entry page
|
|
5
|
+
from hiding a valid route in a large shared installation.
|
|
6
|
+
|
|
7
|
+
1. Install `@devrouter/cli@0.0.49` on the host and bump `.devrouter.yml` to
|
|
8
|
+
`devrouter.version: 0.0.49`.
|
|
9
|
+
2. Keep using `devrouter ensure <checkout>`. Route naming, publication, and
|
|
10
|
+
restart-once recovery are unchanged.
|
|
11
|
+
3. If an expected router is absent from a full 1,000-entry API response,
|
|
12
|
+
Devrouter intentionally fails closed because the API view may be incomplete.
|
|
13
|
+
|
|
14
|
+
Verification:
|
|
15
|
+
|
|
16
|
+
- Run `devrouter -V --repo <checkout>` and confirm the installed CLI and local
|
|
17
|
+
repository report `0.0.49`.
|
|
18
|
+
- Start one safe representative managed profile with `devrouter ensure`, verify
|
|
19
|
+
its expected routes and zero profile drift, then stop that exact checkout and
|
|
20
|
+
require zero remaining routes.
|
|
21
|
+
|
|
22
|
+
Report template:
|
|
23
|
+
|
|
24
|
+
- CLI/config version: `0.0.49`
|
|
25
|
+
- Representative route proof and stop: `<passed, deferred, or details>`
|
|
26
|
+
- Remaining blockers: `<none or details>`
|