@confluentinc/mcp-confluent 1.0.1 → 1.0.2

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 (257) hide show
  1. package/README.md +277 -25
  2. package/dist/cli.d.ts +42 -3
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +203 -30
  5. package/dist/cli.js.map +1 -1
  6. package/dist/confluent/client-manager.d.ts +31 -11
  7. package/dist/confluent/client-manager.d.ts.map +1 -1
  8. package/dist/confluent/client-manager.js +69 -32
  9. package/dist/confluent/client-manager.js.map +1 -1
  10. package/dist/confluent/helpers.d.ts +2 -2
  11. package/dist/confluent/helpers.d.ts.map +1 -1
  12. package/dist/confluent/helpers.js +1 -1
  13. package/dist/confluent/helpers.js.map +1 -1
  14. package/dist/confluent/middleware.d.ts +12 -11
  15. package/dist/confluent/middleware.d.ts.map +1 -1
  16. package/dist/confluent/middleware.js +6 -37
  17. package/dist/confluent/middleware.js.map +1 -1
  18. package/dist/confluent/schema-registry-helper.d.ts +134 -0
  19. package/dist/confluent/schema-registry-helper.d.ts.map +1 -0
  20. package/dist/confluent/schema-registry-helper.js +202 -0
  21. package/dist/confluent/schema-registry-helper.js.map +1 -0
  22. package/dist/confluent/schema.d.ts.map +1 -1
  23. package/dist/confluent/schema.js +1 -3
  24. package/dist/confluent/schema.js.map +1 -1
  25. package/dist/confluent/tools/base-tools.d.ts +43 -2
  26. package/dist/confluent/tools/base-tools.d.ts.map +1 -1
  27. package/dist/confluent/tools/base-tools.js +17 -0
  28. package/dist/confluent/tools/base-tools.js.map +1 -1
  29. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts +3 -0
  30. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.d.ts.map +1 -1
  31. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js +7 -1
  32. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic.js.map +1 -1
  33. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts +3 -0
  34. package/dist/confluent/tools/handlers/catalog/create-topic-tags.d.ts.map +1 -1
  35. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js +7 -1
  36. package/dist/confluent/tools/handlers/catalog/create-topic-tags.js.map +1 -1
  37. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts +3 -0
  38. package/dist/confluent/tools/handlers/catalog/delete-tag.d.ts.map +1 -1
  39. package/dist/confluent/tools/handlers/catalog/delete-tag.js +7 -1
  40. package/dist/confluent/tools/handlers/catalog/delete-tag.js.map +1 -1
  41. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts +3 -0
  42. package/dist/confluent/tools/handlers/catalog/list-tags.d.ts.map +1 -1
  43. package/dist/confluent/tools/handlers/catalog/list-tags.js +7 -1
  44. package/dist/confluent/tools/handlers/catalog/list-tags.js.map +1 -1
  45. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts +3 -0
  46. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.d.ts.map +1 -1
  47. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js +7 -1
  48. package/dist/confluent/tools/handlers/catalog/remove-tag-from-entity.js.map +1 -1
  49. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts +31 -28
  50. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.d.ts.map +1 -1
  51. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js +11 -4
  52. package/dist/confluent/tools/handlers/clusters/list-clusters-handler.js.map +1 -1
  53. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts +3 -0
  54. package/dist/confluent/tools/handlers/connect/create-connector-handler.d.ts.map +1 -1
  55. package/dist/confluent/tools/handlers/connect/create-connector-handler.js +12 -1
  56. package/dist/confluent/tools/handlers/connect/create-connector-handler.js.map +1 -1
  57. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts +3 -0
  58. package/dist/confluent/tools/handlers/connect/delete-connector-handler.d.ts.map +1 -1
  59. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js +7 -1
  60. package/dist/confluent/tools/handlers/connect/delete-connector-handler.js.map +1 -1
  61. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts +3 -0
  62. package/dist/confluent/tools/handlers/connect/list-connectors-handler.d.ts.map +1 -1
  63. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js +7 -1
  64. package/dist/confluent/tools/handlers/connect/list-connectors-handler.js.map +1 -1
  65. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts +3 -0
  66. package/dist/confluent/tools/handlers/connect/read-connectors-handler.d.ts.map +1 -1
  67. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js +7 -1
  68. package/dist/confluent/tools/handlers/connect/read-connectors-handler.js.map +1 -1
  69. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts +19 -16
  70. package/dist/confluent/tools/handlers/environments/list-environments-handler.d.ts.map +1 -1
  71. package/dist/confluent/tools/handlers/environments/list-environments-handler.js +11 -4
  72. package/dist/confluent/tools/handlers/environments/list-environments-handler.js.map +1 -1
  73. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts +3 -0
  74. package/dist/confluent/tools/handlers/environments/read-environment-handler.d.ts.map +1 -1
  75. package/dist/confluent/tools/handlers/environments/read-environment-handler.js +11 -4
  76. package/dist/confluent/tools/handlers/environments/read-environment-handler.js.map +1 -1
  77. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts +3 -0
  78. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.d.ts.map +1 -1
  79. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js +9 -3
  80. package/dist/confluent/tools/handlers/flink/create-flink-statement-handler.js.map +1 -1
  81. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts +3 -0
  82. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.d.ts.map +1 -1
  83. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js +7 -1
  84. package/dist/confluent/tools/handlers/flink/delete-flink-statement-handler.js.map +1 -1
  85. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts +3 -0
  86. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.d.ts.map +1 -1
  87. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js +9 -3
  88. package/dist/confluent/tools/handlers/flink/list-flink-statements-handler.js.map +1 -1
  89. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts +3 -0
  90. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.d.ts.map +1 -1
  91. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js +7 -1
  92. package/dist/confluent/tools/handlers/flink/read-flink-statement-handler.js.map +1 -1
  93. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts +3 -0
  94. package/dist/confluent/tools/handlers/kafka/alter-topic-config.d.ts.map +1 -1
  95. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js +7 -1
  96. package/dist/confluent/tools/handlers/kafka/alter-topic-config.js.map +1 -1
  97. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts +117 -0
  98. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.d.ts.map +1 -0
  99. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js +177 -0
  100. package/dist/confluent/tools/handlers/kafka/consume-kafka-messages-handler.js.map +1 -0
  101. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts +2 -0
  102. package/dist/confluent/tools/handlers/kafka/create-topics-handler.d.ts.map +1 -1
  103. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js +4 -1
  104. package/dist/confluent/tools/handlers/kafka/create-topics-handler.js.map +1 -1
  105. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts +2 -0
  106. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.d.ts.map +1 -1
  107. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js +3 -0
  108. package/dist/confluent/tools/handlers/kafka/delete-topics-handler.js.map +1 -1
  109. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts +16 -0
  110. package/dist/confluent/tools/handlers/kafka/get-topic-config.d.ts.map +1 -0
  111. package/dist/confluent/tools/handlers/kafka/get-topic-config.js +67 -0
  112. package/dist/confluent/tools/handlers/kafka/get-topic-config.js.map +1 -0
  113. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts +2 -0
  114. package/dist/confluent/tools/handlers/kafka/list-topics-handler.d.ts.map +1 -1
  115. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js +3 -0
  116. package/dist/confluent/tools/handlers/kafka/list-topics-handler.js.map +1 -1
  117. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts +30 -0
  118. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.d.ts.map +1 -1
  119. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js +117 -7
  120. package/dist/confluent/tools/handlers/kafka/produce-kafka-message-handler.js.map +1 -1
  121. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts +2 -0
  122. package/dist/confluent/tools/handlers/schema/list-schemas-handler.d.ts.map +1 -1
  123. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js +4 -1
  124. package/dist/confluent/tools/handlers/schema/list-schemas-handler.js.map +1 -1
  125. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts +3 -0
  126. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.d.ts.map +1 -1
  127. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js +7 -1
  128. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler.js.map +1 -1
  129. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts +3 -0
  130. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.d.ts.map +1 -1
  131. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js +7 -1
  132. package/dist/confluent/tools/handlers/search/search-topics-by-name-handler.js.map +1 -1
  133. package/dist/confluent/tools/tool-factory.d.ts.map +1 -1
  134. package/dist/confluent/tools/tool-factory.js +8 -4
  135. package/dist/confluent/tools/tool-factory.js.map +1 -1
  136. package/dist/confluent/tools/tool-name.d.ts +3 -1
  137. package/dist/confluent/tools/tool-name.d.ts.map +1 -1
  138. package/dist/confluent/tools/tool-name.js +2 -0
  139. package/dist/confluent/tools/tool-name.js.map +1 -1
  140. package/dist/env-schema.d.ts +37 -30
  141. package/dist/env-schema.d.ts.map +1 -1
  142. package/dist/env-schema.js +31 -12
  143. package/dist/env-schema.js.map +1 -1
  144. package/dist/env.d.ts +11 -9
  145. package/dist/env.d.ts.map +1 -1
  146. package/dist/env.js +7 -7
  147. package/dist/env.js.map +1 -1
  148. package/dist/index.js +95 -28
  149. package/dist/index.js.map +1 -1
  150. package/dist/lazy.d.ts.map +1 -1
  151. package/dist/lazy.js +7 -6
  152. package/dist/lazy.js.map +1 -1
  153. package/dist/logger.d.ts +13 -0
  154. package/dist/logger.d.ts.map +1 -0
  155. package/dist/logger.js +61 -0
  156. package/dist/logger.js.map +1 -0
  157. package/dist/mcp/transports/http.d.ts +12 -0
  158. package/dist/mcp/transports/http.d.ts.map +1 -0
  159. package/dist/mcp/transports/http.js +127 -0
  160. package/dist/mcp/transports/http.js.map +1 -0
  161. package/dist/mcp/transports/index.d.ts +7 -0
  162. package/dist/mcp/transports/index.d.ts.map +1 -0
  163. package/dist/mcp/transports/index.js +7 -0
  164. package/dist/mcp/transports/index.js.map +1 -0
  165. package/dist/mcp/transports/manager.d.ts +12 -0
  166. package/dist/mcp/transports/manager.d.ts.map +1 -0
  167. package/dist/mcp/transports/manager.js +86 -0
  168. package/dist/mcp/transports/manager.js.map +1 -0
  169. package/dist/mcp/transports/server.d.ts +12 -0
  170. package/dist/mcp/transports/server.d.ts.map +1 -0
  171. package/dist/mcp/transports/server.js +87 -0
  172. package/dist/mcp/transports/server.js.map +1 -0
  173. package/dist/mcp/transports/sse.d.ts +12 -0
  174. package/dist/mcp/transports/sse.d.ts.map +1 -0
  175. package/dist/mcp/transports/sse.js +110 -0
  176. package/dist/mcp/transports/sse.js.map +1 -0
  177. package/dist/mcp/transports/stdio.d.ts +9 -0
  178. package/dist/mcp/transports/stdio.d.ts.map +1 -0
  179. package/dist/mcp/transports/stdio.js +17 -0
  180. package/dist/mcp/transports/stdio.js.map +1 -0
  181. package/dist/mcp/transports/types.d.ts +14 -0
  182. package/dist/mcp/transports/types.d.ts.map +1 -0
  183. package/dist/mcp/transports/types.js +7 -0
  184. package/dist/mcp/transports/types.js.map +1 -0
  185. package/dist/print-md-schema.d.ts +5 -0
  186. package/dist/print-md-schema.d.ts.map +1 -1
  187. package/dist/print-md-schema.js +6 -0
  188. package/dist/print-md-schema.js.map +1 -1
  189. package/package.json +31 -18
  190. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts +0 -8
  191. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.d.ts.map +0 -1
  192. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js +0 -47
  193. package/dist/confluent/tools/handlers/catalog/add-tag-to-topic.js.map +0 -1
  194. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts +0 -8
  195. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.d.ts.map +0 -1
  196. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js +0 -47
  197. package/dist/confluent/tools/handlers/catalog/add-tags-to-topic copy.js.map +0 -1
  198. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts +0 -8
  199. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.d.ts.map +0 -1
  200. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js +0 -52
  201. package/dist/confluent/tools/handlers/catalog/create-topic-tags copy.js.map +0 -1
  202. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts +0 -8
  203. package/dist/confluent/tools/handlers/catalog/delete-tag copy.d.ts.map +0 -1
  204. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js +0 -42
  205. package/dist/confluent/tools/handlers/catalog/delete-tag copy.js.map +0 -1
  206. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts +0 -8
  207. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.d.ts.map +0 -1
  208. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js +0 -56
  209. package/dist/confluent/tools/handlers/catalog/delete-tag-for-entity.js.map +0 -1
  210. package/dist/confluent/tools/handlers/catalog/list-.d.ts +0 -8
  211. package/dist/confluent/tools/handlers/catalog/list-.d.ts.map +0 -1
  212. package/dist/confluent/tools/handlers/catalog/list-.js +0 -35
  213. package/dist/confluent/tools/handlers/catalog/list-.js.map +0 -1
  214. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts +0 -8
  215. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.d.ts.map +0 -1
  216. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js +0 -84
  217. package/dist/confluent/tools/handlers/connect/create-connector-handler copy.js.map +0 -1
  218. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts +0 -8
  219. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.d.ts.map +0 -1
  220. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js +0 -52
  221. package/dist/confluent/tools/handlers/entity/create-tags-for-topics.js.map +0 -1
  222. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts +0 -8
  223. package/dist/confluent/tools/handlers/entity/create-topic-tags.d.ts.map +0 -1
  224. package/dist/confluent/tools/handlers/entity/create-topic-tags.js +0 -52
  225. package/dist/confluent/tools/handlers/entity/create-topic-tags.js.map +0 -1
  226. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts +0 -8
  227. package/dist/confluent/tools/handlers/entity/create-topicc-tags.d.ts.map +0 -1
  228. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js +0 -52
  229. package/dist/confluent/tools/handlers/entity/create-topicc-tags.js.map +0 -1
  230. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts +0 -8
  231. package/dist/confluent/tools/handlers/entity/create-topics-tags.d.ts.map +0 -1
  232. package/dist/confluent/tools/handlers/entity/create-topics-tags.js +0 -52
  233. package/dist/confluent/tools/handlers/entity/create-topics-tags.js.map +0 -1
  234. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts +0 -8
  235. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.d.ts.map +0 -1
  236. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js +0 -39
  237. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler copy.js.map +0 -1
  238. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts +0 -8
  239. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.d.ts.map +0 -1
  240. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js +0 -39
  241. package/dist/confluent/tools/handlers/entity/topics-with-tags-handler.js.map +0 -1
  242. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts +0 -14
  243. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.d.ts.map +0 -1
  244. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js +0 -61
  245. package/dist/confluent/tools/handlers/kafka/alter-topic-config copy.js.map +0 -1
  246. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts +0 -8
  247. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.d.ts.map +0 -1
  248. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js +0 -28
  249. package/dist/confluent/tools/handlers/kafka/create-topics-handler copy.js.map +0 -1
  250. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts +0 -8
  251. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.d.ts.map +0 -1
  252. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js +0 -45
  253. package/dist/confluent/tools/handlers/search/search-topic-by-tag-handler copy.js.map +0 -1
  254. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts +0 -8
  255. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.d.ts.map +0 -1
  256. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js +0 -39
  257. package/dist/confluent/tools/handlers/search/topics-with-tags-handler.js.map +0 -1
