@confluentinc/mcp-confluent 1.2.2 → 1.3.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 (428) hide show
  1. package/README.md +171 -193
  2. package/assets/oauth-templates/callback-failure.html +22 -0
  3. package/assets/oauth-templates/callback-success.html +19 -0
  4. package/assets/oauth-templates/logo.html +91 -0
  5. package/assets/oauth-templates/styles.html +49 -0
  6. package/config.example.yaml +149 -0
  7. package/config.oauth.example.yaml +45 -0
  8. package/dist/cli.d.ts +59 -12
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +131 -61
  11. package/dist/cli.js.map +1 -1
  12. package/dist/config/env-config.d.ts +33 -0
  13. package/dist/config/env-config.d.ts.map +1 -0
  14. package/dist/config/env-config.js +473 -0
  15. package/dist/config/env-config.js.map +1 -0
  16. package/dist/config/index.d.ts +31 -0
  17. package/dist/config/index.d.ts.map +1 -0
  18. package/dist/config/index.js +76 -0
  19. package/dist/config/index.js.map +1 -0
  20. package/dist/config/interpolation.d.ts +9 -0
  21. package/dist/config/interpolation.d.ts.map +1 -0
  22. package/dist/config/interpolation.js +51 -0
  23. package/dist/config/interpolation.js.map +1 -0
  24. package/dist/config/models.d.ts +396 -0
  25. package/dist/config/models.d.ts.map +1 -0
  26. package/dist/config/models.js +401 -0
  27. package/dist/config/models.js.map +1 -0
  28. package/dist/config/validation.d.ts +9 -0
  29. package/dist/config/validation.d.ts.map +1 -0
  30. package/dist/config/validation.js +46 -0
  31. package/dist/config/validation.js.map +1 -0
  32. package/dist/confluent/base-client-manager.d.ts +100 -0
  33. package/dist/confluent/base-client-manager.d.ts.map +1 -0
  34. package/dist/confluent/base-client-manager.js +188 -0
  35. package/dist/confluent/base-client-manager.js.map +1 -0
  36. package/dist/confluent/client-manager.d.ts +42 -77
  37. package/dist/confluent/client-manager.d.ts.map +1 -1
  38. package/dist/confluent/client-manager.js +5 -213
  39. package/dist/confluent/client-manager.js.map +1 -1
  40. package/dist/confluent/config-telemetry.d.ts +41 -0
  41. package/dist/confluent/config-telemetry.d.ts.map +1 -0
  42. package/dist/confluent/config-telemetry.js +17 -0
  43. package/dist/confluent/config-telemetry.js.map +1 -0
  44. package/dist/confluent/direct-client-manager.d.ts +43 -0
  45. package/dist/confluent/direct-client-manager.d.ts.map +1 -0
  46. package/dist/confluent/direct-client-manager.js +146 -0
  47. package/dist/confluent/direct-client-manager.js.map +1 -0
  48. package/dist/confluent/middleware.d.ts +32 -4
  49. package/dist/confluent/middleware.d.ts.map +1 -1
  50. package/dist/confluent/middleware.js +46 -2
  51. package/dist/confluent/middleware.js.map +1 -1
  52. package/dist/confluent/node-deps.d.ts +32 -39
  53. package/dist/confluent/node-deps.d.ts.map +1 -1
  54. package/dist/confluent/node-deps.js +42 -7
  55. package/dist/confluent/node-deps.js.map +1 -1
  56. package/dist/confluent/oauth/auth-context.d.ts +94 -0
  57. package/dist/confluent/oauth/auth-context.d.ts.map +1 -0
  58. package/dist/confluent/oauth/auth-context.js +323 -0
  59. package/dist/confluent/oauth/auth-context.js.map +1 -0
  60. package/dist/confluent/oauth/auth0-config.d.ts +12 -0
  61. package/dist/confluent/oauth/auth0-config.d.ts.map +1 -0
  62. package/dist/confluent/oauth/auth0-config.js +43 -0
  63. package/dist/confluent/oauth/auth0-config.js.map +1 -0
  64. package/dist/confluent/oauth/callback-pages.d.ts +5 -0
  65. package/dist/confluent/oauth/callback-pages.d.ts.map +1 -0
  66. package/dist/confluent/oauth/callback-pages.js +38 -0
  67. package/dist/confluent/oauth/callback-pages.js.map +1 -0
  68. package/dist/confluent/oauth/crypto-utils.d.ts +16 -0
  69. package/dist/confluent/oauth/crypto-utils.d.ts.map +1 -0
  70. package/dist/confluent/oauth/crypto-utils.js +23 -0
  71. package/dist/confluent/oauth/crypto-utils.js.map +1 -0
  72. package/dist/confluent/oauth/errors.d.ts +27 -0
  73. package/dist/confluent/oauth/errors.d.ts.map +1 -0
  74. package/dist/confluent/oauth/errors.js +6 -0
  75. package/dist/confluent/oauth/errors.js.map +1 -0
  76. package/dist/confluent/oauth/oauth-holder.d.ts +34 -0
  77. package/dist/confluent/oauth/oauth-holder.d.ts.map +1 -0
  78. package/dist/confluent/oauth/oauth-holder.js +155 -0
  79. package/dist/confluent/oauth/oauth-holder.js.map +1 -0
  80. package/dist/confluent/oauth/pkce-login.d.ts +26 -0
  81. package/dist/confluent/oauth/pkce-login.d.ts.map +1 -0
  82. package/dist/confluent/oauth/pkce-login.js +161 -0
  83. package/dist/confluent/oauth/pkce-login.js.map +1 -0
  84. package/dist/confluent/oauth/token-chain.d.ts +53 -0
  85. package/dist/confluent/oauth/token-chain.d.ts.map +1 -0
  86. package/dist/confluent/oauth/token-chain.js +141 -0
  87. package/dist/confluent/oauth/token-chain.js.map +1 -0
  88. package/dist/confluent/oauth/token-lifetimes.d.ts +13 -0
  89. package/dist/confluent/oauth/token-lifetimes.d.ts.map +1 -0
  90. package/dist/confluent/oauth/token-lifetimes.js +13 -0
  91. package/dist/confluent/oauth/token-lifetimes.js.map +1 -0
  92. package/dist/confluent/oauth/types.d.ts +68 -0
  93. package/dist/confluent/oauth/types.d.ts.map +1 -0
  94. package/dist/confluent/oauth/types.js +2 -0
  95. package/dist/confluent/oauth/types.js.map +1 -0
  96. package/dist/confluent/oauth-client-manager.d.ts +78 -0
  97. package/dist/confluent/oauth-client-manager.d.ts.map +1 -0
  98. package/dist/confluent/oauth-client-manager.js +265 -0
  99. package/dist/confluent/oauth-client-manager.js.map +1 -0
  100. package/dist/confluent/oauth-resource-resolvers.d.ts +6 -0
  101. package/dist/confluent/oauth-resource-resolvers.d.ts.map +1 -0
  102. package/dist/confluent/oauth-resource-resolvers.js +65 -0
  103. package/dist/confluent/oauth-resource-resolvers.js.map +1 -0
  104. package/dist/confluent/telemetry.d.ts +32 -1
  105. package/dist/confluent/telemetry.d.ts.map +1 -1
  106. package/dist/confluent/telemetry.js +31 -8
  107. package/dist/confluent/telemetry.js.map +1 -1
  108. package/dist/confluent/tools/base-tools.d.ts +98 -23
  109. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  110. package/dist/confluent/tools/base-tools.js +62 -4
  111. package/dist/confluent/tools/base-tools.js.map +1 -1
  112. package/dist/confluent/tools/cluster-arg-resolvers.d.ts +75 -0
  113. package/dist/confluent/tools/cluster-arg-resolvers.d.ts.map +1 -0
  114. package/dist/confluent/tools/cluster-arg-resolvers.js +127 -0
  115. package/dist/confluent/tools/cluster-arg-resolvers.js.map +1 -0
  116. package/dist/confluent/tools/connection-predicates.d.ts +168 -0
  117. package/dist/confluent/tools/connection-predicates.d.ts.map +1 -0
  118. package/dist/confluent/tools/connection-predicates.js +273 -0
  119. package/dist/confluent/tools/connection-predicates.js.map +1 -0
  120. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts +3 -5
  121. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.d.ts.map +1 -1
  122. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js +4 -8
  123. package/dist/confluent/tools/handlers/billing/list-billing-costs-handler.js.map +1 -1
  124. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +4 -5
  125. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  126. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +4 -8
  127. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  128. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +4 -5
  129. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  130. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +4 -8
  131. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  132. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +4 -5
  133. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  134. package/dist/confluent/tools/handlers/catalog/delete-tag.js +4 -8
  135. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  136. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +4 -5
  137. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  138. package/dist/confluent/tools/handlers/catalog/list-tags.js +4 -8
  139. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  140. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +4 -5
  141. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  142. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +4 -8
  143. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  144. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +3 -5
  145. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  146. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +9 -12
  147. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  148. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts +21 -0
  149. package/dist/confluent/tools/handlers/connect/connect-tool-handler.d.ts.map +1 -0
  150. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js +22 -0
  151. package/dist/confluent/tools/handlers/connect/connect-tool-handler.js.map +1 -0
  152. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +11 -7
  153. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  154. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +21 -21
  155. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  156. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +6 -7
  157. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  158. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +10 -15
  159. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  160. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +6 -7
  161. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  162. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +15 -17
  163. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  164. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +6 -7
  165. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -1
  166. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +10 -15
  167. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -1
  168. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts +57 -0
  169. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.d.ts.map +1 -0
  170. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js +122 -0
  171. package/dist/confluent/tools/handlers/diagnostics/explain-disabled-tools-handler.js.map +1 -0
  172. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts +17 -0
  173. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.d.ts.map +1 -0
  174. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js +234 -0
  175. package/dist/confluent/tools/handlers/docs/get-product-doc-page-handler.js.map +1 -0
  176. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts +13 -0
  177. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.d.ts.map +1 -0
  178. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js +285 -0
  179. package/dist/confluent/tools/handlers/docs/search-product-docs-handler.js.map +1 -0
  180. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +3 -5
  181. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
  182. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +4 -8
  183. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  184. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +3 -5
  185. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
  186. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +4 -8
  187. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  188. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts +16 -9
  189. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.d.ts.map +1 -1
  190. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js +18 -12
  191. package/dist/confluent/tools/handlers/flink/catalog/catalog-resolver.js.map +1 -1
  192. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts +5 -7
  193. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.d.ts.map +1 -1
  194. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js +15 -21
  195. package/dist/confluent/tools/handlers/flink/catalog/describe-table-handler.js.map +1 -1
  196. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts +14 -0
  197. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.d.ts.map +1 -0
  198. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js +15 -0
  199. package/dist/confluent/tools/handlers/flink/catalog/flink-catalog-tool-handler.js.map +1 -0
  200. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts +5 -7
  201. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.d.ts.map +1 -1
  202. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js +15 -21
  203. package/dist/confluent/tools/handlers/flink/catalog/get-table-info-handler.js.map +1 -1
  204. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts +5 -7
  205. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.d.ts.map +1 -1
  206. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js +12 -20
  207. package/dist/confluent/tools/handlers/flink/catalog/list-catalogs-handler.js.map +1 -1
  208. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts +5 -7
  209. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.d.ts.map +1 -1
  210. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js +12 -20
  211. package/dist/confluent/tools/handlers/flink/catalog/list-databases-handler.js.map +1 -1
  212. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts +5 -7
  213. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.d.ts.map +1 -1
  214. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js +13 -29
  215. package/dist/confluent/tools/handlers/flink/catalog/list-tables-handler.js.map +1 -1
  216. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +5 -7
  217. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  218. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +18 -23
  219. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  220. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +5 -7
  221. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  222. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -13
  223. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  224. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts +5 -7
  225. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.d.ts.map +1 -1
  226. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js +7 -13
  227. package/dist/confluent/tools/handlers/flink/diagnostics/check-health-handler.js.map +1 -1
  228. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts +5 -7
  229. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.d.ts.map +1 -1
  230. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js +8 -15
  231. package/dist/confluent/tools/handlers/flink/diagnostics/detect-issues-handler.js.map +1 -1
  232. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts +2 -2
  233. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.d.ts.map +1 -1
  234. package/dist/confluent/tools/handlers/flink/diagnostics/metrics-helper.js.map +1 -1
  235. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts +7 -7
  236. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.d.ts.map +1 -1
  237. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js +11 -17
  238. package/dist/confluent/tools/handlers/flink/diagnostics/query-profiler-handler.js.map +1 -1
  239. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts +2 -2
  240. package/dist/confluent/tools/handlers/flink/flink-sql-helper.d.ts.map +1 -1
  241. package/dist/confluent/tools/handlers/flink/flink-sql-helper.js.map +1 -1
  242. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts +21 -0
  243. package/dist/confluent/tools/handlers/flink/flink-tool-handler.d.ts.map +1 -0
  244. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js +31 -0
  245. package/dist/confluent/tools/handlers/flink/flink-tool-handler.js.map +1 -0
  246. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts +5 -7
  247. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.d.ts.map +1 -1
  248. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js +7 -13
  249. package/dist/confluent/tools/handlers/flink/get-flink-exceptions-handler.js.map +1 -1
  250. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +5 -7
  251. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  252. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -16
  253. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  254. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +5 -7
  255. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
  256. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -13
  257. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
  258. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +3 -5
  259. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  260. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +20 -19
  261. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  262. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +5 -4
  263. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -1
  264. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +23 -16
  265. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -1
  266. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +3 -4
  267. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  268. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +50 -14
  269. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  270. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +3 -4
  271. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  272. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +24 -7
  273. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  274. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +3 -5
  275. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -1
  276. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +20 -19
  277. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -1
  278. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +3 -4
  279. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  280. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +23 -9
  281. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  282. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +3 -4
  283. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  284. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +51 -32
  285. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  286. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts +4 -5
  287. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.d.ts.map +1 -1
  288. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js +4 -8
  289. package/dist/confluent/tools/handlers/metrics/list-metrics-handler.js.map +1 -1
  290. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts +22 -5
  291. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.d.ts.map +1 -1
  292. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js +86 -52
  293. package/dist/confluent/tools/handlers/metrics/query-metrics-handler.js.map +1 -1
  294. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts +49 -0
  295. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.d.ts.map +1 -0
  296. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js +115 -0
  297. package/dist/confluent/tools/handlers/organizations/list-organizations-handler.js.map +1 -0
  298. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts +3 -4
  299. package/dist/confluent/tools/handlers/schema/delete-schema-handler.d.ts.map +1 -1
  300. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js +11 -7
  301. package/dist/confluent/tools/handlers/schema/delete-schema-handler.js.map +1 -1
  302. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +3 -4
  303. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
  304. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +11 -6
  305. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  306. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +4 -5
  307. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  308. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +4 -8
  309. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  310. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +4 -5
  311. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  312. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +4 -8
  313. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  314. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts +5 -7
  315. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.d.ts.map +1 -1
  316. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js +17 -13
  317. package/dist/confluent/tools/handlers/tableflow/catalog/create-tableflow-catalog-integration-handler.js.map +1 -1
  318. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts +5 -7
  319. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.d.ts.map +1 -1
  320. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js +6 -12
  321. package/dist/confluent/tools/handlers/tableflow/catalog/delete-tableflow-catalog-integration-handler.js.map +1 -1
  322. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts +5 -7
  323. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.d.ts.map +1 -1
  324. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js +7 -13
  325. package/dist/confluent/tools/handlers/tableflow/catalog/list-tableflow-catalog-integrations-handler.js.map +1 -1
  326. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts +5 -7
  327. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.d.ts.map +1 -1
  328. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js +6 -12
  329. package/dist/confluent/tools/handlers/tableflow/catalog/read-tableflow-catalog-integration-handler.js.map +1 -1
  330. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts +5 -7
  331. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.d.ts.map +1 -1
  332. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js +5 -9
  333. package/dist/confluent/tools/handlers/tableflow/catalog/update-tableflow-catalog-integration-handler.js.map +1 -1
  334. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts +5 -7
  335. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.d.ts.map +1 -1
  336. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js +19 -21
  337. package/dist/confluent/tools/handlers/tableflow/list-tableflow-regions-handler.js.map +1 -1
  338. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts +25 -0
  339. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.d.ts.map +1 -0
  340. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js +27 -0
  341. package/dist/confluent/tools/handlers/tableflow/tableflow-tool-handler.js.map +1 -0
  342. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts +5 -7
  343. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.d.ts.map +1 -1
  344. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js +17 -13
  345. package/dist/confluent/tools/handlers/tableflow/topic/create-tableflow-topic-handler.js.map +1 -1
  346. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts +5 -7
  347. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.d.ts.map +1 -1
  348. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js +6 -12
  349. package/dist/confluent/tools/handlers/tableflow/topic/delete-tableflow-topic-handler.js.map +1 -1
  350. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts +5 -7
  351. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.d.ts.map +1 -1
  352. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js +7 -13
  353. package/dist/confluent/tools/handlers/tableflow/topic/list-tableflow-topics-handler.js.map +1 -1
  354. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts +5 -7
  355. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.d.ts.map +1 -1
  356. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js +6 -12
  357. package/dist/confluent/tools/handlers/tableflow/topic/read-tableflow-topic-handler.js.map +1 -1
  358. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts +5 -7
  359. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.d.ts.map +1 -1
  360. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js +5 -9
  361. package/dist/confluent/tools/handlers/tableflow/topic/update-tableflow-topic-handler.js.map +1 -1
  362. package/dist/confluent/tools/tool-availability.d.ts +74 -0
  363. package/dist/confluent/tools/tool-availability.d.ts.map +1 -0
  364. package/dist/confluent/tools/tool-availability.js +121 -0
  365. package/dist/confluent/tools/tool-availability.js.map +1 -0
  366. package/dist/confluent/tools/tool-name.d.ts +5 -1
  367. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  368. package/dist/confluent/tools/tool-name.js +4 -0
  369. package/dist/confluent/tools/tool-name.js.map +1 -1
  370. package/dist/confluent/tools/tool-registry.d.ts +18 -0
  371. package/dist/confluent/tools/tool-registry.d.ts.map +1 -0
  372. package/dist/confluent/tools/{tool-factory.js → tool-registry.js} +32 -19
  373. package/dist/confluent/tools/tool-registry.js.map +1 -0
  374. package/dist/env-schema.d.ts +5 -7
  375. package/dist/env-schema.d.ts.map +1 -1
  376. package/dist/env-schema.js +20 -39
  377. package/dist/env-schema.js.map +1 -1
  378. package/dist/env.d.ts +16 -7
  379. package/dist/env.d.ts.map +1 -1
  380. package/dist/env.js +16 -6
  381. package/dist/env.js.map +1 -1
  382. package/dist/index.d.ts +74 -1
  383. package/dist/index.d.ts.map +1 -1
  384. package/dist/index.js +279 -166
  385. package/dist/index.js.map +1 -1
  386. package/dist/logger.d.ts.map +1 -1
  387. package/dist/logger.js +21 -20
  388. package/dist/logger.js.map +1 -1
  389. package/dist/mcp/server.d.ts +29 -0
  390. package/dist/mcp/server.d.ts.map +1 -0
  391. package/dist/mcp/server.js +52 -0
  392. package/dist/mcp/server.js.map +1 -0
  393. package/dist/mcp/transports/auth.d.ts +20 -4
  394. package/dist/mcp/transports/auth.d.ts.map +1 -1
  395. package/dist/mcp/transports/auth.js +27 -7
  396. package/dist/mcp/transports/auth.js.map +1 -1
  397. package/dist/mcp/transports/http.d.ts +8 -2
  398. package/dist/mcp/transports/http.d.ts.map +1 -1
  399. package/dist/mcp/transports/http.js +57 -42
  400. package/dist/mcp/transports/http.js.map +1 -1
  401. package/dist/mcp/transports/manager.d.ts +23 -9
  402. package/dist/mcp/transports/manager.d.ts.map +1 -1
  403. package/dist/mcp/transports/manager.js +27 -24
  404. package/dist/mcp/transports/manager.js.map +1 -1
  405. package/dist/mcp/transports/server.d.ts +1 -1
  406. package/dist/mcp/transports/server.d.ts.map +1 -1
  407. package/dist/mcp/transports/server.js +17 -5
  408. package/dist/mcp/transports/server.js.map +1 -1
  409. package/dist/mcp/transports/session-registry.d.ts +33 -0
  410. package/dist/mcp/transports/session-registry.d.ts.map +1 -0
  411. package/dist/mcp/transports/session-registry.js +65 -0
  412. package/dist/mcp/transports/session-registry.js.map +1 -0
  413. package/dist/mcp/transports/sse.d.ts +13 -2
  414. package/dist/mcp/transports/sse.d.ts.map +1 -1
  415. package/dist/mcp/transports/sse.js +58 -46
  416. package/dist/mcp/transports/sse.js.map +1 -1
  417. package/dist/server-runtime.d.ts +28 -0
  418. package/dist/server-runtime.d.ts.map +1 -0
  419. package/dist/server-runtime.js +73 -0
  420. package/dist/server-runtime.js.map +1 -0
  421. package/package.json +25 -9
  422. package/dist/confluent/helpers.d.ts +0 -11
  423. package/dist/confluent/helpers.d.ts.map +0 -1
  424. package/dist/confluent/helpers.js +0 -17
  425. package/dist/confluent/helpers.js.map +0 -1
  426. package/dist/confluent/tools/tool-factory.d.ts +0 -9
  427. package/dist/confluent/tools/tool-factory.d.ts.map +0 -1
  428. package/dist/confluent/tools/tool-factory.js.map +0 -1
