@liendev/core 0.20.0 → 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.
- package/README.md +10 -26
- package/dist/config/global-config.d.ts +37 -0
- package/dist/config/global-config.d.ts.map +1 -0
- package/dist/config/global-config.js +160 -0
- package/dist/config/global-config.js.map +1 -0
- package/dist/config/merge.js +1 -1
- package/dist/config/merge.js.map +1 -1
- package/dist/config/schema.d.ts +8 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +2 -2
- package/dist/config/schema.js.map +1 -1
- package/dist/config/service.d.ts +2 -25
- package/dist/config/service.d.ts.map +1 -1
- package/dist/config/service.js +4 -79
- package/dist/config/service.js.map +1 -1
- package/dist/constants.d.ts +0 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +0 -3
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +20 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -9
- package/dist/index.js.map +1 -1
- package/dist/indexer/ast/chunker.d.ts +2 -0
- package/dist/indexer/ast/chunker.d.ts.map +1 -1
- package/dist/indexer/ast/chunker.js +13 -7
- package/dist/indexer/ast/chunker.js.map +1 -1
- package/dist/indexer/change-detector.d.ts +2 -3
- package/dist/indexer/change-detector.d.ts.map +1 -1
- package/dist/indexer/change-detector.js +19 -34
- package/dist/indexer/change-detector.js.map +1 -1
- package/dist/indexer/chunk-batch-processor.d.ts +2 -2
- package/dist/indexer/chunk-batch-processor.d.ts.map +1 -1
- package/dist/indexer/chunk-batch-processor.js.map +1 -1
- package/dist/indexer/chunker.d.ts +2 -0
- package/dist/indexer/chunker.d.ts.map +1 -1
- package/dist/indexer/chunker.js +9 -5
- package/dist/indexer/chunker.js.map +1 -1
- package/dist/indexer/incremental.d.ts +4 -4
- package/dist/indexer/incremental.d.ts.map +1 -1
- package/dist/indexer/incremental.js +35 -23
- package/dist/indexer/incremental.js.map +1 -1
- package/dist/indexer/index.d.ts +3 -1
- package/dist/indexer/index.d.ts.map +1 -1
- package/dist/indexer/index.js +109 -47
- package/dist/indexer/index.js.map +1 -1
- package/dist/indexer/json-template-chunker.d.ts +4 -1
- package/dist/indexer/json-template-chunker.d.ts.map +1 -1
- package/dist/indexer/json-template-chunker.js +3 -1
- package/dist/indexer/json-template-chunker.js.map +1 -1
- package/dist/indexer/liquid-chunker.d.ts +4 -1
- package/dist/indexer/liquid-chunker.d.ts.map +1 -1
- package/dist/indexer/liquid-chunker.js +16 -14
- package/dist/indexer/liquid-chunker.js.map +1 -1
- package/dist/indexer/progress-tracker.d.ts +3 -1
- package/dist/indexer/progress-tracker.d.ts.map +1 -1
- package/dist/indexer/progress-tracker.js +8 -2
- package/dist/indexer/progress-tracker.js.map +1 -1
- package/dist/indexer/scanner.d.ts.map +1 -1
- package/dist/indexer/scanner.js +28 -6
- package/dist/indexer/scanner.js.map +1 -1
- package/dist/indexer/types.d.ts +12 -0
- package/dist/indexer/types.d.ts.map +1 -1
- package/dist/insights/complexity-analyzer.d.ts +6 -5
- package/dist/insights/complexity-analyzer.d.ts.map +1 -1
- package/dist/insights/complexity-analyzer.js +33 -14
- package/dist/insights/complexity-analyzer.js.map +1 -1
- package/dist/test/helpers/mock-embeddings.d.ts +12 -0
- package/dist/test/helpers/mock-embeddings.d.ts.map +1 -0
- package/dist/test/helpers/mock-embeddings.js +43 -0
- package/dist/test/helpers/mock-embeddings.js.map +1 -0
- package/dist/test/helpers/test-db.d.ts +21 -0
- package/dist/test/helpers/test-db.d.ts.map +1 -0
- package/dist/test/helpers/test-db.js +48 -0
- package/dist/test/helpers/test-db.js.map +1 -0
- package/dist/vectordb/factory.d.ts +15 -0
- package/dist/vectordb/factory.d.ts.map +1 -0
- package/dist/vectordb/factory.js +64 -0
- package/dist/vectordb/factory.js.map +1 -0
- package/dist/vectordb/qdrant-payload-mapper.d.ts +47 -0
- package/dist/vectordb/qdrant-payload-mapper.d.ts.map +1 -0
- package/dist/vectordb/qdrant-payload-mapper.js +78 -0
- package/dist/vectordb/qdrant-payload-mapper.js.map +1 -0
- package/dist/vectordb/qdrant.d.ts +87 -0
- package/dist/vectordb/qdrant.d.ts.map +1 -0
- package/dist/vectordb/qdrant.js +462 -0
- package/dist/vectordb/qdrant.js.map +1 -0
- package/dist/vectordb/types.d.ts +11 -1
- package/dist/vectordb/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/config/loader.d.ts +0 -12
- package/dist/config/loader.d.ts.map +0 -1
- package/dist/config/loader.js +0 -46
- package/dist/config/loader.js.map +0 -1
- package/dist/config/migration-manager.d.ts +0 -46
- package/dist/config/migration-manager.d.ts.map +0 -1
- package/dist/config/migration-manager.js +0 -119
- package/dist/config/migration-manager.js.map +0 -1
- package/dist/config/migration.d.ts +0 -20
- package/dist/config/migration.d.ts.map +0 -1
- package/dist/config/migration.js +0 -155
- 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"}
|
package/dist/config/migration.js
DELETED
|
@@ -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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"}
|