@@ -1,15 +1,16 @@
1
1
  import { Middleware } from "openapi-fetch";
2
+ export interface ConfluentEndpoints {
3
+ cloud?: string;
4
+ flink?: string;
5
+ schemaRegistry?: string;
6
+ kafka?: string;
7
+ }
8
+ export interface ConfluentAuth {
9
+ apiKey: string;
10
+ apiSecret: string;
11
+ }
2
12
  /**
3
- * Middleware to add Authorization header to every request.
4
- *
5
- * This middleware intercepts each request and adds an Authorization header
6
- * using the Flink API key and secret from the environment variables.
7
- *
8
- * @param {Object} request - The request object.
9
- * @returns {Object} The modified request object with the Authorization header.
13
+ * Creates a middleware that adds Authorization header using the provided auth credentials
10
14
  */
11
- export declare const confluentCloudFlinkAuthMiddleware: Middleware;
12
- export declare const confluentCloudAuthMiddleware: Middleware;
13
- export declare const confluentCloudSchemaRegistryAuthMiddleware: Middleware;
14
- export declare const confluentCloudKafkaAuthMiddleware: Middleware;
15
+ export declare const createAuthMiddleware: (auth: ConfluentAuth) => Middleware;
15
16
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C;;;;;;;;GAQG;AACH,eAAO,MAAM,iCAAiC,EAAE,UAU/C,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,UAU1C,CAAC;AAEF,eAAO,MAAM,0CAA0C,EAAE,UAUxD,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,UAU/C,CAAC"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,aAAa,KAAG,UASzD,CAAC"}
@@ -1,43 +1,12 @@
1
- import env from "../env.js";
1
+ import { logger } from "../logger.js";
2
2
  /**
3
- * Middleware to add Authorization header to every request.
4
- *
5
- * This middleware intercepts each request and adds an Authorization header
6
- * using the Flink API key and secret from the environment variables.
7
- *
8
- * @param {Object} request - The request object.
9
- * @returns {Object} The modified request object with the Authorization header.
3
+ * Creates a middleware that adds Authorization header using the provided auth credentials
10
4
  */
