@g1cloud/api-gen 1.0.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 (86) hide show
  1. package/.claude/settings.local.json +22 -0
  2. package/CLAUDE.md +63 -0
  3. package/README.md +379 -0
  4. package/dist/analyzer/controllerAnalyzer.d.ts +20 -0
  5. package/dist/analyzer/controllerAnalyzer.d.ts.map +1 -0
  6. package/dist/analyzer/controllerAnalyzer.js +101 -0
  7. package/dist/analyzer/controllerAnalyzer.js.map +1 -0
  8. package/dist/analyzer/parameterAnalyzer.d.ts +19 -0
  9. package/dist/analyzer/parameterAnalyzer.d.ts.map +1 -0
  10. package/dist/analyzer/parameterAnalyzer.js +207 -0
  11. package/dist/analyzer/parameterAnalyzer.js.map +1 -0
  12. package/dist/analyzer/responseAnalyzer.d.ts +12 -0
  13. package/dist/analyzer/responseAnalyzer.d.ts.map +1 -0
  14. package/dist/analyzer/responseAnalyzer.js +116 -0
  15. package/dist/analyzer/responseAnalyzer.js.map +1 -0
  16. package/dist/analyzer/schemaGenerator.d.ts +6 -0
  17. package/dist/analyzer/schemaGenerator.d.ts.map +1 -0
  18. package/dist/analyzer/schemaGenerator.js +347 -0
  19. package/dist/analyzer/schemaGenerator.js.map +1 -0
  20. package/dist/analyzer/securityAnalyzer.d.ts +6 -0
  21. package/dist/analyzer/securityAnalyzer.d.ts.map +1 -0
  22. package/dist/analyzer/securityAnalyzer.js +177 -0
  23. package/dist/analyzer/securityAnalyzer.js.map +1 -0
  24. package/dist/generator/openapiGenerator.d.ts +14 -0
  25. package/dist/generator/openapiGenerator.d.ts.map +1 -0
  26. package/dist/generator/openapiGenerator.js +340 -0
  27. package/dist/generator/openapiGenerator.js.map +1 -0
  28. package/dist/index.d.ts +3 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +218 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/lib.d.ts +61 -0
  33. package/dist/lib.d.ts.map +1 -0
  34. package/dist/lib.js +199 -0
  35. package/dist/lib.js.map +1 -0
  36. package/dist/mcp-server.d.ts +9 -0
  37. package/dist/mcp-server.d.ts.map +1 -0
  38. package/dist/mcp-server.js +257 -0
  39. package/dist/mcp-server.js.map +1 -0
  40. package/dist/mcp-server.mjs +45586 -0
  41. package/dist/parser/astAnalyzer.d.ts +87 -0
  42. package/dist/parser/astAnalyzer.d.ts.map +1 -0
  43. package/dist/parser/astAnalyzer.js +321 -0
  44. package/dist/parser/astAnalyzer.js.map +1 -0
  45. package/dist/parser/javaParser.d.ts +10 -0
  46. package/dist/parser/javaParser.d.ts.map +1 -0
  47. package/dist/parser/javaParser.js +805 -0
  48. package/dist/parser/javaParser.js.map +1 -0
  49. package/dist/types/index.d.ts +217 -0
  50. package/dist/types/index.d.ts.map +1 -0
  51. package/dist/types/index.js +3 -0
  52. package/dist/types/index.js.map +1 -0
  53. package/examples/CreateUserRequest.java +80 -0
  54. package/examples/DepartmentDTO.java +45 -0
  55. package/examples/Filter.java +39 -0
  56. package/examples/PaginatedList.java +71 -0
  57. package/examples/ProductController.java +136 -0
  58. package/examples/ProductDTO.java +129 -0
  59. package/examples/RoleDTO.java +47 -0
  60. package/examples/SearchParam.java +55 -0
  61. package/examples/Sort.java +70 -0
  62. package/examples/UpdateUserRequest.java +74 -0
  63. package/examples/UserController.java +98 -0
  64. package/examples/UserDTO.java +119 -0
  65. package/package.json +51 -0
  66. package/prompt/01_Initial.md +358 -0
  67. package/prompt/02_/354/266/224/352/260/200.md +31 -0
  68. package/src/analyzer/controllerAnalyzer.ts +125 -0
  69. package/src/analyzer/parameterAnalyzer.ts +259 -0
  70. package/src/analyzer/responseAnalyzer.ts +142 -0
  71. package/src/analyzer/schemaGenerator.ts +412 -0
  72. package/src/analyzer/securityAnalyzer.ts +200 -0
  73. package/src/generator/openapiGenerator.ts +378 -0
  74. package/src/index.ts +212 -0
  75. package/src/lib.ts +240 -0
  76. package/src/mcp-server.ts +310 -0
  77. package/src/parser/astAnalyzer.ts +373 -0
  78. package/src/parser/javaParser.ts +901 -0
  79. package/src/types/index.ts +238 -0
  80. package/test-boolean.yaml +607 -0
  81. package/test-filter.yaml +576 -0
  82. package/test-inner.ts +59 -0
  83. package/test-output.yaml +650 -0
  84. package/test-paginated.yaml +585 -0
  85. package/tsconfig.json +20 -0
  86. package/tsup.config.ts +30 -0
