@descryy/viz 0.5.10 → 0.5.12
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/search.d.ts +1 -4
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +8 -50
- package/dist/search.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +91 -14
- package/dist/server.js.map +1 -1
- package/package.json +3 -3
- package/public/app.js +6 -0
package/dist/search.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
/** Search by node/file/function, composed from existing query-layer primitives.
|
|
2
|
-
* `findNodes` is exact-match only; a partial name needs a bounded substring scan
|
|
3
|
-
* over `AdjacencyProvider.nodesOfType` — no new SQL beyond what both already run. */
|
|
4
1
|
import type { IRNode } from "@descryy/ir";
|
|
5
2
|
import { type AdjacencyProvider, type SqlDriver } from "@descryy/core";
|
|
6
3
|
export interface SearchResult {
|
|
7
4
|
readonly nodes: readonly IRNode[];
|
|
8
5
|
readonly truncated: boolean;
|
|
9
6
|
}
|
|
10
|
-
export declare function searchNodes(driver: SqlDriver,
|
|
7
|
+
export declare function searchNodes(driver: SqlDriver, _provider: AdjacencyProvider, query: string): SearchResult;
|
|
11
8
|
//# sourceMappingURL=search.d.ts.map
|
package/dist/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAoC,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAMzG,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CAMxG"}
|
package/dist/search.js
CHANGED
|
@@ -1,54 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
* `findNodes` is exact-match only; a partial name needs a bounded substring scan
|
|
3
|
-
* over `AdjacencyProvider.nodesOfType` — no new SQL beyond what both already run. */
|
|
4
|
-
import { findNodes } from "@descryy/core";
|
|
5
|
-
/** Node types worth scanning by substring. Fileless types (API_ENDPOINT) still carry a name. */
|
|
6
|
-
const SEARCHABLE_TYPES = [
|
|
7
|
-
"FUNCTION",
|
|
8
|
-
"CLASS",
|
|
9
|
-
"MODULE",
|
|
10
|
-
"FILE",
|
|
11
|
-
"API_ROUTE",
|
|
12
|
-
"API_ENDPOINT",
|
|
13
|
-
"COMPONENT",
|
|
14
|
-
"PAGE",
|
|
15
|
-
"MODEL",
|
|
16
|
-
"DTO",
|
|
17
|
-
"DATABASE_TABLE",
|
|
18
|
-
"TEST_CASE",
|
|
19
|
-
];
|
|
20
|
-
/** Per-type cap on the substring scan — a search box, not a set-property query. */
|
|
21
|
-
const SCAN_LIMIT_PER_TYPE = 3_000;
|
|
1
|
+
import { searchNodes as searchStoredNodes } from "@descryy/core";
|
|
22
2
|
const MAX_RESULTS = 40;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
3
|
+
const MAX_QUERY_LENGTH = 200;
|
|
4
|
+
const MAX_QUERY_WORDS = 8;
|
|
5
|
+
export function searchNodes(driver, _provider, query) {
|
|
6
|
+
const bounded = query.trim().slice(0, MAX_QUERY_LENGTH).split(/\s+/).filter((word) => word !== "").slice(0, MAX_QUERY_WORDS).join(" ");
|
|
7
|
+
if (bounded === "")
|
|
26
8
|
return { nodes: [], truncated: false };
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const seen = new Set(exact.map((n) => n.id));
|
|
30
|
-
const results = [...exact];
|
|
31
|
-
const needle = q.toLowerCase();
|
|
32
|
-
let scannedTruncated = false;
|
|
33
|
-
for (const type of SEARCHABLE_TYPES) {
|
|
34
|
-
if (results.length >= MAX_RESULTS)
|
|
35
|
-
break;
|
|
36
|
-
const set = provider.nodesOfType(type, SCAN_LIMIT_PER_TYPE);
|
|
37
|
-
if (set.truncated)
|
|
38
|
-
scannedTruncated = true;
|
|
39
|
-
for (const node of set.nodes) {
|
|
40
|
-
if (results.length >= MAX_RESULTS)
|
|
41
|
-
break;
|
|
42
|
-
if (seen.has(node.id))
|
|
43
|
-
continue;
|
|
44
|
-
const inName = node.name.toLowerCase().includes(needle);
|
|
45
|
-
const inFile = node.file !== null && node.file.toLowerCase().includes(needle);
|
|
46
|
-
if (!inName && !inFile)
|
|
47
|
-
continue;
|
|
48
|
-
seen.add(node.id);
|
|
49
|
-
results.push(node);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return { nodes: results, truncated: scannedTruncated || results.length >= MAX_RESULTS };
|
|
9
|
+
const result = searchStoredNodes(driver, { query: bounded, limit: MAX_RESULTS });
|
|
10
|
+
return { nodes: result.hits.map((hit) => hit.node), truncated: result.total > result.hits.length };
|
|
53
11
|
}
|
|
54
12
|
//# sourceMappingURL=search.js.map
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAA0C,MAAM,eAAe,CAAC;AAEzG,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,eAAe,GAAG,CAAC,CAAC;AAO1B,MAAM,UAAU,WAAW,CAAC,MAAiB,EAAE,SAA4B,EAAE,KAAa;IACxF,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvI,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAE3D,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACjF,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACrG,CAAC"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;oEAGoE;AAyBpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;oEAGoE;AAyBpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAkFD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CA8C5E"}
|
package/dist/server.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { createServer } from "node:http";
|
|
6
6
|
import { readFile } from "node:fs/promises";
|
|
7
7
|
import { existsSync } from "node:fs";
|
|
8
|
-
import { extname, join } from "node:path";
|
|
8
|
+
import { extname, join, sep } from "node:path";
|
|
9
9
|
import { fileURLToPath } from "node:url";
|
|
10
10
|
import { isEdgeType, isNodeType } from "@descryy/ir";
|
|
11
11
|
import { createStoreProvider, openStore } from "@descryy/core";
|
|
@@ -26,6 +26,33 @@ function json(res, status, body) {
|
|
|
26
26
|
res.writeHead(status, { "content-type": "application/json; charset=utf-8" });
|
|
27
27
|
res.end(text);
|
|
28
28
|
}
|
|
29
|
+
class BadRequestError extends Error {
|
|
30
|
+
}
|
|
31
|
+
function boundedInteger(raw, name, fallback, min, max) {
|
|
32
|
+
if (raw === null)
|
|
33
|
+
return fallback;
|
|
34
|
+
const value = raw.trim() === "" ? Number.NaN : Number(raw);
|
|
35
|
+
if (!Number.isFinite(value))
|
|
36
|
+
throw new BadRequestError(`${name} must be a number between ${min} and ${max}`);
|
|
37
|
+
return Math.max(min, Math.min(max, Math.trunc(value)));
|
|
38
|
+
}
|
|
39
|
+
function fail(res, error) {
|
|
40
|
+
if (res.headersSent) {
|
|
41
|
+
res.destroy(error instanceof Error ? error : undefined);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
const code = error.code;
|
|
45
|
+
if (code === "ENOENT" || code === "EISDIR") {
|
|
46
|
+
res.writeHead(404, { "content-type": "text/plain" });
|
|
47
|
+
res.end("not found");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (error instanceof BadRequestError) {
|
|
51
|
+
json(res, 400, { error: error.message });
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
json(res, 500, { error: error instanceof Error ? error.message : String(error) });
|
|
55
|
+
}
|
|
29
56
|
function parseTypes(raw, guard) {
|
|
30
57
|
if (raw === null || raw.trim() === "")
|
|
31
58
|
return undefined;
|
|
@@ -33,6 +60,39 @@ function parseTypes(raw, guard) {
|
|
|
33
60
|
const valid = values.filter(guard);
|
|
34
61
|
return valid.length === 0 ? undefined : valid;
|
|
35
62
|
}
|
|
63
|
+
const LOOPBACK_NAMES = ["127.0.0.1", "localhost"];
|
|
64
|
+
function boundPort(server) {
|
|
65
|
+
const address = server.address();
|
|
66
|
+
return typeof address === "object" && address !== null ? address.port : 0;
|
|
67
|
+
}
|
|
68
|
+
function applySecurityHeaders(res) {
|
|
69
|
+
res.setHeader("content-security-policy", "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'");
|
|
70
|
+
res.setHeader("x-content-type-options", "nosniff");
|
|
71
|
+
res.setHeader("referrer-policy", "no-referrer");
|
|
72
|
+
res.setHeader("cross-origin-resource-policy", "same-origin");
|
|
73
|
+
res.setHeader("cache-control", "no-store");
|
|
74
|
+
}
|
|
75
|
+
function requestRefusal(req, port) {
|
|
76
|
+
const allowedHosts = LOOPBACK_NAMES.map((name) => `${name}:${port}`);
|
|
77
|
+
const host = req.headers.host;
|
|
78
|
+
if (host === undefined || !allowedHosts.includes(host.toLowerCase())) {
|
|
79
|
+
return "the Host header is not this server's loopback address, which is how a DNS-rebinding page reaches it";
|
|
80
|
+
}
|
|
81
|
+
const origin = req.headers.origin;
|
|
82
|
+
const allowedOrigins = allowedHosts.map((allowed) => `http://${allowed}`);
|
|
83
|
+
if (origin !== undefined && !allowedOrigins.includes(origin.toLowerCase())) {
|
|
84
|
+
return "the Origin header is not this server's own origin";
|
|
85
|
+
}
|
|
86
|
+
const method = req.method ?? "GET";
|
|
87
|
+
if (method !== "GET" && method !== "HEAD" && origin === undefined) {
|
|
88
|
+
return "a request that can change state must carry this server's own Origin";
|
|
89
|
+
}
|
|
90
|
+
const fetchSite = req.headers["sec-fetch-site"];
|
|
91
|
+
if (fetchSite !== undefined && fetchSite !== "same-origin" && fetchSite !== "none") {
|
|
92
|
+
return "the browser reports this request as coming from another site";
|
|
93
|
+
}
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
36
96
|
export function startVizServer(options) {
|
|
37
97
|
if (!existsSync(options.graphPath)) {
|
|
38
98
|
throw new Error(`No graph at ${options.graphPath}. Run \`descry analyze\` (or the MCP server's analyze tool) first — ` +
|
|
@@ -41,7 +101,23 @@ export function startVizServer(options) {
|
|
|
41
101
|
const store = openStore(options.graphPath, { readOnly: options.readOnly ?? true });
|
|
42
102
|
const provider = createStoreProvider(store.driver);
|
|
43
103
|
const server = createServer((req, res) => {
|
|
44
|
-
|
|
104
|
+
applySecurityHeaders(res);
|
|
105
|
+
const refusal = requestRefusal(req, boundPort(server));
|
|
106
|
+
if (refusal !== null) {
|
|
107
|
+
res.writeHead(403, { "content-type": "text/plain; charset=utf-8" });
|
|
108
|
+
res.end(`forbidden: ${refusal}`);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (req.method !== "GET" && req.method !== "HEAD") {
|
|
112
|
+
res.writeHead(405, { "content-type": "text/plain; charset=utf-8", allow: "GET, HEAD" });
|
|
113
|
+
res.end("method not allowed");
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
handle(req, res, store, provider).catch((error) => {
|
|
117
|
+
process.stderr.write(`descry-viz: request failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
118
|
+
if (!res.writableEnded)
|
|
119
|
+
res.destroy();
|
|
120
|
+
});
|
|
45
121
|
});
|
|
46
122
|
return new Promise((resolve, reject) => {
|
|
47
123
|
server.on("error", reject);
|
|
@@ -60,8 +136,8 @@ export function startVizServer(options) {
|
|
|
60
136
|
});
|
|
61
137
|
}
|
|
62
138
|
async function handle(req, res, store, provider) {
|
|
63
|
-
const url = new URL(req.url ?? "/", "http://localhost");
|
|
64
139
|
try {
|
|
140
|
+
const url = parseRequestUrl(req.url);
|
|
65
141
|
if (url.pathname === "/api/graph-info") {
|
|
66
142
|
const stamp = provider.baseStamp();
|
|
67
143
|
json(res, 200, { stamp });
|
|
@@ -91,11 +167,9 @@ async function handle(req, res, store, provider) {
|
|
|
91
167
|
if (idsRaw === null || idsRaw.trim() === "")
|
|
92
168
|
return json(res, 400, { error: "ids is required" });
|
|
93
169
|
const seeds = idsRaw.split(",").map((s) => s.trim()).filter((s) => s !== "");
|
|
94
|
-
const
|
|
95
|
-
const depth = depthRaw === null ? 2 : Math.max(1, Math.min(6, Number(depthRaw)));
|
|
170
|
+
const depth = boundedInteger(url.searchParams.get("depth"), "depth", 2, 1, 6) ?? 2;
|
|
96
171
|
const direction = url.searchParams.get("direction");
|
|
97
|
-
const
|
|
98
|
-
const budget = budgetRaw === null ? undefined : Math.max(10, Math.min(500, Number(budgetRaw)));
|
|
172
|
+
const budget = boundedInteger(url.searchParams.get("budget"), "budget", undefined, 10, 500);
|
|
99
173
|
const edgeTypes = parseTypes(url.searchParams.get("edgeTypes"), (v) => isEdgeType(v));
|
|
100
174
|
const nodeTypesFilter = parseTypes(url.searchParams.get("nodeTypes"), (v) => isNodeType(v));
|
|
101
175
|
const subgraph = buildSubgraph(provider, seeds, {
|
|
@@ -123,7 +197,7 @@ async function handle(req, res, store, provider) {
|
|
|
123
197
|
if (pathname.includes(".."))
|
|
124
198
|
return json(res, 400, { error: "bad path" });
|
|
125
199
|
const filePath = join(PUBLIC_DIR, pathname);
|
|
126
|
-
if (!filePath.startsWith(PUBLIC_DIR))
|
|
200
|
+
if (filePath !== PUBLIC_DIR && !filePath.startsWith(`${PUBLIC_DIR}${sep}`))
|
|
127
201
|
return json(res, 400, { error: "bad path" });
|
|
128
202
|
const body = await readFile(filePath);
|
|
129
203
|
const type = CONTENT_TYPES[extname(filePath)] ?? "application/octet-stream";
|
|
@@ -131,12 +205,15 @@ async function handle(req, res, store, provider) {
|
|
|
131
205
|
res.end(body);
|
|
132
206
|
}
|
|
133
207
|
catch (error) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
208
|
+
fail(res, error);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function parseRequestUrl(raw) {
|
|
212
|
+
try {
|
|
213
|
+
return new URL(raw ?? "/", "http://localhost");
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
throw new BadRequestError("the request path is not a valid URL");
|
|
140
217
|
}
|
|
141
218
|
}
|
|
142
219
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descryy/viz",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A query-driven graph visualizer over the existing query layer: search a symbol, render its bounded neighbourhood, inspect the evidence behind a node or an edge. Never the whole graph at once.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@descryy/core": "0.
|
|
35
|
-
"@descryy/ir": "0.
|
|
34
|
+
"@descryy/core": "0.11.0",
|
|
35
|
+
"@descryy/ir": "0.12.0"
|
|
36
36
|
},
|
|
37
37
|
"scripts": {
|
|
38
38
|
"build": "tsc -b"
|
package/public/app.js
CHANGED
|
@@ -119,6 +119,12 @@ async function runSearch(q) {
|
|
|
119
119
|
});
|
|
120
120
|
els.searchResults.appendChild(row);
|
|
121
121
|
}
|
|
122
|
+
if (result.truncated) {
|
|
123
|
+
const more = document.createElement("div");
|
|
124
|
+
more.className = "search-hit";
|
|
125
|
+
more.textContent = "More matches exist. Refine the query to narrow them.";
|
|
126
|
+
els.searchResults.appendChild(more);
|
|
127
|
+
}
|
|
122
128
|
els.searchResults.hidden = false;
|
|
123
129
|
}
|
|
124
130
|
|