@@ -0,0 +1,473 @@
1
+ import { formatZodIssues, KAFKA_PROTECTED_EXTRA_PROPERTY_KEYS, mcpConfigSchema, MCPServerConfiguration, } from "../config/models.js";
2
+ import { logger } from "../logger.js";
3
+ /**
4
+ * Connection name synthesized by the env-var path. Chosen as `"_default"` so
5
+ * the YAML loader can reuse the same name as the zero-config fallback.
6
+ *
7
+ * Fallback contract: with no CLI args and no env vars, this module produces
8
+ * `connections: { _default: { type: "direct" } }` alongside the
9
+ * always-present `server` block. This yields a config with no service
10
+ * blocks, so only connection-agnostic tools are enabled. When the env-var
11
+ * path is retired, the YAML loader must preserve this connection shape.
12
+ */
13
+ export const DEFAULT_CONNECTION_NAME = "_default";
14
+ /** The manufactured document path prefix for the single connection configured from env vars. */
15
+ const CONN = `connections.${DEFAULT_CONNECTION_NAME}`;
16
+ /**
17
+ * Maps each environment variable in type Environment (and handled by buildConfigFromEnvAndCli)
18
+ * to its corresponding Zod document path in the manufactured MCPServerConfiguration.
19
+ */
20
+ const ENV_VAR_TO_ZPATH = {
21
+ // Kafka connection parameters
22
+ BOOTSTRAP_SERVERS: `${CONN}.kafka.bootstrap_servers`,
23
+ KAFKA_API_KEY: `${CONN}.kafka.auth.key`,
24
+ KAFKA_API_SECRET: `${CONN}.kafka.auth.secret`,
25
+ KAFKA_REST_ENDPOINT: `${CONN}.kafka.rest_endpoint`,
26
+ KAFKA_CLUSTER_ID: `${CONN}.kafka.cluster_id`,
27
+ KAFKA_ENV_ID: `${CONN}.kafka.env_id`,
28
+ // Schema Registry connection parameters
29
+ SCHEMA_REGISTRY_ENDPOINT: `${CONN}.schema_registry.endpoint`,
30
+ SCHEMA_REGISTRY_API_KEY: `${CONN}.schema_registry.auth.key`,
31
+ SCHEMA_REGISTRY_API_SECRET: `${CONN}.schema_registry.auth.secret`,
32
+ // Confluent Cloud control plane parameters
33
+ CONFLUENT_CLOUD_REST_ENDPOINT: `${CONN}.confluent_cloud.endpoint`,
34
+ CONFLUENT_CLOUD_API_KEY: `${CONN}.confluent_cloud.auth.key`,
35
+ CONFLUENT_CLOUD_API_SECRET: `${CONN}.confluent_cloud.auth.secret`,
36
+ // Tableflow parameters
37
+ TABLEFLOW_API_KEY: `${CONN}.tableflow.auth.key`,
38
+ TABLEFLOW_API_SECRET: `${CONN}.tableflow.auth.secret`,
39
+ // Flink parameters
40
+ FLINK_REST_ENDPOINT: `${CONN}.flink.endpoint`,
41
+ FLINK_API_KEY: `${CONN}.flink.auth.key`,
42
+ FLINK_API_SECRET: `${CONN}.flink.auth.secret`,
43
+ FLINK_ENV_ID: `${CONN}.flink.environment_id`,
44
+ FLINK_ORG_ID: `${CONN}.flink.organization_id`,
45
+ FLINK_COMPUTE_POOL_ID: `${CONN}.flink.compute_pool_id`,
46
+ // FLINK_CATALOG_NAME comes before FLINK_ENV_NAME so error-message humanization
47
+ // (which iterates this map in insertion order) surfaces the preferred name.
48
+ FLINK_CATALOG_NAME: `${CONN}.flink.catalog_name`,
49
+ FLINK_ENV_NAME: `${CONN}.flink.catalog_name`,
50
+ FLINK_DATABASE_NAME: `${CONN}.flink.database_name`,
51
+ // Telemetry parameters
52
+ TELEMETRY_ENDPOINT: `${CONN}.telemetry.endpoint`,
53
+ TELEMETRY_API_KEY: `${CONN}.telemetry.auth.key`,
54
+ TELEMETRY_API_SECRET: `${CONN}.telemetry.auth.secret`,
55
+ // Analytics (internal-dev-only: Segment write key override)
56
+ TELEMETRY_WRITE_KEY: "server.analytics.write_key",
57
+ // OAuth diagnostic knob — only meaningful when --oauth is also set, in which
58
+ // case buildConfigFromEnv synthesizes the OAuth connection arm that carries it.
59
+ OAUTH_KAFKA_DEBUG: `${CONN}.kafka_debug`,
60
+ // Server configuration
61
+ LOG_LEVEL: "server.log_level",
62
+ HTTP_PORT: "server.http.port",
63
+ HTTP_HOST: "server.http.host",
64
+ HTTP_MCP_ENDPOINT_PATH: "server.http.mcp_endpoint",
65
+ SSE_MCP_ENDPOINT_PATH: "server.http.sse_endpoint",
66
+ SSE_MCP_MESSAGE_ENDPOINT_PATH: "server.http.sse_message_endpoint",
67
+ MCP_API_KEY: "server.auth.api_key",
68
+ MCP_AUTH_DISABLED: "server.auth.disabled",
69
+ MCP_ALLOWED_HOSTS: "server.auth.allowed_hosts",
70
+ DO_NOT_TRACK: "server.do_not_track",
71
+ };
72
+ /**
73
+ * Constructs a single-direct-connection MCPServerConfiguration from environment variables.
74
+ *
75
+ * This is peer to the functionality provided by loadConfigFromYaml(), but for users
76
+ * who want to configure the server solely via (legacy) environment variables. Called when
77
+ * no YAML config file is provided via CLI args.
78
+ *
79
+ * @returns MCPServerConfiguration with a single connection constructed from an Environment object
80
+ * @throws Error if required environment variables are missing or if validation fails
81
+ */
82
+ function buildConfigFromEnv(env, authOverrides = {}, kafkaConfig, oauth) {
83
+ // OAuth path: synthesize a single OAuth-typed connection. No surface blocks,
84
+ // no auth fields. ccloud_env defaults to "prod" via the schema.
85
+ if (oauth) {
86
+ const rawDocument = {
87
+ connections: {
88
+ [DEFAULT_CONNECTION_NAME]: {
89
+ type: "oauth",
90
+ ...(oauth.ccloudEnv && {
91
+ ccloud_env: oauth.ccloudEnv,
92
+ }),
93
+ ...(env.OAUTH_KAFKA_DEBUG !== undefined && {
94
+ kafka_debug: env.OAUTH_KAFKA_DEBUG,
95
+ }),
96
+ },
97
+ },
98
+ ...buildServerBlock(env, authOverrides),
99
+ };
100
+ const result = mcpConfigSchema.safeParse(rawDocument);
101
+ if (!result.success) {
102
+ // Server-config validation can still fail on the OAuth path
103
+ // (e.g., MCP_API_KEY length / disabled+api_key conflict). Run the
104
+ // env-var humanizer so users see env-var names, not schema paths.
105
+ const formattedIssues = humanizeEnvConfigPaths(formatZodIssues(result.error.issues));
106
+ throw new Error(`Failed to construct OAuth MCPServerConfiguration from environment variables:\n${formattedIssues}`);
107
+ }
108
+ return new MCPServerConfiguration(result.data);
109
+ }
110
+ const connection = { type: "direct" };
111
+ // Each connection builder returns { <blockKey>: { ...fields } } or null — the key is owned
112
+ // by the builder, not the caller. See builder docstrings for the env vars each handles.
113
+ const connectionBuilders = [
114
+ buildKafkaBlock,
115
+ buildSchemaRegistryBlock,
116
+ buildConfluentCloudBlock,
117
+ buildTableflowBlock,
118
+ buildTelemetryBlock,
119
+ buildFlinkBlock,
120
+ ];
121
+ for (const build of connectionBuilders) {
122
+ const result = build(env);
123
+ if (result)
124
+ Object.assign(connection, result);
125
+ }
126
+ if (kafkaConfig) {
127
+ connection.kafka = mergeKafkaConfigIntoRawBlock(connection.kafka, kafkaConfig);
128
+ }
129
+ // Build root document with both the connection and the server block.
130
+ // authOverrides are folded in here so Zod validates the final combined state,
131
+ // including the disabled+api_key mutual exclusion refine.
132
+ const rawDocument = {
133
+ connections: { [DEFAULT_CONNECTION_NAME]: connection },
134
+ ...buildServerBlock(env, authOverrides),
135
+ };
136
+ // Validate the manufactured config object against the schema, as if it were loaded from a YAML file.
137
+ //
138
+ // (We do this inline here so that we can reverse project any validation errors back into the
139
+ // env var space in the catch block, which we would not be able to do if we deferred validation
140
+ // to a single codepath shared with YAML-loaded configs.)
141
+ const result = mcpConfigSchema.safeParse(rawDocument);
142
+ if (!result.success) {
143
+ const formattedIssues = humanizeEnvConfigPaths(formatZodIssues(result.error.issues));
144
+ throw new Error(`Failed to construct MCPServerConfiguration from environment variables:\n${formattedIssues}`);
145
+ }
146
+ return new MCPServerConfiguration(result.data);
147
+ }
148
+ /**
149
+ * Constructs a fully-resolved MCPServerConfiguration from environment variables and optional
150
+ * CLI flag overrides. Extends {@link buildConfigFromEnv} by folding in the three CLI flags that
151
+ * are only valid on the env-var path (`--disable-auth`, `--allowed-hosts`, `--kafka-config-file`),
152
+ * so that the returned config needs no further patching by the caller.
153
+ *
154
+ * @param env - Environment variables (same contract as {@link buildConfigFromEnv})
155
+ * @param overrides - CLI flag values to merge on top of the env-var-derived config
156
+ */
157
+ export function buildConfigFromEnvAndCli(env, overrides = {}) {
158
+ return buildConfigFromEnv(env, {
159
+ disableAuth: overrides.disableAuth,
160
+ allowedHosts: overrides.allowedHosts,
161
+ }, overrides.kafkaConfig, overrides.oauth ? { ccloudEnv: overrides.ccloudEnv } : undefined);
162
+ }
163
+ /**
164
+ * Builds the `kafka` connection block from env vars. Triggered when any Kafka-related
165
+ * env var is set. All fields are optional; at least one connectivity field
166
+ * (bootstrap_servers, rest_endpoint, cluster_id, or env_id) is required by the schema.
167
+ *
168
+ * Equivalent YAML:
169
+ *
170
+ * kafka:
171
+ * bootstrap_servers: "${BOOTSTRAP_SERVERS}"
172
+ * rest_endpoint: "${KAFKA_REST_ENDPOINT}"
173
+ * cluster_id: "${KAFKA_CLUSTER_ID}"
174
+ * env_id: "${KAFKA_ENV_ID}"
175
+ * auth:
176
+ * type: api_key
177
+ * key: "${KAFKA_API_KEY}"
178
+ * secret: "${KAFKA_API_SECRET}"
179
+ */
180
+ function buildKafkaBlock(env) {
181
+ if (!env.BOOTSTRAP_SERVERS &&
182
+ !env.KAFKA_API_KEY &&
183
+ !env.KAFKA_API_SECRET &&
184
+ !env.KAFKA_REST_ENDPOINT &&
185
+ !env.KAFKA_CLUSTER_ID &&
186
+ !env.KAFKA_ENV_ID)
187
+ return null;
188
+ return {
189
+ kafka: {
190
+ ...(env.BOOTSTRAP_SERVERS && {
191
+ bootstrap_servers: env.BOOTSTRAP_SERVERS,
192
+ }),
193
+ ...apiKeyAuth(env.KAFKA_API_KEY, env.KAFKA_API_SECRET),
194
+ ...(env.KAFKA_REST_ENDPOINT && {
195
+ rest_endpoint: env.KAFKA_REST_ENDPOINT,
196
+ }),
197
+ ...(env.KAFKA_CLUSTER_ID && { cluster_id: env.KAFKA_CLUSTER_ID }),
198
+ ...(env.KAFKA_ENV_ID && { env_id: env.KAFKA_ENV_ID }),
199
+ },
200
+ };
201
+ }
202
+ /**
203
+ * Builds the `schema_registry` connection block from env vars. Triggered when any
204
+ * Schema Registry env var is set.
205
+ *
206
+ * Equivalent YAML:
207
+ *
208
+ * schema_registry:
209
+ * endpoint: "${SCHEMA_REGISTRY_ENDPOINT}"
210
+ * auth:
211
+ * type: api_key
212
+ * key: "${SCHEMA_REGISTRY_API_KEY}"
213
+ * secret: "${SCHEMA_REGISTRY_API_SECRET}"
214
+ *
215
+ * Returns a looser object than SchemaRegistryDirectConfig so that Zod will be able
216
+ * to make the complaint that endpoint is required if only the auth var(s) are set.
217
+ */
218
+ function buildSchemaRegistryBlock(env) {
219
+ if (!env.SCHEMA_REGISTRY_ENDPOINT &&
220
+ !env.SCHEMA_REGISTRY_API_KEY &&
221
+ !env.SCHEMA_REGISTRY_API_SECRET)
222
+ return null;
223
+ return {
224
+ schema_registry: {
225
+ ...(env.SCHEMA_REGISTRY_ENDPOINT && {
226
+ endpoint: env.SCHEMA_REGISTRY_ENDPOINT,
227
+ }),
228
+ ...apiKeyAuth(env.SCHEMA_REGISTRY_API_KEY, env.SCHEMA_REGISTRY_API_SECRET),
229
+ },
230
+ };
231
+ }
232
+ /**
233
+ * Builds the `confluent_cloud` connection block from env vars. Triggered when at least
234
+ * one of CONFLUENT_CLOUD_API_KEY or CONFLUENT_CLOUD_API_SECRET is set. CONFLUENT_CLOUD_REST_ENDPOINT
235
+ * alone is not sufficient — an endpoint without credentials is ignored.
236
+ *
237
+ * Equivalent YAML:
238
+ *
239
+ * confluent_cloud:
240
+ * endpoint: "${CONFLUENT_CLOUD_REST_ENDPOINT}"
241
+ * auth:
242
+ * type: api_key
243
+ * key: "${CONFLUENT_CLOUD_API_KEY}"
244
+ * secret: "${CONFLUENT_CLOUD_API_SECRET}"
245
+ */
246
+ function buildConfluentCloudBlock(env) {
247
+ if (!env.CONFLUENT_CLOUD_API_KEY && !env.CONFLUENT_CLOUD_API_SECRET)
248
+ return null;
249
+ return {
250
+ confluent_cloud: {
251
+ ...(env.CONFLUENT_CLOUD_REST_ENDPOINT && {
252
+ endpoint: env.CONFLUENT_CLOUD_REST_ENDPOINT,
253
+ }),
254
+ ...apiKeyAuth(env.CONFLUENT_CLOUD_API_KEY, env.CONFLUENT_CLOUD_API_SECRET),
255
+ },
256
+ };
257
+ }
258
+ /**
259
+ * Builds the `tableflow` connection block from env vars. Triggered when either
260
+ * Tableflow credential env var is set.
261
+ *
262
+ * Equivalent YAML:
263
+ *
264
+ * tableflow:
265
+ * auth:
266
+ * type: api_key
267
+ * key: "${TABLEFLOW_API_KEY}"
268
+ * secret: "${TABLEFLOW_API_SECRET}"
269
+ */
270
+ function buildTableflowBlock(env) {
271
+ if (!env.TABLEFLOW_API_KEY && !env.TABLEFLOW_API_SECRET)
272
+ return null;
273
+ return {
274
+ tableflow: apiKeyAuth(env.TABLEFLOW_API_KEY, env.TABLEFLOW_API_SECRET),
275
+ };
276
+ }
277
+ /**
278
+ * Builds the `telemetry` connection block from env vars. Triggered when any telemetry
279
+ * env var is set.
280
+ *
281
+ * Equivalent YAML:
282
+ *
283
+ * telemetry:
284
+ * endpoint: "${TELEMETRY_ENDPOINT}"
285
+ * auth:
286
+ * type: api_key
287
+ * key: "${TELEMETRY_API_KEY}"
288
+ * secret: "${TELEMETRY_API_SECRET}"
289
+ */
290
+ function buildTelemetryBlock(env) {
291
+ if (!env.TELEMETRY_ENDPOINT &&
292
+ !env.TELEMETRY_API_KEY &&
293
+ !env.TELEMETRY_API_SECRET)
294
+ return null;
295
+ return {
296
+ telemetry: {
297
+ ...(env.TELEMETRY_ENDPOINT && { endpoint: env.TELEMETRY_ENDPOINT }),
298
+ ...apiKeyAuth(env.TELEMETRY_API_KEY, env.TELEMETRY_API_SECRET),
299
+ },
300
+ };
301
+ }
302
+ /**
303
+ * Builds the `flink` connection block from env vars. Triggered when any Flink env var
304
+ * is set. Returns a looser object than FlinkDirectConfig so that Zod will be able
305
+ * to make the complaint that endpoint, auth, environment_id, organization_id, and
306
+ * compute_pool_id are required if only some fields are set.
307
+ *
308
+ * Equivalent YAML:
309
+ *
310
+ * flink:
311
+ * endpoint: "${FLINK_REST_ENDPOINT}"
312
+ * environment_id: "${FLINK_ENV_ID}"
313
+ * organization_id: "${FLINK_ORG_ID}"
314
+ * compute_pool_id: "${FLINK_COMPUTE_POOL_ID}"
315
+ * catalog_name: "${FLINK_CATALOG_NAME}"
316
+ * database_name: "${FLINK_DATABASE_NAME}"
317
+ * auth:
318
+ * type: api_key
319
+ * key: "${FLINK_API_KEY}"
320
+ * secret: "${FLINK_API_SECRET}"
321
+ */
322
+ function buildFlinkBlock(env) {
323
+ if (!env.FLINK_REST_ENDPOINT &&
324
+ !env.FLINK_API_KEY &&
325
+ !env.FLINK_API_SECRET &&
326
+ !env.FLINK_ENV_ID &&
327
+ !env.FLINK_ORG_ID &&
328
+ !env.FLINK_COMPUTE_POOL_ID &&
329
+ !env.FLINK_CATALOG_NAME &&
330
+ !env.FLINK_ENV_NAME &&
331
+ !env.FLINK_DATABASE_NAME)
332
+ return null;
333
+ const catalogName = resolveFlinkCatalogName(env);
334
+ return {
335
+ flink: {
336
+ ...(env.FLINK_REST_ENDPOINT && { endpoint: env.FLINK_REST_ENDPOINT }),
337
+ ...apiKeyAuth(env.FLINK_API_KEY, env.FLINK_API_SECRET),
338
+ ...(env.FLINK_ENV_ID && { environment_id: env.FLINK_ENV_ID }),
339
+ ...(env.FLINK_ORG_ID && { organization_id: env.FLINK_ORG_ID }),
340
+ ...(env.FLINK_COMPUTE_POOL_ID && {
341
+ compute_pool_id: env.FLINK_COMPUTE_POOL_ID,
342
+ }),
343
+ ...(catalogName && { catalog_name: catalogName }),
344
+ ...(env.FLINK_DATABASE_NAME && {
345
+ database_name: env.FLINK_DATABASE_NAME,
346
+ }),
347
+ },
348
+ };
349
+ }
350
+ /**
351
+ * Resolves the Flink catalog name from env vars, accepting either the preferred
352
+ * `FLINK_CATALOG_NAME` or the deprecated `FLINK_ENV_NAME`. Throws when both are
353
+ * set (unambiguous conflict — user must remove the legacy one). Emits a single
354
+ * `logger.warn` when only the legacy var is set so the deprecation lands in
355
+ * server logs at startup.
356
+ *
357
+ * TODO: Remove FLINK_ENV_NAME support in v1.4.0. See issue #209.
358
+ */
359
+ function resolveFlinkCatalogName(env) {
360
+ if (env.FLINK_CATALOG_NAME && env.FLINK_ENV_NAME) {
361
+ throw new Error("Both FLINK_CATALOG_NAME and the deprecated FLINK_ENV_NAME are set; remove FLINK_ENV_NAME.");
362
+ }
363
+ if (env.FLINK_CATALOG_NAME)
364
+ return env.FLINK_CATALOG_NAME;
365
+ if (env.FLINK_ENV_NAME) {
366
+ logger.warn("FLINK_ENV_NAME is deprecated and will be removed in v1.4.0; rename to FLINK_CATALOG_NAME.");
367
+ return env.FLINK_ENV_NAME;
368
+ }
369
+ return undefined;
370
+ }
371
+ /**
372
+ * Builds the root-level `server` block from env vars. Always returns a block —
373
+ * all fields have defaults in envSchema so they are always present after initEnv().
374
+ *
375
+ * Equivalent YAML:
376
+ *
377
+ * server:
378
+ * log_level: "${LOG_LEVEL}"
379
+ * http:
380
+ * port: ${HTTP_PORT}
381
+ * host: "${HTTP_HOST}"
382
+ * mcp_endpoint: "${HTTP_MCP_ENDPOINT_PATH}"
383
+ * sse_endpoint: "${SSE_MCP_ENDPOINT_PATH}"
384
+ * sse_message_endpoint: "${SSE_MCP_MESSAGE_ENDPOINT_PATH}"
385
+ * do_not_track: ${DO_NOT_TRACK}
386
+ * auth:
387
+ * api_key: "${MCP_API_KEY}" # omitted when not set
388
+ * disabled: ${MCP_AUTH_DISABLED}
389
+ * allowed_hosts: ${MCP_ALLOWED_HOSTS}
390
+ */
391
+ function buildServerBlock(env, authOverrides = {}) {
392
+ return {
393
+ server: {
394
+ log_level: env.LOG_LEVEL,
395
+ do_not_track: env.DO_NOT_TRACK,
396
+ http: {
397
+ port: env.HTTP_PORT,
398
+ host: env.HTTP_HOST,
399
+ mcp_endpoint: env.HTTP_MCP_ENDPOINT_PATH,
400
+ sse_endpoint: env.SSE_MCP_ENDPOINT_PATH,
401
+ sse_message_endpoint: env.SSE_MCP_MESSAGE_ENDPOINT_PATH,
402
+ },
403
+ auth: {
404
+ ...(env.MCP_API_KEY !== undefined && { api_key: env.MCP_API_KEY }),
405
+ disabled: authOverrides.disableAuth ?? env.MCP_AUTH_DISABLED,
406
+ allowed_hosts: authOverrides.allowedHosts ?? env.MCP_ALLOWED_HOSTS,
407
+ },
408
+ ...(env.TELEMETRY_WRITE_KEY !== undefined && {
409
+ analytics: { write_key: env.TELEMETRY_WRITE_KEY },
410
+ }),
411
+ },
412
+ };
413
+ }
414
+ /** Returns an `{ auth: ... }` spread object when either credential is present, empty object otherwise. */
415
+ function apiKeyAuth(key, secret) {
416
+ if (!key && !secret)
417
+ return {};
418
+ // Non-null assertions: Zod validates that both are actually present and non-empty.
419
+ return { auth: { type: "api_key", key: key, secret: secret } };
420
+ }
421
+ /**
422
+ * Replaces Zod document path segments in a formatted error string with their
423
+ * corresponding environment variable names, translating schema-space errors
424
+ * back into the env-var space the user configured.
425
+ */
426
+ function humanizeEnvConfigPaths(message) {
427
+ return Object.entries(ENV_VAR_TO_ZPATH).reduce((msg, [envVar, zodPath]) => msg.replaceAll(zodPath, envVar), message);
428
+ }
429
+ /**
430
+ * Merges `-k` / `--kafka-config-file` properties into the raw (pre-Zod) kafka block so
431
+ * that all config is consolidated before MCPServerConfiguration is constructed.
432
+ *
433
+ * Protected keys (`bootstrap.servers`, `sasl.username`, `sasl.password`) are promoted
434
+ * into their corresponding named fields, overriding any env-var-derived values already
435
+ * present. All other keys go into `extra_properties`. Creates a kafka block if none
436
+ * exists, provided `bootstrap.servers` is supplied.
437
+ */
438
+ function mergeKafkaConfigIntoRawBlock(kafka, props) {
439
+ for (const key of KAFKA_PROTECTED_EXTRA_PROPERTY_KEYS) {
440
+ if (Object.hasOwn(props, key) && props[key] === "") {
441
+ throw new Error(`--kafka-config-file: ${key} is present but empty — provide a non-empty value or omit the key`);
442
+ }
443
+ }
444
+ if (!kafka) {
445
+ if (!Object.hasOwn(props, "bootstrap.servers")) {
446
+ throw new Error("--kafka-config-file: no kafka block is configured and props do not include bootstrap.servers — cannot establish a Kafka connection");
447
+ }
448
+ kafka = {};
449
+ }
450
+ const hasSaslUser = Object.hasOwn(props, "sasl.username");
451
+ const hasSaslPass = Object.hasOwn(props, "sasl.password");
452
+ if (hasSaslUser !== hasSaslPass) {
453
+ throw new Error("--kafka-config-file: sasl.username and sasl.password must both be present or both be absent");
454
+ }
455
+ const protectedSet = new Set(KAFKA_PROTECTED_EXTRA_PROPERTY_KEYS);
456
+ const result = { ...kafka };
457
+ if (Object.hasOwn(props, "bootstrap.servers")) {
458
+ result.bootstrap_servers = props["bootstrap.servers"];
459
+ }
460
+ if (hasSaslUser && hasSaslPass) {
461
+ result.auth = {
462
+ type: "api_key",
463
+ key: props["sasl.username"],
464
+ secret: props["sasl.password"],
465
+ };
466
+ }
467
+ const remaining = Object.fromEntries(Object.entries(props).filter(([k]) => !protectedSet.has(k)));
468
+ if (Object.keys(remaining).length > 0) {
469
+ result.extra_properties = remaining;
470
+ }
471
+ return result;
472
+ }
473
+ //# sourceMappingURL=env-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-config.js","sourceRoot":"","sources":["../../src/config/env-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { MCPServerConfiguration } from "../config/models.js";
2
+ export { buildConfigFromEnvAndCli } from "../config/env-config.js";
3
+ export { CONFLUENT_CLOUD_DEFAULT_ENDPOINT, MCPServerConfiguration, type DirectConnectionConfig, type OAuthConnectionConfig, } from "../config/models.js";
4
+ /**
5
+ * Loads and validates an MCP server configuration from a YAML file.
6
+ *
7
+ * @param filePath - Path to the YAML configuration file
8
+ * @param environ - Environment variables used for ${VAR} interpolation
9
+ * @returns Validated MCPServerConfiguration object
10
+ * @throws Error if file doesn't exist, YAML is invalid, interpolation fails, or validation fails
11
+ */
12
+ export declare function loadConfigFromYaml(filePath: string, environ: Record<string, string | undefined>): MCPServerConfiguration;
13
+ /**
14
+ * Reads configuration file contents from disk.
15
+ *
16
+ * @param filePath - Path to the YAML configuration file
17
+ * @returns File contents as string
18
+ * @throws Error if file doesn't exist or cannot be read
19
+ */
20
+ export declare function loadConfigFileContents(filePath: string): string;
21
+ /**
22
+ * Parses and validates YAML configuration content.
23
+ * Always performs ${VAR} and ${VAR:-default} interpolation before Zod validation.
24
+ *
25
+ * @param yamlContent - YAML string content
26
+ * @param env - Environment variables used for ${VAR} interpolation
27
+ * @returns Validated MCPServerConfiguration object
28
+ * @throws Error if YAML is invalid, interpolation fails, or validation fails
29
+ */
30
+ export declare function parseYamlConfiguration(yamlContent: string, environ: Record<string, string | undefined>): MCPServerConfiguration;
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,gCAAgC,EAChC,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,sBAAsB,CAGxB;AAKD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgB/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,sBAAsB,CA+BxB"}
@@ -0,0 +1,76 @@
1
+ import { interpolateValues } from "../config/interpolation.js";
2
+ import { formatZodIssues, mcpConfigSchema, MCPServerConfiguration, } from "../config/models.js";
3
+ import * as nodeDeps from "../confluent/node-deps.js";
4
+ import path from "node:path";
5
+ import { parse as parseYaml } from "yaml";
6
+ export { buildConfigFromEnvAndCli } from "../config/env-config.js";
7
+ export { CONFLUENT_CLOUD_DEFAULT_ENDPOINT, MCPServerConfiguration, } from "../config/models.js";
8
+ /**
9
+ * Loads and validates an MCP server configuration from a YAML file.
10
+ *
11
+ * @param filePath - Path to the YAML configuration file
12
+ * @param environ - Environment variables used for ${VAR} interpolation
13
+ * @returns Validated MCPServerConfiguration object
14
+ * @throws Error if file doesn't exist, YAML is invalid, interpolation fails, or validation fails
15
+ */
16
+ export function loadConfigFromYaml(filePath, environ) {
17
+ const yamlContent = loadConfigFileContents(filePath);
18
+ return parseYamlConfiguration(yamlContent, environ);
19
+ }
20
+ /* All the rest of the functions in this file are internal helpers for loading and validating the configuration, only exported for
21
+ test suite purposes. */
22
+ /**
23
+ * Reads configuration file contents from disk.
24
+ *
25
+ * @param filePath - Path to the YAML configuration file
26
+ * @returns File contents as string
27
+ * @throws Error if file doesn't exist or cannot be read
28
+ */
29
+ export function loadConfigFileContents(filePath) {
30
+ const absolutePath = path.resolve(filePath);
31
+ // Check if file exists
32
+ if (!nodeDeps.fs.existsSync(absolutePath)) {
33
+ throw new Error(`Configuration file not found: ${absolutePath}`);
34
+ }
35
+ // Read file contents
36
+ try {
37
+ return nodeDeps.fs.readFileSync(absolutePath, "utf-8");
38
+ }
39
+ catch (error) {
40
+ throw new Error(`Failed to read configuration file: ${error instanceof Error ? error.message : String(error)}`);
41
+ }
42
+ }
43
+ /**
44
+ * Parses and validates YAML configuration content.
45
+ * Always performs ${VAR} and ${VAR:-default} interpolation before Zod validation.
46
+ *
47
+ * @param yamlContent - YAML string content
48
+ * @param env - Environment variables used for ${VAR} interpolation
49
+ * @returns Validated MCPServerConfiguration object
50
+ * @throws Error if YAML is invalid, interpolation fails, or validation fails
51
+ */
52
+ export function parseYamlConfiguration(yamlContent, environ) {
53
+ // Parse YAML
54
+ let parsedYaml;
55
+ try {
56
+ parsedYaml = parseYaml(yamlContent);
57
+ }
58
+ catch (error) {
59
+ throw new Error(`Failed to parse YAML: ${error instanceof Error ? error.message : String(error)}`);
60
+ }
61
+ // Interpolate environment variables (before Zod sees the values)
62
+ try {
63
+ parsedYaml = interpolateValues(parsedYaml, environ);
64
+ }
65
+ catch (error) {
66
+ throw new Error(`Failed to interpolate configuration values: ${error instanceof Error ? error.message : String(error)}`);
67
+ }
68
+ // Validate with Zod
69
+ const validationResult = mcpConfigSchema.safeParse(parsedYaml);
70
+ if (!validationResult.success) {
71
+ throw new Error(`Configuration validation failed:\n${formatZodIssues(validationResult.error.issues)}`);
72
+ }
73
+ // Promote from raw parsed object to MCPServerConfiguration instance.
74
+ return new MCPServerConfiguration(validationResult.data);
75
+ }
76
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,QAAQ,MAAM,6BAA6B,CAAC;AACxD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EACL,gCAAgC,EAChC,sBAAsB,GAGvB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,OAA2C;IAE3C,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AACtD,CAAC;AAED;yBACyB;AAEzB;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5C,uBAAuB;IACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC/F,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,WAAmB,EACnB,OAA2C;IAE3C,aAAa;IACb,IAAI,UAAmB,CAAC;IACxB,IAAI,CAAC;QACH,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAClF,CAAC;IACJ,CAAC;IAED,iEAAiE;IACjE,IAAI,CAAC;QACH,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxG,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAE/D,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qCAAqC,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,OAAO,IAAI,sBAAsB,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Recursively interpolates `${VAR}` and `${VAR:-default}` patterns in all
3
+ * string values of the given object/array/primitive. Non-string leaves
4
+ * (numbers, booleans, null, undefined) are returned unchanged.
5
+ *
6
+ * Escaping: `$${LITERAL}` is replaced with the literal text `${LITERAL}`.
7
+ */
8
+ export declare function interpolateValues(obj: unknown, environ: Record<string, string | undefined>): unknown;
9
+ //# sourceMappingURL=interpolation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../../src/config/interpolation.ts"],"names":[],"mappings":"AA0CA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAC1C,OAAO,CAoBT"}