@liendev/core 0.20.1 → 0.21.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 (99) hide show
  1. package/README.md +10 -26
  2. package/dist/config/global-config.d.ts +37 -0
  3. package/dist/config/global-config.d.ts.map +1 -0
  4. package/dist/config/global-config.js +160 -0
  5. package/dist/config/global-config.js.map +1 -0
  6. package/dist/config/merge.js +1 -1
  7. package/dist/config/merge.js.map +1 -1
  8. package/dist/config/schema.d.ts +8 -1
  9. package/dist/config/schema.d.ts.map +1 -1
  10. package/dist/config/schema.js +2 -2
  11. package/dist/config/schema.js.map +1 -1
  12. package/dist/config/service.d.ts +2 -25
  13. package/dist/config/service.d.ts.map +1 -1
  14. package/dist/config/service.js +4 -79
  15. package/dist/config/service.js.map +1 -1
  16. package/dist/constants.d.ts +0 -1
  17. package/dist/constants.d.ts.map +1 -1
  18. package/dist/constants.js +0 -3
  19. package/dist/constants.js.map +1 -1
  20. package/dist/index.d.ts +20 -8
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +25 -9
  23. package/dist/index.js.map +1 -1
  24. package/dist/indexer/ast/chunker.d.ts +2 -0
  25. package/dist/indexer/ast/chunker.d.ts.map +1 -1
  26. package/dist/indexer/ast/chunker.js +13 -7
  27. package/dist/indexer/ast/chunker.js.map +1 -1
  28. package/dist/indexer/change-detector.d.ts +2 -3
  29. package/dist/indexer/change-detector.d.ts.map +1 -1
  30. package/dist/indexer/change-detector.js +19 -34
  31. package/dist/indexer/change-detector.js.map +1 -1
  32. package/dist/indexer/chunk-batch-processor.d.ts +2 -2
  33. package/dist/indexer/chunk-batch-processor.d.ts.map +1 -1
  34. package/dist/indexer/chunk-batch-processor.js.map +1 -1
  35. package/dist/indexer/chunker.d.ts +2 -0
  36. package/dist/indexer/chunker.d.ts.map +1 -1
  37. package/dist/indexer/chunker.js +9 -5
  38. package/dist/indexer/chunker.js.map +1 -1
  39. package/dist/indexer/incremental.d.ts +4 -4
  40. package/dist/indexer/incremental.d.ts.map +1 -1
  41. package/dist/indexer/incremental.js +35 -23
  42. package/dist/indexer/incremental.js.map +1 -1
  43. package/dist/indexer/index.d.ts +3 -1
  44. package/dist/indexer/index.d.ts.map +1 -1
  45. package/dist/indexer/index.js +109 -47
  46. package/dist/indexer/index.js.map +1 -1
  47. package/dist/indexer/json-template-chunker.d.ts +4 -1
  48. package/dist/indexer/json-template-chunker.d.ts.map +1 -1
  49. package/dist/indexer/json-template-chunker.js +3 -1
  50. package/dist/indexer/json-template-chunker.js.map +1 -1
  51. package/dist/indexer/liquid-chunker.d.ts +4 -1
  52. package/dist/indexer/liquid-chunker.d.ts.map +1 -1
  53. package/dist/indexer/liquid-chunker.js +16 -14
  54. package/dist/indexer/liquid-chunker.js.map +1 -1
  55. package/dist/indexer/progress-tracker.d.ts +3 -1
  56. package/dist/indexer/progress-tracker.d.ts.map +1 -1
  57. package/dist/indexer/progress-tracker.js +8 -2
  58. package/dist/indexer/progress-tracker.js.map +1 -1
  59. package/dist/indexer/types.d.ts +12 -0
  60. package/dist/indexer/types.d.ts.map +1 -1
  61. package/dist/insights/complexity-analyzer.d.ts +6 -5
  62. package/dist/insights/complexity-analyzer.d.ts.map +1 -1
  63. package/dist/insights/complexity-analyzer.js +33 -14
  64. package/dist/insights/complexity-analyzer.js.map +1 -1
  65. package/dist/test/helpers/mock-embeddings.d.ts +12 -0
  66. package/dist/test/helpers/mock-embeddings.d.ts.map +1 -0
  67. package/dist/test/helpers/mock-embeddings.js +43 -0
  68. package/dist/test/helpers/mock-embeddings.js.map +1 -0
  69. package/dist/test/helpers/test-db.d.ts +21 -0
  70. package/dist/test/helpers/test-db.d.ts.map +1 -0
  71. package/dist/test/helpers/test-db.js +48 -0
  72. package/dist/test/helpers/test-db.js.map +1 -0
  73. package/dist/vectordb/factory.d.ts +15 -0
  74. package/dist/vectordb/factory.d.ts.map +1 -0
  75. package/dist/vectordb/factory.js +64 -0
  76. package/dist/vectordb/factory.js.map +1 -0
  77. package/dist/vectordb/qdrant-payload-mapper.d.ts +47 -0
  78. package/dist/vectordb/qdrant-payload-mapper.d.ts.map +1 -0
  79. package/dist/vectordb/qdrant-payload-mapper.js +78 -0
  80. package/dist/vectordb/qdrant-payload-mapper.js.map +1 -0
  81. package/dist/vectordb/qdrant.d.ts +87 -0
  82. package/dist/vectordb/qdrant.d.ts.map +1 -0
  83. package/dist/vectordb/qdrant.js +462 -0
  84. package/dist/vectordb/qdrant.js.map +1 -0
  85. package/dist/vectordb/types.d.ts +11 -1
  86. package/dist/vectordb/types.d.ts.map +1 -1
  87. package/package.json +2 -1
  88. package/dist/config/loader.d.ts +0 -12
  89. package/dist/config/loader.d.ts.map +0 -1
  90. package/dist/config/loader.js +0 -46
  91. package/dist/config/loader.js.map +0 -1
  92. package/dist/config/migration-manager.d.ts +0 -46
  93. package/dist/config/migration-manager.d.ts.map +0 -1
  94. package/dist/config/migration-manager.js +0 -119
  95. package/dist/config/migration-manager.js.map +0 -1
  96. package/dist/config/migration.d.ts +0 -20
  97. package/dist/config/migration.d.ts.map +0 -1
  98. package/dist/config/migration.js +0 -155
  99. package/dist/config/migration.js.map +0 -1