11
- export const confluentCloudFlinkAuthMiddleware = {
5
+ export const createAuthMiddleware = (auth) => ({
12
6
  async onRequest({ request }) {
13
- console.error(`${JSON.stringify(request)}`);
14
- // add Authorization header to every request
15
- request.headers.set("Authorization", `Basic ${Buffer.from(`${env.FLINK_API_KEY}:${env.FLINK_API_SECRET}`).toString("base64")}`);
7
+ logger.debug({ request }, "Processing request");
8
+ request.headers.set("Authorization", `Basic ${Buffer.from(`${auth.apiKey}:${auth.apiSecret}`).toString("base64")}`);
16
9
  return request;
17
10
  },
18
- };
19
- export const confluentCloudAuthMiddleware = {
20
- async onRequest({ request }) {
21
- console.error(`${JSON.stringify(request)}`);
22
- // add Authorization header to every request
23
- request.headers.set("Authorization", `Basic ${Buffer.from(`${env.CONFLUENT_CLOUD_API_KEY}:${env.CONFLUENT_CLOUD_API_SECRET}`).toString("base64")}`);
24
- return request;
25
- },
26
- };
27
- export const confluentCloudSchemaRegistryAuthMiddleware = {
28
- async onRequest({ request }) {
29
- console.error(`${JSON.stringify(request)}`);
30
- // add Authorization header to every request
31
- request.headers.set("Authorization", `Basic ${Buffer.from(`${env.SCHEMA_REGISTRY_API_KEY}:${env.SCHEMA_REGISTRY_API_SECRET}`).toString("base64")}`);
32
- return request;
33
- },
34
- };
35
- export const confluentCloudKafkaAuthMiddleware = {
36
- async onRequest({ request }) {
37
- console.error(`${JSON.stringify(request)}`);
38
- // add Authorization header to every request
39
- request.headers.set("Authorization", `Basic ${Buffer.from(`${env.KAFKA_API_KEY}:${env.KAFKA_API_SECRET}`).toString("base64")}`);
40
- return request;
41
- },
42
- };
11
+ });
43
12
  //# sourceMappingURL=middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAC;AAE9B;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAe;IAC3D,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,4CAA4C;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC1F,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAe;IACtD,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,4CAA4C;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC9G,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,0CAA0C,GAAe;IACpE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,4CAA4C;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,uBAAuB,IAAI,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC9G,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAe;IAC3D,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC5C,4CAA4C;QAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC1F,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/confluent/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAexC;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAmB,EAAc,EAAE,CAAC,CAAC;IACxE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;QACzB,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,GAAG,CACjB,eAAe,EACf,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC9E,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * This module provides helper functions for working with Confluent Schema Registry.
