agent-ide 0.7.5 → 0.8.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 (137) hide show
  1. package/dist/core/deadcode/dead-code-remover.d.ts +27 -9
  2. package/dist/core/deadcode/dead-code-remover.d.ts.map +1 -1
  3. package/dist/core/deadcode/dead-code-remover.js +100 -26
  4. package/dist/core/deadcode/dead-code-remover.js.map +1 -1
  5. package/dist/core/move/import-resolver.d.ts +0 -3
  6. package/dist/core/move/import-resolver.d.ts.map +1 -1
  7. package/dist/core/move/import-resolver.js +0 -10
  8. package/dist/core/move/import-resolver.js.map +1 -1
  9. package/dist/core/move-member/index.d.ts +1 -1
  10. package/dist/core/move-member/index.d.ts.map +1 -1
  11. package/dist/core/move-member/index.js.map +1 -1
  12. package/dist/core/move-member/move-member-service.d.ts +2 -0
  13. package/dist/core/move-member/move-member-service.d.ts.map +1 -1
  14. package/dist/core/move-member/move-member-service.js +24 -31
  15. package/dist/core/move-member/move-member-service.js.map +1 -1
  16. package/dist/core/move-member/types.d.ts +48 -23
  17. package/dist/core/move-member/types.d.ts.map +1 -1
  18. package/dist/core/move-member/types.js.map +1 -1
  19. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  20. package/dist/core/rename/reference-updater.js +3 -1
  21. package/dist/core/rename/reference-updater.js.map +1 -1
  22. package/dist/core/shared/symbol-finder.d.ts +39 -11
  23. package/dist/core/shared/symbol-finder.d.ts.map +1 -1
  24. package/dist/core/shared/symbol-finder.js +109 -75
  25. package/dist/core/shared/symbol-finder.js.map +1 -1
  26. package/dist/core/snapshot/snapshot-generator.d.ts +11 -0
  27. package/dist/core/snapshot/snapshot-generator.d.ts.map +1 -1
  28. package/dist/core/snapshot/snapshot-generator.js +117 -5
  29. package/dist/core/snapshot/snapshot-generator.js.map +1 -1
  30. package/dist/infrastructure/formatters/diff-generator.js +93 -26
  31. package/dist/infrastructure/formatters/diff-generator.js.map +1 -1
  32. package/dist/infrastructure/formatters/diff-utils.d.ts +24 -0
  33. package/dist/infrastructure/formatters/diff-utils.d.ts.map +1 -0
  34. package/dist/infrastructure/formatters/diff-utils.js +104 -0
  35. package/dist/infrastructure/formatters/diff-utils.js.map +1 -0
  36. package/dist/infrastructure/formatters/preview-converter.d.ts +2 -0
  37. package/dist/infrastructure/formatters/preview-converter.d.ts.map +1 -1
  38. package/dist/infrastructure/formatters/preview-converter.js +43 -5
  39. package/dist/infrastructure/formatters/preview-converter.js.map +1 -1
  40. package/dist/infrastructure/parser/base.d.ts +2 -6
  41. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  42. package/dist/infrastructure/parser/base.js +1 -16
  43. package/dist/infrastructure/parser/base.js.map +1 -1
  44. package/dist/infrastructure/parser/index.d.ts +2 -0
  45. package/dist/infrastructure/parser/index.d.ts.map +1 -1
  46. package/dist/infrastructure/parser/index.js +1 -0
  47. package/dist/infrastructure/parser/index.js.map +1 -1
  48. package/dist/infrastructure/parser/interface.d.ts +197 -0
  49. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  50. package/dist/infrastructure/parser/interface.js +13 -0
  51. package/dist/infrastructure/parser/interface.js.map +1 -1
  52. package/dist/interfaces/cli/commands/cycles.command.js +8 -1
  53. package/dist/interfaces/cli/commands/cycles.command.js.map +1 -1
  54. package/dist/interfaces/cli/commands/deadcode.command.js +7 -1
  55. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  56. package/dist/interfaces/cli/commands/impact.command.js +19 -5
  57. package/dist/interfaces/cli/commands/impact.command.js.map +1 -1
  58. package/dist/interfaces/cli/commands/move-member.command.d.ts.map +1 -1
  59. package/dist/interfaces/cli/commands/move-member.command.js +55 -29
  60. package/dist/interfaces/cli/commands/move-member.command.js.map +1 -1
  61. package/dist/plugins/javascript/code-analyzer.d.ts +68 -0
  62. package/dist/plugins/javascript/code-analyzer.d.ts.map +1 -0
  63. package/dist/plugins/javascript/code-analyzer.js +302 -0
  64. package/dist/plugins/javascript/code-analyzer.js.map +1 -0
  65. package/dist/plugins/javascript/declaration-analyzer.d.ts +58 -0
  66. package/dist/plugins/javascript/declaration-analyzer.d.ts.map +1 -0
  67. package/dist/plugins/javascript/declaration-analyzer.js +367 -0
  68. package/dist/plugins/javascript/declaration-analyzer.js.map +1 -0
  69. package/dist/plugins/javascript/parser.d.ts +21 -36
  70. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  71. package/dist/plugins/javascript/parser.js +55 -321
  72. package/dist/plugins/javascript/parser.js.map +1 -1
  73. package/dist/plugins/javascript/pattern-analyzer.d.ts +33 -0
  74. package/dist/plugins/javascript/pattern-analyzer.d.ts.map +1 -0
  75. package/dist/plugins/javascript/pattern-analyzer.js +142 -0
  76. package/dist/plugins/javascript/pattern-analyzer.js.map +1 -0
  77. package/dist/plugins/javascript/reference-finder.d.ts +38 -0
  78. package/dist/plugins/javascript/reference-finder.d.ts.map +1 -0
  79. package/dist/plugins/javascript/reference-finder.js +210 -0
  80. package/dist/plugins/javascript/reference-finder.js.map +1 -0
  81. package/dist/plugins/javascript/types.d.ts +2 -4
  82. package/dist/plugins/javascript/types.d.ts.map +1 -1
  83. package/dist/plugins/javascript/types.js +4 -12
  84. package/dist/plugins/javascript/types.js.map +1 -1
  85. package/dist/plugins/shared/constants.d.ts +32 -0
  86. package/dist/plugins/shared/constants.d.ts.map +1 -0
  87. package/dist/plugins/shared/constants.js +78 -0
  88. package/dist/plugins/shared/constants.js.map +1 -0
  89. package/dist/plugins/shared/index.d.ts +7 -0
  90. package/dist/plugins/shared/index.d.ts.map +1 -0
  91. package/dist/plugins/shared/index.js +9 -0
  92. package/dist/plugins/shared/index.js.map +1 -0
  93. package/dist/plugins/shared/parser-helpers.d.ts +109 -0
  94. package/dist/plugins/shared/parser-helpers.d.ts.map +1 -0
  95. package/dist/plugins/shared/parser-helpers.js +223 -0
  96. package/dist/plugins/shared/parser-helpers.js.map +1 -0
  97. package/dist/plugins/typescript/declaration-analyzer.d.ts +123 -0
  98. package/dist/plugins/typescript/declaration-analyzer.d.ts.map +1 -0
  99. package/dist/plugins/typescript/declaration-analyzer.js +474 -0
  100. package/dist/plugins/typescript/declaration-analyzer.js.map +1 -0
  101. package/dist/plugins/typescript/dependency-analyzer.d.ts +0 -6
  102. package/dist/plugins/typescript/dependency-analyzer.d.ts.map +1 -1
  103. package/dist/plugins/typescript/dependency-analyzer.js +0 -34
  104. package/dist/plugins/typescript/dependency-analyzer.js.map +1 -1
  105. package/dist/plugins/typescript/index.d.ts +5 -0
  106. package/dist/plugins/typescript/index.d.ts.map +1 -1
  107. package/dist/plugins/typescript/index.js +5 -0
  108. package/dist/plugins/typescript/index.js.map +1 -1
  109. package/dist/plugins/typescript/language-service.d.ts +93 -0
  110. package/dist/plugins/typescript/language-service.d.ts.map +1 -0
  111. package/dist/plugins/typescript/language-service.js +159 -0
  112. package/dist/plugins/typescript/language-service.js.map +1 -0
  113. package/dist/plugins/typescript/parser.d.ts +27 -34
  114. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  115. package/dist/plugins/typescript/parser.js +74 -429
  116. package/dist/plugins/typescript/parser.js.map +1 -1
  117. package/dist/plugins/typescript/pattern-analyzer.d.ts +59 -0
  118. package/dist/plugins/typescript/pattern-analyzer.d.ts.map +1 -0
  119. package/dist/plugins/typescript/pattern-analyzer.js +179 -0
  120. package/dist/plugins/typescript/pattern-analyzer.js.map +1 -0
  121. package/dist/plugins/typescript/reference-finder.d.ts +51 -0
  122. package/dist/plugins/typescript/reference-finder.d.ts.map +1 -0
  123. package/dist/plugins/typescript/reference-finder.js +214 -0
  124. package/dist/plugins/typescript/reference-finder.js.map +1 -0
  125. package/dist/plugins/typescript/scope-analyzer.d.ts +61 -0
  126. package/dist/plugins/typescript/scope-analyzer.d.ts.map +1 -0
  127. package/dist/plugins/typescript/scope-analyzer.js +300 -0
  128. package/dist/plugins/typescript/scope-analyzer.js.map +1 -0
  129. package/dist/plugins/typescript/symbol-extractor.d.ts +5 -0
  130. package/dist/plugins/typescript/symbol-extractor.d.ts.map +1 -1
  131. package/dist/plugins/typescript/symbol-extractor.js +25 -0
  132. package/dist/plugins/typescript/symbol-extractor.js.map +1 -1
  133. package/dist/plugins/typescript/types.d.ts +2 -4
  134. package/dist/plugins/typescript/types.d.ts.map +1 -1
  135. package/dist/plugins/typescript/types.js +4 -12
  136. package/dist/plugins/typescript/types.js.map +1 -1
  137. package/package.json +1 -1