@@ -1,119 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import chalk from 'chalk';
4
- import { defaultConfig } from './schema.js';
5
- import { needsMigration, migrateConfig, migrateConfigFile } from './migration.js';
6
- import { deepMergeConfig, detectNewFields } from './merge.js';
7
- import { CURRENT_CONFIG_VERSION } from '../constants.js';
8
- /**
9
- * Centralized migration orchestration service
10
- *
11
- * Handles all config migration scenarios:
12
- * - Auto-migration during config loading
13
- * - Interactive upgrade via CLI
14
- * - Migration status checking
15
- */
16
- export class MigrationManager {
17
- rootDir;
18
- targetVersion;
19
- constructor(rootDir = process.cwd(), targetVersion = CURRENT_CONFIG_VERSION) {
20
- this.rootDir = rootDir;
21
- this.targetVersion = targetVersion;
22
- }
23
- /**
24
- * Get the config file path
25
- */
26
- getConfigPath() {
27
- return path.join(this.rootDir, '.lien.config.json');
28
- }
29
- /**
30
- * Check if the current config needs migration
31
- */
32
- async needsMigration() {
33
- try {
34
- const configPath = this.getConfigPath();
35
- const content = await fs.readFile(configPath, 'utf-8');
36
- const config = JSON.parse(content);
37
- return needsMigration(config);
38
- }
39
- catch (error) {
40
- // If config doesn't exist or can't be read, no migration needed
41
- return false;
42
- }
43
- }
44
- /**
45
- * Perform silent migration (for auto-migration during load)
46
- * Returns the migrated config without user interaction
47
- */
48
- async autoMigrate() {
49
- const result = await migrateConfigFile(this.rootDir);
50
- if (result.migrated && result.backupPath) {
51
- const backupFilename = path.basename(result.backupPath);
52
- console.log(`✅ Migration complete! Backup saved as ${backupFilename}`);
53
- console.log('📝 Your config now uses the framework-based structure.');
54
- }
55
- return result.config;
56
- }
57
- /**
58
- * Perform interactive upgrade (for CLI upgrade command)
59
- * Provides detailed feedback and handles edge cases
60
- */
61
- async upgradeInteractive() {
62
- const configPath = this.getConfigPath();
63
- try {
64
- // 1. Read existing config
65
- const existingContent = await fs.readFile(configPath, 'utf-8');
66
- const existingConfig = JSON.parse(existingContent);
67
- // 2. Check if any changes are needed
68
- const migrationNeeded = needsMigration(existingConfig);
69
- const newFields = migrationNeeded ? [] : detectNewFields(existingConfig, defaultConfig);
70
- const hasChanges = migrationNeeded || newFields.length > 0;
71
- if (!hasChanges) {
72
- console.log(chalk.green('✓ Config is already up to date'));
73
- console.log(chalk.dim('No changes needed'));
74
- return;
75
- }
76
- // 3. Backup existing config (only if changes are needed)
77
- const backupPath = `${configPath}.backup`;
78
- await fs.copyFile(configPath, backupPath);
79
- // 4. Perform upgrade
80
- let upgradedConfig;
81
- let migrated = false;
82
- if (migrationNeeded) {
83
- console.log(chalk.blue(`🔄 Migrating config from v0.2.0 to v${this.targetVersion}...`));
84
- upgradedConfig = migrateConfig(existingConfig, this.targetVersion);
85
- migrated = true;
86
- }
87
- else {
88
- // Just merge with defaults for current version configs
89
- upgradedConfig = deepMergeConfig(defaultConfig, existingConfig);
90
- console.log(chalk.dim('\nNew options added:'));
91
- newFields.forEach(field => console.log(chalk.dim(' •'), chalk.bold(field)));
92
- }
93
- // 5. Write upgraded config
94
- await fs.writeFile(configPath, JSON.stringify(upgradedConfig, null, 2) + '\n', 'utf-8');
95
- // 6. Show results
96
- console.log(chalk.green('✓ Config upgraded successfully'));
97
- console.log(chalk.dim('Backup saved to:'), backupPath);
98
- if (migrated) {
99
- console.log(chalk.dim('\n📝 Your config now uses the framework-based structure.'));
100
- }
101
- }
102
- catch (error) {
103
- if (error.code === 'ENOENT') {
104
- console.log(chalk.red('Error: No config file found'));
105
- console.log(chalk.dim('Run'), chalk.bold('lien init'), chalk.dim('to create a config file'));
106
- return;
107
- }
108
- throw error;
109
- }
110
- }
111
- /**
112
- * Perform migration and return result
113
- * Used when programmatic access to migration result is needed
114
- */
115
- async migrate() {
116
- return migrateConfigFile(this.rootDir);
117
- }
118
- }
119
- //# sourceMappingURL=migration-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration-manager.js","sourceRoot":"","sources":["../../src/config/migration-manager.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { LienConfig, LegacyLienConfig } from './schema.js';
2
- /**
3
- * Checks if a config object needs migration from v0.2.0 to v0.3.0
4
- */
5
- export declare function needsMigration(config: any): boolean;
6
- /**
7
- * Migrates a v0.2.0 config to v0.3.0+ format
8
- * @param oldConfig - The old config to migrate
9
- * @param targetVersion - The version to set in the migrated config (defaults to CURRENT_CONFIG_VERSION)
10
- */
11
- export declare function migrateConfig(oldConfig: Partial<LegacyLienConfig | LienConfig>, targetVersion?: string): LienConfig;
12
- /**
13
- * Migrates config file and creates backup
14
- */
15
- export declare function migrateConfigFile(rootDir?: string): Promise<{
16
- migrated: boolean;
17
- backupPath?: string;
18
- config: LienConfig;
19
- }>;
20
- //# sourceMappingURL=migration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../src/config/migration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAoC,MAAM,aAAa,CAAC;AAG7F;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CA+BnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,UAAU,CA6EnH;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC;IAChF,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC,CAyCD"}
@@ -1,155 +0,0 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
3
- import { defaultConfig } from './schema.js';
4
- import { CURRENT_CONFIG_VERSION } from '../constants.js';
5
- /**
6
- * Checks if a config object needs migration from v0.2.0 to v0.3.0
7
- */
8
- export function needsMigration(config) {
9
- // Check if config uses old structure:
10
- // - Has 'indexing' field instead of 'core' and 'frameworks'
11
- // - Or has no 'frameworks' field at all
12
- // - Or version is explicitly set to something < 0.3.0
13
- // - Or missing 'chunking' field (v0.13.0)
14
- if (!config) {
15
- return false;
16
- }
17
- // If missing chunking config, needs migration to v0.13.0
18
- if (config.frameworks !== undefined && !config.chunking) {
19
- return true;
20
- }
21
- // If it has frameworks array and chunking, it's already in new format
22
- if (config.frameworks !== undefined && config.chunking !== undefined) {
23
- return false;
24
- }
25
- // If it has 'indexing' field, it's the old format
26
- if (config.indexing !== undefined) {
27
- return true;
28
- }
29
- // If version is explicitly < 0.3.0
30
- if (config.version && config.version.startsWith('0.2')) {
31
- return true;
32
- }
33
- return false;
34
- }
35
- /**
36
- * Migrates a v0.2.0 config to v0.3.0+ format
37
- * @param oldConfig - The old config to migrate
38
- * @param targetVersion - The version to set in the migrated config (defaults to CURRENT_CONFIG_VERSION)
39
- */
40
- export function migrateConfig(oldConfig, targetVersion) {
41
- // Start with default config structure
42
- const newConfig = {
43
- version: targetVersion ?? CURRENT_CONFIG_VERSION,
44
- core: {
45
- chunkSize: oldConfig.indexing?.chunkSize ?? oldConfig.core?.chunkSize ?? defaultConfig.core.chunkSize,
46
- chunkOverlap: oldConfig.indexing?.chunkOverlap ?? oldConfig.core?.chunkOverlap ?? defaultConfig.core.chunkOverlap,
47
- concurrency: oldConfig.indexing?.concurrency ?? oldConfig.core?.concurrency ?? defaultConfig.core.concurrency,
48
- embeddingBatchSize: oldConfig.indexing?.embeddingBatchSize ?? oldConfig.core?.embeddingBatchSize ?? defaultConfig.core.embeddingBatchSize,
49
- },
50
- chunking: {
51
- useAST: oldConfig.chunking?.useAST ?? defaultConfig.chunking.useAST,
52
- astFallback: oldConfig.chunking?.astFallback ?? defaultConfig.chunking.astFallback,
53
- },
54
- mcp: {
55
- port: oldConfig.mcp?.port ?? defaultConfig.mcp.port,
56
- transport: oldConfig.mcp?.transport ?? defaultConfig.mcp.transport,
57
- autoIndexOnFirstRun: oldConfig.mcp?.autoIndexOnFirstRun ?? defaultConfig.mcp.autoIndexOnFirstRun,
58
- },
59
- gitDetection: {
60
- enabled: oldConfig.gitDetection?.enabled ?? defaultConfig.gitDetection.enabled,
61
- pollIntervalMs: oldConfig.gitDetection?.pollIntervalMs ?? defaultConfig.gitDetection.pollIntervalMs,
62
- },
63
- fileWatching: {
64
- enabled: oldConfig.fileWatching?.enabled ?? defaultConfig.fileWatching.enabled,
65
- debounceMs: oldConfig.fileWatching?.debounceMs ?? defaultConfig.fileWatching.debounceMs,
66
- },
67
- frameworks: oldConfig.frameworks ?? [],
68
- };
69
- // Convert old indexing config to a single "generic" framework (only for legacy configs)
70
- if (oldConfig.indexing && newConfig.frameworks.length === 0) {
71
- const genericFramework = {
72
- name: 'generic',
73
- path: '.',
74
- enabled: true,
75
- config: {
76
- include: oldConfig.indexing.include ?? ['**/*.{ts,tsx,js,jsx,py,php,go,rs,java,c,cpp,cs}'],
77
- exclude: oldConfig.indexing.exclude ?? [
78
- '**/node_modules/**',
79
- '**/dist/**',
80
- '**/build/**',
81
- '**/.git/**',
82
- '**/coverage/**',
83
- '**/.next/**',
84
- '**/.nuxt/**',
85
- '**/vendor/**',
86
- ],
87
- },
88
- };
89
- newConfig.frameworks.push(genericFramework);
90
- }
91
- else if (newConfig.frameworks.length === 0) {
92
- // No indexing config and no frameworks present, use defaults for generic framework
93
- const genericFramework = {
94
- name: 'generic',
95
- path: '.',
96
- enabled: true,
97
- config: {
98
- include: ['**/*.{ts,tsx,js,jsx,py,php,go,rs,java,c,cpp,cs}'],
99
- exclude: [
100
- '**/node_modules/**',
101
- '**/dist/**',
102
- '**/build/**',
103
- '**/.git/**',
104
- '**/coverage/**',
105
- '**/.next/**',
106
- '**/.nuxt/**',
107
- '**/vendor/**',
108
- ],
109
- },
110
- };
111
- newConfig.frameworks.push(genericFramework);
112
- }
113
- return newConfig;
114
- }
115
- /**
116
- * Migrates config file and creates backup
117
- */
118
- export async function migrateConfigFile(rootDir = process.cwd()) {
119
- const configPath = path.join(rootDir, '.lien.config.json');
120
- try {
121
- // Read existing config
122
- const configContent = await fs.readFile(configPath, 'utf-8');
123
- const oldConfig = JSON.parse(configContent);
124
- // Check if migration is needed
125
- if (!needsMigration(oldConfig)) {
126
- return {
127
- migrated: false,
128
- config: oldConfig,
129
- };
130
- }
131
- // Perform migration
132
- const newConfig = migrateConfig(oldConfig);
133
- // Create backup
134
- const backupPath = `${configPath}.v0.2.0.backup`;
135
- await fs.copyFile(configPath, backupPath);
136
- // Write migrated config
137
- await fs.writeFile(configPath, JSON.stringify(newConfig, null, 2) + '\n', 'utf-8');
138
- return {
139
- migrated: true,
140
- backupPath,
141
- config: newConfig,
142
- };
143
- }
144
- catch (error) {
145
- // If config doesn't exist, return default
146
- if (error.code === 'ENOENT') {
147
- return {
148
- migrated: false,
149
- config: defaultConfig,
150
- };
151
- }
152
- throw error;
153
- }
154
- }
155
- //# sourceMappingURL=migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../src/config/migration.ts"],"names":[],"mappings":"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"}