3
+ * It handles schema registration, serialization, and deserialization of messages
4
+ * using various schema formats (AVRO, JSON, PROTOBUF).
5
+ */
6
+ import { Deserializer, SchemaRegistryClient, SerdeType, Serializer } from "@confluentinc/schemaregistry";
7
+ /**
8
+ * Supported schema types for Confluent Schema Registry.
9
+ * AVRO: Apache Avro binary format with schema evolution support
10
+ * JSON: JSON Schema format with validation
11
+ * PROTOBUF: Protocol Buffers format with backward compatibility
12
+ */
13
+ export type SchemaType = "AVRO" | "JSON" | "PROTOBUF";
14
+ /**
15
+ * Common options for schema registry operations.
16
+ * These options control how schemas are registered and used for serialization.
17
+ */
18
+ export interface SchemaRegistryOptions {
19
+ useSchemaRegistry?: boolean;
20
+ schemaType?: SchemaType;
21
+ schema?: string;
22
+ subject?: string;
23
+ normalize?: boolean;
24
+ }
25
+ /**
26
+ * Options for message serialization/deserialization.
27
+ * Includes the message payload and schema registry configuration.
28
+ */
29
+ export type MessageOptions = {
30
+ message: Buffer | object | string;
31
+ useSchemaRegistry?: boolean;
32
+ schemaType?: SchemaType;
33
+ schema?: string;
34
+ subject?: string;
35
+ normalize?: boolean;
36
+ };
37
+ /**
38
+ * Result of checking if a schema is needed for a message.
39
+ * Can indicate:
40
+ * - A schema is needed and provides the latest schema details
41
+ * - No schema exists and needs to be provided
42
+ * - No schema action is needed
43
+ */
44
+ export type SchemaCheckResult = {
45
+ type: "schema-needed";
46
+ latestSchema: string;
47
+ subject: string;
48
+ schemaType: string;
49
+ } | {
50
+ type: "no-schema";
51
+ subject: string;
52
+ } | null;
53
+ /**
54
+ * Creates and returns the appropriate serializer instance based on schema type.
55
+ * The serializer is configured to use either a specific schema ID or the latest version.
56
+ *
57
+ * @param schemaType - The type of schema (AVRO, JSON, PROTOBUF)
58
+ * @param registry - The schema registry client instance
59
+ * @param serdeType - Whether this is for key or value serialization
60
+ * @param schemaId - Optional schema ID to use for serialization
61
+ * @returns The appropriate Serializer instance
62
+ * @throws Error if the schema type is unknown or unsupported
63
+ */
64
+ export declare function getSerializer(schemaType: SchemaType | undefined, registry: SchemaRegistryClient, serdeType: SerdeType, schemaId?: number): Serializer;
65
+ /**
66
+ * Creates and returns the appropriate deserializer instance based on schema type.
67
+ * The deserializer is configured to handle schema evolution and compatibility.
68
+ *
69
+ * @param schemaType - The type of schema (AVRO, JSON, PROTOBUF)
70
+ * @param registry - The schema registry client instance
71
+ * @param serdeType - Whether this is for key or value deserialization
72
+ * @returns The appropriate Deserializer instance
73
+ * @throws Error if the schema type is unknown or unsupported
74
+ */
75
+ export declare function getDeserializer(schemaType: SchemaType | undefined, registry: SchemaRegistryClient, serdeType: SerdeType): Deserializer;
76
+ /**
77
+ * Checks if a schema is needed for the given message options.
78
+ * This function determines if:
79
+ * 1. A schema is already registered and should be used
80
+ * 2. No schema exists and needs to be provided
81
+ * 3. No schema action is needed
82
+ *
83
+ * @param topicName - The Kafka topic name
84
+ * @param options - The message options including schema, type, and payload
85
+ * @param serdeType - Whether this is for key or value serialization
86
+ * @param registry - The schema registry client instance (if used)
87
+ * @returns An object describing the schema state, or null if no schema action is needed
88
+ */
89
+ export declare function checkSchemaNeeded(topicName: string, options: MessageOptions, serdeType: SerdeType, registry: SchemaRegistryClient | undefined): Promise<SchemaCheckResult>;
90
+ /**
91
+ * Fetches the latest schema string and schema type for a given subject from the schema registry.
92
+ * Handles 404 errors gracefully by returning null when no schema exists.
93
+ *
94
+ * @param registry - The schema registry client instance
95
+ * @param subject - The subject to look up in the registry
96
+ * @returns An object with the latest schema string and schema type, or null if not found
97
+ * @throws Error if there's an unexpected error from the registry
98
+ */
99
+ export declare function getLatestSchemaIfExists(registry: SchemaRegistryClient, subject: string): Promise<{
100
+ schema: string;
101
+ schemaType: SchemaType;
102
+ } | null>;
103
+ /**
104
+ * Serializes a message using the provided options and schema registry configuration.
105
+ * This function:
106
+ * 1. Registers the schema if provided
107
+ * 2. Validates the message type
108
+ * 3. Creates the appropriate serializer
109
+ * 4. Serializes the message
110
+ *
111
+ * @param topicName - The Kafka topic name
112
+ * @param options - The message options including schema, type, and payload
113
+ * @param serdeType - Whether this is for key or value serialization
114
+ * @param registry - The schema registry client instance (if used)
115
+ * @returns The serialized message as a Buffer or string
116
+ * @throws Error if serialization fails, schema registration fails, or message type is invalid
117
+ */
118
+ export declare function serializeMessage(topicName: string, options: MessageOptions, serdeType: SerdeType, registry: SchemaRegistryClient | undefined): Promise<Buffer | string>;
119
+ /**
120
+ * Deserializes a message using Schema Registry.
121
+ * This function:
122
+ * 1. Creates the appropriate deserializer
123
+ * 2. Deserializes the message using the schema from the registry
124
+ *
125
+ * @param topic - The Kafka topic name
126
+ * @param message - The message buffer to deserialize
127
+ * @param schemaType - The schema type (AVRO, JSON, PROTOBUF)
128
+ * @param registry - The schema registry client
129
+ * @param serdeType - Whether this is key or value
130
+ * @returns The deserialized object
131
+ * @throws Error if deserialization fails
132
+ */
133
+ export declare function deserializeMessage(topic: string, message: Buffer, schemaType: SchemaType, registry: SchemaRegistryClient, serdeType: SerdeType): Promise<unknown>;
134
+ //# sourceMappingURL=schema-registry-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-registry-helper.d.ts","sourceRoot":"","sources":["../../src/confluent/schema-registry-helper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,YAAY,EAMZ,oBAAoB,EACpB,SAAS,EACT,UAAU,EAEX,MAAM,8BAA8B,CAAC;AAGtC;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtC,IAAI,CAAC;AAET;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,CAkBZ;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,GACnB,YAAY,CAed;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,iBAAiB,CAAC,CAoB5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GAAG,IAAI,CAAC,CAiB5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,oBAAoB,GAAG,SAAS,GACzC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAgE1B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,OAAO,CAAC,CAOlB"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * This module provides helper functions for working with Confluent Schema Registry.
3
+ * It handles schema registration, serialization, and deserialization of messages
4
+ * using various schema formats (AVRO, JSON, PROTOBUF).
5
+ */
6
+ import { AvroDeserializer, AvroSerializer, JsonDeserializer, JsonSerializer, ProtobufDeserializer, ProtobufSerializer, SerdeType, } from "@confluentinc/schemaregistry";
7
+ import { logger } from "../logger.js";
8
+ /**
9
+ * Creates and returns the appropriate serializer instance based on schema type.
10
+ * The serializer is configured to use either a specific schema ID or the latest version.
11
+ *
12
+ * @param schemaType - The type of schema (AVRO, JSON, PROTOBUF)
13
+ * @param registry - The schema registry client instance
14
+ * @param serdeType - Whether this is for key or value serialization
15
+ * @param schemaId - Optional schema ID to use for serialization
16
+ * @returns The appropriate Serializer instance
17
+ * @throws Error if the schema type is unknown or unsupported
18
+ */
19
+ export function getSerializer(schemaType, registry, serdeType, schemaId) {
20
+ const serializerConfig = typeof schemaId === "number"
21
+ ? { useSchemaId: schemaId }
22
+ : { useLatestVersion: true };
23
+ const serializers = {
24
+ AVRO: () => new AvroSerializer(registry, serdeType, serializerConfig),
25
+ JSON: () => new JsonSerializer(registry, serdeType, serializerConfig),
26
+ PROTOBUF: () => new ProtobufSerializer(registry, serdeType, serializerConfig),
27
+ };
28
+ if (!schemaType || !(schemaType in serializers)) {
29
+ throw new Error(`Unknown schemaType: ${schemaType}`);
30
+ }
31
+ return serializers[schemaType]();
32
+ }
33
+ /**
34
+ * Creates and returns the appropriate deserializer instance based on schema type.
35
+ * The deserializer is configured to handle schema evolution and compatibility.
36
+ *
37
+ * @param schemaType - The type of schema (AVRO, JSON, PROTOBUF)
38
+ * @param registry - The schema registry client instance
39
+ * @param serdeType - Whether this is for key or value deserialization
40
+ * @returns The appropriate Deserializer instance
41
+ * @throws Error if the schema type is unknown or unsupported
42
+ */
43
+ export function getDeserializer(schemaType, registry, serdeType) {
44
+ const deserializerConfig = {};
45
+ const deserializers = {
46
+ AVRO: () => new AvroDeserializer(registry, serdeType, deserializerConfig),
47
+ JSON: () => new JsonDeserializer(registry, serdeType, deserializerConfig),
48
+ PROTOBUF: () => new ProtobufDeserializer(registry, serdeType, deserializerConfig),
49
+ };
50
+ if (!schemaType || !(schemaType in deserializers)) {
51
+ throw new Error(`Unknown schemaType: ${schemaType}`);
52
+ }
53
+ return deserializers[schemaType]();
54
+ }
55
+ /**
56
+ * Checks if a schema is needed for the given message options.
57
+ * This function determines if:
58
+ * 1. A schema is already registered and should be used
59
+ * 2. No schema exists and needs to be provided
60
+ * 3. No schema action is needed
61
+ *
62
+ * @param topicName - The Kafka topic name
63
+ * @param options - The message options including schema, type, and payload
64
+ * @param serdeType - Whether this is for key or value serialization
65
+ * @param registry - The schema registry client instance (if used)
66
+ * @returns An object describing the schema state, or null if no schema action is needed
67
+ */
68
+ export async function checkSchemaNeeded(topicName, options, serdeType, registry) {
69
+ if (options.useSchemaRegistry && !options.schema) {
70
+ const subject = options.subject ||
71
+ `${topicName}-${serdeType === SerdeType.KEY ? "key" : "value"}`;
72
+ const latest = registry
73
+ ? await getLatestSchemaIfExists(registry, subject)
74
+ : null;
75
+ if (latest) {
76
+ return {
77
+ type: "schema-needed",
78
+ latestSchema: latest.schema,
79
+ subject,
80
+ schemaType: latest.schemaType,
81
+ };
82
+ }
83
+ else {
84
+ return { type: "no-schema", subject };
85
+ }
86
+ }
87
+ return null;
88
+ }
89
+ /**
90
+ * Fetches the latest schema string and schema type for a given subject from the schema registry.
91
+ * Handles 404 errors gracefully by returning null when no schema exists.
92
+ *
93
+ * @param registry - The schema registry client instance
94
+ * @param subject - The subject to look up in the registry
95
+ * @returns An object with the latest schema string and schema type, or null if not found
96
+ * @throws Error if there's an unexpected error from the registry
97
+ */
98
+ export async function getLatestSchemaIfExists(registry, subject) {
99
+ try {
100
+ const latest = await registry.getLatestSchemaMetadata(subject);
101
+ // The docs say that when no schemaType is supplied, it's assumed to be AVRO
102
+ const schemaType = (latest.schemaType || "AVRO");
103
+ return { schema: latest.schema, schemaType };
104
+ }
105
+ catch (err) {
106
+ if (err &&
107
+ typeof err === "object" &&
108
+ "status" in err &&
109
+ err.status === 404) {
110
+ return null;
111
+ }
112
+ throw err;
113
+ }
114
+ }
115
+ /**
116
+ * Serializes a message using the provided options and schema registry configuration.
117
+ * This function:
118
+ * 1. Registers the schema if provided
119
+ * 2. Validates the message type
120
+ * 3. Creates the appropriate serializer
121
+ * 4. Serializes the message
122
+ *
123
+ * @param topicName - The Kafka topic name
124
+ * @param options - The message options including schema, type, and payload
125
+ * @param serdeType - Whether this is for key or value serialization
126
+ * @param registry - The schema registry client instance (if used)
127
+ * @returns The serialized message as a Buffer or string
128
+ * @throws Error if serialization fails, schema registration fails, or message type is invalid
129
+ */
130
+ export async function serializeMessage(topicName, options, serdeType, registry) {
131
+ if (!options.useSchemaRegistry) {
132
+ if (typeof options.message !== "string") {
133
+ logger.warn("Warning: Sending non-string message without schema registry. This may fail if the topic expects a schema.");
134
+ }
135
+ return typeof options.message === "string"
136
+ ? options.message
137
+ : JSON.stringify(options.message);
138
+ }
139
+ if (!options.schemaType) {
140
+ throw new Error("schemaType is required when useSchemaRegistry is true");
141
+ }
142
+ if (!registry) {
143
+ throw new Error("Schema Registry client is required for serialization");
144
+ }
145
+ // Default subject naming
146
+ const subject = options.subject ||
147
+ `${topicName}-${serdeType === SerdeType.KEY ? "key" : "value"}`;
148
+ let schemaId;
149
+ // Register schema if provided
150
+ if (options.schema) {
151
+ try {
152
+ schemaId = await registry.register(subject, {
153
+ schema: options.schema,
154
+ schemaType: options.schemaType,
155
+ }, options.normalize);
156
+ }
157
+ catch (err) {
158
+ throw new Error(`Failed to register schema for subject '${subject}': ${err}`);
159
+ }
160
+ }
161
+ // Validate message type
162
+ if (typeof options.message !== "object" || options.message === null) {
163
+ throw new Error("When using schema registry, message must be an object matching the schema.");
164
+ }
165
+ let serializer;
166
+ try {
167
+ serializer = getSerializer(options.schemaType, registry, serdeType, schemaId);
168
+ }
169
+ catch (err) {
170
+ throw new Error(`Failed to get serializer: ${err}`);
171
+ }
172
+ try {
173
+ return await serializer.serialize(topicName, options.message);
174
+ }
175
+ catch (err) {
176
+ throw new Error(`Failed to serialize message for subject '${subject}': ${err}`);
177
+ }
178
+ }
179
+ /**
180
+ * Deserializes a message using Schema Registry.
181
+ * This function:
182
+ * 1. Creates the appropriate deserializer
183
+ * 2. Deserializes the message using the schema from the registry
184
+ *
185
+ * @param topic - The Kafka topic name
186
+ * @param message - The message buffer to deserialize
187
+ * @param schemaType - The schema type (AVRO, JSON, PROTOBUF)
188
+ * @param registry - The schema registry client
189
+ * @param serdeType - Whether this is key or value
190
+ * @returns The deserialized object
191
+ * @throws Error if deserialization fails
192
+ */
193
+ export async function deserializeMessage(topic, message, schemaType, registry, serdeType) {
194
+ try {
195
+ const deserializer = getDeserializer(schemaType, registry, serdeType);
196
+ return await deserializer.deserialize(topic, message);
197
+ }
198
+ catch (err) {
199
+ throw new Error(`Failed to deserialize message: ${err}`);
200
+ }
201
+ }
202
+ //# sourceMappingURL=schema-registry-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-registry-helper.js","sourceRoot":"","sources":["../../src/confluent/schema-registry-helper.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/confluent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAErB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/confluent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -1,4 +1,2 @@
1
- import { ToolSchema, } from "@modelcontextprotocol/sdk/types.js";
2
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
3
- const ToolInputSchema = ToolSchema.shape.inputSchema;
1
+ export {};
4
2
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/confluent/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,GACX,MAAM,oCAAoC,CAAC;AAK5C,6DAA6D;AAC7D,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/confluent/schema.ts"],"names":[],"mappings":""}
@@ -1,10 +1,38 @@
1
1
  import { ClientManager } from "../../confluent/client-manager.js";
