@structured-world/gitlab-mcp 5.7.0 → 6.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 (385) hide show
  1. package/README.md +251 -1
  2. package/dist/generated/prisma/client.d.ts +13 -0
  3. package/dist/generated/prisma/client.js +46 -0
  4. package/dist/generated/prisma/client.js.map +1 -0
  5. package/dist/generated/prisma/commonInputTypes.d.ts +245 -0
  6. package/dist/generated/prisma/commonInputTypes.js +3 -0
  7. package/dist/generated/prisma/commonInputTypes.js.map +1 -0
  8. package/dist/generated/prisma/enums.d.ts +1 -0
  9. package/dist/generated/prisma/enums.js +3 -0
  10. package/dist/generated/prisma/enums.js.map +1 -0
  11. package/dist/generated/prisma/internal/class.d.ts +47 -0
  12. package/dist/generated/prisma/internal/class.js +66 -0
  13. package/dist/generated/prisma/internal/class.js.map +1 -0
  14. package/dist/generated/prisma/internal/prismaNamespace.d.ts +712 -0
  15. package/dist/generated/prisma/internal/prismaNamespace.js +139 -0
  16. package/dist/generated/prisma/internal/prismaNamespace.js.map +1 -0
  17. package/dist/generated/prisma/models/AuthCodeFlowState.d.ts +513 -0
  18. package/dist/generated/prisma/models/AuthCodeFlowState.js +3 -0
  19. package/dist/generated/prisma/models/AuthCodeFlowState.js.map +1 -0
  20. package/dist/generated/prisma/models/AuthorizationCode.d.ts +641 -0
  21. package/dist/generated/prisma/models/AuthorizationCode.js +3 -0
  22. package/dist/generated/prisma/models/AuthorizationCode.js.map +1 -0
  23. package/dist/generated/prisma/models/DeviceFlowState.d.ts +606 -0
  24. package/dist/generated/prisma/models/DeviceFlowState.js +3 -0
  25. package/dist/generated/prisma/models/DeviceFlowState.js.map +1 -0
  26. package/dist/generated/prisma/models/McpSessionMapping.d.ts +438 -0
  27. package/dist/generated/prisma/models/McpSessionMapping.js +3 -0
  28. package/dist/generated/prisma/models/McpSessionMapping.js.map +1 -0
  29. package/dist/generated/prisma/models/OAuthSession.d.ts +962 -0
  30. package/dist/generated/prisma/models/OAuthSession.js +3 -0
  31. package/dist/generated/prisma/models/OAuthSession.js.map +1 -0
  32. package/dist/generated/prisma/models.d.ts +6 -0
  33. package/dist/generated/prisma/models.js +3 -0
  34. package/dist/generated/prisma/models.js.map +1 -0
  35. package/dist/{config.d.ts → src/config.d.ts} +11 -0
  36. package/dist/{config.js → src/config.js} +12 -1
  37. package/dist/src/config.js.map +1 -0
  38. package/dist/src/entities/core/index.js.map +1 -0
  39. package/dist/src/entities/core/registry.js +745 -0
  40. package/dist/src/entities/core/registry.js.map +1 -0
  41. package/dist/src/entities/core/schema-readonly.d.ts +290 -0
  42. package/dist/src/entities/core/schema-readonly.js +296 -0
  43. package/dist/src/entities/core/schema-readonly.js.map +1 -0
  44. package/dist/src/entities/core/schema.d.ts +71 -0
  45. package/dist/src/entities/core/schema.js +93 -0
  46. package/dist/src/entities/core/schema.js.map +1 -0
  47. package/dist/src/entities/files/index.js.map +1 -0
  48. package/dist/src/entities/files/registry.js +165 -0
  49. package/dist/src/entities/files/registry.js.map +1 -0
  50. package/dist/src/entities/files/schema-readonly.d.ts +93 -0
  51. package/dist/{entities → src/entities}/files/schema-readonly.js +20 -1
  52. package/dist/src/entities/files/schema-readonly.js.map +1 -0
  53. package/dist/src/entities/files/schema.d.ts +82 -0
  54. package/dist/src/entities/files/schema.js +79 -0
  55. package/dist/src/entities/files/schema.js.map +1 -0
  56. package/dist/src/entities/index.js.map +1 -0
  57. package/dist/src/entities/labels/index.js.map +1 -0
  58. package/dist/src/entities/labels/registry.js +139 -0
  59. package/dist/src/entities/labels/registry.js.map +1 -0
  60. package/dist/src/entities/labels/schema-readonly.d.ts +14 -0
  61. package/dist/src/entities/labels/schema-readonly.js.map +1 -0
  62. package/dist/src/entities/labels/schema.d.ts +23 -0
  63. package/dist/src/entities/labels/schema.js.map +1 -0
  64. package/dist/src/entities/milestones/index.js.map +1 -0
  65. package/dist/src/entities/milestones/registry.js +197 -0
  66. package/dist/src/entities/milestones/registry.js.map +1 -0
  67. package/dist/src/entities/milestones/schema-readonly.d.ts +58 -0
  68. package/dist/src/entities/milestones/schema-readonly.js.map +1 -0
  69. package/dist/src/entities/milestones/schema.d.ts +32 -0
  70. package/dist/src/entities/milestones/schema.js.map +1 -0
  71. package/dist/src/entities/mrs/index.js.map +1 -0
  72. package/dist/{entities → src/entities}/mrs/registry.js +64 -81
  73. package/dist/src/entities/mrs/registry.js.map +1 -0
  74. package/dist/src/entities/mrs/schema-readonly.d.ts +127 -0
  75. package/dist/src/entities/mrs/schema-readonly.js.map +1 -0
  76. package/dist/src/entities/mrs/schema.d.ts +285 -0
  77. package/dist/src/entities/mrs/schema.js.map +1 -0
  78. package/dist/src/entities/pipelines/index.js.map +1 -0
  79. package/dist/{entities → src/entities}/pipelines/registry.js +72 -200
  80. package/dist/src/entities/pipelines/registry.js.map +1 -0
  81. package/dist/src/entities/pipelines/schema-readonly.d.ts +238 -0
  82. package/dist/src/entities/pipelines/schema-readonly.js.map +1 -0
  83. package/dist/src/entities/pipelines/schema.d.ts +49 -0
  84. package/dist/src/entities/pipelines/schema.js.map +1 -0
  85. package/dist/src/entities/shared.d.ts +291 -0
  86. package/dist/src/entities/shared.js.map +1 -0
  87. package/dist/src/entities/utils.d.ts +3 -0
  88. package/dist/src/entities/utils.js.map +1 -0
  89. package/dist/src/entities/variables/index.js.map +1 -0
  90. package/dist/src/entities/variables/registry.js +153 -0
  91. package/dist/src/entities/variables/registry.js.map +1 -0
  92. package/dist/src/entities/variables/schema-readonly.d.ts +15 -0
  93. package/dist/src/entities/variables/schema-readonly.js.map +1 -0
  94. package/dist/src/entities/variables/schema.d.ts +42 -0
  95. package/dist/src/entities/variables/schema.js.map +1 -0
  96. package/dist/src/entities/wiki/index.js.map +1 -0
  97. package/dist/src/entities/wiki/registry.js +136 -0
  98. package/dist/src/entities/wiki/registry.js.map +1 -0
  99. package/dist/src/entities/wiki/schema-readonly.d.ts +22 -0
  100. package/dist/src/entities/wiki/schema-readonly.js.map +1 -0
  101. package/dist/{entities → src/entities}/wiki/schema.d.ts +3 -31
  102. package/dist/src/entities/wiki/schema.js.map +1 -0
  103. package/dist/src/entities/workitems/index.js.map +1 -0
  104. package/dist/{entities → src/entities}/workitems/registry.js +40 -7
  105. package/dist/src/entities/workitems/registry.js.map +1 -0
  106. package/dist/src/entities/workitems/schema-readonly.d.ts +52 -0
  107. package/dist/{entities → src/entities}/workitems/schema-readonly.js +1 -1
  108. package/dist/src/entities/workitems/schema-readonly.js.map +1 -0
  109. package/dist/src/entities/workitems/schema.d.ts +37 -0
  110. package/dist/src/entities/workitems/schema.js.map +1 -0
  111. package/dist/src/graphql/DynamicWorkItemsQuery.js.map +1 -0
  112. package/dist/src/graphql/client.js.map +1 -0
  113. package/dist/src/graphql/index.js.map +1 -0
  114. package/dist/src/graphql/workItems.js.map +1 -0
  115. package/dist/{handlers.js → src/handlers.js} +15 -0
  116. package/dist/src/handlers.js.map +1 -0
  117. package/dist/{http-client.js → src/http-client.js} +0 -4
  118. package/dist/src/http-client.js.map +1 -0
  119. package/dist/src/logger.js.map +1 -0
  120. package/dist/src/main.js.map +1 -0
  121. package/dist/src/middleware/index.d.ts +2 -0
  122. package/dist/src/middleware/index.js +12 -0
  123. package/dist/src/middleware/index.js.map +1 -0
  124. package/dist/src/middleware/oauth-auth.d.ts +4 -0
  125. package/dist/src/middleware/oauth-auth.js +119 -0
  126. package/dist/src/middleware/oauth-auth.js.map +1 -0
  127. package/dist/src/middleware/rate-limiter.d.ts +11 -0
  128. package/dist/src/middleware/rate-limiter.js +145 -0
  129. package/dist/src/middleware/rate-limiter.js.map +1 -0
  130. package/dist/src/oauth/config.d.ts +19 -0
  131. package/dist/src/oauth/config.js +70 -0
  132. package/dist/src/oauth/config.js.map +1 -0
  133. package/dist/src/oauth/endpoints/authorize.d.ts +3 -0
  134. package/dist/src/oauth/endpoints/authorize.js +454 -0
  135. package/dist/src/oauth/endpoints/authorize.js.map +1 -0
  136. package/dist/src/oauth/endpoints/callback.d.ts +2 -0
  137. package/dist/src/oauth/endpoints/callback.js +129 -0
  138. package/dist/src/oauth/endpoints/callback.js.map +1 -0
  139. package/dist/src/oauth/endpoints/index.d.ts +5 -0
  140. package/dist/src/oauth/endpoints/index.js +20 -0
  141. package/dist/src/oauth/endpoints/index.js.map +1 -0
  142. package/dist/src/oauth/endpoints/metadata.d.ts +5 -0
  143. package/dist/src/oauth/endpoints/metadata.js +48 -0
  144. package/dist/src/oauth/endpoints/metadata.js.map +1 -0
  145. package/dist/src/oauth/endpoints/register.d.ts +15 -0
  146. package/dist/src/oauth/endpoints/register.js +85 -0
  147. package/dist/src/oauth/endpoints/register.js.map +1 -0
  148. package/dist/src/oauth/endpoints/token.d.ts +2 -0
  149. package/dist/src/oauth/endpoints/token.js +159 -0
  150. package/dist/src/oauth/endpoints/token.js.map +1 -0
  151. package/dist/src/oauth/gitlab-device-flow.d.ts +10 -0
  152. package/dist/src/oauth/gitlab-device-flow.js +215 -0
  153. package/dist/src/oauth/gitlab-device-flow.js.map +1 -0
  154. package/dist/src/oauth/index.d.ts +10 -0
  155. package/dist/src/oauth/index.js +65 -0
  156. package/dist/src/oauth/index.js.map +1 -0
  157. package/dist/src/oauth/session-store.d.ts +54 -0
  158. package/dist/src/oauth/session-store.js +302 -0
  159. package/dist/src/oauth/session-store.js.map +1 -0
  160. package/dist/src/oauth/storage/factory.d.ts +4 -0
  161. package/dist/src/oauth/storage/factory.js +75 -0
  162. package/dist/src/oauth/storage/factory.js.map +1 -0
  163. package/dist/src/oauth/storage/file.d.ts +50 -0
  164. package/dist/src/oauth/storage/file.js +287 -0
  165. package/dist/src/oauth/storage/file.js.map +1 -0
  166. package/dist/src/oauth/storage/index.d.ts +5 -0
  167. package/dist/src/oauth/storage/index.js +22 -0
  168. package/dist/src/oauth/storage/index.js.map +1 -0
  169. package/dist/src/oauth/storage/memory.d.ts +76 -0
  170. package/dist/src/oauth/storage/memory.js +277 -0
  171. package/dist/src/oauth/storage/memory.js.map +1 -0
  172. package/dist/src/oauth/storage/postgresql.d.ts +41 -0
  173. package/dist/src/oauth/storage/postgresql.js +435 -0
  174. package/dist/src/oauth/storage/postgresql.js.map +1 -0
  175. package/dist/src/oauth/storage/types.d.ts +67 -0
  176. package/dist/src/oauth/storage/types.js +5 -0
  177. package/dist/src/oauth/storage/types.js.map +1 -0
  178. package/dist/src/oauth/token-context.d.ts +8 -0
  179. package/dist/src/oauth/token-context.js +40 -0
  180. package/dist/src/oauth/token-context.js.map +1 -0
  181. package/dist/src/oauth/token-utils.d.ts +14 -0
  182. package/dist/src/oauth/token-utils.js +148 -0
  183. package/dist/src/oauth/token-utils.js.map +1 -0
  184. package/dist/src/oauth/types.d.ts +104 -0
  185. package/dist/src/oauth/types.js +3 -0
  186. package/dist/src/oauth/types.js.map +1 -0
  187. package/dist/src/registry-manager.js.map +1 -0
  188. package/dist/{server.d.ts → src/server.d.ts} +11 -0
  189. package/dist/src/server.js +444 -0
  190. package/dist/src/server.js.map +1 -0
  191. package/dist/{services → src/services}/ConnectionManager.d.ts +2 -0
  192. package/dist/{services → src/services}/ConnectionManager.js +99 -7
  193. package/dist/src/services/ConnectionManager.js.map +1 -0
  194. package/dist/src/services/GitLabVersionDetector.js.map +1 -0
  195. package/dist/src/services/SchemaIntrospector.js.map +1 -0
  196. package/dist/{services → src/services}/ToolAvailability.js +3 -4
  197. package/dist/src/services/ToolAvailability.js.map +1 -0
  198. package/dist/src/services/WidgetAvailability.js.map +1 -0
  199. package/dist/src/types.js.map +1 -0
  200. package/dist/src/utils/fetch.d.ts +5 -0
  201. package/dist/{utils → src/utils}/fetch.js +89 -52
  202. package/dist/src/utils/fetch.js.map +1 -0
  203. package/dist/src/utils/gitlab-api.d.ts +21 -0
  204. package/dist/src/utils/gitlab-api.js +132 -0
  205. package/dist/src/utils/gitlab-api.js.map +1 -0
  206. package/dist/src/utils/idConversion.js.map +1 -0
  207. package/dist/{utils → src/utils}/namespace.js +1 -5
  208. package/dist/src/utils/namespace.js.map +1 -0
  209. package/dist/src/utils/projectIdentifier.js.map +1 -0
  210. package/dist/{utils → src/utils}/smart-user-search.js +1 -5
  211. package/dist/src/utils/smart-user-search.js.map +1 -0
  212. package/dist/src/utils/workItemTypes.js.map +1 -0
  213. package/dist/structured-world-gitlab-mcp-6.0.0.tgz +0 -0
  214. package/dist/tsconfig.build.tsbuildinfo +1 -1
  215. package/package.json +34 -31
  216. package/dist/config.js.map +0 -1
  217. package/dist/entities/core/index.js.map +0 -1
  218. package/dist/entities/core/registry.js +0 -778
  219. package/dist/entities/core/registry.js.map +0 -1
  220. package/dist/entities/core/schema-readonly.d.ts +0 -547
  221. package/dist/entities/core/schema-readonly.js +0 -471
  222. package/dist/entities/core/schema-readonly.js.map +0 -1
  223. package/dist/entities/core/schema.d.ts +0 -210
  224. package/dist/entities/core/schema.js +0 -230
  225. package/dist/entities/core/schema.js.map +0 -1
  226. package/dist/entities/files/index.js.map +0 -1
  227. package/dist/entities/files/registry.js +0 -207
  228. package/dist/entities/files/registry.js.map +0 -1
  229. package/dist/entities/files/schema-readonly.d.ts +0 -178
  230. package/dist/entities/files/schema-readonly.js.map +0 -1
  231. package/dist/entities/files/schema.d.ts +0 -107
  232. package/dist/entities/files/schema.js +0 -38
  233. package/dist/entities/files/schema.js.map +0 -1
  234. package/dist/entities/index.js.map +0 -1
  235. package/dist/entities/labels/index.js.map +0 -1
  236. package/dist/entities/labels/registry.js +0 -176
  237. package/dist/entities/labels/registry.js.map +0 -1
  238. package/dist/entities/labels/schema-readonly.d.ts +0 -32
  239. package/dist/entities/labels/schema-readonly.js.map +0 -1
  240. package/dist/entities/labels/schema.d.ts +0 -55
  241. package/dist/entities/labels/schema.js.map +0 -1
  242. package/dist/entities/milestones/index.js.map +0 -1
  243. package/dist/entities/milestones/registry.js +0 -300
  244. package/dist/entities/milestones/registry.js.map +0 -1
  245. package/dist/entities/milestones/schema-readonly.d.ts +0 -138
  246. package/dist/entities/milestones/schema-readonly.js.map +0 -1
  247. package/dist/entities/milestones/schema.d.ts +0 -69
  248. package/dist/entities/milestones/schema.js.map +0 -1
  249. package/dist/entities/mrs/index.js.map +0 -1
  250. package/dist/entities/mrs/registry.js.map +0 -1
  251. package/dist/entities/mrs/schema-readonly.d.ts +0 -302
  252. package/dist/entities/mrs/schema-readonly.js.map +0 -1
  253. package/dist/entities/mrs/schema.d.ts +0 -1028
  254. package/dist/entities/mrs/schema.js.map +0 -1
  255. package/dist/entities/pipelines/index.js.map +0 -1
  256. package/dist/entities/pipelines/registry.js.map +0 -1
  257. package/dist/entities/pipelines/schema-readonly.d.ts +0 -648
  258. package/dist/entities/pipelines/schema-readonly.js.map +0 -1
  259. package/dist/entities/pipelines/schema.d.ts +0 -123
  260. package/dist/entities/pipelines/schema.js.map +0 -1
  261. package/dist/entities/shared.d.ts +0 -968
  262. package/dist/entities/shared.js.map +0 -1
  263. package/dist/entities/utils.d.ts +0 -3
  264. package/dist/entities/utils.js.map +0 -1
  265. package/dist/entities/variables/index.js.map +0 -1
  266. package/dist/entities/variables/registry.js +0 -308
  267. package/dist/entities/variables/registry.js.map +0 -1
  268. package/dist/entities/variables/schema-readonly.d.ts +0 -40
  269. package/dist/entities/variables/schema-readonly.js.map +0 -1
  270. package/dist/entities/variables/schema.d.ts +0 -102
  271. package/dist/entities/variables/schema.js.map +0 -1
  272. package/dist/entities/wiki/index.js.map +0 -1
  273. package/dist/entities/wiki/registry.js +0 -173
  274. package/dist/entities/wiki/registry.js.map +0 -1
  275. package/dist/entities/wiki/schema-readonly.d.ts +0 -53
  276. package/dist/entities/wiki/schema-readonly.js.map +0 -1
  277. package/dist/entities/wiki/schema.js.map +0 -1
  278. package/dist/entities/workitems/index.js.map +0 -1
  279. package/dist/entities/workitems/registry.js.map +0 -1
  280. package/dist/entities/workitems/schema-readonly.d.ts +0 -49
  281. package/dist/entities/workitems/schema-readonly.js.map +0 -1
  282. package/dist/entities/workitems/schema.d.ts +0 -61
  283. package/dist/entities/workitems/schema.js.map +0 -1
  284. package/dist/graphql/DynamicWorkItemsQuery.js.map +0 -1
  285. package/dist/graphql/client.js.map +0 -1
  286. package/dist/graphql/index.js.map +0 -1
  287. package/dist/graphql/workItems.js.map +0 -1
  288. package/dist/handlers.js.map +0 -1
  289. package/dist/http-client.js.map +0 -1
  290. package/dist/logger.js.map +0 -1
  291. package/dist/main.js.map +0 -1
  292. package/dist/registry-manager.js.map +0 -1
  293. package/dist/server.js +0 -202
  294. package/dist/server.js.map +0 -1
  295. package/dist/services/ConnectionManager.js.map +0 -1
  296. package/dist/services/GitLabVersionDetector.js.map +0 -1
  297. package/dist/services/SchemaIntrospector.js.map +0 -1
  298. package/dist/services/ToolAvailability.js.map +0 -1
  299. package/dist/services/WidgetAvailability.js.map +0 -1
  300. package/dist/structured-world-gitlab-mcp-5.7.0.tgz +0 -0
  301. package/dist/types.js.map +0 -1
  302. package/dist/utils/fetch.d.ts +0 -9
  303. package/dist/utils/fetch.js.map +0 -1
  304. package/dist/utils/idConversion.js.map +0 -1
  305. package/dist/utils/namespace.js.map +0 -1
  306. package/dist/utils/projectIdentifier.js.map +0 -1
  307. package/dist/utils/smart-user-search.js.map +0 -1
  308. package/dist/utils/workItemTypes.js.map +0 -1
  309. /package/dist/{entities → src/entities}/core/index.d.ts +0 -0
  310. /package/dist/{entities → src/entities}/core/index.js +0 -0
  311. /package/dist/{entities → src/entities}/core/registry.d.ts +0 -0
  312. /package/dist/{entities → src/entities}/files/index.d.ts +0 -0
  313. /package/dist/{entities → src/entities}/files/index.js +0 -0
  314. /package/dist/{entities → src/entities}/files/registry.d.ts +0 -0
  315. /package/dist/{entities → src/entities}/index.d.ts +0 -0
  316. /package/dist/{entities → src/entities}/index.js +0 -0
  317. /package/dist/{entities → src/entities}/labels/index.d.ts +0 -0
  318. /package/dist/{entities → src/entities}/labels/index.js +0 -0
  319. /package/dist/{entities → src/entities}/labels/registry.d.ts +0 -0
  320. /package/dist/{entities → src/entities}/labels/schema-readonly.js +0 -0
  321. /package/dist/{entities → src/entities}/labels/schema.js +0 -0
  322. /package/dist/{entities → src/entities}/milestones/index.d.ts +0 -0
  323. /package/dist/{entities → src/entities}/milestones/index.js +0 -0
  324. /package/dist/{entities → src/entities}/milestones/registry.d.ts +0 -0
  325. /package/dist/{entities → src/entities}/milestones/schema-readonly.js +0 -0
  326. /package/dist/{entities → src/entities}/milestones/schema.js +0 -0
  327. /package/dist/{entities → src/entities}/mrs/index.d.ts +0 -0
  328. /package/dist/{entities → src/entities}/mrs/index.js +0 -0
  329. /package/dist/{entities → src/entities}/mrs/registry.d.ts +0 -0
  330. /package/dist/{entities → src/entities}/mrs/schema-readonly.js +0 -0
  331. /package/dist/{entities → src/entities}/mrs/schema.js +0 -0
  332. /package/dist/{entities → src/entities}/pipelines/index.d.ts +0 -0
  333. /package/dist/{entities → src/entities}/pipelines/index.js +0 -0
  334. /package/dist/{entities → src/entities}/pipelines/registry.d.ts +0 -0
  335. /package/dist/{entities → src/entities}/pipelines/schema-readonly.js +0 -0
  336. /package/dist/{entities → src/entities}/pipelines/schema.js +0 -0
  337. /package/dist/{entities → src/entities}/shared.js +0 -0
  338. /package/dist/{entities → src/entities}/utils.js +0 -0
  339. /package/dist/{entities → src/entities}/variables/index.d.ts +0 -0
  340. /package/dist/{entities → src/entities}/variables/index.js +0 -0
  341. /package/dist/{entities → src/entities}/variables/registry.d.ts +0 -0
  342. /package/dist/{entities → src/entities}/variables/schema-readonly.js +0 -0
  343. /package/dist/{entities → src/entities}/variables/schema.js +0 -0
  344. /package/dist/{entities → src/entities}/wiki/index.d.ts +0 -0
  345. /package/dist/{entities → src/entities}/wiki/index.js +0 -0
  346. /package/dist/{entities → src/entities}/wiki/registry.d.ts +0 -0
  347. /package/dist/{entities → src/entities}/wiki/schema-readonly.js +0 -0
  348. /package/dist/{entities → src/entities}/wiki/schema.js +0 -0
  349. /package/dist/{entities → src/entities}/workitems/index.d.ts +0 -0
  350. /package/dist/{entities → src/entities}/workitems/index.js +0 -0
  351. /package/dist/{entities → src/entities}/workitems/registry.d.ts +0 -0
  352. /package/dist/{entities → src/entities}/workitems/schema.js +0 -0
  353. /package/dist/{graphql → src/graphql}/DynamicWorkItemsQuery.d.ts +0 -0
  354. /package/dist/{graphql → src/graphql}/DynamicWorkItemsQuery.js +0 -0
  355. /package/dist/{graphql → src/graphql}/client.d.ts +0 -0
  356. /package/dist/{graphql → src/graphql}/client.js +0 -0
  357. /package/dist/{graphql → src/graphql}/index.d.ts +0 -0
  358. /package/dist/{graphql → src/graphql}/index.js +0 -0
  359. /package/dist/{graphql → src/graphql}/workItems.d.ts +0 -0
  360. /package/dist/{graphql → src/graphql}/workItems.js +0 -0
  361. /package/dist/{handlers.d.ts → src/handlers.d.ts} +0 -0
  362. /package/dist/{http-client.d.ts → src/http-client.d.ts} +0 -0
  363. /package/dist/{logger.d.ts → src/logger.d.ts} +0 -0
  364. /package/dist/{logger.js → src/logger.js} +0 -0
  365. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  366. /package/dist/{main.js → src/main.js} +0 -0
  367. /package/dist/{registry-manager.d.ts → src/registry-manager.d.ts} +0 -0
  368. /package/dist/{registry-manager.js → src/registry-manager.js} +0 -0
  369. /package/dist/{services → src/services}/GitLabVersionDetector.d.ts +0 -0
  370. /package/dist/{services → src/services}/GitLabVersionDetector.js +0 -0
  371. /package/dist/{services → src/services}/SchemaIntrospector.d.ts +0 -0
  372. /package/dist/{services → src/services}/SchemaIntrospector.js +0 -0
  373. /package/dist/{services → src/services}/ToolAvailability.d.ts +0 -0
  374. /package/dist/{services → src/services}/WidgetAvailability.d.ts +0 -0
  375. /package/dist/{services → src/services}/WidgetAvailability.js +0 -0
  376. /package/dist/{types.d.ts → src/types.d.ts} +0 -0
  377. /package/dist/{types.js → src/types.js} +0 -0
  378. /package/dist/{utils → src/utils}/idConversion.d.ts +0 -0
  379. /package/dist/{utils → src/utils}/idConversion.js +0 -0
  380. /package/dist/{utils → src/utils}/namespace.d.ts +0 -0
  381. /package/dist/{utils → src/utils}/projectIdentifier.d.ts +0 -0
  382. /package/dist/{utils → src/utils}/projectIdentifier.js +0 -0
  383. /package/dist/{utils → src/utils}/smart-user-search.d.ts +0 -0
  384. /package/dist/{utils → src/utils}/workItemTypes.d.ts +0 -0
  385. /package/dist/{utils → src/utils}/workItemTypes.js +0 -0
