@padua/cli 1.13.0 → 2.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 (272) hide show
  1. package/README.md +164 -11
  2. package/dist/commands/doctor/index.d.ts.map +1 -1
  3. package/dist/commands/doctor/index.js +85 -0
  4. package/dist/commands/doctor/index.js.map +1 -1
  5. package/dist/commands/doctor/mcp-checks.d.ts +36 -0
  6. package/dist/commands/doctor/mcp-checks.d.ts.map +1 -0
  7. package/dist/commands/doctor/mcp-checks.js +235 -0
  8. package/dist/commands/doctor/mcp-checks.js.map +1 -0
  9. package/dist/commands/doctor/mcp-service-checks.d.ts +35 -0
  10. package/dist/commands/doctor/mcp-service-checks.d.ts.map +1 -0
  11. package/dist/commands/doctor/mcp-service-checks.js +146 -0
  12. package/dist/commands/doctor/mcp-service-checks.js.map +1 -0
  13. package/dist/commands/doctor/types.d.ts +4 -1
  14. package/dist/commands/doctor/types.d.ts.map +1 -1
  15. package/dist/commands/doctor/types.js +1 -0
  16. package/dist/commands/doctor/types.js.map +1 -1
  17. package/dist/commands/init/sso-discovery.d.ts.map +1 -1
  18. package/dist/commands/init/sso-discovery.js +1 -0
  19. package/dist/commands/init/sso-discovery.js.map +1 -1
  20. package/dist/commands/login/index.d.ts +1 -1
  21. package/dist/commands/login/index.d.ts.map +1 -1
  22. package/dist/commands/login/index.js +44 -185
  23. package/dist/commands/login/index.js.map +1 -1
  24. package/dist/commands/login/mcp-steps.d.ts +38 -0
  25. package/dist/commands/login/mcp-steps.d.ts.map +1 -0
  26. package/dist/commands/login/mcp-steps.js +176 -0
  27. package/dist/commands/login/mcp-steps.js.map +1 -0
  28. package/dist/commands/login/npmrc.d.ts +10 -0
  29. package/dist/commands/login/npmrc.d.ts.map +1 -1
  30. package/dist/commands/login/npmrc.js +36 -3
  31. package/dist/commands/login/npmrc.js.map +1 -1
  32. package/dist/commands/login/orchestrator.d.ts +9 -0
  33. package/dist/commands/login/orchestrator.d.ts.map +1 -0
  34. package/dist/commands/login/orchestrator.js +251 -0
  35. package/dist/commands/login/orchestrator.js.map +1 -0
  36. package/dist/commands/login/types.d.ts +11 -0
  37. package/dist/commands/login/types.d.ts.map +1 -1
  38. package/dist/commands/login/types.js.map +1 -1
  39. package/dist/commands/status/aws-checks.d.ts +14 -0
  40. package/dist/commands/status/aws-checks.d.ts.map +1 -0
  41. package/dist/commands/status/aws-checks.js +145 -0
  42. package/dist/commands/status/aws-checks.js.map +1 -0
  43. package/dist/commands/status/checks.d.ts +9 -25
  44. package/dist/commands/status/checks.d.ts.map +1 -1
  45. package/dist/commands/status/checks.js +52 -254
  46. package/dist/commands/status/checks.js.map +1 -1
  47. package/dist/commands/status/index.d.ts.map +1 -1
  48. package/dist/commands/status/index.js +53 -1
  49. package/dist/commands/status/index.js.map +1 -1
  50. package/dist/commands/status/mcp-checks.d.ts +35 -0
  51. package/dist/commands/status/mcp-checks.d.ts.map +1 -0
  52. package/dist/commands/status/mcp-checks.js +175 -0
  53. package/dist/commands/status/mcp-checks.js.map +1 -0
  54. package/dist/commands/status/types.d.ts +34 -0
  55. package/dist/commands/status/types.d.ts.map +1 -1
  56. package/dist/mcp/config/index.d.ts +4 -0
  57. package/dist/mcp/config/index.d.ts.map +1 -0
  58. package/dist/mcp/config/index.js +14 -0
  59. package/dist/mcp/config/index.js.map +1 -0
  60. package/dist/mcp/config/loaders.d.ts +45 -0
  61. package/dist/mcp/config/loaders.d.ts.map +1 -0
  62. package/dist/mcp/config/loaders.js +149 -0
  63. package/dist/mcp/config/loaders.js.map +1 -0
  64. package/dist/mcp/config/types.d.ts +234 -0
  65. package/dist/mcp/config/types.d.ts.map +1 -0
  66. package/dist/mcp/config/types.js +45 -0
  67. package/dist/mcp/config/types.js.map +1 -0
  68. package/dist/mcp/daemon/entry-logic.d.ts +28 -0
  69. package/dist/mcp/daemon/entry-logic.d.ts.map +1 -0
  70. package/dist/mcp/daemon/entry-logic.js +82 -0
  71. package/dist/mcp/daemon/entry-logic.js.map +1 -0
  72. package/dist/mcp/daemon/entry.d.ts +8 -0
  73. package/dist/mcp/daemon/entry.d.ts.map +1 -0
  74. package/dist/mcp/daemon/entry.js +34 -0
  75. package/dist/mcp/daemon/entry.js.map +1 -0
  76. package/dist/mcp/daemon/fork.d.ts +21 -0
  77. package/dist/mcp/daemon/fork.d.ts.map +1 -0
  78. package/dist/mcp/daemon/fork.js +188 -0
  79. package/dist/mcp/daemon/fork.js.map +1 -0
  80. package/dist/mcp/daemon/health.d.ts +8 -0
  81. package/dist/mcp/daemon/health.d.ts.map +1 -0
  82. package/dist/mcp/daemon/health.js +50 -0
  83. package/dist/mcp/daemon/health.js.map +1 -0
  84. package/dist/mcp/daemon/index.d.ts +6 -0
  85. package/dist/mcp/daemon/index.d.ts.map +1 -0
  86. package/dist/mcp/daemon/index.js +22 -0
  87. package/dist/mcp/daemon/index.js.map +1 -0
  88. package/dist/mcp/daemon/types.d.ts +63 -0
  89. package/dist/mcp/daemon/types.d.ts.map +1 -0
  90. package/dist/mcp/daemon/types.js +18 -0
  91. package/dist/mcp/daemon/types.js.map +1 -0
  92. package/dist/mcp/errors/index.d.ts +3 -0
  93. package/dist/mcp/errors/index.d.ts.map +1 -0
  94. package/dist/mcp/errors/index.js +13 -0
  95. package/dist/mcp/errors/index.js.map +1 -0
  96. package/dist/mcp/errors/types.d.ts +83 -0
  97. package/dist/mcp/errors/types.d.ts.map +1 -0
  98. package/dist/mcp/errors/types.js +148 -0
  99. package/dist/mcp/errors/types.js.map +1 -0
  100. package/dist/mcp/providers/atlassian/auth.d.ts +34 -0
  101. package/dist/mcp/providers/atlassian/auth.d.ts.map +1 -0
  102. package/dist/mcp/providers/atlassian/auth.js +107 -0
  103. package/dist/mcp/providers/atlassian/auth.js.map +1 -0
  104. package/dist/mcp/providers/atlassian/client.d.ts +15 -0
  105. package/dist/mcp/providers/atlassian/client.d.ts.map +1 -0
  106. package/dist/mcp/providers/atlassian/client.js +38 -0
  107. package/dist/mcp/providers/atlassian/client.js.map +1 -0
  108. package/dist/mcp/providers/atlassian/index.d.ts +6 -0
  109. package/dist/mcp/providers/atlassian/index.d.ts.map +1 -0
  110. package/dist/mcp/providers/atlassian/index.js +11 -0
  111. package/dist/mcp/providers/atlassian/index.js.map +1 -0
  112. package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts +17 -0
  113. package/dist/mcp/providers/atlassian/markdown-to-adf/index.d.ts.map +1 -0
  114. package/dist/mcp/providers/atlassian/markdown-to-adf/index.js +29 -0
  115. package/dist/mcp/providers/atlassian/markdown-to-adf/index.js.map +1 -0
  116. package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.d.ts +43 -0
  117. package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.d.ts.map +1 -0
  118. package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js +101 -0
  119. package/dist/mcp/providers/atlassian/markdown-to-adf/nodes.js.map +1 -0
  120. package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts +14 -0
  121. package/dist/mcp/providers/atlassian/markdown-to-adf/parser.d.ts.map +1 -0
  122. package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js +250 -0
  123. package/dist/mcp/providers/atlassian/markdown-to-adf/parser.js.map +1 -0
  124. package/dist/mcp/providers/atlassian/provider.d.ts +38 -0
  125. package/dist/mcp/providers/atlassian/provider.d.ts.map +1 -0
  126. package/dist/mcp/providers/atlassian/provider.js +101 -0
  127. package/dist/mcp/providers/atlassian/provider.js.map +1 -0
  128. package/dist/mcp/providers/atlassian/resources.d.ts +4 -0
  129. package/dist/mcp/providers/atlassian/resources.d.ts.map +1 -0
  130. package/dist/mcp/providers/atlassian/resources.js +67 -0
  131. package/dist/mcp/providers/atlassian/resources.js.map +1 -0
  132. package/dist/mcp/providers/atlassian/tools/confluence.d.ts +4 -0
  133. package/dist/mcp/providers/atlassian/tools/confluence.d.ts.map +1 -0
  134. package/dist/mcp/providers/atlassian/tools/confluence.js +169 -0
  135. package/dist/mcp/providers/atlassian/tools/confluence.js.map +1 -0
  136. package/dist/mcp/providers/atlassian/tools/jira.d.ts +4 -0
  137. package/dist/mcp/providers/atlassian/tools/jira.d.ts.map +1 -0
  138. package/dist/mcp/providers/atlassian/tools/jira.js +274 -0
  139. package/dist/mcp/providers/atlassian/tools/jira.js.map +1 -0
  140. package/dist/mcp/providers/gitlab/auth.d.ts +10 -0
  141. package/dist/mcp/providers/gitlab/auth.d.ts.map +1 -0
  142. package/dist/mcp/providers/gitlab/auth.js +23 -0
  143. package/dist/mcp/providers/gitlab/auth.js.map +1 -0
  144. package/dist/mcp/providers/gitlab/client.d.ts +23 -0
  145. package/dist/mcp/providers/gitlab/client.d.ts.map +1 -0
  146. package/dist/mcp/providers/gitlab/client.js +17 -0
  147. package/dist/mcp/providers/gitlab/client.js.map +1 -0
  148. package/dist/mcp/providers/gitlab/index.d.ts +5 -0
  149. package/dist/mcp/providers/gitlab/index.d.ts.map +1 -0
  150. package/dist/mcp/providers/gitlab/index.js +10 -0
  151. package/dist/mcp/providers/gitlab/index.js.map +1 -0
  152. package/dist/mcp/providers/gitlab/provider.d.ts +25 -0
  153. package/dist/mcp/providers/gitlab/provider.d.ts.map +1 -0
  154. package/dist/mcp/providers/gitlab/provider.js +48 -0
  155. package/dist/mcp/providers/gitlab/provider.js.map +1 -0
  156. package/dist/mcp/providers/gitlab/resources.d.ts +11 -0
  157. package/dist/mcp/providers/gitlab/resources.d.ts.map +1 -0
  158. package/dist/mcp/providers/gitlab/resources.js +54 -0
  159. package/dist/mcp/providers/gitlab/resources.js.map +1 -0
  160. package/dist/mcp/providers/gitlab/tools/issues.d.ts +4 -0
  161. package/dist/mcp/providers/gitlab/tools/issues.d.ts.map +1 -0
  162. package/dist/mcp/providers/gitlab/tools/issues.js +120 -0
  163. package/dist/mcp/providers/gitlab/tools/issues.js.map +1 -0
  164. package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts +11 -0
  165. package/dist/mcp/providers/gitlab/tools/merge-requests.d.ts.map +1 -0
  166. package/dist/mcp/providers/gitlab/tools/merge-requests.js +282 -0
  167. package/dist/mcp/providers/gitlab/tools/merge-requests.js.map +1 -0
  168. package/dist/mcp/providers/gitlab/tools/pipelines.d.ts +10 -0
  169. package/dist/mcp/providers/gitlab/tools/pipelines.d.ts.map +1 -0
  170. package/dist/mcp/providers/gitlab/tools/pipelines.js +173 -0
  171. package/dist/mcp/providers/gitlab/tools/pipelines.js.map +1 -0
  172. package/dist/mcp/providers/gitlab/tools/repository.d.ts +4 -0
  173. package/dist/mcp/providers/gitlab/tools/repository.d.ts.map +1 -0
  174. package/dist/mcp/providers/gitlab/tools/repository.js +191 -0
  175. package/dist/mcp/providers/gitlab/tools/repository.js.map +1 -0
  176. package/dist/mcp/providers/index.d.ts +4 -0
  177. package/dist/mcp/providers/index.d.ts.map +1 -0
  178. package/dist/mcp/providers/index.js +6 -0
  179. package/dist/mcp/providers/index.js.map +1 -0
  180. package/dist/mcp/providers/registry.d.ts +90 -0
  181. package/dist/mcp/providers/registry.d.ts.map +1 -0
  182. package/dist/mcp/providers/registry.js +128 -0
  183. package/dist/mcp/providers/registry.js.map +1 -0
  184. package/dist/mcp/providers/tool-helpers.d.ts +14 -0
  185. package/dist/mcp/providers/tool-helpers.d.ts.map +1 -0
  186. package/dist/mcp/providers/tool-helpers.js +12 -0
  187. package/dist/mcp/providers/tool-helpers.js.map +1 -0
  188. package/dist/mcp/providers/types.d.ts +80 -0
  189. package/dist/mcp/providers/types.d.ts.map +1 -0
  190. package/dist/mcp/providers/types.js +13 -0
  191. package/dist/mcp/providers/types.js.map +1 -0
  192. package/dist/mcp/server/auth.d.ts +8 -0
  193. package/dist/mcp/server/auth.d.ts.map +1 -0
  194. package/dist/mcp/server/auth.js +36 -0
  195. package/dist/mcp/server/auth.js.map +1 -0
  196. package/dist/mcp/server/health.d.ts +24 -0
  197. package/dist/mcp/server/health.d.ts.map +1 -0
  198. package/dist/mcp/server/health.js +37 -0
  199. package/dist/mcp/server/health.js.map +1 -0
  200. package/dist/mcp/server/index.d.ts +11 -0
  201. package/dist/mcp/server/index.d.ts.map +1 -0
  202. package/dist/mcp/server/index.js +27 -0
  203. package/dist/mcp/server/index.js.map +1 -0
  204. package/dist/mcp/server/logging.d.ts +46 -0
  205. package/dist/mcp/server/logging.d.ts.map +1 -0
  206. package/dist/mcp/server/logging.js +109 -0
  207. package/dist/mcp/server/logging.js.map +1 -0
  208. package/dist/mcp/server/ratelimit.d.ts +3 -0
  209. package/dist/mcp/server/ratelimit.d.ts.map +1 -0
  210. package/dist/mcp/server/ratelimit.js +70 -0
  211. package/dist/mcp/server/ratelimit.js.map +1 -0
  212. package/dist/mcp/server/routes.d.ts +3 -0
  213. package/dist/mcp/server/routes.d.ts.map +1 -0
  214. package/dist/mcp/server/routes.js +8 -0
  215. package/dist/mcp/server/routes.js.map +1 -0
  216. package/dist/mcp/server/server.d.ts +21 -0
  217. package/dist/mcp/server/server.d.ts.map +1 -0
  218. package/dist/mcp/server/server.js +114 -0
  219. package/dist/mcp/server/server.js.map +1 -0
  220. package/dist/mcp/server/validation.d.ts +22 -0
  221. package/dist/mcp/server/validation.d.ts.map +1 -0
  222. package/dist/mcp/server/validation.js +32 -0
  223. package/dist/mcp/server/validation.js.map +1 -0
  224. package/dist/mcp/store/encrypt.d.ts +22 -0
  225. package/dist/mcp/store/encrypt.d.ts.map +1 -0
  226. package/dist/mcp/store/encrypt.js +66 -0
  227. package/dist/mcp/store/encrypt.js.map +1 -0
  228. package/dist/mcp/store/index.d.ts +12 -0
  229. package/dist/mcp/store/index.d.ts.map +1 -0
  230. package/dist/mcp/store/index.js +16 -0
  231. package/dist/mcp/store/index.js.map +1 -0
  232. package/dist/mcp/store/migrate.d.ts +70 -0
  233. package/dist/mcp/store/migrate.d.ts.map +1 -0
  234. package/dist/mcp/store/migrate.js +211 -0
  235. package/dist/mcp/store/migrate.js.map +1 -0
  236. package/dist/mcp/store/null-token-store.d.ts +22 -0
  237. package/dist/mcp/store/null-token-store.d.ts.map +1 -0
  238. package/dist/mcp/store/null-token-store.js +40 -0
  239. package/dist/mcp/store/null-token-store.js.map +1 -0
  240. package/dist/mcp/store/sqlite.d.ts +27 -0
  241. package/dist/mcp/store/sqlite.d.ts.map +1 -0
  242. package/dist/mcp/store/sqlite.js +100 -0
  243. package/dist/mcp/store/sqlite.js.map +1 -0
  244. package/dist/mcp/store/types.d.ts +183 -0
  245. package/dist/mcp/store/types.d.ts.map +1 -0
  246. package/dist/mcp/store/types.js +13 -0
  247. package/dist/mcp/store/types.js.map +1 -0
  248. package/dist/mcp/token/http-client.d.ts +3 -0
  249. package/dist/mcp/token/http-client.d.ts.map +1 -0
  250. package/dist/mcp/token/http-client.js +186 -0
  251. package/dist/mcp/token/http-client.js.map +1 -0
  252. package/dist/mcp/token/index.d.ts +5 -0
  253. package/dist/mcp/token/index.d.ts.map +1 -0
  254. package/dist/mcp/token/index.js +15 -0
  255. package/dist/mcp/token/index.js.map +1 -0
  256. package/dist/mcp/token/manager.d.ts +54 -0
  257. package/dist/mcp/token/manager.d.ts.map +1 -0
  258. package/dist/mcp/token/manager.js +194 -0
  259. package/dist/mcp/token/manager.js.map +1 -0
  260. package/dist/mcp/token/null-token-manager.d.ts +19 -0
  261. package/dist/mcp/token/null-token-manager.d.ts.map +1 -0
  262. package/dist/mcp/token/null-token-manager.js +50 -0
  263. package/dist/mcp/token/null-token-manager.js.map +1 -0
  264. package/dist/mcp/token/oauth.d.ts +44 -0
  265. package/dist/mcp/token/oauth.d.ts.map +1 -0
  266. package/dist/mcp/token/oauth.js +257 -0
  267. package/dist/mcp/token/oauth.js.map +1 -0
  268. package/dist/mcp/token/types.d.ts +81 -0
  269. package/dist/mcp/token/types.d.ts.map +1 -0
  270. package/dist/mcp/token/types.js +6 -0
  271. package/dist/mcp/token/types.js.map +1 -0
  272. package/package.json +10 -3
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/login/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,mEAAmE;IACnE,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAElC,2DAA2D;IAC3D,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IAEf,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IAEpB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAElB,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IAEjB,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAC;IAEjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6DAA6D;IAC7D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,GAAG,EAAE,aAAa,CAAC;IAEnB,wDAAwD;IACxD,YAAY,EAAE,aAAa,CAAC;IAE5B,gDAAgD;IAChD,GAAG,EAAE,aAAa,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,yCAAyC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAapD;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAElE;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEzD;AAED,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAQvF;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAE/D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/login/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/login/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAwGH,4CAEC;AAGD,sCAaC;AAGD,gDAEC;AAGD,8CAEC;AAGD,sDAEC;AAGD,sDAEC;AAGD,oCAEC;AAGD,kDAQC;AAGD,gDAEC;AA9DD,cAAc;AAEd,mEAAmE;AACnE,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,kDAAkD;AAClD,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,YAAY,GAAG;QACnB,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;QAClD,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY;QACnE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;QACpD,gBAAgB,EAAE,gBAAgB;QAClC,YAAY;QACZ,cAAc;QACd,WAAW;QACX,YAAY;QACZ,YAAY;KACb,CAAC;IACF,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,oFAAoF;AACpF,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,sEAAsE;AACtE,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5F,CAAC;AAED,oFAAoF;AACpF,SAAgB,qBAAqB,CAAC,KAAa;IACjD,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5F,CAAC;AAED,yDAAyD;AACzD,SAAgB,qBAAqB,CAAC,MAAmB;IACvD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAChH,CAAC;AAED,gDAAgD;AAChD,SAAgB,YAAY,CAAC,MAAmB;IAC9C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,+FAA+F;AAC/F,SAAgB,mBAAmB,CAAC,OAAqB,EAAE,MAAoB;IAC7E,OAAO,CACL,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,MAAM,EAAE,cAAc;QACtB,SAAS,CACV,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAgB,kBAAkB,CAAC,MAAoB;IACrD,OAAO,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/login/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAyHH,4CAEC;AAGD,sCAaC;AAGD,gDAEC;AAGD,8CAEC;AAGD,sDAEC;AAGD,sDAEC;AAGD,oCAEC;AAGD,kDAQC;AAGD,gDAEC;AA9DD,cAAc;AAEd,mEAAmE;AACnE,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,kDAAkD;AAClD,SAAgB,aAAa,CAAC,KAAa;IACzC,MAAM,YAAY,GAAG;QACnB,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW;QAClD,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY;QACnE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB;QACpD,gBAAgB,EAAE,gBAAgB;QAClC,YAAY;QACZ,cAAc;QACd,WAAW;QACX,YAAY;QACZ,YAAY;KACb,CAAC;IACF,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,oFAAoF;AACpF,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,sEAAsE;AACtE,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5F,CAAC;AAED,oFAAoF;AACpF,SAAgB,qBAAqB,CAAC,KAAa;IACjD,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5F,CAAC;AAED,yDAAyD;AACzD,SAAgB,qBAAqB,CAAC,MAAmB;IACvD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAChH,CAAC;AAED,gDAAgD;AAChD,SAAgB,YAAY,CAAC,MAAmB;IAC9C,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,IAAI,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,+FAA+F;AAC/F,SAAgB,mBAAmB,CAAC,OAAqB,EAAE,MAAoB;IAC7E,OAAO,CACL,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,MAAM,EAAE,cAAc;QACtB,SAAS,CACV,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAgB,kBAAkB,CAAC,MAAoB;IACrD,OAAO,MAAM,EAAE,MAAM,IAAI,WAAW,CAAC;AACvC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Status checks for AWS services: CodeArtifact and ECR.
3
+ */
4
+ import type { CodeArtifactStatus, ECRStatus } from './types';
5
+ import type { CodeArtifactConfig, EcrConfig } from '../login/types';
6
+ /**
7
+ * Check CodeArtifact authentication status by parsing .npmrc (project or global)
8
+ */
9
+ export declare function checkCodeArtifactStatus(config: CodeArtifactConfig): Promise<CodeArtifactStatus>;
10
+ /**
11
+ * Check ECR authentication status by parsing ~/.docker/config.json
12
+ */
13
+ export declare function checkECRStatus(config: EcrConfig): Promise<ECRStatus>;
14
+ //# sourceMappingURL=aws-checks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-checks.d.ts","sourceRoot":"","sources":["../../../src/commands/status/aws-checks.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAMpE;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+CrG;AAmBD;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAmD1E"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ /**
3
+ * Status checks for AWS services: CodeArtifact and ECR.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.checkCodeArtifactStatus = checkCodeArtifactStatus;
40
+ exports.checkECRStatus = checkECRStatus;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
43
+ const os = __importStar(require("os"));
44
+ // ---------------------------------------------------------------------------
45
+ // CodeArtifact
46
+ // ---------------------------------------------------------------------------
47
+ /**
48
+ * Check CodeArtifact authentication status by parsing .npmrc (project or global)
49
+ */
50
+ async function checkCodeArtifactStatus(config) {
51
+ const projectNpmrcPath = path.join(process.cwd(), '.npmrc');
52
+ const globalNpmrcPath = path.join(os.homedir(), '.npmrc');
53
+ let npmrcPath = null;
54
+ let location = null;
55
+ if (fs.existsSync(projectNpmrcPath)) {
56
+ npmrcPath = projectNpmrcPath;
57
+ location = 'project';
58
+ }
59
+ else if (fs.existsSync(globalNpmrcPath)) {
60
+ npmrcPath = globalNpmrcPath;
61
+ location = 'global';
62
+ }
63
+ if (!npmrcPath || !location) {
64
+ return { authenticated: false, error: 'No .npmrc file found (checked project and global)' };
65
+ }
66
+ try {
67
+ const content = fs.readFileSync(npmrcPath, 'utf-8');
68
+ const registryPattern = new RegExp(`//([^/]+\\.d\\.codeartifact\\.[^/]+\\.amazonaws\\.com/npm/${config.repository}/).*:_authToken=(.+)`, 'm');
69
+ const match = content.match(registryPattern);
70
+ if (!match) {
71
+ return { authenticated: false, location, error: `No CodeArtifact token found in .npmrc (${location})` };
72
+ }
73
+ const registry = `https://${match[1]}`;
74
+ const token = match[2].trim();
75
+ const expiresAt = parseJwtExpiry(token);
76
+ if (expiresAt && expiresAt < new Date()) {
77
+ return { authenticated: false, registry, expiresAt, location, error: 'Token expired' };
78
+ }
79
+ return { authenticated: true, registry, expiresAt: expiresAt ?? undefined, location };
80
+ }
81
+ catch (error) {
82
+ return {
83
+ authenticated: false,
84
+ location,
85
+ error: `Failed to read .npmrc (${location}): ${error.message}`,
86
+ };
87
+ }
88
+ }
89
+ function parseJwtExpiry(token) {
90
+ try {
91
+ const parts = token.split('.');
92
+ if (parts.length !== 3)
93
+ return null;
94
+ const decoded = Buffer.from(parts[1], 'base64url').toString('utf-8');
95
+ const data = JSON.parse(decoded);
96
+ return data.exp ? new Date(data.exp * 1000) : null;
97
+ }
98
+ catch {
99
+ return null;
100
+ }
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // ECR
104
+ // ---------------------------------------------------------------------------
105
+ /**
106
+ * Check ECR authentication status by parsing ~/.docker/config.json
107
+ */
108
+ async function checkECRStatus(config) {
109
+ const dockerConfigPath = path.join(os.homedir(), '.docker', 'config.json');
110
+ const registry = `${config.accountId}.dkr.ecr.${config.region}.amazonaws.com`;
111
+ if (!fs.existsSync(dockerConfigPath)) {
112
+ return { authenticated: false, registry, error: 'No ~/.docker/config.json found' };
113
+ }
114
+ try {
115
+ const content = fs.readFileSync(dockerConfigPath, 'utf-8');
116
+ const dockerConfig = JSON.parse(content);
117
+ if (dockerConfig.credHelpers) {
118
+ const helperKey = Object.keys(dockerConfig.credHelpers).find((k) => k.includes('ecr') && k.includes(config.region));
119
+ if (helperKey)
120
+ return { authenticated: true, registry };
121
+ }
122
+ if (!dockerConfig.auths) {
123
+ return { authenticated: false, registry, error: 'No Docker auth entries found' };
124
+ }
125
+ const ecrEntry = Object.keys(dockerConfig.auths).find((k) => k.includes(config.accountId) && k.includes('ecr') && k.includes(config.region));
126
+ if (!ecrEntry) {
127
+ return { authenticated: false, registry, error: 'No ECR credentials found' };
128
+ }
129
+ if (dockerConfig.credsStore && !dockerConfig.auths[ecrEntry]?.auth) {
130
+ return { authenticated: true, registry };
131
+ }
132
+ if (!dockerConfig.auths[ecrEntry]?.auth) {
133
+ return { authenticated: false, registry, error: 'No ECR credentials found' };
134
+ }
135
+ return { authenticated: true, registry };
136
+ }
137
+ catch (error) {
138
+ return {
139
+ authenticated: false,
140
+ registry,
141
+ error: `Failed to read Docker config: ${error.message}`,
142
+ };
143
+ }
144
+ }
145
+ //# sourceMappingURL=aws-checks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-checks.js","sourceRoot":"","sources":["../../../src/commands/status/aws-checks.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,21 @@
1
- import { SSOStatus, CodeArtifactStatus, ECRStatus } from './types';
2
- import { CodeArtifactConfig, EcrConfig } from '../login/types';
3
1
  /**
4
- * Parse profile config from ~/.aws/config to extract region
2
+ * Status check barrel re-exports all check functions and utilities.
3
+ *
4
+ * Individual check implementations live in:
5
+ * - sso-checks.ts — AWS SSO (checkSSOStatus)
6
+ * - aws-checks.ts — CodeArtifact, ECR
7
+ * - mcp-checks.ts — GitLab token, Atlassian token, MCP server
5
8
  */
9
+ import type { SSOStatus } from './types';
6
10
  declare function getProfileRegion(profile: string): string | undefined;
7
- /**
8
- * Parse assumed role ARN to extract role name and session name
9
- * ARN format: arn:aws:sts::ACCOUNT:assumed-role/ROLE_NAME/SESSION_NAME
10
- */
11
11
  declare function parseAssumedRoleArn(arn: string): {
12
12
  roleName?: string;
13
13
  sessionName?: string;
14
14
  };
15
- /**
16
- * Derive account alias from profile name if it follows common convention
17
- * e.g., "paduafg-development" -> "development", "company-prod" -> "prod"
18
- */
19
15
  declare function deriveAccountAlias(profile: string): string | undefined;
20
- /**
21
- * Check SSO authentication status and get identity details
22
- */
23
16
  export declare function checkSSOStatus(profile: string): Promise<SSOStatus>;
24
- /**
25
- * Check CodeArtifact authentication status by parsing .npmrc (project or global)
26
- */
27
- export declare function checkCodeArtifactStatus(config: CodeArtifactConfig): Promise<CodeArtifactStatus>;
28
- /**
29
- * Check ECR authentication status by parsing ~/.docker/config.json
30
- */
31
- export declare function checkECRStatus(config: EcrConfig): Promise<ECRStatus>;
32
- /**
33
- * Format a relative time string (e.g., "in 11 hours" or "2 hours ago")
34
- */
35
17
  export declare function formatRelativeTime(date: Date): string;
18
+ export { checkCodeArtifactStatus, checkECRStatus } from './aws-checks';
19
+ export { checkGitLabToken, checkAtlassianToken, checkMcpServer, formatExpiresIn } from './mcp-checks';
36
20
  export { getProfileRegion, parseAssumedRoleArn, deriveAccountAlias };
37
21
  //# sourceMappingURL=checks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../../src/commands/status/checks.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK/D;;GAEG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB7D;AAED;;;GAGG;AACH,iBAAS,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAMrF;AAED;;;GAGG;AACH,iBAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ/D;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAyFxE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwErG;AA4BD;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAwF1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAmBrD;AAGD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../../../src/commands/status/checks.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AASzC,iBAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc7D;AAED,iBAAS,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAIrF;AAED,iBAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/D;AAMD,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA4CxE;AAmBD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYrD;AAMD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGtG,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,4 +1,12 @@
1
1
  "use strict";
2
+ /**
3
+ * Status check barrel — re-exports all check functions and utilities.
4
+ *
5
+ * Individual check implementations live in:
6
+ * - sso-checks.ts — AWS SSO (checkSSOStatus)
7
+ * - aws-checks.ts — CodeArtifact, ECR
8
+ * - mcp-checks.ts — GitLab token, Atlassian token, MCP server
9
+ */
2
10
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
11
  if (k2 === undefined) k2 = k;
4
12
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -33,9 +41,8 @@ var __importStar = (this && this.__importStar) || (function () {
33
41
  };
34
42
  })();
