mnehmos.trace.mcp 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 (339) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1662 -0
  3. package/dist/adapters/bootstrap.d.ts +29 -0
  4. package/dist/adapters/bootstrap.d.ts.map +1 -0
  5. package/dist/adapters/bootstrap.js +46 -0
  6. package/dist/adapters/bootstrap.js.map +1 -0
  7. package/dist/adapters/errors.d.ts +94 -0
  8. package/dist/adapters/errors.d.ts.map +1 -0
  9. package/dist/adapters/errors.js +107 -0
  10. package/dist/adapters/errors.js.map +1 -0
  11. package/dist/adapters/graphql/index.d.ts +9 -0
  12. package/dist/adapters/graphql/index.d.ts.map +1 -0
  13. package/dist/adapters/graphql/index.js +9 -0
  14. package/dist/adapters/graphql/index.js.map +1 -0
  15. package/dist/adapters/graphql/sdl-parser.d.ts +74 -0
  16. package/dist/adapters/graphql/sdl-parser.d.ts.map +1 -0
  17. package/dist/adapters/graphql/sdl-parser.js +559 -0
  18. package/dist/adapters/graphql/sdl-parser.js.map +1 -0
  19. package/dist/adapters/grpc/adapter.d.ts +76 -0
  20. package/dist/adapters/grpc/adapter.d.ts.map +1 -0
  21. package/dist/adapters/grpc/adapter.js +362 -0
  22. package/dist/adapters/grpc/adapter.js.map +1 -0
  23. package/dist/adapters/grpc/index.d.ts +10 -0
  24. package/dist/adapters/grpc/index.d.ts.map +1 -0
  25. package/dist/adapters/grpc/index.js +12 -0
  26. package/dist/adapters/grpc/index.js.map +1 -0
  27. package/dist/adapters/grpc/proto-parser.d.ts +76 -0
  28. package/dist/adapters/grpc/proto-parser.d.ts.map +1 -0
  29. package/dist/adapters/grpc/proto-parser.js +523 -0
  30. package/dist/adapters/grpc/proto-parser.js.map +1 -0
  31. package/dist/adapters/grpc/type-converter.d.ts +43 -0
  32. package/dist/adapters/grpc/type-converter.d.ts.map +1 -0
  33. package/dist/adapters/grpc/type-converter.js +270 -0
  34. package/dist/adapters/grpc/type-converter.js.map +1 -0
  35. package/dist/adapters/grpc/types.d.ts +85 -0
  36. package/dist/adapters/grpc/types.d.ts.map +1 -0
  37. package/dist/adapters/grpc/types.js +7 -0
  38. package/dist/adapters/grpc/types.js.map +1 -0
  39. package/dist/adapters/index.d.ts +39 -0
  40. package/dist/adapters/index.d.ts.map +1 -0
  41. package/dist/adapters/index.js +50 -0
  42. package/dist/adapters/index.js.map +1 -0
  43. package/dist/adapters/mcp.d.ts +23 -0
  44. package/dist/adapters/mcp.d.ts.map +1 -0
  45. package/dist/adapters/mcp.js +293 -0
  46. package/dist/adapters/mcp.js.map +1 -0
  47. package/dist/adapters/openapi/adapter.d.ts +213 -0
  48. package/dist/adapters/openapi/adapter.d.ts.map +1 -0
  49. package/dist/adapters/openapi/adapter.js +557 -0
  50. package/dist/adapters/openapi/adapter.js.map +1 -0
  51. package/dist/adapters/openapi/convert.d.ts +120 -0
  52. package/dist/adapters/openapi/convert.d.ts.map +1 -0
  53. package/dist/adapters/openapi/convert.js +363 -0
  54. package/dist/adapters/openapi/convert.js.map +1 -0
  55. package/dist/adapters/openapi/index.d.ts +39 -0
  56. package/dist/adapters/openapi/index.d.ts.map +1 -0
  57. package/dist/adapters/openapi/index.js +48 -0
  58. package/dist/adapters/openapi/index.js.map +1 -0
  59. package/dist/adapters/openapi/parser.d.ts +95 -0
  60. package/dist/adapters/openapi/parser.d.ts.map +1 -0
  61. package/dist/adapters/openapi/parser.js +171 -0
  62. package/dist/adapters/openapi/parser.js.map +1 -0
  63. package/dist/adapters/registry.d.ts +116 -0
  64. package/dist/adapters/registry.d.ts.map +1 -0
  65. package/dist/adapters/registry.js +246 -0
  66. package/dist/adapters/registry.js.map +1 -0
  67. package/dist/adapters/trpc/adapter.d.ts +159 -0
  68. package/dist/adapters/trpc/adapter.d.ts.map +1 -0
  69. package/dist/adapters/trpc/adapter.js +223 -0
  70. package/dist/adapters/trpc/adapter.js.map +1 -0
  71. package/dist/adapters/trpc/extractor.d.ts +218 -0
  72. package/dist/adapters/trpc/extractor.d.ts.map +1 -0
  73. package/dist/adapters/trpc/extractor.js +708 -0
  74. package/dist/adapters/trpc/extractor.js.map +1 -0
  75. package/dist/adapters/trpc/index.d.ts +31 -0
  76. package/dist/adapters/trpc/index.d.ts.map +1 -0
  77. package/dist/adapters/trpc/index.js +40 -0
  78. package/dist/adapters/trpc/index.js.map +1 -0
  79. package/dist/adapters/trpc/parser.d.ts +119 -0
  80. package/dist/adapters/trpc/parser.d.ts.map +1 -0
  81. package/dist/adapters/trpc/parser.js +128 -0
  82. package/dist/adapters/trpc/parser.js.map +1 -0
  83. package/dist/compare/index.d.ts +33 -0
  84. package/dist/compare/index.d.ts.map +1 -0
  85. package/dist/compare/index.js +261 -0
  86. package/dist/compare/index.js.map +1 -0
  87. package/dist/core/types.d.ts +188 -0
  88. package/dist/core/types.d.ts.map +1 -0
  89. package/dist/core/types.js +9 -0
  90. package/dist/core/types.js.map +1 -0
  91. package/dist/extract/index.d.ts +26 -0
  92. package/dist/extract/index.d.ts.map +1 -0
  93. package/dist/extract/index.js +44 -0
  94. package/dist/extract/index.js.map +1 -0
  95. package/dist/index.d.ts +9 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +674 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/languages/base.d.ts +57 -0
  100. package/dist/languages/base.d.ts.map +1 -0
  101. package/dist/languages/base.js +6 -0
  102. package/dist/languages/base.js.map +1 -0
  103. package/dist/languages/bootstrap.d.ts +10 -0
  104. package/dist/languages/bootstrap.d.ts.map +1 -0
  105. package/dist/languages/bootstrap.js +25 -0
  106. package/dist/languages/bootstrap.js.map +1 -0
  107. package/dist/languages/go/handlers/chi.d.ts +24 -0
  108. package/dist/languages/go/handlers/chi.d.ts.map +1 -0
  109. package/dist/languages/go/handlers/chi.js +205 -0
  110. package/dist/languages/go/handlers/chi.js.map +1 -0
  111. package/dist/languages/go/handlers/gin.d.ts +24 -0
  112. package/dist/languages/go/handlers/gin.d.ts.map +1 -0
  113. package/dist/languages/go/handlers/gin.js +156 -0
  114. package/dist/languages/go/handlers/gin.js.map +1 -0
  115. package/dist/languages/go/handlers/stdlib.d.ts +19 -0
  116. package/dist/languages/go/handlers/stdlib.d.ts.map +1 -0
  117. package/dist/languages/go/handlers/stdlib.js +112 -0
  118. package/dist/languages/go/handlers/stdlib.js.map +1 -0
  119. package/dist/languages/go/index.d.ts +18 -0
  120. package/dist/languages/go/index.d.ts.map +1 -0
  121. package/dist/languages/go/index.js +20 -0
  122. package/dist/languages/go/index.js.map +1 -0
  123. package/dist/languages/go/parser.d.ts +33 -0
  124. package/dist/languages/go/parser.d.ts.map +1 -0
  125. package/dist/languages/go/parser.js +95 -0
  126. package/dist/languages/go/parser.js.map +1 -0
  127. package/dist/languages/go/struct-extractor.d.ts +59 -0
  128. package/dist/languages/go/struct-extractor.d.ts.map +1 -0
  129. package/dist/languages/go/struct-extractor.js +483 -0
  130. package/dist/languages/go/struct-extractor.js.map +1 -0
  131. package/dist/languages/go/tag-parser.d.ts +62 -0
  132. package/dist/languages/go/tag-parser.d.ts.map +1 -0
  133. package/dist/languages/go/tag-parser.js +108 -0
  134. package/dist/languages/go/tag-parser.js.map +1 -0
  135. package/dist/languages/go/type-converter.d.ts +32 -0
  136. package/dist/languages/go/type-converter.d.ts.map +1 -0
  137. package/dist/languages/go/type-converter.js +226 -0
  138. package/dist/languages/go/type-converter.js.map +1 -0
  139. package/dist/languages/go/types.d.ts +153 -0
  140. package/dist/languages/go/types.d.ts.map +1 -0
  141. package/dist/languages/go/types.js +6 -0
  142. package/dist/languages/go/types.js.map +1 -0
  143. package/dist/languages/import-resolver.d.ts +645 -0
  144. package/dist/languages/import-resolver.d.ts.map +1 -0
  145. package/dist/languages/import-resolver.js +1278 -0
  146. package/dist/languages/import-resolver.js.map +1 -0
  147. package/dist/languages/index.d.ts +34 -0
  148. package/dist/languages/index.d.ts.map +1 -0
  149. package/dist/languages/index.js +93 -0
  150. package/dist/languages/index.js.map +1 -0
  151. package/dist/languages/json-schema.d.ts +40 -0
  152. package/dist/languages/json-schema.d.ts.map +1 -0
  153. package/dist/languages/json-schema.js +188 -0
  154. package/dist/languages/json-schema.js.map +1 -0
  155. package/dist/languages/python-ast/index.d.ts +8 -0
  156. package/dist/languages/python-ast/index.d.ts.map +1 -0
  157. package/dist/languages/python-ast/index.js +7 -0
  158. package/dist/languages/python-ast/index.js.map +1 -0
  159. package/dist/languages/python-ast/parser.d.ts +174 -0
  160. package/dist/languages/python-ast/parser.d.ts.map +1 -0
  161. package/dist/languages/python-ast/parser.js +1205 -0
  162. package/dist/languages/python-ast/parser.js.map +1 -0
  163. package/dist/languages/python-ast/type-resolver.d.ts +75 -0
  164. package/dist/languages/python-ast/type-resolver.d.ts.map +1 -0
  165. package/dist/languages/python-ast/type-resolver.js +421 -0
  166. package/dist/languages/python-ast/type-resolver.js.map +1 -0
  167. package/dist/languages/python-ast/types.d.ts +216 -0
  168. package/dist/languages/python-ast/types.d.ts.map +1 -0
  169. package/dist/languages/python-ast/types.js +6 -0
  170. package/dist/languages/python-ast/types.js.map +1 -0
  171. package/dist/languages/python.d.ts +55 -0
  172. package/dist/languages/python.d.ts.map +1 -0
  173. package/dist/languages/python.js +311 -0
  174. package/dist/languages/python.js.map +1 -0
  175. package/dist/languages/typescript.d.ts +272 -0
  176. package/dist/languages/typescript.d.ts.map +1 -0
  177. package/dist/languages/typescript.js +1381 -0
  178. package/dist/languages/typescript.js.map +1 -0
  179. package/dist/patterns/base.d.ts +146 -0
  180. package/dist/patterns/base.d.ts.map +1 -0
  181. package/dist/patterns/base.js +89 -0
  182. package/dist/patterns/base.js.map +1 -0
  183. package/dist/patterns/errors.d.ts +172 -0
  184. package/dist/patterns/errors.d.ts.map +1 -0
  185. package/dist/patterns/errors.js +185 -0
  186. package/dist/patterns/errors.js.map +1 -0
  187. package/dist/patterns/extractors.d.ts +170 -0
  188. package/dist/patterns/extractors.d.ts.map +1 -0
  189. package/dist/patterns/extractors.js +305 -0
  190. package/dist/patterns/extractors.js.map +1 -0
  191. package/dist/patterns/graphql/apollo-client.d.ts +80 -0
  192. package/dist/patterns/graphql/apollo-client.d.ts.map +1 -0
  193. package/dist/patterns/graphql/apollo-client.js +800 -0
  194. package/dist/patterns/graphql/apollo-client.js.map +1 -0
  195. package/dist/patterns/graphql/apollo-server.d.ts +55 -0
  196. package/dist/patterns/graphql/apollo-server.d.ts.map +1 -0
  197. package/dist/patterns/graphql/apollo-server.js +523 -0
  198. package/dist/patterns/graphql/apollo-server.js.map +1 -0
  199. package/dist/patterns/graphql/index.d.ts +11 -0
  200. package/dist/patterns/graphql/index.d.ts.map +1 -0
  201. package/dist/patterns/graphql/index.js +12 -0
  202. package/dist/patterns/graphql/index.js.map +1 -0
  203. package/dist/patterns/graphql/types.d.ts +213 -0
  204. package/dist/patterns/graphql/types.d.ts.map +1 -0
  205. package/dist/patterns/graphql/types.js +16 -0
  206. package/dist/patterns/graphql/types.js.map +1 -0
  207. package/dist/patterns/http-clients/axios.d.ts +148 -0
  208. package/dist/patterns/http-clients/axios.d.ts.map +1 -0
  209. package/dist/patterns/http-clients/axios.js +652 -0
  210. package/dist/patterns/http-clients/axios.js.map +1 -0
  211. package/dist/patterns/http-clients/fetch.d.ts +88 -0
  212. package/dist/patterns/http-clients/fetch.d.ts.map +1 -0
  213. package/dist/patterns/http-clients/fetch.js +364 -0
  214. package/dist/patterns/http-clients/fetch.js.map +1 -0
  215. package/dist/patterns/http-clients/index.d.ts +36 -0
  216. package/dist/patterns/http-clients/index.d.ts.map +1 -0
  217. package/dist/patterns/http-clients/index.js +50 -0
  218. package/dist/patterns/http-clients/index.js.map +1 -0
  219. package/dist/patterns/http-clients/property-access.d.ts +46 -0
  220. package/dist/patterns/http-clients/property-access.d.ts.map +1 -0
  221. package/dist/patterns/http-clients/property-access.js +818 -0
  222. package/dist/patterns/http-clients/property-access.js.map +1 -0
  223. package/dist/patterns/http-clients/type-inference.d.ts +48 -0
  224. package/dist/patterns/http-clients/type-inference.d.ts.map +1 -0
  225. package/dist/patterns/http-clients/type-inference.js +293 -0
  226. package/dist/patterns/http-clients/type-inference.js.map +1 -0
  227. package/dist/patterns/http-clients/types.d.ts +168 -0
  228. package/dist/patterns/http-clients/types.d.ts.map +1 -0
  229. package/dist/patterns/http-clients/types.js +10 -0
  230. package/dist/patterns/http-clients/types.js.map +1 -0
  231. package/dist/patterns/http-clients/url-extractor.d.ts +53 -0
  232. package/dist/patterns/http-clients/url-extractor.d.ts.map +1 -0
  233. package/dist/patterns/http-clients/url-extractor.js +338 -0
  234. package/dist/patterns/http-clients/url-extractor.js.map +1 -0
  235. package/dist/patterns/index.d.ts +44 -0
  236. package/dist/patterns/index.d.ts.map +1 -0
  237. package/dist/patterns/index.js +49 -0
  238. package/dist/patterns/index.js.map +1 -0
  239. package/dist/patterns/python/aiohttp.d.ts +21 -0
  240. package/dist/patterns/python/aiohttp.d.ts.map +1 -0
  241. package/dist/patterns/python/aiohttp.js +188 -0
  242. package/dist/patterns/python/aiohttp.js.map +1 -0
  243. package/dist/patterns/python/httpx.d.ts +20 -0
  244. package/dist/patterns/python/httpx.d.ts.map +1 -0
  245. package/dist/patterns/python/httpx.js +183 -0
  246. package/dist/patterns/python/httpx.js.map +1 -0
  247. package/dist/patterns/python/index.d.ts +32 -0
  248. package/dist/patterns/python/index.d.ts.map +1 -0
  249. package/dist/patterns/python/index.js +63 -0
  250. package/dist/patterns/python/index.js.map +1 -0
  251. package/dist/patterns/python/property-access.d.ts +27 -0
  252. package/dist/patterns/python/property-access.d.ts.map +1 -0
  253. package/dist/patterns/python/property-access.js +132 -0
  254. package/dist/patterns/python/property-access.js.map +1 -0
  255. package/dist/patterns/python/requests.d.ts +19 -0
  256. package/dist/patterns/python/requests.d.ts.map +1 -0
  257. package/dist/patterns/python/requests.js +239 -0
  258. package/dist/patterns/python/requests.js.map +1 -0
  259. package/dist/patterns/python/types.d.ts +95 -0
  260. package/dist/patterns/python/types.d.ts.map +1 -0
  261. package/dist/patterns/python/types.js +43 -0
  262. package/dist/patterns/python/types.js.map +1 -0
  263. package/dist/patterns/registry.d.ts +181 -0
  264. package/dist/patterns/registry.d.ts.map +1 -0
  265. package/dist/patterns/registry.js +304 -0
  266. package/dist/patterns/registry.js.map +1 -0
  267. package/dist/patterns/rest/express.d.ts +78 -0
  268. package/dist/patterns/rest/express.d.ts.map +1 -0
  269. package/dist/patterns/rest/express.js +289 -0
  270. package/dist/patterns/rest/express.js.map +1 -0
  271. package/dist/patterns/rest/fastify.d.ts +93 -0
  272. package/dist/patterns/rest/fastify.d.ts.map +1 -0
  273. package/dist/patterns/rest/fastify.js +420 -0
  274. package/dist/patterns/rest/fastify.js.map +1 -0
  275. package/dist/patterns/rest/index.d.ts +31 -0
  276. package/dist/patterns/rest/index.d.ts.map +1 -0
  277. package/dist/patterns/rest/index.js +45 -0
  278. package/dist/patterns/rest/index.js.map +1 -0
  279. package/dist/patterns/rest/middleware.d.ts +25 -0
  280. package/dist/patterns/rest/middleware.d.ts.map +1 -0
  281. package/dist/patterns/rest/middleware.js +219 -0
  282. package/dist/patterns/rest/middleware.js.map +1 -0
  283. package/dist/patterns/rest/path-parser.d.ts +50 -0
  284. package/dist/patterns/rest/path-parser.d.ts.map +1 -0
  285. package/dist/patterns/rest/path-parser.js +137 -0
  286. package/dist/patterns/rest/path-parser.js.map +1 -0
  287. package/dist/patterns/rest/response-inference.d.ts +44 -0
  288. package/dist/patterns/rest/response-inference.d.ts.map +1 -0
  289. package/dist/patterns/rest/response-inference.js +218 -0
  290. package/dist/patterns/rest/response-inference.js.map +1 -0
  291. package/dist/patterns/rest/types.d.ts +102 -0
  292. package/dist/patterns/rest/types.d.ts.map +1 -0
  293. package/dist/patterns/rest/types.js +10 -0
  294. package/dist/patterns/rest/types.js.map +1 -0
  295. package/dist/patterns/types.d.ts +105 -0
  296. package/dist/patterns/types.d.ts.map +1 -0
  297. package/dist/patterns/types.js +11 -0
  298. package/dist/patterns/types.js.map +1 -0
  299. package/dist/report/index.d.ts +11 -0
  300. package/dist/report/index.d.ts.map +1 -0
  301. package/dist/report/index.js +55 -0
  302. package/dist/report/index.js.map +1 -0
  303. package/dist/tools/contract-comments.d.ts +48 -0
  304. package/dist/tools/contract-comments.d.ts.map +1 -0
  305. package/dist/tools/contract-comments.js +130 -0
  306. package/dist/tools/contract-comments.js.map +1 -0
  307. package/dist/tools/index.d.ts +6 -0
  308. package/dist/tools/index.d.ts.map +1 -0
  309. package/dist/tools/index.js +6 -0
  310. package/dist/tools/index.js.map +1 -0
  311. package/dist/tools/scaffold.d.ts +38 -0
  312. package/dist/tools/scaffold.d.ts.map +1 -0
  313. package/dist/tools/scaffold.js +373 -0
  314. package/dist/tools/scaffold.js.map +1 -0
  315. package/dist/trace/index.d.ts +28 -0
  316. package/dist/trace/index.d.ts.map +1 -0
  317. package/dist/trace/index.js +45 -0
  318. package/dist/trace/index.js.map +1 -0
  319. package/dist/types.d.ts +135 -0
  320. package/dist/types.d.ts.map +1 -0
  321. package/dist/types.js +22 -0
  322. package/dist/types.js.map +1 -0
  323. package/dist/watch/cache.d.ts +41 -0
  324. package/dist/watch/cache.d.ts.map +1 -0
  325. package/dist/watch/cache.js +230 -0
  326. package/dist/watch/cache.js.map +1 -0
  327. package/dist/watch/index.d.ts +9 -0
  328. package/dist/watch/index.d.ts.map +1 -0
  329. package/dist/watch/index.js +7 -0
  330. package/dist/watch/index.js.map +1 -0
  331. package/dist/watch/project.d.ts +128 -0
  332. package/dist/watch/project.d.ts.map +1 -0
  333. package/dist/watch/project.js +152 -0
  334. package/dist/watch/project.js.map +1 -0
  335. package/dist/watch/watcher.d.ts +76 -0
  336. package/dist/watch/watcher.d.ts.map +1 -0
  337. package/dist/watch/watcher.js +235 -0
  338. package/dist/watch/watcher.js.map +1 -0
  339. package/package.json +70 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag-parser.js","sourceRoot":"","sources":["../../../src/languages/go/tag-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Go Type Converter
