@structured-world/gitlab-mcp 6.62.1 → 7.0.1

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 (435) hide show
  1. package/README.md +22 -1
  2. package/README.md.in +21 -0
  3. package/dist/generated/prisma/client.js.map +1 -1
  4. package/dist/generated/prisma/internal/class.js +2 -2
  5. package/dist/generated/prisma/internal/class.js.map +1 -1
  6. package/dist/generated/prisma/internal/prismaNamespace.js +2 -2
  7. package/dist/generated/prisma/models/AuthCodeFlowState.d.ts +1 -2
  8. package/dist/generated/prisma/models/AuthorizationCode.d.ts +1 -2
  9. package/dist/generated/prisma/models/DeviceFlowState.d.ts +1 -2
  10. package/dist/generated/prisma/models/McpSessionMapping.d.ts +1 -2
  11. package/dist/generated/prisma/models/OAuthSession.d.ts +1 -2
  12. package/dist/src/cli/docker/container-runtime.d.ts +1 -1
  13. package/dist/src/cli/docker/container-runtime.js +14 -14
  14. package/dist/src/cli/docker/docker-command.d.ts +1 -1
  15. package/dist/src/cli/docker/docker-command.js +113 -113
  16. package/dist/src/cli/docker/docker-command.js.map +1 -1
  17. package/dist/src/cli/docker/docker-utils.d.ts +3 -3
  18. package/dist/src/cli/docker/docker-utils.js +74 -74
  19. package/dist/src/cli/docker/docker-utils.js.map +1 -1
  20. package/dist/src/cli/docker/index.d.ts +4 -4
  21. package/dist/src/cli/docker/types.d.ts +3 -3
  22. package/dist/src/cli/docker/types.js +5 -5
  23. package/dist/src/cli/init/browser.js +2 -2
  24. package/dist/src/cli/init/config-generator.d.ts +2 -2
  25. package/dist/src/cli/init/config-generator.js +22 -22
  26. package/dist/src/cli/init/connection.d.ts +1 -1
  27. package/dist/src/cli/init/connection.js +27 -27
  28. package/dist/src/cli/init/connection.js.map +1 -1
  29. package/dist/src/cli/init/index.d.ts +4 -4
  30. package/dist/src/cli/init/types.d.ts +3 -3
  31. package/dist/src/cli/init/types.js +36 -36
  32. package/dist/src/cli/init/wizard.js +80 -80
  33. package/dist/src/cli/init/wizard.js.map +1 -1
  34. package/dist/src/cli/inject-tool-refs.js +47 -47
  35. package/dist/src/cli/inject-tool-refs.js.map +1 -1
  36. package/dist/src/cli/install/backup.d.ts +1 -1
  37. package/dist/src/cli/install/backup.js +3 -3
  38. package/dist/src/cli/install/detector.d.ts +2 -2
  39. package/dist/src/cli/install/detector.js +18 -18
  40. package/dist/src/cli/install/detector.js.map +1 -1
  41. package/dist/src/cli/install/index.d.ts +5 -5
  42. package/dist/src/cli/install/install-command.d.ts +2 -2
  43. package/dist/src/cli/install/install-command.js +68 -68
  44. package/dist/src/cli/install/install-command.js.map +1 -1
  45. package/dist/src/cli/install/installers.d.ts +2 -2
  46. package/dist/src/cli/install/installers.js +55 -55
  47. package/dist/src/cli/install/installers.js.map +1 -1
  48. package/dist/src/cli/install/types.d.ts +4 -4
  49. package/dist/src/cli/install/types.js +48 -48
  50. package/dist/src/cli/instances/index.d.ts +2 -2
  51. package/dist/src/cli/instances/instances-command.d.ts +1 -1
  52. package/dist/src/cli/instances/instances-command.js +70 -66
  53. package/dist/src/cli/instances/instances-command.js.map +1 -1
  54. package/dist/src/cli/list-tools.js +396 -396
  55. package/dist/src/cli/list-tools.js.map +1 -1
  56. package/dist/src/cli/setup/discovery.d.ts +1 -1
  57. package/dist/src/cli/setup/discovery.js +10 -10
  58. package/dist/src/cli/setup/discovery.js.map +1 -1
  59. package/dist/src/cli/setup/flows/configure-existing.d.ts +1 -1
  60. package/dist/src/cli/setup/flows/configure-existing.js +57 -57
  61. package/dist/src/cli/setup/flows/configure-existing.js.map +1 -1
  62. package/dist/src/cli/setup/flows/local-setup.d.ts +1 -1
  63. package/dist/src/cli/setup/flows/local-setup.js +51 -51
  64. package/dist/src/cli/setup/flows/local-setup.js.map +1 -1
  65. package/dist/src/cli/setup/flows/server-setup.d.ts +1 -1
  66. package/dist/src/cli/setup/flows/server-setup.js +50 -50
  67. package/dist/src/cli/setup/flows/server-setup.js.map +1 -1
  68. package/dist/src/cli/setup/flows/tool-selection.d.ts +1 -1
  69. package/dist/src/cli/setup/flows/tool-selection.js +94 -94
  70. package/dist/src/cli/setup/flows/tool-selection.js.map +1 -1
  71. package/dist/src/cli/setup/index.d.ts +4 -4
  72. package/dist/src/cli/setup/presets.d.ts +1 -1
  73. package/dist/src/cli/setup/presets.js +157 -157
  74. package/dist/src/cli/setup/presets.js.map +1 -1
  75. package/dist/src/cli/setup/types.d.ts +7 -7
  76. package/dist/src/cli/setup/wizard.d.ts +1 -1
  77. package/dist/src/cli/setup/wizard.js +25 -25
  78. package/dist/src/cli/utils/index.d.ts +1 -1
  79. package/dist/src/cli/utils/path-utils.js +3 -3
  80. package/dist/src/cli-utils.d.ts +2 -2
  81. package/dist/src/cli-utils.js +46 -46
  82. package/dist/src/config/index.d.ts +4 -4
  83. package/dist/src/config/instances-loader.d.ts +3 -3
  84. package/dist/src/config/instances-loader.js +53 -53
  85. package/dist/src/config/instances-loader.js.map +1 -1
  86. package/dist/src/config/instances-schema.d.ts +1 -1
  87. package/dist/src/config/instances-schema.js +33 -33
  88. package/dist/src/config/instances-schema.js.map +1 -1
  89. package/dist/src/config.d.ts +11 -4
  90. package/dist/src/config.js +112 -111
  91. package/dist/src/config.js.map +1 -1
  92. package/dist/src/dashboard/handler.d.ts +2 -2
  93. package/dist/src/dashboard/handler.js +7 -7
  94. package/dist/src/dashboard/html-template.d.ts +1 -1
  95. package/dist/src/dashboard/html-template.js +44 -44
  96. package/dist/src/dashboard/html-template.js.map +1 -1
  97. package/dist/src/dashboard/index.d.ts +4 -4
  98. package/dist/src/dashboard/metrics.d.ts +3 -3
  99. package/dist/src/dashboard/metrics.js +42 -42
  100. package/dist/src/discovery/auto.d.ts +3 -3
  101. package/dist/src/discovery/auto.js +28 -28
  102. package/dist/src/discovery/git-remote.d.ts +2 -2
  103. package/dist/src/discovery/git-remote.js +18 -18
  104. package/dist/src/discovery/index.d.ts +3 -3
  105. package/dist/src/discovery/profile-matcher.d.ts +2 -2
  106. package/dist/src/discovery/profile-matcher.js +8 -8
  107. package/dist/src/discovery/profile-matcher.js.map +1 -1
  108. package/dist/src/entities/context/context-manager.d.ts +3 -3
  109. package/dist/src/entities/context/context-manager.js +34 -34
  110. package/dist/src/entities/context/context-manager.js.map +1 -1
  111. package/dist/src/entities/context/handlers.d.ts +2 -2
  112. package/dist/src/entities/context/handlers.js +8 -8
  113. package/dist/src/entities/context/index.d.ts +8 -8
  114. package/dist/src/entities/context/index.js +1 -1
  115. package/dist/src/entities/context/registry.d.ts +1 -1
  116. package/dist/src/entities/context/registry.js +4 -4
  117. package/dist/src/entities/context/schema.d.ts +1 -1
  118. package/dist/src/entities/context/schema.js +19 -19
  119. package/dist/src/entities/context/types.d.ts +9 -9
  120. package/dist/src/entities/context/whoami.d.ts +1 -1
  121. package/dist/src/entities/context/whoami.js +31 -31
  122. package/dist/src/entities/context/whoami.js.map +1 -1
  123. package/dist/src/entities/core/index.d.ts +5 -5
  124. package/dist/src/entities/core/index.js +1 -1
  125. package/dist/src/entities/core/registry.d.ts +1 -1
  126. package/dist/src/entities/core/registry.js +194 -194
  127. package/dist/src/entities/core/registry.js.map +1 -1
  128. package/dist/src/entities/core/schema-readonly.d.ts +1 -1
  129. package/dist/src/entities/core/schema-readonly.js +117 -117
  130. package/dist/src/entities/core/schema.d.ts +1 -1
  131. package/dist/src/entities/core/schema.js +67 -67
  132. package/dist/src/entities/files/index.d.ts +5 -5
  133. package/dist/src/entities/files/index.js +1 -1
  134. package/dist/src/entities/files/registry.d.ts +1 -1
  135. package/dist/src/entities/files/registry.js +45 -45
  136. package/dist/src/entities/files/registry.js.map +1 -1
  137. package/dist/src/entities/files/schema-readonly.d.ts +1 -1
  138. package/dist/src/entities/files/schema-readonly.js +13 -13
  139. package/dist/src/entities/files/schema.d.ts +1 -1
  140. package/dist/src/entities/files/schema.js +29 -29
  141. package/dist/src/entities/index.d.ts +17 -17
  142. package/dist/src/entities/integrations/index.d.ts +4 -4
  143. package/dist/src/entities/integrations/registry.d.ts +1 -1
  144. package/dist/src/entities/integrations/registry.js +17 -17
  145. package/dist/src/entities/integrations/registry.js.map +1 -1
  146. package/dist/src/entities/integrations/schema-readonly.d.ts +1 -1
  147. package/dist/src/entities/integrations/schema-readonly.js +5 -5
  148. package/dist/src/entities/integrations/schema.d.ts +1 -1
  149. package/dist/src/entities/integrations/schema.js +69 -69
  150. package/dist/src/entities/iterations/index.d.ts +2 -2
  151. package/dist/src/entities/iterations/registry.d.ts +1 -1
  152. package/dist/src/entities/iterations/registry.js +13 -13
  153. package/dist/src/entities/iterations/registry.js.map +1 -1
  154. package/dist/src/entities/iterations/schema-readonly.d.ts +1 -1
  155. package/dist/src/entities/iterations/schema-readonly.js +9 -9
  156. package/dist/src/entities/labels/index.d.ts +5 -5
  157. package/dist/src/entities/labels/index.js +1 -1
  158. package/dist/src/entities/labels/registry.d.ts +1 -1
  159. package/dist/src/entities/labels/registry.js +19 -19
  160. package/dist/src/entities/labels/registry.js.map +1 -1
  161. package/dist/src/entities/labels/schema-readonly.d.ts +1 -1
  162. package/dist/src/entities/labels/schema-readonly.js +8 -8
  163. package/dist/src/entities/labels/schema.d.ts +1 -1
  164. package/dist/src/entities/labels/schema.js +11 -11
  165. package/dist/src/entities/members/index.d.ts +3 -3
  166. package/dist/src/entities/members/registry.d.ts +1 -1
  167. package/dist/src/entities/members/registry.js +26 -26
  168. package/dist/src/entities/members/registry.js.map +1 -1
  169. package/dist/src/entities/members/schema-readonly.d.ts +1 -1
  170. package/dist/src/entities/members/schema-readonly.js +32 -32
  171. package/dist/src/entities/members/schema-readonly.js.map +1 -1
  172. package/dist/src/entities/members/schema.d.ts +1 -1
  173. package/dist/src/entities/members/schema.js +28 -28
  174. package/dist/src/entities/milestones/index.d.ts +5 -5
  175. package/dist/src/entities/milestones/index.js +1 -1
  176. package/dist/src/entities/milestones/registry.d.ts +1 -1
  177. package/dist/src/entities/milestones/registry.js +25 -25
  178. package/dist/src/entities/milestones/registry.js.map +1 -1
  179. package/dist/src/entities/milestones/schema-readonly.d.ts +2 -2
  180. package/dist/src/entities/milestones/schema-readonly.js +15 -15
  181. package/dist/src/entities/milestones/schema.d.ts +1 -1
  182. package/dist/src/entities/milestones/schema.js +16 -16
  183. package/dist/src/entities/milestones/schema.js.map +1 -1
  184. package/dist/src/entities/mrs/index.d.ts +5 -5
  185. package/dist/src/entities/mrs/index.js +1 -1
  186. package/dist/src/entities/mrs/registry.d.ts +1 -1
  187. package/dist/src/entities/mrs/registry.js +102 -102
  188. package/dist/src/entities/mrs/registry.js.map +1 -1
  189. package/dist/src/entities/mrs/schema-readonly.d.ts +1 -1
  190. package/dist/src/entities/mrs/schema-readonly.js +126 -126
  191. package/dist/src/entities/mrs/schema-readonly.js.map +1 -1
  192. package/dist/src/entities/mrs/schema.d.ts +1 -1
  193. package/dist/src/entities/mrs/schema.js +111 -111
  194. package/dist/src/entities/mrs/schema.js.map +1 -1
  195. package/dist/src/entities/pipelines/index.d.ts +5 -5
  196. package/dist/src/entities/pipelines/index.js +1 -1
  197. package/dist/src/entities/pipelines/registry.d.ts +1 -1
  198. package/dist/src/entities/pipelines/registry.js +45 -45
  199. package/dist/src/entities/pipelines/registry.js.map +1 -1
  200. package/dist/src/entities/pipelines/schema-readonly.d.ts +2 -2
  201. package/dist/src/entities/pipelines/schema-readonly.js +73 -73
  202. package/dist/src/entities/pipelines/schema.d.ts +1 -1
  203. package/dist/src/entities/pipelines/schema.js +21 -21
  204. package/dist/src/entities/refs/index.d.ts +3 -3
  205. package/dist/src/entities/refs/registry.d.ts +1 -1
  206. package/dist/src/entities/refs/registry.js +31 -31
  207. package/dist/src/entities/refs/registry.js.map +1 -1
  208. package/dist/src/entities/refs/schema-readonly.d.ts +1 -1
  209. package/dist/src/entities/refs/schema-readonly.js +21 -21
  210. package/dist/src/entities/refs/schema.d.ts +1 -1
  211. package/dist/src/entities/refs/schema.js +56 -56
  212. package/dist/src/entities/releases/index.d.ts +3 -3
  213. package/dist/src/entities/releases/registry.d.ts +1 -1
  214. package/dist/src/entities/releases/registry.js +21 -21
  215. package/dist/src/entities/releases/registry.js.map +1 -1
  216. package/dist/src/entities/releases/schema-readonly.d.ts +1 -1
  217. package/dist/src/entities/releases/schema-readonly.js +13 -13
  218. package/dist/src/entities/releases/schema.d.ts +1 -1
  219. package/dist/src/entities/releases/schema.js +21 -21
  220. package/dist/src/entities/search/index.d.ts +2 -2
  221. package/dist/src/entities/search/registry.d.ts +1 -1
  222. package/dist/src/entities/search/registry.js +13 -13
  223. package/dist/src/entities/search/schema-readonly.d.ts +1 -1
  224. package/dist/src/entities/search/schema-readonly.js +23 -23
  225. package/dist/src/entities/shared.d.ts +1 -1
  226. package/dist/src/entities/shared.js +5 -5
  227. package/dist/src/entities/snippets/index.d.ts +5 -5
  228. package/dist/src/entities/snippets/index.js +1 -1
  229. package/dist/src/entities/snippets/registry.d.ts +1 -1
  230. package/dist/src/entities/snippets/registry.js +24 -24
  231. package/dist/src/entities/snippets/registry.js.map +1 -1
  232. package/dist/src/entities/snippets/schema-readonly.d.ts +1 -1
  233. package/dist/src/entities/snippets/schema-readonly.js +11 -11
  234. package/dist/src/entities/snippets/schema.d.ts +1 -1
  235. package/dist/src/entities/snippets/schema.js +27 -27
  236. package/dist/src/entities/snippets/schema.js.map +1 -1
  237. package/dist/src/entities/utils.d.ts +2 -2
  238. package/dist/src/entities/utils.js +8 -8
  239. package/dist/src/entities/utils.js.map +1 -1
  240. package/dist/src/entities/variables/index.d.ts +5 -5
  241. package/dist/src/entities/variables/index.js +1 -1
  242. package/dist/src/entities/variables/registry.d.ts +1 -1
  243. package/dist/src/entities/variables/registry.js +22 -22
  244. package/dist/src/entities/variables/registry.js.map +1 -1
  245. package/dist/src/entities/variables/schema-readonly.d.ts +1 -1
  246. package/dist/src/entities/variables/schema-readonly.js +6 -6
  247. package/dist/src/entities/variables/schema.d.ts +1 -1
  248. package/dist/src/entities/variables/schema.js +21 -21
  249. package/dist/src/entities/variables/schema.js.map +1 -1
  250. package/dist/src/entities/webhooks/index.d.ts +4 -4
  251. package/dist/src/entities/webhooks/registry.d.ts +1 -1
  252. package/dist/src/entities/webhooks/registry.js +29 -29
  253. package/dist/src/entities/webhooks/registry.js.map +1 -1
  254. package/dist/src/entities/webhooks/schema-readonly.d.ts +1 -1
  255. package/dist/src/entities/webhooks/schema-readonly.js +9 -9
  256. package/dist/src/entities/webhooks/schema.d.ts +1 -1
  257. package/dist/src/entities/webhooks/schema.js +59 -59
  258. package/dist/src/entities/wiki/index.d.ts +5 -5
  259. package/dist/src/entities/wiki/index.js +1 -1
  260. package/dist/src/entities/wiki/registry.d.ts +1 -1
  261. package/dist/src/entities/wiki/registry.js +19 -19
  262. package/dist/src/entities/wiki/registry.js.map +1 -1
  263. package/dist/src/entities/wiki/schema-readonly.d.ts +1 -1
  264. package/dist/src/entities/wiki/schema-readonly.js +6 -6
  265. package/dist/src/entities/wiki/schema.d.ts +1 -1
  266. package/dist/src/entities/wiki/schema.js +12 -12
  267. package/dist/src/entities/workitems/index.d.ts +5 -5
  268. package/dist/src/entities/workitems/index.js +1 -1
  269. package/dist/src/entities/workitems/registry.d.ts +1 -1
  270. package/dist/src/entities/workitems/registry.js +101 -101
  271. package/dist/src/entities/workitems/registry.js.map +1 -1
  272. package/dist/src/entities/workitems/schema-readonly.d.ts +1 -1
  273. package/dist/src/entities/workitems/schema-readonly.js +27 -27
  274. package/dist/src/entities/workitems/schema-readonly.js.map +1 -1
  275. package/dist/src/entities/workitems/schema.d.ts +1 -1
  276. package/dist/src/entities/workitems/schema.js +58 -58
  277. package/dist/src/graphql/DynamicWorkItemsQuery.d.ts +2 -2
  278. package/dist/src/graphql/DynamicWorkItemsQuery.js +47 -47
  279. package/dist/src/graphql/DynamicWorkItemsQuery.js.map +1 -1
  280. package/dist/src/graphql/client.d.ts +1 -1
  281. package/dist/src/graphql/client.js +4 -4
  282. package/dist/src/graphql/client.js.map +1 -1
  283. package/dist/src/graphql/index.d.ts +2 -2
  284. package/dist/src/graphql/workItems.d.ts +38 -38
  285. package/dist/src/graphql/workItems.js +30 -30
  286. package/dist/src/handlers.d.ts +2 -1
  287. package/dist/src/handlers.js +258 -86
  288. package/dist/src/handlers.js.map +1 -1
  289. package/dist/src/http-client.js +3 -3
  290. package/dist/src/logger.js +25 -25
  291. package/dist/src/logging/access-log.d.ts +2 -2
  292. package/dist/src/logging/access-log.js +25 -25
  293. package/dist/src/logging/connection-tracker.d.ts +1 -1
  294. package/dist/src/logging/connection-tracker.js +3 -3
  295. package/dist/src/logging/index.d.ts +5 -5
  296. package/dist/src/logging/request-tracker.d.ts +3 -3
  297. package/dist/src/logging/request-tracker.js +4 -4
  298. package/dist/src/logging/types.d.ts +3 -3
  299. package/dist/src/logging/types.js +1 -1
  300. package/dist/src/logging/types.js.map +1 -1
  301. package/dist/src/main.js +28 -28
  302. package/dist/src/middleware/index.d.ts +3 -2
  303. package/dist/src/middleware/index.js +3 -1
  304. package/dist/src/middleware/index.js.map +1 -1
  305. package/dist/src/middleware/oauth-auth.d.ts +1 -1
  306. package/dist/src/middleware/oauth-auth.js +17 -17
  307. package/dist/src/middleware/rate-limiter.d.ts +1 -1
  308. package/dist/src/middleware/rate-limiter.js +32 -32
  309. package/dist/src/middleware/response-write-timeout.d.ts +2 -0
  310. package/dist/src/middleware/response-write-timeout.js +62 -0
  311. package/dist/src/middleware/response-write-timeout.js.map +1 -0
  312. package/dist/src/oauth/config.d.ts +1 -1
  313. package/dist/src/oauth/config.js +18 -18
  314. package/dist/src/oauth/config.js.map +1 -1
  315. package/dist/src/oauth/endpoints/authorize.d.ts +1 -1
  316. package/dist/src/oauth/endpoints/authorize.js +32 -32
  317. package/dist/src/oauth/endpoints/callback.d.ts +1 -1
  318. package/dist/src/oauth/endpoints/callback.js +26 -26
  319. package/dist/src/oauth/endpoints/index.d.ts +5 -5
  320. package/dist/src/oauth/endpoints/metadata.d.ts +1 -1
  321. package/dist/src/oauth/endpoints/metadata.js +12 -12
  322. package/dist/src/oauth/endpoints/register.d.ts +1 -1
  323. package/dist/src/oauth/endpoints/register.js +9 -9
  324. package/dist/src/oauth/endpoints/token.d.ts +1 -1
  325. package/dist/src/oauth/endpoints/token.js +28 -28
  326. package/dist/src/oauth/gitlab-device-flow.d.ts +2 -2
  327. package/dist/src/oauth/gitlab-device-flow.js +73 -68
  328. package/dist/src/oauth/gitlab-device-flow.js.map +1 -1
  329. package/dist/src/oauth/index.d.ts +10 -10
  330. package/dist/src/oauth/session-store.d.ts +2 -2
  331. package/dist/src/oauth/session-store.js +40 -40
  332. package/dist/src/oauth/session-store.js.map +1 -1
  333. package/dist/src/oauth/storage/factory.d.ts +2 -2
  334. package/dist/src/oauth/storage/factory.js +16 -16
  335. package/dist/src/oauth/storage/file.d.ts +2 -2
  336. package/dist/src/oauth/storage/file.js +22 -22
  337. package/dist/src/oauth/storage/file.js.map +1 -1
  338. package/dist/src/oauth/storage/index.d.ts +5 -5
  339. package/dist/src/oauth/storage/memory.d.ts +2 -2
  340. package/dist/src/oauth/storage/memory.js +18 -18
  341. package/dist/src/oauth/storage/memory.js.map +1 -1
  342. package/dist/src/oauth/storage/postgresql.d.ts +2 -2
  343. package/dist/src/oauth/storage/postgresql.js +11 -11
  344. package/dist/src/oauth/storage/postgresql.js.map +1 -1
  345. package/dist/src/oauth/storage/types.d.ts +3 -3
  346. package/dist/src/oauth/token-context.d.ts +1 -1
  347. package/dist/src/oauth/token-context.js +1 -1
  348. package/dist/src/oauth/token-utils.d.ts +1 -1
  349. package/dist/src/oauth/token-utils.js +20 -20
  350. package/dist/src/oauth/types.d.ts +3 -3
  351. package/dist/src/profiles/applicator.d.ts +1 -1
  352. package/dist/src/profiles/applicator.js +48 -48
  353. package/dist/src/profiles/index.d.ts +5 -5
  354. package/dist/src/profiles/loader.d.ts +3 -3
  355. package/dist/src/profiles/loader.js +25 -25
  356. package/dist/src/profiles/loader.js.map +1 -1
  357. package/dist/src/profiles/project-loader.d.ts +1 -1
  358. package/dist/src/profiles/project-loader.js +23 -23
  359. package/dist/src/profiles/project-loader.js.map +1 -1
  360. package/dist/src/profiles/scope-enforcer.d.ts +2 -2
  361. package/dist/src/profiles/scope-enforcer.js +25 -25
  362. package/dist/src/profiles/scope-enforcer.js.map +1 -1
  363. package/dist/src/profiles/types.d.ts +2 -2
  364. package/dist/src/profiles/types.js +50 -48
  365. package/dist/src/profiles/types.js.map +1 -1
  366. package/dist/src/registry-manager.d.ts +19 -11
  367. package/dist/src/registry-manager.js +257 -172
  368. package/dist/src/registry-manager.js.map +1 -1
  369. package/dist/src/server.js +165 -149
  370. package/dist/src/server.js.map +1 -1
  371. package/dist/src/services/ConnectionManager.d.ts +33 -24
  372. package/dist/src/services/ConnectionManager.js +304 -179
  373. package/dist/src/services/ConnectionManager.js.map +1 -1
  374. package/dist/src/services/GitLabVersionDetector.d.ts +2 -2
  375. package/dist/src/services/GitLabVersionDetector.js +45 -45
  376. package/dist/src/services/GitLabVersionDetector.js.map +1 -1
  377. package/dist/src/services/HealthMonitor.d.ts +42 -0
  378. package/dist/src/services/HealthMonitor.js +544 -0
  379. package/dist/src/services/HealthMonitor.js.map +1 -0
  380. package/dist/src/services/InstanceConnectionPool.d.ts +2 -2
  381. package/dist/src/services/InstanceConnectionPool.js +13 -13
  382. package/dist/src/services/InstanceConnectionPool.js.map +1 -1
  383. package/dist/src/services/InstanceRateLimiter.js +6 -6
  384. package/dist/src/services/InstanceRateLimiter.js.map +1 -1
  385. package/dist/src/services/InstanceRegistry.d.ts +4 -5
  386. package/dist/src/services/InstanceRegistry.js +29 -41
  387. package/dist/src/services/InstanceRegistry.js.map +1 -1
  388. package/dist/src/services/NamespaceTierDetector.d.ts +2 -2
  389. package/dist/src/services/NamespaceTierDetector.js +30 -30
  390. package/dist/src/services/NamespaceTierDetector.js.map +1 -1
  391. package/dist/src/services/SchemaIntrospector.d.ts +2 -1
  392. package/dist/src/services/SchemaIntrospector.js +45 -42
  393. package/dist/src/services/SchemaIntrospector.js.map +1 -1
  394. package/dist/src/services/TokenScopeDetector.d.ts +4 -4
  395. package/dist/src/services/TokenScopeDetector.js +133 -110
  396. package/dist/src/services/TokenScopeDetector.js.map +1 -1
  397. package/dist/src/services/ToolAvailability.d.ts +15 -11
  398. package/dist/src/services/ToolAvailability.js +150 -130
  399. package/dist/src/services/ToolAvailability.js.map +1 -1
  400. package/dist/src/services/WidgetAvailability.d.ts +5 -5
  401. package/dist/src/services/WidgetAvailability.js +40 -39
  402. package/dist/src/services/WidgetAvailability.js.map +1 -1
  403. package/dist/src/session-manager.d.ts +3 -2
  404. package/dist/src/session-manager.js +17 -14
  405. package/dist/src/session-manager.js.map +1 -1
  406. package/dist/src/types.js +4 -4
  407. package/dist/src/utils/description-utils.js +4 -4
  408. package/dist/src/utils/description-utils.js.map +1 -1
  409. package/dist/src/utils/error-handler.d.ts +19 -10
  410. package/dist/src/utils/error-handler.js +272 -187
  411. package/dist/src/utils/error-handler.js.map +1 -1
  412. package/dist/src/utils/fetch.d.ts +7 -0
  413. package/dist/src/utils/fetch.js +136 -122
  414. package/dist/src/utils/fetch.js.map +1 -1
  415. package/dist/src/utils/gitlab-api.d.ts +1 -1
  416. package/dist/src/utils/gitlab-api.js +29 -26
  417. package/dist/src/utils/gitlab-api.js.map +1 -1
  418. package/dist/src/utils/idConversion.js +47 -47
  419. package/dist/src/utils/idConversion.js.map +1 -1
  420. package/dist/src/utils/namespace.d.ts +2 -2
  421. package/dist/src/utils/namespace.js +15 -15
  422. package/dist/src/utils/projectIdentifier.js +4 -4
  423. package/dist/src/utils/request-logger.d.ts +4 -4
  424. package/dist/src/utils/request-logger.js +5 -5
  425. package/dist/src/utils/schema-utils.js +24 -24
  426. package/dist/src/utils/schema-utils.js.map +1 -1
  427. package/dist/src/utils/smart-user-search.d.ts +1 -1
  428. package/dist/src/utils/smart-user-search.js +10 -10
  429. package/dist/src/utils/url.d.ts +1 -0
  430. package/dist/src/utils/url.js +38 -0
  431. package/dist/src/utils/url.js.map +1 -0
  432. package/dist/src/utils/version.js +1 -1
  433. package/dist/tsconfig.build.tsbuildinfo +1 -1
  434. package/package.json +22 -31
  435. package/dist/structured-world-gitlab-mcp-6.62.1.tgz +0 -0