35
43
  Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.formatExpiresIn = exports.checkMcpServer = exports.checkAtlassianToken = exports.checkGitLabToken = exports.checkECRStatus = exports.checkCodeArtifactStatus = void 0;
36
45
  exports.checkSSOStatus = checkSSOStatus;
37
- exports.checkCodeArtifactStatus = checkCodeArtifactStatus;
38
- exports.checkECRStatus = checkECRStatus;
39
46
  exports.formatRelativeTime = formatRelativeTime;
40
47
  exports.getProfileRegion = getProfileRegion;
41
48
  exports.parseAssumedRoleArn = parseAssumedRoleArn;
@@ -45,113 +52,62 @@ const fs = __importStar(require("fs"));
45
52
  const path = __importStar(require("path"));
46
53
  const os = __importStar(require("os"));
47
54
  const utils_1 = require("../login/utils");
48
- const CHECK_TIMEOUT_MS = 10000; // 10 seconds
49
- /**
50
- * Parse profile config from ~/.aws/config to extract region
51
- */
55
+ const CHECK_TIMEOUT_MS = 10000;
56
+ // ---------------------------------------------------------------------------
57
+ // SSO helpers (kept here as they are small and tightly coupled)
58
+ // ---------------------------------------------------------------------------
52
59
  function getProfileRegion(profile) {
53
60
  const awsConfigPath = path.join(os.homedir(), '.aws', 'config');
54
61
  if (!fs.existsSync(awsConfigPath))
55
62
  return undefined;
56
63
  try {
57
64
  const content = fs.readFileSync(awsConfigPath, 'utf-8');
58
- // Match [profile name] or [default] section and extract region
59
65
  const profileSection = profile === 'default'
60
66
  ? '\\[default\\]'
61
67
  : `\\[profile\\s+${profile}\\]`;
62
68
  const regex = new RegExp(`${profileSection}[^\\[]*?region\\s*=\\s*([^\\s\\n]+)`, 's');
63
- const match = content.match(regex);
64
- return match?.[1];
69
+ return content.match(regex)?.[1];
65
70
  }
66
71
  catch {
67
72
  return undefined;
68
73
  }
69
74
  }
