@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.
Files changed (92) hide show
  1. package/README.md +2 -0
  2. package/dist/agent/rename-preview.d.ts.map +1 -1
  3. package/dist/agent/rename-preview.js +54 -5
  4. package/dist/agent/rename-preview.js.map +1 -1
  5. package/dist/bin/cli.js +2614 -1417
  6. package/dist/bin/query-index-worker.js +180 -28
  7. package/dist/cli/help.d.ts +1 -1
  8. package/dist/cli/help.d.ts.map +1 -1
  9. package/dist/cli/help.js +1 -1
  10. package/dist/graphs/symbol-graph.d.ts +1 -1
  11. package/dist/graphs/symbol-graph.d.ts.map +1 -1
  12. package/dist/graphs/symbol-graph.js +8 -0
  13. package/dist/graphs/symbol-graph.js.map +1 -1
  14. package/dist/impact/analyzer.d.ts.map +1 -1
  15. package/dist/impact/analyzer.js +94 -1
  16. package/dist/impact/analyzer.js.map +1 -1
  17. package/dist/impact/transitive.d.ts +6 -2
  18. package/dist/impact/transitive.d.ts.map +1 -1
  19. package/dist/impact/transitive.js +23 -11
  20. package/dist/impact/transitive.js.map +1 -1
  21. package/dist/indexer/build-cache/options.d.ts +3 -1
  22. package/dist/indexer/build-cache/options.d.ts.map +1 -1
  23. package/dist/indexer/build-cache/options.js +3 -1
  24. package/dist/indexer/build-cache/options.js.map +1 -1
  25. package/dist/indexer/build-cache/project-snapshot.js +4 -0
  26. package/dist/indexer/build-cache/project-snapshot.js.map +1 -1
  27. package/dist/indexer/declarations.d.ts.map +1 -1
  28. package/dist/indexer/declarations.js +32 -7
  29. package/dist/indexer/declarations.js.map +1 -1
  30. package/dist/indexer/import-resolution-tables.d.ts.map +1 -1
  31. package/dist/indexer/import-resolution-tables.js +10 -0
  32. package/dist/indexer/import-resolution-tables.js.map +1 -1
  33. package/dist/indexer/imports/import-binding-tables.d.ts.map +1 -1
  34. package/dist/indexer/imports/import-binding-tables.js +3 -0
  35. package/dist/indexer/imports/import-binding-tables.js.map +1 -1
  36. package/dist/indexer/locals-and-exports.d.ts.map +1 -1
  37. package/dist/indexer/locals-and-exports.js +8 -0
  38. package/dist/indexer/locals-and-exports.js.map +1 -1
  39. package/dist/indexer/navigation.d.ts.map +1 -1
  40. package/dist/indexer/navigation.js +37 -20
  41. package/dist/indexer/navigation.js.map +1 -1
  42. package/dist/indexer/reference-context.d.ts.map +1 -1
  43. package/dist/indexer/reference-context.js +4 -1
  44. package/dist/indexer/reference-context.js.map +1 -1
  45. package/dist/indexer/scope-nodes.d.ts.map +1 -1
  46. package/dist/indexer/scope-nodes.js +5 -0
  47. package/dist/indexer/scope-nodes.js.map +1 -1
  48. package/dist/indexer/types.d.ts +5 -1
  49. package/dist/indexer/types.d.ts.map +1 -1
  50. package/dist/indexer/types.js +4 -0
  51. package/dist/indexer/types.js.map +1 -1
  52. package/dist/languages/all.d.ts +1 -0
  53. package/dist/languages/all.d.ts.map +1 -1
  54. package/dist/languages/all.js +1 -0
  55. package/dist/languages/all.js.map +1 -1
  56. package/dist/languages/definitions/terraform.d.ts +9 -0
  57. package/dist/languages/definitions/terraform.d.ts.map +1 -0
  58. package/dist/languages/definitions/terraform.js +84 -0
  59. package/dist/languages/definitions/terraform.js.map +1 -0
  60. package/dist/languages.d.ts +1 -0
  61. package/dist/languages.d.ts.map +1 -1
  62. package/dist/languages.js +1 -0
  63. package/dist/languages.js.map +1 -1
  64. package/dist/terraform/navigation.d.ts +20 -0
  65. package/dist/terraform/navigation.d.ts.map +1 -0
  66. package/dist/terraform/navigation.js +142 -0
  67. package/dist/terraform/navigation.js.map +1 -0
  68. package/dist/terraform/resolution.d.ts +82 -0
  69. package/dist/terraform/resolution.d.ts.map +1 -0
  70. package/dist/terraform/resolution.js +324 -0
  71. package/dist/terraform/resolution.js.map +1 -0
  72. package/dist/terraform/syntax.d.ts +109 -0
  73. package/dist/terraform/syntax.d.ts.map +1 -0
  74. package/dist/terraform/syntax.js +441 -0
  75. package/dist/terraform/syntax.js.map +1 -0
  76. package/dist/util/member-access-tables.d.ts.map +1 -1
  77. package/dist/util/member-access-tables.js +3 -0
  78. package/dist/util/member-access-tables.js.map +1 -1
  79. package/dist/util/project-files.d.ts.map +1 -1
  80. package/dist/util/project-files.js +3 -1
  81. package/dist/util/project-files.js.map +1 -1
  82. package/dist/util/resolution/specifier-targets.d.ts.map +1 -1
  83. package/dist/util/resolution/specifier-targets.js +5 -0
  84. package/dist/util/resolution/specifier-targets.js.map +1 -1
  85. package/dist/util/resolution/terraform.d.ts +18 -0
  86. package/dist/util/resolution/terraform.d.ts.map +1 -0
  87. package/dist/util/resolution/terraform.js +64 -0
  88. package/dist/util/resolution/terraform.js.map +1 -0
  89. package/dist/util/trivia-tables.d.ts.map +1 -1
  90. package/dist/util/trivia-tables.js +9 -0
  91. package/dist/util/trivia-tables.js.map +1 -1
  92. 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";
@@ -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 routine.\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";
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";
@@ -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,+5CAY7B,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"}
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 routine.
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;AAmBF,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"}
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":"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"}
1
+ {"version":3,"file":"symbol-graph.js","sourceRoot":"","sources":["../../src/graphs/symbol-graph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/impact/analyzer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAgBvF,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,CAsKvB"}
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"}
@@ -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?: Map<FileId, Edge[]>, emitImpactItem?: ImpactEmitter): void;
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: Map<FileId, Edge[]>, emitImpactItem?: ImpactEmitter): void;
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;AAW5E,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,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EACjC,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,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAChC,cAAc,CAAC,EAAE,aAAa,GAC7B,IAAI,CA+FN"}
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"}