@validate.qa/runner 1.0.100 → 1.0.102

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.
Files changed (31) hide show
  1. package/README.md +3 -0
  2. package/dist/{chunk-MBKGTELT.mjs → chunk-3JM6XTSZ.mjs} +1862 -530
  3. package/dist/{chunk-2XD63NU5.mjs → chunk-4WLP3RWN.mjs} +941 -86
  4. package/dist/{chunk-MHFP3QXU.mjs → chunk-5DFBEL72.mjs} +1 -1
  5. package/dist/{chunk-II7QW7MZ.mjs → chunk-BXLEPT4M.mjs} +31 -18
  6. package/dist/{chunk-MAO6ADAO.mjs → chunk-CBVHPYVJ.mjs} +62 -2
  7. package/dist/{chunk-5P4ANVDY.mjs → chunk-DN3O6EYT.mjs} +43073 -23357
  8. package/dist/{chunk-GIIIVO2W.mjs → chunk-E2RRAE27.mjs} +155 -11
  9. package/dist/chunk-E2VEMBQQ.mjs +291 -0
  10. package/dist/{chunk-HMUC3DKS.mjs → chunk-HJ6FKHMM.mjs} +2281 -2
  11. package/dist/{chunk-WDXLAZ2J.mjs → chunk-PWFWMVZU.mjs} +3 -2
  12. package/dist/{chunk-6NIT2CCH.mjs → chunk-ZZYBRIBT.mjs} +18 -12
  13. package/dist/cli.js +139723 -114754
  14. package/dist/cli.mjs +536 -247
  15. package/dist/credential-mcp-server.js +1761 -358
  16. package/dist/credential-mcp-server.mjs +3 -3
  17. package/dist/discovery-mcp-server.js +1874 -379
  18. package/dist/discovery-mcp-server.mjs +4 -4
  19. package/dist/dist-52M5RDZ6.mjs +17 -0
  20. package/dist/inbox-mcp-server.js +1902 -505
  21. package/dist/inbox-mcp-server.mjs +3 -3
  22. package/dist/route-seed-worker.js +3976 -356
  23. package/dist/route-seed-worker.mjs +14 -7
  24. package/dist/run-write-guard-preload.js +2908 -572
  25. package/dist/run-write-guard-preload.mjs +5 -285
  26. package/dist/run-write-guard.js +2908 -572
  27. package/dist/run-write-guard.mjs +3 -3
  28. package/dist/spec-driver.js +1 -1
  29. package/dist/spec-driver.mjs +1 -1
  30. package/package.json +4 -3
  31. package/dist/dist-DFNLMH6L.mjs +0 -16
@@ -1,14 +1,18 @@
1
1
  import {
2
2
  require_route_seed,
3
3
  require_typescript
4
- } from "./chunk-HMUC3DKS.mjs";
4
+ } from "./chunk-HJ6FKHMM.mjs";
5
5
  import {
6
6
  require_route_manifest
7
- } from "./chunk-WDXLAZ2J.mjs";
8
- import "./chunk-MBKGTELT.mjs";
7
+ } from "./chunk-PWFWMVZU.mjs";
8
+ import {
9
+ dist_exports,
10
+ init_dist
11
+ } from "./chunk-3JM6XTSZ.mjs";
9
12
  import {
10
13
  __commonJS,
11
14
  __require,
15
+ __toCommonJS,
12
16
  __toESM
13
17
  } from "./chunk-WQXBGQU4.mjs";
14
18
 