70
- /**
71
- * Parse assumed role ARN to extract role name and session name
72
- * ARN format: arn:aws:sts::ACCOUNT:assumed-role/ROLE_NAME/SESSION_NAME
73
- */
74
75
  function parseAssumedRoleArn(arn) {
75
76
  const match = arn.match(/assumed-role\/([^/]+)\/(.+)$/);
76
- if (match) {
77
+ if (match)
77
78
  return { roleName: match[1], sessionName: match[2] };
78
- }
79
79
  return {};
80
80
  }
81
- /**
82
- * Derive account alias from profile name if it follows common convention
83
- * e.g., "paduafg-development" -> "development", "company-prod" -> "prod"
84
- */
85
81
  function deriveAccountAlias(profile) {
86
- // Common patterns: prefix-environment or just environment
87
82
  const parts = profile.split('-');
88
- if (parts.length > 1) {
89
- // Return the last part(s) as the account alias
90
- return parts.slice(1).join('-');
91
- }
92
- return undefined;
83
+ return parts.length > 1 ? parts.slice(1).join('-') : undefined;
93
84
  }
94
- /**
95
- * Check SSO authentication status and get identity details
96
- */
85
+ // ---------------------------------------------------------------------------
86
+ // SSO check
87
+ // ---------------------------------------------------------------------------
97
88
  async function checkSSOStatus(profile) {
98
89
  try {
99
90
  (0, utils_1.validateProfileName)(profile);
100
91
  }
101
92
  catch (error) {
102
- return {
103
- authenticated: false,
104
- error: error.message,
105
- };
93
+ return { authenticated: false, error: error.message };
106
94
  }
107
95
  const result = (0, child_process_1.spawnSync)('aws', ['sts', 'get-caller-identity', '--profile', profile, '--output', 'json'], {
108
96
  shell: false,
109
97
  timeout: CHECK_TIMEOUT_MS,
110
98
  maxBuffer: 1024 * 1024,
111
99
  stdio: ['pipe', 'pipe', 'pipe'],
112
- env: {
113
- ...(0, utils_1.getSubprocessEnv)(),
114
- AWS_PROFILE: profile,
115
- },
100
+ env: { ...(0, utils_1.getSubprocessEnv)(), AWS_PROFILE: profile },
116
101
  });
117
102
  if (result.error) {
118
103
  if (result.error.message.includes('ENOENT')) {
119
- return {
120
- authenticated: false,
121
- error: 'AWS CLI not installed',
122
- };
104
+ return { authenticated: false, error: 'AWS CLI not installed' };
123
105
  }
124
- return {
125
- authenticated: false,
126
- error: result.error.message,
127
- };
106
+ return { authenticated: false, error: result.error.message };
128
107
  }
129
108
  if (result.status !== 0) {
130
- const stderr = result.stderr?.toString() || '';
131
- if (stderr.includes('ExpiredToken') || stderr.includes('Token has expired')) {
132
- return {
133
- authenticated: false,
134
- error: 'Session expired',
135
- };
136
- }
137
- if (stderr.includes('profile') && stderr.includes('not found')) {
138
- return {
139
- authenticated: false,
140
- error: `Profile '${profile}' not found`,
141
- };
142
- }
143
- if (stderr.includes('No SSO configuration')) {
144
- return {
145
- authenticated: false,
146
- error: 'Profile not configured for SSO',
147
- };
148
- }
149
- return {
150
- authenticated: false,
151
- error: 'Not authenticated',
152
- };
109
+ return parseSSOError(result.stderr?.toString() || '', profile);
153
110
  }
154
- // Parse the JSON output
155
111
  try {
156
112
  const output = result.stdout?.toString() || '';
157
113
  const identity = JSON.parse(output);
@@ -160,209 +116,51 @@ async function checkSSOStatus(profile) {
160
116
  const accountAlias = deriveAccountAlias(profile);
161
117
  return {
162
118
  authenticated: true,
163
- identity: {
164
- userId: identity.UserId,
165
- account: identity.Account,
166
- userArn: identity.Arn,
167
- region,
168
- roleName,
169
- sessionName,
170
- accountAlias,
171
- },
172
- };
173
- }
174
- catch {
175
- return {
176
- authenticated: false,
177
- error: 'Failed to parse identity response',
178
- };
179
- }
180
- }
181
- /**
182
- * Check CodeArtifact authentication status by parsing .npmrc (project or global)
183
- */
184
- async function checkCodeArtifactStatus(config) {
185
- // Check project .npmrc first (priority), then fallback to global
186
- const projectNpmrcPath = path.join(process.cwd(), '.npmrc');
187
- const globalNpmrcPath = path.join(os.homedir(), '.npmrc');
188
- let npmrcPath = null;
189
- let location = null;
190
- if (fs.existsSync(projectNpmrcPath)) {
191
- npmrcPath = projectNpmrcPath;
192
- location = 'project';
193
- }
194
- else if (fs.existsSync(globalNpmrcPath)) {
195
- npmrcPath = globalNpmrcPath;
196
- location = 'global';
197
- }
198
- if (!npmrcPath || !location) {
199
- return {
200
- authenticated: false,
201
- error: 'No .npmrc file found (checked project and global)',
202
- };
203
- }
204
- try {
205
- const content = fs.readFileSync(npmrcPath, 'utf-8');
206
- // Build expected registry pattern
207
- // Format: //domain-owner.d.codeartifact.region.amazonaws.com/npm/repo/:_authToken=TOKEN
208
- const registryPattern = new RegExp(`//([^/]+\\.d\\.codeartifact\\.[^/]+\\.amazonaws\\.com/npm/${config.repository}/).*:_authToken=(.+)`, 'm');
209
- const match = content.match(registryPattern);
210
- if (!match) {
211
- return {
212
- authenticated: false,
213
- location,
214
- error: `No CodeArtifact token found in .npmrc (${location})`,
215
- };
216
- }
217
- const registry = `https://${match[1]}`;
218
- const token = match[2].trim();
219
- // Try to decode the JWT to get expiry
220
- const expiresAt = parseJwtExpiry(token);
221
- if (expiresAt && expiresAt < new Date()) {
222
- return {
223
- authenticated: false,
224
- registry,
225
- expiresAt,
226
- location,
227
- error: 'Token expired',
228
- };
229
- }
230
- return {
231
- authenticated: true,
232
- registry,
233
- expiresAt: expiresAt || undefined,
234
- location,
119
+ identity: { userId: identity.UserId, account: identity.Account, userArn: identity.Arn, region, roleName, sessionName, accountAlias },
235
120
  };
236
121
  }
237
- catch (error) {
238
- return {
239
- authenticated: false,
240
- location,
241
- error: `Failed to read .npmrc (${location}): ${error.message}`,
242
- };
243
- }
244
- }
245
- /**
246
- * Parse JWT token to extract expiry time
247
- * CodeArtifact tokens are JWTs with an exp claim
248
- */
249
- function parseJwtExpiry(token) {
250
- try {
251
- // JWT format: header.payload.signature
252
- const parts = token.split('.');
253
- if (parts.length !== 3) {
254
- return null;
255
- }
256
- // Decode the payload (base64url)
257
- const payload = parts[1];
258
- const decoded = Buffer.from(payload, 'base64url').toString('utf-8');
259
- const data = JSON.parse(decoded);
260
- if (data.exp) {
261
- return new Date(data.exp * 1000);
262
- }
263
- return null;
264
- }
265
122
  catch {
266
- return null;
123
+ return { authenticated: false, error: 'Failed to parse identity response' };
267
124
  }
268
125
  }
269
- /**
270
- * Check ECR authentication status by parsing ~/.docker/config.json
271
- */
272
- async function checkECRStatus(config) {
273
- const dockerConfigPath = path.join(os.homedir(), '.docker', 'config.json');
274
- const registry = `${config.accountId}.dkr.ecr.${config.region}.amazonaws.com`;
275
- if (!fs.existsSync(dockerConfigPath)) {
276
- return {
277
- authenticated: false,
278
- registry,
279
- error: 'No ~/.docker/config.json found',
280
- };
126
+ function parseSSOError(stderr, profile) {
127
+ if (stderr.includes('ExpiredToken') || stderr.includes('Token has expired')) {
128
+ return { authenticated: false, error: 'Session expired' };
281
129
  }
282
- try {
283
- const content = fs.readFileSync(dockerConfigPath, 'utf-8');
284
- const dockerConfig = JSON.parse(content);
285
- // Check if using credential helper for specific registries
286
- if (dockerConfig.credHelpers) {
287
- const helperKey = Object.keys(dockerConfig.credHelpers).find(k => k.includes('ecr') && k.includes(config.region));
288
- if (helperKey) {
289
- // Credential helper is configured - assume authenticated
290
- return {
291
- authenticated: true,
292
- registry,
293
- };
294
- }
295
- }
296
- // Check direct auth entries
297
- if (!dockerConfig.auths) {
298
- return {
299
- authenticated: false,
300
- registry,
301
- error: 'No Docker auth entries found',
302
- };
303
- }
304
- // Look for ECR registry entry
305
- const ecrEntry = Object.keys(dockerConfig.auths).find(k => k.includes(config.accountId) && k.includes('ecr') && k.includes(config.region));
306
- if (!ecrEntry) {
307
- return {
308
- authenticated: false,
309
- registry,
310
- error: 'No ECR credentials found',
311
- };
312
- }
313
- // Check if using global credsStore (e.g., Docker Desktop)
314
- // When credsStore is set, auths entries may be empty {} but credentials
315
- // are stored in the system credential store
316
- if (dockerConfig.credsStore && !dockerConfig.auths[ecrEntry]?.auth) {
317
- // Registry entry exists + credsStore configured = credentials in external store
318
- return {
319
- authenticated: true,
320
- registry,
321
- };
322
- }
323
- // Check for inline auth token
324
- if (!dockerConfig.auths[ecrEntry]?.auth) {
325
- return {
326
- authenticated: false,
327
- registry,
328
- error: 'No ECR credentials found',
329
- };
330
- }
331
- // ECR auth exists inline
332
- return {
333
- authenticated: true,
334
- registry,
335
- };
130
+ if (stderr.includes('profile') && stderr.includes('not found')) {
131
+ return { authenticated: false, error: `Profile '${profile}' not found` };
336
132
  }
337
- catch (error) {
338
- return {
339
- authenticated: false,
340
- registry,
341
- error: `Failed to read Docker config: ${error.message}`,
342
- };
133
+ if (stderr.includes('No SSO configuration')) {
134
+ return { authenticated: false, error: 'Profile not configured for SSO' };
343
135
  }
136
+ return { authenticated: false, error: 'Not authenticated' };
344
137
  }
345
- /**
346
- * Format a relative time string (e.g., "in 11 hours" or "2 hours ago")
347
- */
138
+ // ---------------------------------------------------------------------------
139
+ // formatRelativeTime utility
140
+ // ---------------------------------------------------------------------------
348
141
  function formatRelativeTime(date) {
349
142
  const now = new Date();
350
143
  const diffMs = date.getTime() - now.getTime();
351
144
  const diffMins = Math.round(diffMs / 60000);
352
145
  const diffHours = Math.round(diffMs / 3600000);
353
146
  if (diffMs < 0) {
354
- // In the past
355
- if (diffMins > -60) {
147
+ if (diffMins > -60)
356
148
  return `${Math.abs(diffMins)} minute${Math.abs(diffMins) !== 1 ? 's' : ''} ago`;
357
- }
358
149
  return `${Math.abs(diffHours)} hour${Math.abs(diffHours) !== 1 ? 's' : ''} ago`;
359
150
  }
360
- else {
361
- // In the future
362
- if (diffMins < 60) {
363
- return `in ${diffMins} minute${diffMins !== 1 ? 's' : ''}`;
364
- }
365
- return `in ${diffHours} hour${diffHours !== 1 ? 's' : ''}`;
366
- }
151
+ if (diffMins < 60)
152
+ return `in ${diffMins} minute${diffMins !== 1 ? 's' : ''}`;
153
+ return `in ${diffHours} hour${diffHours !== 1 ? 's' : ''}`;
367
154
  }
155
+ // ---------------------------------------------------------------------------
156
+ // Re-exports from sub-modules
157
+ // ---------------------------------------------------------------------------
158
+ var aws_checks_1 = require("./aws-checks");
159
+ Object.defineProperty(exports, "checkCodeArtifactStatus", { enumerable: true, get: function () { return aws_checks_1.checkCodeArtifactStatus; } });
160
+ Object.defineProperty(exports, "checkECRStatus", { enumerable: true, get: function () { return aws_checks_1.checkECRStatus; } });
161
+ var mcp_checks_1 = require("./mcp-checks");
162
+ Object.defineProperty(exports, "checkGitLabToken", { enumerable: true, get: function () { return mcp_checks_1.checkGitLabToken; } });
163
+ Object.defineProperty(exports, "checkAtlassianToken", { enumerable: true, get: function () { return mcp_checks_1.checkAtlassianToken; } });
164
+ Object.defineProperty(exports, "checkMcpServer", { enumerable: true, get: function () { return mcp_checks_1.checkMcpServer; } });
165
+ Object.defineProperty(exports, "formatExpiresIn", { enumerable: true, get: function () { return mcp_checks_1.formatExpiresIn; } });
368
166
  //# sourceMappingURL=checks.js.map