@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 @@
1
+ {"version":3,"file":"javaParser.js","sourceRoot":"","sources":["../../src/parser/javaParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ export interface CLIOptions {
2
+ source: string[];
3
+ apiSource?: string;
4
+ output?: string;
5
+ outDir?: string;
6
+ title: string;
7
+ version: string;
8
+ basePath?: string;
9
+ }
10
+ export interface JavaAnnotation {
11
+ name: string;
12
+ values: Record<string, string | string[] | boolean>;
13
+ }
14
+ export interface JavaParameter {
15
+ name: string;
16
+ type: string;
17
+ genericType?: string;
18
+ annotations: JavaAnnotation[];
19
+ }
20
+ export interface JavaField {
21
+ name: string;
22
+ type: string;
23
+ genericType?: string;
24
+ annotations: JavaAnnotation[];
25
+ accessModifier: string;
26
+ javadoc?: string;
27
+ }
28
+ export interface JavadocInfo {
29
+ description?: string;
30
+ params: Record<string, string>;
31
+ returns?: string;
32
+ }
33
+ export interface JavaMethod {
34
+ name: string;
35
+ returnType: string;
36
+ returnGenericType?: string;
37
+ parameters: JavaParameter[];
38
+ annotations: JavaAnnotation[];
39
+ javadoc?: string;
40
+ javadocInfo?: JavadocInfo;
41
+ }
42
+ export interface JavaClass {
43
+ name: string;
44
+ packageName: string;
45
+ annotations: JavaAnnotation[];
46
+ methods: JavaMethod[];
47
+ fields: JavaField[];
48
+ filePath: string;
49
+ javadoc?: string;
50
+ superClass?: string;
51
+ isEnum?: boolean;
52
+ enumValues?: string[];
53
+ }
54
+ export interface EndpointInfo {
55
+ path: string;
56
+ method: HttpMethod;
57
+ operationId: string;
58
+ summary: string;
59
+ description?: string;
60
+ returnDescription?: string;
61
+ parameters: ParameterInfo[];
62
+ requestBody?: RequestBodyInfo;
63
+ responses: ResponseInfo[];
64
+ security: SecurityInfo;
65
+ hasSearchParam: boolean;
66
+ hasPaginatedList: boolean;
67
+ paginatedListItemType?: string;
68
+ }
69
+ export type HttpMethod = 'get' | 'post' | 'put' | 'delete' | 'patch';
70
+ export interface ParameterInfo {
71
+ name: string;
72
+ in: 'query' | 'path' | 'header';
73
+ required: boolean;
74
+ type: string;
75
+ description?: string;
76
+ defaultValue?: string;
77
+ schema?: SchemaInfo;
78
+ }
79
+ export interface RequestBodyInfo {
80
+ required: boolean;
81
+ contentType: string;
82
+ schema: SchemaInfo;
83
+ description?: string;
84
+ }
85
+ export interface ResponseInfo {
86
+ statusCode: string;
87
+ description: string;
88
+ contentType?: string;
89
+ schema?: SchemaInfo;
90
+ headers?: Record<string, HeaderInfo>;
91
+ }
92
+ export interface HeaderInfo {
93
+ schema: {
94
+ type: string;
95
+ };
96
+ description: string;
97
+ }
98
+ export interface SecurityInfo {
99
+ roles: string[];
100
+ authorities: string[];
101
+ securityExpression?: string;
102
+ hasComplexExpression: boolean;
103
+ }
104
+ export interface SchemaInfo {
105
+ type?: string;
106
+ format?: string;
107
+ items?: SchemaInfo;
108
+ $ref?: string;
109
+ properties?: Record<string, SchemaInfo>;
110
+ required?: string[];
111
+ additionalProperties?: boolean | SchemaInfo;
112
+ enum?: string[];
113
+ description?: string;
114
+ minLength?: number;
115
+ maxLength?: number;
116
+ minimum?: number;
117
+ maximum?: number;
118
+ pattern?: string;
119
+ }
120
+ export interface DTOInfo {
121
+ name: string;
122
+ fields: FieldInfo[];
123
+ packageName: string;
124
+ }
125
+ export interface FieldInfo {
126
+ name: string;
127
+ type: string;
128
+ genericType?: string;
129
+ required: boolean;
130
+ format?: string;
131
+ minLength?: number;
132
+ maxLength?: number;
133
+ minimum?: number;
134
+ maximum?: number;
135
+ pattern?: string;
136
+ enumValues?: string[];
137
+ }
138
+ export interface TagInfo {
139
+ name: string;
140
+ description?: string;
141
+ }
142
+ export interface OpenAPISpec {
143
+ openapi: string;
144
+ info: {
145
+ title: string;
146
+ version: string;
147
+ };
148
+ servers?: Array<{
149
+ url: string;
150
+ }>;
151
+ tags?: TagInfo[];
152
+ paths: Record<string, PathItem>;
153
+ components: {
154
+ schemas: Record<string, SchemaInfo>;
155
+ securitySchemes?: Record<string, SecurityScheme>;
156
+ };
157
+ }
158
+ export interface PathItem {
159
+ [method: string]: OperationObject;
160
+ }
161
+ export interface OperationObject {
162
+ tags?: string[];
163
+ summary?: string;
164
+ description?: string;
165
+ operationId?: string;
166
+ parameters?: ParameterObject[];
167
+ requestBody?: RequestBodyObject;
168
+ responses: Record<string, ResponseObject>;
169
+ security?: Array<Record<string, string[]>>;
170
+ 'x-required-roles'?: string[];
171
+ 'x-security-expression'?: string;
172
+ }
173
+ export interface ParameterObject {
174
+ name: string;
175
+ in: string;
176
+ required?: boolean;
177
+ schema: SchemaInfo;
178
+ description?: string;
179
+ }
180
+ export interface RequestBodyObject {
181
+ required?: boolean;
182
+ description?: string;
183
+ content: Record<string, {
184
+ schema: SchemaInfo;
185
+ }>;
186
+ }
187
+ export interface ResponseObject {
188
+ description: string;
189
+ headers?: Record<string, {
190
+ schema: {
191
+ type: string;
192
+ };
193
+ description: string;
194
+ }>;
195
+ content?: Record<string, {
196
+ schema: SchemaInfo;
197
+ }>;
198
+ }
199
+ export interface SecurityScheme {
200
+ type: string;
201
+ scheme?: string;
202
+ bearerFormat?: string;
203
+ }
204
+ export interface ControllerInfo {
205
+ className: string;
206
+ basePath: string;
207
+ endpoints: EndpointInfo[];
208
+ javaClass: JavaClass;
209
+ }
210
+ export interface ProcessingContext {
211
+ javaClasses: Map<string, JavaClass>;
212
+ controllers: ControllerInfo[];
213
+ dtoSchemas: Map<string, SchemaInfo>;
214
+ referencedTypes: Set<string>;
215
+ apiSourcePath?: string;
216
+ }
217
+ //# 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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,80 @@
1
+ package com.example.api.dto;
2
+
3
+ import javax.validation.constraints.*;
4
+
5
+ /**
6
+ * Request object for creating a new user
7
+ */
8
+ public class CreateUserRequest {
9
+
10
+ @NotBlank
11
+ @Size(min = 2, max = 50)
12
+ private String firstName;
13
+
14
+ @NotBlank
15
+ @Size(min = 2, max = 50)
16
+ private String lastName;
17
+
18
+ @NotBlank
19
+ @Email
20
+ private String email;
21
+
22
+ @NotBlank
23
+ @Size(min = 8, max = 128)
24
+ private String password;
25
+
26
+ @Pattern(regexp = "^\\+?[1-9]\\d{1,14}$")
27
+ private String phoneNumber;
28
+
29
+ @NotNull
30
+ private Long departmentId;
31
+
32
+ // Getters and setters
33
+ public String getFirstName() {
34
+ return firstName;
35
+ }
36
+
37
+ public void setFirstName(String firstName) {
38
+ this.firstName = firstName;
39
+ }
40
+
41
+ public String getLastName() {
42
+ return lastName;
43
+ }
44
+
45
+ public void setLastName(String lastName) {
46
+ this.lastName = lastName;
47
+ }
48
+
49
+ public String getEmail() {
50
+ return email;
51
+ }
52
+
53
+ public void setEmail(String email) {
54
+ this.email = email;
55
+ }
56
+
57
+ public String getPassword() {
58
+ return password;
59
+ }
60
+
61
+ public void setPassword(String password) {
62
+ this.password = password;
63
+ }
64
+
65
+ public String getPhoneNumber() {
66
+ return phoneNumber;
67
+ }
68
+
69
+ public void setPhoneNumber(String phoneNumber) {
70
+ this.phoneNumber = phoneNumber;
71
+ }
72
+
73
+ public Long getDepartmentId() {
74
+ return departmentId;
75
+ }
76
+
77
+ public void setDepartmentId(Long departmentId) {
78
+ this.departmentId = departmentId;
79
+ }
80
+ }
@@ -0,0 +1,45 @@
1
+ package com.example.api.dto;
2
+
3
+ /**
4
+ * Department Data Transfer Object
5
+ */
6
+ public class DepartmentDTO {
7
+
8
+ private Long id;
9
+ private String name;
10
+ private String description;
11
+ private String code;
12
+
13
+ // Getters and setters
14
+ public Long getId() {
15
+ return id;
16
+ }
17
+
18
+ public void setId(Long id) {
19
+ this.id = id;
20
+ }
21
+
22
+ public String getName() {
23
+ return name;
24
+ }
25
+
26
+ public void setName(String name) {
27
+ this.name = name;
28
+ }
29
+
30
+ public String getDescription() {
31
+ return description;
32
+ }
33
+
34
+ public void setDescription(String description) {
35
+ this.description = description;
36
+ }
37
+
38
+ public String getCode() {
39
+ return code;
40
+ }
41
+
42
+ public void setCode(String code) {
43
+ this.code = code;
44
+ }
45
+ }
@@ -0,0 +1,39 @@
1
+ package com.example.api.common;
2
+
3
+ import java.util.HashMap;
4
+ import java.util.Map;
5
+
6
+ /**
7
+ * Filter conditions for search queries
8
+ */
9
+ public class Filter {
10
+
11
+ private Map<String, Object> conditions;
12
+
13
+ public Filter() {
14
+ this.conditions = new HashMap<>();
15
+ }
16
+
17
+ public Filter(Map<String, Object> conditions) {
18
+ this.conditions = conditions;
19
+ }
20
+
21
+ // Getters and setters
22
+ public Map<String, Object> getConditions() {
23
+ return conditions;
24
+ }
25
+
26
+ public void setConditions(Map<String, Object> conditions) {
27
+ this.conditions = conditions;
28
+ }
29
+
30
+ // Fluent API
31
+ public Filter where(String field, Object value) {
32
+ this.conditions.put(field, value);
33
+ return this;
34
+ }
35
+
36
+ public Object get(String field) {
37
+ return this.conditions.get(field);
38
+ }
39
+ }
@@ -0,0 +1,71 @@
1
+ package com.example.api.common;
2
+
3
+ import java.util.ArrayList;
4
+ import java.util.List;
5
+
6
+ /**
7
+ * Paginated list wrapper for API responses
8
+ */
9
+ public class PaginatedList<T> {
10
+
11
+ private List<T> items;
12
+ private long total;
13
+ private int offset;
14
+ private int limit;
15
+
16
+ public PaginatedList() {
17
+ this.items = new ArrayList<>();
18
+ this.total = 0;
19
+ this.offset = 0;
20
+ this.limit = 20;
21
+ }
22
+
23
+ public PaginatedList(List<T> items, long total, int offset, int limit) {
24
+ this.items = items;
25
+ this.total = total;
26
+ this.offset = offset;
27
+ this.limit = limit;
28
+ }
29
+
30
+ // Getters and setters
31
+ public List<T> getItems() {
32
+ return items;
33
+ }
34
+
35
+ public void setItems(List<T> items) {
36
+ this.items = items;
37
+ }
38
+
39
+ public long getTotal() {
40
+ return total;
41
+ }
42
+
43
+ public void setTotal(long total) {
44
+ this.total = total;
45
+ }
46
+
47
+ public int getOffset() {
48
+ return offset;
49
+ }
50
+
51
+ public void setOffset(int offset) {
52
+ this.offset = offset;
53
+ }
54
+
55
+ public int getLimit() {
56
+ return limit;
57
+ }
58
+
59
+ public void setLimit(int limit) {
60
+ this.limit = limit;
61
+ }
62
+
63
+ // Utility methods
64
+ public boolean hasMore() {
65
+ return offset + items.size() < total;
66
+ }
67
+
68
+ public int getNextOffset() {
69
+ return offset + limit;
70
+ }
71
+ }
@@ -0,0 +1,136 @@
1
+ package com.example.api.controller;
2
+
3
+ import com.example.api.dto.ProductDTO;
4
+ import com.example.api.common.SearchParam;
5
+ import com.example.api.common.PaginatedList;
6
+ import org.springframework.http.ResponseEntity;
7
+ import org.springframework.security.access.annotation.Secured;
8
+ import org.springframework.security.access.prepost.PreAuthorize;
9
+ import org.springframework.web.bind.annotation.*;
10
+
11
+ import javax.validation.Valid;
12
+ import java.math.BigDecimal;
13
+ import java.util.List;
14
+
15
+ /**
16
+ * Product management REST controller
17
+ * Demonstrates additional features like @Secured and complex queries
18
+ */
19
+ @RestController
20
+ @RequestMapping("/api/products")
21
+ public class ProductController {
22
+
23
+ /**
24
+ * Search products with pagination
25
+ */
26
+ @GetMapping
27
+ public ResponseEntity<PaginatedList<ProductDTO>> searchProducts(SearchParam searchParam) {
28
+ // Implementation
29
+ return ResponseEntity.ok(new PaginatedList<>());
30
+ }
31
+
32
+ /**
33
+ * Get product by ID
34
+ */
35
+ @GetMapping("/{id}")
36
+ public ResponseEntity<ProductDTO> getProductById(@PathVariable Long id) {
37
+ // Implementation
38
+ return ResponseEntity.ok(new ProductDTO());
39
+ }
40
+
41
+ /**
42
+ * Create new product
43
+ * Using @Secured annotation
44
+ */
45
+ @PostMapping
46
+ @Secured("ROLE_ADMIN")
47
+ public ResponseEntity<ProductDTO> createProduct(@Valid @RequestBody ProductDTO product) {
48
+ // Implementation
49
+ return ResponseEntity.ok(new ProductDTO());
50
+ }
51
+
52
+ /**
53
+ * Update product
54
+ * Complex security: admin can update any product, vendor can only update own products
55
+ */
56
+ @PutMapping("/{id}")
57
+ @PreAuthorize("hasRole('ADMIN') or (hasRole('VENDOR') and @productService.isOwner(#id, authentication.principal.id))")
58
+ public ResponseEntity<ProductDTO> updateProduct(
59
+ @PathVariable Long id,
60
+ @Valid @RequestBody ProductDTO product) {
61
+ // Implementation
62
+ return ResponseEntity.ok(new ProductDTO());
63
+ }
64
+
65
+ /**
66
+ * Delete product
67
+ */
68
+ @DeleteMapping("/{id}")
69
+ @Secured({"ROLE_ADMIN", "ROLE_PRODUCT_MANAGER"})
70
+ public ResponseEntity<Void> deleteProduct(@PathVariable Long id) {
71
+ // Implementation
72
+ return ResponseEntity.ok().build();
73
+ }
74
+
75
+ /**
76
+ * Get products by category with price range filter
77
+ */
78
+ @GetMapping("/category/{categoryId}")
79
+ @PreAuthorize("isAuthenticated()")
80
+ public ResponseEntity<List<ProductDTO>> getProductsByCategory(
81
+ @PathVariable Long categoryId,
82
+ @RequestParam(required = false) BigDecimal minPrice,
83
+ @RequestParam(required = false) BigDecimal maxPrice,
84
+ @RequestParam(defaultValue = "10") Integer limit) {
85
+ // Implementation
86
+ return ResponseEntity.ok(List.of());
87
+ }
88
+
89
+ /**
90
+ * Search products by name (partial match)
91
+ */
92
+ @GetMapping("/search")
93
+ public ResponseEntity<List<ProductDTO>> searchProductsByName(
94
+ @RequestParam String query,
95
+ @RequestParam(defaultValue = "name") String sortBy,
96
+ @RequestParam(defaultValue = "ASC") String sortDirection) {
97
+ // Implementation
98
+ return ResponseEntity.ok(List.of());
99
+ }
100
+
101
+ /**
102
+ * Bulk update product prices
103
+ * Very complex security expression with multiple conditions
104
+ */
105
+ @PostMapping("/bulk-price-update")
106
+ @PreAuthorize("hasRole('ADMIN') and hasAuthority('BULK_OPERATIONS') and #request.size() <= 100")
107
+ public ResponseEntity<List<ProductDTO>> bulkUpdatePrices(
108
+ @RequestBody List<PriceUpdateRequest> request) {
109
+ // Implementation
110
+ return ResponseEntity.ok(List.of());
111
+ }
112
+
113
+ /**
114
+ * Inner class for price update request
115
+ */
116
+ public static class PriceUpdateRequest {
117
+ private Long productId;
118
+ private BigDecimal newPrice;
119
+
120
+ public Long getProductId() {
121
+ return productId;
122
+ }
123
+
124
+ public void setProductId(Long productId) {
125
+ this.productId = productId;
126
+ }
127
+
128
+ public BigDecimal getNewPrice() {
129
+ return newPrice;
130
+ }
131
+
132
+ public void setNewPrice(BigDecimal newPrice) {
133
+ this.newPrice = newPrice;
134
+ }
135
+ }
136
+ }