@@ -8,44 +8,44 @@ exports.logError = logError;
8
8
  exports.logDebug = logDebug;
9
9
  const pino_1 = require("pino");
10
10
  function truncateId(id) {
11
- if (typeof id !== "string")
11
+ if (typeof id !== 'string')
12
12
  return String(id);
13
13
  if (id.length <= 10)
14
14
  return id;
15
- return id.substring(0, 4) + ".." + id.slice(-4);
15
+ return id.substring(0, 4) + '..' + id.slice(-4);
16
16
  }
17
- const isTestEnv = process.env.NODE_ENV === "test" || process.env.JEST_WORKER_ID !== undefined;
18
- exports.LOG_JSON = process.env.LOG_JSON === "true";
19
- exports.LOG_FORMAT = process.env.LOG_FORMAT ?? "%msg";
17
+ const isTestEnv = process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined;
18
+ exports.LOG_JSON = process.env.LOG_JSON === 'true';
19
+ exports.LOG_FORMAT = process.env.LOG_FORMAT ?? '%msg';
20
20
  function convertToPinoFormat(format) {
21
21
  return format
22
- .replace(/%time/g, "{time}")
23
- .replace(/%level/g, "{levelLabel}")
24
- .replace(/%name/g, "{name}")
25
- .replace(/%msg/g, "{msg}");
22
+ .replace(/%time/g, '{time}')
23
+ .replace(/%level/g, '{levelLabel}')
24
+ .replace(/%name/g, '{name}')
25
+ .replace(/%msg/g, '{msg}');
26
26
  }
