@liendev/core 0.24.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/frameworks/python/config.d.ts +6 -0
  2. package/dist/frameworks/python/config.d.ts.map +1 -0
  3. package/dist/frameworks/python/config.js +73 -0
  4. package/dist/frameworks/python/config.js.map +1 -0
  5. package/dist/frameworks/python/detector.d.ts +7 -0
  6. package/dist/frameworks/python/detector.d.ts.map +1 -0
  7. package/dist/frameworks/python/detector.js +129 -0
  8. package/dist/frameworks/python/detector.js.map +1 -0
  9. package/dist/frameworks/registry.d.ts +1 -1
  10. package/dist/frameworks/registry.d.ts.map +1 -1
  11. package/dist/frameworks/registry.js +3 -1
  12. package/dist/frameworks/registry.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/indexer/ast/chunker.d.ts.map +1 -1
  18. package/dist/indexer/ast/chunker.js +86 -50
  19. package/dist/indexer/ast/chunker.js.map +1 -1
  20. package/dist/indexer/ast/extractors/index.d.ts +25 -0
  21. package/dist/indexer/ast/extractors/index.d.ts.map +1 -0
  22. package/dist/indexer/ast/extractors/index.js +49 -0
  23. package/dist/indexer/ast/extractors/index.js.map +1 -0
  24. package/dist/indexer/ast/extractors/javascript.d.ts +32 -0
  25. package/dist/indexer/ast/extractors/javascript.d.ts.map +1 -0
  26. package/dist/indexer/ast/extractors/javascript.js +97 -0
  27. package/dist/indexer/ast/extractors/javascript.js.map +1 -0
  28. package/dist/indexer/ast/extractors/php.d.ts +34 -0
  29. package/dist/indexer/ast/extractors/php.d.ts.map +1 -0
  30. package/dist/indexer/ast/extractors/php.js +79 -0
  31. package/dist/indexer/ast/extractors/php.js.map +1 -0
  32. package/dist/indexer/ast/extractors/python.d.ts +22 -0
  33. package/dist/indexer/ast/extractors/python.d.ts.map +1 -0
  34. package/dist/indexer/ast/extractors/python.js +57 -0
  35. package/dist/indexer/ast/extractors/python.js.map +1 -0
  36. package/dist/indexer/ast/extractors/types.d.ts +52 -0
  37. package/dist/indexer/ast/extractors/types.d.ts.map +1 -0
  38. package/dist/indexer/ast/extractors/types.js +2 -0
  39. package/dist/indexer/ast/extractors/types.js.map +1 -0
  40. package/dist/indexer/ast/symbols.d.ts +72 -1
  41. package/dist/indexer/ast/symbols.d.ts.map +1 -1
  42. package/dist/indexer/ast/symbols.js +520 -0
  43. package/dist/indexer/ast/symbols.js.map +1 -1
  44. package/dist/indexer/chunk-batch-processor.d.ts +3 -1
  45. package/dist/indexer/chunk-batch-processor.d.ts.map +1 -1
  46. package/dist/indexer/chunk-batch-processor.js +3 -1
  47. package/dist/indexer/chunk-batch-processor.js.map +1 -1
  48. package/dist/indexer/content-hash.d.ts +20 -0
  49. package/dist/indexer/content-hash.d.ts.map +1 -0
  50. package/dist/indexer/content-hash.js +91 -0
  51. package/dist/indexer/content-hash.js.map +1 -0
  52. package/dist/indexer/incremental.d.ts.map +1 -1
  53. package/dist/indexer/incremental.js +78 -56
  54. package/dist/indexer/incremental.js.map +1 -1
  55. package/dist/indexer/index.d.ts.map +1 -1
  56. package/dist/indexer/index.js +52 -37
  57. package/dist/indexer/index.js.map +1 -1
  58. package/dist/indexer/manifest.d.ts +35 -2
  59. package/dist/indexer/manifest.d.ts.map +1 -1
  60. package/dist/indexer/manifest.js +114 -18
  61. package/dist/indexer/manifest.js.map +1 -1
  62. package/dist/indexer/types.d.ts +18 -0
  63. package/dist/indexer/types.d.ts.map +1 -1
  64. package/dist/vectordb/batch-insert.d.ts.map +1 -1
  65. package/dist/vectordb/batch-insert.js +97 -23
  66. package/dist/vectordb/batch-insert.js.map +1 -1
  67. package/dist/vectordb/qdrant-payload-mapper.d.ts +11 -0
  68. package/dist/vectordb/qdrant-payload-mapper.d.ts.map +1 -1
  69. package/dist/vectordb/qdrant-payload-mapper.js +33 -0
  70. package/dist/vectordb/qdrant-payload-mapper.js.map +1 -1
  71. package/dist/vectordb/query.d.ts.map +1 -1
  72. package/dist/vectordb/query.js +107 -10
  73. package/dist/vectordb/query.js.map +1 -1
  74. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ import { FrameworkConfig } from '../../config/schema.js';
