@yoinkingfish/parser 0.1.2 → 0.1.6

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 (41) hide show
  1. package/dist/parsers/cpp-parser.d.ts +12 -0
  2. package/dist/parsers/cpp-parser.d.ts.map +1 -0
  3. package/dist/parsers/cpp-parser.js +51 -0
  4. package/dist/parsers/cpp-parser.js.map +1 -0
  5. package/dist/parsers/csharp-parser.d.ts +12 -0
  6. package/dist/parsers/csharp-parser.d.ts.map +1 -0
  7. package/dist/parsers/csharp-parser.js +39 -0
  8. package/dist/parsers/csharp-parser.js.map +1 -0
  9. package/dist/parsers/go-parser.d.ts +12 -0
  10. package/dist/parsers/go-parser.d.ts.map +1 -0
  11. package/dist/parsers/go-parser.js +64 -0
  12. package/dist/parsers/go-parser.js.map +1 -0
  13. package/dist/parsers/index.d.ts +11 -3
  14. package/dist/parsers/index.d.ts.map +1 -1
  15. package/dist/parsers/index.js +37 -3
  16. package/dist/parsers/index.js.map +1 -1
  17. package/dist/parsers/java-parser.d.ts +12 -0
  18. package/dist/parsers/java-parser.d.ts.map +1 -0
  19. package/dist/parsers/java-parser.js +39 -0
  20. package/dist/parsers/java-parser.js.map +1 -0
  21. package/dist/parsers/php-parser.d.ts +12 -0
  22. package/dist/parsers/php-parser.d.ts.map +1 -0
  23. package/dist/parsers/php-parser.js +48 -0
  24. package/dist/parsers/php-parser.js.map +1 -0
  25. package/dist/parsers/python-parser.d.ts +12 -0
  26. package/dist/parsers/python-parser.d.ts.map +1 -0
  27. package/dist/parsers/python-parser.js +74 -0
  28. package/dist/parsers/python-parser.js.map +1 -0
  29. package/dist/parsers/ruby-parser.d.ts +12 -0
  30. package/dist/parsers/ruby-parser.d.ts.map +1 -0
  31. package/dist/parsers/ruby-parser.js +39 -0
  32. package/dist/parsers/ruby-parser.js.map +1 -0
  33. package/dist/parsers/rust-parser.d.ts +13 -0
  34. package/dist/parsers/rust-parser.d.ts.map +1 -0
  35. package/dist/parsers/rust-parser.js +61 -0
  36. package/dist/parsers/rust-parser.js.map +1 -0
  37. package/dist/resolvers/index.d.ts +2 -1
  38. package/dist/resolvers/index.d.ts.map +1 -1
  39. package/dist/resolvers/index.js +354 -17
  40. package/dist/resolvers/index.js.map +1 -1
  41. package/package.json +2 -2
