@mka-rainmaker/ama 0.1.2 → 0.3.0
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/README.md +81 -53
- package/dist/analyzers/baseline/analyzer.d.ts +9 -0
- package/dist/analyzers/baseline/analyzer.d.ts.map +1 -1
- package/dist/analyzers/baseline/analyzer.js +5 -0
- package/dist/analyzers/baseline/analyzer.js.map +1 -1
- package/dist/analyzers/baseline/go.d.ts.map +1 -1
- package/dist/analyzers/baseline/go.js +67 -0
- package/dist/analyzers/baseline/go.js.map +1 -1
- package/dist/analyzers/baseline/java.d.ts.map +1 -1
- package/dist/analyzers/baseline/java.js +84 -0
- package/dist/analyzers/baseline/java.js.map +1 -1
- package/dist/analyzers/baseline/php.d.ts.map +1 -1
- package/dist/analyzers/baseline/php.js +56 -0
- package/dist/analyzers/baseline/php.js.map +1 -1
- package/dist/analyzers/baseline/python.d.ts.map +1 -1
- package/dist/analyzers/baseline/python.js +178 -2
- package/dist/analyzers/baseline/python.js.map +1 -1
- package/dist/analyzers/baseline/rust.d.ts.map +1 -1
- package/dist/analyzers/baseline/rust.js +80 -0
- package/dist/analyzers/baseline/rust.js.map +1 -1
- package/dist/analyzers/sidecar/protocol.d.ts +28 -28
- package/dist/analyzers/typescript/analyzer.d.ts.map +1 -1
- package/dist/analyzers/typescript/analyzer.js +51 -1
- package/dist/analyzers/typescript/analyzer.js.map +1 -1
- package/dist/api.d.ts +34 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +38 -0
- package/dist/api.js.map +1 -0
- package/dist/cli/agents.d.ts +11 -2
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +39 -0
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +31 -8
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +27 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +136 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/graph/index.d.ts +3 -1
- package/dist/graph/index.d.ts.map +1 -1
- package/dist/graph/index.js +3 -1
- package/dist/graph/index.js.map +1 -1
- package/dist/graph/prisma-link.d.ts +9 -4
- package/dist/graph/prisma-link.d.ts.map +1 -1
- package/dist/graph/prisma-link.js +25 -10
- package/dist/graph/prisma-link.js.map +1 -1
- package/dist/graph/python-calls.d.ts +14 -0
- package/dist/graph/python-calls.d.ts.map +1 -0
- package/dist/graph/python-calls.js +0 -0
- package/dist/graph/python-calls.js.map +1 -0
- package/dist/graph/route-tests.d.ts +15 -0
- package/dist/graph/route-tests.d.ts.map +1 -0
- package/dist/graph/route-tests.js +67 -0
- package/dist/graph/route-tests.js.map +1 -0
- package/dist/graph/types.d.ts +1 -1
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/indexer/ignore.d.ts.map +1 -1
- package/dist/indexer/ignore.js +13 -1
- package/dist/indexer/ignore.js.map +1 -1
- package/dist/indexer/indexer.d.ts.map +1 -1
- package/dist/indexer/indexer.js +22 -1
- package/dist/indexer/indexer.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +7 -2
- package/dist/mcp/server.js.map +1 -1
- package/dist/query/service.d.ts +3 -0
- package/dist/query/service.d.ts.map +1 -1
- package/dist/query/service.js +19 -2
- package/dist/query/service.js.map +1 -1
- package/package.json +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,MAAM,EAEN,YAAY,EACZ,aAAa,EACb,gBAAgB,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CliCommand } from "../index.js";
|
|
2
|
+
/** How the running `ama` was installed — determines how (and whether) we can self-update. */
|
|
3
|
+
export type InstallMethod = "bundle" | "npm" | "npx" | "source" | "unknown";
|
|
4
|
+
/**
|
|
5
|
+
* Classify the install from the running CLI module's directory. `exists` probes for the bundle's
|
|
6
|
+
* vendored node (injectable for tests). Order matters: an npx run lives under `node_modules` too,
|
|
7
|
+
* so it's checked first; a bundle's `dist` lives under `lib/`, never under `node_modules`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function detectInstall(moduleDir: string, exists?: (p: string) => boolean): InstallMethod;
|
|
10
|
+
/** The action to take for a given install method — either a command to run or a message to print. */
|
|
11
|
+
export type UpgradePlan = {
|
|
12
|
+
kind: "run";
|
|
13
|
+
command: string;
|
|
14
|
+
args: string[];
|
|
15
|
+
note: string;
|
|
16
|
+
} | {
|
|
17
|
+
kind: "message";
|
|
18
|
+
text: string;
|
|
19
|
+
};
|
|
20
|
+
/** Decide how to update `version` ("latest" or a pinned tag) for the detected method. Pure. */
|
|
21
|
+
export declare function upgradePlan(method: InstallMethod, version: string, opts?: {
|
|
22
|
+
isWindows?: boolean;
|
|
23
|
+
}): UpgradePlan;
|
|
24
|
+
/** Numeric semver "greater than" — `a` newer than `b`. Ignores any leading `v` (strip before call). */
|
|
25
|
+
export declare function isNewer(a: string, b: string): boolean;
|
|
26
|
+
export declare const upgradeCommand: CliCommand;
|
|
27
|
+
//# sourceMappingURL=upgrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,6FAA6F;AAC7F,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAoB,GAC1C,aAAa,CAaf;AAED,qGAAqG;AACrG,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,+FAA+F;AAC/F,wBAAgB,WAAW,CACzB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,WAAW,CAoCb;AAED,uGAAuG;AACvG,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CASrD;AAgBD,eAAO,MAAM,cAAc,EAAE,UA2C5B,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import * as path from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import { serverStamp } from "../../mcp/build-info.js";
|
|
6
|
+
const REPO = "mka-rainmaker/ama";
|
|
7
|
+
const PKG = "@mka-rainmaker/ama";
|
|
8
|
+
/**
|
|
9
|
+
* Classify the install from the running CLI module's directory. `exists` probes for the bundle's
|
|
10
|
+
* vendored node (injectable for tests). Order matters: an npx run lives under `node_modules` too,
|
|
11
|
+
* so it's checked first; a bundle's `dist` lives under `lib/`, never under `node_modules`.
|
|
12
|
+
*/
|
|
13
|
+
export function detectInstall(moduleDir, exists = existsSync) {
|
|
14
|
+
const norm = moduleDir.replace(/\\/g, "/"); // normalize Windows backslashes on any host (1:1 → indices align)
|
|
15
|
+
if (norm.includes("/_npx/"))
|
|
16
|
+
return "npx";
|
|
17
|
+
if (norm.includes("/node_modules/"))
|
|
18
|
+
return "npm";
|
|
19
|
+
if (norm.includes("/src/cli"))
|
|
20
|
+
return "source";
|
|
21
|
+
const i = norm.indexOf("/lib/dist/");
|
|
22
|
+
if (i !== -1) {
|
|
23
|
+
const root = moduleDir.slice(0, i); // single-char sep replace preserves indices
|
|
24
|
+
if (exists(path.join(root, "node", "node")) || exists(path.join(root, "node", "node.exe"))) {
|
|
25
|
+
return "bundle";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return "unknown";
|
|
29
|
+
}
|
|
30
|
+
/** Decide how to update `version` ("latest" or a pinned tag) for the detected method. Pure. */
|
|
31
|
+
export function upgradePlan(method, version, opts = {}) {
|
|
32
|
+
switch (method) {
|
|
33
|
+
case "npm":
|
|
34
|
+
return {
|
|
35
|
+
kind: "run",
|
|
36
|
+
command: "npm",
|
|
37
|
+
args: ["install", "-g", `${PKG}@${version}`],
|
|
38
|
+
note: `npm global install of ${PKG}@${version}`,
|
|
39
|
+
};
|
|
40
|
+
case "bundle": {
|
|
41
|
+
const url = `https://raw.githubusercontent.com/${REPO}/main/install.${opts.isWindows ? "ps1" : "sh"}`;
|
|
42
|
+
const cmd = opts.isWindows ? `irm ${url} | iex` : `curl -fsSL ${url} | sh`;
|
|
43
|
+
const pin = version === "latest"
|
|
44
|
+
? ""
|
|
45
|
+
: opts.isWindows
|
|
46
|
+
? `$env:AMA_VERSION="${version}"; `
|
|
47
|
+
: `AMA_VERSION=${version} `;
|
|
48
|
+
return { kind: "message", text: `Re-run the installer to update in place:\n ${pin}${cmd}` };
|
|
49
|
+
}
|
|
50
|
+
case "npx":
|
|
51
|
+
return {
|
|
52
|
+
kind: "message",
|
|
53
|
+
text: `npx runs the latest published version each time — nothing to upgrade. Pin a run with: npx ${PKG}@${version}`,
|
|
54
|
+
};
|
|
55
|
+
case "source":
|
|
56
|
+
return {
|
|
57
|
+
kind: "message",
|
|
58
|
+
text: "Running from a source checkout — update with git (e.g. `git pull`).",
|
|
59
|
+
};
|
|
60
|
+
default:
|
|
61
|
+
return {
|
|
62
|
+
kind: "message",
|
|
63
|
+
text: `Couldn't determine how ama was installed. Reinstall with \`npm i -g ${PKG}\` or the bundle installer (see the README).`,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Numeric semver "greater than" — `a` newer than `b`. Ignores any leading `v` (strip before call). */
|
|
68
|
+
export function isNewer(a, b) {
|
|
69
|
+
const pa = a.split(".").map(Number);
|
|
70
|
+
const pb = b.split(".").map(Number);
|
|
71
|
+
for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
|
|
72
|
+
const x = pa[i] ?? 0;
|
|
73
|
+
const y = pb[i] ?? 0;
|
|
74
|
+
if (x !== y)
|
|
75
|
+
return x > y;
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
/** Latest released version (tag without the leading `v`), or null if unreachable / none yet. */
|
|
80
|
+
async function latestRelease() {
|
|
81
|
+
try {
|
|
82
|
+
const res = await fetch(`https://api.github.com/repos/${REPO}/releases/latest`, {
|
|
83
|
+
headers: { "user-agent": "ama-cli", accept: "application/vnd.github+json" },
|
|
84
|
+
});
|
|
85
|
+
if (!res.ok)
|
|
86
|
+
return null;
|
|
87
|
+
const data = (await res.json());
|
|
88
|
+
return data.tag_name ? data.tag_name.replace(/^v/, "") : null;
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export const upgradeCommand = {
|
|
95
|
+
name: "upgrade",
|
|
96
|
+
summary: "Update ama in place (auto-detects how it was installed); --check to see the latest",
|
|
97
|
+
usage: "ama upgrade [<version>] [--check] [--dry-run]",
|
|
98
|
+
async run(args, ctx) {
|
|
99
|
+
const check = args.includes("--check");
|
|
100
|
+
const dryRun = args.includes("--dry-run");
|
|
101
|
+
const version = args.find((a) => !a.startsWith("-")) ?? "latest";
|
|
102
|
+
const moduleDir = path.dirname(fileURLToPath(import.meta.url));
|
|
103
|
+
const method = detectInstall(moduleDir);
|
|
104
|
+
const current = serverStamp.version;
|
|
105
|
+
ctx.write(`ama ${current} — installed via: ${method}`);
|
|
106
|
+
if (check) {
|
|
107
|
+
const latest = await latestRelease();
|
|
108
|
+
if (!latest) {
|
|
109
|
+
ctx.write("Couldn't reach the release feed (or no releases are published yet).");
|
|
110
|
+
return 0;
|
|
111
|
+
}
|
|
112
|
+
ctx.write(isNewer(latest, current)
|
|
113
|
+
? `Update available: ${latest} (run \`ama upgrade\`).`
|
|
114
|
+
: `Up to date — ${latest} is the latest release.`);
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
117
|
+
const plan = upgradePlan(method, version, { isWindows: process.platform === "win32" });
|
|
118
|
+
if (plan.kind === "message") {
|
|
119
|
+
ctx.write(plan.text);
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
ctx.write(`${dryRun ? "would run" : "running"}: ${plan.command} ${plan.args.join(" ")}`);
|
|
123
|
+
if (dryRun)
|
|
124
|
+
return 0;
|
|
125
|
+
try {
|
|
126
|
+
// shell:true so `npm` resolves to npm.cmd on Windows; args are fixed literals (no injection).
|
|
127
|
+
execFileSync(plan.command, plan.args, { stdio: "inherit", shell: true });
|
|
128
|
+
return 0;
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
ctx.error?.(`upgrade failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
132
|
+
return 1;
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAkCA,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B;;;;;OAKG;IACH,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B;wFACoF;IACpF,KAAK,CAAC,IAAI,MAAM,CAAC;CAClB;AAED,qCAAqC;AACrC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAgBD;;;;GAIG;AACH,wBAAsB,GAAG,CACvB,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkD,EACzE,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkD,GACxE,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAaD;8CAC8C;AAC9C,eAAO,MAAM,QAAQ,EAAE,SAAS,UAAU,EAgCzC,CAAC;AAEF,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAY1C"}
|
package/dist/cli/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { calleesCommand, callersCommand, exploreCommand, handlersCommand, implem
|
|
|
12
12
|
import { searchCodeCommand, searchCommand } from "./commands/search.js";
|
|
13
13
|
import { statusCommand } from "./commands/status.js";
|
|
14
14
|
import { syncCommand } from "./commands/sync.js";
|
|
15
|
+
import { upgradeCommand } from "./commands/upgrade.js";
|
|
15
16
|
function usage(commands) {
|
|
16
17
|
const lines = ["Usage: ama [--json] <command> [args]", "", "Commands:"];
|
|
17
18
|
// The MCP server is the primary way agents use Ama; the rest are one-shot CLI queries.
|
|
@@ -104,6 +105,7 @@ export const COMMANDS = [
|
|
|
104
105
|
typesUsedCommand,
|
|
105
106
|
uninitCommand,
|
|
106
107
|
uninstallCommand,
|
|
108
|
+
upgradeCommand,
|
|
107
109
|
];
|
|
108
110
|
export async function main() {
|
|
109
111
|
const argv = process.argv.slice(2);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export type { NodeKind, EdgeKind, EdgeProvenance, Tier, SourceRange, GraphNode, GraphEdge, } from "./types.js";
|
|
2
2
|
export { NODE_KINDS, EDGE_KINDS } from "./types.js";
|
|
3
3
|
export { deriveDispatchEdges } from "./dispatch.js";
|
|
4
|
-
export { derivePrismaReferences, PRISMA_REF_PREFIX } from "./prisma-link.js";
|
|
4
|
+
export { derivePrismaReferences, PRISMA_FIELD_REF_PREFIX, PRISMA_REF_PREFIX, } from "./prisma-link.js";
|
|
5
|
+
export { deriveCallEdges, CALL_REF_PREFIX } from "./python-calls.js";
|
|
6
|
+
export { deriveRouteTestEdges, ROUTE_REF_PREFIX } from "./route-tests.js";
|
|
5
7
|
export { symbolId, fileId } from "./id.js";
|
|
6
8
|
export type { SymbolLocation } from "./id.js";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
package/dist/graph/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { NODE_KINDS, EDGE_KINDS } from "./types.js";
|
|
2
2
|
export { deriveDispatchEdges } from "./dispatch.js";
|
|
3
|
-
export { derivePrismaReferences, PRISMA_REF_PREFIX } from "./prisma-link.js";
|
|
3
|
+
export { derivePrismaReferences, PRISMA_FIELD_REF_PREFIX, PRISMA_REF_PREFIX, } from "./prisma-link.js";
|
|
4
|
+
export { deriveCallEdges, CALL_REF_PREFIX } from "./python-calls.js";
|
|
5
|
+
export { deriveRouteTestEdges, ROUTE_REF_PREFIX } from "./route-tests.js";
|
|
4
6
|
export { symbolId, fileId } from "./id.js";
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/dist/graph/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -3,13 +3,18 @@ import type { GraphEdge, GraphNode } from "./types.js";
|
|
|
3
3
|
* is this prefix + the accessed property (lowercased) — a model *name*, not a node id. A
|
|
4
4
|
* whole-graph pass ({@link derivePrismaReferences}) resolves it to the model node. (ama-kvv) */
|
|
5
5
|
export declare const PRISMA_REF_PREFIX = "prisma:model:";
|
|
6
|
+
/** The TS analyzer also tags each field key used in a `prisma.<model>` query (the keys of its
|
|
7
|
+
* where/select/data/orderBy objects) with this prefix + `<model>.<field>` (lowercased).
|
|
8
|
+
* {@link derivePrismaReferences} resolves it to the schema's `Model.field` Property. (ama-bgu) */
|
|
9
|
+
export declare const PRISMA_FIELD_REF_PREFIX = "prisma:field:";
|
|
6
10
|
/**
|
|
7
11
|
* Resolve the raw `prisma-ref` candidates into `prisma` References edges pointing at schema
|
|
8
|
-
*
|
|
9
|
-
*
|
|
12
|
+
* nodes — a `prisma:model:` candidate → the model Class, a `prisma:field:` candidate → the
|
|
13
|
+
* `Model.field` Property. Pure and whole-graph — it needs both the TS candidates and the Prisma
|
|
14
|
+
* schema nodes in view, which only the indexer has once every analyzer has run, so (like
|
|
10
15
|
* {@link deriveDispatchEdges}) it can't be computed inside a single analyzer's batch. A
|
|
11
|
-
* candidate
|
|
12
|
-
*
|
|
16
|
+
* candidate that matches no schema model/field is dropped, so false positives from the
|
|
17
|
+
* name-based detection (`db.connect()`, an HTTP `client.users`) self-filter. (ama-kvv, ama-bgu)
|
|
13
18
|
*/
|
|
14
19
|
export declare function derivePrismaReferences(nodes: GraphNode[], edges: GraphEdge[]): GraphEdge[];
|
|
15
20
|
//# sourceMappingURL=prisma-link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-link.d.ts","sourceRoot":"","sources":["../../src/graph/prisma-link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD;;iGAEiG;AACjG,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"prisma-link.d.ts","sourceRoot":"","sources":["../../src/graph/prisma-link.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD;;iGAEiG;AACjG,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;mGAEmG;AACnG,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAwB1F"}
|
|
@@ -2,30 +2,45 @@
|
|
|
2
2
|
* is this prefix + the accessed property (lowercased) — a model *name*, not a node id. A
|
|
3
3
|
* whole-graph pass ({@link derivePrismaReferences}) resolves it to the model node. (ama-kvv) */
|
|
4
4
|
export const PRISMA_REF_PREFIX = "prisma:model:";
|
|
5
|
+
/** The TS analyzer also tags each field key used in a `prisma.<model>` query (the keys of its
|
|
6
|
+
* where/select/data/orderBy objects) with this prefix + `<model>.<field>` (lowercased).
|
|
7
|
+
* {@link derivePrismaReferences} resolves it to the schema's `Model.field` Property. (ama-bgu) */
|
|
8
|
+
export const PRISMA_FIELD_REF_PREFIX = "prisma:field:";
|
|
5
9
|
/**
|
|
6
10
|
* Resolve the raw `prisma-ref` candidates into `prisma` References edges pointing at schema
|
|
7
|
-
*
|
|
8
|
-
*
|
|
11
|
+
* nodes — a `prisma:model:` candidate → the model Class, a `prisma:field:` candidate → the
|
|
12
|
+
* `Model.field` Property. Pure and whole-graph — it needs both the TS candidates and the Prisma
|
|
13
|
+
* schema nodes in view, which only the indexer has once every analyzer has run, so (like
|
|
9
14
|
* {@link deriveDispatchEdges}) it can't be computed inside a single analyzer's batch. A
|
|
10
|
-
* candidate
|
|
11
|
-
*
|
|
15
|
+
* candidate that matches no schema model/field is dropped, so false positives from the
|
|
16
|
+
* name-based detection (`db.connect()`, an HTTP `client.users`) self-filter. (ama-kvv, ama-bgu)
|
|
12
17
|
*/
|
|
13
18
|
export function derivePrismaReferences(nodes, edges) {
|
|
14
19
|
const modelByName = new Map();
|
|
20
|
+
const fieldByName = new Map();
|
|
15
21
|
for (const n of nodes) {
|
|
16
|
-
//
|
|
17
|
-
|
|
22
|
+
// Prisma schema nodes (see PrismaAnalyzer): a model is a Class, a field a Property
|
|
23
|
+
// qualified as `Model.field` — both defined in a .prisma file.
|
|
24
|
+
if (!n.file.endsWith(".prisma"))
|
|
25
|
+
continue;
|
|
26
|
+
if (n.kind === "Class")
|
|
18
27
|
modelByName.set(n.name.toLowerCase(), n.id);
|
|
28
|
+
else if (n.kind === "Property")
|
|
29
|
+
fieldByName.set(n.qualifiedName.toLowerCase(), n.id);
|
|
19
30
|
}
|
|
20
31
|
if (modelByName.size === 0)
|
|
21
32
|
return [];
|
|
22
33
|
const out = [];
|
|
23
34
|
for (const e of edges) {
|
|
24
|
-
if (e.provenance !== "prisma-ref"
|
|
35
|
+
if (e.provenance !== "prisma-ref")
|
|
25
36
|
continue;
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
37
|
+
const targetId = e.to.startsWith(PRISMA_FIELD_REF_PREFIX)
|
|
38
|
+
? fieldByName.get(e.to.slice(PRISMA_FIELD_REF_PREFIX.length))
|
|
39
|
+
: e.to.startsWith(PRISMA_REF_PREFIX)
|
|
40
|
+
? modelByName.get(e.to.slice(PRISMA_REF_PREFIX.length))
|
|
41
|
+
: undefined;
|
|
42
|
+
if (targetId && targetId !== e.from) {
|
|
43
|
+
out.push({ from: e.from, to: targetId, kind: "References", provenance: "prisma" });
|
|
29
44
|
}
|
|
30
45
|
}
|
|
31
46
|
return out;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-link.js","sourceRoot":"","sources":["../../src/graph/prisma-link.ts"],"names":[],"mappings":"AAEA;;iGAEiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"prisma-link.js","sourceRoot":"","sources":["../../src/graph/prisma-link.ts"],"names":[],"mappings":"AAEA;;iGAEiG;AACjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD;;mGAEmG;AACnG,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkB,EAAE,KAAkB;IAC3E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,mFAAmF;QACnF,+DAA+D;QAC/D,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;aAC/D,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;YAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,UAAU,KAAK,YAAY;YAAE,SAAS;QAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC;YACvD,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBAClC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;gBACvD,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,QAAQ,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { GraphEdge, GraphNode } from "./types.js";
|
|
2
|
+
/** A baseline call detector tags a non-local call with this prefix + the callee's simple name;
|
|
3
|
+
* {@link deriveCallEdges} resolves it whole-graph to a function in an imported file. (ama-bnj) */
|
|
4
|
+
export declare const CALL_REF_PREFIX = "call:";
|
|
5
|
+
/**
|
|
6
|
+
* Resolve `call:<name>` candidates (provenance `call-ref`, emitted by the baseline call detector
|
|
7
|
+
* for calls it can't resolve within the file) into `Calls` edges, by finding a function named
|
|
8
|
+
* `<name>` in a file the caller's file imports. Import-guided + name-based — precise enough for a
|
|
9
|
+
* syntactic tier; a name in no imported file is dropped. Pure + whole-graph: the candidate and the
|
|
10
|
+
* imported file's symbols only meet after every file is indexed, so (like the dispatch/prisma
|
|
11
|
+
* derivers) it can't run inside one file's batch. (ama-bnj)
|
|
12
|
+
*/
|
|
13
|
+
export declare function deriveCallEdges(nodes: GraphNode[], edges: GraphEdge[]): GraphEdge[];
|
|
14
|
+
//# sourceMappingURL=python-calls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-calls.d.ts","sourceRoot":"","sources":["../../src/graph/python-calls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD;mGACmG;AACnG,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAgDnF"}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"python-calls.js","sourceRoot":"","sources":["../../src/graph/python-calls.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { GraphEdge, GraphNode } from "./types.js";
|
|
2
|
+
/** A baseline call detector tags a TestClient-style `client.<verb>("/path")` call with this
|
|
3
|
+
* prefix + `METHOD /concrete-path`; {@link deriveRouteTestEdges} resolves it to the Route it
|
|
4
|
+
* exercises. (ama-f2c) */
|
|
5
|
+
export declare const ROUTE_REF_PREFIX = "route:";
|
|
6
|
+
/**
|
|
7
|
+
* Resolve `route:<METHOD> <path>` candidates (provenance `call-ref`, emitted for a TestClient-style
|
|
8
|
+
* `client.<verb>("/path")` call) into `References` edges from the calling test to the Route node it
|
|
9
|
+
* exercises — matching the concrete request path against each Route's pattern (param-aware). The
|
|
10
|
+
* existing route→handler edge then lets impact_analysis(handler) reach the test. A method-agnostic
|
|
11
|
+
* `ANY` route (Django) matches any verb. Pure + whole-graph: the test call and the Route node (a
|
|
12
|
+
* different file) only meet after every file is indexed, like the dispatch/prisma derivers. (ama-f2c)
|
|
13
|
+
*/
|
|
14
|
+
export declare function deriveRouteTestEdges(nodes: GraphNode[], edges: GraphEdge[]): GraphEdge[];
|
|
15
|
+
//# sourceMappingURL=route-tests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-tests.d.ts","sourceRoot":"","sources":["../../src/graph/route-tests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvD;;2BAE2B;AAC3B,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAezC;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAsCxF"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/** A baseline call detector tags a TestClient-style `client.<verb>("/path")` call with this
|
|
2
|
+
* prefix + `METHOD /concrete-path`; {@link deriveRouteTestEdges} resolves it to the Route it
|
|
3
|
+
* exercises. (ama-f2c) */
|
|
4
|
+
export const ROUTE_REF_PREFIX = "route:";
|
|
5
|
+
/** Split a route/concrete path into segments, ignoring a trailing slash. */
|
|
6
|
+
function pathSegments(p) {
|
|
7
|
+
return p.replace(/\/+$/, "").split("/").filter(Boolean);
|
|
8
|
+
}
|
|
9
|
+
/** Whether a concrete request path matches a route pattern — `:param` / `*` segments are wildcards. */
|
|
10
|
+
function pathMatches(routeSegs, concreteSegs) {
|
|
11
|
+
if (routeSegs.length !== concreteSegs.length)
|
|
12
|
+
return false;
|
|
13
|
+
return routeSegs.every((rs, i) => rs === concreteSegs[i] || rs.startsWith(":") || rs.startsWith("*"));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Resolve `route:<METHOD> <path>` candidates (provenance `call-ref`, emitted for a TestClient-style
|
|
17
|
+
* `client.<verb>("/path")` call) into `References` edges from the calling test to the Route node it
|
|
18
|
+
* exercises — matching the concrete request path against each Route's pattern (param-aware). The
|
|
19
|
+
* existing route→handler edge then lets impact_analysis(handler) reach the test. A method-agnostic
|
|
20
|
+
* `ANY` route (Django) matches any verb. Pure + whole-graph: the test call and the Route node (a
|
|
21
|
+
* different file) only meet after every file is indexed, like the dispatch/prisma derivers. (ama-f2c)
|
|
22
|
+
*/
|
|
23
|
+
export function deriveRouteTestEdges(nodes, edges) {
|
|
24
|
+
const routesByMethod = new Map();
|
|
25
|
+
for (const n of nodes) {
|
|
26
|
+
if (n.kind !== "Route")
|
|
27
|
+
continue;
|
|
28
|
+
const sp = n.name.indexOf(" ");
|
|
29
|
+
if (sp < 0)
|
|
30
|
+
continue;
|
|
31
|
+
const method = n.name.slice(0, sp);
|
|
32
|
+
const entry = { segs: pathSegments(n.name.slice(sp + 1)), id: n.id };
|
|
33
|
+
const list = routesByMethod.get(method);
|
|
34
|
+
if (list)
|
|
35
|
+
list.push(entry);
|
|
36
|
+
else
|
|
37
|
+
routesByMethod.set(method, [entry]);
|
|
38
|
+
}
|
|
39
|
+
const out = [];
|
|
40
|
+
const seen = new Set();
|
|
41
|
+
for (const e of edges) {
|
|
42
|
+
if (e.kind !== "References" ||
|
|
43
|
+
e.provenance !== "call-ref" ||
|
|
44
|
+
!e.to.startsWith(ROUTE_REF_PREFIX))
|
|
45
|
+
continue;
|
|
46
|
+
const spec = e.to.slice(ROUTE_REF_PREFIX.length);
|
|
47
|
+
const sp = spec.indexOf(" ");
|
|
48
|
+
if (sp < 0)
|
|
49
|
+
continue;
|
|
50
|
+
const method = spec.slice(0, sp);
|
|
51
|
+
const concrete = pathSegments(spec.slice(sp + 1));
|
|
52
|
+
const candidates = [
|
|
53
|
+
...(routesByMethod.get(method) ?? []),
|
|
54
|
+
...(routesByMethod.get("ANY") ?? []),
|
|
55
|
+
];
|
|
56
|
+
const matched = candidates.find((r) => pathMatches(r.segs, concrete));
|
|
57
|
+
if (!matched || matched.id === e.from)
|
|
58
|
+
continue;
|
|
59
|
+
const key = `${e.from} ${matched.id}`;
|
|
60
|
+
if (seen.has(key))
|
|
61
|
+
continue;
|
|
62
|
+
seen.add(key);
|
|
63
|
+
out.push({ from: e.from, to: matched.id, kind: "References", provenance: "route-test" });
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=route-tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-tests.js","sourceRoot":"","sources":["../../src/graph/route-tests.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/types.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export interface GraphNode {
|
|
|
50
50
|
* resolved cross-analyzer edge a whole-graph pass derives from it, linking the access to
|
|
51
51
|
* the schema model node. Like `dispatch`, `prisma` is re-derived after a reindex. (ama-kvv)
|
|
52
52
|
*/
|
|
53
|
-
export type EdgeProvenance = "resolved" | "heuristic" | "dispatch" | "prisma-ref" | "prisma";
|
|
53
|
+
export type EdgeProvenance = "resolved" | "heuristic" | "dispatch" | "prisma-ref" | "prisma" | "call-ref" | "call" | "route-test";
|
|
54
54
|
export interface GraphEdge {
|
|
55
55
|
/** Source node id. */
|
|
56
56
|
from: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;cAEc;AACd,eAAO,MAAM,UAAU,4IAgBb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;0CAE0C;AAC1C,eAAO,MAAM,UAAU,qJAsBb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,oDAAoD;AACpD,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvC,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,oDAAoD;IACpD,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;cAEc;AACd,eAAO,MAAM,UAAU,4IAgBb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;0CAE0C;AAC1C,eAAO,MAAM,UAAU,qJAsBb,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,oDAAoD;AACpD,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;AAEvC,mFAAmF;AACnF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,oDAAoD;IACpD,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,WAAW,GACX,UAAU,GACV,YAAY,GACZ,QAAQ,GAGR,UAAU,GACV,MAAM,GAGN,YAAY,CAAC;AAEjB,MAAM,WAAW,SAAS;IACxB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,qDAAqD;IACrD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B;;iEAE6D;IAC7D,EAAE,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC;yFACqF;IACrF,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/indexer/ignore.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../src/indexer/ignore.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,YAAY,aAYvB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAc,CAAC;AAE/C,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,kFAAkF;IAClF,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,qFAAqF;IACrF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;kFAC8E;IAC9E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB;;;8EAG0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,uEAAuE;AACvE,eAAO,MAAM,iBAAiB,EAAE,WAK/B,CAAC;AA0CF;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAkCzD;AAYD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CAsB9F;AAED,2EAA2E;AAC3E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,WAA+B,GAAG,OAAO,CAE9F;AAED;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,WAA+B,GAAG,OAAO,CAO1F"}
|
package/dist/indexer/ignore.js
CHANGED
|
@@ -5,7 +5,19 @@ import * as path from "node:path";
|
|
|
5
5
|
* `.vscode`, …) are skipped separately. Shared by the indexer's file discovery
|
|
6
6
|
* and the file watcher so the set of files we *watch* matches what we *index*.
|
|
7
7
|
*/
|
|
8
|
-
export const IGNORED_DIRS = new Set([
|
|
8
|
+
export const IGNORED_DIRS = new Set([
|
|
9
|
+
"node_modules",
|
|
10
|
+
"dist",
|
|
11
|
+
"build",
|
|
12
|
+
"coverage",
|
|
13
|
+
// Python bytecode + installed-package dirs that are *never* first-party source in any project.
|
|
14
|
+
// Only universally-non-source names are hardcoded here; project-specific build/vendor dirs
|
|
15
|
+
// (`target`, `vendor`, `venv`, `Pods`, …) are legitimate source dirs in *some* projects, so
|
|
16
|
+
// they're the project's `.gitignore`'s job (honored root + nested), not a blanket hardcode —
|
|
17
|
+
// especially since this set isn't negation-overridable. (ama-65z, ama-d28)
|
|
18
|
+
"__pycache__",
|
|
19
|
+
"site-packages",
|
|
20
|
+
]);
|
|
9
21
|
/**
|
|
10
22
|
* Files larger than this are skipped by both discovery and the watcher — a
|
|
11
23
|
* minified bundle or data blob isn't worth parsing and risks a memory blowup.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/indexer/ignore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../../src/indexer/ignore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer/indexer.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/indexer/indexer.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQvF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AASzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AASD,uDAAuD;AACvD,MAAM,WAAW,UAAU;IACzB,wEAAwE;IACxE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAqBD;;yEAEyE;AACzE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED;;;;;GAKG;AACH,qBAAa,OAAO;IAEhB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB;;;yEAGqE;IACrE,OAAO,CAAC,QAAQ,CAAC,WAAW;gBALX,QAAQ,EAAE,gBAAgB;IAC3C;;;yEAGqE;IACpD,WAAW,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAiC;IAGnF;;;;8BAI0B;IAC1B,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS;IAK/D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAC;IAqGvE;;;;;;;OAOG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,SAAS,CAAC;IAwClF;;;;;;OAMG;IACG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzE;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;CAqB5D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,GAAG,OAAO,CAkBnF;AA6CD;;;oCAGoC;AACpC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAStE;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAe1E"}
|