@mycodemap/mycodemap 0.1.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/CHANGELOG.md +17 -0
- package/LICENSE +21 -0
- package/README.md +559 -0
- package/dist/ai/claude.d.ts +38 -0
- package/dist/ai/claude.d.ts.map +1 -0
- package/dist/ai/claude.js +169 -0
- package/dist/ai/claude.js.map +1 -0
- package/dist/ai/codex.d.ts +38 -0
- package/dist/ai/codex.d.ts.map +1 -0
- package/dist/ai/codex.js +169 -0
- package/dist/ai/codex.js.map +1 -0
- package/dist/ai/factory.d.ts +48 -0
- package/dist/ai/factory.d.ts.map +1 -0
- package/dist/ai/factory.js +95 -0
- package/dist/ai/factory.js.map +1 -0
- package/dist/ai/index.d.ts +12 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +29 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/provider.d.ts +70 -0
- package/dist/ai/provider.d.ts.map +1 -0
- package/dist/ai/provider.js +31 -0
- package/dist/ai/provider.js.map +1 -0
- package/dist/ai/subagent-caller.d.ts +90 -0
- package/dist/ai/subagent-caller.d.ts.map +1 -0
- package/dist/ai/subagent-caller.js +280 -0
- package/dist/ai/subagent-caller.js.map +1 -0
- package/dist/ai/types.d.ts +70 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +5 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/cache/file-hash-cache.d.ts +76 -0
- package/dist/cache/file-hash-cache.d.ts.map +1 -0
- package/dist/cache/file-hash-cache.js +159 -0
- package/dist/cache/file-hash-cache.js.map +1 -0
- package/dist/cache/index.d.ts +151 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +303 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/lru-cache.d.ts +93 -0
- package/dist/cache/lru-cache.d.ts.map +1 -0
- package/dist/cache/lru-cache.js +194 -0
- package/dist/cache/lru-cache.js.map +1 -0
- package/dist/cache/parse-cache.d.ts +68 -0
- package/dist/cache/parse-cache.d.ts.map +1 -0
- package/dist/cache/parse-cache.js +173 -0
- package/dist/cache/parse-cache.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +96 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +567 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/ci.d.ts +25 -0
- package/dist/cli/commands/ci.d.ts.map +1 -0
- package/dist/cli/commands/ci.js +481 -0
- package/dist/cli/commands/ci.js.map +1 -0
- package/dist/cli/commands/complexity.d.ts +70 -0
- package/dist/cli/commands/complexity.d.ts.map +1 -0
- package/dist/cli/commands/complexity.js +479 -0
- package/dist/cli/commands/complexity.js.map +1 -0
- package/dist/cli/commands/cycles.d.ts +10 -0
- package/dist/cli/commands/cycles.d.ts.map +1 -0
- package/dist/cli/commands/cycles.js +202 -0
- package/dist/cli/commands/cycles.js.map +1 -0
- package/dist/cli/commands/deps.d.ts +61 -0
- package/dist/cli/commands/deps.d.ts.map +1 -0
- package/dist/cli/commands/deps.js +340 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/generate.d.ts +8 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +61 -0
- package/dist/cli/commands/generate.js.map +1 -0
- package/dist/cli/commands/impact.d.ts +55 -0
- package/dist/cli/commands/impact.d.ts.map +1 -0
- package/dist/cli/commands/impact.js +455 -0
- package/dist/cli/commands/impact.js.map +1 -0
- package/dist/cli/commands/init.d.ts +4 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +50 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/query.d.ts +22 -0
- package/dist/cli/commands/query.d.ts.map +1 -0
- package/dist/cli/commands/query.js +718 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/watch-foreground.d.ts +9 -0
- package/dist/cli/commands/watch-foreground.d.ts.map +1 -0
- package/dist/cli/commands/watch-foreground.js +67 -0
- package/dist/cli/commands/watch-foreground.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +12 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +114 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/commands/workflow.d.ts +25 -0
- package/dist/cli/commands/workflow.d.ts.map +1 -0
- package/dist/cli/commands/workflow.js +488 -0
- package/dist/cli/commands/workflow.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +115 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/paths.d.ts +90 -0
- package/dist/cli/paths.d.ts.map +1 -0
- package/dist/cli/paths.js +136 -0
- package/dist/cli/paths.js.map +1 -0
- package/dist/cli/runtime-logger.d.ts +13 -0
- package/dist/cli/runtime-logger.d.ts.map +1 -0
- package/dist/cli/runtime-logger.js +213 -0
- package/dist/cli/runtime-logger.js.map +1 -0
- package/dist/core/analyzer.d.ts +3 -0
- package/dist/core/analyzer.d.ts.map +1 -0
- package/dist/core/analyzer.js +359 -0
- package/dist/core/analyzer.js.map +1 -0
- package/dist/core/ast-complexity-analyzer.d.ts +40 -0
- package/dist/core/ast-complexity-analyzer.d.ts.map +1 -0
- package/dist/core/ast-complexity-analyzer.js +279 -0
- package/dist/core/ast-complexity-analyzer.js.map +1 -0
- package/dist/core/global-index.d.ts +69 -0
- package/dist/core/global-index.d.ts.map +1 -0
- package/dist/core/global-index.js +388 -0
- package/dist/core/global-index.js.map +1 -0
- package/dist/generator/ai-overview.d.ts +51 -0
- package/dist/generator/ai-overview.d.ts.map +1 -0
- package/dist/generator/ai-overview.js +160 -0
- package/dist/generator/ai-overview.js.map +1 -0
- package/dist/generator/context.d.ts +5 -0
- package/dist/generator/context.d.ts.map +1 -0
- package/dist/generator/context.js +514 -0
- package/dist/generator/context.js.map +1 -0
- package/dist/generator/file-describer.d.ts +93 -0
- package/dist/generator/file-describer.d.ts.map +1 -0
- package/dist/generator/file-describer.js +375 -0
- package/dist/generator/file-describer.js.map +1 -0
- package/dist/generator/index.d.ts +8 -0
- package/dist/generator/index.d.ts.map +1 -0
- package/dist/generator/index.js +259 -0
- package/dist/generator/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator/adapters/ast-grep-adapter.d.ts +75 -0
- package/dist/orchestrator/adapters/ast-grep-adapter.d.ts.map +1 -0
- package/dist/orchestrator/adapters/ast-grep-adapter.js +242 -0
- package/dist/orchestrator/adapters/ast-grep-adapter.js.map +1 -0
- package/dist/orchestrator/adapters/base-adapter.d.ts +24 -0
- package/dist/orchestrator/adapters/base-adapter.d.ts.map +1 -0
- package/dist/orchestrator/adapters/base-adapter.js +2 -0
- package/dist/orchestrator/adapters/base-adapter.js.map +1 -0
- package/dist/orchestrator/adapters/codemap-adapter.d.ts +56 -0
- package/dist/orchestrator/adapters/codemap-adapter.d.ts.map +1 -0
- package/dist/orchestrator/adapters/codemap-adapter.js +163 -0
- package/dist/orchestrator/adapters/codemap-adapter.js.map +1 -0
- package/dist/orchestrator/adapters/index.d.ts +10 -0
- package/dist/orchestrator/adapters/index.d.ts.map +1 -0
- package/dist/orchestrator/adapters/index.js +3 -0
- package/dist/orchestrator/adapters/index.js.map +1 -0
- package/dist/orchestrator/ai-feed-generator.d.ts +210 -0
- package/dist/orchestrator/ai-feed-generator.d.ts.map +1 -0
- package/dist/orchestrator/ai-feed-generator.js +377 -0
- package/dist/orchestrator/ai-feed-generator.js.map +1 -0
- package/dist/orchestrator/commit-validator.d.ts +30 -0
- package/dist/orchestrator/commit-validator.d.ts.map +1 -0
- package/dist/orchestrator/commit-validator.js +87 -0
- package/dist/orchestrator/commit-validator.js.map +1 -0
- package/dist/orchestrator/confidence.d.ts +25 -0
- package/dist/orchestrator/confidence.d.ts.map +1 -0
- package/dist/orchestrator/confidence.js +138 -0
- package/dist/orchestrator/confidence.js.map +1 -0
- package/dist/orchestrator/file-header-scanner.d.ts +48 -0
- package/dist/orchestrator/file-header-scanner.d.ts.map +1 -0
- package/dist/orchestrator/file-header-scanner.js +158 -0
- package/dist/orchestrator/file-header-scanner.js.map +1 -0
- package/dist/orchestrator/git-analyzer.d.ts +192 -0
- package/dist/orchestrator/git-analyzer.d.ts.map +1 -0
- package/dist/orchestrator/git-analyzer.js +539 -0
- package/dist/orchestrator/git-analyzer.js.map +1 -0
- package/dist/orchestrator/index.d.ts +20 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +16 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/intent-router.d.ts +41 -0
- package/dist/orchestrator/intent-router.d.ts.map +1 -0
- package/dist/orchestrator/intent-router.js +98 -0
- package/dist/orchestrator/intent-router.js.map +1 -0
- package/dist/orchestrator/result-fusion.d.ts +114 -0
- package/dist/orchestrator/result-fusion.d.ts.map +1 -0
- package/dist/orchestrator/result-fusion.js +332 -0
- package/dist/orchestrator/result-fusion.js.map +1 -0
- package/dist/orchestrator/test-linker.d.ts +166 -0
- package/dist/orchestrator/test-linker.d.ts.map +1 -0
- package/dist/orchestrator/test-linker.js +570 -0
- package/dist/orchestrator/test-linker.js.map +1 -0
- package/dist/orchestrator/tool-orchestrator.d.ts +108 -0
- package/dist/orchestrator/tool-orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/tool-orchestrator.js +247 -0
- package/dist/orchestrator/tool-orchestrator.js.map +1 -0
- package/dist/orchestrator/types.d.ts +162 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +39 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/dist/orchestrator/workflow/ci-executor.d.ts +157 -0
- package/dist/orchestrator/workflow/ci-executor.d.ts.map +1 -0
- package/dist/orchestrator/workflow/ci-executor.js +423 -0
- package/dist/orchestrator/workflow/ci-executor.js.map +1 -0
- package/dist/orchestrator/workflow/config.d.ts +97 -0
- package/dist/orchestrator/workflow/config.d.ts.map +1 -0
- package/dist/orchestrator/workflow/config.js +115 -0
- package/dist/orchestrator/workflow/config.js.map +1 -0
- package/dist/orchestrator/workflow/git-analyzer.d.ts +173 -0
- package/dist/orchestrator/workflow/git-analyzer.d.ts.map +1 -0
- package/dist/orchestrator/workflow/git-analyzer.js +473 -0
- package/dist/orchestrator/workflow/git-analyzer.js.map +1 -0
- package/dist/orchestrator/workflow/index.d.ts +21 -0
- package/dist/orchestrator/workflow/index.d.ts.map +1 -0
- package/dist/orchestrator/workflow/index.js +21 -0
- package/dist/orchestrator/workflow/index.js.map +1 -0
- package/dist/orchestrator/workflow/phase-checkpoint.d.ts +38 -0
- package/dist/orchestrator/workflow/phase-checkpoint.d.ts.map +1 -0
- package/dist/orchestrator/workflow/phase-checkpoint.js +75 -0
- package/dist/orchestrator/workflow/phase-checkpoint.js.map +1 -0
- package/dist/orchestrator/workflow/phase-inheritance.d.ts +128 -0
- package/dist/orchestrator/workflow/phase-inheritance.d.ts.map +1 -0
- package/dist/orchestrator/workflow/phase-inheritance.js +266 -0
- package/dist/orchestrator/workflow/phase-inheritance.js.map +1 -0
- package/dist/orchestrator/workflow/result-fusion.d.ts +117 -0
- package/dist/orchestrator/workflow/result-fusion.d.ts.map +1 -0
- package/dist/orchestrator/workflow/result-fusion.js +246 -0
- package/dist/orchestrator/workflow/result-fusion.js.map +1 -0
- package/dist/orchestrator/workflow/templates.d.ts +116 -0
- package/dist/orchestrator/workflow/templates.d.ts.map +1 -0
- package/dist/orchestrator/workflow/templates.js +546 -0
- package/dist/orchestrator/workflow/templates.js.map +1 -0
- package/dist/orchestrator/workflow/test-linker.d.ts +152 -0
- package/dist/orchestrator/workflow/test-linker.d.ts.map +1 -0
- package/dist/orchestrator/workflow/test-linker.js +342 -0
- package/dist/orchestrator/workflow/test-linker.js.map +1 -0
- package/dist/orchestrator/workflow/types.d.ts +202 -0
- package/dist/orchestrator/workflow/types.d.ts.map +1 -0
- package/dist/orchestrator/workflow/types.js +4 -0
- package/dist/orchestrator/workflow/types.js.map +1 -0
- package/dist/orchestrator/workflow/visualizer.d.ts +56 -0
- package/dist/orchestrator/workflow/visualizer.d.ts.map +1 -0
- package/dist/orchestrator/workflow/visualizer.js +300 -0
- package/dist/orchestrator/workflow/visualizer.js.map +1 -0
- package/dist/orchestrator/workflow/workflow-context.d.ts +50 -0
- package/dist/orchestrator/workflow/workflow-context.d.ts.map +1 -0
- package/dist/orchestrator/workflow/workflow-context.js +105 -0
- package/dist/orchestrator/workflow/workflow-context.js.map +1 -0
- package/dist/orchestrator/workflow/workflow-orchestrator.d.ts +126 -0
- package/dist/orchestrator/workflow/workflow-orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/workflow/workflow-orchestrator.js +489 -0
- package/dist/orchestrator/workflow/workflow-orchestrator.js.map +1 -0
- package/dist/orchestrator/workflow/workflow-persistence.d.ts +38 -0
- package/dist/orchestrator/workflow/workflow-persistence.d.ts.map +1 -0
- package/dist/orchestrator/workflow/workflow-persistence.js +166 -0
- package/dist/orchestrator/workflow/workflow-persistence.js.map +1 -0
- package/dist/parser/implementations/fast-parser.d.ts +65 -0
- package/dist/parser/implementations/fast-parser.d.ts.map +1 -0
- package/dist/parser/implementations/fast-parser.js +299 -0
- package/dist/parser/implementations/fast-parser.js.map +1 -0
- package/dist/parser/implementations/smart-parser.d.ts +220 -0
- package/dist/parser/implementations/smart-parser.d.ts.map +1 -0
- package/dist/parser/implementations/smart-parser.js +1536 -0
- package/dist/parser/implementations/smart-parser.js.map +1 -0
- package/dist/parser/implementations/tree-sitter-parser.d.ts +57 -0
- package/dist/parser/implementations/tree-sitter-parser.d.ts.map +1 -0
- package/dist/parser/implementations/tree-sitter-parser.js +375 -0
- package/dist/parser/implementations/tree-sitter-parser.js.map +1 -0
- package/dist/parser/index.d.ts +19 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +449 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/interfaces/IParser.d.ts +218 -0
- package/dist/parser/interfaces/IParser.d.ts.map +1 -0
- package/dist/parser/interfaces/IParser.js +22 -0
- package/dist/parser/interfaces/IParser.js.map +1 -0
- package/dist/plugins/built-in/call-graph.d.ts +38 -0
- package/dist/plugins/built-in/call-graph.d.ts.map +1 -0
- package/dist/plugins/built-in/call-graph.js +135 -0
- package/dist/plugins/built-in/call-graph.js.map +1 -0
- package/dist/plugins/built-in/complexity-analyzer.d.ts +45 -0
- package/dist/plugins/built-in/complexity-analyzer.d.ts.map +1 -0
- package/dist/plugins/built-in/complexity-analyzer.js +155 -0
- package/dist/plugins/built-in/complexity-analyzer.js.map +1 -0
- package/dist/plugins/index.d.ts +34 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +103 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/plugin-loader.d.ts +22 -0
- package/dist/plugins/plugin-loader.d.ts.map +1 -0
- package/dist/plugins/plugin-loader.js +200 -0
- package/dist/plugins/plugin-loader.js.map +1 -0
- package/dist/plugins/plugin-registry.d.ts +20 -0
- package/dist/plugins/plugin-registry.d.ts.map +1 -0
- package/dist/plugins/plugin-registry.js +143 -0
- package/dist/plugins/plugin-registry.js.map +1 -0
- package/dist/plugins/types.d.ts +72 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +5 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/types/index.d.ts +373 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/watcher/daemon.d.ts +64 -0
- package/dist/watcher/daemon.d.ts.map +1 -0
- package/dist/watcher/daemon.js +189 -0
- package/dist/watcher/daemon.js.map +1 -0
- package/dist/watcher/file-watcher.d.ts +70 -0
- package/dist/watcher/file-watcher.d.ts.map +1 -0
- package/dist/watcher/file-watcher.js +127 -0
- package/dist/watcher/file-watcher.js.map +1 -0
- package/dist/watcher/index.d.ts +5 -0
- package/dist/watcher/index.d.ts.map +1 -0
- package/dist/watcher/index.js +6 -0
- package/dist/watcher/index.js.map +1 -0
- package/dist/watcher/watch-worker.d.ts +2 -0
- package/dist/watcher/watch-worker.d.ts.map +1 -0
- package/dist/watcher/watch-worker.js +57 -0
- package/dist/watcher/watch-worker.js.map +1 -0
- package/dist/worker/index.d.ts +76 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +155 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/parse-worker.d.ts +2 -0
- package/dist/worker/parse-worker.d.ts.map +1 -0
- package/dist/worker/parse-worker.js +202 -0
- package/dist/worker/parse-worker.js.map +1 -0
- package/mycodemap.config.schema.json +42 -0
- package/package.json +69 -0
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
export type SymbolKind = 'function' | 'class' | 'interface' | 'type' | 'enum' | 'variable' | 'constant' | 'namespace' | 'decorator' | 'method' | 'property' | 'parameter';
|
|
2
|
+
export interface SourceLocation {
|
|
3
|
+
file: string;
|
|
4
|
+
line: number;
|
|
5
|
+
column: number;
|
|
6
|
+
endLine?: number;
|
|
7
|
+
endColumn?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface DecoratorInfo {
|
|
10
|
+
name: string;
|
|
11
|
+
params?: any;
|
|
12
|
+
target: 'class' | 'method' | 'property' | 'parameter';
|
|
13
|
+
}
|
|
14
|
+
export interface ParameterInfo {
|
|
15
|
+
name: string;
|
|
16
|
+
type: string;
|
|
17
|
+
optional: boolean;
|
|
18
|
+
defaultValue?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface CallInfo {
|
|
21
|
+
callee: string;
|
|
22
|
+
line: number;
|
|
23
|
+
column?: number;
|
|
24
|
+
}
|
|
25
|
+
export type CodeSnippetType = 'if' | 'loop' | 'try' | 'switch' | 'early-return' | 'guard';
|
|
26
|
+
export interface CodeSnippet {
|
|
27
|
+
type: CodeSnippetType;
|
|
28
|
+
lines: string;
|
|
29
|
+
lineStart: number;
|
|
30
|
+
lineEnd: number;
|
|
31
|
+
description?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface FunctionSignature {
|
|
34
|
+
parameters: ParameterInfo[];
|
|
35
|
+
returnType: string;
|
|
36
|
+
genericParams?: string[];
|
|
37
|
+
async: boolean;
|
|
38
|
+
calls?: CallInfo[];
|
|
39
|
+
bodySnippets?: CodeSnippet[];
|
|
40
|
+
}
|
|
41
|
+
export interface MemberInfo {
|
|
42
|
+
name: string;
|
|
43
|
+
kind: 'property' | 'method' | 'getter' | 'setter';
|
|
44
|
+
type: string;
|
|
45
|
+
visibility: 'public' | 'private' | 'protected' | 'internal';
|
|
46
|
+
optional: boolean;
|
|
47
|
+
static?: boolean;
|
|
48
|
+
abstract?: boolean;
|
|
49
|
+
readonly?: boolean;
|
|
50
|
+
signature?: FunctionSignature;
|
|
51
|
+
}
|
|
52
|
+
export interface JSDocTag {
|
|
53
|
+
name: string;
|
|
54
|
+
text?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface JSDocComment {
|
|
57
|
+
description: string;
|
|
58
|
+
tags: JSDocTag[];
|
|
59
|
+
params: Array<{
|
|
60
|
+
name: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
type?: string;
|
|
63
|
+
}>;
|
|
64
|
+
returns?: {
|
|
65
|
+
description?: string;
|
|
66
|
+
type?: string;
|
|
67
|
+
};
|
|
68
|
+
examples: string[];
|
|
69
|
+
deprecated?: string;
|
|
70
|
+
since?: string;
|
|
71
|
+
see: string[];
|
|
72
|
+
}
|
|
73
|
+
export interface ModuleSymbol {
|
|
74
|
+
id: string;
|
|
75
|
+
name: string;
|
|
76
|
+
kind: SymbolKind;
|
|
77
|
+
location: SourceLocation;
|
|
78
|
+
visibility: 'public' | 'private' | 'protected' | 'internal';
|
|
79
|
+
documentation?: string;
|
|
80
|
+
jsdoc?: JSDocComment;
|
|
81
|
+
relatedSymbols: string[];
|
|
82
|
+
decorators?: DecoratorInfo[];
|
|
83
|
+
signature?: FunctionSignature;
|
|
84
|
+
members?: MemberInfo[];
|
|
85
|
+
type?: string;
|
|
86
|
+
extends?: string[];
|
|
87
|
+
implements?: string[];
|
|
88
|
+
}
|
|
89
|
+
export interface ImportInfo {
|
|
90
|
+
source: string;
|
|
91
|
+
sourceType: 'relative' | 'absolute' | 'node_module' | 'alias';
|
|
92
|
+
specifiers: ImportSpecifier[];
|
|
93
|
+
isTypeOnly: boolean;
|
|
94
|
+
isReExport?: boolean;
|
|
95
|
+
}
|
|
96
|
+
export interface ImportSpecifier {
|
|
97
|
+
name: string;
|
|
98
|
+
alias?: string;
|
|
99
|
+
isTypeOnly: boolean;
|
|
100
|
+
}
|
|
101
|
+
export interface ExportInfo {
|
|
102
|
+
name: string;
|
|
103
|
+
kind: SymbolKind;
|
|
104
|
+
isDefault: boolean;
|
|
105
|
+
isTypeOnly: boolean;
|
|
106
|
+
origin?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface ModuleInfo {
|
|
109
|
+
id: string;
|
|
110
|
+
path: string;
|
|
111
|
+
absolutePath: string;
|
|
112
|
+
type: 'source' | 'test' | 'config' | 'type';
|
|
113
|
+
stats: {
|
|
114
|
+
lines: number;
|
|
115
|
+
codeLines: number;
|
|
116
|
+
commentLines: number;
|
|
117
|
+
blankLines: number;
|
|
118
|
+
};
|
|
119
|
+
exports: ExportInfo[];
|
|
120
|
+
imports: ImportInfo[];
|
|
121
|
+
overview?: string;
|
|
122
|
+
symbols: ModuleSymbol[];
|
|
123
|
+
dependencies: string[];
|
|
124
|
+
dependents: string[];
|
|
125
|
+
/** 复杂度指标 */
|
|
126
|
+
complexity?: {
|
|
127
|
+
cyclomatic: number;
|
|
128
|
+
cognitive: number;
|
|
129
|
+
maintainability: number;
|
|
130
|
+
details?: {
|
|
131
|
+
functions: Array<{
|
|
132
|
+
name: string;
|
|
133
|
+
cyclomatic: number;
|
|
134
|
+
cognitive: number;
|
|
135
|
+
lines: number;
|
|
136
|
+
}>;
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
/** 调用图 */
|
|
140
|
+
callGraph?: {
|
|
141
|
+
calls: Array<{
|
|
142
|
+
caller: string;
|
|
143
|
+
callee: string;
|
|
144
|
+
line: number;
|
|
145
|
+
}>;
|
|
146
|
+
recursive: string[];
|
|
147
|
+
callCounts: Record<string, number>;
|
|
148
|
+
crossFileCalls?: CrossFileCall[];
|
|
149
|
+
};
|
|
150
|
+
/** 完整类型信息 */
|
|
151
|
+
typeInfo?: {
|
|
152
|
+
typeDefinitions: Array<{
|
|
153
|
+
name: string;
|
|
154
|
+
kind: 'interface' | 'type' | 'enum' | 'class' | 'alias';
|
|
155
|
+
members: Array<{
|
|
156
|
+
name: string;
|
|
157
|
+
type: string;
|
|
158
|
+
optional: boolean;
|
|
159
|
+
}>;
|
|
160
|
+
}>;
|
|
161
|
+
genericParams: Array<{
|
|
162
|
+
name: string;
|
|
163
|
+
extends?: string;
|
|
164
|
+
default?: string;
|
|
165
|
+
}>;
|
|
166
|
+
crossFileRefs: Array<{
|
|
167
|
+
symbol: string;
|
|
168
|
+
file: string;
|
|
169
|
+
line: number;
|
|
170
|
+
}>;
|
|
171
|
+
unionTypes: string[];
|
|
172
|
+
intersectionTypes: string[];
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
export interface ProjectSummary {
|
|
176
|
+
totalFiles: number;
|
|
177
|
+
totalLines: number;
|
|
178
|
+
totalModules: number;
|
|
179
|
+
totalExports: number;
|
|
180
|
+
totalTypes: number;
|
|
181
|
+
}
|
|
182
|
+
export interface ProjectInfo {
|
|
183
|
+
name: string;
|
|
184
|
+
rootDir: string;
|
|
185
|
+
tsconfigPath?: string;
|
|
186
|
+
packageManager: 'npm' | 'yarn' | 'pnpm' | 'bun';
|
|
187
|
+
}
|
|
188
|
+
export interface DependencyNode {
|
|
189
|
+
id: string;
|
|
190
|
+
path: string;
|
|
191
|
+
category: 'core' | 'feature' | 'utility' | 'external';
|
|
192
|
+
}
|
|
193
|
+
export interface DependencyEdge {
|
|
194
|
+
from: string;
|
|
195
|
+
to: string;
|
|
196
|
+
type: 'import' | 'inherit' | 'implement' | 'call' | 'type-ref';
|
|
197
|
+
weight: number;
|
|
198
|
+
}
|
|
199
|
+
export interface DependencyGraph {
|
|
200
|
+
nodes: DependencyNode[];
|
|
201
|
+
edges: DependencyEdge[];
|
|
202
|
+
}
|
|
203
|
+
export interface CodeMap {
|
|
204
|
+
version: string;
|
|
205
|
+
generatedAt: string;
|
|
206
|
+
project: ProjectInfo;
|
|
207
|
+
summary: ProjectSummary;
|
|
208
|
+
modules: ModuleInfo[];
|
|
209
|
+
dependencies: DependencyGraph;
|
|
210
|
+
actualMode?: 'fast' | 'smart';
|
|
211
|
+
}
|
|
212
|
+
export interface AnalysisOptions {
|
|
213
|
+
mode: 'fast' | 'smart' | 'hybrid';
|
|
214
|
+
rootDir: string;
|
|
215
|
+
include?: string[];
|
|
216
|
+
exclude?: string[];
|
|
217
|
+
output?: string;
|
|
218
|
+
watch?: boolean;
|
|
219
|
+
actualMode?: 'fast' | 'smart';
|
|
220
|
+
}
|
|
221
|
+
export interface FileChange {
|
|
222
|
+
path: string;
|
|
223
|
+
type: 'added' | 'modified' | 'deleted' | 'renamed';
|
|
224
|
+
oldHash?: string;
|
|
225
|
+
newHash?: string;
|
|
226
|
+
}
|
|
227
|
+
export interface CodemapConfig {
|
|
228
|
+
mode: 'fast' | 'smart';
|
|
229
|
+
include: string[];
|
|
230
|
+
exclude: string[];
|
|
231
|
+
output: string;
|
|
232
|
+
watch: boolean;
|
|
233
|
+
}
|
|
234
|
+
export interface GlobalSymbolInfo {
|
|
235
|
+
name: string;
|
|
236
|
+
kind: SymbolKind;
|
|
237
|
+
filePath: string;
|
|
238
|
+
line: number;
|
|
239
|
+
column: number;
|
|
240
|
+
isExported: boolean;
|
|
241
|
+
isDefault?: boolean;
|
|
242
|
+
}
|
|
243
|
+
export interface CrossFileCall {
|
|
244
|
+
callee: string;
|
|
245
|
+
calleeLocation: SourceLocation;
|
|
246
|
+
callerLocation: SourceLocation;
|
|
247
|
+
importPath?: string;
|
|
248
|
+
resolved: boolean;
|
|
249
|
+
}
|
|
250
|
+
export interface GlobalSymbolIndex {
|
|
251
|
+
symbols: Map<string, GlobalSymbolInfo[]>;
|
|
252
|
+
files: Map<string, FileSymbolIndex>;
|
|
253
|
+
}
|
|
254
|
+
export interface FileSymbolIndex {
|
|
255
|
+
filePath: string;
|
|
256
|
+
imports: Map<string, ImportInfo>;
|
|
257
|
+
exports: Map<string, GlobalSymbolInfo>;
|
|
258
|
+
localSymbols: Map<string, GlobalSymbolInfo>;
|
|
259
|
+
crossFileCalls: CrossFileCall[];
|
|
260
|
+
}
|
|
261
|
+
export interface CallChain {
|
|
262
|
+
entries: CallChainEntry[];
|
|
263
|
+
depth: number;
|
|
264
|
+
}
|
|
265
|
+
export interface CallChainEntry {
|
|
266
|
+
file: string;
|
|
267
|
+
symbol: string;
|
|
268
|
+
line: number;
|
|
269
|
+
column: number;
|
|
270
|
+
callType: 'local' | 'cross-file' | 'external';
|
|
271
|
+
}
|
|
272
|
+
export interface TypeMember {
|
|
273
|
+
name: string;
|
|
274
|
+
type: string;
|
|
275
|
+
optional: boolean;
|
|
276
|
+
visibility: 'public' | 'private' | 'protected';
|
|
277
|
+
isReadonly?: boolean;
|
|
278
|
+
}
|
|
279
|
+
export interface TypeDefinition {
|
|
280
|
+
name: string;
|
|
281
|
+
kind: 'interface' | 'type' | 'enum' | 'class' | 'alias';
|
|
282
|
+
members: TypeMember[];
|
|
283
|
+
extends?: string[];
|
|
284
|
+
implements?: string[];
|
|
285
|
+
genericParams?: GenericParam[];
|
|
286
|
+
description?: string;
|
|
287
|
+
}
|
|
288
|
+
export interface GenericParam {
|
|
289
|
+
name: string;
|
|
290
|
+
extends?: string;
|
|
291
|
+
default?: string;
|
|
292
|
+
constraint?: string;
|
|
293
|
+
variance?: 'in' | 'out' | 'inout';
|
|
294
|
+
}
|
|
295
|
+
export interface ConditionalTypeInfo {
|
|
296
|
+
checkType: string;
|
|
297
|
+
extendsType: string;
|
|
298
|
+
trueType: string;
|
|
299
|
+
falseType: string;
|
|
300
|
+
}
|
|
301
|
+
export interface MappedTypeInfo {
|
|
302
|
+
typeParameter: string;
|
|
303
|
+
constraint: string;
|
|
304
|
+
valueType: string;
|
|
305
|
+
asType?: string;
|
|
306
|
+
modifiers?: ('readonly' | 'optional' | 'nullable')[];
|
|
307
|
+
readonly?: 'add' | 'remove';
|
|
308
|
+
optional?: 'add' | 'remove';
|
|
309
|
+
}
|
|
310
|
+
export interface TemplateLiteralTypeInfo {
|
|
311
|
+
head: string;
|
|
312
|
+
spans: Array<{
|
|
313
|
+
type: string;
|
|
314
|
+
literal: string;
|
|
315
|
+
}>;
|
|
316
|
+
}
|
|
317
|
+
export interface AdvancedTypeInfo {
|
|
318
|
+
conditionalTypes?: ConditionalTypeInfo[];
|
|
319
|
+
mappedTypes?: MappedTypeInfo[];
|
|
320
|
+
templateLiteralTypes?: TemplateLiteralTypeInfo[];
|
|
321
|
+
indexedAccessTypes?: string[];
|
|
322
|
+
inferredTypes?: string[];
|
|
323
|
+
}
|
|
324
|
+
export interface CrossFileRef {
|
|
325
|
+
symbol: string;
|
|
326
|
+
file: string;
|
|
327
|
+
line: number;
|
|
328
|
+
column?: number;
|
|
329
|
+
exportName?: string;
|
|
330
|
+
}
|
|
331
|
+
export interface FullTypeInfo {
|
|
332
|
+
typeDefinitions: TypeDefinition[];
|
|
333
|
+
genericParams: GenericParam[];
|
|
334
|
+
crossFileRefs: CrossFileRef[];
|
|
335
|
+
unionTypes: string[];
|
|
336
|
+
intersectionTypes: string[];
|
|
337
|
+
typeAliases: Array<{
|
|
338
|
+
name: string;
|
|
339
|
+
type: string;
|
|
340
|
+
genericParams?: GenericParam[];
|
|
341
|
+
}>;
|
|
342
|
+
}
|
|
343
|
+
export interface VisualizationNode {
|
|
344
|
+
id: string;
|
|
345
|
+
label: string;
|
|
346
|
+
path: string;
|
|
347
|
+
category: 'core' | 'feature' | 'utility' | 'external' | 'entry';
|
|
348
|
+
type: 'source' | 'test' | 'config' | 'type';
|
|
349
|
+
exportCount: number;
|
|
350
|
+
dependencyCount: number;
|
|
351
|
+
}
|
|
352
|
+
export interface VisualizationEdge {
|
|
353
|
+
from: string;
|
|
354
|
+
to: string;
|
|
355
|
+
type: 'import' | 'inherit' | 'implement' | 'call' | 'type-ref';
|
|
356
|
+
label?: string;
|
|
357
|
+
}
|
|
358
|
+
export interface MermaidConfig {
|
|
359
|
+
graphType: 'graph' | 'flowchart' | 'mindmap';
|
|
360
|
+
direction: 'TB' | 'BT' | 'LR' | 'RL';
|
|
361
|
+
nodeShape: 'box' | 'round' | 'stadium' | 'cylinder';
|
|
362
|
+
showLabels: boolean;
|
|
363
|
+
maxNodes: number;
|
|
364
|
+
maxEdges: number;
|
|
365
|
+
}
|
|
366
|
+
export interface VisualizationConfig {
|
|
367
|
+
mermaid: MermaidConfig;
|
|
368
|
+
includeTestFiles: boolean;
|
|
369
|
+
includeExternalDeps: boolean;
|
|
370
|
+
showComplexity: boolean;
|
|
371
|
+
outputFormat: 'markdown' | 'html' | 'json';
|
|
372
|
+
}
|
|
373
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,uCAAuC;AACvC,+CAA+C;AAC/C,iBAAiB;AACjB,+CAA+C"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Watch Daemon 配置
|
|
3
|
+
*/
|
|
4
|
+
export interface WatchDaemonConfig {
|
|
5
|
+
/** 监听目录 */
|
|
6
|
+
rootDir: string;
|
|
7
|
+
/** 输出目录 */
|
|
8
|
+
outputDir: string;
|
|
9
|
+
/** 分析模式 */
|
|
10
|
+
mode: 'fast' | 'smart';
|
|
11
|
+
/** PID 文件路径 */
|
|
12
|
+
pidFile?: string;
|
|
13
|
+
/** 日志文件路径 */
|
|
14
|
+
logFile?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Watch Daemon 状态
|
|
18
|
+
*/
|
|
19
|
+
export interface WatchDaemonStatus {
|
|
20
|
+
pid: number;
|
|
21
|
+
rootDir: string;
|
|
22
|
+
outputDir: string;
|
|
23
|
+
mode: string;
|
|
24
|
+
startedAt: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Watch Daemon - 后台守护进程管理
|
|
28
|
+
*/
|
|
29
|
+
export declare class WatchDaemon {
|
|
30
|
+
private process;
|
|
31
|
+
private config;
|
|
32
|
+
private pidFile;
|
|
33
|
+
private logFile;
|
|
34
|
+
constructor(config: WatchDaemonConfig);
|
|
35
|
+
/**
|
|
36
|
+
* 启动守护进程
|
|
37
|
+
*/
|
|
38
|
+
start(): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* 停止守护进程
|
|
41
|
+
*/
|
|
42
|
+
stop(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* 检查守护进程是否在运行
|
|
45
|
+
*/
|
|
46
|
+
isRunning(): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* 获取守护进程状态
|
|
49
|
+
*/
|
|
50
|
+
getStatus(): Promise<WatchDaemonStatus | null>;
|
|
51
|
+
/**
|
|
52
|
+
* 等待守护进程启动
|
|
53
|
+
*/
|
|
54
|
+
private waitForStart;
|
|
55
|
+
/**
|
|
56
|
+
* 等待守护进程停止
|
|
57
|
+
*/
|
|
58
|
+
private waitForStop;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 创建 Watch Daemon 实例
|
|
62
|
+
*/
|
|
63
|
+
export declare function createWatchDaemon(config: WatchDaemonConfig): WatchDaemon;
|
|
64
|
+
//# sourceMappingURL=daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../../src/watcher/daemon.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,iBAAiB;IAMrC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBnC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAqBpD;;OAEG;IACH,OAAO,CAAC,YAAY;IA0BpB;;OAEG;IACH,OAAO,CAAC,WAAW;CAmBpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CAExE"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
// ============================================
|
|
2
|
+
// Watch Daemon - 守护进程管理
|
|
3
|
+
// ============================================
|
|
4
|
+
import { fork } from 'child_process';
|
|
5
|
+
import * as path from 'path';
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import { fileURLToPath } from 'url';
|
|
8
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
+
const __dirname = path.dirname(__filename);
|
|
10
|
+
/**
|
|
11
|
+
* Watch Daemon - 后台守护进程管理
|
|
12
|
+
*/
|
|
13
|
+
export class WatchDaemon {
|
|
14
|
+
process = null;
|
|
15
|
+
config;
|
|
16
|
+
pidFile;
|
|
17
|
+
logFile;
|
|
18
|
+
constructor(config) {
|
|
19
|
+
this.config = config;
|
|
20
|
+
this.pidFile = config.pidFile || path.join(config.outputDir, 'watch.pid');
|
|
21
|
+
this.logFile = config.logFile || path.join(config.outputDir, 'watch.log');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 启动守护进程
|
|
25
|
+
*/
|
|
26
|
+
async start() {
|
|
27
|
+
// 检查是否已运行
|
|
28
|
+
if (await this.isRunning()) {
|
|
29
|
+
throw new Error('Watch daemon 已在运行中');
|
|
30
|
+
}
|
|
31
|
+
// 确保输出目录存在
|
|
32
|
+
const outputDir = path.resolve(this.config.rootDir, this.config.outputDir);
|
|
33
|
+
if (!fs.existsSync(outputDir)) {
|
|
34
|
+
fs.mkdirSync(outputDir, { recursive: true });
|
|
35
|
+
}
|
|
36
|
+
// 解析 worker 路径
|
|
37
|
+
const workerPath = path.join(__dirname, 'watch-worker.js');
|
|
38
|
+
// 使用 fork 启动子进程
|
|
39
|
+
this.process = fork(workerPath, {
|
|
40
|
+
cwd: this.config.rootDir,
|
|
41
|
+
detached: true,
|
|
42
|
+
stdio: ['ignore', 'pipe', 'pipe', 'ipc']
|
|
43
|
+
});
|
|
44
|
+
// 发送配置到 worker
|
|
45
|
+
this.process.send({
|
|
46
|
+
type: 'config',
|
|
47
|
+
payload: {
|
|
48
|
+
rootDir: this.config.rootDir,
|
|
49
|
+
outputDir: this.config.outputDir,
|
|
50
|
+
mode: this.config.mode
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
// 脱离父进程
|
|
54
|
+
this.process.unref();
|
|
55
|
+
// 保存 PID
|
|
56
|
+
const pid = this.process.pid;
|
|
57
|
+
fs.writeFileSync(this.pidFile, String(pid));
|
|
58
|
+
// 设置日志输出
|
|
59
|
+
if (this.process.stdout) {
|
|
60
|
+
const logStream = fs.createWriteStream(this.logFile, { flags: 'a' });
|
|
61
|
+
this.process.stdout.pipe(logStream);
|
|
62
|
+
}
|
|
63
|
+
if (this.process.stderr) {
|
|
64
|
+
const logStream = fs.createWriteStream(this.logFile, { flags: 'a' });
|
|
65
|
+
this.process.stderr.pipe(logStream);
|
|
66
|
+
}
|
|
67
|
+
// 等待进程启动完成
|
|
68
|
+
await this.waitForStart(5000);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 停止守护进程
|
|
72
|
+
*/
|
|
73
|
+
async stop() {
|
|
74
|
+
if (!fs.existsSync(this.pidFile)) {
|
|
75
|
+
throw new Error('Watch daemon 未运行');
|
|
76
|
+
}
|
|
77
|
+
const pid = parseInt(fs.readFileSync(this.pidFile, 'utf-8'), 10);
|
|
78
|
+
try {
|
|
79
|
+
process.kill(pid, 'SIGTERM');
|
|
80
|
+
// 等待进程退出
|
|
81
|
+
await this.waitForStop(pid, 5000);
|
|
82
|
+
// 删除 PID 文件
|
|
83
|
+
fs.unlinkSync(this.pidFile);
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
// 如果进程不存在,删除 PID 文件
|
|
87
|
+
if (fs.existsSync(this.pidFile)) {
|
|
88
|
+
fs.unlinkSync(this.pidFile);
|
|
89
|
+
}
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* 检查守护进程是否在运行
|
|
95
|
+
*/
|
|
96
|
+
async isRunning() {
|
|
97
|
+
if (!fs.existsSync(this.pidFile)) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
const pid = parseInt(fs.readFileSync(this.pidFile, 'utf-8'), 10);
|
|
101
|
+
try {
|
|
102
|
+
process.kill(pid, 0);
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// 进程不存在,删除 stale PID 文件
|
|
107
|
+
fs.unlinkSync(this.pidFile);
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 获取守护进程状态
|
|
113
|
+
*/
|
|
114
|
+
async getStatus() {
|
|
115
|
+
if (!fs.existsSync(this.pidFile)) {
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const pid = parseInt(fs.readFileSync(this.pidFile, 'utf-8'), 10);
|
|
119
|
+
try {
|
|
120
|
+
process.kill(pid, 0);
|
|
121
|
+
return {
|
|
122
|
+
pid,
|
|
123
|
+
rootDir: this.config.rootDir,
|
|
124
|
+
outputDir: this.config.outputDir,
|
|
125
|
+
mode: this.config.mode,
|
|
126
|
+
startedAt: fs.statSync(this.pidFile).mtime.toISOString()
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* 等待守护进程启动
|
|
135
|
+
*/
|
|
136
|
+
waitForStart(timeout) {
|
|
137
|
+
return new Promise((resolve, reject) => {
|
|
138
|
+
const timer = setTimeout(() => {
|
|
139
|
+
// 超时后检查进程是否仍在运行
|
|
140
|
+
if (this.process && !this.process.killed) {
|
|
141
|
+
// 进程仍在运行,认为启动成功
|
|
142
|
+
resolve();
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
reject(new Error('Watch daemon 启动超时'));
|
|
146
|
+
}
|
|
147
|
+
}, timeout);
|
|
148
|
+
// 检查进程状态
|
|
149
|
+
if (this.process) {
|
|
150
|
+
this.process.on('spawn', () => {
|
|
151
|
+
clearTimeout(timer);
|
|
152
|
+
resolve();
|
|
153
|
+
});
|
|
154
|
+
this.process.on('error', (err) => {
|
|
155
|
+
clearTimeout(timer);
|
|
156
|
+
reject(err);
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* 等待守护进程停止
|
|
163
|
+
*/
|
|
164
|
+
waitForStop(pid, timeout) {
|
|
165
|
+
return new Promise((resolve, reject) => {
|
|
166
|
+
const timer = setTimeout(() => {
|
|
167
|
+
reject(new Error('Watch daemon 停止超时'));
|
|
168
|
+
}, timeout);
|
|
169
|
+
const checkStopped = () => {
|
|
170
|
+
try {
|
|
171
|
+
process.kill(pid, 0);
|
|
172
|
+
setTimeout(checkStopped, 100);
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
clearTimeout(timer);
|
|
176
|
+
resolve();
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
checkStopped();
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* 创建 Watch Daemon 实例
|
|
185
|
+
*/
|
|
186
|
+
export function createWatchDaemon(config) {
|
|
187
|
+
return new WatchDaemon(config);
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=daemon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/watcher/daemon.ts"],"names":[],"mappings":"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"}
|