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,559 @@
1
+ /**
2
+ * GraphQL SDL Parser
3
+ *
4
+ * Parses GraphQL Schema Definition Language (SDL) files.
5
+ * Uses the graphql package for robust parsing.
6
+ *
7
+ * @module GraphQL SDL Parser
8
+ * @see .context/ADR-P2-4-GRAPHQL-SUPPORT.md
9
+ */
10
+ import { buildSchema, GraphQLObjectType, GraphQLInputObjectType, GraphQLEnumType, GraphQLInterfaceType, GraphQLUnionType, isNonNullType, isListType, isNamedType, } from 'graphql';
11
+ // =============================================================================
12
+ // SDL Parser Class
13
+ // =============================================================================
14
+ /**
15
+ * SDL Parser class for parsing GraphQL schema files
16
+ */
17
+ export class SDLParser {
18
+ /**
19
+ * Parse a GraphQL SDL schema string
20
+ */
21
+ parse(schemaContent) {
22
+ const schema = buildSchema(schemaContent);
23
+ const result = {
24
+ types: [],
25
+ queries: [],
26
+ mutations: [],
27
+ subscriptions: [],
28
+ inputs: [],
29
+ enums: [],
30
+ interfaces: [],
31
+ unions: [],
32
+ };
33
+ // Extract Query type
34
+ const queryType = schema.getQueryType();
35
+ if (queryType) {
36
+ result.queries = this.extractFields(queryType);
37
+ }
38
+ // Extract Mutation type
39
+ const mutationType = schema.getMutationType();
40
+ if (mutationType) {
41
+ result.mutations = this.extractFields(mutationType);
42
+ }
43
+ // Extract Subscription type
44
+ const subscriptionType = schema.getSubscriptionType();
45
+ if (subscriptionType) {
46
+ result.subscriptions = this.extractFields(subscriptionType);
47
+ }
48
+ // Extract all types
49
+ const typeMap = schema.getTypeMap();
50
+ for (const [name, type] of Object.entries(typeMap)) {
51
+ // Skip internal types
52
+ if (name.startsWith('__'))
53
+ continue;
54
+ // Skip root types
55
+ if (name === 'Query' || name === 'Mutation' || name === 'Subscription')
56
+ continue;
57
+ if (type instanceof GraphQLObjectType) {
58
+ result.types.push(this.convertObjectType(type));
59
+ }
60
+ else if (type instanceof GraphQLInputObjectType) {
61
+ result.inputs.push(this.convertInputType(type));
62
+ }
63
+ else if (type instanceof GraphQLEnumType) {
64
+ result.enums.push(this.convertEnumType(type));
65
+ }
66
+ else if (type instanceof GraphQLInterfaceType) {
67
+ result.interfaces.push(this.convertInterfaceType(type));
68
+ }
69
+ else if (type instanceof GraphQLUnionType) {
70
+ result.unions.push(this.convertUnionType(type));
71
+ }
72
+ }
73
+ return result;
74
+ }
75
+ extractFields(type) {
76
+ const fields = type.getFields();
77
+ return Object.values(fields).map(field => this.convertField(field));
78
+ }
79
+ convertField(field) {
80
+ const typeRef = this.convertTypeRef(field.type);
81
+ return {
82
+ name: field.name,
83
+ type: typeRef,
84
+ arguments: field.args.map(arg => this.convertArgument(arg)),
85
+ description: field.description ?? undefined,
86
+ returnType: graphqlTypeToNormalized(typeRef),
87
+ };
88
+ }
89
+ convertInputField(field) {
90
+ return {
91
+ name: field.name,
92
+ type: this.convertTypeRef(field.type),
93
+ arguments: [],
94
+ description: field.description ?? undefined,
95
+ };
96
+ }
97
+ convertArgument(arg) {
98
+ return {
99
+ name: arg.name,
100
+ type: this.convertTypeRef(arg.type),
101
+ defaultValue: arg.defaultValue,
102
+ description: arg.description ?? undefined,
103
+ };
104
+ }
105
+ convertTypeRef(type) {
106
+ let nullable = true;
107
+ let currentType = type;
108
+ // Handle NonNull wrapper
109
+ if (isNonNullType(currentType)) {
110
+ nullable = false;
111
+ currentType = currentType.ofType;
112
+ }
113
+ // Handle List wrapper
114
+ if (isListType(currentType)) {
115
+ let innerType = currentType.ofType;
116
+ let innerNullable = true;
117
+ // Check if inner type is non-null
118
+ if (isNonNullType(innerType)) {
119
+ innerNullable = false;
120
+ innerType = innerType.ofType;
121
+ }
122
+ return {
123
+ name: innerType.name,
124
+ nullable,
125
+ isList: true,
126
+ ofType: {
127
+ name: innerType.name,
128
+ nullable: innerNullable,
129
+ isList: false,
130
+ },
131
+ };
132
+ }
133
+ // Named type
134
+ if (isNamedType(currentType)) {
135
+ return {
136
+ name: currentType.name,
137
+ nullable,
138
+ isList: false,
139
+ };
140
+ }
141
+ // Fallback
142
+ return {
143
+ name: 'Unknown',
144
+ nullable: true,
145
+ isList: false,
146
+ };
147
+ }
148
+ convertObjectType(type) {
149
+ const fields = type.getFields();
150
+ const interfaces = type.getInterfaces();
151
+ return {
152
+ name: type.name,
153
+ kind: 'object',
154
+ fields: Object.values(fields).map(field => this.convertField(field)),
155
+ interfaces: interfaces.map(i => i.name),
156
+ description: type.description ?? undefined,
157
+ };
158
+ }
159
+ convertInputType(type) {
160
+ const fields = type.getFields();
161
+ return {
162
+ name: type.name,
163
+ kind: 'input',
164
+ fields: Object.values(fields).map(field => this.convertInputField(field)),
165
+ description: type.description ?? undefined,
166
+ };
167
+ }
168
+ convertEnumType(type) {
169
+ return {
170
+ name: type.name,
171
+ kind: 'enum',
172
+ fields: [],
173
+ values: type.getValues().map(v => v.name),
174
+ description: type.description ?? undefined,
175
+ };
176
+ }
177
+ convertInterfaceType(type) {
178
+ const fields = type.getFields();
179
+ return {
180
+ name: type.name,
181
+ kind: 'interface',
182
+ fields: Object.values(fields).map(field => this.convertField(field)),
183
+ description: type.description ?? undefined,
184
+ };
185
+ }
186
+ convertUnionType(type) {
187
+ return {
188
+ name: type.name,
189
+ kind: 'union',
190
+ fields: [],
191
+ memberTypes: type.getTypes().map(t => t.name),
192
+ description: type.description ?? undefined,
193
+ };
194
+ }
195
+ }
196
+ // =============================================================================
197
+ // Helper Functions
198
+ // =============================================================================
199
+ /**
200
+ * Parse a GraphQL schema string into a schema definition
201
+ */
202
+ export function parseGraphQLSchema(schemaContent) {
203
+ const parser = new SDLParser();
204
+ return parser.parse(schemaContent);
205
+ }
206
+ /**
207
+ * Extract the Query type from a schema
208
+ */
209
+ export function extractQueryType(schemaContent) {
210
+ try {
211
+ const schema = buildSchema(schemaContent);
212
+ const queryType = schema.getQueryType();
213
+ if (!queryType)
214
+ return null;
215
+ const parser = new SDLParser();
216
+ const fields = queryType.getFields();
217
+ return {
218
+ name: 'Query',
219
+ kind: 'object',
220
+ fields: Object.values(fields).map(field => ({
221
+ name: field.name,
222
+ type: convertTypeRefStatic(field.type),
223
+ arguments: field.args.map(arg => ({
224
+ name: arg.name,
225
+ type: convertTypeRefStatic(arg.type),
226
+ defaultValue: arg.defaultValue,
227
+ description: arg.description ?? undefined,
228
+ })),
229
+ description: field.description ?? undefined,
230
+ })),
231
+ description: queryType.description ?? undefined,
232
+ };
233
+ }
234
+ catch {
235
+ return null;
236
+ }
237
+ }
238
+ /**
239
+ * Extract the Mutation type from a schema
240
+ */
241
+ export function extractMutationType(schemaContent) {
242
+ try {
243
+ const schema = buildSchema(schemaContent);
244
+ const mutationType = schema.getMutationType();
245
+ if (!mutationType)
246
+ return null;
247
+ const fields = mutationType.getFields();
248
+ return {
249
+ name: 'Mutation',
250
+ kind: 'object',
251
+ fields: Object.values(fields).map(field => ({
252
+ name: field.name,
253
+ type: convertTypeRefStatic(field.type),
254
+ arguments: field.args.map(arg => ({
255
+ name: arg.name,
256
+ type: convertTypeRefStatic(arg.type),
257
+ defaultValue: arg.defaultValue,
258
+ description: arg.description ?? undefined,
259
+ })),
260
+ description: field.description ?? undefined,
261
+ })),
262
+ description: mutationType.description ?? undefined,
263
+ };
264
+ }
265
+ catch {
266
+ return null;
267
+ }
268
+ }
269
+ /**
270
+ * Extract the Subscription type from a schema
271
+ */
272
+ export function extractSubscriptionType(schemaContent) {
273
+ try {
274
+ const schema = buildSchema(schemaContent);
275
+ const subscriptionType = schema.getSubscriptionType();
276
+ if (!subscriptionType)
277
+ return null;
278
+ const fields = subscriptionType.getFields();
279
+ return {
280
+ name: 'Subscription',
281
+ kind: 'object',
282
+ fields: Object.values(fields).map(field => ({
283
+ name: field.name,
284
+ type: convertTypeRefStatic(field.type),
285
+ arguments: field.args.map(arg => ({
286
+ name: arg.name,
287
+ type: convertTypeRefStatic(arg.type),
288
+ defaultValue: arg.defaultValue,
289
+ description: arg.description ?? undefined,
290
+ })),
291
+ description: field.description ?? undefined,
292
+ })),
293
+ description: subscriptionType.description ?? undefined,
294
+ };
295
+ }
296
+ catch {
297
+ return null;
298
+ }
299
+ }
300
+ /**
301
+ * Extract all object types from a schema
302
+ */
303
+ export function extractObjectTypes(schemaContent) {
304
+ try {
305
+ const schema = buildSchema(schemaContent);
306
+ const typeMap = schema.getTypeMap();
307
+ const result = [];
308
+ for (const [name, type] of Object.entries(typeMap)) {
309
+ // Skip internal types
310
+ if (name.startsWith('__'))
311
+ continue;
312
+ // Skip root types
313
+ if (name === 'Query' || name === 'Mutation' || name === 'Subscription')
314
+ continue;
315
+ if (type instanceof GraphQLObjectType) {
316
+ const fields = type.getFields();
317
+ const interfaces = type.getInterfaces();
318
+ result.push({
319
+ name: type.name,
320
+ kind: 'object',
321
+ fields: Object.values(fields).map(field => ({
322
+ name: field.name,
323
+ type: convertTypeRefStatic(field.type),
324
+ arguments: field.args.map(arg => ({
325
+ name: arg.name,
326
+ type: convertTypeRefStatic(arg.type),
327
+ defaultValue: arg.defaultValue,
328
+ description: arg.description ?? undefined,
329
+ })),
330
+ description: field.description ?? undefined,
331
+ })),
332
+ interfaces: interfaces.map(i => i.name),
333
+ description: type.description ?? undefined,
334
+ });
335
+ }
336
+ }
337
+ return result;
338
+ }
339
+ catch {
340
+ return [];
341
+ }
342
+ }
343
+ /**
344
+ * Extract all input types from a schema
345
+ */
346
+ export function extractInputTypes(schemaContent) {
347
+ try {
348
+ const schema = buildSchema(schemaContent);
349
+ const typeMap = schema.getTypeMap();
350
+ const result = [];
351
+ for (const [name, type] of Object.entries(typeMap)) {
352
+ if (name.startsWith('__'))
353
+ continue;
354
+ if (type instanceof GraphQLInputObjectType) {
355
+ const fields = type.getFields();
356
+ result.push({
357
+ name: type.name,
358
+ kind: 'input',
359
+ fields: Object.values(fields).map(field => ({
360
+ name: field.name,
361
+ type: convertTypeRefStatic(field.type),
362
+ arguments: [],
363
+ description: field.description ?? undefined,
364
+ })),
365
+ description: type.description ?? undefined,
366
+ });
367
+ }
368
+ }
369
+ return result;
370
+ }
371
+ catch {
372
+ return [];
373
+ }
374
+ }
375
+ /**
376
+ * Extract all enum types from a schema
377
+ */
378
+ export function extractEnumTypes(schemaContent) {
379
+ try {
380
+ const schema = buildSchema(schemaContent);
381
+ const typeMap = schema.getTypeMap();
382
+ const result = [];
383
+ for (const [name, type] of Object.entries(typeMap)) {
384
+ if (name.startsWith('__'))
385
+ continue;
386
+ if (type instanceof GraphQLEnumType) {
387
+ result.push({
388
+ name: type.name,
389
+ kind: 'enum',
390
+ fields: [],
391
+ values: type.getValues().map(v => v.name),
392
+ description: type.description ?? undefined,
393
+ });
394
+ }
395
+ }
396
+ return result;
397
+ }
398
+ catch {
399
+ return [];
400
+ }
401
+ }
402
+ /**
403
+ * Extract all interface types from a schema
404
+ */
405
+ export function extractInterfaceTypes(schemaContent) {
406
+ try {
407
+ const schema = buildSchema(schemaContent);
408
+ const typeMap = schema.getTypeMap();
409
+ const result = [];
410
+ for (const [name, type] of Object.entries(typeMap)) {
411
+ if (name.startsWith('__'))
412
+ continue;
413
+ if (type instanceof GraphQLInterfaceType) {
414
+ const fields = type.getFields();
415
+ result.push({
416
+ name: type.name,
417
+ kind: 'interface',
418
+ fields: Object.values(fields).map(field => ({
419
+ name: field.name,
420
+ type: convertTypeRefStatic(field.type),
421
+ arguments: field.args.map(arg => ({
422
+ name: arg.name,
423
+ type: convertTypeRefStatic(arg.type),
424
+ defaultValue: arg.defaultValue,
425
+ description: arg.description ?? undefined,
426
+ })),
427
+ description: field.description ?? undefined,
428
+ })),
429
+ description: type.description ?? undefined,
430
+ });
431
+ }
432
+ }
433
+ return result;
434
+ }
435
+ catch {
436
+ return [];
437
+ }
438
+ }
439
+ /**
440
+ * Extract all union types from a schema
441
+ */
442
+ export function extractUnionTypes(schemaContent) {
443
+ try {
444
+ const schema = buildSchema(schemaContent);
445
+ const typeMap = schema.getTypeMap();
446
+ const result = [];
447
+ for (const [name, type] of Object.entries(typeMap)) {
448
+ if (name.startsWith('__'))
449
+ continue;
450
+ if (type instanceof GraphQLUnionType) {
451
+ result.push({
452
+ name: type.name,
453
+ kind: 'union',
454
+ fields: [],
455
+ memberTypes: type.getTypes().map(t => t.name),
456
+ description: type.description ?? undefined,
457
+ });
458
+ }
459
+ }
460
+ return result;
461
+ }
462
+ catch {
463
+ return [];
464
+ }
465
+ }
466
+ /**
467
+ * Convert a GraphQL type reference to a NormalizedType
468
+ *
469
+ * Note: Returns an extended type with extra properties (name, nullable, ofType)
470
+ * that are specific to GraphQL type handling.
471
+ */
472
+ export function graphqlTypeToNormalized(type) {
473
+ // Handle arrays
474
+ if (type.isList) {
475
+ const elementType = type.ofType ?? type;
476
+ const convertedElement = graphqlTypeToNormalized({
477
+ name: elementType.name,
478
+ nullable: elementType.nullable,
479
+ isList: false,
480
+ });
481
+ return {
482
+ kind: 'array',
483
+ ofType: convertedElement,
484
+ };
485
+ }
486
+ // Map GraphQL scalar types to primitives
487
+ const scalarMap = {
488
+ 'ID': 'string',
489
+ 'String': 'string',
490
+ 'Int': 'number',
491
+ 'Float': 'number',
492
+ 'Boolean': 'boolean',
493
+ };
494
+ const primitive = scalarMap[type.name];
495
+ if (primitive) {
496
+ // Return simple object that matches test expectations exactly
497
+ return {
498
+ kind: 'primitive',
499
+ name: primitive,
500
+ nullable: type.nullable,
501
+ };
502
+ }
503
+ // Custom types are references - use 'reference' as tests expect
504
+ return {
505
+ kind: 'reference',
506
+ name: type.name,
507
+ nullable: type.nullable,
508
+ };
509
+ }
510
+ // =============================================================================
511
+ // Static Helper Functions
512
+ // =============================================================================
513
+ /**
514
+ * Convert GraphQL type to TypeRef (static function for use in extractors)
515
+ */
516
+ function convertTypeRefStatic(type) {
517
+ let nullable = true;
518
+ let currentType = type;
519
+ // Handle NonNull wrapper
520
+ if (isNonNullType(currentType)) {
521
+ nullable = false;
522
+ currentType = currentType.ofType;
523
+ }
524
+ // Handle List wrapper
525
+ if (isListType(currentType)) {
526
+ let innerType = currentType.ofType;
527
+ let innerNullable = true;
528
+ // Check if inner type is non-null
529
+ if (isNonNullType(innerType)) {
530
+ innerNullable = false;
531
+ innerType = innerType.ofType;
532
+ }
533
+ return {
534
+ name: innerType.name,
535
+ nullable,
536
+ isList: true,
537
+ ofType: {
538
+ name: innerType.name,
539
+ nullable: innerNullable,
540
+ isList: false,
541
+ },
542
+ };
543
+ }
544
+ // Named type
545
+ if (isNamedType(currentType)) {
546
+ return {
547
+ name: currentType.name,
548
+ nullable,
549
+ isList: false,
550
+ };
551
+ }
552
+ // Fallback
553
+ return {
554
+ name: 'Unknown',
555
+ nullable: true,
556
+ isList: false,
557
+ };
558
+ }
559
+ //# sourceMappingURL=sdl-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdl-parser.js","sourceRoot":"","sources":["../../../src/adapters/graphql/sdl-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * gRPC Adapter
3
+ *
4
+ * Schema adapter for gRPC/Protobuf files.
5
+ */
6
+ import type { SchemaAdapter, SchemaRef, NormalizedSchema } from '../../core/types.js';
7
+ /**
8
+ * gRPC Schema Adapter
9
+ */
10
+ export declare class GrpcAdapter implements SchemaAdapter {
11
+ readonly kind: "grpc";
12
+ private parser;
13
+ private converter;
14
+ constructor();
15
+ /**
16
+ * Check if this adapter supports the given schema reference
17
+ */
18
+ supports(ref: SchemaRef): boolean;
19
+ /**
20
+ * Extract a schema from a gRPC ref
21
+ */
22
+ extract(ref: SchemaRef): Promise<NormalizedSchema>;
23
+ /**
24
+ * List all available schemas in a proto file
25
+ */
26
+ list(basePath: string): Promise<SchemaRef[]>;
27
+ /**
28
+ * Parse a gRPC ref id
29
+ */
30
+ private parseRefId;
31
+ /**
32
+ * Extract message schema
33
+ */
34
+ private extractMessageSchema;
35
+ /**
36
+ * Extract enum schema
37
+ */
38
+ private extractEnumSchema;
39
+ /**
40
+ * Extract service schema (all methods)
41
+ */
42
+ private extractServiceSchema;
43
+ /**
44
+ * Extract specific method schema
45
+ */
46
+ private extractMethodSchema;
47
+ /**
48
+ * Convert a method to a type
49
+ */
50
+ private methodToType;
51
+ /**
52
+ * Get the streaming mode of a method
53
+ */
54
+ private getStreamingMode;
55
+ /**
56
+ * Find a message by full name or short name
57
+ */
58
+ private findMessage;
59
+ /**
60
+ * Find a nested message
61
+ */
62
+ private findNestedMessage;
63
+ /**
64
+ * Find an enum by full name or short name
65
+ */
66
+ private findEnum;
67
+ /**
68
+ * Find a nested enum
69
+ */
70
+ private findNestedEnum;
71
+ /**
72
+ * Find a service by full name or short name
73
+ */
74
+ private findService;
75
+ }
76
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/grpc/adapter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,gBAAgB,EAGjB,MAAM,qBAAqB,CAAC;AAoB7B;;GAEG;AACH,qBAAa,WAAY,YAAW,aAAa;IAC/C,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAU;IAEhC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAqB;;IAOtC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IASjC;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2CxD;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgDlD;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;OAEG;IACH,OAAO,CAAC,YAAY;IAoCpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAmBhB;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACH,OAAO,CAAC,WAAW;CASpB"}