@@ -0,0 +1,142 @@
1
+ /**
2
+ * JavaScript 設計模式分析器
3
+ * 負責識別程式碼中的設計模式(如 Factory Pattern)
4
+ */
5
+ import { parse as babelParse } from '@babel/parser';
6
+ import * as babel from '@babel/types';
7
+ import babelTraverse from '@babel/traverse';
8
+ import { calculateFactoryConfidence, createFactoryPatternInfo } from '../shared/index.js';
9
+ // Handle both ESM and CJS module formats
10
+ const traverse = babelTraverse.default || babelTraverse;
11
+ /**
12
+ * JavaScript 設計模式分析器
13
+ * 識別程式碼中的設計模式,包括 Factory、Singleton 等
14
+ */
15
+ export class PatternAnalyzer {
16
+ /**
17
+ * 識別程式碼中的設計模式
18
+ * JavaScript 沒有型別標註,因此主要依賴:
19
+ * 1. 函數體內的 new 表達式
20
+ * 2. 回傳物件字面量
21
+ * 3. 函數名稱(作為輔助信號)
22
+ */
23
+ identifyPatterns(code) {
24
+ try {
25
+ const ast = babelParse(code, {
26
+ sourceType: 'unambiguous',
27
+ plugins: ['jsx']
28
+ });
29
+ const patterns = [];
30
+ traverse(ast, {
31
+ FunctionDeclaration: (path) => {
32
+ if (path.node.id) {
33
+ const factoryInfo = this.analyzeJSFactoryPattern(path.node.id.name, path.node.body);
34
+ if (factoryInfo) {
35
+ patterns.push(factoryInfo);
36
+ }
37
+ }
38
+ },
39
+ VariableDeclarator: (path) => {
40
+ if (babel.isIdentifier(path.node.id) && path.node.init) {
41
+ const init = path.node.init;
42
+ if (babel.isArrowFunctionExpression(init) || babel.isFunctionExpression(init)) {
43
+ const body = init.body;
44
+ const factoryInfo = babel.isBlockStatement(body)
45
+ ? this.analyzeJSFactoryPattern(path.node.id.name, body)
46
+ : this.analyzeJSFactoryExpression(path.node.id.name, body);
47
+ if (factoryInfo) {
48
+ patterns.push(factoryInfo);
49
+ }
50
+ }
51
+ }
52
+ }
53
+ });
54
+ return patterns;
55
+ }
56
+ catch {
57
+ // 解析失敗,返回 null 讓呼叫端 fallback 到名稱比對
58
+ return null;
59
+ }
60
+ }
61
+ /**
62
+ * 分析 JavaScript 函數是否為 factory 模式
63
+ * 判斷條件:函數體內有 new 表達式或回傳物件字面量
64
+ */
65
+ analyzeJSFactoryPattern(functionName, body) {
66
+ let hasNewExpression = false;
67
+ let hasObjectReturn = false;
68
+ let producedType;
69
+ // 遍歷函數體
70
+ const checkNode = (node) => {
71
+ // 檢查 new 表達式
72
+ if (babel.isNewExpression(node)) {
73
+ hasNewExpression = true;
74
+ // 嘗試提取建構的類別名稱
75
+ if (babel.isIdentifier(node.callee)) {
76
+ producedType = node.callee.name;
77
+ }
78
+ }
79
+ // 檢查 return 語句
80
+ if (babel.isReturnStatement(node) && node.argument) {
81
+ if (babel.isObjectExpression(node.argument)) {
82
+ hasObjectReturn = true;
83
+ producedType = 'Object';
84
+ }
85
+ else if (babel.isNewExpression(node.argument)) {
86
+ hasNewExpression = true;
87
+ if (babel.isIdentifier(node.argument.callee)) {
88
+ producedType = node.argument.callee.name;
89
+ }
90
+ }
91
+ }
92
+ };
93
+ // 遍歷所有語句
94
+ for (const statement of body.body) {
95
+ this.traverseNode(statement, checkNode);
96
+ }
97
+ // 只有當有 factory 行為時才返回(使用共用模組)
98
+ if (hasNewExpression || hasObjectReturn) {
99
+ const confidence = calculateFactoryConfidence(functionName, undefined, hasNewExpression, hasObjectReturn);
100
+ return createFactoryPatternInfo(functionName, confidence, producedType);
101
+ }
102
+ return null;
103
+ }
104
+ /**
105
+ * 分析箭頭函數簡寫的 factory 模式(使用共用模組)
106
+ */
107
+ analyzeJSFactoryExpression(functionName, expr) {
108
+ if (babel.isNewExpression(expr)) {
109
+ const producedType = babel.isIdentifier(expr.callee) ? expr.callee.name : undefined;
110
+ const confidence = calculateFactoryConfidence(functionName, undefined, true, false);
111
+ return createFactoryPatternInfo(functionName, confidence, producedType);
112
+ }
113
+ if (babel.isObjectExpression(expr)) {
114
+ const confidence = calculateFactoryConfidence(functionName, undefined, false, true);
115
+ return createFactoryPatternInfo(functionName, confidence, 'Object');
116
+ }
117
+ return null;
118
+ }
119
+ /**
120
+ * 遞迴遍歷節點
121
+ */
122
+ traverseNode(node, callback) {
123
+ callback(node);
124
+ // 遍歷所有子節點
125
+ for (const key of Object.keys(node)) {
126
+ const value = node[key];
127
+ if (value && typeof value === 'object') {
128
+ if (Array.isArray(value)) {
129
+ for (const item of value) {
130
+ if (item && typeof item === 'object' && 'type' in item) {
131
+ this.traverseNode(item, callback);
132
+ }
133
+ }
134
+ }
135
+ else if ('type' in value) {
136
+ this.traverseNode(value, callback);
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+ //# sourceMappingURL=pattern-analyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-analyzer.js","sourceRoot":"","sources":["../../../src/plugins/javascript/pattern-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * JavaScript 引用查找器
3
+ * 負責作用域感知的符號引用查找和分析
4
+ */
5
+ import { type ScopedFindReferencesOptions, type ScopedReference } from '../../infrastructure/parser/index.js';
6
+ /**
7
+ * JavaScript 引用查找器
8
+ * 使用 Babel 語義分析來精確匹配符號引用
9
+ */
10
+ export declare class ReferenceFinder {
11
+ /**
12
+ * 作用域感知的符號引用查找
13
+ * 使用 Babel 語義分析來精確匹配符號引用,區分不同類別的同名方法
14
+ *
15
+ * @param code 完整的檔案內容
16
+ * @param symbolName 要查找的符號名稱
17
+ * @param options 查找選項(可限定類別等)
18
+ * @returns 符號引用列表,如果無法解析則返回 null
19
+ */
20
+ findScopedReferences(code: string, symbolName: string, options?: ScopedFindReferencesOptions): ScopedReference[] | null;
21
+ /**
22
+ * 分析 JavaScript 標識符引用的詳細資訊
23
+ */
24
+ private analyzeIdentifierReference;
25
+ /**
26
+ * 推斷 JavaScript receiver 的類型名稱
27
+ */
28
+ private inferReceiverType;
29
+ /**
30
+ * 查找 JavaScript 標識符所屬的容器名稱
31
+ */
32
+ private findContainerName;
33
+ /**
34
+ * 將 Babel AST 節點轉換為 Range
35
+ */
36
+ private getNodeRange;
37
+ }
38
+ //# sourceMappingURL=reference-finder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-finder.d.ts","sourceRoot":"","sources":["../../../src/plugins/javascript/reference-finder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,eAAe,EACrB,MAAM,iCAAiC,CAAC;AAqBzC;;;GAGG;AACH,qBAAa,eAAe;IAC1B;;;;;;;;OAQG;IACH,oBAAoB,CAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,2BAA2B,GACpC,eAAe,EAAE,GAAG,IAAI;IA6D3B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAiDlC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+CzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;OAEG;IACH,OAAO,CAAC,YAAY;CAWrB"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * JavaScript 引用查找器
3
+ * 負責作用域感知的符號引用查找和分析
4
+ */
5
+ import { parse as babelParse } from '@babel/parser';
6
+ import * as babel from '@babel/types';
7
+ import babelTraverse from '@babel/traverse';
8
+ import { ScopedReferenceKind } from '../../infrastructure/parser/index.js';
9
+ import { babelLocationToPosition } from './types.js';
10
+ // Handle both ESM and CJS module formats
11
+ const traverse = babelTraverse.default || babelTraverse;
12
+ /**
13
+ * JavaScript 引用查找器
14
+ * 使用 Babel 語義分析來精確匹配符號引用
15
+ */
16
+ export class ReferenceFinder {
17
+ /**
18
+ * 作用域感知的符號引用查找
19
+ * 使用 Babel 語義分析來精確匹配符號引用,區分不同類別的同名方法
20
+ *
21
+ * @param code 完整的檔案內容
22
+ * @param symbolName 要查找的符號名稱
23
+ * @param options 查找選項(可限定類別等)
24
+ * @returns 符號引用列表,如果無法解析則返回 null
25
+ */
26
+ findScopedReferences(code, symbolName, options) {
27
+ try {
28
+ const ast = babelParse(code, {
29
+ sourceType: 'unambiguous',
30
+ plugins: ['jsx']
31
+ });
32
+ const references = [];
33
+ const targetClassName = options?.className;
34
+ const filePath = 'temp.js';
35
+ traverse(ast, {
36
+ Identifier: (path) => {
37
+ if (path.node.name !== symbolName) {
38
+ return;
39
+ }
40
+ // 過濾:跳過物件屬性的 key(非計算屬性)
41
+ const parent = path.parent;
42
+ if (babel.isObjectProperty(parent) && parent.key === path.node && !parent.computed) {
43
+ return;
44
+ }
45
+ // 過濾:跳過 import 的原始名稱
46
+ if (babel.isImportSpecifier(parent) && parent.imported === path.node) {
47
+ return;
48
+ }
49
+ // 分析引用詳情
50
+ const refInfo = this.analyzeIdentifierReference(path, code, targetClassName);
51
+ if (refInfo) {
52
+ // 如果指定了 className,過濾不匹配的引用
53
+ if (targetClassName && refInfo.containerName !== targetClassName) {
54
+ if (refInfo.isMethodCall && refInfo.receiverType !== targetClassName) {
55
+ return;
56
+ }
57
+ }
58
+ const location = {
59
+ filePath,
60
+ range: this.getNodeRange(path.node)
61
+ };
62
+ references.push({
63
+ location,
64
+ kind: refInfo.kind,
65
+ isExactMatch: true,
66
+ containerName: refInfo.containerName
67
+ });
68
+ }
69
+ }
70
+ });
71
+ return references;
72
+ }
73
+ catch {
74
+ // 解析失敗,返回 null 讓呼叫端 fallback 到手動過濾
75
+ return null;
76
+ }
77
+ }
78
+ /**
79
+ * 分析 JavaScript 標識符引用的詳細資訊
80
+ */
81
+ analyzeIdentifierReference(path, code, _targetClassName) {
82
+ const parent = path.parent;
83
+ let kind = ScopedReferenceKind.Read;
84
+ let isMethodCall = false;
85
+ let receiverType;
86
+ // 檢查是否為函式呼叫
87
+ if (babel.isCallExpression(parent) && parent.callee === path.node) {
88
+ kind = ScopedReferenceKind.Call;
89
+ isMethodCall = false;
90
+ }
91
+ // 檢查是否為方法呼叫:obj.method()
92
+ if (babel.isMemberExpression(parent) && parent.property === path.node && !parent.computed) {
93
+ const grandParent = path.parentPath?.parent;
94
+ if (babel.isCallExpression(grandParent) && grandParent.callee === parent) {
95
+ kind = ScopedReferenceKind.Call;
96
+ isMethodCall = true;
97
+ // 嘗試取得 receiver 的類型名稱
98
+ receiverType = this.inferReceiverType(parent.object, code);
99
+ }
100
+ }
101
+ // 檢查是否為寫入(賦值左側)
102
+ if (babel.isAssignmentExpression(parent) && parent.left === path.node) {
103
+ kind = ScopedReferenceKind.Write;
104
+ }
105
+ // 檢查是否為宣告
106
+ if (babel.isVariableDeclarator(parent) && parent.id === path.node) {
107
+ kind = ScopedReferenceKind.Write;
108
+ }
109
+ // 取得所屬容器名稱
110
+ const containerName = this.findContainerName(path);
111
+ return {
112
+ kind,
113
+ containerName,
114
+ isMethodCall,
115
+ receiverType
116
+ };
117
+ }
118
+ /**
119
+ * 推斷 JavaScript receiver 的類型名稱
120
+ */
121
+ inferReceiverType(expression, code) {
122
+ // 1. new 表達式:(new Dog()).bark()
123
+ if (babel.isNewExpression(expression)) {
124
+ if (babel.isIdentifier(expression.callee)) {
125
+ return expression.callee.name;
126
+ }
127
+ }
128
+ // 2. 標識符:需要查找其宣告
129
+ if (babel.isIdentifier(expression)) {
130
+ const varName = expression.name;
131
+ // 簡單解析:查找 const dog = new Dog()
132
+ try {
133
+ const ast = babelParse(code, {
134
+ sourceType: 'unambiguous',
135
+ plugins: ['jsx']
136
+ });
137
+ let result;
138
+ traverse(ast, {
139
+ VariableDeclarator: (path) => {
140
+ if (result) {
141
+ return;
142
+ }
143
+ if (babel.isIdentifier(path.node.id) && path.node.id.name === varName) {
144
+ const init = path.node.init;
145
+ if (init && babel.isNewExpression(init)) {
146
+ if (babel.isIdentifier(init.callee)) {
147
+ result = init.callee.name;
148
+ }
149
+ }
150
+ }
151
+ }
152
+ });
153
+ return result;
154
+ }
155
+ catch {
156
+ return undefined;
157
+ }
158
+ }
159
+ return undefined;
160
+ }
161
+ /**
162
+ * 查找 JavaScript 標識符所屬的容器名稱
163
+ */
164
+ findContainerName(path) {
165
+ let current = path.parentPath;
166
+ while (current) {
167
+ const node = current.node;
168
+ // 類別方法
169
+ if (babel.isClassMethod(node)) {
170
+ const classPath = current.parentPath;
171
+ if (classPath && babel.isClassBody(classPath.node)) {
172
+ const classDecl = classPath.parentPath?.node;
173
+ if (classDecl && babel.isClassDeclaration(classDecl) && classDecl.id) {
174
+ return classDecl.id.name;
175
+ }
176
+ }
177
+ }
178
+ // 類別屬性
179
+ if (babel.isClassProperty(node)) {
180
+ const classPath = current.parentPath;
181
+ if (classPath && babel.isClassBody(classPath.node)) {
182
+ const classDecl = classPath.parentPath?.node;
183
+ if (classDecl && babel.isClassDeclaration(classDecl) && classDecl.id) {
184
+ return classDecl.id.name;
185
+ }
186
+ }
187
+ }
188
+ // 函式宣告
189
+ if (babel.isFunctionDeclaration(node) && node.id) {
190
+ return node.id.name;
191
+ }
192
+ current = current.parentPath;
193
+ }
194
+ return undefined;
195
+ }
196
+ /**
197
+ * 將 Babel AST 節點轉換為 Range
198
+ */
199
+ getNodeRange(node) {
200
+ if (node.loc) {
201
+ return babelLocationToPosition(node.loc);
202
+ }
203
+ // 如果沒有位置資訊,返回預設範圍
204
+ return {
205
+ start: { line: 0, column: 0, offset: 0 },
206
+ end: { line: 0, column: 0, offset: 0 }
207
+ };
208
+ }
209
+ }
210
+ //# sourceMappingURL=reference-finder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reference-finder.js","sourceRoot":"","sources":["../../../src/plugins/javascript/reference-finder.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,10 @@
3
3
  */
4
4
  import type { AST, ASTNode, Position, Range, Symbol } from '../../shared/types/index.js';
5
5
  import { SymbolType } from '../../shared/types/index.js';
6
+ import { isRelativePath } from '../shared/index.js';
6
7
  import * as babel from '@babel/types';
7
8
  import type { ParseResult } from '@babel/parser';
9
+ export { isRelativePath };
8
10
  /**
9
11
  * JavaScript AST 節點包裝器
10
12
  * 包裝 Babel AST 節點
@@ -88,10 +90,6 @@ export declare function isDependencyNode(node: babel.Node): boolean;
88
90
  * 獲取依賴路徑
89
91
  */
90
92
  export declare function getDependencyPath(node: babel.Node): string | undefined;
91
- /**
92
- * 檢查路徑是否為相對路徑
93
- */
94
- export declare function isRelativePath(path: string): boolean;
95
93
  /**
96
94
  * 獲取導入的符號
97
95
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/javascript/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/javascript/types.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,10 @@
2
2
  * JavaScript Parser 特定型別定義
3
3
  */
4
4
  import { SymbolType } from '../../shared/types/index.js';
5
+ import { isRelativePath, isValidUnicodeIdentifier } from '../shared/index.js';
5
6
  import * as babel from '@babel/types';
7
+ // Re-export 共用函數供外部使用
8
+ export { isRelativePath };
6
9
  /**
7
10
  * 預設的 JavaScript 解析選項
8
11
  */
@@ -193,12 +196,6 @@ export function getDependencyPath(node) {
193
196
  }
194
197
  return undefined;
195
198
  }
196
- /**
197
- * 檢查路徑是否為相對路徑
198
- */
199
- export function isRelativePath(path) {
200
- return path.startsWith('./') || path.startsWith('../');
201
- }
202
199
  /**
203
200
  * 獲取導入的符號
204
201
  */
@@ -293,8 +290,6 @@ const JAVASCRIPT_RESERVED_WORDS = new Set([
293
290
  // Literals
294
291
  'null', 'true', 'false'
295
292
  ]);
296
- /** 預編譯的 Unicode 識別符正則表達式 */
297
- const JAVASCRIPT_UNICODE_IDENTIFIER_PATTERN = /^[\p{ID_Start}_$][\p{ID_Continue}$]*$/u;
298
293
  /**
299
294
  * 驗證識別符名稱
300
295
  *
@@ -307,10 +302,7 @@ const JAVASCRIPT_UNICODE_IDENTIFIER_PATTERN = /^[\p{ID_Start}_$][\p{ID_Continue}
307
302
  * - let π = 3.14159 // 合法
308
303
  */
309
304
  export function isValidIdentifier(name) {
310
- if (!name || name.length === 0) {
311
- return false;
312
- }
313
- return JAVASCRIPT_UNICODE_IDENTIFIER_PATTERN.test(name) && !isReservedWord(name);
305
+ return isValidUnicodeIdentifier(name) && !isReservedWord(name);
314
306
  }
315
307
  /**
316
308
  * 檢查是否為保留字
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/javascript/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/javascript/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Parser 共用常數
3
+ * TypeScript 和 JavaScript Parser 共享的設定值
4
+ */
5
+ /**
6
+ * 行號匹配的容差值(允許 JSDoc 造成的偏移)
7
+ * JSDoc 可能跨越多行,因此需要容差來正確匹配目標宣告
8
+ */
9
+ export declare const LINE_TOLERANCE = 10;
10
+ /**
11
+ * 通用排除模式(適用於所有語言)
12
+ */
13
+ export declare const COMMON_EXCLUDE_PATTERNS: readonly ["node_modules/**", ".git/**", "dist/**", "build/**", "coverage/**", ".next/**", ".nuxt/**", "out/**", ".cache/**", ".turbo/**"];
14
+ /**
15
+ * TypeScript 特定排除模式
16
+ */
17
+ export declare const TYPESCRIPT_EXCLUDE_PATTERNS: readonly ["node_modules/**", ".git/**", "dist/**", "build/**", "coverage/**", ".next/**", ".nuxt/**", "out/**", ".cache/**", ".turbo/**", "**/*.test.ts", "**/*.spec.ts", "**/*.test.tsx", "**/*.spec.tsx", "**/__tests__/**", "**/__mocks__/**", "**/*.d.ts"];
18
+ /**
19
+ * JavaScript 特定排除模式
20
+ */
21
+ export declare const JAVASCRIPT_EXCLUDE_PATTERNS: readonly ["node_modules/**", ".git/**", "dist/**", "build/**", "coverage/**", ".next/**", ".nuxt/**", "out/**", ".cache/**", ".turbo/**", "**/*.test.js", "**/*.spec.js", "**/*.test.jsx", "**/*.spec.jsx", "**/*.test.mjs", "**/*.spec.mjs", "**/*.test.cjs", "**/*.spec.cjs", "**/__tests__/**", "**/__mocks__/**"];
22
+ /**
23
+ * Factory 模式識別的回傳型別排除清單
24
+ * 這些型別不視為 factory 模式的產物
25
+ */
26
+ export declare const NON_FACTORY_RETURN_TYPES: readonly ["void", "never", "string", "number", "boolean", "null", "undefined", "symbol", "bigint"];
27
+ /**
28
+ * Factory 模式函數名稱前綴
29
+ * 符合這些前綴的函數更可能是 factory
30
+ */
31
+ export declare const FACTORY_NAME_PREFIXES: readonly ["create", "make", "build"];
32
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/plugins/shared/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,uBAAuB,2IAW1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,2BAA2B,gQAS9B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,2BAA2B,uTAY9B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,oGAU3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB,sCAIxB,CAAC"}