2
2
  import { CallToolResult } from "../../confluent/schema.js";
3
3
  import { ToolName } from "../../confluent/tools/tool-name.js";
4
+ import { EnvVar } from "../../env-schema.js";
4
5
  import { ZodRawShape } from "zod";
5
6
  export interface ToolHandler {
6
- handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined): Promise<CallToolResult> | CallToolResult;
7
+ handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
7
8
  getToolConfig(): ToolConfig;
9
+ /**
10
+ * Returns an array of environment variables required for this tool to function.
11
+ *
12
+ * This method is used to conditionally enable/disable tools based on the availability
13
+ * of required environment variables. Tools will be disabled if any of their required
14
+ * environment variables are not set.
15
+ *
16
+ *
17
+ * Example:
18
+ * ```typescript
19
+ * getRequiredEnvVars(): EnvVar[] {
20
+ * return [
21
+ * "KAFKA_API_KEY",
22
+ * "KAFKA_API_SECRET",
23
+ * "BOOTSTRAP_SERVERS"
24
+ * ];
25
+ * }
26
+ * ```
27
+ *
28
+ * @returns Array of environment variable names required by this tool
29
+ */
30
+ getRequiredEnvVars(): EnvVar[];
31
+ /**
32
+ * Returns true if this tool can only be used with Confluent Cloud REST APIs.
33
+ * Override in subclasses for cloud-only tools.
34
+ */
35
+ isConfluentCloudOnly(): boolean;
8
36
  }