@@ -25,6 +29,7 @@ var require_scan = __commonJS({
25
29
  exports.joinPath = joinPath;
26
30
  exports.hasModifier = hasModifier;
27
31
  exports.decoratorsOf = decoratorsOf;
32
+ var shared_1 = (init_dist(), __toCommonJS(dist_exports));
28
33
  var node_fs_1 = __require("fs");
29
34
  var node_path_1 = __require("path");
30
35
  var typescript_1 = __importDefault(require_typescript());
@@ -94,7 +99,7 @@ var require_scan = __commonJS({
94
99
  return a || "/";
95
100
  if (b.startsWith("/") && !a)
96
101
  return b;
97
- return `${(a || "").replace(/\/+$/, "")}/${b.replace(/^\/+/, "")}`.replace(/\/{2,}/g, "/");
102
+ return `${(0, shared_1.stripTrailingSlashes)(a || "")}/${b.replace(/^\/+/, "")}`.replace(/\/{2,}/g, "/");
98
103
  }
99
104
  function hasModifier(node, kind) {
100
105
  return typescript_1.default.canHaveModifiers(node) && (typescript_1.default.getModifiers(node) ?? []).some((modifier) => modifier.kind === kind);
@@ -439,6 +444,7 @@ var require_clients = __commonJS({
439
444
  exports.runClientSurface = runClientSurface;
440
445
  exports.applyAuthPrefixes = applyAuthPrefixes;
441
446
  exports.noteUnsupported = noteUnsupported;
447
+ var shared_1 = (init_dist(), __toCommonJS(dist_exports));
442
448
  var node_path_1 = __require("path");
443
449
  var typescript_1 = __importDefault(require_typescript());
444
450
  var scan_js_1 = require_scan();
@@ -893,7 +899,7 @@ var require_clients = __commonJS({
893
899
  if (!splat.prefix)
894
900
  continue;
895
901
  for (const link of linkTargets) {
896
- const path = link.path.split(/[?#]/)[0]?.replace(/\/+$/, "") ?? "";
902
+ const path = (0, shared_1.stripTrailingSlashes)(link.path.split(/[?#]/)[0] ?? "");
897
903
  if (path.startsWith(`${splat.prefix}/`) && path.length > splat.prefix.length + 1 && !ctx.routes.some((route) => route.kind === "page" && !/\*$/.test(route.path) && segMatch(route.path, path))) {
898
904
  ctx.coverage.rulesApplied.add("link-under-splat");
899
905
  ctx.add({ path, kind: "page", rule: "link-under-splat", file: link.file, line: link.line, purpose: link.text || (0, scan_js_1.words)(path.slice(splat.prefix.length)) });
@@ -988,7 +994,7 @@ var require_clients = __commonJS({
988
994
  const serverApi = ctx.routes.filter((route) => route.kind === "api");
989
995
  const mountBases = [...new Set(serverApi.map((route) => route.path.split("/").slice(0, 2).join("/")).filter((base) => base && base !== "/"))];
990
996
  for (const call of clientCalls) {
991
- let path = call.path.replace(/\/+$/, "") || "/";
997
+ const path = (0, shared_1.stripTrailingSlashes)(call.path) || "/";
992
998
  if (/\.(png|jpe?g|svg|gif|webp|css|js|json|ico|mp3|mp4|woff2?)$/.test(path))
993
999
  continue;
994
1000
  const candidates = [path, ...mountBases.map((base) => (0, scan_js_1.joinPath)(base, path))];
@@ -1489,6 +1495,7 @@ var require_seed = __commonJS({
1489
1495
  "use strict";
1490
1496
  Object.defineProperty(exports, "__esModule", { value: true });
1491
1497
  exports.seedRouteManifest = seedRouteManifest;
1498
+ var shared_1 = (init_dist(), __toCommonJS(dist_exports));
1492
1499
  var route_manifest_js_1 = require_route_manifest();
1493
1500
  var route_seed_js_1 = require_route_seed();
1494
1501
  var clients_js_1 = require_clients();
@@ -1514,7 +1521,7 @@ var require_seed = __commonJS({
1514
1521
  return "route-config";
1515
1522
  }
1516
1523
  function shapeManifest(ctx) {
1517
- const familyKey = (row) => `${row.kind === "api" ? "api" : "page"} ${row.path.toLowerCase().replace(/\/+$/, "") || "/"}`;
1524
+ const familyKey = (row) => `${row.kind === "api" ? "api" : "page"} ${(0, shared_1.stripTrailingSlashes)(row.path.toLowerCase()) || "/"}`;
1518
1525
  const byFamily = /* @__PURE__ */ new Map();
1519
1526
  for (const row of ctx.routes.slice().sort((a, b) => ruleRank(a.rule) - ruleRank(b.rule))) {
1520
1527
  const key = familyKey(row);