@@ -0,0 +1,12 @@
1
+ /**
2
+ * C/C++ Parser — extracts #include directives.
3
+ * Supports: #include <header>, #include "header", #include "path/header.h"
4
+ */
5
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
6
+ export declare class CppParser implements LanguageParser {
7
+ readonly supportedExtensions: string[];
8
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
9
+ private getLineNumber;
10
+ private dedupe;
11
+ }
12
+ //# sourceMappingURL=cpp-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpp-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/cpp-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,SAAU,YAAW,cAAc;IAC9C,QAAQ,CAAC,mBAAmB,WAY1B;IAEI,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * C/C++ Parser — extracts #include directives.
3
+ * Supports: #include <header>, #include "header", #include "path/header.h"
4
+ */
5
+ export class CppParser {
6
+ supportedExtensions = [
7
+ "c",
8
+ "cc",
9
+ "cpp",
10
+ "cxx",
11
+ "c++",
12
+ "h",
13
+ "hh",
14
+ "hpp",
15
+ "hxx",
16
+ "h++",
17
+ "inl",
18
+ ];
19
+ async parseFile(source, context) {
20
+ const dependencies = [];
21
+ // Match: #include <header> or #include "header"
22
+ const includes = source.matchAll(/^\s*#include\s*[<"]([^>"]+)[>"]/gm);
23
+ for (const match of includes) {
24
+ dependencies.push({
25
+ specifier: match[1],
26
+ type: "import",
27
+ line: this.getLineNumber(source, match.index ?? 0),
28
+ });
29
+ }
30
+ return {
31
+ filePath: context.filePath,
32
+ relativePath: context.relativePath,
33
+ language: "cpp",
34
+ dependencies: this.dedupe(dependencies),
35
+ };
36
+ }
37
+ getLineNumber(source, index) {
38
+ return source.substring(0, index).split("\n").length;
39
+ }
40
+ dedupe(deps) {
41
+ const seen = new Set();
42
+ return deps.filter((d) => {
43
+ const key = `${d.type}:${d.specifier}`;
44
+ if (seen.has(key))
45
+ return false;
46
+ seen.add(key);
47
+ return true;
48
+ });
49
+ }
50
+ }
51
+ //# sourceMappingURL=cpp-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpp-parser.js","sourceRoot":"","sources":["../../src/parsers/cpp-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,SAAS;IACX,mBAAmB,GAAG;QAC7B,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,GAAG;QACH,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;KACN,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAqB;QACnD,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,gDAAgD;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;QACtE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,IAAqB;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * C# Parser — extracts using directives and namespace imports.
3
+ * Supports: using System; using System.Collections.Generic; using static System.Math;
4
+ */
5
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
6
+ export declare class CSharpParser implements LanguageParser {
7
+ readonly supportedExtensions: string[];
8
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
9
+ private getLineNumber;
10
+ private dedupe;
11
+ }
12
+ //# sourceMappingURL=csharp-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/csharp-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,YAAa,YAAW,cAAc;IACjD,QAAQ,CAAC,mBAAmB,WAAU;IAEhC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * C# Parser — extracts using directives and namespace imports.
3
+ * Supports: using System; using System.Collections.Generic; using static System.Math;
4
+ */
5
+ export class CSharpParser {
6
+ supportedExtensions = ["cs"];
7
+ async parseFile(source, context) {
8
+ const dependencies = [];
9
+ // Match: using System; using System.Collections.Generic; using static System.Math;
10
+ const usings = source.matchAll(/^\s*using\s+(?:static\s+)?([\w.]+);/gm);
11
+ for (const match of usings) {
12
+ dependencies.push({
13
+ specifier: match[1],
14
+ type: "import",
15
+ line: this.getLineNumber(source, match.index ?? 0),
16
+ });
17
+ }
18
+ return {
19
+ filePath: context.filePath,
20
+ relativePath: context.relativePath,
21
+ language: "csharp",
22
+ dependencies: this.dedupe(dependencies),
23
+ };
24
+ }
25
+ getLineNumber(source, index) {
26
+ return source.substring(0, index).split("\n").length;
27
+ }
28
+ dedupe(deps) {
29
+ const seen = new Set();
30
+ return deps.filter((d) => {
31
+ const key = `${d.type}:${d.specifier}`;
32
+ if (seen.has(key))
33
+ return false;
34
+ seen.add(key);
35
+ return true;
36
+ });
37
+ }
38
+ }
39
+ //# sourceMappingURL=csharp-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp-parser.js","sourceRoot":"","sources":["../../src/parsers/csharp-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,YAAY;IACd,mBAAmB,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtC,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAqB;QACnD,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,mFAAmF;QACnF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;QACxE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,IAAqB;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Go Parser — extracts imports using Go's import statement patterns.
3
+ * Supports: import "pkg", import ( "pkg1"; "pkg2" ), import alias "pkg"
4
+ */
5
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
6
+ export declare class GoParser implements LanguageParser {
7
+ readonly supportedExtensions: string[];
8
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
9
+ private getLineNumber;
10
+ private dedupe;
11
+ }
12
+ //# sourceMappingURL=go-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/go-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,QAAS,YAAW,cAAc;IAC7C,QAAQ,CAAC,mBAAmB,WAAU;IAEhC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAgD5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Go Parser — extracts imports using Go's import statement patterns.
3
+ * Supports: import "pkg", import ( "pkg1"; "pkg2" ), import alias "pkg"
4
+ */
5
+ export class GoParser {
6
+ supportedExtensions = ["go"];
7
+ async parseFile(source, context) {
8
+ const dependencies = [];
9
+ // Match single-line imports: import "pkg"
10
+ const singleImports = source.matchAll(/^\s*import\s+"([^"]+)"/gm);
11
+ for (const match of singleImports) {
12
+ dependencies.push({
13
+ specifier: match[1],
14
+ type: "import",
15
+ line: this.getLineNumber(source, match.index ?? 0),
16
+ });
17
+ }
18
+ // Match multi-line imports: import ( "pkg1"; "pkg2" )
19
+ const multiImports = source.matchAll(/import\s*\(([\s\S]*?)\)/gm);
20
+ for (const match of multiImports) {
21
+ const block = match[1];
22
+ const imports = block.match(/"([^"]+)"/g);
23
+ if (imports) {
24
+ for (const imp of imports) {
25
+ const pkg = imp.replace(/"/g, "");
26
+ dependencies.push({
27
+ specifier: pkg,
28
+ type: "import",
29
+ line: this.getLineNumber(source, match.index ?? 0),
30
+ });
31
+ }
32
+ }
33
+ }
34
+ // Match aliased imports: import alias "pkg"
35
+ const aliasedImports = source.matchAll(/^\s*import\s+(\w+)\s+"([^"]+)"/gm);
36
+ for (const match of aliasedImports) {
37
+ dependencies.push({
38
+ specifier: match[2],
39
+ type: "import",
40
+ line: this.getLineNumber(source, match.index ?? 0),
41
+ });
42
+ }
43
+ return {
44
+ filePath: context.filePath,
45
+ relativePath: context.relativePath,
46
+ language: "go",
47
+ dependencies: this.dedupe(dependencies),
48
+ };
49
+ }
50
+ getLineNumber(source, index) {
51
+ return source.substring(0, index).split("\n").length;
52
+ }
53
+ dedupe(deps) {
54
+ const seen = new Set();
55
+ return deps.filter((d) => {
56
+ const key = `${d.type}:${d.specifier}`;
57
+ if (seen.has(key))
58
+ return false;
59
+ seen.add(key);
60
+ return true;
61
+ });
62
+ }
63
+ }
64
+ //# sourceMappingURL=go-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"go-parser.js","sourceRoot":"","sources":["../../src/parsers/go-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,QAAQ;IACV,mBAAmB,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtC,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAqB;QACnD,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,0CAA0C;QAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,sDAAsD;QACtD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAClC,YAAY,CAAC,IAAI,CAAC;wBAChB,SAAS,EAAE,GAAG;wBACd,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;qBACnD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,IAAqB;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Parsers — LanguageParser abstraction and registry.
2
+ * Parsers LanguageParser abstraction and registry.
3
3
  */