2
+ /**
3
+ * Generate Python framework configuration
4
+ */
5
+ export declare function generatePythonConfig(_rootDir: string, _relativePath: string): Promise<FrameworkConfig>;
6
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/frameworks/python/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,eAAe,CAAC,CA4E1B"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Generate Python framework configuration
3
+ */
4
+ export async function generatePythonConfig(_rootDir, _relativePath) {
5
+ return {
6
+ include: [
7
+ // Python source code - broad patterns
8
+ '**/*.py',
9
+ // Documentation
10
+ '**/*.md',
11
+ '**/*.mdx',
12
+ 'docs/**/*.md',
13
+ 'README.md',
14
+ 'CHANGELOG.md',
15
+ ],
16
+ exclude: [
17
+ // Virtual environments (CRITICAL)
18
+ '**/venv/**',
19
+ 'venv/**',
20
+ '**/.venv/**',
21
+ '.venv/**',
22
+ '**/env/**',
23
+ 'env/**',
24
+ '**/.env/**', // .env directory (virtual environment)
25
+ '.env', // .env file (environment variables)
26
+ '**/virtualenv/**',
27
+ 'virtualenv/**',
28
+ // Python build artifacts
29
+ '**/__pycache__/**',
30
+ '__pycache__/**',
31
+ '**/*.pyc',
32
+ '**/*.pyo',
33
+ '**/*.pyd',
34
+ '**/*.egg-info/**',
35
+ '*.egg-info/**',
36
+ '**/dist/**',
37
+ 'dist/**',
38
+ '**/build/**',
39
+ 'build/**',
40
+ '**/eggs/**',
41
+ 'eggs/**',
42
+ '**/*.egg/**',
43
+ // Test artifacts
44
+ '**/.tox/**',
45
+ '.tox/**',
46
+ '**/.pytest_cache/**',
47
+ '.pytest_cache/**',
48
+ '**/.coverage/**',
49
+ '.coverage/**',
50
+ '**/htmlcov/**',
51
+ 'htmlcov/**',
52
+ '**/.mypy_cache/**',
53
+ '.mypy_cache/**',
54
+ // Documentation build
55
+ '**/docs/_build/**',
56
+ 'docs/_build/**',
57
+ // Node.js dependencies (for mixed projects)
58
+ '**/node_modules/**',
59
+ 'node_modules/**',
60
+ // Vendor directories
61
+ '**/vendor/**',
62
+ 'vendor/**',
63
+ // IDE
64
+ '**/.idea/**',
65
+ '.idea/**',
66
+ '**/.vscode/**',
67
+ '.vscode/**',
68
+ // Migrations (often auto-generated)
69
+ '**/migrations/**',
70
+ ],
71
+ };
72
+ }
73
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/frameworks/python/config.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,aAAqB;IAErB,OAAO;QACL,OAAO,EAAE;YACP,sCAAsC;YACtC,SAAS;YAET,gBAAgB;YAChB,SAAS;YACT,UAAU;YACV,cAAc;YACd,WAAW;YACX,cAAc;SACf;QACD,OAAO,EAAE;YACP,kCAAkC;YAClC,YAAY;YACZ,SAAS;YACT,aAAa;YACb,UAAU;YACV,WAAW;YACX,QAAQ;YACR,YAAY,EAAK,uCAAuC;YACxD,MAAM,EAAW,oCAAoC;YACrD,kBAAkB;YAClB,eAAe;YAEf,yBAAyB;YACzB,mBAAmB;YACnB,gBAAgB;YAChB,UAAU;YACV,UAAU;YACV,UAAU;YACV,kBAAkB;YAClB,eAAe;YACf,YAAY;YACZ,SAAS;YACT,aAAa;YACb,UAAU;YACV,YAAY;YACZ,SAAS;YACT,aAAa;YAEb,iBAAiB;YACjB,YAAY;YACZ,SAAS;YACT,qBAAqB;YACrB,kBAAkB;YAClB,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,YAAY;YACZ,mBAAmB;YACnB,gBAAgB;YAEhB,sBAAsB;YACtB,mBAAmB;YACnB,gBAAgB;YAEhB,4CAA4C;YAC5C,oBAAoB;YACpB,iBAAiB;YAEjB,qBAAqB;YACrB,cAAc;YACd,WAAW;YAEX,MAAM;YACN,aAAa;YACb,UAAU;YACV,eAAe;YACf,YAAY;YAEZ,oCAAoC;YACpC,kBAAkB;SACnB;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { FrameworkDetector } from '../types.js';
2
+ /**
3
+ * Python framework detector
4
+ * Detects Python projects via requirements.txt, pyproject.toml, setup.py, or Pipfile
5
+ */
6
+ export declare const pythonDetector: FrameworkDetector;
7
+ //# sourceMappingURL=detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../src/frameworks/python/detector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAmB,MAAM,aAAa,CAAC;AAGjE;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,iBAsI5B,CAAC"}
@@ -0,0 +1,129 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { generatePythonConfig } from './config.js';
4
+ /**
5
+ * Python framework detector
6
+ * Detects Python projects via requirements.txt, pyproject.toml, setup.py, or Pipfile
7
+ */
8
+ export const pythonDetector = {
9
+ name: 'python',
10
+ priority: 50, // Generic, yields to specific frameworks like Django
11
+ async detect(rootDir, relativePath) {
12
+ const fullPath = path.join(rootDir, relativePath);
13
+ const result = {
14
+ detected: false,
15
+ name: 'python',
16
+ path: relativePath,
17
+ confidence: 'low',
18
+ evidence: [],
19
+ };
20
+ // Check for Python project indicators
21
+ const indicators = [
22
+ { file: 'requirements.txt', display: 'requirements.txt' },
23
+ { file: 'pyproject.toml', display: 'pyproject.toml' },
24
+ { file: 'setup.py', display: 'setup.py' },
25
+ { file: 'Pipfile', display: 'Pipfile' },
26
+ { file: 'setup.cfg', display: 'setup.cfg' },
27
+ ];
28
+ let foundIndicator = false;
29
+ // Check all indicators to provide complete evidence
30
+ for (const indicator of indicators) {
31
+ try {
32
+ const filePath = path.join(fullPath, indicator.file);
33
+ await fs.access(filePath);
34
+ result.evidence.push(`Found ${indicator.display}`);
35
+ foundIndicator = true;
36
+ }
37
+ catch {
38
+ // File doesn't exist, continue checking
39
+ }
40
+ }
41
+ if (!foundIndicator) {
42
+ // No Python project indicators found
43
+ return result;
44
+ }
45
+ // At this point, we know it's a Python project
46
+ result.detected = true;
47
+ result.confidence = 'high';
48
+ // Check for Django (manage.py is a strong indicator)
49
+ const managePyPath = path.join(fullPath, 'manage.py');
50
+ try {
51
+ const content = await fs.readFile(managePyPath, 'utf-8');
52
+ if (content.includes('django.core.management') || content.includes('DJANGO_SETTINGS_MODULE')) {
53
+ result.evidence.push('Django project detected (manage.py)');
54
+ }
55
+ }
56
+ catch {
57
+ // No manage.py
58
+ }
59
+ // Check for common Python directories
60
+ const pythonDirs = ['src', 'lib', 'app', 'tests', 'test'];
61
+ let foundDirs = 0;
62
+ for (const dir of pythonDirs) {
63
+ try {
64
+ const dirPath = path.join(fullPath, dir);
65
+ const stats = await fs.stat(dirPath);
66
+ if (stats.isDirectory()) {
67
+ foundDirs++;
68
+ }
69
+ }
70
+ catch {
71
+ // Directory doesn't exist
72
+ }
73
+ }
74
+ if (foundDirs > 0) {
75
+ result.evidence.push(`Found Python project structure (${foundDirs} directories)`);
76
+ }
77
+ // Try to detect Python version from pyproject.toml
78
+ try {
79
+ const pyprojectPath = path.join(fullPath, 'pyproject.toml');
80
+ const content = await fs.readFile(pyprojectPath, 'utf-8');
81
+ // Look for python version requirement
82
+ const versionMatch = content.match(/python\s*[>=<]+\s*["']?(\d+\.\d+)/i);
83
+ if (versionMatch) {
84
+ result.version = versionMatch[1];
85
+ result.evidence.push(`Python ${versionMatch[1]}+`);
86
+ }
87
+ }
88
+ catch {
89
+ // No pyproject.toml or couldn't parse
90
+ }
91
+ // Check for testing frameworks in requirements.txt
92
+ try {
93
+ const requirementsPath = path.join(fullPath, 'requirements.txt');
94
+ const content = await fs.readFile(requirementsPath, 'utf-8');
95
+ const testFrameworks = [
96
+ { pattern: /pytest/i, display: 'pytest' },
97
+ { pattern: /unittest/i, display: 'unittest' },
98
+ { pattern: /nose/i, display: 'nose' },
99
+ ];
100
+ for (const framework of testFrameworks) {
101
+ if (framework.pattern.test(content)) {
102
+ result.evidence.push(`${framework.display} test framework detected`);
103
+ break;
104
+ }
105
+ }
106
+ // Check for common frameworks - collect all detected frameworks
107
+ const frameworks = [
108
+ { pattern: /django/i, display: 'Django' },
109
+ { pattern: /flask/i, display: 'Flask' },
110
+ { pattern: /fastapi/i, display: 'FastAPI' },
111
+ { pattern: /tornado/i, display: 'Tornado' },
112
+ { pattern: /celery/i, display: 'Celery' },
113
+ ];
114
+ for (const framework of frameworks) {
115
+ if (framework.pattern.test(content)) {
116
+ result.evidence.push(`${framework.display} detected`);
117
+ }
118
+ }
119
+ }
120
+ catch {
121
+ // No requirements.txt
122
+ }
123
+ return result;
124
+ },
125
+ async generateConfig(rootDir, relativePath) {
126
+ return generatePythonConfig(rootDir, relativePath);
127
+ },
128
+ };
129
+ //# sourceMappingURL=detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../../src/frameworks/python/detector.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { FrameworkDetector } from './types.js';
5
5
  *
6
6
  * Order doesn't matter for detection as priority system handles conflicts,
7
7
  * but listed here in order from generic to specific for clarity:
8
- * - Generic language detectors (Node.js, PHP)
8
+ * - Generic language detectors (Node.js, PHP, Python)
9
9
  * - Specific framework detectors (Laravel, Shopify)
10
10
  */
11
11
  export declare const frameworkDetectors: FrameworkDetector[];
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/frameworks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAM/C;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,EAKjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CASnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEhF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/frameworks/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO/C;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,EAAE,iBAAiB,EAMjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CASnE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEhF"}
@@ -1,5 +1,6 @@
1
1
  import { nodejsDetector } from './nodejs/detector.js';
2
2
  import { phpDetector } from './php/detector.js';
3
+ import { pythonDetector } from './python/detector.js';
3
4
  import { laravelDetector } from './laravel/detector.js';
4
5
  import { shopifyDetector } from './shopify/detector.js';
5
6
  /**
@@ -8,12 +9,13 @@ import { shopifyDetector } from './shopify/detector.js';
8
9
  *
9
10
  * Order doesn't matter for detection as priority system handles conflicts,
10
11
  * but listed here in order from generic to specific for clarity:
11
- * - Generic language detectors (Node.js, PHP)
12
+ * - Generic language detectors (Node.js, PHP, Python)
12
13
  * - Specific framework detectors (Laravel, Shopify)
13
14
  */
14
15
  export const frameworkDetectors = [
15
16
  nodejsDetector,
16
17
  phpDetector,
18
+ pythonDetector,
17
19
  laravelDetector,
18
20
  shopifyDetector,
19
21
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/frameworks/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAwB;IACrD,cAAc;IACd,WAAW;IACX,eAAe;IACf,eAAe;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,IAAI,mCAAmC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/frameworks/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAwB;IACrD,cAAc;IACd,WAAW;IACX,cAAc;IACd,eAAe;IACf,eAAe;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,IAAI,mCAAmC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACvD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -32,6 +32,7 @@ export { chunkFile } from './indexer/chunker.js';
32
32
  export { scanCodebase, scanCodebaseWithFrameworks, detectLanguage } from './indexer/scanner.js';
33
33
  export { indexSingleFile, indexMultipleFiles, normalizeToRelativePath } from './indexer/incremental.js';
34
34
  export { extractSymbols } from './indexer/symbol-extractor.js';
35
+ export { computeContentHash, isHashAlgorithmCompatible } from './indexer/content-hash.js';
35
36
  export { LocalEmbeddings } from './embeddings/local.js';
36
37
  export { CachedEmbeddings } from './embeddings/cache.js';
37
38
  export type { EmbeddingService } from './embeddings/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -33,6 +33,7 @@ export { chunkFile } from './indexer/chunker.js';
33
33
  export { scanCodebase, scanCodebaseWithFrameworks, detectLanguage } from './indexer/scanner.js';
34
34
  export { indexSingleFile, indexMultipleFiles, normalizeToRelativePath } from './indexer/incremental.js';
35
35
  export { extractSymbols } from './indexer/symbol-extractor.js';
36
+ export { computeContentHash, isHashAlgorithmCompatible } from './indexer/content-hash.js';
36
37
  // =============================================================================
37
38
  // EMBEDDINGS
38
39
  // =============================================================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE1F,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGrH,gFAAgF;AAChF,+DAA+D;AAC/D,gFAAgF;AAChF,iEAAiE;AACjE,2EAA2E;AAC3E,gEAAgE;AAChE,6BAA6B;AAC7B,uCAAuC;AAEvC,OAAO,EAAE,aAAa,EAAE,aAAa,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,EAAE,aAAa,IAAI,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGrG;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC;AAE1D;;GAEG;AACH,uCAAuC;AACvC;;GAEG;AACH,uCAAuC;AACvC;;GAEG;AACH,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAM3E,gDAAgD;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAAC,cAAc,CAAC;AAExD,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO,EACL,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,6BAA6B,GAC9B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEvG,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO,EACL,SAAS,EACT,aAAa,EACb,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,EACT,WAAW,EACX,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAqB3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,YAAY,EACZ,yBAAyB,EACzB,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,OAAO,EAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../../src/indexer/ast/chunker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAM3C,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,QAAQ,EAAE,CA4EZ;AA4QD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD"}
1
+ {"version":3,"file":"chunker.d.ts","sourceRoot":"","sources":["../../../src/indexer/ast/chunker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAqB,MAAM,YAAY,CAAC;AAM9D,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,eAAoB,GAC5B,QAAQ,EAAE,CAyCZ;AAmSD;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD"}
@@ -1,7 +1,59 @@
1
1
  import { parseAST, detectLanguage, isASTSupported } from './parser.js';
2
- import { extractSymbolInfo, extractImports } from './symbols.js';
2
+ import { extractSymbolInfo, extractImports, extractImportedSymbols, extractExports, extractCallSites } from './symbols.js';
3
3
  import { calculateCognitiveComplexity, calculateHalstead } from './complexity/index.js';
4
4
  import { getTraverser } from './traversers/index.js';
5
+ /**
6
+ * Validate language support and parse the file.
7
+ * @throws Error if language not supported or parsing fails
8
+ */
9
+ function parseAndValidate(filepath, content) {
10
+ const language = detectLanguage(filepath);
11
+ if (!language) {
12
+ throw new Error(`Unsupported language for file: ${filepath}`);
13
+ }
14
+ const parseResult = parseAST(content, language);
15
+ if (!parseResult.tree) {
16
+ throw new Error(`Failed to parse ${filepath}: ${parseResult.error}`);
17
+ }
18
+ return { language, rootNode: parseResult.tree.rootNode };
19
+ }
20
+ /**
21
+ * Prepare AST context by extracting imports, exports, and symbols.
22
+ */
23
+ function prepareASTContext(content, rootNode, language) {
24
+ return {
25
+ lines: content.split('\n'),
26
+ fileImports: extractImports(rootNode),
27
+ importedSymbols: extractImportedSymbols(rootNode),
28
+ fileExports: extractExports(rootNode, language),
29
+ traverser: getTraverser(language),
30
+ };
31
+ }
32
+ /**
33
+ * Process a single top-level node into a chunk.
34
+ */
35
+ function processTopLevelNode(node, filepath, content, context, language, tenantContext) {
36
+ const { lines, fileImports, fileExports, importedSymbols, traverser } = context;
37
+ // For variable declarations, try to find the function inside
38
+ let actualNode = node;
39
+ if (traverser.isDeclarationWithFunction(node)) {
40
+ const declInfo = traverser.findFunctionInDeclaration(node);
41
+ if (declInfo.functionNode) {
42
+ actualNode = declInfo.functionNode;
43
+ }
44
+ }
45
+ // For methods, find the parent container name (e.g., class name)
46
+ const parentClassName = traverser.findParentContainerName(actualNode);
47
+ const symbolInfo = extractSymbolInfo(actualNode, content, parentClassName, language);
48
+ const nodeContent = getNodeContent(node, lines);
49
+ return createChunk(filepath, node, nodeContent, symbolInfo, fileImports, language, tenantContext, fileExports, importedSymbols);
50
+ }
51
+ /**
52
+ * Process all top-level nodes into chunks.
53
+ */
54
+ function processTopLevelNodes(topLevelNodes, filepath, content, context, language, tenantContext) {
55
+ return topLevelNodes.map(node => processTopLevelNode(node, filepath, content, context, language, tenantContext));
56
+ }
5
57
  /**
6
58
  * Chunk a file using AST-based semantic boundaries
7
59
  *
@@ -21,55 +73,23 @@ import { getTraverser } from './traversers/index.js';
21
73
  */
22
74
  export function chunkByAST(filepath, content, options = {}) {
23
75
  const { minChunkSize = 5, repoId, orgId } = options;
24
- // Check if AST is supported for this file
25
- const language = detectLanguage(filepath);
26
- if (!language) {
27
- throw new Error(`Unsupported language for file: ${filepath}`);
28
- }
29
- // Parse the file
30
- const parseResult = parseAST(content, language);
31
- // If parsing failed, throw error (caller should fallback to line-based)
32
- if (!parseResult.tree) {
33
- throw new Error(`Failed to parse ${filepath}: ${parseResult.error}`);
34
- }
35
- const chunks = [];
36
- const lines = content.split('\n');
37
- const rootNode = parseResult.tree.rootNode;
38
- // Get language-specific traverser
39
- const traverser = getTraverser(language);
40
- // Extract file-level imports once
41
- const fileImports = extractImports(rootNode);
42
- // Find all top-level function and class declarations
43
- const topLevelNodes = findTopLevelNodes(rootNode, traverser);
44
- for (const node of topLevelNodes) {
45
- // For variable declarations, try to find the function inside
46
- let actualNode = node;
47
- if (traverser.isDeclarationWithFunction(node)) {
48
- const declInfo = traverser.findFunctionInDeclaration(node);
49
- if (declInfo.functionNode) {
50
- actualNode = declInfo.functionNode;
51
- }
52
- }
53
- // For methods, find the parent container name (e.g., class name)
54
- const parentClassName = traverser.findParentContainerName(actualNode);
55
- const symbolInfo = extractSymbolInfo(actualNode, content, parentClassName, language);
56
- // Extract the code for this node (use original node for full declaration)
57
- const nodeContent = getNodeContent(node, lines);
58
- // Create a chunk for this semantic unit
59
- // Note: Large functions are kept as single chunks (may exceed maxChunkSize)
60
- // This preserves semantic boundaries - better than splitting mid-function
61
- chunks.push(createChunk(filepath, node, nodeContent, symbolInfo, fileImports, language, { repoId, orgId }));
62
- }
63
- // Handle remaining code (imports, exports, top-level statements)
76
+ const tenantContext = { repoId, orgId };
77
+ // Parse and validate
78
+ const { language, rootNode } = parseAndValidate(filepath, content);
79
+ // Prepare context
80
+ const context = prepareASTContext(content, rootNode, language);
81
+ // Find and process top-level nodes
82
+ const topLevelNodes = findTopLevelNodes(rootNode, context.traverser);
83
+ const topLevelChunks = processTopLevelNodes(topLevelNodes, filepath, content, context, language, tenantContext);
84
+ // Extract uncovered code (imports, exports, top-level statements)
64
85
  const coveredRanges = topLevelNodes.map(n => ({
65
86
  start: n.startPosition.row,
66
87
  end: n.endPosition.row,
67
88
  }));
68
- const uncoveredChunks = extractUncoveredCode(lines, coveredRanges, filepath, minChunkSize, fileImports, language, { repoId, orgId });
69
- chunks.push(...uncoveredChunks);
70
- // Sort chunks by line number
71
- chunks.sort((a, b) => a.metadata.startLine - b.metadata.startLine);
72
- return chunks;
89
+ const uncoveredChunks = extractUncoveredCode(context.lines, coveredRanges, filepath, minChunkSize, context.fileImports, language, tenantContext, context.fileExports, context.importedSymbols);
90
+ // Combine and sort by line number
91
+ return [...topLevelChunks, ...uncoveredChunks]
92
+ .sort((a, b) => a.metadata.startLine - b.metadata.startLine);
73
93
  }
74
94
  /** Check if node is a function-containing declaration at top level */
75
95
  function isFunctionDeclaration(node, depth, traverser) {
@@ -159,7 +179,7 @@ function getChunkType(symbolInfo) {
159
179
  /**
160
180
  * Create a chunk from an AST node
161
181
  */
162
- function createChunk(filepath, node, content, symbolInfo, imports, language, tenantContext) {
182
+ function createChunk(filepath, node, content, symbolInfo, imports, language, tenantContext, fileExports, importedSymbols) {
163
183
  const symbols = buildLegacySymbols(symbolInfo);
164
184
  const shouldCalcComplexity = symbolInfo?.type && COMPLEXITY_SYMBOL_TYPES.has(symbolInfo.type);
165
185
  // Calculate complexity metrics only for functions and methods
@@ -170,6 +190,10 @@ function createChunk(filepath, node, content, symbolInfo, imports, language, ten
170
190
  const halstead = shouldCalcComplexity
171
191
  ? calculateHalstead(node, language)
172
192
  : undefined;
193
+ // Extract call sites for functions and methods
194
+ const callSites = shouldCalcComplexity
195
+ ? extractCallSites(node)
196
+ : undefined;
173
197
  return {
174
198
  content,
175
199
  metadata: {
@@ -187,6 +211,15 @@ function createChunk(filepath, node, content, symbolInfo, imports, language, ten
187
211
  parameters: symbolInfo?.parameters,
188
212
  signature: symbolInfo?.signature,
189
213
  imports,
214
+ // Symbol-level dependency tracking
215
+ // NOTE: `exports` and `importedSymbols` are file-level concepts, but we deliberately
216
+ // attach them to every chunk from the same file (including "uncovered" chunks).
217
+ // This duplicates some metadata, but greatly simplifies dependency analysis,
218
+ // since consumers can inspect a single chunk in isolation without additional lookups.
219
+ // This increases storage overhead but is acceptable given typical file sizes and chunk counts.
220
+ ...(fileExports && fileExports.length > 0 && { exports: fileExports }),
221
+ ...(importedSymbols && Object.keys(importedSymbols).length > 0 && { importedSymbols }),
222
+ ...(callSites && callSites.length > 0 && { callSites }),
190
223
  // Halstead metrics
191
224
  halsteadVolume: halstead?.volume,
192
225
  halsteadDifficulty: halstead?.difficulty,
@@ -228,7 +261,7 @@ function findUncoveredRanges(coveredRanges, totalLines) {
228
261
  /**
229
262
  * Create a chunk from a line range
230
263
  */
231
- function createChunkFromRange(range, lines, filepath, language, imports, tenantContext) {
264
+ function createChunkFromRange(range, lines, filepath, language, imports, tenantContext, fileExports, importedSymbols) {
232
265
  const uncoveredLines = lines.slice(range.start, range.end + 1);
233
266
  const content = uncoveredLines.join('\n').trim();
234
267
  return {
@@ -242,6 +275,9 @@ function createChunkFromRange(range, lines, filepath, language, imports, tenantC
242
275
  // Empty symbols for uncovered code (imports, exports, etc.)
243
276
  symbols: { functions: [], classes: [], interfaces: [] },
244
277
  imports,
278
+ // Symbol-level dependency tracking
279
+ ...(fileExports && fileExports.length > 0 && { exports: fileExports }),
280
+ ...(importedSymbols && Object.keys(importedSymbols).length > 0 && { importedSymbols }),
245
281
  // Multi-tenant fields
246
282
  ...(tenantContext?.repoId && { repoId: tenantContext.repoId }),
247
283
  ...(tenantContext?.orgId && { orgId: tenantContext.orgId }),
@@ -259,10 +295,10 @@ function isValidChunk(chunk, minChunkSize) {
259
295
  * Extract code that wasn't covered by function/class chunks
260
296
  * (imports, exports, top-level statements)
261
297
  */
262
- function extractUncoveredCode(lines, coveredRanges, filepath, minChunkSize, imports, language, tenantContext) {
298
+ function extractUncoveredCode(lines, coveredRanges, filepath, minChunkSize, imports, language, tenantContext, fileExports, importedSymbols) {
263
299
  const uncoveredRanges = findUncoveredRanges(coveredRanges, lines.length);
264
300
  return uncoveredRanges
265
- .map(range => createChunkFromRange(range, lines, filepath, language, imports, tenantContext))
301
+ .map(range => createChunkFromRange(range, lines, filepath, language, imports, tenantContext, fileExports, importedSymbols))
266
302
  .filter(chunk => isValidChunk(chunk, minChunkSize));
267
303
  }
268
304
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../../src/indexer/ast/chunker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chunker.js","sourceRoot":"","sources":["../../../src/indexer/ast/chunker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { SupportedLanguage } from '../types.js';
2
+ import type { LanguageExportExtractor } from './types.js';
3
+ export type { LanguageExportExtractor } from './types.js';
4
+ /**
5
+ * Get the export extractor for a specific language
6
+ *
7
+ * @param language - Programming language
8
+ * @returns Language-specific export extractor
9
+ * @throws Error if language is not supported (defensive check for runtime safety)
10
+ *
11
+ * Note: While TypeScript's type system guarantees all SupportedLanguage values
12
+ * have corresponding extractors, this runtime check provides defense against:
13
+ * - Type system bypasses (e.g., `as any` casting elsewhere)
14
+ * - JavaScript consumers without type checking
15
+ * - Future refactoring errors during registry modifications
16
+ */
17
+ export declare function getExtractor(language: SupportedLanguage): LanguageExportExtractor;
18
+ /**
19
+ * Check if a language has an export extractor implementation
20
+ *
21
+ * @param language - Programming language
22
+ * @returns True if extractor exists
23
+ */
24
+ export declare function hasExtractor(language: SupportedLanguage): boolean;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/indexer/ast/extractors/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAK1D,YAAY,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAkB1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,uBAAuB,CASjF;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAEjE"}