agent-ide 0.9.2 → 0.9.3
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/dist/core/deadcode/dead-code-remover.d.ts +4 -3
- package/dist/core/deadcode/dead-code-remover.d.ts.map +1 -1
- package/dist/core/deadcode/dead-code-remover.js +13 -12
- package/dist/core/deadcode/dead-code-remover.js.map +1 -1
- package/dist/core/deadcode/file-operations.d.ts +6 -9
- package/dist/core/deadcode/file-operations.d.ts.map +1 -1
- package/dist/core/deadcode/file-operations.js +12 -17
- package/dist/core/deadcode/file-operations.js.map +1 -1
- package/dist/core/deadcode/import-cleaner.d.ts +6 -11
- package/dist/core/deadcode/import-cleaner.d.ts.map +1 -1
- package/dist/core/deadcode/import-cleaner.js +15 -23
- package/dist/core/deadcode/import-cleaner.js.map +1 -1
- package/dist/core/deadcode/index.d.ts +1 -0
- package/dist/core/deadcode/index.d.ts.map +1 -1
- package/dist/core/deadcode/index.js +1 -0
- package/dist/core/deadcode/index.js.map +1 -1
- package/dist/core/deadcode/shared-cache.d.ts +70 -0
- package/dist/core/deadcode/shared-cache.d.ts.map +1 -0
- package/dist/core/deadcode/shared-cache.js +95 -0
- package/dist/core/deadcode/shared-cache.js.map +1 -0
- package/dist/core/foundations/indexing/index-engine.d.ts +18 -0
- package/dist/core/foundations/indexing/index-engine.d.ts.map +1 -1
- package/dist/core/foundations/indexing/index-engine.js +120 -26
- package/dist/core/foundations/indexing/index-engine.js.map +1 -1
- package/dist/core/impact/impact-analyzer.d.ts.map +1 -1
- package/dist/core/impact/impact-analyzer.js +4 -2
- package/dist/core/impact/impact-analyzer.js.map +1 -1
- package/dist/core/rename/reference-updater.d.ts +2 -0
- package/dist/core/rename/reference-updater.d.ts.map +1 -1
- package/dist/core/rename/reference-updater.js +4 -1
- package/dist/core/rename/reference-updater.js.map +1 -1
- package/dist/infrastructure/cache/index.d.ts +10 -31
- package/dist/infrastructure/cache/index.d.ts.map +1 -1
- package/dist/infrastructure/cache/index.js +5 -5
- package/dist/infrastructure/cache/index.js.map +1 -1
- package/dist/infrastructure/worker-pool/index.d.ts +7 -0
- package/dist/infrastructure/worker-pool/index.d.ts.map +1 -0
- package/dist/infrastructure/worker-pool/index.js +6 -0
- package/dist/infrastructure/worker-pool/index.js.map +1 -0
- package/dist/infrastructure/worker-pool/parser-pool.d.ts +47 -0
- package/dist/infrastructure/worker-pool/parser-pool.d.ts.map +1 -0
- package/dist/infrastructure/worker-pool/parser-pool.js +105 -0
- package/dist/infrastructure/worker-pool/parser-pool.js.map +1 -0
- package/dist/infrastructure/worker-pool/types.d.ts +39 -0
- package/dist/infrastructure/worker-pool/types.d.ts.map +1 -0
- package/dist/infrastructure/worker-pool/types.js +6 -0
- package/dist/infrastructure/worker-pool/types.js.map +1 -0
- package/dist/infrastructure/worker-pool/workers/parse-worker.d.ts +17 -0
- package/dist/infrastructure/worker-pool/workers/parse-worker.d.ts.map +1 -0
- package/dist/infrastructure/worker-pool/workers/parse-worker.js +67 -0
- package/dist/infrastructure/worker-pool/workers/parse-worker.js.map +1 -0
- package/dist/plugins/javascript/declaration-analyzer.d.ts +4 -4
- package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -1
- package/dist/plugins/javascript/declaration-analyzer.js +8 -14
- package/dist/plugins/javascript/declaration-analyzer.js.map +1 -1
- package/dist/plugins/javascript/parser.d.ts +3 -2
- package/dist/plugins/javascript/parser.d.ts.map +1 -1
- package/dist/plugins/javascript/parser.js +6 -4
- package/dist/plugins/javascript/parser.js.map +1 -1
- package/dist/plugins/javascript/reference-finder.d.ts +4 -14
- package/dist/plugins/javascript/reference-finder.d.ts.map +1 -1
- package/dist/plugins/javascript/reference-finder.js +8 -44
- package/dist/plugins/javascript/reference-finder.js.map +1 -1
- package/dist/plugins/typescript/declaration-analyzer.d.ts +3 -3
- package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -1
- package/dist/plugins/typescript/declaration-analyzer.js +7 -6
- package/dist/plugins/typescript/declaration-analyzer.js.map +1 -1
- package/dist/plugins/typescript/language-service.d.ts +7 -0
- package/dist/plugins/typescript/language-service.d.ts.map +1 -1
- package/dist/plugins/typescript/language-service.js +26 -1
- package/dist/plugins/typescript/language-service.js.map +1 -1
- package/package.json +2 -1
|
@@ -9,59 +9,38 @@
|
|
|
9
9
|
* - 批次操作支援
|
|
10
10
|
* - 快取預熱功能
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
import { MemoryCache } from './memory-cache.js';
|
|
13
|
+
import { CacheManager, type GlobalStats, type BatchOperationResult } from './cache-manager.js';
|
|
14
|
+
export { MemoryCache, CacheManager, type GlobalStats, type BatchOperationResult };
|
|
14
15
|
export { LRUStrategy, LFUStrategy, FIFOStrategy, TTLStrategy, RandomStrategy, StrategyFactory, type CacheStrategy } from './strategies.js';
|
|
15
16
|
import type { CacheOptions, CacheStats, CacheManagerOptions } from './types.js';
|
|
16
17
|
import { EvictionStrategy } from './types.js';
|
|
17
18
|
export { type CacheItem, type CacheOptions, type CacheStats, type CacheEvent, type CacheEventListener, type CacheManagerOptions, type WarmupConfig, type PersistenceConfig, type BatchResult, type CacheQueryOptions, type CacheEntry, type SerializableValue, type SerializableObject, type SerializableArray, EvictionStrategy, CacheEventType } from './types.js';
|
|
18
|
-
export declare const DEFAULT_CACHE_OPTIONS:
|
|
19
|
-
|
|
20
|
-
maxMemory: number;
|
|
21
|
-
defaultTTL: number;
|
|
22
|
-
evictionStrategy: string;
|
|
23
|
-
enableStats: boolean;
|
|
24
|
-
cleanupInterval: number;
|
|
25
|
-
};
|
|
26
|
-
export declare const DEFAULT_MANAGER_OPTIONS: {
|
|
27
|
-
enableGlobalStats: boolean;
|
|
28
|
-
warmupConfig: {
|
|
29
|
-
enabled: boolean;
|
|
30
|
-
strategy: string;
|
|
31
|
-
};
|
|
32
|
-
persistenceConfig: {
|
|
33
|
-
enabled: boolean;
|
|
34
|
-
interval: number;
|
|
35
|
-
compression: boolean;
|
|
36
|
-
backup: {
|
|
37
|
-
enabled: boolean;
|
|
38
|
-
maxBackups: number;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
};
|
|
19
|
+
export declare const DEFAULT_CACHE_OPTIONS: Partial<CacheOptions>;
|
|
20
|
+
export declare const DEFAULT_MANAGER_OPTIONS: Partial<CacheManagerOptions>;
|
|
42
21
|
/**
|
|
43
22
|
* 工廠函式:建立預設配置的 MemoryCache
|
|
44
23
|
*/
|
|
45
|
-
export declare function createMemoryCache<K, V>(options?: Partial<CacheOptions>):
|
|
24
|
+
export declare function createMemoryCache<K, V>(options?: Partial<CacheOptions>): MemoryCache<K, V>;
|
|
46
25
|
/**
|
|
47
26
|
* 工廠函式:建立預設配置的 CacheManager
|
|
48
27
|
*/
|
|
49
|
-
export declare function createCacheManager(options?: Partial<CacheManagerOptions>):
|
|
28
|
+
export declare function createCacheManager(options?: Partial<CacheManagerOptions>): CacheManager;
|
|
50
29
|
/**
|
|
51
30
|
* 工廠函式:建立 LRU 快取
|
|
52
31
|
*/
|
|
53
|
-
export declare function createLRUCache<K, V>(maxSize?: number):
|
|
32
|
+
export declare function createLRUCache<K, V>(maxSize?: number): MemoryCache<K, V>;
|
|
54
33
|
/**
|
|
55
34
|
* 工廠函式:建立帶 TTL 的快取
|
|
56
35
|
*/
|
|
57
|
-
export declare function createTTLCache<K, V>(defaultTTL: number, maxSize?: number):
|
|
36
|
+
export declare function createTTLCache<K, V>(defaultTTL: number, maxSize?: number): MemoryCache<K, V>;
|
|
58
37
|
/**
|
|
59
38
|
* 工廠函式:建立高效能快取(針對高頻存取優化)
|
|
60
39
|
*/
|
|
61
40
|
export declare function createHighPerformanceCache<K, V>(options?: {
|
|
62
41
|
maxSize?: number;
|
|
63
42
|
strategy?: typeof EvictionStrategy[keyof typeof EvictionStrategy];
|
|
64
|
-
}):
|
|
43
|
+
}): MemoryCache<K, V>;
|
|
65
44
|
/**
|
|
66
45
|
* 快取工具函式
|
|
67
46
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG/F,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EACf,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,mBAAmB,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAGxB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EAGtB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAGf,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAGtB,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,qBAAqB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,10 @@
|
|
|
10
10
|
* - 快取預熱功能
|
|
11
11
|
*/
|
|
12
12
|
// 核心類別
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
import { MemoryCache } from './memory-cache.js';
|
|
14
|
+
import { CacheManager } from './cache-manager.js';
|
|
15
|
+
// Re-export 核心類別
|
|
16
|
+
export { MemoryCache, CacheManager };
|
|
15
17
|
// 策略相關
|
|
16
18
|
export { LRUStrategy, LFUStrategy, FIFOStrategy, TTLStrategy, RandomStrategy, StrategyFactory } from './strategies.js';
|
|
17
19
|
import { EvictionStrategy } from './types.js';
|
|
@@ -23,7 +25,7 @@ export const DEFAULT_CACHE_OPTIONS = {
|
|
|
23
25
|
maxSize: 1000,
|
|
24
26
|
maxMemory: 50 * 1024 * 1024, // 50MB
|
|
25
27
|
defaultTTL: 0, // 永不過期
|
|
26
|
-
evictionStrategy:
|
|
28
|
+
evictionStrategy: EvictionStrategy.LRU,
|
|
27
29
|
enableStats: false,
|
|
28
30
|
cleanupInterval: 60000 // 1分鐘
|
|
29
31
|
};
|
|
@@ -47,14 +49,12 @@ export const DEFAULT_MANAGER_OPTIONS = {
|
|
|
47
49
|
* 工廠函式:建立預設配置的 MemoryCache
|
|
48
50
|
*/
|
|
49
51
|
export function createMemoryCache(options) {
|
|
50
|
-
const { MemoryCache } = require('./memory-cache');
|
|
51
52
|
return new MemoryCache({ ...DEFAULT_CACHE_OPTIONS, ...options });
|
|
52
53
|
}
|
|
53
54
|
/**
|
|
54
55
|
* 工廠函式:建立預設配置的 CacheManager
|
|
55
56
|
*/
|
|
56
57
|
export function createCacheManager(options) {
|
|
57
|
-
const { CacheManager } = require('./cache-manager');
|
|
58
58
|
return new CacheManager({ ...DEFAULT_MANAGER_OPTIONS, ...options });
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAA+C,MAAM,oBAAoB,CAAC;AAE/F,OAAO;AACP,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO;AAuBL,KAAK;AACL,gBAAgB,EAChB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,UAAU;AACV,MAAM,CAAC,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/worker-pool/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/worker-pool/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser Worker Pool
|
|
3
|
+
* 使用 Tinypool 管理多執行緒 AST 解析
|
|
4
|
+
*/
|
|
5
|
+
import type { ParseTask, ParseResult, WorkerPoolOptions } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parser Worker Pool
|
|
8
|
+
* 管理 Worker 執行緒池,將 AST 解析分散到多個執行緒
|
|
9
|
+
*/
|
|
10
|
+
export declare class ParserWorkerPool {
|
|
11
|
+
private pool;
|
|
12
|
+
private disposed;
|
|
13
|
+
constructor(options?: WorkerPoolOptions);
|
|
14
|
+
/**
|
|
15
|
+
* 批次解析多個檔案
|
|
16
|
+
* @param tasks 解析任務列表
|
|
17
|
+
* @returns 解析結果列表
|
|
18
|
+
*/
|
|
19
|
+
parseFiles(tasks: ParseTask[]): Promise<ParseResult[]>;
|
|
20
|
+
/**
|
|
21
|
+
* 解析單一檔案
|
|
22
|
+
* @param task 解析任務
|
|
23
|
+
* @returns 解析結果
|
|
24
|
+
*/
|
|
25
|
+
parseFile(task: ParseTask): Promise<ParseResult>;
|
|
26
|
+
/**
|
|
27
|
+
* 取消所有待處理任務
|
|
28
|
+
*/
|
|
29
|
+
cancelPendingTasks(): void;
|
|
30
|
+
/**
|
|
31
|
+
* 重建所有 Worker(用於強制隔離)
|
|
32
|
+
*/
|
|
33
|
+
recycleWorkers(): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* 釋放 Worker Pool 資源
|
|
36
|
+
*/
|
|
37
|
+
destroy(): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* 檢查是否已釋放
|
|
40
|
+
*/
|
|
41
|
+
get isDisposed(): boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 建立 ParserWorkerPool 實例
|
|
45
|
+
*/
|
|
46
|
+
export declare function createParserWorkerPool(options?: WorkerPoolOptions): ParserWorkerPool;
|
|
47
|
+
//# sourceMappingURL=parser-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-pool.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/worker-pool/parser-pool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAoB5E;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,CAAC,EAAE,iBAAiB;IAWvC;;;;OAIG;IACG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAiB5D;;;;OAIG;IACG,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAQtD;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAM1B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B;;OAEG;IACH,IAAI,UAAU,IAAI,OAAO,CAExB;CACF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAEpF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser Worker Pool
|
|
3
|
+
* 使用 Tinypool 管理多執行緒 AST 解析
|
|
4
|
+
*/
|
|
5
|
+
import { cpus } from 'os';
|
|
6
|
+
import { fileURLToPath } from 'url';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
import Tinypool from 'tinypool';
|
|
9
|
+
/**
|
|
10
|
+
* 計算 worker 檔案路徑
|
|
11
|
+
* 無論從 src(測試)或 dist(執行)呼叫,都指向 dist 目錄
|
|
12
|
+
*/
|
|
13
|
+
function getWorkerPath() {
|
|
14
|
+
const currentDir = path.dirname(fileURLToPath(import.meta.url));
|
|
15
|
+
// 檢查是否在 dist 目錄(正常執行)
|
|
16
|
+
if (currentDir.includes('/dist/')) {
|
|
17
|
+
return path.join(currentDir, 'workers', 'parse-worker.js');
|
|
18
|
+
}
|
|
19
|
+
// 從 src 目錄呼叫(測試環境),指向 dist
|
|
20
|
+
// src/infrastructure/worker-pool/ → dist/infrastructure/worker-pool/workers/
|
|
21
|
+
const projectRoot = currentDir.replace(/\/src\/infrastructure\/worker-pool$/, '');
|
|
22
|
+
return path.join(projectRoot, 'dist', 'infrastructure', 'worker-pool', 'workers', 'parse-worker.js');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Parser Worker Pool
|
|
26
|
+
* 管理 Worker 執行緒池,將 AST 解析分散到多個執行緒
|
|
27
|
+
*/
|
|
28
|
+
export class ParserWorkerPool {
|
|
29
|
+
pool;
|
|
30
|
+
disposed = false;
|
|
31
|
+
constructor(options) {
|
|
32
|
+
const maxThreads = options?.maxThreads ?? Math.max(1, cpus().length - 1);
|
|
33
|
+
const minThreads = options?.minThreads ?? 1;
|
|
34
|
+
this.pool = new Tinypool({
|
|
35
|
+
filename: getWorkerPath(),
|
|
36
|
+
maxThreads,
|
|
37
|
+
minThreads
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* 批次解析多個檔案
|
|
42
|
+
* @param tasks 解析任務列表
|
|
43
|
+
* @returns 解析結果列表
|
|
44
|
+
*/
|
|
45
|
+
async parseFiles(tasks) {
|
|
46
|
+
if (this.disposed) {
|
|
47
|
+
throw new Error('ParserWorkerPool 已被釋放');
|
|
48
|
+
}
|
|
49
|
+
if (tasks.length === 0) {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
// 並行執行所有任務
|
|
53
|
+
const results = await Promise.all(tasks.map(task => this.pool.run(task)));
|
|
54
|
+
return results;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* 解析單一檔案
|
|
58
|
+
* @param task 解析任務
|
|
59
|
+
* @returns 解析結果
|
|
60
|
+
*/
|
|
61
|
+
async parseFile(task) {
|
|
62
|
+
if (this.disposed) {
|
|
63
|
+
throw new Error('ParserWorkerPool 已被釋放');
|
|
64
|
+
}
|
|
65
|
+
return this.pool.run(task);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 取消所有待處理任務
|
|
69
|
+
*/
|
|
70
|
+
cancelPendingTasks() {
|
|
71
|
+
if (!this.disposed) {
|
|
72
|
+
this.pool.cancelPendingTasks();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 重建所有 Worker(用於強制隔離)
|
|
77
|
+
*/
|
|
78
|
+
async recycleWorkers() {
|
|
79
|
+
if (!this.disposed) {
|
|
80
|
+
await this.pool.recycleWorkers();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* 釋放 Worker Pool 資源
|
|
85
|
+
*/
|
|
86
|
+
async destroy() {
|
|
87
|
+
if (!this.disposed) {
|
|
88
|
+
this.disposed = true;
|
|
89
|
+
await this.pool.destroy();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 檢查是否已釋放
|
|
94
|
+
*/
|
|
95
|
+
get isDisposed() {
|
|
96
|
+
return this.disposed;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 建立 ParserWorkerPool 實例
|
|
101
|
+
*/
|
|
102
|
+
export function createParserWorkerPool(options) {
|
|
103
|
+
return new ParserWorkerPool(options);
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=parser-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser-pool.js","sourceRoot":"","sources":["../../../src/infrastructure/worker-pool/parser-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Pool 型別定義
|
|
3
|
+
* 提供跨執行緒可序列化的任務和結果型別
|
|
4
|
+
*/
|
|
5
|
+
import type { Symbol, Dependency } from '../../shared/types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parser 任務(傳送給 Worker)
|
|
8
|
+
* 所有欄位必須可序列化
|
|
9
|
+
*/
|
|
10
|
+
export interface ParseTask {
|
|
11
|
+
/** 檔案路徑 */
|
|
12
|
+
filePath: string;
|
|
13
|
+
/** 檔案內容(主執行緒預讀) */
|
|
14
|
+
content: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parser 結果(Worker 回傳)
|
|
18
|
+
* Symbol 和 Dependency 都是純 Object,可直接序列化
|
|
19
|
+
*/
|
|
20
|
+
export interface ParseResult {
|
|
21
|
+
/** 檔案路徑 */
|
|
22
|
+
filePath: string;
|
|
23
|
+
/** 提取的符號列表 */
|
|
24
|
+
symbols: Symbol[];
|
|
25
|
+
/** 依賴的模組列表 */
|
|
26
|
+
dependencies: Dependency[];
|
|
27
|
+
/** 解析錯誤訊息 */
|
|
28
|
+
errors: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Worker Pool 配置選項
|
|
32
|
+
*/
|
|
33
|
+
export interface WorkerPoolOptions {
|
|
34
|
+
/** 最大執行緒數(預設:CPU 核心數 - 1) */
|
|
35
|
+
maxThreads?: number;
|
|
36
|
+
/** 最小執行緒數(預設:1) */
|
|
37
|
+
minThreads?: number;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/worker-pool/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc;IACd,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,aAAa;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/infrastructure/worker-pool/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse Worker
|
|
3
|
+
* 在 Worker 執行緒中執行 AST 解析和符號提取
|
|
4
|
+
*
|
|
5
|
+
* 注意:此檔案在獨立的 Worker 執行緒中執行,
|
|
6
|
+
* 每個 Worker 會初始化自己的 ParserRegistry 實例。
|
|
7
|
+
*/
|
|
8
|
+
import type { ParseTask, ParseResult } from '../types.js';
|
|
9
|
+
/**
|
|
10
|
+
* 解析單一檔案
|
|
11
|
+
* 這是 Tinypool 呼叫的 default export 函式
|
|
12
|
+
*
|
|
13
|
+
* @param task 解析任務(包含 filePath 和 content)
|
|
14
|
+
* @returns 解析結果
|
|
15
|
+
*/
|
|
16
|
+
export default function parseFile(task: ParseTask): Promise<ParseResult>;
|
|
17
|
+
//# sourceMappingURL=parse-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-worker.d.ts","sourceRoot":"","sources":["../../../../src/infrastructure/worker-pool/workers/parse-worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAc1D;;;;;;GAMG;AACH,wBAA8B,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAyC7E"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse Worker
|
|
3
|
+
* 在 Worker 執行緒中執行 AST 解析和符號提取
|
|
4
|
+
*
|
|
5
|
+
* 注意:此檔案在獨立的 Worker 執行緒中執行,
|
|
6
|
+
* 每個 Worker 會初始化自己的 ParserRegistry 實例。
|
|
7
|
+
*/
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import { ParserRegistry } from '../../parser/index.js';
|
|
10
|
+
import { TypeScriptParser } from '../../../plugins/typescript/parser.js';
|
|
11
|
+
import { JavaScriptParser } from '../../../plugins/javascript/parser.js';
|
|
12
|
+
// Worker 初始化(每個 Worker 執行一次)
|
|
13
|
+
const registry = ParserRegistry.getInstance();
|
|
14
|
+
// 確保 Parser 已註冊
|
|
15
|
+
if (!registry.getParser('.ts')) {
|
|
16
|
+
registry.register(new TypeScriptParser());
|
|
17
|
+
}
|
|
18
|
+
if (!registry.getParser('.js')) {
|
|
19
|
+
registry.register(new JavaScriptParser());
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 解析單一檔案
|
|
23
|
+
* 這是 Tinypool 呼叫的 default export 函式
|
|
24
|
+
*
|
|
25
|
+
* @param task 解析任務(包含 filePath 和 content)
|
|
26
|
+
* @returns 解析結果
|
|
27
|
+
*/
|
|
28
|
+
export default async function parseFile(task) {
|
|
29
|
+
const { filePath, content } = task;
|
|
30
|
+
const ext = path.extname(filePath);
|
|
31
|
+
const parser = registry.getParser(ext);
|
|
32
|
+
if (!parser) {
|
|
33
|
+
return {
|
|
34
|
+
filePath,
|
|
35
|
+
symbols: [],
|
|
36
|
+
dependencies: [],
|
|
37
|
+
errors: [`No parser for extension: ${ext}`]
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const ast = await parser.parse(content, filePath);
|
|
42
|
+
const symbols = await parser.extractSymbols(ast);
|
|
43
|
+
const dependencies = await parser.extractDependencies(ast);
|
|
44
|
+
// 移除 TypeScript 特有的不可序列化屬性(tsNode, tsSymbol 包含循環引用)
|
|
45
|
+
const cleanedSymbols = symbols.map(symbol => {
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
47
|
+
const { tsNode, tsSymbol, ...rest } = symbol;
|
|
48
|
+
return rest;
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
filePath,
|
|
52
|
+
symbols: cleanedSymbols,
|
|
53
|
+
dependencies,
|
|
54
|
+
errors: []
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
59
|
+
return {
|
|
60
|
+
filePath,
|
|
61
|
+
symbols: [],
|
|
62
|
+
dependencies: [],
|
|
63
|
+
errors: [errorMessage]
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=parse-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-worker.js","sourceRoot":"","sources":["../../../../src/infrastructure/worker-pool/workers/parse-worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,6BAA6B;AAC7B,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,EAAE,CAAC;AAE9C,gBAAgB;AAChB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,SAAS,CAAC,IAAe;IACrD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,CAAC,4BAA4B,GAAG,EAAE,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAE3D,oDAAoD;QACpD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YAC1C,8DAA8D;YAC9D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAa,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,cAAc;YACvB,YAAY;YACZ,MAAM,EAAE,EAAE;SACI,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,CAAC,YAAY,CAAC;SACvB,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -7,18 +7,18 @@ import type { Range } from '../../shared/types/index.js';
|
|
|
7
7
|
/**
|
|
8
8
|
* JavaScript 宣告分析器
|
|
9
9
|
* 提供宣告範圍、import 解析、函數簽章和 JSDoc 文件提取功能
|
|
10
|
+
* 注意:LRU 淘汰由 MemoryCache 自動處理
|
|
10
11
|
*/
|
|
11
12
|
export declare class DeclarationAnalyzer {
|
|
12
|
-
/** AST 快取(hash -> AST
|
|
13
|
-
private astCache;
|
|
14
|
-
/** 最大快取項目數 */
|
|
15
|
-
private static readonly MAX_CACHE_SIZE;
|
|
13
|
+
/** AST 快取(hash -> AST),LRU 由 MemoryCache 自動處理 */
|
|
14
|
+
private readonly astCache;
|
|
16
15
|
/**
|
|
17
16
|
* 計算程式碼雜湊(簡易版本)
|
|
18
17
|
*/
|
|
19
18
|
private computeHash;
|
|
20
19
|
/**
|
|
21
20
|
* 解析並快取 AST
|
|
21
|
+
* 注意:LRU 淘汰由 MemoryCache 自動處理
|
|
22
22
|
*/
|
|
23
23
|
private parseWithCache;
|
|
24
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration-analyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/javascript/declaration-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,iBAAiB,EAEjB,kBAAkB,EAElB,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"declaration-analyzer.d.ts","sourceRoot":"","sources":["../../../src/plugins/javascript/declaration-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,iBAAiB,EAEjB,kBAAkB,EAElB,aAAa,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAOpD;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,iDAAiD;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuD;IAEhF;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;;;;;;OAOG;IACH,uBAAuB,CACrB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,KAAK,GAAG,IAAI;IAwGf;;;;OAIG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI;IAwB/D;;;;;;;OAOG;IACH,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,kBAAkB,GAAG,IAAI;IAqD5B;;;;;;;OAOG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,aAAa,GAAG,IAAI;IA2EvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA6DnC;;OAEG;IACH,OAAO,CAAC,6BAA6B;CAyDtC"}
|
|
@@ -6,17 +6,17 @@ import { parse as babelParse } from '@babel/parser';
|
|
|
6
6
|
import * as babel from '@babel/types';
|
|
7
7
|
import babelTraverse from '@babel/traverse';
|
|
8
8
|
import { isLineMatch, parseJSDocContent } from '../shared/index.js';
|
|
9
|
+
import { createLRUCache } from '../../infrastructure/cache/index.js';
|
|
9
10
|
// Handle both ESM and CJS module formats
|
|
10
11
|
const traverse = babelTraverse.default || babelTraverse;
|
|
11
12
|
/**
|
|
12
13
|
* JavaScript 宣告分析器
|
|
13
14
|
* 提供宣告範圍、import 解析、函數簽章和 JSDoc 文件提取功能
|
|
15
|
+
* 注意:LRU 淘汰由 MemoryCache 自動處理
|
|
14
16
|
*/
|
|
15
17
|
export class DeclarationAnalyzer {
|
|
16
|
-
/** AST 快取(hash -> AST
|
|
17
|
-
astCache =
|
|
18
|
-
/** 最大快取項目數 */
|
|
19
|
-
static MAX_CACHE_SIZE = 10;
|
|
18
|
+
/** AST 快取(hash -> AST),LRU 由 MemoryCache 自動處理 */
|
|
19
|
+
astCache = createLRUCache(10);
|
|
20
20
|
/**
|
|
21
21
|
* 計算程式碼雜湊(簡易版本)
|
|
22
22
|
*/
|
|
@@ -25,24 +25,18 @@ export class DeclarationAnalyzer {
|
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* 解析並快取 AST
|
|
28
|
+
* 注意:LRU 淘汰由 MemoryCache 自動處理
|
|
28
29
|
*/
|
|
29
30
|
parseWithCache(code, options) {
|
|
30
31
|
const hash = this.computeHash(code);
|
|
31
|
-
//
|
|
32
|
+
// 檢查快取(MemoryCache.get() 自動更新 lastAccessedAt)
|
|
32
33
|
const cached = this.astCache.get(hash);
|
|
33
34
|
if (cached) {
|
|
34
|
-
return cached
|
|
35
|
+
return cached;
|
|
35
36
|
}
|
|
36
37
|
try {
|
|
37
38
|
const ast = babelParse(code, options);
|
|
38
|
-
// LRU
|
|
39
|
-
if (this.astCache.size >= DeclarationAnalyzer.MAX_CACHE_SIZE) {
|
|
40
|
-
const firstKey = this.astCache.keys().next().value;
|
|
41
|
-
if (firstKey) {
|
|
42
|
-
this.astCache.delete(firstKey);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
this.astCache.set(hash, { ast, hash });
|
|
39
|
+
this.astCache.set(hash, ast); // MemoryCache 自動處理 LRU 淘汰
|
|
46
40
|
return ast;
|
|
47
41
|
}
|
|
48
42
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"declaration-analyzer.js","sourceRoot":"","sources":["../../../src/plugins/javascript/declaration-analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"declaration-analyzer.js","sourceRoot":"","sources":["../../../src/plugins/javascript/declaration-analyzer.ts"],"names":[],"mappings":"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"}
|