@descryy/viz 0.4.0 → 0.5.1
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/reliability.d.ts +2 -7
- package/dist/reliability.d.ts.map +1 -1
- package/dist/reliability.js +2 -7
- package/dist/reliability.js.map +1 -1
- package/dist/search.d.ts +3 -9
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +4 -11
- package/dist/search.js.map +1 -1
- package/dist/server.d.ts +4 -11
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -17
- package/dist/server.js.map +1 -1
- package/dist/subgraph.d.ts +7 -22
- package/dist/subgraph.d.ts.map +1 -1
- package/dist/subgraph.js +8 -27
- package/dist/subgraph.js.map +1 -1
- package/package.json +12 -3
package/dist/reliability.d.ts
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* publishes (README/CLAUDE.md: R0->C, R1->B, R2->B (A for name-level facts
|
|
4
|
-
* only), R3->A, R4->A unconditionally). Restates a decided policy for the
|
|
5
|
-
* inspector panel; computes nothing the engine does not already guarantee,
|
|
6
|
-
* and is never fed back into a query or a certificate.
|
|
7
|
-
*/
|
|
1
|
+
/** Display-only label for the resolution cap (R0->C, R1->B, R2->B/A name-level,
|
|
2
|
+
* R3->A, R4->A). Restates policy for the inspector panel; never fed back into a query or certificate. */
|
|
8
3
|
import type { ResolutionLevel } from "@descryy/ir";
|
|
9
4
|
export declare function reliabilityClassFor(resolution: ResolutionLevel): "A" | "B" | "C";
|
|
10
5
|
//# sourceMappingURL=reliability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reliability.d.ts","sourceRoot":"","sources":["../src/reliability.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reliability.d.ts","sourceRoot":"","sources":["../src/reliability.ts"],"names":[],"mappings":"AAAA;0GAC0G;AAE1G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAIhF"}
|
package/dist/reliability.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
* publishes (README/CLAUDE.md: R0->C, R1->B, R2->B (A for name-level facts
|
|
4
|
-
* only), R3->A, R4->A unconditionally). Restates a decided policy for the
|
|
5
|
-
* inspector panel; computes nothing the engine does not already guarantee,
|
|
6
|
-
* and is never fed back into a query or a certificate.
|
|
7
|
-
*/
|
|
1
|
+
/** Display-only label for the resolution cap (R0->C, R1->B, R2->B/A name-level,
|
|
2
|
+
* R3->A, R4->A). Restates policy for the inspector panel; never fed back into a query or certificate. */
|
|
8
3
|
export function reliabilityClassFor(resolution) {
|
|
9
4
|
if (resolution >= 3)
|
|
10
5
|
return "A";
|
package/dist/reliability.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reliability.js","sourceRoot":"","sources":["../src/reliability.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"reliability.js","sourceRoot":"","sources":["../src/reliability.ts"],"names":[],"mappings":"AAAA;0GAC0G;AAI1G,MAAM,UAAU,mBAAmB,CAAC,UAA2B;IAC7D,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,IAAI,UAAU,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/search.d.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* `name`/`file`, the same primitive `descry-mcp`'s `lookup.ts` uses; a
|
|
5
|
-
* developer typing a partial name needs more than that, so this adds a
|
|
6
|
-
* bounded substring scan over `AdjacencyProvider.nodesOfType` — an existing
|
|
7
|
-
* query, not a new one. No SQL beyond what `findNodes`/`nodesOfType` already
|
|
8
|
-
* run.
|
|
9
|
-
*/
|
|
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. */
|
|
10
4
|
import type { IRNode } from "@descryy/ir";
|
|
11
5
|
import { type AdjacencyProvider, type SqlDriver } from "@descryy/core";
|
|
12
6
|
export interface SearchResult {
|
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;;sFAEsF;AAEtF,OAAO,KAAK,EAAE,MAAM,EAAY,MAAM,aAAa,CAAC;AACpD,OAAO,EAAa,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAsBlF,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,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY,CA4BvG"}
|
package/dist/search.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* `name`/`file`, the same primitive `descry-mcp`'s `lookup.ts` uses; a
|
|
5
|
-
* developer typing a partial name needs more than that, so this adds a
|
|
6
|
-
* bounded substring scan over `AdjacencyProvider.nodesOfType` — an existing
|
|
7
|
-
* query, not a new one. No SQL beyond what `findNodes`/`nodesOfType` already
|
|
8
|
-
* run.
|
|
9
|
-
*/
|
|
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. */
|
|
10
4
|
import { findNodes } from "@descryy/core";
|
|
11
5
|
/** Node types worth scanning by substring. Fileless types (API_ENDPOINT) still carry a name. */
|
|
12
6
|
const SEARCHABLE_TYPES = [
|
|
@@ -30,8 +24,7 @@ export function searchNodes(driver, provider, query) {
|
|
|
30
24
|
const q = query.trim();
|
|
31
25
|
if (q === "")
|
|
32
26
|
return { nodes: [], truncated: false };
|
|
33
|
-
// Exact match first — cheap, indexed,
|
|
34
|
-
// the whole name.
|
|
27
|
+
// Exact match first — cheap, indexed, correct when the developer typed the whole name.
|
|
35
28
|
const exact = findNodes(driver, { name: q, limit: MAX_RESULTS });
|
|
36
29
|
const seen = new Set(exact.map((n) => n.id));
|
|
37
30
|
const results = [...exact];
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA;;sFAEsF;AAGtF,OAAO,EAAE,SAAS,EAA0C,MAAM,eAAe,CAAC;AAElF,gGAAgG;AAChG,MAAM,gBAAgB,GAAwB;IAC5C,UAAU;IACV,OAAO;IACP,QAAQ;IACR,MAAM;IACN,WAAW;IACX,cAAc;IACd,WAAW;IACX,MAAM;IACN,OAAO;IACP,KAAK;IACL,gBAAgB;IAChB,WAAW;CACZ,CAAC;AAEF,mFAAmF;AACnF,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAClC,MAAM,WAAW,GAAG,EAAE,CAAC;AAOvB,MAAM,UAAU,WAAW,CAAC,MAAiB,EAAE,QAA2B,EAAE,KAAa;IACvF,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAErD,uFAAuF;IACvF,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW;YAAE,MAAM;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAC5D,IAAI,GAAG,CAAC,SAAS;YAAE,gBAAgB,GAAG,IAAI,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW;gBAAE,MAAM;YACzC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,SAAS;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM;gBAAE,SAAS;YACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,IAAI,OAAO,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;AAC1F,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* one of them a thin wrapper over an existing `@descryy/core` export. No new
|
|
6
|
-
* SQL, no new store access path, no new query beyond `findNodes`, `getNode`,
|
|
7
|
-
* `nodesOfType` and `bfs` (via `buildSubgraph`).
|
|
8
|
-
*
|
|
9
|
-
* Local mode, no hosted backend, no network call this process makes to
|
|
10
|
-
* anywhere: it opens the local graph file read-only and serves one machine.
|
|
11
|
-
*/
|
|
1
|
+
/** `descry viz`'s HTTP layer. Plain `node:http` — no framework/bundler (tsc only).
|
|
2
|
+
* Serves `public/`'s static frontend plus read-only JSON endpoints, each a thin
|
|
3
|
+
* wrapper over an existing `@descryy/core` export. Local mode — opens the graph
|
|
4
|
+
* file read-only, no network call anywhere, serves one machine. */
|
|
12
5
|
export interface VizServerOptions {
|
|
13
6
|
readonly graphPath: string;
|
|
14
7
|
readonly port?: number;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA
|
|
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;AAeD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC,CA+B5E"}
|
package/dist/server.js
CHANGED
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* one of them a thin wrapper over an existing `@descryy/core` export. No new
|
|
6
|
-
* SQL, no new store access path, no new query beyond `findNodes`, `getNode`,
|
|
7
|
-
* `nodesOfType` and `bfs` (via `buildSubgraph`).
|
|
8
|
-
*
|
|
9
|
-
* Local mode, no hosted backend, no network call this process makes to
|
|
10
|
-
* anywhere: it opens the local graph file read-only and serves one machine.
|
|
11
|
-
*/
|
|
1
|
+
/** `descry viz`'s HTTP layer. Plain `node:http` — no framework/bundler (tsc only).
|
|
2
|
+
* Serves `public/`'s static frontend plus read-only JSON endpoints, each a thin
|
|
3
|
+
* wrapper over an existing `@descryy/core` export. Local mode — opens the graph
|
|
4
|
+
* file read-only, no network call anywhere, serves one machine. */
|
|
12
5
|
import { createServer } from "node:http";
|
|
13
6
|
import { readFile } from "node:fs/promises";
|
|
14
7
|
import { existsSync } from "node:fs";
|
|
@@ -20,10 +13,7 @@ import { buildSubgraph } from "./subgraph.js";
|
|
|
20
13
|
import { searchNodes } from "./search.js";
|
|
21
14
|
import { reliabilityClassFor } from "./reliability.js";
|
|
22
15
|
const PUBLIC_DIR = join(fileURLToPath(new URL(".", import.meta.url)), "..", "public");
|
|
23
|
-
//
|
|
24
|
-
// not an engine decision about which programming language it understands —
|
|
25
|
-
// allowlisted in boundary-allowlist.json for exactly that reason, on this
|
|
26
|
-
// exact literal.
|
|
16
|
+
// `.js`'s MIME type is IANA's own registered name, not an engine language decision — allowlisted on this literal.
|
|
27
17
|
const CHARSET = "; charset=utf-8";
|
|
28
18
|
const CONTENT_TYPES = {
|
|
29
19
|
".html": `text/html${CHARSET}`,
|
|
@@ -128,8 +118,7 @@ async function handle(req, res, store, provider) {
|
|
|
128
118
|
});
|
|
129
119
|
return;
|
|
130
120
|
}
|
|
131
|
-
// Static assets
|
|
132
|
-
// join with a traversal guard is sufficient, no framework needed for it.
|
|
121
|
+
// Static assets — `public/` is small and fixed at build time, a plain path join with a traversal guard suffices.
|
|
133
122
|
const pathname = url.pathname === "/" ? "/index.html" : url.pathname;
|
|
134
123
|
if (pathname.includes(".."))
|
|
135
124
|
return json(res, 400, { error: "bad path" });
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/subgraph.d.ts
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* "Don't try to visualize the entire 10,000+ node graph at once" is the
|
|
6
|
-
* user's own constraint. `bfs` (query/traverse.ts) already enforces a node
|
|
7
|
-
* budget and a depth cap — this module does not reimplement that, it composes
|
|
8
|
-
* it. What it adds is the one thing `bfs` does not do: after reachability is
|
|
9
|
-
* known, collect *every* edge between two reached nodes, not just the
|
|
10
|
-
* BFS-tree edge that first discovered each one. A caller-reaches-endpoint
|
|
11
|
-
* cross-language join is exactly the shape where a second real edge between
|
|
12
|
-
* two already-reached nodes would otherwise be invisible.
|
|
13
|
-
*/
|
|
1
|
+
/** Turns a search hit into a bounded neighbourhood, never the whole graph — the
|
|
2
|
+
* user's own "don't visualize 10,000+ nodes at once" constraint. Composes `bfs`'s
|
|
3
|
+
* budget/depth cap, then adds what `bfs` doesn't: collects *every* edge between
|
|
4
|
+
* two reached nodes, not just the BFS-tree edge that first discovered each one. */
|
|
14
5
|
import type { EdgeType, IREdge, IRNode } from "@descryy/ir";
|
|
15
6
|
import { type AdjacencyProvider, type Direction, type GraphStamp } from "@descryy/core";
|
|
16
7
|
export interface SubgraphOptions {
|
|
@@ -27,14 +18,8 @@ export interface Subgraph {
|
|
|
27
18
|
readonly stamp: GraphStamp;
|
|
28
19
|
readonly notes: readonly string[];
|
|
29
20
|
}
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* `edgeTypes` filters which edges *expand the walk* (an unchecked filter
|
|
34
|
-
* would silently widen the neighbourhood past what a filtered view implies)
|
|
35
|
-
* and, identically, which edges are collected in the second pass below — the
|
|
36
|
-
* two must agree or the rendered graph would show an edge type the user just
|
|
37
|
-
* filtered out.
|
|
38
|
-
*/
|
|
21
|
+
/** Seed(s) in, a bounded, renderable neighbourhood out. `edgeTypes` filters both
|
|
22
|
+
* which edges expand the walk and which are collected below — the two must agree
|
|
23
|
+
* or the render would show an edge type the user just filtered out. */
|
|
39
24
|
export declare function buildSubgraph(provider: AdjacencyProvider, seeds: readonly string[], options?: SubgraphOptions): Subgraph;
|
|
40
25
|
//# sourceMappingURL=subgraph.d.ts.map
|
package/dist/subgraph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../src/subgraph.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"subgraph.d.ts","sourceRoot":"","sources":["../src/subgraph.ts"],"names":[],"mappings":"AAAA;;;oFAGoF;AAEpF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,EAAO,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAE7F,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAID;;wEAEwE;AACxE,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,GAAE,eAAoB,GAC5B,QAAQ,CAiDV"}
|
package/dist/subgraph.js
CHANGED
|
@@ -1,27 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* "Don't try to visualize the entire 10,000+ node graph at once" is the
|
|
6
|
-
* user's own constraint. `bfs` (query/traverse.ts) already enforces a node
|
|
7
|
-
* budget and a depth cap — this module does not reimplement that, it composes
|
|
8
|
-
* it. What it adds is the one thing `bfs` does not do: after reachability is
|
|
9
|
-
* known, collect *every* edge between two reached nodes, not just the
|
|
10
|
-
* BFS-tree edge that first discovered each one. A caller-reaches-endpoint
|
|
11
|
-
* cross-language join is exactly the shape where a second real edge between
|
|
12
|
-
* two already-reached nodes would otherwise be invisible.
|
|
13
|
-
*/
|
|
1
|
+
/** Turns a search hit into a bounded neighbourhood, never the whole graph — the
|
|
2
|
+
* user's own "don't visualize 10,000+ nodes at once" constraint. Composes `bfs`'s
|
|
3
|
+
* budget/depth cap, then adds what `bfs` doesn't: collects *every* edge between
|
|
4
|
+
* two reached nodes, not just the BFS-tree edge that first discovered each one. */
|
|
14
5
|
import { bfs } from "@descryy/core";
|
|
15
6
|
const DEFAULT_BUDGET = 150;
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* `edgeTypes` filters which edges *expand the walk* (an unchecked filter
|
|
20
|
-
* would silently widen the neighbourhood past what a filtered view implies)
|
|
21
|
-
* and, identically, which edges are collected in the second pass below — the
|
|
22
|
-
* two must agree or the rendered graph would show an edge type the user just
|
|
23
|
-
* filtered out.
|
|
24
|
-
*/
|
|
7
|
+
/** Seed(s) in, a bounded, renderable neighbourhood out. `edgeTypes` filters both
|
|
8
|
+
* which edges expand the walk and which are collected below — the two must agree
|
|
9
|
+
* or the render would show an edge type the user just filtered out. */
|
|
25
10
|
export function buildSubgraph(provider, seeds, options = {}) {
|
|
26
11
|
const budget = options.budget ?? DEFAULT_BUDGET;
|
|
27
12
|
const outcome = bfs(provider, seeds, {
|
|
@@ -37,11 +22,7 @@ export function buildSubgraph(provider, seeds, options = {}) {
|
|
|
37
22
|
if (node !== undefined)
|
|
38
23
|
nodes.push(node);
|
|
39
24
|
}
|
|
40
|
-
// Second pass: every edge with both ends
|
|
41
|
-
// BFS-tree edge each node was first discovered through. `bfs` records one
|
|
42
|
-
// `via` edge per node; a real graph can have several edges between two
|
|
43
|
-
// nodes it has already reached (the cross-language join case named above),
|
|
44
|
-
// and those would otherwise never appear.
|
|
25
|
+
// Second pass: every edge with both ends reached, not only each node's BFS-tree `via` edge.
|
|
45
26
|
const seen = new Set();
|
|
46
27
|
const edges = [];
|
|
47
28
|
const edgeKey = (e) => `${e.from}\u0000${e.to}\u0000${e.type}`;
|
package/dist/subgraph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../src/subgraph.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../src/subgraph.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@descryy/viz",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
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",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/descryhq-wq/descry-core.git",
|
|
10
|
+
"directory": "packages/viz"
|
|
11
|
+
},
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/descryhq-wq/descry-core/issues"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://github.com/descryhq-wq/descry-core#readme",
|
|
7
16
|
"engines": {
|
|
8
17
|
"node": ">=22.5"
|
|
9
18
|
},
|
|
@@ -25,7 +34,7 @@
|
|
|
25
34
|
"build": "tsc -b"
|
|
26
35
|
},
|
|
27
36
|
"dependencies": {
|
|
28
|
-
"@descryy/core": "0.
|
|
29
|
-
"@descryy/ir": "0.
|
|
37
|
+
"@descryy/core": "0.5.1",
|
|
38
|
+
"@descryy/ir": "0.5.1"
|
|
30
39
|
}
|
|
31
40
|
}
|