27
27
  function getIgnoredFields(format) {
28
- const ignored = ["pid", "hostname"];
29
- if (!format.includes("%time"))
30
- ignored.push("time");
31
- if (!format.includes("%level"))
32
- ignored.push("level");
33
- if (!format.includes("%name"))
34
- ignored.push("name");
35
- return ignored.join(",");
28
+ const ignored = ['pid', 'hostname'];
29
+ if (!format.includes('%time'))
30
+ ignored.push('time');
31
+ if (!format.includes('%level'))
32
+ ignored.push('level');
33
+ if (!format.includes('%name'))
34
+ ignored.push('name');
35
+ return ignored.join(',');
36
36
  }
37
37
  function buildPrettyOptions(format) {
38
38
  const baseOptions = {
39
39
  destination: 2,
40
40
  };
41
- const hasTime = format.includes("%time");
41
+ const hasTime = format.includes('%time');
42
42
  const pinoFormat = convertToPinoFormat(format);
43
43
  const ignored = getIgnoredFields(format);
44
- const isMinimal = format.trim() === "%msg";
44
+ const isMinimal = format.trim() === '%msg';
45
45
  return {
46
46
  ...baseOptions,
47
47
  colorize: !isMinimal,
48
- translateTime: hasTime ? "HH:MM:ss.l" : false,
48
+ translateTime: hasTime ? 'HH:MM:ss.l' : false,
49
49
  ignore: ignored,
50
50
  messageFormat: pinoFormat,
51
51
  hideObject: true,
@@ -54,18 +54,18 @@ function buildPrettyOptions(format) {
54
54
  const createLogger = (name) => {
55
55
  const options = {
56
56
  name,
57
- level: process.env.LOG_LEVEL ?? "info",
57
+ level: process.env.LOG_LEVEL ?? 'info',
58
58
  };
59
59
  if (!isTestEnv && !exports.LOG_JSON) {
60
60
  options.transport = {
61
- target: "pino-pretty",
61
+ target: 'pino-pretty',
62
62
  options: buildPrettyOptions(exports.LOG_FORMAT),
63
63
  };
64
64
  }
65
65
  return (0, pino_1.pino)(options);
66
66
  };
67
67
  exports.createLogger = createLogger;
68
- exports.logger = (0, exports.createLogger)("gitlab-mcp");
68
+ exports.logger = (0, exports.createLogger)('gitlab-mcp');
69
69
  function formatDataPairs(data) {
70
70
  return Object.entries(data)
71
71
  .map(([k, v]) => {
@@ -75,12 +75,12 @@ function formatDataPairs(data) {
75
75
  if (v === null || v === undefined) {
76
76
  return `${k}=${String(v)}`;
77
77
  }
78
- if (typeof v === "object") {
78
+ if (typeof v === 'object') {
79
79
  return `${k}=${JSON.stringify(v)}`;
80
80
  }
81
81
  return `${k}=${String(v)}`;
82
82
  })
83
- .join(" ");
83
+ .join(' ');
84
84
  }
85
85
  function logInfo(message, data) {
86
86
  if (exports.LOG_JSON) {
@@ -1,7 +1,7 @@
1
- import type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason } from "./types.js";
1
+ import type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason } from './types.js';
2
2
  export declare function truncateSessionId(sessionId?: string): string;
3
3
  export declare function formatDuration(ms: number): string;
4
- export declare function formatGitLabStatus(status?: number | "timeout" | "error"): string;
4
+ export declare function formatGitLabStatus(status?: number | 'timeout' | 'error'): string;
5
5
  export declare function formatDetails(details: Record<string, string | number | boolean>): string;
6
6
  export declare function createAccessLogEntry(stack: RequestStack): AccessLogEntry;
7
7
  export declare function formatAccessLog(entry: AccessLogEntry): string;
@@ -12,7 +12,7 @@ exports.formatConnectionClose = formatConnectionClose;
12
12
  const logger_js_1 = require("../logger.js");
13
13
  function truncateSessionId(sessionId) {
14
14
  if (!sessionId)
15
- return "-";
15
+ return '-';
16
16
  return (0, logger_js_1.truncateId)(sessionId);
17
17
  }
18
18
  function formatDuration(ms) {
@@ -31,20 +31,20 @@ function formatDuration(ms) {
31
31
  }
32
32
  function formatGitLabStatus(status) {
33
33
  if (status === undefined)
34
- return "-";
35
- if (status === "timeout")
36
- return "GL:timeout";
37
- if (status === "error")
38
- return "GL:error";
34
+ return '-';
35
+ if (status === 'timeout')
36
+ return 'GL:timeout';
37
+ if (status === 'error')
38
+ return 'GL:error';
39
39
  return `GL:${status}`;
40
40
  }
41
41
  function escapeLogValue(value) {
42
42
  return value
43
- .replace(/\\/g, "\\\\")
43
+ .replace(/\\/g, '\\\\')
44
44
  .replace(/"/g, '\\"')
45
- .replace(/\n/g, "\\n")
46
- .replace(/\r/g, "\\r")
47
- .replace(/\t/g, "\\t");
45
+ .replace(/\n/g, '\\n')
46
+ .replace(/\r/g, '\\r')
47
+ .replace(/\t/g, '\\t');
48
48
  }
49
49
  function needsQuoting(value) {
50
50
  return /[\s"\\]/.test(value) || /[\n\r\t]/.test(value);
@@ -52,7 +52,7 @@ function needsQuoting(value) {
52
52
  function formatDetails(details) {
53
53
  const entries = Object.entries(details);
54
54
  if (entries.length === 0)
55
- return "";
55
+ return '';
56
56
  return entries
57
57
  .map(([key, value]) => {
58
58
  const strValue = String(value);
@@ -61,7 +61,7 @@ function formatDetails(details) {
61
61
  }
62
62
  return `${key}=${strValue}`;
63
63
  })
64
- .join(" ");
64
+ .join(' ');
65
65
  }
66
66
  function createAccessLogEntry(stack) {
67
67
  const now = Date.now();
@@ -70,16 +70,16 @@ function createAccessLogEntry(stack) {
70
70
  timestamp: new Date(now).toISOString(),
71
71
  clientIp: stack.clientIp,
72
72
  session: truncateSessionId(stack.sessionId),
73
- ctx: stack.context ?? "-",
74
- ro: stack.readOnly ? "RO" : "-",
73
+ ctx: stack.context ?? '-',
74
+ ro: stack.readOnly ? 'RO' : '-',
75
75
  method: stack.method,
76
76
  path: stack.path,
77
77
  status: stack.status ?? 0,
78
78
  durationMs,
79
- tool: stack.tool ?? "-",
80
- action: stack.action ?? "-",
79
+ tool: stack.tool ?? '-',
80
+ action: stack.action ?? '-',
81
81
  gitlabStatus: formatGitLabStatus(stack.gitlabStatus),
82
- gitlabDurationMs: stack.gitlabDuration !== undefined ? `${stack.gitlabDuration}ms` : "-",
82
+ gitlabDurationMs: stack.gitlabDuration !== undefined ? `${stack.gitlabDuration}ms` : '-',
83
83
  details: formatDetails(stack.details),
84
84
  };
85
85
  }
@@ -93,16 +93,16 @@ function formatAccessLog(entry) {
93
93
  entry.path,
94
94
  String(entry.status),
95
95
  `${entry.durationMs}ms`,
96
- "|",
96
+ '|',
97
97
  entry.tool,
98
98
  entry.action,
99
- "|",
99
+ '|',
100
100
  entry.gitlabStatus,
101
101
  entry.gitlabDurationMs,
102
- "|",
103
- entry.details || "-",
102
+ '|',
103
+ entry.details || '-',
104
104
  ];
105
- return parts.join(" ");
105
+ return parts.join(' ');
106
106
  }
107
107
  function createConnectionCloseEntry(stats, reason) {
108
108
  const now = Date.now();
@@ -122,12 +122,12 @@ function createConnectionCloseEntry(stats, reason) {
122
122
  function formatConnectionClose(entry) {
123
123
  const parts = [
124
124
  `[${entry.timestamp}]`,
125
- "CONN_CLOSE",
125
+ 'CONN_CLOSE',
126
126
  entry.clientIp,
127
127
  entry.session,
128
128
  entry.duration,
129
129
  entry.reason,
130
- "|",
130
+ '|',
131
131
  `reqs=${entry.requests}`,
132
132
  `tools=${entry.tools}`,
133
133
  `errs=${entry.errors}`,
@@ -135,7 +135,7 @@ function formatConnectionClose(entry) {
135
135
  if (entry.lastError) {
136
136
  parts.push(`last_err="${escapeLogValue(entry.lastError)}"`);
137
137
  }
138
- return parts.join(" ");
138
+ return parts.join(' ');
139
139
  }
140
140
  class AccessLogFormatter {
141
141
  formatRequest(stack) {
@@ -1,4 +1,4 @@
1
- import type { ConnectionStats, ConnectionCloseReason } from "./types.js";
1
+ import type { ConnectionStats, ConnectionCloseReason } from './types.js';
2
2
  export declare class ConnectionTracker {
3
3
  private connections;
4
4
  private enabled;
@@ -29,7 +29,7 @@ class ConnectionTracker {
29
29
  errorCount: 0,
30
30
  };
31
31
  this.connections.set(sessionId, stats);
32
- (0, logger_js_1.logDebug)("Connection opened for tracking", { sessionId, clientIp });
32
+ (0, logger_js_1.logDebug)('Connection opened for tracking', { sessionId, clientIp });
33
33
  }
34
34
  getStats(sessionId) {
35
35
  return this.connections.get(sessionId);
@@ -57,7 +57,7 @@ class ConnectionTracker {
57
57
  const stats = this.connections.get(sessionId);
58
58
  if (!stats) {
59
59
  if (this.enabled) {
60
- (0, logger_js_1.logDebug)("Connection not found on close", { sessionId });
60
+ (0, logger_js_1.logDebug)('Connection not found on close', { sessionId });
61
61
  }
62
62
  return undefined;
63
63
  }
@@ -84,7 +84,7 @@ class ConnectionTracker {
84
84
  getAllSessionIds() {
85
85
  return Array.from(this.connections.keys());
86
86
  }
87
- closeAllConnections(reason = "server_shutdown") {
87
+ closeAllConnections(reason = 'server_shutdown') {
88
88
  const sessionIds = this.getAllSessionIds();
89
89
  for (const sessionId of sessionIds) {
90
90
  this.closeConnection(sessionId, reason);
@@ -1,5 +1,5 @@
1
- export type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason, LogFormat, } from "./types.js";
2
- export { DEFAULT_LOG_FORMAT } from "./types.js";
3
- export { AccessLogFormatter, truncateSessionId, formatDuration, formatGitLabStatus, formatDetails, formatAccessLog, formatConnectionClose, createAccessLogEntry, createConnectionCloseEntry, } from "./access-log.js";
4
- export { RequestTracker, getRequestTracker, resetRequestTracker, getCurrentRequestId, runWithRequestContext, runWithRequestContextAsync, type RequestContext, } from "./request-tracker.js";
5
- export { ConnectionTracker, getConnectionTracker, resetConnectionTracker, } from "./connection-tracker.js";
1
+ export type { RequestStack, ConnectionStats, AccessLogEntry, ConnectionCloseEntry, ConnectionCloseReason, LogFormat, } from './types.js';
2
+ export { DEFAULT_LOG_FORMAT } from './types.js';
3
+ export { AccessLogFormatter, truncateSessionId, formatDuration, formatGitLabStatus, formatDetails, formatAccessLog, formatConnectionClose, createAccessLogEntry, createConnectionCloseEntry, } from './access-log.js';
4
+ export { RequestTracker, getRequestTracker, resetRequestTracker, getCurrentRequestId, runWithRequestContext, runWithRequestContextAsync, type RequestContext, } from './request-tracker.js';
5
+ export { ConnectionTracker, getConnectionTracker, resetConnectionTracker, } from './connection-tracker.js';
@@ -1,4 +1,4 @@
1
- import type { RequestStack } from "./types.js";
1
+ import type { RequestStack } from './types.js';
2
2
  export interface RequestContext {
3
3
  requestId: string;
4
4
  }
@@ -14,7 +14,7 @@ export declare class RequestTracker {
14
14
  openStack(requestId: string, clientIp: string, method: string, path: string, sessionId?: string): void;
15
15
  getStack(requestId: string): RequestStack | undefined;
16
16
  setTool(requestId: string, tool: string, action?: string): void;
17
- setGitLabResponse(requestId: string, status: number | "timeout" | "error", durationMs?: number): void;
17
+ setGitLabResponse(requestId: string, status: number | 'timeout' | 'error', durationMs?: number): void;
18
18
  addDetail(requestId: string, key: string, value: string | number | boolean): void;
19
19
  addDetails(requestId: string, details: Record<string, string | number | boolean>): void;
20
20
  setError(requestId: string, error: string): void;
@@ -27,7 +27,7 @@ export declare class RequestTracker {
27
27
  getOpenStackCount(): number;
28
28
  clear(): void;
29
29
  setToolForCurrentRequest(tool: string, action?: string): void;
30
- setGitLabResponseForCurrentRequest(status: number | "timeout" | "error", durationMs?: number): void;
30
+ setGitLabResponseForCurrentRequest(status: number | 'timeout' | 'error', durationMs?: number): void;
31
31
  addDetailForCurrentRequest(key: string, value: string | number | boolean): void;
32
32
  addDetailsForCurrentRequest(details: Record<string, string | number | boolean>): void;
33
33
  setErrorForCurrentRequest(error: string): void;
@@ -43,7 +43,7 @@ class RequestTracker {
43
43
  details: {},
44
44
  };
45
45
  this.stacks.set(requestId, stack);
46
- (0, logger_js_1.logDebug)("Request stack opened", { requestId, clientIp, method, path });
46
+ (0, logger_js_1.logDebug)('Request stack opened', { requestId, clientIp, method, path });
47
47
  }
48
48
  getStack(requestId) {
49
49
  return this.stacks.get(requestId);
@@ -56,7 +56,7 @@ class RequestTracker {
56
56
  if (action) {
57
57
  stack.action = action;
58
58
  }
59
- (0, logger_js_1.logDebug)("Tool set on request stack", { requestId, tool, action });
59
+ (0, logger_js_1.logDebug)('Tool set on request stack', { requestId, tool, action });
60
60
  }
61
61
  setGitLabResponse(requestId, status, durationMs) {
62
62
  const stack = this.stacks.get(requestId);
@@ -66,7 +66,7 @@ class RequestTracker {
66
66
  if (durationMs !== undefined) {
67
67
  stack.gitlabDuration = durationMs;
68
68
  }
69
- (0, logger_js_1.logDebug)("GitLab response set on request stack", {
69
+ (0, logger_js_1.logDebug)('GitLab response set on request stack', {
70
70
  requestId,
71
71
  gitlabStatus: status,
72
72
  gitlabDuration: durationMs,
@@ -112,7 +112,7 @@ class RequestTracker {
112
112
  closeStack(requestId, status) {
113
113
  const stack = this.stacks.get(requestId);
114
114
  if (!stack) {
115
- (0, logger_js_1.logDebug)("Request stack not found on close", { requestId });
115
+ (0, logger_js_1.logDebug)('Request stack not found on close', { requestId });
116
116
  return undefined;
117
117
  }
118
118
  this.stacks.delete(requestId);
@@ -8,13 +8,13 @@ export interface RequestStack {
8
8
  path: string;
9
9
  tool?: string;
10
10
  action?: string;
11
- gitlabStatus?: number | "timeout" | "error";
11
+ gitlabStatus?: number | 'timeout' | 'error';
12
12
  gitlabDuration?: number;
13
13
  details: Record<string, string | number | boolean>;
14
14
  status?: number;
15
15
  error?: string;
16
16
  }
17
- export type ConnectionCloseReason = "client_disconnect" | "idle_timeout" | "server_shutdown" | "transport_error" | "auth_expired" | "session_closed" | "destroyed" | "normal_close" | "heartbeat_failed" | `peer_reset:${string}`;
17
+ export type ConnectionCloseReason = 'client_disconnect' | 'idle_timeout' | 'server_shutdown' | 'transport_error' | 'auth_expired' | 'session_closed' | 'destroyed' | 'normal_close' | 'heartbeat_failed' | 'write_timeout' | `peer_reset:${string}`;
18
18
  export interface ConnectionStats {
19
19
  connectedAt: number;
20
20
  clientIp: string;
@@ -51,5 +51,5 @@ export interface ConnectionCloseEntry {
51
51
  errors: number;
52
52
  lastError?: string;
53
53
  }
54
- export type LogFormat = "condensed" | "verbose";
54
+ export type LogFormat = 'condensed' | 'verbose';
55
55
  export declare const DEFAULT_LOG_FORMAT: LogFormat;
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DEFAULT_LOG_FORMAT = void 0;
4
- exports.DEFAULT_LOG_FORMAT = "condensed";
4
+ exports.DEFAULT_LOG_FORMAT = 'condensed';
5
5
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":";;;AA+La,QAAA,kBAAkB,GAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/logging/types.ts"],"names":[],"mappings":";;;AAgMa,QAAA,kBAAkB,GAAc,WAAW,CAAC"}
package/dist/src/main.js CHANGED
@@ -44,30 +44,30 @@ const namespace_1 = require("./utils/namespace");
44
44
  async function main() {
45
45
  const cliArgs = (0, cli_utils_1.parseCliArgs)();
46
46
  if (cliArgs.setup) {
47
- const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require("./cli/setup")));
47
+ const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require('./cli/setup')));
48
48
  const result = await runSetupWizard({ mode: cliArgs.setupMode });
49
49
  process.exit(result.success ? 0 : 1);
50
50
  }
51
51
  if (cliArgs.init) {
52
- const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require("./cli/setup")));
53
- const result = await runSetupWizard({ mode: "local" });
52
+ const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require('./cli/setup')));
53
+ const result = await runSetupWizard({ mode: 'local' });
54
54
  process.exit(result.success ? 0 : 1);
55
55
  }
56
56
  if (cliArgs.install) {
57
- const { runInstallCommand, parseInstallFlags, buildServerConfigFromEnv } = await Promise.resolve().then(() => __importStar(require("./cli/install")));
57
+ const { runInstallCommand, parseInstallFlags, buildServerConfigFromEnv } = await Promise.resolve().then(() => __importStar(require('./cli/install')));
58
58
  const flags = parseInstallFlags(cliArgs.installArgs);
59
59
  const serverConfig = buildServerConfigFromEnv();
60
60
  await runInstallCommand(serverConfig, flags);
61
61
  process.exit(0);
62
62
  }
63
63
  if (cliArgs.docker) {
64
- if (cliArgs.dockerArgs[0] === "init") {
65
- const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require("./cli/setup")));
66
- const result = await runSetupWizard({ mode: "server" });
64
+ if (cliArgs.dockerArgs[0] === 'init') {
65
+ const { runSetupWizard } = await Promise.resolve().then(() => __importStar(require('./cli/setup')));
66
+ const result = await runSetupWizard({ mode: 'server' });
67
67
  process.exit(result.success ? 0 : 1);
68
68
  return;
69
69
  }
70
- const { runDockerCommand } = await Promise.resolve().then(() => __importStar(require("./cli/docker")));
70
+ const { runDockerCommand } = await Promise.resolve().then(() => __importStar(require('./cli/docker')));
71
71
  await runDockerCommand(cliArgs.dockerArgs);
72
72
  process.exit(0);
73
73
  }
@@ -79,7 +79,7 @@ async function main() {
79
79
  }
80
80
  catch (error) {
81
81
  const message = error instanceof Error ? error.message : String(error);
82
- (0, logger_1.logError)("Failed to load project config", { error: message });
82
+ (0, logger_1.logError)('Failed to load project config', { error: message });
83
83
  process.exit(1);
84
84
  }
85
85
  }
@@ -97,19 +97,19 @@ async function main() {
97
97
  console.log((0, discovery_1.formatDiscoveryResult)(autoDiscoveryResult));
98
98
  process.exit(0);
99
99
  }
100
- (0, logger_1.logInfo)("Auto-discovery detected GitLab configuration", {
100
+ (0, logger_1.logInfo)('Auto-discovery detected GitLab configuration', {
101
101
  host: autoDiscoveryResult.host,
102
102
  project: autoDiscoveryResult.projectPath,
103
103
  profile: autoDiscoveryResult.matchedProfile?.profileName,
104
104
  });
105
105
  }
106
106
  else {
107
- (0, logger_1.logWarn)("Auto-discovery failed: not in a git repository or no remote found");
107
+ (0, logger_1.logWarn)('Auto-discovery failed: not in a git repository or no remote found');
108
108
  }
109
109
  }
110
110
  catch (error) {
111
111
  const message = error instanceof Error ? error.message : String(error);
112
- (0, logger_1.logError)("Auto-discovery failed", { error: message });
112
+ (0, logger_1.logError)('Auto-discovery failed', { error: message });
113
113
  process.exit(1);
114
114
  }
115
115
  }
@@ -117,18 +117,18 @@ async function main() {
117
117
  try {
118
118
  const result = await (0, profiles_1.tryApplyProfileFromEnv)(cliArgs.profileName);
119
119
  if (result) {
120
- if ("profileName" in result) {
121
- (0, logger_1.logInfo)("Using CLI-specified profile", {
120
+ if ('profileName' in result) {
121
+ (0, logger_1.logInfo)('Using CLI-specified profile', {
122
122
  profile: result.profileName,
123
123
  host: result.host,
124
124
  });
125
125
  }
126
126
  else {
127
- (0, logger_1.logInfo)("Using CLI-specified preset", { preset: result.presetName });
127
+ (0, logger_1.logInfo)('Using CLI-specified preset', { preset: result.presetName });
128
128
  }
129
129
  if (autoDiscoveryResult?.matchedProfile &&
130
130
  autoDiscoveryResult.matchedProfile.profileName !== cliArgs.profileName) {
131
- (0, logger_1.logWarn)("Auto-discovered profile ignored: --profile takes precedence", {
131
+ (0, logger_1.logWarn)('Auto-discovered profile ignored: --profile takes precedence', {
132
132
  cliProfile: cliArgs.profileName,
133
133
  autoProfile: autoDiscoveryResult.matchedProfile.profileName,
134
134
  });
@@ -137,15 +137,15 @@ async function main() {
137
137
  }
138
138
  catch (error) {
139
139
  const message = error instanceof Error ? error.message : String(error);
140
- (0, logger_1.logError)("Failed to load profile", { error: message });
140
+ (0, logger_1.logError)('Failed to load profile', { error: message });
141
141
  process.exit(1);
142
142
  }
143
143
  }
144
144
  else if (autoDiscoveryResult?.matchedProfile) {
145
145
  try {
146
146
  const result = await (0, profiles_1.tryApplyProfileFromEnv)(autoDiscoveryResult.matchedProfile.profileName);
147
- if (result && "profileName" in result) {
148
- (0, logger_1.logInfo)("Using auto-discovered profile", {
147
+ if (result && 'profileName' in result) {
148
+ (0, logger_1.logInfo)('Using auto-discovered profile', {
149
149
  profile: result.profileName,
150
150
  host: result.host,
151
151
  });
@@ -153,27 +153,27 @@ async function main() {
153
153
  }
154
154
  catch (error) {
155
155
  const message = error instanceof Error ? error.message : String(error);
156
- (0, logger_1.logWarn)("Failed to apply auto-discovered profile", { error: message });
156
+ (0, logger_1.logWarn)('Failed to apply auto-discovered profile', { error: message });
157
157
  }
158
158
  }
159
159
  else {
160
160
  try {
161
161
  const result = await (0, profiles_1.tryApplyProfileFromEnv)();
162
162
  if (result) {
163
- if ("profileName" in result) {
164
- (0, logger_1.logInfo)("Using configuration profile", {
163
+ if ('profileName' in result) {
164
+ (0, logger_1.logInfo)('Using configuration profile', {
165
165
  profile: result.profileName,
166
166
  host: result.host,
167
167
  });
168
168
  }
169
169
  else {
170
- (0, logger_1.logInfo)("Using configuration preset", { preset: result.presetName });
170
+ (0, logger_1.logInfo)('Using configuration preset', { preset: result.presetName });
171
171
  }
172
172
  }
173
173
  }
174
174
  catch (error) {
175
175
  const message = error instanceof Error ? error.message : String(error);
176
- (0, logger_1.logError)("Failed to load profile", { error: message });
176
+ (0, logger_1.logError)('Failed to load profile', { error: message });
177
177
  process.exit(1);
178
178
  }
179
179
  }
@@ -182,7 +182,7 @@ async function main() {
182
182
  const projectConfig = await (0, profiles_1.findProjectConfig)(process.cwd());
183
183
  if (projectConfig) {
184
184
  const summary = (0, profiles_1.getProjectConfigSummary)(projectConfig);
185
- (0, logger_1.logInfo)("Loaded project configuration (restrictions applied)", {
185
+ (0, logger_1.logInfo)('Loaded project configuration (restrictions applied)', {
186
186
  path: projectConfig.configPath,
187
187
  preset: summary.presetSummary,
188
188
  profile: summary.profileSummary,
@@ -191,7 +191,7 @@ async function main() {
191
191
  }
192
192
  catch (error) {
193
193
  const message = error instanceof Error ? error.message : String(error);
194
- (0, logger_1.logWarn)("Failed to load project config, continuing without it", { error: message });
194
+ (0, logger_1.logWarn)('Failed to load project config, continuing without it', { error: message });
195
195
  }
196
196
  }
197
197
  if (autoDiscoveryResult) {
@@ -200,7 +200,7 @@ async function main() {
200
200
  if (namespace) {
201
201
  process.env.GITLAB_DEFAULT_NAMESPACE ??= namespace;
202
202
  }
203
- (0, logger_1.logDebug)("Default context set from auto-discovery", {
203
+ (0, logger_1.logDebug)('Default context set from auto-discovery', {
204
204
  defaultProject: process.env.GITLAB_DEFAULT_PROJECT,
205
205
  defaultNamespace: process.env.GITLAB_DEFAULT_NAMESPACE,
206
206
  });
@@ -212,7 +212,7 @@ main().catch((error) => {
212
212
  console.error(error.guidance);
213
213
  }
214
214
  else {
215
- (0, logger_1.logError)("Failed to start GitLab MCP Server", { error: String(error) });
215
+ (0, logger_1.logError)('Failed to start GitLab MCP Server', { error: String(error) });
216
216
  }
217
217
  process.exit(1);
218
218
  });
@@ -1,2 +1,3 @@
1
- export { oauthAuthMiddleware, createOAuthMiddleware, optionalOAuthMiddleware } from "./oauth-auth";
2
- export { rateLimiterMiddleware, stopCleanup as stopRateLimitCleanup, getRateLimitStats, } from "./rate-limiter";
1
+ export { oauthAuthMiddleware, createOAuthMiddleware, optionalOAuthMiddleware } from './oauth-auth';
2
+ export { rateLimiterMiddleware, stopCleanup as stopRateLimitCleanup, getRateLimitStats, } from './rate-limiter';
3
+ export { responseWriteTimeoutMiddleware } from './response-write-timeout';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRateLimitStats = exports.stopRateLimitCleanup = exports.rateLimiterMiddleware = exports.optionalOAuthMiddleware = exports.createOAuthMiddleware = exports.oauthAuthMiddleware = void 0;
3
+ exports.responseWriteTimeoutMiddleware = exports.getRateLimitStats = exports.stopRateLimitCleanup = exports.rateLimiterMiddleware = exports.optionalOAuthMiddleware = exports.createOAuthMiddleware = exports.oauthAuthMiddleware = void 0;
4
4
  var oauth_auth_1 = require("./oauth-auth");
5
5
  Object.defineProperty(exports, "oauthAuthMiddleware", { enumerable: true, get: function () { return oauth_auth_1.oauthAuthMiddleware; } });
6
6
  Object.defineProperty(exports, "createOAuthMiddleware", { enumerable: true, get: function () { return oauth_auth_1.createOAuthMiddleware; } });
@@ -9,4 +9,6 @@ var rate_limiter_1 = require("./rate-limiter");
9
9
  Object.defineProperty(exports, "rateLimiterMiddleware", { enumerable: true, get: function () { return rate_limiter_1.rateLimiterMiddleware; } });
10
10
  Object.defineProperty(exports, "stopRateLimitCleanup", { enumerable: true, get: function () { return rate_limiter_1.stopCleanup; } });
11
11
  Object.defineProperty(exports, "getRateLimitStats", { enumerable: true, get: function () { return rate_limiter_1.getRateLimitStats; } });
12
+ var response_write_timeout_1 = require("./response-write-timeout");
13
+ Object.defineProperty(exports, "responseWriteTimeoutMiddleware", { enumerable: true, get: function () { return response_write_timeout_1.responseWriteTimeoutMiddleware; } });
12
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;AAMA,2CAAmG;AAA1F,iHAAA,mBAAmB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAC5E,+CAIwB;AAHtB,qHAAA,qBAAqB,OAAA;AACrB,oHAAA,WAAW,OAAwB;AACnC,iHAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/middleware/index.ts"],"names":[],"mappings":";;;AAMA,2CAAmG;AAA1F,iHAAA,mBAAmB,OAAA;AAAE,mHAAA,qBAAqB,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAC5E,+CAIwB;AAHtB,qHAAA,qBAAqB,OAAA;AACrB,oHAAA,WAAW,OAAwB;AACnC,iHAAA,iBAAiB,OAAA;AAEnB,mEAA0E;AAAjE,wIAAA,8BAA8B,OAAA"}
@@ -1,4 +1,4 @@
1
- import { Request, Response, NextFunction } from "express";
1
+ import { Request, Response, NextFunction } from 'express';
2
2
  export declare function oauthAuthMiddleware(req: Request, res: Response, next: NextFunction): Promise<void>;
3
3
  export declare function createOAuthMiddleware(): typeof oauthAuthMiddleware;
4
4
  export declare function optionalOAuthMiddleware(req: Request, res: Response, next: NextFunction): Promise<void>;