9
37
  export interface ToolConfig {
10
38
  name: ToolName;
@@ -12,8 +40,21 @@ export interface ToolConfig {
12
40
  inputSchema: ZodRawShape;
13
41
  }
14
42
  export declare abstract class BaseToolHandler implements ToolHandler {
15
- abstract handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined): Promise<CallToolResult> | CallToolResult;
43
+ abstract handle(clientManager: ClientManager, toolArguments: Record<string, unknown> | undefined, sessionId?: string): Promise<CallToolResult> | CallToolResult;
16
44
  abstract getToolConfig(): ToolConfig;
45
+ /**
46
+ * Default implementation that returns an empty array, indicating no environment
47
+ * variables are required. Override this method in your tool handler if the tool
48
+ * requires specific environment variables to function.
49
+ *
50
+ * @returns Empty array by default
51
+ */
52
+ getRequiredEnvVars(): EnvVar[];
53
+ /**
54
+ * Default implementation returns false, indicating the tool is not Confluent Cloud only.
55
+ * Override in subclasses for cloud-only tools.
56
+ */
57
+ isConfluentCloudOnly(): boolean;
17
58
  createResponse(message: string, isError?: boolean, _meta?: Record<string, unknown>): CallToolResult;
18
59
  }
19
60
  //# sourceMappingURL=base-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-tools.d.ts","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC,MAAM,WAAW,WAAW;IAC1B,MAAM,CACJ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;IAE5C,aAAa,IAAI,UAAU,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,8BAAsB,eAAgB,YAAW,WAAW;IAC1D,QAAQ,CAAC,MAAM,CACb,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAE3C,QAAQ,CAAC,aAAa,IAAI,UAAU;IAEpC,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,EACxB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,cAAc;CAalB"}