3
+ * Converts Go types to JSON Schema / NormalizedSchema types
4
+ */
5
+ import type { GoProperty, GoStruct, GoSchema, GoTypeAlias } from './types.js';
6
+ /**
7
+ * Convert a Go type string to a JSON Schema property
8
+ */
9
+ export declare function convertGoType(goType: string, typeAliases?: Map<string, string>): GoProperty;
10
+ /**
11
+ * TypeConverter class for stateful type conversion operations
12
+ */
13
+ export declare class TypeConverter {
14
+ private typeAliases;
15
+ /**
16
+ * Register a type alias
17
+ */
18
+ registerAlias(alias: GoTypeAlias): void;
19
+ /**
20
+ * Register multiple type aliases
21
+ */
22
+ registerAliases(aliases: GoTypeAlias[]): void;
23
+ /**
24
+ * Convert a Go type to JSON Schema property
25
+ */
26
+ convert(goType: string): GoProperty;
27
+ /**
28
+ * Convert a GoStruct to a GoSchema
29
+ */
30
+ structToSchema(struct: GoStruct, allStructs?: Map<string, GoStruct>): GoSchema;
31
+ }
32
+ //# sourceMappingURL=type-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-converter.d.ts","sourceRoot":"","sources":["../../../src/languages/go/type-converter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAY9E;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,GAC3C,UAAU,CA0IZ;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAAkC;IAErD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIvC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IAM7C;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAInC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,QAAQ;CA+D/E"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Go Type Converter
3
+ * Converts Go types to JSON Schema / NormalizedSchema types
4
+ */
5
+ /**
6
+ * Map of known type aliases found in the source
7
+ */
8
+ const builtinAliases = {
9
+ // Standard aliases
10
+ byte: 'uint8',
11
+ rune: 'int32',
12
+ any: 'interface{}',
13
+ };
14
+ /**
15
+ * Convert a Go type string to a JSON Schema property
16
+ */
17
+ export function convertGoType(goType, typeAliases = new Map()) {
18
+ // Remove leading/trailing whitespace
19
+ goType = goType.trim();
20
+ // Check for pointer type
21
+ if (goType.startsWith('*')) {
22
+ const innerType = goType.slice(1);
23
+ const inner = convertGoType(innerType, typeAliases);
24
+ return {
25
+ ...inner,
26
+ nullable: true,
27
+ };
28
+ }
29
+ // Check for double pointer (treat same as pointer)
30
+ if (goType.startsWith('**')) {
31
+ const innerType = goType.slice(2);
32
+ const inner = convertGoType(innerType, typeAliases);
33
+ return {
34
+ ...inner,
35
+ nullable: true,
36
+ };
37
+ }
38
+ // Check for slice type
39
+ if (goType.startsWith('[]')) {
40
+ const elementType = goType.slice(2);
41
+ // Special case: []byte is typically base64 encoded string
42
+ if (elementType === 'byte') {
43
+ return { type: 'string', format: 'byte' };
44
+ }
45
+ return {
46
+ type: 'array',
47
+ items: convertGoType(elementType, typeAliases),
48
+ };
49
+ }
50
+ // Check for fixed-size array type [n]T
51
+ const arrayMatch = goType.match(/^\[(\d+)\](.+)$/);
52
+ if (arrayMatch) {
53
+ const elementType = arrayMatch[2];
54
+ // Treat as regular array in JSON Schema
55
+ return {
56
+ type: 'array',
57
+ items: convertGoType(elementType, typeAliases),
58
+ };
59
+ }
60
+ // Check for map type
61
+ const mapMatch = goType.match(/^map\[([^\]]+)\](.+)$/);
62
+ if (mapMatch) {
63
+ const valueType = mapMatch[2];
64
+ return {
65
+ type: 'object',
66
+ additionalProperties: convertGoType(valueType, typeAliases),
67
+ };
68
+ }
69
+ // Check for type alias
70
+ const resolvedType = typeAliases.get(goType) || builtinAliases[goType];
71
+ if (resolvedType) {
72
+ return convertGoType(resolvedType, typeAliases);
73
+ }
74
+ // Check for interface{} / any
75
+ if (goType === 'interface{}' || goType === 'any') {
76
+ return {}; // Any type - no constraints
77
+ }
78
+ // Check for time.Time
79
+ if (goType === 'time.Time') {
80
+ return { type: 'string', format: 'date-time' };
81
+ }
82
+ // Check for time.Duration
83
+ if (goType === 'time.Duration') {
84
+ return { type: 'integer' };
85
+ }
86
+ // Check for json.RawMessage
87
+ if (goType === 'json.RawMessage') {
88
+ return {}; // Any JSON value
89
+ }
90
+ // Check for json.Number
91
+ if (goType === 'json.Number') {
92
+ return { type: 'string' }; // json.Number is a string that can be parsed as number
93
+ }
94
+ // Primitive types
95
+ switch (goType) {
96
+ // String types
97
+ case 'string':
98
+ return { type: 'string' };
99
+ // Boolean
100
+ case 'bool':
101
+ return { type: 'boolean' };
102
+ // Integer types (signed)
103
+ case 'int':
104
+ case 'int8':
105
+ case 'int16':
106
+ case 'int32':
107
+ case 'int64':
108
+ return { type: 'integer' };
109
+ // Integer types (unsigned)
110
+ case 'uint':
111
+ case 'uint8':
112
+ case 'uint16':
113
+ case 'uint32':
114
+ case 'uint64':
115
+ case 'uintptr':
116
+ return { type: 'integer' };
117
+ // Floating point
118
+ case 'float32':
119
+ case 'float64':
120
+ return { type: 'number' };
121
+ // Complex types (not typically JSON serializable)
122
+ case 'complex64':
123
+ case 'complex128':
124
+ return { type: 'object' };
125
+ // Unknown type - treat as reference to another struct
126
+ default:
127
+ // If it contains a dot, it's a package-qualified type
128
+ if (goType.includes('.')) {
129
+ // Could be a known stdlib type or external type
130
+ return { type: 'object' };
131
+ }
132
+ // Otherwise it's likely a reference to another struct
133
+ return { type: 'object' };
134
+ }
135
+ }
136
+ /**
137
+ * TypeConverter class for stateful type conversion operations
138
+ */
139
+ export class TypeConverter {
140
+ typeAliases = new Map();
141
+ /**
142
+ * Register a type alias
143
+ */
144
+ registerAlias(alias) {
145
+ this.typeAliases.set(alias.name, alias.underlyingType);
146
+ }
147
+ /**
148
+ * Register multiple type aliases
149
+ */
150
+ registerAliases(aliases) {
151
+ for (const alias of aliases) {
152
+ this.registerAlias(alias);
153
+ }
154
+ }
155
+ /**
156
+ * Convert a Go type to JSON Schema property
157
+ */
158
+ convert(goType) {
159
+ return convertGoType(goType, this.typeAliases);
160
+ }
161
+ /**
162
+ * Convert a GoStruct to a GoSchema
163
+ */
164
+ structToSchema(struct, allStructs) {
165
+ const properties = {};
166
+ const required = [];
167
+ // Process embedded types first if we have access to all structs
168
+ if (allStructs) {
169
+ for (const embeddedName of struct.embeddedTypes) {
170
+ const baseName = embeddedName.replace(/^\*/, ''); // Remove pointer prefix
171
+ const embeddedStruct = allStructs.get(baseName);
172
+ if (embeddedStruct) {
173
+ // Merge embedded struct fields
174
+ for (const field of embeddedStruct.fields) {
175
+ if (field.skip)
176
+ continue;
177
+ const prop = this.convert(field.goType);
178
+ if (field.description) {
179
+ prop.description = field.description;
180
+ }
181
+ properties[field.jsonName] = prop;
182
+ // Embedded fields are never required by themselves
183
+ }
184
+ }
185
+ }
186
+ }
187
+ // Process direct fields (may override embedded fields)
188
+ for (const field of struct.fields) {
189
+ if (field.skip)
190
+ continue;
191
+ const prop = this.convert(field.goType);
192
+ if (field.description) {
193
+ prop.description = field.description;
194
+ }
195
+ properties[field.jsonName] = prop;
196
+ // Field is required if it doesn't have omitempty AND
197
+ // (has validate:"required" OR doesn't have omitempty)
198
+ if (!field.omitempty) {
199
+ // For validation, only add to required if validate:"required" is present
200
+ // OR if there's no omitempty and it's a request struct (heuristic)
201
+ if (field.validateRequired) {
202
+ required.push(field.jsonName);
203
+ }
204
+ else if (!field.omitempty) {
205
+ // For CreateUserRequest-style structs, non-omitempty fields are required
206
+ // But we need to check if validateRequired is explicitly set
207
+ if (struct.name.includes('Request') || struct.name.includes('Input')) {
208
+ // For request/input structs, fields without omitempty are required
209
+ if (!field.omitempty && field.jsonName) {
210
+ required.push(field.jsonName);
211
+ }
212
+ }
213
+ }
214
+ }
215
+ }
216
+ return {
217
+ name: struct.name,
218
+ type: 'object',
219
+ description: struct.description,
220
+ properties,
221
+ required, // Always include required array for consistent checking
222
+ sourceLocation: struct.sourceLocation,
223
+ };
224
+ }
225
+ }
226
+ //# sourceMappingURL=type-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-converter.js","sourceRoot":"","sources":["../../../src/languages/go/type-converter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Go Language Parser - Type Definitions
3
+ * Defines types for Go struct parsing, route detection, and schema generation
4
+ */
5
+ import type { SourceLocation } from '../../types.js';
6
+ /**
7
+ * Go struct field definition
8
+ */
9
+ export interface GoField {
10
+ /** Original Go field name */
11
+ name: string;
12
+ /** JSON property name (from json tag, or field name if no tag) */
13
+ jsonName: string;
14
+ /** Go type (e.g., 'string', 'int64', '*User') */
15
+ goType: string;
16
+ /** Whether the field is a pointer type */
17
+ isPointer: boolean;
18
+ /** Whether the field has omitempty tag */
19
+ omitempty: boolean;
20
+ /** Whether the field should be skipped (json:"-") */
21
+ skip: boolean;
22
+ /** Whether the field has validate:"required" */
23
+ validateRequired: boolean;
24
+ /** Field documentation comment */
25
+ description?: string;
26
+ /** Source line number */
27
+ line?: number;
28
+ }
29
+ /**
30
+ * Go struct definition
31
+ */
32
+ export interface GoStruct {
33
+ /** Struct name */
34
+ name: string;
35
+ /** Struct fields */
36
+ fields: GoField[];
37
+ /** Embedded struct type names */
38
+ embeddedTypes: string[];
39
+ /** Documentation comment */
40
+ description?: string;
41
+ /** Source location */
42
+ sourceLocation?: SourceLocation;
43
+ }
44
+ /**
45
+ * Go interface method definition
46
+ */
47
+ export interface GoMethod {
48
+ /** Method name */
49
+ name: string;
50
+ /** Parameter names */
51
+ parameters?: string[];
52
+ /** Return type names */
53
+ returnType?: string[];
54
+ }
55
+ /**
56
+ * Go interface definition
57
+ */
58
+ export interface GoInterface {
59
+ /** Interface name */
60
+ name: string;
61
+ /** Interface methods */
62
+ methods: GoMethod[];
63
+ /** Embedded interface names */
64
+ embeddedInterfaces: string[];
65
+ /** Documentation comment */
66
+ description?: string;
67
+ /** Source location */
68
+ sourceLocation?: SourceLocation;
69
+ }
70
+ /**
71
+ * Go route definition from HTTP framework detection
72
+ */
73
+ export interface GoRoute {
74
+ /** Route path (e.g., '/users/{id}') */
75
+ path: string;
76
+ /** HTTP method (GET, POST, etc.) */
77
+ method?: string;
78
+ /** Multiple methods (for stdlib that doesn't specify) */
79
+ methods?: string[];
80
+ /** Extracted path parameters */
81
+ pathParams?: string[];
82
+ /** Handler function name */
83
+ handler?: string;
84
+ /** Source line number */
85
+ line?: number;
86
+ }
87
+ /**
88
+ * Parsed JSON struct tag
89
+ */
90
+ export interface ParsedTag {
91
+ /** JSON property name */
92
+ name: string;
93
+ /** Whether omitempty is present */
94
+ omitempty: boolean;
95
+ /** Whether to skip serialization (json:"-") */
96
+ skip: boolean;
97
+ /** Whether to serialize as string (json:",string") */
98
+ asString: boolean;
99
+ }
100
+ /**
101
+ * Options for parsing Go source code
102
+ */
103
+ export interface GoParseOptions {
104
+ /** Source code content */
105
+ content: string;
106
+ /** File path for source location tracking */
107
+ filePath?: string;
108
+ }
109
+ /**
110
+ * Go schema (struct/interface) representation for output
111
+ */
112
+ export interface GoSchema {
113
+ /** Schema name (struct/interface name) */
114
+ name: string;
115
+ /** Schema type: 'object', 'interface' */
116
+ type?: string;
117
+ /** Description from comments */
118
+ description?: string;
119
+ /** Properties for struct fields */
120
+ properties?: Record<string, GoProperty>;
121
+ /** Required fields (no omitempty) */
122
+ required?: string[];
123
+ /** For composition (embedded structs) */
124
+ allOf?: GoSchema[];
125
+ /** Interface methods */
126
+ methods?: GoMethod[];
127
+ /** Source location */
128
+ sourceLocation?: SourceLocation;
129
+ }
130
+ /**
131
+ * Property definition for Go struct fields in JSON Schema format
132
+ */
133
+ export interface GoProperty {
134
+ type?: string;
135
+ format?: string;
136
+ description?: string;
137
+ items?: GoProperty;
138
+ additionalProperties?: GoProperty | boolean;
139
+ nullable?: boolean;
140
+ default?: unknown;
141
+ enum?: unknown[];
142
+ [key: string]: unknown;
143
+ }
144
+ /**
145
+ * Type alias definitions found in Go source
146
+ */
147
+ export interface GoTypeAlias {
148
+ /** Alias name */
149
+ name: string;
150
+ /** Underlying type */
151
+ underlyingType: string;
152
+ }
153
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/languages/go/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Go Language Parser - Type Definitions
3
+ * Defines types for Go struct parsing, route detection, and schema generation
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/languages/go/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}