@lzehrung/codegraph 3.0.0 → 3.0.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/README.md +2 -0
- package/dist/agent/rename-preview.d.ts.map +1 -1
- package/dist/agent/rename-preview.js +54 -5
- package/dist/agent/rename-preview.js.map +1 -1
- package/dist/bin/cli.js +2614 -1417
- package/dist/bin/query-index-worker.js +180 -28
- package/dist/cli/help.d.ts +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +1 -1
- package/dist/graphs/symbol-graph.d.ts +1 -1
- package/dist/graphs/symbol-graph.d.ts.map +1 -1
- package/dist/graphs/symbol-graph.js +8 -0
- package/dist/graphs/symbol-graph.js.map +1 -1
- package/dist/impact/analyzer.d.ts.map +1 -1
- package/dist/impact/analyzer.js +94 -1
- package/dist/impact/analyzer.js.map +1 -1
- package/dist/impact/transitive.d.ts +6 -2
- package/dist/impact/transitive.d.ts.map +1 -1
- package/dist/impact/transitive.js +23 -11
- package/dist/impact/transitive.js.map +1 -1
- package/dist/indexer/build-cache/options.d.ts +3 -1
- package/dist/indexer/build-cache/options.d.ts.map +1 -1
- package/dist/indexer/build-cache/options.js +3 -1
- package/dist/indexer/build-cache/options.js.map +1 -1
- package/dist/indexer/build-cache/project-snapshot.js +4 -0
- package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
- package/dist/indexer/declarations.d.ts.map +1 -1
- package/dist/indexer/declarations.js +32 -7
- package/dist/indexer/declarations.js.map +1 -1
- package/dist/indexer/import-resolution-tables.d.ts.map +1 -1
- package/dist/indexer/import-resolution-tables.js +10 -0
- package/dist/indexer/import-resolution-tables.js.map +1 -1
- package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
- package/dist/indexer/imports/import-binding-tables.js +3 -0
- package/dist/indexer/imports/import-binding-tables.js.map +1 -1
- package/dist/indexer/locals-and-exports.d.ts.map +1 -1
- package/dist/indexer/locals-and-exports.js +8 -0
- package/dist/indexer/locals-and-exports.js.map +1 -1
- package/dist/indexer/navigation.d.ts.map +1 -1
- package/dist/indexer/navigation.js +37 -20
- package/dist/indexer/navigation.js.map +1 -1
- package/dist/indexer/reference-context.d.ts.map +1 -1
- package/dist/indexer/reference-context.js +4 -1
- package/dist/indexer/reference-context.js.map +1 -1
- package/dist/indexer/scope-nodes.d.ts.map +1 -1
- package/dist/indexer/scope-nodes.js +5 -0
- package/dist/indexer/scope-nodes.js.map +1 -1
- package/dist/indexer/types.d.ts +5 -1
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/indexer/types.js +4 -0
- package/dist/indexer/types.js.map +1 -1
- package/dist/languages/all.d.ts +1 -0
- package/dist/languages/all.d.ts.map +1 -1
- package/dist/languages/all.js +1 -0
- package/dist/languages/all.js.map +1 -1
- package/dist/languages/definitions/terraform.d.ts +9 -0
- package/dist/languages/definitions/terraform.d.ts.map +1 -0
- package/dist/languages/definitions/terraform.js +84 -0
- package/dist/languages/definitions/terraform.js.map +1 -0
- package/dist/languages.d.ts +1 -0
- package/dist/languages.d.ts.map +1 -1
- package/dist/languages.js +1 -0
- package/dist/languages.js.map +1 -1
- package/dist/terraform/navigation.d.ts +20 -0
- package/dist/terraform/navigation.d.ts.map +1 -0
- package/dist/terraform/navigation.js +142 -0
- package/dist/terraform/navigation.js.map +1 -0
- package/dist/terraform/resolution.d.ts +82 -0
- package/dist/terraform/resolution.d.ts.map +1 -0
- package/dist/terraform/resolution.js +324 -0
- package/dist/terraform/resolution.js.map +1 -0
- package/dist/terraform/syntax.d.ts +109 -0
- package/dist/terraform/syntax.d.ts.map +1 -0
- package/dist/terraform/syntax.js +441 -0
- package/dist/terraform/syntax.js.map +1 -0
- package/dist/util/member-access-tables.d.ts.map +1 -1
- package/dist/util/member-access-tables.js +3 -0
- package/dist/util/member-access-tables.js.map +1 -1
- package/dist/util/project-files.d.ts.map +1 -1
- package/dist/util/project-files.js +3 -1
- package/dist/util/project-files.js.map +1 -1
- package/dist/util/resolution/specifier-targets.d.ts.map +1 -1
- package/dist/util/resolution/specifier-targets.js +5 -0
- package/dist/util/resolution/specifier-targets.js.map +1 -1
- package/dist/util/resolution/terraform.d.ts +18 -0
- package/dist/util/resolution/terraform.d.ts.map +1 -0
- package/dist/util/resolution/terraform.js +64 -0
- package/dist/util/resolution/terraform.js.map +1 -0
- package/dist/util/trivia-tables.d.ts.map +1 -1
- package/dist/util/trivia-tables.js +9 -0
- package/dist/util/trivia-tables.js.map +1 -1
- package/package.json +4 -4
|
@@ -263,6 +263,12 @@ var SQL_ROW = {
|
|
|
263
263
|
{ open: '"', close: '"', doubled: true }
|
|
264
264
|
]
|
|
265
265
|
};
|
|
266
|
+
var TERRAFORM_ROW = {
|
|
267
|
+
lineComments: ["#", "//"],
|
|
268
|
+
blockComments: [SLASH_STAR_COMMENT],
|
|
269
|
+
strings: [{ open: '"', close: '"', escape: "\\", interpolation: { start: "${", end: "}" } }],
|
|
270
|
+
heredocs: [{ opener: "<<-?([A-Za-z_][A-Za-z0-9_-]*)", indentedTerminator: true }]
|
|
271
|
+
};
|
|
266
272
|
var TRIVIA_ROWS = {
|
|
267
273
|
js: JS_LIKE_ROW,
|
|
268
274
|
ts: JS_LIKE_ROW,
|
|
@@ -285,7 +291,8 @@ var TRIVIA_ROWS = {
|
|
|
285
291
|
c: C_FAMILY_ROW,
|
|
286
292
|
cpp: C_FAMILY_ROW,
|
|
287
293
|
java: JAVA_ROW,
|
|
288
|
-
sql: SQL_ROW
|
|
294
|
+
sql: SQL_ROW,
|
|
295
|
+
terraform: TERRAFORM_ROW
|
|
289
296
|
};
|
|
290
297
|
function triviaRowFor(languageId) {
|
|
291
298
|
return TRIVIA_ROWS[languageId] ?? JS_LIKE_ROW;
|
|
@@ -3410,6 +3417,177 @@ var SQL_DEF = {
|
|
|
3410
3417
|
};
|
|
3411
3418
|
registerLanguage(SQL_DEF);
|
|
3412
3419
|
|
|
3420
|
+
// dist/util/ast.js
|
|
3421
|
+
function stringifyUnknown(value) {
|
|
3422
|
+
if (value instanceof Error)
|
|
3423
|
+
return value.message;
|
|
3424
|
+
if (typeof value === "string")
|
|
3425
|
+
return value;
|
|
3426
|
+
if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
|
|
3427
|
+
return String(value);
|
|
3428
|
+
}
|
|
3429
|
+
if (value === null || value === void 0) {
|
|
3430
|
+
return String(value);
|
|
3431
|
+
}
|
|
3432
|
+
if (typeof value === "object") {
|
|
3433
|
+
try {
|
|
3434
|
+
return JSON.stringify(value);
|
|
3435
|
+
} catch {
|
|
3436
|
+
return "[Object]";
|
|
3437
|
+
}
|
|
3438
|
+
}
|
|
3439
|
+
if (typeof value === "symbol")
|
|
3440
|
+
return value.toString();
|
|
3441
|
+
if (typeof value === "function") {
|
|
3442
|
+
return `[Function: ${value.name || "anonymous"}]`;
|
|
3443
|
+
}
|
|
3444
|
+
return "unknown";
|
|
3445
|
+
}
|
|
3446
|
+
|
|
3447
|
+
// dist/terraform/syntax.js
|
|
3448
|
+
function isSyntaxNode(node) {
|
|
3449
|
+
return node.type !== "comment";
|
|
3450
|
+
}
|
|
3451
|
+
function sameNode(left, right) {
|
|
3452
|
+
return !!left && !!right && left.type === right.type && left.startIndex === right.startIndex && left.endIndex === right.endIndex;
|
|
3453
|
+
}
|
|
3454
|
+
function blockTypeName(block) {
|
|
3455
|
+
const first = block.namedChildren.filter(isSyntaxNode)[0];
|
|
3456
|
+
return first?.type === "identifier" ? first.text : void 0;
|
|
3457
|
+
}
|
|
3458
|
+
function blockLabels(block) {
|
|
3459
|
+
const labels = [];
|
|
3460
|
+
for (const child of block.namedChildren.filter(isSyntaxNode).slice(1)) {
|
|
3461
|
+
if (child.type === "block_start")
|
|
3462
|
+
break;
|
|
3463
|
+
labels.push(child);
|
|
3464
|
+
}
|
|
3465
|
+
return labels;
|
|
3466
|
+
}
|
|
3467
|
+
function isTopLevelBlock(block) {
|
|
3468
|
+
return block.parent?.type === "body" && block.parent.parent?.type === "config_file";
|
|
3469
|
+
}
|
|
3470
|
+
function literalStringText(stringLit) {
|
|
3471
|
+
if (stringLit?.type !== "string_lit")
|
|
3472
|
+
return null;
|
|
3473
|
+
const parts = stringLit.namedChildren.filter(isSyntaxNode).filter((child) => child.type !== "quoted_template_start" && child.type !== "quoted_template_end");
|
|
3474
|
+
const text = parts.length === 1 ? parts[0] : void 0;
|
|
3475
|
+
return text?.type === "template_literal" ? text : null;
|
|
3476
|
+
}
|
|
3477
|
+
function attributeNameNode(attribute) {
|
|
3478
|
+
const name = attribute.namedChildren.filter(isSyntaxNode)[0];
|
|
3479
|
+
return name?.type === "identifier" ? name : void 0;
|
|
3480
|
+
}
|
|
3481
|
+
function terraformDeclarationForNameNode(node) {
|
|
3482
|
+
if (node.type === "identifier") {
|
|
3483
|
+
const attribute = node.parent;
|
|
3484
|
+
if (attribute?.type !== "attribute" || !sameNode(attributeNameNode(attribute), node))
|
|
3485
|
+
return null;
|
|
3486
|
+
const block2 = attribute.parent?.parent;
|
|
3487
|
+
if (block2?.type !== "block" || !isTopLevelBlock(block2))
|
|
3488
|
+
return null;
|
|
3489
|
+
if (blockTypeName(block2) !== "locals" || blockLabels(block2).length)
|
|
3490
|
+
return null;
|
|
3491
|
+
return { kind: "local" };
|
|
3492
|
+
}
|
|
3493
|
+
if (node.type !== "template_literal")
|
|
3494
|
+
return null;
|
|
3495
|
+
const label = node.parent;
|
|
3496
|
+
const block = label?.parent;
|
|
3497
|
+
if (!label || block?.type !== "block" || !isTopLevelBlock(block))
|
|
3498
|
+
return null;
|
|
3499
|
+
if (!sameNode(literalStringText(label), node))
|
|
3500
|
+
return null;
|
|
3501
|
+
const labels = blockLabels(block);
|
|
3502
|
+
const kind = blockTypeName(block);
|
|
3503
|
+
if ((kind === "variable" || kind === "output" || kind === "module") && labels.length === 1)
|
|
3504
|
+
return { kind };
|
|
3505
|
+
if ((kind === "resource" || kind === "data") && labels.length === 2 && sameNode(labels[1], label)) {
|
|
3506
|
+
const type = literalStringText(labels[0]);
|
|
3507
|
+
return type ? { kind, type: type.text } : null;
|
|
3508
|
+
}
|
|
3509
|
+
return null;
|
|
3510
|
+
}
|
|
3511
|
+
function classifyTerraformDefinition(node) {
|
|
3512
|
+
const declaration = terraformDeclarationForNameNode(node);
|
|
3513
|
+
if (!declaration || declaration.kind === "local")
|
|
3514
|
+
return "variable";
|
|
3515
|
+
return declaration.kind;
|
|
3516
|
+
}
|
|
3517
|
+
|
|
3518
|
+
// dist/languages/definitions/terraform.js
|
|
3519
|
+
function literalLabel(capture) {
|
|
3520
|
+
const name = capture ? ` @${capture}` : "";
|
|
3521
|
+
return `(string_lit . (quoted_template_start) . (template_literal)${name} . (quoted_template_end) .)`;
|
|
3522
|
+
}
|
|
3523
|
+
var COMMENT_GAP = ". (comment)* .";
|
|
3524
|
+
function labeledChunkBlock(keywords, labels, captureId) {
|
|
3525
|
+
const keywordList = keywords.map((keyword) => `"${keyword}"`).join(" ");
|
|
3526
|
+
const leading = labels === 2 ? ` ${COMMENT_GAP} (string_lit)` : "";
|
|
3527
|
+
return {
|
|
3528
|
+
type: "block",
|
|
3529
|
+
nameQuery: `. (identifier) @kw (#any-of? @kw ${keywordList})${leading} ${COMMENT_GAP} (string_lit (template_literal) @chunk.name) ${COMMENT_GAP} (block_start)`,
|
|
3530
|
+
captureId
|
|
3531
|
+
};
|
|
3532
|
+
}
|
|
3533
|
+
function unlabeledChunkBlock(keywords, captureId) {
|
|
3534
|
+
const keywordList = keywords.map((keyword) => `"${keyword}"`).join(" ");
|
|
3535
|
+
return {
|
|
3536
|
+
type: "block",
|
|
3537
|
+
nameQuery: `. (identifier) @chunk.name (#any-of? @chunk.name ${keywordList}) ${COMMENT_GAP} (block_start)`,
|
|
3538
|
+
captureId
|
|
3539
|
+
};
|
|
3540
|
+
}
|
|
3541
|
+
var ONE_LABEL_DECLARATION = `(config_file (body (block . (identifier) @kind (#any-of? @kind "variable" "output" "module") ${COMMENT_GAP} ${literalLabel("name")} ${COMMENT_GAP} (block_start))))`;
|
|
3542
|
+
var TWO_LABEL_DECLARATION = `(config_file (body (block . (identifier) @kind (#any-of? @kind "resource" "data") ${COMMENT_GAP} ${literalLabel()} ${COMMENT_GAP} ${literalLabel("name")} ${COMMENT_GAP} (block_start))))`;
|
|
3543
|
+
var LOCALS_DECLARATION = `(config_file (body (block . (identifier) @kind (#eq? @kind "locals") ${COMMENT_GAP} (block_start) (body (attribute . (identifier) @name)))))`;
|
|
3544
|
+
var TERRAFORM_DEF = {
|
|
3545
|
+
id: "terraform",
|
|
3546
|
+
extensions: [".tf"],
|
|
3547
|
+
usesQueryDrivenLocals: true,
|
|
3548
|
+
structure: {
|
|
3549
|
+
blocks: [
|
|
3550
|
+
labeledChunkBlock(["resource"], 2, "resource"),
|
|
3551
|
+
labeledChunkBlock(["data"], 2, "data"),
|
|
3552
|
+
labeledChunkBlock(["module"], 1, "module"),
|
|
3553
|
+
labeledChunkBlock(["variable"], 1, "variable"),
|
|
3554
|
+
labeledChunkBlock(["output"], 1, "output"),
|
|
3555
|
+
unlabeledChunkBlock(["locals"], "locals"),
|
|
3556
|
+
labeledChunkBlock(["provider", "check"], 1, "block"),
|
|
3557
|
+
labeledChunkBlock(["ephemeral"], 2, "block"),
|
|
3558
|
+
unlabeledChunkBlock(["terraform", "moved", "import", "removed"], "block")
|
|
3559
|
+
],
|
|
3560
|
+
splitPoints: [],
|
|
3561
|
+
comments: ["comment"]
|
|
3562
|
+
},
|
|
3563
|
+
graph: {
|
|
3564
|
+
// A module call depends on its local `source` directory; remote sources stay external.
|
|
3565
|
+
imports: `
|
|
3566
|
+
(config_file (body (block . (identifier) @kw (#eq? @kw "module")
|
|
3567
|
+
(body (attribute . (identifier) @attr (#eq? @attr "source")
|
|
3568
|
+
${COMMENT_GAP} (expression . (literal_value . ${literalLabel("from")} .) .)))) @stmt))
|
|
3569
|
+
`,
|
|
3570
|
+
exports: `
|
|
3571
|
+
(config_file (body (block . (identifier) @kind (#any-of? @kind "variable" "output") ${COMMENT_GAP} ${literalLabel("name")} ${COMMENT_GAP} (block_start))))
|
|
3572
|
+
`,
|
|
3573
|
+
locals: `
|
|
3574
|
+
${ONE_LABEL_DECLARATION}
|
|
3575
|
+
${TWO_LABEL_DECLARATION}
|
|
3576
|
+
${LOCALS_DECLARATION}
|
|
3577
|
+
`,
|
|
3578
|
+
// Module calls bind no local names; `module.<name>` resolves in src/terraform/.
|
|
3579
|
+
importBindings: ""
|
|
3580
|
+
},
|
|
3581
|
+
nodeTypes: {
|
|
3582
|
+
identifier: ["identifier"]
|
|
3583
|
+
},
|
|
3584
|
+
// Terraform references resolve in src/terraform/, so generic cross-module and member passes skip it.
|
|
3585
|
+
supportsCrossModuleSymbols: false,
|
|
3586
|
+
classifyDefinition: classifyTerraformDefinition,
|
|
3587
|
+
isDeclarationName: (node) => terraformDeclarationForNameNode(node) !== null
|
|
3588
|
+
};
|
|
3589
|
+
registerLanguage(TERRAFORM_DEF);
|
|
3590
|
+
|
|
3413
3591
|
// dist/languages/definitions/zig.js
|
|
3414
3592
|
var ZIG_TYPE_INITIALIZER_TYPES = /* @__PURE__ */ new Set([
|
|
3415
3593
|
"builtin_type",
|
|
@@ -3651,6 +3829,7 @@ var KOTLIN_SUPPORT = adaptDefinition(getLanguageById("kotlin"));
|
|
|
3651
3829
|
var SWIFT_SUPPORT = adaptDefinition(getLanguageById("swift"));
|
|
3652
3830
|
var ZIG_SUPPORT = adaptDefinition(getLanguageById("zig"));
|
|
3653
3831
|
var SQL_SUPPORT = adaptDefinition(getLanguageById("sql"));
|
|
3832
|
+
var TERRAFORM_SUPPORT = adaptDefinition(getLanguageById("terraform"));
|
|
3654
3833
|
var LANGUAGE_SUPPORTS = getAllLanguages().map(adaptDefinition);
|
|
3655
3834
|
var LANGUAGE_EXTENSION_KEY_PATTERN = /^\.[a-z0-9][a-z0-9._+-]*$/;
|
|
3656
3835
|
var NON_REMAPPABLE_EXTENSIONS = /* @__PURE__ */ new Set([".vue", ".svelte"]);
|
|
@@ -3733,33 +3912,6 @@ import path5 from "node:path";
|
|
|
3733
3912
|
import { createRequire } from "node:module";
|
|
3734
3913
|
import { fileURLToPath } from "node:url";
|
|
3735
3914
|
|
|
3736
|
-
// dist/util/ast.js
|
|
3737
|
-
function stringifyUnknown(value) {
|
|
3738
|
-
if (value instanceof Error)
|
|
3739
|
-
return value.message;
|
|
3740
|
-
if (typeof value === "string")
|
|
3741
|
-
return value;
|
|
3742
|
-
if (typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
|
|
3743
|
-
return String(value);
|
|
3744
|
-
}
|
|
3745
|
-
if (value === null || value === void 0) {
|
|
3746
|
-
return String(value);
|
|
3747
|
-
}
|
|
3748
|
-
if (typeof value === "object") {
|
|
3749
|
-
try {
|
|
3750
|
-
return JSON.stringify(value);
|
|
3751
|
-
} catch {
|
|
3752
|
-
return "[Object]";
|
|
3753
|
-
}
|
|
3754
|
-
}
|
|
3755
|
-
if (typeof value === "symbol")
|
|
3756
|
-
return value.toString();
|
|
3757
|
-
if (typeof value === "function") {
|
|
3758
|
-
return `[Function: ${value.name || "anonymous"}]`;
|
|
3759
|
-
}
|
|
3760
|
-
return "unknown";
|
|
3761
|
-
}
|
|
3762
|
-
|
|
3763
3915
|
// dist/native/binding-loader.js
|
|
3764
3916
|
import fs4 from "node:fs";
|
|
3765
3917
|
import path4 from "node:path";
|
package/dist/cli/help.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare const GOTO_HELP_TEXT = "codegraph goto - Go to a definition\n\nUs
|
|
|
13
13
|
export declare const REFS_HELP_TEXT = "codegraph refs - Find semantic references\n\nUsage: codegraph refs <file|file::symbol|symbol:...> [--root <path>] [--json | --pretty]\n codegraph refs <file>[:line[:column]] [line] [column] [--root <path>] [--json | --pretty]\n codegraph refs --file <file> [--line <line> --col <column>] [--root <path>] [--json | --pretty]\n\nA qualified symbol path or portable symbol handle resolves one definition and reports references to it without a location. A file-only target finds references for every definition in the file.\n\nIndex options:\n Supports shared --cache, --cache-dir, --cache-strict, --cache-verify, --threads, --workers, --include-glob, --ignore-glob, and --no-gitignore options.\n Cache precedence is --cache-dir, then CODEGRAPH_CACHE_DIR, then cache.location from project/user config, then repository metadata, then the project root. Use cache.location \"project\", \"repo\", \"user\", or an absolute path. A configured anchor that resolves to the home directory or a filesystem root is rejected with an error.\n Index builds report progress automatically on an interactive stderr terminal. Use --progress to force redirected progress logs or --no-progress to suppress feedback.\n";
|
|
14
14
|
export declare const GREP_HELP_TEXT = "codegraph grep - Search source text or syntax trees\n\nUsage: codegraph grep <regex> [--root <path>] [--pattern|--regex <expr>] [--glob|--include-glob|--ignore-glob <glob>] [--ignore-case|-i] [--max-hits <n>] [--json | --pretty]\n codegraph grep --query <tree-sitter-query> [--root <path>] [--json | --pretty]\n\nA bare positional is a text regex. Use --query explicitly for Tree-sitter queries.\n--json returns an envelope { items, limit, totalSeen, truncated, omitted }. For text greps, limit is the effective --max-hits cap (default 5000, max 200000). The scan probes one hit past that cap, so truncated is exact while totalSeen and omitted are lower bounds on observed hits whenever truncated is true. For --query AST greps, which are uncapped today, limit is null and truncated is always false.\n";
|
|
15
15
|
export declare const SQL_HELP_TEXT = "codegraph sql - Query a graph SQLite export read-only\n\nUsage: codegraph sql <sqlite-path> \"SELECT ...\" [--json | --pretty]\n codegraph sql --db <sqlite-path> --query \"SELECT ...\" [--json | --pretty]\n";
|
|
16
|
-
export declare const SYMBOLS_HELP_TEXT = "codegraph symbols - Deterministic workspace-symbol lookup\n\nUsage: codegraph symbols [query] [--root <path>] [--kind <kind,...>] [--exported] [--include-imports] [--file-glob <glob>] [--limit <0-500>] [--json | --pretty]\n\nMatching:\n Exact and qualified symbol identities rank ahead of prefix, token, and substring matches. Imports are excluded by default; use --include-imports to include aliases.\n A query is required unless --kind or --file-glob narrows the lookup. --kind accepts function, class, variable, interface, type, default, table, view, index, constraint, or
|
|
16
|
+
export declare const SYMBOLS_HELP_TEXT = "codegraph symbols - Deterministic workspace-symbol lookup\n\nUsage: codegraph symbols [query] [--root <path>] [--kind <kind,...>] [--exported] [--include-imports] [--file-glob <glob>] [--limit <0-500>] [--json | --pretty]\n\nMatching:\n Exact and qualified symbol identities rank ahead of prefix, token, and substring matches. Imports are excluded by default; use --include-imports to include aliases.\n A query is required unless --kind or --file-glob narrows the lookup. --kind accepts function, class, variable, interface, type, default, table, view, index, constraint, routine, resource, data, module, or output.\n\nOutput:\n JSON includes portable handles, exact declaration ranges, provenance, limits, and omission counts. Pretty output is concise and intended for direct reading.\n\nIndex options:\n Supports shared --cache, --cache-dir, --cache-strict, --cache-verify, --threads, --workers, --include-glob, --ignore-glob, and --no-gitignore options.\n Cache precedence is --cache-dir, then CODEGRAPH_CACHE_DIR, then cache.location from project/user config, then repository metadata, then the project root. Use cache.location \"project\", \"repo\", \"user\", or an absolute path. A configured anchor that resolves to the home directory or a filesystem root is rejected with an error.\n Index builds report progress automatically on an interactive stderr terminal. Use --progress to force redirected progress logs or --no-progress to suppress feedback.\n";
|
|
17
17
|
export declare const CALLERS_HELP_TEXT = "codegraph callers - Find proven semantic callers\n\nUsage: codegraph callers <symbol-target> [--root <path>] [--depth <1-5>] [--limit <0-500>] [--include-heuristic] [--json | --pretty]\n\nReturns grouped caller symbols and exact project-relative callsites from resolved calls edges. --include-heuristic is accepted for forward compatibility, but current results remain limited to proven semantic edges.\n\nIndex options:\n Supports shared --cache, --cache-dir, --cache-strict, --cache-verify, --threads, --workers, --include-glob, --ignore-glob, and --no-gitignore options.\n Cache precedence is --cache-dir, then CODEGRAPH_CACHE_DIR, then cache.location from project/user config, then repository metadata, then the project root. Use cache.location \"project\", \"repo\", \"user\", or an absolute path. A configured anchor that resolves to the home directory or a filesystem root is rejected with an error.\n Index builds report progress automatically on an interactive stderr terminal. Use --progress to force redirected progress logs or --no-progress to suppress feedback.\n";
|
|
18
18
|
export declare const CALLEES_HELP_TEXT = "codegraph callees - Find proven semantic callees\n\nUsage: codegraph callees <symbol-target> [--root <path>] [--depth <1-5>] [--limit <0-500>] [--include-heuristic] [--json | --pretty]\n\nReturns grouped callee symbols and exact project-relative callsites from resolved calls edges. --include-heuristic is accepted for forward compatibility, but current results remain limited to proven semantic edges.\n\nIndex options:\n Supports shared --cache, --cache-dir, --cache-strict, --cache-verify, --threads, --workers, --include-glob, --ignore-glob, and --no-gitignore options.\n Cache precedence is --cache-dir, then CODEGRAPH_CACHE_DIR, then cache.location from project/user config, then repository metadata, then the project root. Use cache.location \"project\", \"repo\", \"user\", or an absolute path. A configured anchor that resolves to the home directory or a filesystem root is rejected with an error.\n Index builds report progress automatically on an interactive stderr terminal. Use --progress to force redirected progress logs or --no-progress to suppress feedback.\n";
|
|
19
19
|
export declare const SUPERTYPES_HELP_TEXT = "codegraph supertypes - Find proven supertypes\n\nUsage: codegraph supertypes <symbol-target> [--root <path>] [--depth <1-10>] [--limit <0-500>] [--json | --pretty]\n\nReturns only currently extracted extends and implements relationships. Results include exact locations, relation depth, provenance, limits, and omissions.\n\nIndex options:\n Supports shared --cache, --cache-dir, --cache-strict, --cache-verify, --threads, --workers, --include-glob, --ignore-glob, and --no-gitignore options.\n Cache precedence is --cache-dir, then CODEGRAPH_CACHE_DIR, then cache.location from project/user config, then repository metadata, then the project root. Use cache.location \"project\", \"repo\", \"user\", or an absolute path. A configured anchor that resolves to the home directory or a filesystem root is rejected with an error.\n Index builds report progress automatically on an interactive stderr terminal. Use --progress to force redirected progress logs or --no-progress to suppress feedback.\n";
|
package/dist/cli/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,kBAAkB,icASQ,CAAC;AAExC,eAAO,MAAM,aAAa,QA6GzB,CAAC;AACF,eAAO,MAAM,kBAAkB,QAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,miDAiB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,ofAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,g1BAY7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,kXAM/B,CAAC;AAMF,eAAO,MAAM,iBAAiB,usCAU7B,CAAC;AAEF,eAAO,MAAM,cAAc,wzBAU1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,usDAkB5B,CAAC;AAEF,eAAO,MAAM,cAAc,iqCAQ1B,CAAC;AAEF,eAAO,MAAM,cAAc,6rCAS1B,CAAC;AAEF,eAAO,MAAM,cAAc,4yBAO1B,CAAC;AAEF,eAAO,MAAM,aAAa,yNAIzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,kBAAkB,icASQ,CAAC;AAExC,eAAO,MAAM,aAAa,QA6GzB,CAAC;AACF,eAAO,MAAM,kBAAkB,QAI9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,miDAiB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,ofAU9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,g1BAY7B,CAAC;AAEF,eAAO,MAAM,mBAAmB,kXAM/B,CAAC;AAMF,eAAO,MAAM,iBAAiB,usCAU7B,CAAC;AAEF,eAAO,MAAM,cAAc,wzBAU1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,usDAkB5B,CAAC;AAEF,eAAO,MAAM,cAAc,iqCAQ1B,CAAC;AAEF,eAAO,MAAM,cAAc,6rCAS1B,CAAC;AAEF,eAAO,MAAM,cAAc,4yBAO1B,CAAC;AAEF,eAAO,MAAM,aAAa,yNAIzB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+7CAY7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,4jCAO7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,4jCAO7B,CAAC;AAEF,eAAO,MAAM,oBAAoB,2+BAOhC,CAAC;AAEF,eAAO,MAAM,kBAAkB,q+BAO9B,CAAC;AAEF,eAAO,MAAM,yBAAyB,0hCAOrC,CAAC;AAEF,eAAO,MAAM,wBAAwB,2xCASpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,q4CASnC,CAAC;AAEF,eAAO,MAAM,gBAAgB,y3CAS5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,+7CAgB5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,s+CAW7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,q3CAgB9B,CAAC;AAEF,eAAO,MAAM,gBAAgB,8sDAkB5B,CAAC;AAEF,eAAO,MAAM,aAAa,25CAwBzB,CAAC;AAEF,eAAO,MAAM,mBAAmB,i+EAuC/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,k8FAwChC,CAAC;AAEF,eAAO,MAAM,eAAe,qrCAe3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,qgCAc5B,CAAC;AAEF,eAAO,MAAM,eAAe,+hCAQ3B,CAAC;AAEF,eAAO,MAAM,eAAe,0kCAQ3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,2mDAiB5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,08BAQ5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,01BAK7B,CAAC;AAEF,eAAO,MAAM,cAAc,8lCAS1B,CAAC;AAEF,eAAO,MAAM,eAAe,gnCAS3B,CAAC;AAEF,eAAO,MAAM,cAAc,6zBAK1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,4zBAK5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,s0BAK9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,kzBAKhC,CAAC;AAEF,eAAO,MAAM,eAAe,2mBAY3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,g9BAOhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,+1BAKjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,2RAM5B,CAAC;AAEF,eAAO,MAAM,eAAe,+KAG3B,CAAC;AAEF,eAAO,MAAM,eAAe,4UAM3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,4xBAK7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gHAG7B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAoDtG"}
|
package/dist/cli/help.js
CHANGED
|
@@ -257,7 +257,7 @@ Usage: codegraph symbols [query] [--root <path>] [--kind <kind,...>] [--exported
|
|
|
257
257
|
|
|
258
258
|
Matching:
|
|
259
259
|
Exact and qualified symbol identities rank ahead of prefix, token, and substring matches. Imports are excluded by default; use --include-imports to include aliases.
|
|
260
|
-
A query is required unless --kind or --file-glob narrows the lookup. --kind accepts function, class, variable, interface, type, default, table, view, index, constraint, or
|
|
260
|
+
A query is required unless --kind or --file-glob narrows the lookup. --kind accepts function, class, variable, interface, type, default, table, view, index, constraint, routine, resource, data, module, or output.
|
|
261
261
|
|
|
262
262
|
Output:
|
|
263
263
|
JSON includes portable handles, exact declaration ranges, provenance, limits, and omission counts. Pretty output is concise and intended for direct reading.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ProjectIndex } from "../indexer/types.js";
|
|
2
2
|
import type { FileId, Range } from "../types.js";
|
|
3
|
-
export type SymbolNodeKind = "function" | "class" | "variable" | "interface" | "type" | "default" | "table" | "view" | "index" | "constraint" | "routine" | "import" | "namespaceImport";
|
|
3
|
+
export type SymbolNodeKind = "function" | "class" | "variable" | "interface" | "type" | "default" | "table" | "view" | "index" | "constraint" | "routine" | "resource" | "data" | "module" | "output" | "import" | "namespaceImport";
|
|
4
4
|
export type SymbolVisibility = "public" | "private" | "protected" | "internal";
|
|
5
5
|
export type SymbolNode = {
|
|
6
6
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-graph.d.ts","sourceRoot":"","sources":["../../src/graphs/symbol-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAA6B,MAAM,qBAAqB,CAAC;AAUlG,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,MAAM,GACN,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,iBAAiB,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAE/E,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"symbol-graph.d.ts","sourceRoot":"","sources":["../../src/graphs/symbol-graph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,YAAY,EAA6B,MAAM,qBAAqB,CAAC;AAUlG,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,MAAM,GACN,SAAS,GACT,OAAO,GACP,MAAM,GACN,OAAO,GACP,YAAY,GACZ,SAAS,GACT,UAAU,GACV,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,iBAAiB,CAAC;AAEtB,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAE/E,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACrB,CAAC;AAuBF,wBAAgB,SAAS,CAAC,GAAG,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAIjH;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,UAAU,CAUb;AAOD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CA0IhH"}
|
|
@@ -26,6 +26,14 @@ function normalizeSymbolNodeKind(kind) {
|
|
|
26
26
|
return "constraint";
|
|
27
27
|
if (kind === "routine")
|
|
28
28
|
return "routine";
|
|
29
|
+
if (kind === "resource")
|
|
30
|
+
return "resource";
|
|
31
|
+
if (kind === "data")
|
|
32
|
+
return "data";
|
|
33
|
+
if (kind === "module")
|
|
34
|
+
return "module";
|
|
35
|
+
if (kind === "output")
|
|
36
|
+
return "output";
|
|
29
37
|
if (kind === "import")
|
|
30
38
|
return "import";
|
|
31
39
|
if (kind === "namespaceImport")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"symbol-graph.js","sourceRoot":"","sources":["../../src/graphs/symbol-graph.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACnG,OAAO,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"symbol-graph.js","sourceRoot":"","sources":["../../src/graphs/symbol-graph.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACnG,OAAO,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAsDlE,SAAS,uBAAuB,CAAC,IAAY;IAC3C,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAC7C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,YAAY,CAAC;IAC/C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAC3C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACnC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,IAAI,KAAK,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IACzD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAA+E;IACvG,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACpF,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAQ1B;IACC,OAAO;QACL,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,SAAS;QACnB,IAAI,EAAE,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,GAAG,CAAC,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9E,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAmB;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAmB,EAAE,IAA8B;IACxF,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC9D,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAuC,CAAC;IAE/E,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAW,EAAE;QAClD,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,KAAc,EAAE,EAAE;QAC3D,MAAM,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,CAAC;QAC7C,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,OAAe,EACf,UAAkB,EAClB,YAAoB,EACpB,KAAa,EACb,GAA+C,EACtC,EAAE;QACX,MAAM,UAAU,GAAG,iCAAiC,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC;QAC/F,MAAM,kBAAkB,GAAG,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC;QACtE,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/D,MAAM,aAAa,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,YAAY,KAAK,WAAW,IAAI,EAAE,KAAK,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,GAAG,EAAE,sBAAsB,IAAI,EAAE,KAAK,GAAG,EAAE,qBAAqB,IAAI,EAAE,KAAK,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;QACxR,IAAI,GAAqB,CAAC;QAC1B,IAAI,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;QAC9C,CAAC;aAAM,IACL,GAAG;YACH,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,GAAG,CAAC,sBAAsB,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM,CAAC,EAC5G,CAAC;YACD,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,kBAAkB,EAAE,CAAC,CAAC;YACnF,GAAG,GAAG,QAAQ,IAAI,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/D,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE;gBAC9D,kBAAkB;gBAClB,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3D,CAAC,CAAC;YACH,GAAG,GAAG,QAAQ,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1D,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QACvB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;YAAE,SAAS;QAC9C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;YAAE,SAAS;QAC9C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE9F,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;wBACjB,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,GAAG,CAAC,KAAK;wBACf,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,UAAU;oBAAE,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC1F,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;wBACjB,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,GAAG,CAAC,KAAK;wBACf,IAAI,EAAE,QAAQ;qBACf,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,UAAU,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;oBAChF,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;oBACnE,MAAM,UAAU,GAAG,iCAAiC,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,EAAE,CAAC;oBAC/F,MAAM,cAAc,GAAG,cAAc,CAAC,UAAU,IAAI,EAAE,CAAC;wBACrD,CAAC,CAAC,YAAY,IAAI,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM;wBAC9D,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,MAAM,CAAC;oBAC1E,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;wBAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;4BAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;wBAC1E,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE;wBACjB,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,GAAG,CAAC,OAAO;wBACjB,IAAI,EAAE,iBAAiB;qBACxB,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;oBAC9C,IAAI,OAAoC,CAAC;oBACzC,IAAI,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3C,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;oBACpD,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;wBACjF,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAClD,CAAC;oBACD,KAAK,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC;wBAC/C,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;4BAAE,SAAS;wBAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;wBACzB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;wBAChC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;4BAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;wBAC/D,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/impact/analyzer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/impact/analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAmBvF,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAmC1D,wBAAsB,aAAa,CACjC,KAAK,EAAE,YAAY,EACnB,cAAc,EAAE,aAAa,EAAE,EAC/B,YAAY,EAAE,UAAU,EAAE,EAC1B,OAAO,GAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9D,OAAO,CAAC,UAAU,EAAE,CAAC,CA0KvB"}
|
package/dist/impact/analyzer.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
import {} from "../indexer/types.js";
|
|
2
3
|
import { fileIdentityKey } from "../util/paths.js";
|
|
3
4
|
import { sqlEdgeMatchesChangedObjects } from "../sql/source-graph.js";
|
|
@@ -9,6 +10,9 @@ import { buildDependencyStats, normalizeSeverityWeights, selectStrongerImpactRea
|
|
|
9
10
|
import { attachCallCompatibilityHints } from "./call-compatibility.js";
|
|
10
11
|
import { computeMemberResolutionCoverage } from "./member-resolution-coverage.js";
|
|
11
12
|
import { createReferenceLookupCache } from "./reference-cache.js";
|
|
13
|
+
import { isTerraformFile, terraformModuleFiles } from "../terraform/resolution.js";
|
|
14
|
+
import { terraformLocalModuleDirectory } from "../util/resolution/terraform.js";
|
|
15
|
+
import { supportForFileWithoutHeaderSample } from "../languages.js";
|
|
12
16
|
import { createImpactWorkBudget, IMPACT_SYMBOL_BATCH_SIZE, isImpactDeadlineExceeded, recordReferenceLookupOmitted, selectChangedSymbolsForBudget, syncBudgetDiagnostics, } from "./budgets.js";
|
|
13
17
|
export { calculateSeverity, calculateTransitiveSeverity } from "./severity.js";
|
|
14
18
|
export { seedTransitiveFromFiles } from "./transitive.js";
|
|
@@ -92,7 +96,7 @@ export async function analyzeImpact(index, changedSymbols, changedFiles, options
|
|
|
92
96
|
// Filter out changed symbols in ignored files, then apply request-wide ranking budgets.
|
|
93
97
|
const filteredChangedSymbols = changedSymbols.filter((s) => !isIgnored(s.file));
|
|
94
98
|
const budgetedChangedSymbols = selectChangedSymbolsForBudget(filteredChangedSymbols, index, options, diagnostics, fanInByFile);
|
|
95
|
-
const reverseDepsForImpact = reverseDepsForSqlChangedObjects(reverseDeps, filteredChangedSymbols);
|
|
99
|
+
const reverseDepsForImpact = terraformImpactDependents(index, reverseDepsForSqlChangedObjects(reverseDeps, filteredChangedSymbols), changedFiles);
|
|
96
100
|
recordReferenceLookupOmitted(workBudget, filteredChangedSymbols.length - budgetedChangedSymbols.length);
|
|
97
101
|
if (diagnostics) {
|
|
98
102
|
const memberResolutionCoverage = computeMemberResolutionCoverage(filteredChangedSymbols, index);
|
|
@@ -176,6 +180,95 @@ export async function analyzeImpact(index, changedSymbols, changedFiles, options
|
|
|
176
180
|
}
|
|
177
181
|
return sorted;
|
|
178
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Terraform evaluates a directory as one module, and its file edges cover only module `source`
|
|
185
|
+
* calls. For impact, every file of a module depends on its other files (they share one
|
|
186
|
+
* namespace), every file of a calling module depends on the called module's files (any of them
|
|
187
|
+
* can read `module.<name>.<output>`), and a deleted or renamed `.tf` path keeps its old module
|
|
188
|
+
* peers and callers as dependents.
|
|
189
|
+
*
|
|
190
|
+
* Dependents are derived on lookup: each module directory gets one shared edge per file the first
|
|
191
|
+
* time a traversal reaches it, so impact never materializes file-to-file edges for whole modules.
|
|
192
|
+
*/
|
|
193
|
+
function terraformImpactDependents(index, reverseDeps, changedFiles) {
|
|
194
|
+
const moduleEdgesByDirectory = new Map();
|
|
195
|
+
const moduleEdges = (file) => {
|
|
196
|
+
const directoryKey = fileIdentityKey(path.dirname(file));
|
|
197
|
+
let edges = moduleEdgesByDirectory.get(directoryKey);
|
|
198
|
+
if (!edges) {
|
|
199
|
+
edges = terraformModuleFiles(index, file).map((peer) => ({
|
|
200
|
+
from: peer,
|
|
201
|
+
to: { type: "file", path: peer },
|
|
202
|
+
raw: "terraform-module",
|
|
203
|
+
}));
|
|
204
|
+
moduleEdgesByDirectory.set(directoryKey, edges);
|
|
205
|
+
}
|
|
206
|
+
return edges;
|
|
207
|
+
};
|
|
208
|
+
const deletedDependents = new Map();
|
|
209
|
+
for (const change of changedFiles) {
|
|
210
|
+
if (change.kind !== "deleted" && change.kind !== "renamed")
|
|
211
|
+
continue;
|
|
212
|
+
const oldPath = change.kind === "renamed" ? change.oldPath : change.path;
|
|
213
|
+
if (!oldPath || supportForFileWithoutHeaderSample(oldPath, index.languageExtensions)?.id !== "terraform")
|
|
214
|
+
continue;
|
|
215
|
+
const directoryKey = fileIdentityKey(path.dirname(oldPath));
|
|
216
|
+
const parts = [];
|
|
217
|
+
const peer = [...index.byFile.values()].find((module) => isTerraformFile(index, module.file) && fileIdentityKey(path.dirname(module.file)) === directoryKey);
|
|
218
|
+
if (peer)
|
|
219
|
+
parts.push(moduleEdges(peer.file));
|
|
220
|
+
// Without its last file the directory resolves nowhere, so callers' source edges are external.
|
|
221
|
+
for (const edge of index.graph.edges) {
|
|
222
|
+
if (!isTerraformFile(index, edge.from))
|
|
223
|
+
continue;
|
|
224
|
+
const directory = edge.to.type === "external"
|
|
225
|
+
? terraformLocalModuleDirectory(edge.from, edge.to.name)
|
|
226
|
+
: path.dirname(edge.to.path);
|
|
227
|
+
if (directory && fileIdentityKey(directory) === directoryKey)
|
|
228
|
+
parts.push(moduleEdges(edge.from));
|
|
229
|
+
}
|
|
230
|
+
deletedDependents.set(fileIdentityKey(oldPath), parts);
|
|
231
|
+
}
|
|
232
|
+
const resolved = new Map();
|
|
233
|
+
return {
|
|
234
|
+
get(fileKey) {
|
|
235
|
+
const cached = resolved.get(fileKey);
|
|
236
|
+
if (cached)
|
|
237
|
+
return cached;
|
|
238
|
+
const base = reverseDeps.get(fileKey) ?? [];
|
|
239
|
+
const parts = [...(deletedDependents.get(fileKey) ?? [])];
|
|
240
|
+
const module = index.byFile.get(fileKey);
|
|
241
|
+
if (module && isTerraformFile(index, module.file))
|
|
242
|
+
parts.push(moduleEdges(module.file));
|
|
243
|
+
for (const edge of base) {
|
|
244
|
+
if (isTerraformFile(index, edge.from))
|
|
245
|
+
parts.push(moduleEdges(edge.from));
|
|
246
|
+
}
|
|
247
|
+
let edges = base;
|
|
248
|
+
// A file reached only through its own module shares the module's edge array, which lists the
|
|
249
|
+
// file itself; the traversal skips that self edge.
|
|
250
|
+
if (!base.length && parts.length === 1) {
|
|
251
|
+
edges = parts[0];
|
|
252
|
+
}
|
|
253
|
+
else if (parts.length) {
|
|
254
|
+
const seen = new Set(base.map((edge) => fileIdentityKey(edge.from)));
|
|
255
|
+
const combined = [...base];
|
|
256
|
+
for (const part of parts) {
|
|
257
|
+
for (const edge of part) {
|
|
258
|
+
const dependentKey = fileIdentityKey(edge.from);
|
|
259
|
+
if (seen.has(dependentKey))
|
|
260
|
+
continue;
|
|
261
|
+
seen.add(dependentKey);
|
|
262
|
+
combined.push(edge);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
edges = combined;
|
|
266
|
+
}
|
|
267
|
+
resolved.set(fileKey, edges);
|
|
268
|
+
return edges;
|
|
269
|
+
},
|
|
270
|
+
};
|
|
271
|
+
}
|
|
179
272
|
function reverseDepsForSqlChangedObjects(reverseDeps, changedSymbols) {
|
|
180
273
|
const objectNamesByFile = new Map();
|
|
181
274
|
for (const symbol of changedSymbols) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/impact/analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/impact/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,15 @@ import type { FileId, Edge } from "../types.js";
|
|
|
2
2
|
import { type ProjectIndex } from "../indexer/types.js";
|
|
3
3
|
import type { FileChange, ImpactItem, ImpactOptions } from "./types.js";
|
|
4
4
|
type ImpactEmitter = (item: ImpactItem, phase: "partial" | "final") => void;
|
|
5
|
+
/** Incoming file edges by `fileIdentityKey`; impact may derive some edges lazily. */
|
|
6
|
+
export type ReverseDependencyLookup = {
|
|
7
|
+
get(fileKey: string): readonly Edge[] | undefined;
|
|
8
|
+
};
|
|
5
9
|
export declare function seedTransitiveFromFiles(index: ProjectIndex, impacted: Map<FileId, ImpactItem>, changedFiles: FileChange[], options: Partial<ImpactOptions> & {
|
|
6
10
|
projectRoot?: string;
|
|
7
|
-
}, reverseDeps?:
|
|
11
|
+
}, reverseDeps?: ReverseDependencyLookup, emitImpactItem?: ImpactEmitter): void;
|
|
8
12
|
export declare function analyzeTransitiveImpact(impacted: Map<FileId, ImpactItem>, maxDepth: number, options: Partial<ImpactOptions> & {
|
|
9
13
|
projectRoot?: string;
|
|
10
|
-
}, isIndexTestFile: (file: FileId) => boolean, reverseDeps:
|
|
14
|
+
}, isIndexTestFile: (file: FileId) => boolean, reverseDeps: ReverseDependencyLookup, emitImpactItem?: ImpactEmitter): void;
|
|
11
15
|
export {};
|
|
12
16
|
//# sourceMappingURL=transitive.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitive.d.ts","sourceRoot":"","sources":["../../src/impact/transitive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAItF,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"transitive.d.ts","sourceRoot":"","sources":["../../src/impact/transitive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAItF,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,KAAK,IAAI,CAAC;AAE5E,qFAAqF;AACrF,MAAM,MAAM,uBAAuB,GAAG;IAAE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,IAAI,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC;AAY5F,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,YAAY,EAAE,UAAU,EAAE,EAC1B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1D,WAAW,CAAC,EAAE,uBAAuB,EACrC,cAAc,CAAC,EAAE,aAAa,GAC7B,IAAI,CAiGN;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1D,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,EAC1C,WAAW,EAAE,uBAAuB,EACpC,cAAc,CAAC,EAAE,aAAa,GAC7B,IAAI,CAyGN"}
|