1
+ {"version":3,"file":"base-tools.d.ts","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAElC,MAAM,WAAW,WAAW;IAC1B,MAAM,CACJ,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;IAE5C,aAAa,IAAI,UAAU,CAAC;IAE5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,oBAAoB,IAAI,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,8BAAsB,eAAgB,YAAW,WAAW;IAC1D,QAAQ,CAAC,MAAM,CACb,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAClD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAE3C,QAAQ,CAAC,aAAa,IAAI,UAAU;IAEpC;;;;;;OAMG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;;OAGG;IACH,oBAAoB,IAAI,OAAO;IAI/B,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,EACxB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,cAAc;CAalB"}
@@ -1,4 +1,21 @@
1
1
  export class BaseToolHandler {
2
+ /**
3
+ * Default implementation that returns an empty array, indicating no environment
4
+ * variables are required. Override this method in your tool handler if the tool
5
+ * requires specific environment variables to function.
6
+ *
7
+ * @returns Empty array by default
8
+ */
9
+ getRequiredEnvVars() {
10
+ return [];
11
+ }
12
+ /**
13
+ * Default implementation returns false, indicating the tool is not Confluent Cloud only.
14
+ * Override in subclasses for cloud-only tools.
15
+ */
16
+ isConfluentCloudOnly() {
17
+ return false;
18
+ }
2
19
  createResponse(message, isError = false, _meta) {
3
20
  const response = {
4
21
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"base-tools.js","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"AAmBA,MAAM,OAAgB,eAAe;IAQnC,cAAc,CACZ,OAAe,EACf,UAAmB,KAAK,EACxB,KAA+B;QAE/B,MAAM,QAAQ,GAAmB;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;iBACd;aACF;YACD,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,KAAK;SACb,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
1
+ {"version":3,"file":"base-tools.js","sourceRoot":"","sources":["../../../src/confluent/tools/base-tools.ts"],"names":[],"mappings":"AAmDA,MAAM,OAAgB,eAAe;IASnC;;;;;;OAMG;IACH,kBAAkB;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,oBAAoB;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc,CACZ,OAAe,EACf,UAAmB,KAAK,EACxB,KAA+B;QAE/B,MAAM,QAAQ,GAAmB;YAC/B,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO;iBACd;aACF;YACD,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,KAAK;SACb,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
@@ -1,8 +1,11 @@
1
1
  import { ClientManager } from "../../../../confluent/client-manager.js";
2
2
  import { CallToolResult } from "../../../../confluent/schema.js";
3
3
  import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
4
+ import { EnvVar } from "../../../../env-schema.js";
4
5
  export declare class AddTagToTopicHandler extends BaseToolHandler {
5
6
  handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
6
7
  getToolConfig(): ToolConfig;
8
+ getRequiredEnvVars(): EnvVar[];
9
+ isConfluentCloudOnly(): boolean;
7
10
  }
8
11
  //# sourceMappingURL=add-tags-to-topic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-tags-to-topic.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/catalog/add-tags-to-topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AA6B5C,qBAAa,oBAAqB,SAAQ,eAAe;IACjD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IA6B1B,aAAa,IAAI,UAAU;CAO5B"}
1
+ {"version":3,"file":"add-tags-to-topic.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/catalog/add-tags-to-topic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA4B5C,qBAAa,oBAAqB,SAAQ,eAAe;IACjD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IA6B1B,aAAa,IAAI,UAAU;IAQ3B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,oBAAoB,IAAI,OAAO;CAGhC"}
@@ -8,7 +8,7 @@ const addTagToTopicArguments = z.object({
8
8
  .string()
9
9
  .describe("The base URL of the Schema Registry REST API.")
10
10
  .url()
11
- .default(env.SCHEMA_REGISTRY_ENDPOINT ?? "")
11
+ .default(() => env.SCHEMA_REGISTRY_ENDPOINT ?? "")
12
12
  .optional(),
13
13
  tagAssignments: z
14
14
  .array(z.object({
@@ -43,5 +43,11 @@ export class AddTagToTopicHandler extends BaseToolHandler {
43
43
  inputSchema: addTagToTopicArguments.shape,
44
44
  };
45
45
  }
46
+ getRequiredEnvVars() {
47
+ return ["SCHEMA_REGISTRY_API_KEY", "SCHEMA_REGISTRY_API_SECRET"];
48
+ }
49
+ isConfluentCloudOnly() {
50
+ return true;
51
+ }
46
52
  }
47
53
  //# sourceMappingURL=add-tags-to-topic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-tags-to-topic.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/catalog/add-tags-to-topic.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;SACzD,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;SAC3C,QAAQ,EAAE;IACb,cAAc,EAAE,CAAC;SACd,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CACP,mFAAmF,QAAQ,CAAC,qBAAqB,oDAAoD,CACtK;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KAC3D,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACvD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAC/B,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,yCAAyC,EAAE,CAC1D,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CACrD,yBAAyB,CAC1B,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,yBAAyB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAChD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CACxB,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,iBAAiB;YAChC,WAAW,EAAE,0DAA0D;YACvE,WAAW,EAAE,sBAAsB,CAAC,KAAK;SAC1C,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"add-tags-to-topic.js","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/catalog/add-tags-to-topic.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,GAEhB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAE7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;SACzD,GAAG,EAAE;SACL,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE,CAAC;SACjD,QAAQ,EAAE;IACb,cAAc,EAAE,CAAC;SACd,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,CACP,mFAAmF,QAAQ,CAAC,qBAAqB,oDAAoD,CACtK;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KAC3D,CAAC,CACH;SACA,QAAQ,EAAE;SACV,QAAQ,CAAC,oCAAoC,CAAC;CAClD,CAAC,CAAC;AAEH,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IACvD,KAAK,CAAC,MAAM,CACV,aAA4B,EAC5B,aAAsC;QAEtC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAC/B,sBAAsB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAE9C,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YAC5C,aAAa,CAAC,uCAAuC,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,CAAC,yCAAyC,EAAE,CAC1D,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CACrD,yBAAyB,CAC1B,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,cAAc;SACrB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,cAAc,CACxB,yBAAyB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAChD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CACxB,8BAA8B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,iBAAiB;YAChC,WAAW,EAAE,0DAA0D;YACvE,WAAW,EAAE,sBAAsB,CAAC,KAAK;SAC1C,CAAC;IACJ,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,yBAAyB,EAAE,4BAA4B,CAAC,CAAC;IACnE,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,8 +1,11 @@
1
1
  import { ClientManager } from "../../../../confluent/client-manager.js";
2
2
  import { CallToolResult } from "../../../../confluent/schema.js";
3
3
  import { BaseToolHandler, ToolConfig } from "../../../../confluent/tools/base-tools.js";
4
+ import { EnvVar } from "../../../../env-schema.js";
4
5
  export declare class CreateTopicTagsHandler extends BaseToolHandler {
5
6
  handle(clientManager: ClientManager, toolArguments: Record<string, unknown>): Promise<CallToolResult>;
6
7
  getToolConfig(): ToolConfig;
8
+ getRequiredEnvVars(): EnvVar[];
9
+ isConfluentCloudOnly(): boolean;
7
10
  }
8
11
  //# sourceMappingURL=create-topic-tags.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-topic-tags.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/catalog/create-topic-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AA2B5C,qBAAa,sBAAuB,SAAQ,eAAe;IACnD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAkC1B,aAAa,IAAI,UAAU;CAO5B"}
1
+ {"version":3,"file":"create-topic-tags.d.ts","sourceRoot":"","sources":["../../../../../src/confluent/tools/handlers/catalog/create-topic-tags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,UAAU,EACX,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA0B5C,qBAAa,sBAAuB,SAAQ,eAAe;IACnD,MAAM,CACV,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,cAAc,CAAC;IAkC1B,aAAa,IAAI,UAAU;IAQ3B,kBAAkB,IAAI,MAAM,EAAE;IAI9B,oBAAoB,IAAI,OAAO;CAGhC"}