@@ -0,0 +1,87 @@
1
+ import { JavaClass, JavaAnnotation, JavaMethod } from '../types';
2
+ export declare class ASTAnalyzer {
3
+ /**
4
+ * Check if a class is a REST controller
5
+ */
6
+ static isRestController(javaClass: JavaClass): boolean;
7
+ /**
8
+ * Extract base path from @RequestMapping annotation on class level
9
+ */
10
+ static getClassBasePath(javaClass: JavaClass): string;
11
+ /**
12
+ * Check if a method is an endpoint (has HTTP method annotation)
13
+ */
14
+ static isEndpointMethod(method: JavaMethod): boolean;
15
+ /**
16
+ * Get HTTP method from annotation
17
+ */
18
+ static getHttpMethod(method: JavaMethod): string | null;
19
+ /**
20
+ * Get endpoint path from method annotation
21
+ */
22
+ static getMethodPath(method: JavaMethod): string;
23
+ /**
24
+ * Check if an annotation indicates a request parameter
25
+ */
26
+ static isParameterAnnotation(annotation: JavaAnnotation): boolean;
27
+ /**
28
+ * Get parameter type (query, path, header, body)
29
+ */
30
+ static getParameterType(annotations: JavaAnnotation[]): 'query' | 'path' | 'header' | 'body' | null;
31
+ /**
32
+ * Check if a type is a SearchParam
33
+ */
34
+ static isSearchParam(type: string): boolean;
35
+ /**
36
+ * Check if a type is a PaginatedList
37
+ */
38
+ static isPaginatedList(type: string): boolean;
39
+ /**
40
+ * Extract generic type from a parameterized type
41
+ */
42
+ static extractGenericType(genericType: string | undefined): string | undefined;
43
+ /**
44
+ * Check if method has security annotations
45
+ */
46
+ static hasSecurityAnnotation(method: JavaMethod): boolean;
47
+ /**
48
+ * Get security annotation from method
49
+ */
50
+ static getSecurityAnnotations(method: JavaMethod): JavaAnnotation[];
51
+ /**
52
+ * Combine base path with method path
53
+ */
54
+ static combinePaths(basePath: string, methodPath: string): string;
55
+ /**
56
+ * Convert Java type to OpenAPI type
57
+ */
58
+ static javaTypeToOpenAPI(javaType: string): {
59
+ type: string;
60
+ format?: string;
61
+ };
62
+ /**
63
+ * Check if a Java type is a primitive or wrapper type
64
+ */
65
+ static isPrimitiveOrWrapper(javaType: string): boolean;
66
+ /**
67
+ * Check if a type is a collection type
68
+ */
69
+ static isCollectionType(javaType: string): boolean;
70
+ /**
71
+ * Check if a type is a Map type
72
+ */
73
+ static isMapType(javaType: string): boolean;
74
+ /**
75
+ * Check if the return type is ResponseEntity
76
+ */
77
+ static isResponseEntity(returnType: string): boolean;
78
+ /**
79
+ * Generate operation ID from method name
80
+ */
81
+ static generateOperationId(className: string, methodName: string): string;
82
+ /**
83
+ * Generate summary from method name
84
+ */
85
+ static generateSummary(methodName: string): string;
86
+ }
87
+ //# sourceMappingURL=astAnalyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astAnalyzer.d.ts","sourceRoot":"","sources":["../../src/parser/astAnalyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEjE,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;IAetD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM;IAoBrD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAapD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IA6BvD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IA6BhD;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO;IAKjE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI;IAgBnG;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI7C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;IAY9E;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO;IAKzD;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,EAAE;IAKnE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAqBjE;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IA4D7E;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAsCtD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAMlD;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAM3C;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAUzE;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAOnD"}
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ASTAnalyzer = void 0;
4
+ class ASTAnalyzer {
5
+ /**
6
+ * Check if a class is a REST controller
7
+ */
8
+ static isRestController(javaClass) {
9
+ const annotations = javaClass.annotations;
10
+ // Check for @RestController
11
+ if (annotations.some((a) => a.name === 'RestController')) {
12
+ return true;
13
+ }
14
+ // Check for @Controller + @ResponseBody
15
+ const hasController = annotations.some((a) => a.name === 'Controller');
16
+ const hasResponseBody = annotations.some((a) => a.name === 'ResponseBody');
17
+ return hasController && hasResponseBody;
18
+ }
19
+ /**
20
+ * Extract base path from @RequestMapping annotation on class level
21
+ */
22
+ static getClassBasePath(javaClass) {
23
+ const requestMapping = javaClass.annotations.find((a) => a.name === 'RequestMapping');
24
+ if (!requestMapping) {
25
+ return '';
26
+ }
27
+ const value = requestMapping.values['value'] || requestMapping.values['path'] || '';
28
+ if (Array.isArray(value)) {
29
+ return value[0] || '';
30
+ }
31
+ if (typeof value === 'boolean') {
32
+ return '';
33
+ }
34
+ return value;
35
+ }
36
+ /**
37
+ * Check if a method is an endpoint (has HTTP method annotation)
38
+ */
39
+ static isEndpointMethod(method) {
40
+ const httpAnnotations = [
41
+ 'GetMapping',
42
+ 'PostMapping',
43
+ 'PutMapping',
44
+ 'DeleteMapping',
45
+ 'PatchMapping',
46
+ 'RequestMapping',
47
+ ];
48
+ return method.annotations.some((a) => httpAnnotations.includes(a.name));
49
+ }
50
+ /**
51
+ * Get HTTP method from annotation
52
+ */
53
+ static getHttpMethod(method) {
54
+ const mappingAnnotations = {
55
+ GetMapping: 'get',
56
+ PostMapping: 'post',
57
+ PutMapping: 'put',
58
+ DeleteMapping: 'delete',
59
+ PatchMapping: 'patch',
60
+ };
61
+ for (const annotation of method.annotations) {
62
+ if (annotation.name in mappingAnnotations) {
63
+ return mappingAnnotations[annotation.name];
64
+ }
65
+ if (annotation.name === 'RequestMapping') {
66
+ const methodValue = annotation.values['method'];
67
+ if (methodValue && typeof methodValue !== 'boolean') {
68
+ const methodStr = Array.isArray(methodValue) ? methodValue[0] : methodValue;
69
+ const normalizedMethod = methodStr.toLowerCase().replace('requestmethod.', '');
70
+ return normalizedMethod;
71
+ }
72
+ // Default to GET if no method specified
73
+ return 'get';
74
+ }
75
+ }
76
+ return null;
77
+ }
78
+ /**
79
+ * Get endpoint path from method annotation
80
+ */
81
+ static getMethodPath(method) {
82
+ const mappingAnnotations = [
83
+ 'GetMapping',
84
+ 'PostMapping',
85
+ 'PutMapping',
86
+ 'DeleteMapping',
87
+ 'PatchMapping',
88
+ 'RequestMapping',
89
+ ];
90
+ for (const annotation of method.annotations) {
91
+ if (mappingAnnotations.includes(annotation.name)) {
92
+ const value = annotation.values['value'] || annotation.values['path'] || '';
93
+ if (Array.isArray(value)) {
94
+ return value[0] || '';
95
+ }
96
+ if (typeof value === 'boolean') {
97
+ return '';
98
+ }
99
+ return value;
100
+ }
101
+ }
102
+ return '';
103
+ }
104
+ /**
105
+ * Check if an annotation indicates a request parameter
106
+ */
107
+ static isParameterAnnotation(annotation) {
108
+ const paramAnnotations = ['RequestParam', 'PathVariable', 'RequestHeader', 'RequestBody'];
109
+ return paramAnnotations.includes(annotation.name);
110
+ }
111
+ /**
112
+ * Get parameter type (query, path, header, body)
113
+ */
114
+ static getParameterType(annotations) {
115
+ for (const annotation of annotations) {
116
+ switch (annotation.name) {
117
+ case 'RequestParam':
118
+ return 'query';
119
+ case 'PathVariable':
120
+ return 'path';
121
+ case 'RequestHeader':
122
+ return 'header';
123
+ case 'RequestBody':
124
+ return 'body';
125
+ }
126
+ }
127
+ return null;
128
+ }
129
+ /**
130
+ * Check if a type is a SearchParam
131
+ */
132
+ static isSearchParam(type) {
133
+ return type === 'SearchParam' || type.endsWith('.SearchParam');
134
+ }
135
+ /**
136
+ * Check if a type is a PaginatedList
137
+ */
138
+ static isPaginatedList(type) {
139
+ return type === 'PaginatedList' || type.startsWith('PaginatedList') || type.endsWith('.PaginatedList');
140
+ }
141
+ /**
142
+ * Extract generic type from a parameterized type
143
+ */
144
+ static extractGenericType(genericType) {
145
+ if (!genericType)
146
+ return undefined;
147
+ // Handle nested generics like PaginatedList<UserDTO>
148
+ const match = genericType.match(/^([^<]+)(?:<(.+)>)?$/);
149
+ if (match) {
150
+ return match[1].trim();
151
+ }
152
+ return genericType;
153
+ }
154
+ /**
155
+ * Check if method has security annotations
156
+ */
157
+ static hasSecurityAnnotation(method) {
158
+ const securityAnnotations = ['PreAuthorize', 'PostAuthorize', 'Secured', 'RolesAllowed'];
159
+ return method.annotations.some((a) => securityAnnotations.includes(a.name));
160
+ }
161
+ /**
162
+ * Get security annotation from method
163
+ */
164
+ static getSecurityAnnotations(method) {
165
+ const securityAnnotations = ['PreAuthorize', 'PostAuthorize', 'Secured', 'RolesAllowed'];
166
+ return method.annotations.filter((a) => securityAnnotations.includes(a.name));
167
+ }
168
+ /**
169
+ * Combine base path with method path
170
+ */
171
+ static combinePaths(basePath, methodPath) {
172
+ // Normalize paths
173
+ const normalizedBase = basePath.replace(/\/+$/, '');
174
+ const normalizedMethod = methodPath.replace(/^\/+/, '');
175
+ if (!normalizedBase && !normalizedMethod) {
176
+ return '/';
177
+ }
178
+ if (!normalizedBase) {
179
+ return '/' + normalizedMethod;
180
+ }
181
+ if (!normalizedMethod) {
182
+ return normalizedBase.startsWith('/') ? normalizedBase : '/' + normalizedBase;
183
+ }
184
+ const combined = `${normalizedBase}/${normalizedMethod}`;
185
+ return combined.startsWith('/') ? combined : '/' + combined;
186
+ }
187
+ /**
188
+ * Convert Java type to OpenAPI type
189
+ */
190
+ static javaTypeToOpenAPI(javaType) {
191
+ const typeMap = {
192
+ // Primitives
193
+ int: { type: 'integer', format: 'int32' },
194
+ long: { type: 'integer', format: 'int64' },
195
+ short: { type: 'integer' },
196
+ byte: { type: 'integer' },
197
+ float: { type: 'number', format: 'float' },
198
+ double: { type: 'number', format: 'double' },
199
+ boolean: { type: 'boolean' },
200
+ char: { type: 'string' },
201
+ // Wrapper types
202
+ Integer: { type: 'integer', format: 'int32' },
203
+ Long: { type: 'integer', format: 'int64' },
204
+ Short: { type: 'integer' },
205
+ Byte: { type: 'integer' },
206
+ Float: { type: 'number', format: 'float' },
207
+ Double: { type: 'number', format: 'double' },
208
+ Boolean: { type: 'boolean' },
209
+ Character: { type: 'string' },
210
+ // String types
211
+ String: { type: 'string' },
212
+ // Date/Time types
213
+ Date: { type: 'string', format: 'date-time' },
214
+ LocalDate: { type: 'string', format: 'date' },
215
+ LocalDateTime: { type: 'string', format: 'date-time' },
216
+ LocalTime: { type: 'string', format: 'time' },
217
+ Instant: { type: 'string', format: 'date-time' },
218
+ ZonedDateTime: { type: 'string', format: 'date-time' },
219
+ OffsetDateTime: { type: 'string', format: 'date-time' },
220
+ // UUID
221
+ UUID: { type: 'string', format: 'uuid' },
222
+ // BigDecimal/BigInteger
223
+ BigDecimal: { type: 'number' },
224
+ BigInteger: { type: 'integer' },
225
+ // Currency
226
+ Currency: { type: 'string' },
227
+ // Void
228
+ void: { type: 'object' },
229
+ Void: { type: 'object' },
230
+ };
231
+ // Check if it's an array type
232
+ if (javaType.endsWith('[]')) {
233
+ return { type: 'array' };
234
+ }
235
+ // Extract simple type name from fully qualified name
236
+ const simpleName = javaType.split('.').pop() || javaType;
237
+ return typeMap[simpleName] || { type: 'object' };
238
+ }
239
+ /**
240
+ * Check if a Java type is a primitive or wrapper type
241
+ */
242
+ static isPrimitiveOrWrapper(javaType) {
243
+ const primitiveTypes = [
244
+ 'int',
245
+ 'long',
246
+ 'short',
247
+ 'byte',
248
+ 'float',
249
+ 'double',
250
+ 'boolean',
251
+ 'char',
252
+ 'Integer',
253
+ 'Long',
254
+ 'Short',
255
+ 'Byte',
256
+ 'Float',
257
+ 'Double',
258
+ 'Boolean',
259
+ 'Character',
260
+ 'String',
261
+ 'Date',
262
+ 'LocalDate',
263
+ 'LocalDateTime',
264
+ 'LocalTime',
265
+ 'Instant',
266
+ 'ZonedDateTime',
267
+ 'OffsetDateTime',
268
+ 'UUID',
269
+ 'BigDecimal',
270
+ 'BigInteger',
271
+ 'Currency',
272
+ 'void',
273
+ 'Void',
274
+ ];
275
+ const simpleName = javaType.split('.').pop() || javaType;
276
+ return primitiveTypes.includes(simpleName);
277
+ }
278
+ /**
279
+ * Check if a type is a collection type
280
+ */
281
+ static isCollectionType(javaType) {
282
+ const collectionTypes = ['List', 'Set', 'Collection', 'ArrayList', 'HashSet', 'LinkedList', 'TreeSet'];
283
+ const simpleName = javaType.split('.').pop() || javaType;
284
+ return collectionTypes.includes(simpleName) || javaType.endsWith('[]');
285
+ }
286
+ /**
287
+ * Check if a type is a Map type
288
+ */
289
+ static isMapType(javaType) {
290
+ const mapTypes = ['Map', 'HashMap', 'TreeMap', 'LinkedHashMap', 'ConcurrentHashMap'];
291
+ const simpleName = javaType.split('.').pop() || javaType;
292
+ return mapTypes.includes(simpleName);
293
+ }
294
+ /**
295
+ * Check if the return type is ResponseEntity
296
+ */
297
+ static isResponseEntity(returnType) {
298
+ return returnType === 'ResponseEntity' || returnType.endsWith('.ResponseEntity');
299
+ }
300
+ /**
301
+ * Generate operation ID from method name
302
+ */
303
+ static generateOperationId(className, methodName) {
304
+ // Remove Controller suffix from class name
305
+ const simplifiedClassName = className.replace(/Controller$/, '');
306
+ // Convert to camelCase
307
+ const operationId = simplifiedClassName.charAt(0).toLowerCase() + simplifiedClassName.slice(1) + '_' + methodName;
308
+ return operationId;
309
+ }
310
+ /**
311
+ * Generate summary from method name
312
+ */
313
+ static generateSummary(methodName) {
314
+ // Convert camelCase to words
315
+ const words = methodName.replace(/([A-Z])/g, ' $1').trim();
316
+ // Capitalize first letter
317
+ return words.charAt(0).toUpperCase() + words.slice(1);
318
+ }
319
+ }
320
+ exports.ASTAnalyzer = ASTAnalyzer;
321
+ //# sourceMappingURL=astAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astAnalyzer.js","sourceRoot":"","sources":["../../src/parser/astAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { JavaClass } from '../types';
2
+ export declare class JavaFileParser {
3
+ private sourceDir;
4
+ constructor(sourceDir: string);
5
+ parseAllJavaFiles(): Promise<Map<string, JavaClass>>;
6
+ private findJavaFiles;
7
+ parseJavaFile(filePath: string): Promise<JavaClass[]>;
8
+ }
9
+ export declare function parseJavaSource(sourceDir: string): Promise<Map<string, JavaClass>>;
10
+ //# sourceMappingURL=javaParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javaParser.d.ts","sourceRoot":"","sources":["../../src/parser/javaParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAqE,MAAM,UAAU,CAAC;AAqHxG,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,EAAE,MAAM;IAIvB,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAkB1D,OAAO,CAAC,aAAa;IAqBf,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAc5D;AA6sBD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAGlF"}