@@ -0,0 +1,444 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.server = void 0;
40
+ exports.startServer = startServer;
41
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
42
+ const sse_js_1 = require("@modelcontextprotocol/sdk/server/sse.js");
43
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
44
+ const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
45
+ const express_1 = __importDefault(require("express"));
46
+ const https = __importStar(require("https"));
47
+ const fs = __importStar(require("fs"));
48
+ const config_1 = require("./config");
49
+ const config_2 = require("./config");
50
+ const handlers_1 = require("./handlers");
51
+ const logger_1 = require("./logger");
52
+ const index_1 = require("./oauth/index");
53
+ const index_2 = require("./middleware/index");
54
+ exports.server = new index_js_1.Server({
55
+ name: config_2.packageName,
56
+ version: config_2.packageVersion,
57
+ }, {
58
+ capabilities: {
59
+ tools: {},
60
+ },
61
+ });
62
+ function registerOAuthEndpoints(app) {
63
+ app.get("/.well-known/oauth-authorization-server", index_1.metadataHandler);
64
+ app.get("/.well-known/oauth-protected-resource", index_1.protectedResourceHandler);
65
+ app.get("/authorize", index_1.authorizeHandler);
66
+ app.get("/oauth/poll", index_1.pollHandler);
67
+ app.get("/oauth/callback", index_1.callbackHandler);
68
+ app.post("/token", express_1.default.urlencoded({ extended: true }), index_1.tokenHandler);
69
+ app.post("/register", express_1.default.json(), index_1.registerHandler);
70
+ app.get("/health", index_1.healthHandler);
71
+ logger_1.logger.info("OAuth endpoints registered");
72
+ }
73
+ function isTLSEnabled() {
74
+ return !!(config_1.SSL_CERT_PATH && config_1.SSL_KEY_PATH);
75
+ }
76
+ function loadTLSOptions() {
77
+ if (!config_1.SSL_CERT_PATH || !config_1.SSL_KEY_PATH) {
78
+ return undefined;
79
+ }
80
+ try {
81
+ const options = {
82
+ cert: fs.readFileSync(config_1.SSL_CERT_PATH),
83
+ key: fs.readFileSync(config_1.SSL_KEY_PATH),
84
+ };
85
+ if (config_1.SSL_CA_PATH) {
86
+ options.ca = fs.readFileSync(config_1.SSL_CA_PATH);
87
+ logger_1.logger.info(`CA certificate loaded from ${config_1.SSL_CA_PATH}`);
88
+ }
89
+ if (config_1.SSL_PASSPHRASE) {
90
+ options.passphrase = config_1.SSL_PASSPHRASE;
91
+ }
92
+ logger_1.logger.info(`TLS certificates loaded from ${config_1.SSL_CERT_PATH}`);
93
+ return options;
94
+ }
95
+ catch (error) {
96
+ logger_1.logger.error({ err: error }, "Failed to load TLS certificates");
97
+ throw new Error(`Failed to load TLS certificates: ${String(error)}`);
98
+ }
99
+ }
100
+ function configureTrustProxy(app) {
101
+ if (!config_1.TRUST_PROXY) {
102
+ return;
103
+ }
104
+ let trustValue = config_1.TRUST_PROXY;
105
+ if (config_1.TRUST_PROXY === "true" || config_1.TRUST_PROXY === "1") {
106
+ trustValue = true;
107
+ }
108
+ else if (config_1.TRUST_PROXY === "false" || config_1.TRUST_PROXY === "0") {
109
+ trustValue = false;
110
+ }
111
+ else if (!isNaN(Number(config_1.TRUST_PROXY))) {
112
+ trustValue = Number(config_1.TRUST_PROXY);
113
+ }
114
+ app.set("trust proxy", trustValue);
115
+ logger_1.logger.info(`Trust proxy configured: ${String(trustValue)}`);
116
+ }
117
+ function startHttpServer(app, callback) {
118
+ const tlsOptions = loadTLSOptions();
119
+ if (tlsOptions) {
120
+ const httpsServer = https.createServer(tlsOptions, app);
121
+ httpsServer.listen(Number(config_1.PORT), config_1.HOST, callback);
122
+ }
123
+ else {
124
+ app.listen(Number(config_1.PORT), config_1.HOST, callback);
125
+ }
126
+ }
127
+ function getProtocol() {
128
+ return isTLSEnabled() ? "https" : "http";
129
+ }
130
+ function determineTransportMode() {
131
+ const args = process.argv.slice(2);
132
+ logger_1.logger.info(`Transport mode detection: args=${JSON.stringify(args)}, PORT=${config_1.PORT}`);
133
+ if (args.includes("stdio")) {
134
+ logger_1.logger.info("Selected stdio mode (explicit argument)");
135
+ return "stdio";
136
+ }
137
+ if (process.env.PORT) {
138
+ logger_1.logger.info("Selected dual transport mode (SSE + StreamableHTTP) - PORT environment variable detected");
139
+ return "dual";
140
+ }
141
+ logger_1.logger.info("Selected stdio mode (no PORT environment variable)");
142
+ return "stdio";
143
+ }
144
+ async function startServer() {
145
+ const oauthConfig = (0, index_1.loadOAuthConfig)();
146
+ if (oauthConfig) {
147
+ logger_1.logger.info("Starting in OAuth mode (per-user authentication)");
148
+ logger_1.logger.info(`OAuth client ID: ${oauthConfig.gitlabClientId}`);
149
+ }
150
+ else {
151
+ (0, index_1.validateStaticConfig)();
152
+ logger_1.logger.info("Starting in static token mode (shared GITLAB_TOKEN)");
153
+ }
154
+ logger_1.logger.info(`Authentication mode: ${(0, index_1.getAuthModeDescription)()}`);
155
+ if (oauthConfig) {
156
+ await index_1.sessionStore.initialize();
157
+ }
158
+ await (0, handlers_1.setupHandlers)(exports.server);
159
+ const transportMode = determineTransportMode();
160
+ switch (transportMode) {
161
+ case "stdio": {
162
+ const transport = new stdio_js_1.StdioServerTransport();
163
+ await exports.server.connect(transport);
164
+ logger_1.logger.info("GitLab MCP Server running on stdio");
165
+ break;
166
+ }
167
+ case "sse": {
168
+ logger_1.logger.info("Setting up SSE mode with MCP SDK...");
169
+ const app = (0, express_1.default)();
170
+ app.use(express_1.default.json());
171
+ configureTrustProxy(app);
172
+ app.use((0, index_2.rateLimiterMiddleware)());
173
+ if ((0, index_1.isOAuthEnabled)()) {
174
+ registerOAuthEndpoints(app);
175
+ }
176
+ const sseTransports = {};
177
+ app.get("/sse", async (req, res) => {
178
+ logger_1.logger.debug("SSE endpoint hit!");
179
+ const transport = new sse_js_1.SSEServerTransport("/messages", res);
180
+ await exports.server.connect(transport);
181
+ const sessionId = transport.sessionId;
182
+ sseTransports[sessionId] = transport;
183
+ logger_1.logger.debug(`SSE transport created with session: ${sessionId}`);
184
+ });
185
+ app.post("/messages", async (req, res) => {
186
+ logger_1.logger.debug("Messages endpoint hit!");
187
+ const sessionId = req.query.sessionId;
188
+ if (!sessionId || !sseTransports[sessionId]) {
189
+ return res.status(404).json({ error: "Session not found" });
190
+ }
191
+ try {
192
+ const transport = sseTransports[sessionId];
193
+ await transport.handlePostMessage(req, res, req.body);
194
+ }
195
+ catch (error) {
196
+ logger_1.logger.error({ err: error }, "Error handling SSE message");
197
+ res.status(500).json({ error: "Internal server error" });
198
+ }
199
+ });
200
+ startHttpServer(app, () => {
201
+ const url = `${getProtocol()}://${config_1.HOST}:${config_1.PORT}`;
202
+ logger_1.logger.info(`GitLab MCP Server SSE running on ${url}`);
203
+ if (isTLSEnabled()) {
204
+ logger_1.logger.info("TLS/HTTPS enabled");
205
+ }
206
+ logger_1.logger.info("SSE server started successfully");
207
+ });
208
+ break;
209
+ }
210
+ case "streamable-http": {
211
+ const app = (0, express_1.default)();
212
+ app.use(express_1.default.json());
213
+ configureTrustProxy(app);
214
+ app.use((0, index_2.rateLimiterMiddleware)());
215
+ if ((0, index_1.isOAuthEnabled)()) {
216
+ registerOAuthEndpoints(app);
217
+ }
218
+ app.use("/mcp", (req, res, next) => {
219
+ const accept = req.headers.accept ?? "";
220
+ if (req.method === "POST" && !accept.includes("text/event-stream")) {
221
+ req.headers.accept = accept
222
+ ? `${accept}, text/event-stream`
223
+ : "application/json, text/event-stream";
224
+ logger_1.logger.debug({ originalAccept: accept, newAccept: req.headers.accept }, "Modified Accept header for MCP compatibility");
225
+ }
226
+ next();
227
+ });
228
+ if ((0, index_1.isOAuthEnabled)()) {
229
+ app.use("/mcp", index_2.oauthAuthMiddleware);
230
+ }
231
+ const streamableTransports = {};
232
+ app.all("/mcp", async (req, res) => {
233
+ const sessionId = req.headers["mcp-session-id"];
234
+ const oauthSessionId = res.locals.oauthSessionId;
235
+ const gitlabToken = res.locals.gitlabToken;
236
+ const gitlabUserId = res.locals.gitlabUserId;
237
+ const gitlabUsername = res.locals.gitlabUsername;
238
+ const handleWithContext = async (transport) => {
239
+ if (gitlabToken && oauthSessionId && gitlabUserId && gitlabUsername) {
240
+ await (0, index_1.runWithTokenContext)({
241
+ gitlabToken,
242
+ gitlabUserId,
243
+ gitlabUsername,
244
+ sessionId: oauthSessionId,
245
+ }, async () => {
246
+ await transport.handleRequest(req, res, req.body);
247
+ });
248
+ }
249
+ else {
250
+ await transport.handleRequest(req, res, req.body);
251
+ }
252
+ };
253
+ try {
254
+ let transport;
255
+ if (sessionId && sessionId in streamableTransports) {
256
+ transport = streamableTransports[sessionId];
257
+ await handleWithContext(transport);
258
+ }
259
+ else {
260
+ transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
261
+ sessionIdGenerator: () => Math.random().toString(36).substring(7),
262
+ onsessioninitialized: (newSessionId) => {
263
+ streamableTransports[newSessionId] = transport;
264
+ logger_1.logger.info(`MCP session initialized: ${newSessionId} (method: ${req.method})`);
265
+ if (oauthSessionId) {
266
+ index_1.sessionStore.associateMcpSession(newSessionId, oauthSessionId);
267
+ }
268
+ },
269
+ onsessionclosed: (closedSessionId) => {
270
+ delete streamableTransports[closedSessionId];
271
+ index_1.sessionStore.removeMcpSessionAssociation(closedSessionId);
272
+ logger_1.logger.info(`MCP session closed: ${closedSessionId}`);
273
+ },
274
+ });
275
+ await exports.server.connect(transport);
276
+ await handleWithContext(transport);
277
+ }
278
+ }
279
+ catch (error) {
280
+ logger_1.logger.error({ err: error }, "Error in StreamableHTTP transport");
281
+ res.status(500).json({ error: "Internal server error" });
282
+ }
283
+ });
284
+ startHttpServer(app, () => {
285
+ const url = `${getProtocol()}://${config_1.HOST}:${config_1.PORT}`;
286
+ logger_1.logger.info(`GitLab MCP Server running on ${url}/mcp`);
287
+ if (isTLSEnabled()) {
288
+ logger_1.logger.info("TLS/HTTPS enabled");
289
+ }
290
+ logger_1.logger.info("Supports both SSE (GET) and JSON-RPC (POST) on same endpoint");
291
+ });
292
+ break;
293
+ }
294
+ case "dual": {
295
+ logger_1.logger.info("Setting up dual transport mode (SSE + StreamableHTTP)...");
296
+ const app = (0, express_1.default)();
297
+ app.use(express_1.default.json());
298
+ configureTrustProxy(app);
299
+ app.use((0, index_2.rateLimiterMiddleware)());
300
+ if ((0, index_1.isOAuthEnabled)()) {
301
+ registerOAuthEndpoints(app);
302
+ }
303
+ app.use(["/", "/mcp"], (req, res, next) => {
304
+ const accept = req.headers.accept ?? "";
305
+ if (req.method === "POST" && !accept.includes("text/event-stream")) {
306
+ req.headers.accept = accept
307
+ ? `${accept}, text/event-stream`
308
+ : "application/json, text/event-stream";
309
+ logger_1.logger.debug({ originalAccept: accept, newAccept: req.headers.accept }, "Modified Accept header for MCP compatibility");
310
+ }
311
+ next();
312
+ });
313
+ if ((0, index_1.isOAuthEnabled)()) {
314
+ app.use(["/", "/mcp"], index_2.oauthAuthMiddleware);
315
+ }
316
+ const sseTransports = {};
317
+ const streamableTransports = {};
318
+ app.get("/sse", async (req, res) => {
319
+ logger_1.logger.debug("SSE endpoint hit!");
320
+ const transport = new sse_js_1.SSEServerTransport("/messages", res);
321
+ await exports.server.connect(transport);
322
+ const sessionId = transport.sessionId;
323
+ sseTransports[sessionId] = transport;
324
+ logger_1.logger.debug(`SSE transport created with session: ${sessionId}`);
325
+ });
326
+ app.post("/messages", async (req, res) => {
327
+ logger_1.logger.debug("SSE messages endpoint hit!");
328
+ const sessionId = req.query.sessionId;
329
+ if (!sessionId || !sseTransports[sessionId]) {
330
+ return res.status(404).json({ error: "Session not found" });
331
+ }
332
+ try {
333
+ const transport = sseTransports[sessionId];
334
+ await transport.handlePostMessage(req, res, req.body);
335
+ }
336
+ catch (error) {
337
+ logger_1.logger.error({ err: error }, "Error handling SSE message");
338
+ res.status(500).json({ error: "Internal server error" });
339
+ }
340
+ });
341
+ app.all(["/", "/mcp"], async (req, res) => {
342
+ const sessionId = req.headers["mcp-session-id"];
343
+ const oauthSessionId = res.locals.oauthSessionId;
344
+ const gitlabToken = res.locals.gitlabToken;
345
+ const gitlabUserId = res.locals.gitlabUserId;
346
+ const gitlabUsername = res.locals.gitlabUsername;
347
+ logger_1.logger.info({
348
+ method: req.method,
349
+ path: req.path,
350
+ mcpSessionId: sessionId || "none",
351
+ hasOAuthSession: !!oauthSessionId,
352
+ hasToken: !!gitlabToken,
353
+ }, "MCP endpoint request received");
354
+ const handleWithContext = async (transport) => {
355
+ if (gitlabToken && oauthSessionId && gitlabUserId && gitlabUsername) {
356
+ await (0, index_1.runWithTokenContext)({
357
+ gitlabToken,
358
+ gitlabUserId,
359
+ gitlabUsername,
360
+ sessionId: oauthSessionId,
361
+ }, async () => {
362
+ await transport.handleRequest(req, res, req.body);
363
+ });
364
+ }
365
+ else {
366
+ await transport.handleRequest(req, res, req.body);
367
+ }
368
+ };
369
+ try {
370
+ let transport;
371
+ if (sessionId && sessionId in streamableTransports) {
372
+ transport = streamableTransports[sessionId];
373
+ await handleWithContext(transport);
374
+ }
375
+ else {
376
+ transport = new streamableHttp_js_1.StreamableHTTPServerTransport({
377
+ sessionIdGenerator: () => Math.random().toString(36).substring(7),
378
+ onsessioninitialized: (newSessionId) => {
379
+ streamableTransports[newSessionId] = transport;
380
+ logger_1.logger.info(`MCP session initialized: ${newSessionId} (method: ${req.method})`);
381
+ if (oauthSessionId) {
382
+ index_1.sessionStore.associateMcpSession(newSessionId, oauthSessionId);
383
+ }
384
+ },
385
+ onsessionclosed: (closedSessionId) => {
386
+ delete streamableTransports[closedSessionId];
387
+ index_1.sessionStore.removeMcpSessionAssociation(closedSessionId);
388
+ logger_1.logger.info(`MCP session closed: ${closedSessionId}`);
389
+ },
390
+ });
391
+ await exports.server.connect(transport);
392
+ await handleWithContext(transport);
393
+ }
394
+ }
395
+ catch (error) {
396
+ logger_1.logger.error({ err: error }, "Error in StreamableHTTP transport");
397
+ res.status(500).json({ error: "Internal server error" });
398
+ }
399
+ });
400
+ startHttpServer(app, () => {
401
+ const url = `${getProtocol()}://${config_1.HOST}:${config_1.PORT}`;
402
+ logger_1.logger.info(`GitLab MCP Server running on ${url}`);
403
+ if (isTLSEnabled()) {
404
+ logger_1.logger.info("TLS/HTTPS enabled");
405
+ }
406
+ logger_1.logger.info("Dual Transport Mode Active:");
407
+ logger_1.logger.info(` SSE endpoint: ${url}/sse (backwards compatibility)`);
408
+ logger_1.logger.info(` StreamableHTTP endpoint: ${url}/mcp (modern, supports SSE + JSON-RPC)`);
409
+ if ((0, index_1.isOAuthEnabled)()) {
410
+ logger_1.logger.info("OAuth Mode Active:");
411
+ logger_1.logger.info(` OAuth metadata: ${url}/.well-known/oauth-authorization-server`);
412
+ logger_1.logger.info(` Authorization: ${url}/authorize`);
413
+ logger_1.logger.info(` Token exchange: ${url}/token`);
414
+ }
415
+ logger_1.logger.info("Clients can use either transport as needed");
416
+ });
417
+ break;
418
+ }
419
+ }
420
+ }
421
+ async function gracefulShutdown(signal) {
422
+ logger_1.logger.info({ signal }, "Shutting down GitLab MCP Server...");
423
+ try {
424
+ await index_1.sessionStore.close();
425
+ logger_1.logger.info("Session store closed successfully");
426
+ }
427
+ catch (error) {
428
+ logger_1.logger.error({ err: error }, "Error closing session store");
429
+ }
430
+ process.exit(0);
431
+ }
432
+ process.on("SIGINT", () => {
433
+ gracefulShutdown("SIGINT").catch(err => {
434
+ logger_1.logger.error({ err }, "Error during graceful shutdown");
435
+ process.exit(1);
436
+ });
437
+ });
438
+ process.on("SIGTERM", () => {
439
+ gracefulShutdown("SIGTERM").catch(err => {
440
+ logger_1.logger.error({ err }, "Error during graceful shutdown");
441
+ process.exit(1);
442
+ });
443
+ });
444
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class ConnectionManager {
14
14
  private constructor();
15
15
  static getInstance(): ConnectionManager;
16
16
  initialize(): Promise<void>;
17
+ ensureIntrospected(): Promise<void>;
17
18
  getClient(): GraphQLClient;
18
19
  getVersionDetector(): GitLabVersionDetector;
19
20
  getSchemaIntrospector(): SchemaIntrospector;
@@ -23,5 +24,6 @@ export declare class ConnectionManager {
23
24
  getTier(): string;
24
25
  getVersion(): string;
25
26
  isWidgetAvailable(widgetType: string): boolean;
27
+ private getDefaultFeatures;
26
28
  reset(): void;
27
29
  }
@@ -5,6 +5,7 @@ const client_1 = require("../graphql/client");
5
5
  const GitLabVersionDetector_1 = require("./GitLabVersionDetector");
6
6
  const SchemaIntrospector_1 = require("./SchemaIntrospector");
7
7
  const config_1 = require("../config");
8
+ const index_1 = require("../oauth/index");
8
9
  const logger_1 = require("../logger");
9
10
  class ConnectionManager {
10
11
  static instance = null;
@@ -26,17 +27,45 @@ class ConnectionManager {
26
27
  return;
27
28
  }
28
29
  try {
29
- if (!config_1.GITLAB_BASE_URL || !config_1.GITLAB_TOKEN) {
30
- throw new Error("GitLab base URL and token are required");
30
+ const oauthMode = (0, index_1.isOAuthEnabled)();
31
+ if (!config_1.GITLAB_BASE_URL) {
32
+ throw new Error("GitLab base URL is required");
33
+ }
34
+ if (!oauthMode && !config_1.GITLAB_TOKEN) {
35
+ throw new Error("GitLab token is required in static authentication mode");
31
36
  }
32
37
  const endpoint = `${config_1.GITLAB_BASE_URL}/api/graphql`;
33
- this.client = new client_1.GraphQLClient(endpoint, {
34
- headers: {
35
- Authorization: `Bearer ${config_1.GITLAB_TOKEN}`,
36
- },
37
- });
38
+ const clientOptions = oauthMode
39
+ ? {}
40
+ : { headers: { Authorization: `Bearer ${config_1.GITLAB_TOKEN}` } };
41
+ this.client = new client_1.GraphQLClient(endpoint, clientOptions);
38
42
  this.versionDetector = new GitLabVersionDetector_1.GitLabVersionDetector(this.client);
39
43
  this.schemaIntrospector = new SchemaIntrospector_1.SchemaIntrospector(this.client);
44
+ if (oauthMode) {
45
+ logger_1.logger.info("OAuth mode: attempting unauthenticated version detection");
46
+ try {
47
+ const versionResponse = await fetch(`${config_1.GITLAB_BASE_URL}/api/v4/version`);
48
+ if (versionResponse.ok) {
49
+ const versionData = (await versionResponse.json());
50
+ logger_1.logger.info({ version: versionData.version }, "Detected GitLab version without authentication");
51
+ this.instanceInfo = {
52
+ version: versionData.version,
53
+ tier: versionData.enterprise ? "premium" : "free",
54
+ features: this.getDefaultFeatures(versionData.enterprise ?? false),
55
+ detectedAt: new Date(),
56
+ };
57
+ logger_1.logger.info("OAuth mode: version detected, full introspection deferred until first authenticated request");
58
+ }
59
+ else {
60
+ logger_1.logger.info({ status: versionResponse.status }, "OAuth mode: unauthenticated version detection failed, deferring all introspection");
61
+ }
62
+ }
63
+ catch (error) {
64
+ logger_1.logger.info({ error: error instanceof Error ? error.message : String(error) }, "OAuth mode: unauthenticated version detection failed, deferring all introspection");
65
+ }
66
+ this.isInitialized = true;
67
+ return;
68
+ }
40
69
  const cached = ConnectionManager.introspectionCache.get(endpoint);
41
70
  const now = Date.now();
42
71
  if (cached && now - cached.timestamp < ConnectionManager.CACHE_TTL) {
@@ -77,6 +106,40 @@ class ConnectionManager {
77
106
  throw error;
78
107
  }
79
108
  }
109
+ async ensureIntrospected() {
110
+ if (this.instanceInfo && this.schemaInfo) {
111
+ return;
112
+ }
113
+ if (!this.client || !this.versionDetector || !this.schemaIntrospector) {
114
+ throw new Error("Connection not initialized. Call initialize() first.");
115
+ }
116
+ const endpoint = this.client.endpoint;
117
+ const cached = ConnectionManager.introspectionCache.get(endpoint);
118
+ const now = Date.now();
119
+ if (cached && now - cached.timestamp < ConnectionManager.CACHE_TTL) {
120
+ logger_1.logger.info("Using cached GraphQL introspection data");
121
+ this.instanceInfo = cached.instanceInfo;
122
+ this.schemaInfo = cached.schemaInfo;
123
+ return;
124
+ }
125
+ logger_1.logger.debug("Introspecting GitLab GraphQL schema (deferred OAuth mode)...");
126
+ const [instanceInfo, schemaInfo] = await Promise.all([
127
+ this.versionDetector.detectInstance(),
128
+ this.schemaIntrospector.introspectSchema(),
129
+ ]);
130
+ this.instanceInfo = instanceInfo;
131
+ this.schemaInfo = schemaInfo;
132
+ ConnectionManager.introspectionCache.set(endpoint, {
133
+ instanceInfo,
134
+ schemaInfo,
135
+ timestamp: now,
136
+ });
137
+ logger_1.logger.info({
138
+ version: this.instanceInfo?.version,
139
+ tier: this.instanceInfo?.tier,
140
+ widgetTypes: this.schemaInfo?.workItemWidgetTypes.length || 0,
141
+ }, "GraphQL schema introspection completed (deferred)");
142
+ }
80
143
  getClient() {
81
144
  if (!this.client) {
82
145
  throw new Error("Connection not initialized. Call initialize() first.");
@@ -131,6 +194,35 @@ class ConnectionManager {
131
194
  }
132
195
  return this.schemaIntrospector.isWidgetTypeAvailable(widgetType);
133
196
  }
197
+ getDefaultFeatures(isEnterprise) {
198
+ return {
199
+ workItems: true,
200
+ epics: isEnterprise,
201
+ iterations: isEnterprise,
202
+ roadmaps: isEnterprise,
203
+ portfolioManagement: isEnterprise,
204
+ advancedSearch: true,
205
+ codeReview: true,
206
+ securityDashboard: isEnterprise,
207
+ complianceFramework: isEnterprise,
208
+ valueStreamAnalytics: isEnterprise,
209
+ customFields: isEnterprise,
210
+ okrs: isEnterprise,
211
+ healthStatus: isEnterprise,
212
+ weight: isEnterprise,
213
+ multiLevelEpics: isEnterprise,
214
+ serviceDesk: true,
215
+ requirements: isEnterprise,
216
+ qualityManagement: isEnterprise,
217
+ timeTracking: true,
218
+ crmContacts: true,
219
+ vulnerabilities: isEnterprise,
220
+ errorTracking: true,
221
+ designManagement: true,
222
+ linkedResources: true,
223
+ emailParticipants: true,
224
+ };
225
+ }
134
226
  reset() {
135
227
  this.client = null;
136
228
  this.versionDetector = null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionManager.js","sourceRoot":"","sources":["../../../src/services/ConnectionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitLabVersionDetector.js","sourceRoot":"","sources":["../../../src/services/GitLabVersionDetector.ts"],"names":[],"mappings":";;;AACA,6CAAkC;AAClC,0CAA+C;AAC/C,sCAAmC;AAoDnC,MAAM,aAAa,GAAG,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;;;;CAiBxB,CAAC;AAEF,MAAM,aAAa,GAAG,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;CAcxB,CAAC;AAEF,MAAM,uBAAuB,GAAG,IAAA,iBAAG,EAAA;;;;;;;;;;;;;;;;;;CAkBlC,CAAC;AAEF,MAAa,qBAAqB;IACxB,MAAM,CAAgB;IACtB,UAAU,GAA8B,IAAI,CAAC;IAC7C,aAAa,GAAW,MAAM,CAAC;IAEvC,YAAY,MAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,aAAa;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,cAAc;QACzB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,GAAG;YAChB,OAAO;YACP,IAAI;YACJ,QAAQ;YACR,UAAU,EAAE,IAAI,IAAI,EAAE;SACvB,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgC,aAAa,CAAC,CAAC;YACzF,OAAO,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CACT,4EAA4E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrI,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAa,EAAC,GAAG,OAAO,iBAAiB,CAAC,CAAC;YAClE,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAC;gBAC5D,OAAO,IAAI,CAAC,OAAO,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,IAAI,CACT,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnG,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC;YAMH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkB,aAAa,CAAC,CAAC;YAE3E,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;gBAE/D,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACvD,OAAO,UAAU,CAAC;gBACpB,CAAC;qBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/D,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CACV,8DAA8D,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvH,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC;YAUH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkB,uBAAuB,EAAE;gBACnF,SAAS,EAAE,IAAI,CAAC,aAAa;aAC9B,CAAC,CAAC;YAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAE7B,IAAI,KAAK,EAAE,YAAY,EAAE,CAAC;gBACxB,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAExE,MAAM,oBAAoB,GACxB,KAAK,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7C,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/D,IAAI,KAAK,CAAC;gBAEb,IAAI,oBAAoB,EAAE,CAAC;oBACzB,OAAO,UAAU,CAAC;gBACpB,CAAC;qBAAM,IAAI,aAAa,EAAE,CAAC;oBACzB,OAAO,SAAS,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CACV,iDAAiD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1G,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,iBAAiB,CAAC,OAAe,EAAE,IAAgB;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAmB;YAE/B,SAAS,EAAE,aAAa,IAAI,IAAI;YAChC,KAAK,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YAC/C,UAAU,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YACpD,QAAQ,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YAClD,mBAAmB,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YACjE,cAAc,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YACxD,UAAU,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YACpD,iBAAiB,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAC/D,mBAAmB,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YACjE,oBAAoB,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YAC9D,YAAY,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAC1D,IAAI,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAClD,YAAY,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAC1D,MAAM,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YAChD,eAAe,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAC7D,WAAW,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,GAAG;YACpD,YAAY,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAC1D,iBAAiB,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAG/D,YAAY,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YACtD,WAAW,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YACzD,eAAe,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAC7D,aAAa,EAAE,IAAI,KAAK,UAAU,IAAI,aAAa,IAAI,IAAI;YAC3D,gBAAgB,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YAC1D,eAAe,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;YACzD,iBAAiB,EAAE,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,IAAI;SAC5D,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAErB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErC,OAAO,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAC5B,CAAC;IAEO,aAAa,CAAC,UAAgB;QACpC,MAAM,aAAa,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC;IAC3D,CAAC;IAEM,kBAAkB,CAAC,OAA6B;QACrD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AA/MD,sDA+MC"}