4
4
  export interface ParseContext {
5
5
  filePath: string;
@@ -9,7 +9,7 @@ export interface ParseContext {
9
9
  }
10
10
  export interface RawDependency {
11
11
  specifier: string;
12
- type: "import" | "require" | "dynamic-import" | "unknown";
12
+ type: "import" | "require" | "dynamic-import" | "require" | "unknown";
13
13
  line?: number;
14
14
  }
15
15
  export interface ParseResult {
@@ -27,4 +27,12 @@ export declare const parserRegistry: LanguageParser[];
27
27
  export declare function getParserForExtension(ext: string): LanguageParser | undefined;
28
28
  export declare function getParserForFile(filePath: string): LanguageParser | undefined;
29
29
  export { TypeScriptParser } from "./typescript-parser.js";
30
- //# sourceMappingURL=index.d.ts.map
30
+ export { PythonParser } from "./python-parser.js";
31
+ export { GoParser } from "./go-parser.js";
32
+ export { RustParser } from "./rust-parser.js";
33
+ export { JavaParser } from "./java-parser.js";
34
+ export { CSharpParser } from "./csharp-parser.js";
35
+ export { PHPParser } from "./php-parser.js";
36
+ export { RubyParser } from "./ruby-parser.js";
37
+ export { CppParser } from "./cpp-parser.js";
38
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAAC;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACxE;AAID,eAAO,MAAM,cAAc,EAAE,cAAc,EAAe,CAAC;AAE3D,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAG7E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAG7E;AAGD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAC;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IACvC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACxE;AAaD,eAAO,MAAM,cAAc,EAAE,cAAc,EAU1C,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAG7E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAG7E;AAGD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,10 +1,36 @@
1
1
  /**
2
- * Parsers — LanguageParser abstraction and registry.
2
+ * Parsers LanguageParser abstraction and registry.
3
3
  */
4
4
  import { TypeScriptParser } from "./typescript-parser.js";
5
- // Registry — add new language parsers here
5
+ import { PythonParser } from "./python-parser.js";
6
+ import { GoParser } from "./go-parser.js";
7
+ import { RustParser } from "./rust-parser.js";
8
+ import { JavaParser } from "./java-parser.js";
9
+ import { CSharpParser } from "./csharp-parser.js";
10
+ import { PHPParser } from "./php-parser.js";
11
+ import { RubyParser } from "./ruby-parser.js";
12
+ import { CppParser } from "./cpp-parser.js";
13
+ // Registry — all supported language parsers
6
14
  const tsParser = new TypeScriptParser();
7
- export const parserRegistry = [tsParser];
15
+ const pythonParser = new PythonParser();
16
+ const goParser = new GoParser();
17
+ const rustParser = new RustParser();
18
+ const javaParser = new JavaParser();
19
+ const csharpParser = new CSharpParser();
20
+ const phpParser = new PHPParser();
21
+ const rubyParser = new RubyParser();
22
+ const cppParser = new CppParser();
23
+ export const parserRegistry = [
24
+ tsParser,
25
+ pythonParser,
26
+ goParser,
27
+ rustParser,
28
+ javaParser,
29
+ csharpParser,
30
+ phpParser,
31
+ rubyParser,
32
+ cppParser,
33
+ ];
8
34
  export function getParserForExtension(ext) {
9
35
  const lower = ext.toLowerCase().replace(/^\./, "");
10
36
  return parserRegistry.find((p) => p.supportedExtensions.includes(lower));
@@ -15,4 +41,12 @@ export function getParserForFile(filePath) {
15
41
  }
16
42
  // Re-export concrete parsers
17
43
  export { TypeScriptParser } from "./typescript-parser.js";
44
+ export { PythonParser } from "./python-parser.js";
45
+ export { GoParser } from "./go-parser.js";
46
+ export { RustParser } from "./rust-parser.js";
47
+ export { JavaParser } from "./java-parser.js";
48
+ export { CSharpParser } from "./csharp-parser.js";
49
+ export { PHPParser } from "./php-parser.js";
50
+ export { RubyParser } from "./ruby-parser.js";
51
+ export { CppParser } from "./cpp-parser.js";
18
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AA4B1D,6CAA6C;AAC7C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,cAAc,GAAqB,CAAC,QAAQ,CAAC,CAAC;AAE3D,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5C,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,6BAA6B;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parsers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA4B5C,4CAA4C;AAC5C,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;AACxC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AACpC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AACpC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AACxC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAClC,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AACpC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAElC,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,QAAQ;IACR,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,UAAU;IACV,YAAY;IACZ,SAAS;IACT,UAAU;IACV,SAAS;CACV,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5C,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACpC,CAAC;AAED,6BAA6B;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Java Parser — extracts imports using Java import statements.
3
+ * Supports: import pkg.Class, import pkg.*, import static pkg.Class.field
4
+ */
5
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
6
+ export declare class JavaParser implements LanguageParser {
7
+ readonly supportedExtensions: string[];
8
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
9
+ private getLineNumber;
10
+ private dedupe;
11
+ }
12
+ //# sourceMappingURL=java-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/java-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,mBAAmB,WAAY;IAElC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Java Parser — extracts imports using Java import statements.
3
+ * Supports: import pkg.Class, import pkg.*, import static pkg.Class.field
4
+ */
5
+ export class JavaParser {
6
+ supportedExtensions = ["java"];
7
+ async parseFile(source, context) {
8
+ const dependencies = [];
9
+ // Match: import pkg.Class; import pkg.*;
10
+ const imports = source.matchAll(/^\s*import\s+(?:static\s+)?([\w.]+(?:\.\*)?);/gm);
11
+ for (const match of imports) {
12
+ dependencies.push({
13
+ specifier: match[1],
14
+ type: "import",
15
+ line: this.getLineNumber(source, match.index ?? 0),
16
+ });
17
+ }
18
+ return {
19
+ filePath: context.filePath,
20
+ relativePath: context.relativePath,
21
+ language: "java",
22
+ dependencies: this.dedupe(dependencies),
23
+ };
24
+ }
25
+ getLineNumber(source, index) {
26
+ return source.substring(0, index).split("\n").length;
27
+ }
28
+ dedupe(deps) {
29
+ const seen = new Set();
30
+ return deps.filter((d) => {
31
+ const key = `${d.type}:${d.specifier}`;
32
+ if (seen.has(key))
33
+ return false;
34
+ seen.add(key);
35
+ return true;
36
+ });
37
+ }
38
+ }
39
+ //# sourceMappingURL=java-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java-parser.js","sourceRoot":"","sources":["../../src/parsers/java-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,UAAU;IACZ,mBAAmB,GAAG,CAAC,MAAM,CAAC,CAAC;IAExC,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAqB;QACnD,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,yCAAyC;QACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;QACnF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,IAAqB;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * PHP Parser — extracts use statements and require/include statements.
3
+ * Supports: use Namespace\Class; use function Namespace\func; require 'file.php';
4
+ */
5
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
6
+ export declare class PHPParser implements LanguageParser {
7
+ readonly supportedExtensions: string[];
8
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
9
+ private getLineNumber;
10
+ private dedupe;
11
+ }
12
+ //# sourceMappingURL=php-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/php-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,SAAU,YAAW,cAAc;IAC9C,QAAQ,CAAC,mBAAmB,WAA4C;IAElE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAiC5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * PHP Parser — extracts use statements and require/include statements.
3
+ * Supports: use Namespace\Class; use function Namespace\func; require 'file.php';
4
+ */
5
+ export class PHPParser {
6
+ supportedExtensions = ["php", "phtml", "php5", "php7", "php8"];
7
+ async parseFile(source, context) {
8
+ const dependencies = [];
9
+ // Match: use Namespace\Class; use function Namespace\func;
10
+ const uses = source.matchAll(/^\s*use\s+(?:function\s+|const\s+)?([\w\\]+);/gm);
11
+ for (const match of uses) {
12
+ dependencies.push({
13
+ specifier: match[1],
14
+ type: "import",
15
+ line: this.getLineNumber(source, match.index ?? 0),
16
+ });
17
+ }
18
+ // Match: require 'file.php'; require_once 'file.php';
19
+ const requires = source.matchAll(/(?:require|require_once|include|include_once)\s*[(\s]*['"]([^'"]+)['"]/gm);
20
+ for (const match of requires) {
21
+ dependencies.push({
22
+ specifier: match[1],
23
+ type: "require",
24
+ line: this.getLineNumber(source, match.index ?? 0),
25
+ });
26
+ }
27
+ return {
28
+ filePath: context.filePath,
29
+ relativePath: context.relativePath,
30
+ language: "php",
31
+ dependencies: this.dedupe(dependencies),
32
+ };
33
+ }
34
+ getLineNumber(source, index) {
35
+ return source.substring(0, index).split("\n").length;
36
+ }
37
+ dedupe(deps) {
38
+ const seen = new Set();
39
+ return deps.filter((d) => {
40
+ const key = `${d.type}:${d.specifier}`;
41
+ if (seen.has(key))
42
+ return false;
43
+ seen.add(key);
44
+ return true;
45
+ });
46
+ }
47
+ }
48
+ //# sourceMappingURL=php-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php-parser.js","sourceRoot":"","sources":["../../src/parsers/php-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,SAAS;IACX,mBAAmB,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAExE,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAqB;QACnD,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,2DAA2D;QAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;QAChF,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,sDAAsD;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAC9B,0EAA0E,CAC3E,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,IAAqB;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Python Parser — extracts imports using Python's AST patterns.
3
+ * Supports: import x, from x import y, import x as y, from . import x
4
+ */
5
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
6
+ export declare class PythonParser implements LanguageParser {
7
+ readonly supportedExtensions: string[];
8
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
9
+ private getLineNumber;
10
+ private dedupe;
11
+ }
12
+ //# sourceMappingURL=python-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/python-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,YAAa,YAAW,cAAc;IACjD,QAAQ,CAAC,mBAAmB,WAAwB;IAE9C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IA8D5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Python Parser — extracts imports using Python's AST patterns.
3
+ * Supports: import x, from x import y, import x as y, from . import x
4
+ */
5
+ export class PythonParser {
6
+ supportedExtensions = ["py", "pyw", "pyi"];
7
+ async parseFile(source, context) {
8
+ const dependencies = [];
9
+ // Match: from module import name
10
+ const fromImports = source.matchAll(/^\s*from\s+([\w.]+)\s+import\s+([\w.,\s*]+)/gm);
11
+ for (const match of fromImports) {
12
+ const module = match[1];
13
+ const imports = match[2].split(",").map((s) => s
14
+ .trim()
15
+ .split(/\s+as\s+/)[0]
16
+ .trim());
17
+ for (const imp of imports) {
18
+ if (imp && imp !== "*") {
19
+ dependencies.push({
20
+ specifier: module,
21
+ type: "import",
22
+ line: this.getLineNumber(source, match.index ?? 0),
23
+ });
24
+ }
25
+ }
26
+ }
27
+ // Match: import module
28
+ const directImports = source.matchAll(/^\s*import\s+([\w.,\s*]+)/gm);
29
+ for (const match of directImports) {
30
+ const imports = match[1].split(",").map((s) => s
31
+ .trim()
32
+ .split(/\s+as\s+/)[0]
33
+ .trim());
34
+ for (const imp of imports) {
35
+ if (imp) {
36
+ dependencies.push({
37
+ specifier: imp,
38
+ type: "import",
39
+ line: this.getLineNumber(source, match.index ?? 0),
40
+ });
41
+ }
42
+ }
43
+ }
44
+ // Relative imports (from . import x, from ..module import x)
45
+ const relativeImports = source.matchAll(/^\s*from\s+(\.+[\w.]*)\s+import\s+/gm);
46
+ for (const match of relativeImports) {
47
+ dependencies.push({
48
+ specifier: match[1],
49
+ type: "import",
50
+ line: this.getLineNumber(source, match.index ?? 0),
51
+ });
52
+ }
53
+ return {
54
+ filePath: context.filePath,
55
+ relativePath: context.relativePath,
56
+ language: "python",
57
+ dependencies: this.dedupe(dependencies),
58
+ };
59
+ }
60
+ getLineNumber(source, index) {
61
+ return source.substring(0, index).split("\n").length;
62
+ }
63
+ dedupe(deps) {
64
+ const seen = new Set();
65
+ return deps.filter((d) => {
66
+ const key = `${d.type}:${d.specifier}`;
67
+ if (seen.has(key))
68
+ return false;
69
+ seen.add(key);
70
+ return true;
71
+ });
72
+ }
73
+ }
74
+ //# sourceMappingURL=python-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"python-parser.js","sourceRoot":"","sources":["../../src/parsers/python-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Ruby Parser — extracts require and require_relative statements.
3
+ * Supports: require 'gem', require_relative 'file', require 'path/to/file'
4
+ */
5
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
6
+ export declare class RubyParser implements LanguageParser {
7
+ readonly supportedExtensions: string[];
8
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
9
+ private getLineNumber;
10
+ private dedupe;
11
+ }
12
+ //# sourceMappingURL=ruby-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/ruby-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,mBAAmB,WAAoC;IAE1D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAqB5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Ruby Parser — extracts require and require_relative statements.
3
+ * Supports: require 'gem', require_relative 'file', require 'path/to/file'
4
+ */
5
+ export class RubyParser {
6
+ supportedExtensions = ["rb", "rbw", "rake", "gemspec"];
7
+ async parseFile(source, context) {
8
+ const dependencies = [];
9
+ // Match: require 'gem'; require_relative 'file'
10
+ const requires = source.matchAll(/^\s*require(?:_relative)?\s*[(\s]*['"]([^'"]+)['"]/gm);
11
+ for (const match of requires) {
12
+ dependencies.push({
13
+ specifier: match[1],
14
+ type: "require",
15
+ line: this.getLineNumber(source, match.index ?? 0),
16
+ });
17
+ }
18
+ return {
19
+ filePath: context.filePath,
20
+ relativePath: context.relativePath,
21
+ language: "ruby",
22
+ dependencies: this.dedupe(dependencies),
23
+ };
24
+ }
25
+ getLineNumber(source, index) {
26
+ return source.substring(0, index).split("\n").length;
27
+ }
28
+ dedupe(deps) {
29
+ const seen = new Set();
30
+ return deps.filter((d) => {
31
+ const key = `${d.type}:${d.specifier}`;
32
+ if (seen.has(key))
33
+ return false;
34
+ seen.add(key);
35
+ return true;
36
+ });
37
+ }
38
+ }
39
+ //# sourceMappingURL=ruby-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby-parser.js","sourceRoot":"","sources":["../../src/parsers/ruby-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,UAAU;IACZ,mBAAmB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAEhE,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAqB;QACnD,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,gDAAgD;QAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,sDAAsD,CAAC,CAAC;QACzF,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,IAAqB;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Rust Parser — extracts imports using Rust's use/mod patterns.
3
+ * Supports: use crate::module, use crate::module::*, use crate::module::{a, b}
4
+ * mod module; use crate::module;
5
+ */
6
+ import { LanguageParser, ParseContext, ParseResult } from "./index.js";
7
+ export declare class RustParser implements LanguageParser {
8
+ readonly supportedExtensions: string[];
9
+ parseFile(source: string, context: ParseContext): Promise<ParseResult>;
10
+ private getLineNumber;
11
+ private dedupe;
12
+ }
13
+ //# sourceMappingURL=rust-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/rust-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAiB,MAAM,YAAY,CAAC;AAEtF,qBAAa,UAAW,YAAW,cAAc;IAC/C,QAAQ,CAAC,mBAAmB,WAAU;IAEhC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IA4C5E,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,MAAM;CASf"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Rust Parser — extracts imports using Rust's use/mod patterns.
3
+ * Supports: use crate::module, use crate::module::*, use crate::module::{a, b}
4
+ * mod module; use crate::module;
5
+ */
6
+ export class RustParser {
7
+ supportedExtensions = ["rs"];
8
+ async parseFile(source, context) {
9
+ const dependencies = [];
10
+ // Match: use crate::module::item;
11
+ const useImports = source.matchAll(/^\s*use\s+([\w:]+(?:::\{[^}]+\})?|[\w:]+(?:::\*)?);/gm);
12
+ for (const match of useImports) {
13
+ let path = match[1].replace(/\s+/g, "");
14
+ // Remove trailing {*} or {a,b}
15
+ path = path.replace(/\{.*\}/, "");
16
+ dependencies.push({
17
+ specifier: path,
18
+ type: "import",
19
+ line: this.getLineNumber(source, match.index ?? 0),
20
+ });
21
+ }
22
+ // Match: mod module;
23
+ const modDecls = source.matchAll(/^\s*(?:pub\s+)?mod\s+(\w+);/gm);
24
+ for (const match of modDecls) {
25
+ dependencies.push({
26
+ specifier: match[1],
27
+ type: "import",
28
+ line: this.getLineNumber(source, match.index ?? 0),
29
+ });
30
+ }
31
+ // extern crate declarations
32
+ const externCrates = source.matchAll(/^\s*extern\s+crate\s+(\w+);/gm);
33
+ for (const match of externCrates) {
34
+ dependencies.push({
35
+ specifier: match[1],
36
+ type: "import",
37
+ line: this.getLineNumber(source, match.index ?? 0),
38
+ });
39
+ }
40
+ return {
41
+ filePath: context.filePath,
42
+ relativePath: context.relativePath,
43
+ language: "rust",
44
+ dependencies: this.dedupe(dependencies),
45
+ };
46
+ }
47
+ getLineNumber(source, index) {
48
+ return source.substring(0, index).split("\n").length;
49
+ }
50
+ dedupe(deps) {
51
+ const seen = new Set();
52
+ return deps.filter((d) => {
53
+ const key = `${d.type}:${d.specifier}`;
54
+ if (seen.has(key))
55
+ return false;
56
+ seen.add(key);
57
+ return true;
58
+ });
59
+ }
60
+ }
61
+ //# sourceMappingURL=rust-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rust-parser.js","sourceRoot":"","sources":["../../src/parsers/rust-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,OAAO,UAAU;IACZ,mBAAmB,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtC,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,OAAqB;QACnD,MAAM,YAAY,GAAoB,EAAE,CAAC;QAEzC,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC;QAC5F,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACxC,+BAA+B;YAC/B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAClC,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QAClE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,4BAA4B;QAC5B,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;QACtE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,YAAY,CAAC,IAAI,CAAC;gBAChB,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;SACxC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,KAAa;QACjD,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,IAAqB;QAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -25,9 +25,10 @@ export interface ResolvedDependency {
25
25
  external: boolean;
26
26
  }
27
27
  export declare function resolveImport(specifier: string, ctx: ResolveContext): ResolvedDependency;
28
+ export declare function resolveImportForLanguage(specifier: string, ctx: ResolveContext, importerLanguage: string): ResolvedDependency;
28
29
  /** Load tsconfig paths lazily — caller can pass pre-parsed */
29
30
  export declare function parseTsconfigPaths(tsconfigContent: string, configDir: string): {
30
31
  paths?: Record<string, string[]>;
31
32
  baseUrl?: string;
32
33
  };
33
- //# sourceMappingURL=index.d.ts.map
34
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAKD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,kBAAkB,CA+BxF;AAkID,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAWrI"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAKD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,kBAAkB,CAkDxF;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc,EACnB,gBAAgB,EAAE,MAAM,GACvB,kBAAkB,CA4CpB;AAubD,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAaxD"}
@@ -15,10 +15,22 @@ const INDEX_FILES = ["index.ts", "index.tsx", "index.js", "index.jsx", "index.mj
15
15
  export function resolveImport(specifier, ctx) {
16
16
  const raw = specifier.trim();
17
17
  if (!raw)
18
- return { rawSpecifier: specifier, resolvedPath: null, resolvedAbsolute: null, resolved: false, external: false };
18
+ return {
19
+ rawSpecifier: specifier,
20
+ resolvedPath: null,
21
+ resolvedAbsolute: null,
22
+ resolved: false,
23
+ external: false,
24
+ };
19
25
  // Absolute or URL — treat as external
20
26
  if (raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:")) {
21
- return { rawSpecifier: specifier, resolvedPath: null, resolvedAbsolute: null, resolved: false, external: true };
27
+ return {
28
+ rawSpecifier: specifier,
29
+ resolvedPath: null,
30
+ resolvedAbsolute: null,
31
+ resolved: false,
32
+ external: true,
33
+ };
22
34
  }
23
35
  // Try tsconfig paths alias first (longest prefix wins)
24
36
  if (ctx.tsConfigPaths) {
@@ -40,7 +52,267 @@ export function resolveImport(specifier, ctx) {
40
52
  return baseResolved;
41
53
  }
42
54
  // External package
43
- return { rawSpecifier: specifier, resolvedPath: null, resolvedAbsolute: null, resolved: false, external: true };
55
+ return {
56
+ rawSpecifier: specifier,
57
+ resolvedPath: null,
58
+ resolvedAbsolute: null,
59
+ resolved: false,
60
+ external: true,
61
+ };
62
+ }
63
+ export function resolveImportForLanguage(specifier, ctx, importerLanguage) {
64
+ const raw = specifier.trim();
65
+ if (!raw)
66
+ return {
67
+ rawSpecifier: specifier,
68
+ resolvedPath: null,
69
+ resolvedAbsolute: null,
70
+ resolved: false,
71
+ external: false,
72
+ };
73
+ // Absolute or URL — treat as external
74
+ if (raw.startsWith("http://") || raw.startsWith("https://") || raw.startsWith("data:")) {
75
+ return {
76
+ rawSpecifier: specifier,
77
+ resolvedPath: null,
78
+ resolvedAbsolute: null,
79
+ resolved: false,
80
+ external: true,
81
+ };
82
+ }
83
+ // Language-specific resolution
84
+ switch (importerLanguage.toLowerCase()) {
85
+ case "python":
86
+ return resolvePythonImport(raw, ctx);
87
+ case "go":
88
+ return resolveGoImport(raw, ctx);
89
+ case "rust":
90
+ return resolveRustImport(raw, ctx);
91
+ case "java":
92
+ return resolveJavaImport(raw, ctx);
93
+ case "csharp":
94
+ return resolveCSharpImport(raw, ctx);
95
+ case "php":
96
+ return resolvePHPImport(raw, ctx);
97
+ case "ruby":
98
+ return resolveRubyImport(raw, ctx);
99
+ case "cpp":
100
+ return resolveCppImport(raw, ctx);
101
+ default:
102
+ // Default to TypeScript/JS resolver
103
+ return resolveImport(raw, ctx);
104
+ }
105
+ }
106
+ function resolvePythonImport(specifier, ctx) {
107
+ const raw = specifier.trim();
108
+ if (!raw.startsWith(".") && !raw.startsWith("/")) {
109
+ // External package (pip package)
110
+ return {
111
+ rawSpecifier: specifier,
112
+ resolvedPath: null,
113
+ resolvedAbsolute: null,
114
+ resolved: false,
115
+ external: true,
116
+ };
117
+ }
118
+ return resolvePythonRelative(raw, ctx);
119
+ }
120
+ function resolvePythonRelative(specifier, ctx) {
121
+ const importerDir = path.dirname(ctx.importerPath);
122
+ const importerDirRel = path.posix.dirname(ctx.importerRelative);
123
+ const attemptedAbs = path.resolve(importerDir, specifier);
124
+ const attemptedRel = path.posix.normalize(path.posix.join(importerDirRel, specifier));
125
+ // 1. Exact match
126
+ if (ctx.existingFiles.has(attemptedRel) ||
127
+ (ctx.existingAbsFiles?.has(attemptedAbs) ?? fileExists(attemptedAbs))) {
128
+ const foundRel = ctx.existingFiles.has(attemptedRel)
129
+ ? attemptedRel
130
+ : toRel(attemptedAbs, ctx.root);
131
+ if (foundRel)
132
+ return {
133
+ rawSpecifier: specifier,
134
+ resolvedPath: foundRel,
135
+ resolvedAbsolute: attemptedAbs,
136
+ resolved: true,
137
+ external: false,
138
+ };
139
+ }
140
+ // 2. Try Python extensions
141
+ for (const ext of [".py", ".pyw", ".pyi"]) {
142
+ const tryRel = attemptedRel + ext;
143
+ const tryAbs = attemptedAbs + ext;
144
+ if (ctx.existingFiles.has(tryRel) ||
145
+ (ctx.existingAbsFiles?.has(tryAbs) ?? fileExists(tryAbs))) {
146
+ return {
147
+ rawSpecifier: specifier,
148
+ resolvedPath: tryRel,
149
+ resolvedAbsolute: tryAbs,
150
+ resolved: true,
151
+ external: false,
152
+ };
153
+ }
154
+ }
155
+ // 3. Try __init__.py
156
+ for (const idx of ["__init__.py"]) {
157
+ const tryRel = path.posix.join(attemptedRel, idx);
158
+ const tryAbs = path.join(attemptedAbs, idx);
159
+ if (ctx.existingFiles.has(tryRel) ||
160
+ (ctx.existingAbsFiles?.has(tryAbs) ?? fileExists(tryAbs))) {
161
+ return {
162
+ rawSpecifier: specifier,
163
+ resolvedPath: tryRel,
164
+ resolvedAbsolute: tryAbs,
165
+ resolved: true,
166
+ external: false,
167
+ };
168
+ }
169
+ }
170
+ return {
171
+ rawSpecifier: specifier,
172
+ resolvedPath: null,
173
+ resolvedAbsolute: null,
174
+ resolved: false,
175
+ external: false,
176
+ };
177
+ }
178
+ function resolveGoImport(specifier, ctx) {
179
+ const raw = specifier.trim();
180
+ // Go imports are either relative (./pkg) or external (github.com/user/repo)
181
+ if (raw.startsWith(".") || raw.startsWith("/")) {
182
+ // Relative import
183
+ return resolveGoRelative(raw, ctx);
184
+ }
185
+ // External Go module
186
+ return {
187
+ rawSpecifier: specifier,
188
+ resolvedPath: null,
189
+ resolvedAbsolute: null,
190
+ resolved: false,
191
+ external: true,
192
+ };
193
+ }
194
+ function resolveGoRelative(specifier, ctx) {
195
+ const importerDir = path.dirname(ctx.importerPath);
196
+ const importerDirRel = path.posix.dirname(ctx.importerRelative);
197
+ const attemptedAbs = path.resolve(importerDir, specifier);
198
+ const attemptedRel = path.posix.normalize(path.posix.join(importerDirRel, specifier));
199
+ // 1. Exact match
200
+ if (ctx.existingFiles.has(attemptedRel) ||
201
+ (ctx.existingAbsFiles?.has(attemptedAbs) ?? fileExists(attemptedAbs))) {
202
+ const foundRel = ctx.existingFiles.has(attemptedRel)
203
+ ? attemptedRel
204
+ : toRel(attemptedAbs, ctx.root);
205
+ if (foundRel)
206
+ return {
207
+ rawSpecifier: specifier,
208
+ resolvedPath: foundRel,
209
+ resolvedAbsolute: attemptedAbs,
210
+ resolved: true,
211
+ external: false,
212
+ };
213
+ }
214
+ // 2. Try .go extension
215
+ const tryRel = attemptedRel + ".go";
216
+ const tryAbs = attemptedAbs + ".go";
217
+ if (ctx.existingFiles.has(tryRel) || (ctx.existingAbsFiles?.has(tryAbs) ?? fileExists(tryAbs))) {
218
+ return {
219
+ rawSpecifier: specifier,
220
+ resolvedPath: tryRel,
221
+ resolvedAbsolute: tryAbs,
222
+ resolved: true,
223
+ external: false,
224
+ };
225
+ }
226
+ // 3. Try directory with main.go or same-name.go
227
+ const dirRel = path.posix.join(attemptedRel, "main.go");
228
+ const dirAbs = path.join(attemptedAbs, "main.go");
229
+ if (ctx.existingFiles.has(dirRel) || fileExists(dirAbs)) {
230
+ return {
231
+ rawSpecifier: specifier,
232
+ resolvedPath: dirRel,
233
+ resolvedAbsolute: dirAbs,
234
+ resolved: true,
235
+ external: false,
236
+ };
237
+ }
238
+ return {
239
+ rawSpecifier: specifier,
240
+ resolvedPath: null,
241
+ resolvedAbsolute: null,
242
+ resolved: false,
243
+ external: false,
244
+ };
245
+ }
246
+ function resolveRustImport(specifier, _ctx) {
247
+ // Rust uses `use crate::module` or `mod module`
248
+ // External crates are not local files
249
+ return {
250
+ rawSpecifier: specifier,
251
+ resolvedPath: null,
252
+ resolvedAbsolute: null,
253
+ resolved: false,
254
+ external: true,
255
+ };
256
+ }
257
+ function resolveJavaImport(specifier, _ctx) {
258
+ // Java imports are package paths, external unless local
259
+ return {
260
+ rawSpecifier: specifier,
261
+ resolvedPath: null,
262
+ resolvedAbsolute: null,
263
+ resolved: false,
264
+ external: true,
265
+ };
266
+ }
267
+ function resolveCSharpImport(specifier, _ctx) {
268
+ // C# using statements, external unless local project
269
+ return {
270
+ rawSpecifier: specifier,
271
+ resolvedPath: null,
272
+ resolvedAbsolute: null,
273
+ resolved: false,
274
+ external: true,
275
+ };
276
+ }
277
+ function resolvePHPImport(specifier, _ctx) {
278
+ // PHP use statements, external unless local
279
+ return {
280
+ rawSpecifier: specifier,
281
+ resolvedPath: null,
282
+ resolvedAbsolute: null,
283
+ resolved: false,
284
+ external: true,
285
+ };
286
+ }
287
+ function resolveRubyImport(specifier, _ctx) {
288
+ // Ruby require, external unless local
289
+ return {
290
+ rawSpecifier: specifier,
291
+ resolvedPath: null,
292
+ resolvedAbsolute: null,
293
+ resolved: false,
294
+ external: true,
295
+ };
296
+ }
297
+ function resolveCppImport(specifier, _ctx) {
298
+ // C++ #include, system headers are external
299
+ if (specifier.startsWith("<") && specifier.endsWith(">")) {
300
+ return {
301
+ rawSpecifier: specifier,
302
+ resolvedPath: null,
303
+ resolvedAbsolute: null,
304
+ resolved: false,
305
+ external: true,
306
+ };
307
+ }
308
+ // Local includes
309
+ return {
310
+ rawSpecifier: specifier,
311
+ resolvedPath: null,
312
+ resolvedAbsolute: null,
313
+ resolved: false,
314
+ external: true,
315
+ };
44
316
  }
45
317
  function resolveRelative(specifier, ctx) {
46
318
  const importerDir = path.dirname(ctx.importerPath);
@@ -49,30 +321,59 @@ function resolveRelative(specifier, ctx) {
49
321
  const attemptedAbs = path.resolve(importerDir, specifier);
50
322
  const attemptedRel = path.posix.normalize(path.posix.join(importerDirRel, specifier));
51
323
  // 1. Exact match (with extension)
52
- if (ctx.existingFiles.has(attemptedRel) || (ctx.existingAbsFiles?.has(attemptedAbs) ?? fileExists(attemptedAbs))) {
324
+ if (ctx.existingFiles.has(attemptedRel) ||
325
+ (ctx.existingAbsFiles?.has(attemptedAbs) ?? fileExists(attemptedAbs))) {
53
326
  // Ensure we return normalized rel with extension if present
54
- const foundRel = ctx.existingFiles.has(attemptedRel) ? attemptedRel : toRel(attemptedAbs, ctx.root);
327
+ const foundRel = ctx.existingFiles.has(attemptedRel)
328
+ ? attemptedRel
329
+ : toRel(attemptedAbs, ctx.root);
55
330
  if (foundRel)
56
- return { rawSpecifier: specifier, resolvedPath: foundRel, resolvedAbsolute: attemptedAbs, resolved: true, external: false };
331
+ return {
332
+ rawSpecifier: specifier,
333
+ resolvedPath: foundRel,
334
+ resolvedAbsolute: attemptedAbs,
335
+ resolved: true,
336
+ external: false,
337
+ };
57
338
  }
58
339
  // 2. Try appending extensions: ./utils -> ./utils.ts etc.
59
340
  for (const ext of EXTENSIONS_TRY_ORDER) {
60
341
  const tryRel = attemptedRel + ext;
61
342
  const tryAbs = attemptedAbs + ext;
62
- if (ctx.existingFiles.has(tryRel) || (ctx.existingAbsFiles?.has(tryAbs) ?? fileExists(tryAbs))) {
63
- return { rawSpecifier: specifier, resolvedPath: tryRel, resolvedAbsolute: tryAbs, resolved: true, external: false };
343
+ if (ctx.existingFiles.has(tryRel) ||
344
+ (ctx.existingAbsFiles?.has(tryAbs) ?? fileExists(tryAbs))) {
345
+ return {
346
+ rawSpecifier: specifier,
347
+ resolvedPath: tryRel,
348
+ resolvedAbsolute: tryAbs,
349
+ resolved: true,
350
+ external: false,
351
+ };
64
352
  }
65
353
  }
66
354
  // 3. Try index files: ./utils -> ./utils/index.ts
67
355
  for (const idx of INDEX_FILES) {
68
356
  const tryRel = path.posix.join(attemptedRel, idx);
69
357
  const tryAbs = path.join(attemptedAbs, idx);
70
- if (ctx.existingFiles.has(tryRel) || (ctx.existingAbsFiles?.has(tryAbs) ?? fileExists(tryAbs))) {
71
- return { rawSpecifier: specifier, resolvedPath: tryRel, resolvedAbsolute: tryAbs, resolved: true, external: false };
358
+ if (ctx.existingFiles.has(tryRel) ||
359
+ (ctx.existingAbsFiles?.has(tryAbs) ?? fileExists(tryAbs))) {
360
+ return {
361
+ rawSpecifier: specifier,
362
+ resolvedPath: tryRel,
363
+ resolvedAbsolute: tryAbs,
364
+ resolved: true,
365
+ external: false,
366
+ };
72
367
  }
73
368
  }
74
369
  // 4. Not found — unresolved local (missing file)
75
- return { rawSpecifier: specifier, resolvedPath: null, resolvedAbsolute: null, resolved: false, external: false };
370
+ return {
371
+ rawSpecifier: specifier,
372
+ resolvedPath: null,
373
+ resolvedAbsolute: null,
374
+ resolved: false,
375
+ external: false,
376
+ };
76
377
  }
77
378
  function tryResolveAlias(specifier, ctx) {
78
379
  const paths = ctx.tsConfigPaths;
@@ -108,18 +409,36 @@ function tryResolveAlias(specifier, ctx) {
108
409
  continue;
109
410
  // Try exact, extensions, index similar to relative
110
411
  if (ctx.existingFiles.has(tryRel) || fileExists(tryAbs)) {
111
- return { rawSpecifier: specifier, resolvedPath: tryRel, resolvedAbsolute: tryAbs, resolved: true, external: false };
412
+ return {
413
+ rawSpecifier: specifier,
414
+ resolvedPath: tryRel,
415
+ resolvedAbsolute: tryAbs,
416
+ resolved: true,
417
+ external: false,
418
+ };
112
419
  }
113
420
  for (const ext of EXTENSIONS_TRY_ORDER) {
114
421
  if (ctx.existingFiles.has(tryRel + ext) || fileExists(tryAbs + ext)) {
115
- return { rawSpecifier: specifier, resolvedPath: tryRel + ext, resolvedAbsolute: tryAbs + ext, resolved: true, external: false };
422
+ return {
423
+ rawSpecifier: specifier,
424
+ resolvedPath: tryRel + ext,
425
+ resolvedAbsolute: tryAbs + ext,
426
+ resolved: true,
427
+ external: false,
428
+ };
116
429
  }
117
430
  }
118
431
  for (const idx of INDEX_FILES) {
119
432
  const idxRel = path.posix.join(tryRel, idx);
120
433
  const idxAbs = path.join(tryAbs, idx);
121
434
  if (ctx.existingFiles.has(idxRel) || fileExists(idxAbs)) {
122
- return { rawSpecifier: specifier, resolvedPath: idxRel, resolvedAbsolute: idxAbs, resolved: true, external: false };
435
+ return {
436
+ rawSpecifier: specifier,
437
+ resolvedPath: idxRel,
438
+ resolvedAbsolute: idxAbs,
439
+ resolved: true,
440
+ external: false,
441
+ };
123
442
  }
124
443
  }
125
444
  }
@@ -133,18 +452,36 @@ function tryResolveBaseUrl(specifier, ctx) {
133
452
  if (!tryRel)
134
453
  return null;
135
454
  if (ctx.existingFiles.has(tryRel) || fileExists(tryAbs)) {
136
- return { rawSpecifier: specifier, resolvedPath: tryRel, resolvedAbsolute: tryAbs, resolved: true, external: false };
455
+ return {
456
+ rawSpecifier: specifier,
457
+ resolvedPath: tryRel,
458
+ resolvedAbsolute: tryAbs,
459
+ resolved: true,
460
+ external: false,
461
+ };
137
462
  }
138
463
  for (const ext of EXTENSIONS_TRY_ORDER) {
139
464
  if (ctx.existingFiles.has(tryRel + ext) || fileExists(tryAbs + ext)) {
140
- return { rawSpecifier: specifier, resolvedPath: tryRel + ext, resolvedAbsolute: tryAbs + ext, resolved: true, external: false };
465
+ return {
466
+ rawSpecifier: specifier,
467
+ resolvedPath: tryRel + ext,
468
+ resolvedAbsolute: tryAbs + ext,
469
+ resolved: true,
470
+ external: false,
471
+ };
141
472
  }
142
473
  }
143
474
  for (const idx of INDEX_FILES) {
144
475
  const idxRel = path.posix.join(tryRel, idx);
145
476
  const idxAbs = path.join(tryAbs, idx);
146
477
  if (ctx.existingFiles.has(idxRel) || fileExists(idxAbs)) {
147
- return { rawSpecifier: specifier, resolvedPath: idxRel, resolvedAbsolute: idxAbs, resolved: true, external: false };
478
+ return {
479
+ rawSpecifier: specifier,
480
+ resolvedPath: idxRel,
481
+ resolvedAbsolute: idxAbs,
482
+ resolved: true,
483
+ external: false,
484
+ };
148
485
  }
149
486
  }
150
487
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yoinkingfish/parser",
3
- "version": "0.1.2",
3
+ "version": "0.1.6",
4
4
  "description": "CodeCarto parser — file discovery, AST parsing, import resolution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,7 +18,7 @@
18
18
  "fast-glob": "^3.3.2",
19
19
  "ts-morph": "^23.0.0",
20
20
  "zod": "^3.23.8",
21
- "@yoinkingfish/shared": "0.1.2"
21
+ "@yoinkingfish/shared": "0.1.6"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^22.7.4",