@superblocksteam/sdk-api 2.0.89-next.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 (1123) hide show
  1. package/LICENSE.txt +87 -0
  2. package/README.md +1447 -0
  3. package/dist/api/definition.d.ts +138 -0
  4. package/dist/api/definition.d.ts.map +1 -0
  5. package/dist/api/definition.js +74 -0
  6. package/dist/api/definition.js.map +1 -0
  7. package/dist/api/definition.test.d.ts +5 -0
  8. package/dist/api/definition.test.d.ts.map +1 -0
  9. package/dist/api/definition.test.js +210 -0
  10. package/dist/api/definition.test.js.map +1 -0
  11. package/dist/api/index.d.ts +8 -0
  12. package/dist/api/index.d.ts.map +1 -0
  13. package/dist/api/index.js +7 -0
  14. package/dist/api/index.js.map +1 -0
  15. package/dist/api/streaming.d.ts +215 -0
  16. package/dist/api/streaming.d.ts.map +1 -0
  17. package/dist/api/streaming.js +104 -0
  18. package/dist/api/streaming.js.map +1 -0
  19. package/dist/api/streaming.test.d.ts +5 -0
  20. package/dist/api/streaming.test.d.ts.map +1 -0
  21. package/dist/api/streaming.test.js +297 -0
  22. package/dist/api/streaming.test.js.map +1 -0
  23. package/dist/errors.d.ts +131 -0
  24. package/dist/errors.d.ts.map +1 -0
  25. package/dist/errors.js +84 -0
  26. package/dist/errors.js.map +1 -0
  27. package/dist/index.d.ts +108 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +75 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/integrations/airtable/client.d.ts +19 -0
  32. package/dist/integrations/airtable/client.d.ts.map +1 -0
  33. package/dist/integrations/airtable/client.js +18 -0
  34. package/dist/integrations/airtable/client.js.map +1 -0
  35. package/dist/integrations/airtable/index.d.ts +3 -0
  36. package/dist/integrations/airtable/index.d.ts.map +1 -0
  37. package/dist/integrations/airtable/index.js +2 -0
  38. package/dist/integrations/airtable/index.js.map +1 -0
  39. package/dist/integrations/airtable/types.d.ts +32 -0
  40. package/dist/integrations/airtable/types.d.ts.map +1 -0
  41. package/dist/integrations/airtable/types.js +5 -0
  42. package/dist/integrations/airtable/types.js.map +1 -0
  43. package/dist/integrations/anthropic/client.d.ts +19 -0
  44. package/dist/integrations/anthropic/client.d.ts.map +1 -0
  45. package/dist/integrations/anthropic/client.js +18 -0
  46. package/dist/integrations/anthropic/client.js.map +1 -0
  47. package/dist/integrations/anthropic/index.d.ts +3 -0
  48. package/dist/integrations/anthropic/index.d.ts.map +1 -0
  49. package/dist/integrations/anthropic/index.js +2 -0
  50. package/dist/integrations/anthropic/index.js.map +1 -0
  51. package/dist/integrations/anthropic/types.d.ts +77 -0
  52. package/dist/integrations/anthropic/types.d.ts.map +1 -0
  53. package/dist/integrations/anthropic/types.js +5 -0
  54. package/dist/integrations/anthropic/types.js.map +1 -0
  55. package/dist/integrations/asana/client.d.ts +19 -0
  56. package/dist/integrations/asana/client.d.ts.map +1 -0
  57. package/dist/integrations/asana/client.js +18 -0
  58. package/dist/integrations/asana/client.js.map +1 -0
  59. package/dist/integrations/asana/index.d.ts +3 -0
  60. package/dist/integrations/asana/index.d.ts.map +1 -0
  61. package/dist/integrations/asana/index.js +2 -0
  62. package/dist/integrations/asana/index.js.map +1 -0
  63. package/dist/integrations/asana/types.d.ts +32 -0
  64. package/dist/integrations/asana/types.d.ts.map +1 -0
  65. package/dist/integrations/asana/types.js +5 -0
  66. package/dist/integrations/asana/types.js.map +1 -0
  67. package/dist/integrations/athena/client.d.ts +37 -0
  68. package/dist/integrations/athena/client.d.ts.map +1 -0
  69. package/dist/integrations/athena/client.js +95 -0
  70. package/dist/integrations/athena/client.js.map +1 -0
  71. package/dist/integrations/athena/index.d.ts +8 -0
  72. package/dist/integrations/athena/index.d.ts.map +1 -0
  73. package/dist/integrations/athena/index.js +7 -0
  74. package/dist/integrations/athena/index.js.map +1 -0
  75. package/dist/integrations/athena/types.d.ts +53 -0
  76. package/dist/integrations/athena/types.d.ts.map +1 -0
  77. package/dist/integrations/athena/types.js +7 -0
  78. package/dist/integrations/athena/types.js.map +1 -0
  79. package/dist/integrations/base/graphql-integration-client.d.ts +55 -0
  80. package/dist/integrations/base/graphql-integration-client.d.ts.map +1 -0
  81. package/dist/integrations/base/graphql-integration-client.js +87 -0
  82. package/dist/integrations/base/graphql-integration-client.js.map +1 -0
  83. package/dist/integrations/base/index.d.ts +8 -0
  84. package/dist/integrations/base/index.d.ts.map +1 -0
  85. package/dist/integrations/base/index.js +6 -0
  86. package/dist/integrations/base/index.js.map +1 -0
  87. package/dist/integrations/base/rest-api-integration-client.d.ts +76 -0
  88. package/dist/integrations/base/rest-api-integration-client.d.ts.map +1 -0
  89. package/dist/integrations/base/rest-api-integration-client.js +221 -0
  90. package/dist/integrations/base/rest-api-integration-client.js.map +1 -0
  91. package/dist/integrations/base/types.d.ts +157 -0
  92. package/dist/integrations/base/types.d.ts.map +1 -0
  93. package/dist/integrations/base/types.js +5 -0
  94. package/dist/integrations/base/types.js.map +1 -0
  95. package/dist/integrations/bigquery/client.d.ts +37 -0
  96. package/dist/integrations/bigquery/client.d.ts.map +1 -0
  97. package/dist/integrations/bigquery/client.js +93 -0
  98. package/dist/integrations/bigquery/client.js.map +1 -0
  99. package/dist/integrations/bigquery/index.d.ts +8 -0
  100. package/dist/integrations/bigquery/index.d.ts.map +1 -0
  101. package/dist/integrations/bigquery/index.js +7 -0
  102. package/dist/integrations/bigquery/index.js.map +1 -0
  103. package/dist/integrations/bigquery/types.d.ts +53 -0
  104. package/dist/integrations/bigquery/types.d.ts.map +1 -0
  105. package/dist/integrations/bigquery/types.js +7 -0
  106. package/dist/integrations/bigquery/types.js.map +1 -0
  107. package/dist/integrations/bitbucket/client.d.ts +19 -0
  108. package/dist/integrations/bitbucket/client.d.ts.map +1 -0
  109. package/dist/integrations/bitbucket/client.js +18 -0
  110. package/dist/integrations/bitbucket/client.js.map +1 -0
  111. package/dist/integrations/bitbucket/index.d.ts +3 -0
  112. package/dist/integrations/bitbucket/index.d.ts.map +1 -0
  113. package/dist/integrations/bitbucket/index.js +2 -0
  114. package/dist/integrations/bitbucket/index.js.map +1 -0
  115. package/dist/integrations/bitbucket/types.d.ts +32 -0
  116. package/dist/integrations/bitbucket/types.d.ts.map +1 -0
  117. package/dist/integrations/bitbucket/types.js +5 -0
  118. package/dist/integrations/bitbucket/types.js.map +1 -0
  119. package/dist/integrations/box/client.d.ts +19 -0
  120. package/dist/integrations/box/client.d.ts.map +1 -0
  121. package/dist/integrations/box/client.js +18 -0
  122. package/dist/integrations/box/client.js.map +1 -0
  123. package/dist/integrations/box/index.d.ts +3 -0
  124. package/dist/integrations/box/index.d.ts.map +1 -0
  125. package/dist/integrations/box/index.js +2 -0
  126. package/dist/integrations/box/index.js.map +1 -0
  127. package/dist/integrations/box/types.d.ts +32 -0
  128. package/dist/integrations/box/types.d.ts.map +1 -0
  129. package/dist/integrations/box/types.js +5 -0
  130. package/dist/integrations/box/types.js.map +1 -0
  131. package/dist/integrations/circleci/client.d.ts +19 -0
  132. package/dist/integrations/circleci/client.d.ts.map +1 -0
  133. package/dist/integrations/circleci/client.js +18 -0
  134. package/dist/integrations/circleci/client.js.map +1 -0
  135. package/dist/integrations/circleci/index.d.ts +3 -0
  136. package/dist/integrations/circleci/index.d.ts.map +1 -0
  137. package/dist/integrations/circleci/index.js +2 -0
  138. package/dist/integrations/circleci/index.js.map +1 -0
  139. package/dist/integrations/circleci/types.d.ts +32 -0
  140. package/dist/integrations/circleci/types.d.ts.map +1 -0
  141. package/dist/integrations/circleci/types.js +5 -0
  142. package/dist/integrations/circleci/types.js.map +1 -0
  143. package/dist/integrations/cockroachdb/client.d.ts +37 -0
  144. package/dist/integrations/cockroachdb/client.d.ts.map +1 -0
  145. package/dist/integrations/cockroachdb/client.js +93 -0
  146. package/dist/integrations/cockroachdb/client.js.map +1 -0
  147. package/dist/integrations/cockroachdb/index.d.ts +8 -0
  148. package/dist/integrations/cockroachdb/index.d.ts.map +1 -0
  149. package/dist/integrations/cockroachdb/index.js +7 -0
  150. package/dist/integrations/cockroachdb/index.js.map +1 -0
  151. package/dist/integrations/cockroachdb/types.d.ts +53 -0
  152. package/dist/integrations/cockroachdb/types.d.ts.map +1 -0
  153. package/dist/integrations/cockroachdb/types.js +7 -0
  154. package/dist/integrations/cockroachdb/types.js.map +1 -0
  155. package/dist/integrations/cohere/client.d.ts +19 -0
  156. package/dist/integrations/cohere/client.d.ts.map +1 -0
  157. package/dist/integrations/cohere/client.js +18 -0
  158. package/dist/integrations/cohere/client.js.map +1 -0
  159. package/dist/integrations/cohere/index.d.ts +3 -0
  160. package/dist/integrations/cohere/index.d.ts.map +1 -0
  161. package/dist/integrations/cohere/index.js +2 -0
  162. package/dist/integrations/cohere/index.js.map +1 -0
  163. package/dist/integrations/cohere/types.d.ts +32 -0
  164. package/dist/integrations/cohere/types.d.ts.map +1 -0
  165. package/dist/integrations/cohere/types.js +5 -0
  166. package/dist/integrations/cohere/types.js.map +1 -0
  167. package/dist/integrations/confluence/client.d.ts +19 -0
  168. package/dist/integrations/confluence/client.d.ts.map +1 -0
  169. package/dist/integrations/confluence/client.js +18 -0
  170. package/dist/integrations/confluence/client.js.map +1 -0
  171. package/dist/integrations/confluence/index.d.ts +3 -0
  172. package/dist/integrations/confluence/index.d.ts.map +1 -0
  173. package/dist/integrations/confluence/index.js +2 -0
  174. package/dist/integrations/confluence/index.js.map +1 -0
  175. package/dist/integrations/confluence/types.d.ts +32 -0
  176. package/dist/integrations/confluence/types.d.ts.map +1 -0
  177. package/dist/integrations/confluence/types.js +5 -0
  178. package/dist/integrations/confluence/types.js.map +1 -0
  179. package/dist/integrations/cosmosdb/client.d.ts +39 -0
  180. package/dist/integrations/cosmosdb/client.d.ts.map +1 -0
  181. package/dist/integrations/cosmosdb/client.js +163 -0
  182. package/dist/integrations/cosmosdb/client.js.map +1 -0
  183. package/dist/integrations/cosmosdb/index.d.ts +8 -0
  184. package/dist/integrations/cosmosdb/index.d.ts.map +1 -0
  185. package/dist/integrations/cosmosdb/index.js +7 -0
  186. package/dist/integrations/cosmosdb/index.js.map +1 -0
  187. package/dist/integrations/cosmosdb/types.d.ts +106 -0
  188. package/dist/integrations/cosmosdb/types.d.ts.map +1 -0
  189. package/dist/integrations/cosmosdb/types.js +5 -0
  190. package/dist/integrations/cosmosdb/types.js.map +1 -0
  191. package/dist/integrations/couchbase/client.d.ts +30 -0
  192. package/dist/integrations/couchbase/client.d.ts.map +1 -0
  193. package/dist/integrations/couchbase/client.js +154 -0
  194. package/dist/integrations/couchbase/client.js.map +1 -0
  195. package/dist/integrations/couchbase/index.d.ts +8 -0
  196. package/dist/integrations/couchbase/index.d.ts.map +1 -0
  197. package/dist/integrations/couchbase/index.js +7 -0
  198. package/dist/integrations/couchbase/index.js.map +1 -0
  199. package/dist/integrations/couchbase/types.d.ts +95 -0
  200. package/dist/integrations/couchbase/types.d.ts.map +1 -0
  201. package/dist/integrations/couchbase/types.js +5 -0
  202. package/dist/integrations/couchbase/types.js.map +1 -0
  203. package/dist/integrations/databricks/client.d.ts +37 -0
  204. package/dist/integrations/databricks/client.d.ts.map +1 -0
  205. package/dist/integrations/databricks/client.js +95 -0
  206. package/dist/integrations/databricks/client.js.map +1 -0
  207. package/dist/integrations/databricks/index.d.ts +8 -0
  208. package/dist/integrations/databricks/index.d.ts.map +1 -0
  209. package/dist/integrations/databricks/index.js +7 -0
  210. package/dist/integrations/databricks/index.js.map +1 -0
  211. package/dist/integrations/databricks/types.d.ts +53 -0
  212. package/dist/integrations/databricks/types.d.ts.map +1 -0
  213. package/dist/integrations/databricks/types.js +7 -0
  214. package/dist/integrations/databricks/types.js.map +1 -0
  215. package/dist/integrations/datadog/client.d.ts +19 -0
  216. package/dist/integrations/datadog/client.d.ts.map +1 -0
  217. package/dist/integrations/datadog/client.js +18 -0
  218. package/dist/integrations/datadog/client.js.map +1 -0
  219. package/dist/integrations/datadog/index.d.ts +3 -0
  220. package/dist/integrations/datadog/index.d.ts.map +1 -0
  221. package/dist/integrations/datadog/index.js +2 -0
  222. package/dist/integrations/datadog/index.js.map +1 -0
  223. package/dist/integrations/datadog/types.d.ts +32 -0
  224. package/dist/integrations/datadog/types.d.ts.map +1 -0
  225. package/dist/integrations/datadog/types.js +5 -0
  226. package/dist/integrations/datadog/types.js.map +1 -0
  227. package/dist/integrations/declarations.d.ts +805 -0
  228. package/dist/integrations/declarations.d.ts.map +1 -0
  229. package/dist/integrations/declarations.js +702 -0
  230. package/dist/integrations/declarations.js.map +1 -0
  231. package/dist/integrations/dropbox/client.d.ts +19 -0
  232. package/dist/integrations/dropbox/client.d.ts.map +1 -0
  233. package/dist/integrations/dropbox/client.js +18 -0
  234. package/dist/integrations/dropbox/client.js.map +1 -0
  235. package/dist/integrations/dropbox/index.d.ts +3 -0
  236. package/dist/integrations/dropbox/index.d.ts.map +1 -0
  237. package/dist/integrations/dropbox/index.js +2 -0
  238. package/dist/integrations/dropbox/index.js.map +1 -0
  239. package/dist/integrations/dropbox/types.d.ts +32 -0
  240. package/dist/integrations/dropbox/types.d.ts.map +1 -0
  241. package/dist/integrations/dropbox/types.js +5 -0
  242. package/dist/integrations/dropbox/types.js.map +1 -0
  243. package/dist/integrations/dynamodb/client.d.ts +54 -0
  244. package/dist/integrations/dynamodb/client.d.ts.map +1 -0
  245. package/dist/integrations/dynamodb/client.js +169 -0
  246. package/dist/integrations/dynamodb/client.js.map +1 -0
  247. package/dist/integrations/dynamodb/index.d.ts +8 -0
  248. package/dist/integrations/dynamodb/index.d.ts.map +1 -0
  249. package/dist/integrations/dynamodb/index.js +7 -0
  250. package/dist/integrations/dynamodb/index.js.map +1 -0
  251. package/dist/integrations/dynamodb/types.d.ts +194 -0
  252. package/dist/integrations/dynamodb/types.d.ts.map +1 -0
  253. package/dist/integrations/dynamodb/types.js +8 -0
  254. package/dist/integrations/dynamodb/types.js.map +1 -0
  255. package/dist/integrations/elasticsearch/client.d.ts +19 -0
  256. package/dist/integrations/elasticsearch/client.d.ts.map +1 -0
  257. package/dist/integrations/elasticsearch/client.js +18 -0
  258. package/dist/integrations/elasticsearch/client.js.map +1 -0
  259. package/dist/integrations/elasticsearch/index.d.ts +3 -0
  260. package/dist/integrations/elasticsearch/index.d.ts.map +1 -0
  261. package/dist/integrations/elasticsearch/index.js +2 -0
  262. package/dist/integrations/elasticsearch/index.js.map +1 -0
  263. package/dist/integrations/elasticsearch/types.d.ts +32 -0
  264. package/dist/integrations/elasticsearch/types.d.ts.map +1 -0
  265. package/dist/integrations/elasticsearch/types.js +5 -0
  266. package/dist/integrations/elasticsearch/types.js.map +1 -0
  267. package/dist/integrations/fireworks/client.d.ts +19 -0
  268. package/dist/integrations/fireworks/client.d.ts.map +1 -0
  269. package/dist/integrations/fireworks/client.js +18 -0
  270. package/dist/integrations/fireworks/client.js.map +1 -0
  271. package/dist/integrations/fireworks/index.d.ts +3 -0
  272. package/dist/integrations/fireworks/index.d.ts.map +1 -0
  273. package/dist/integrations/fireworks/index.js +2 -0
  274. package/dist/integrations/fireworks/index.js.map +1 -0
  275. package/dist/integrations/fireworks/types.d.ts +32 -0
  276. package/dist/integrations/fireworks/types.d.ts.map +1 -0
  277. package/dist/integrations/fireworks/types.js +5 -0
  278. package/dist/integrations/fireworks/types.js.map +1 -0
  279. package/dist/integrations/front/client.d.ts +19 -0
  280. package/dist/integrations/front/client.d.ts.map +1 -0
  281. package/dist/integrations/front/client.js +18 -0
  282. package/dist/integrations/front/client.js.map +1 -0
  283. package/dist/integrations/front/index.d.ts +3 -0
  284. package/dist/integrations/front/index.d.ts.map +1 -0
  285. package/dist/integrations/front/index.js +2 -0
  286. package/dist/integrations/front/index.js.map +1 -0
  287. package/dist/integrations/front/types.d.ts +32 -0
  288. package/dist/integrations/front/types.d.ts.map +1 -0
  289. package/dist/integrations/front/types.js +5 -0
  290. package/dist/integrations/front/types.js.map +1 -0
  291. package/dist/integrations/gcs/client.d.ts +39 -0
  292. package/dist/integrations/gcs/client.d.ts.map +1 -0
  293. package/dist/integrations/gcs/client.js +128 -0
  294. package/dist/integrations/gcs/client.js.map +1 -0
  295. package/dist/integrations/gcs/index.d.ts +8 -0
  296. package/dist/integrations/gcs/index.d.ts.map +1 -0
  297. package/dist/integrations/gcs/index.js +7 -0
  298. package/dist/integrations/gcs/index.js.map +1 -0
  299. package/dist/integrations/gcs/types.d.ts +114 -0
  300. package/dist/integrations/gcs/types.d.ts.map +1 -0
  301. package/dist/integrations/gcs/types.js +5 -0
  302. package/dist/integrations/gcs/types.js.map +1 -0
  303. package/dist/integrations/gemini/client.d.ts +19 -0
  304. package/dist/integrations/gemini/client.d.ts.map +1 -0
  305. package/dist/integrations/gemini/client.js +18 -0
  306. package/dist/integrations/gemini/client.js.map +1 -0
  307. package/dist/integrations/gemini/index.d.ts +3 -0
  308. package/dist/integrations/gemini/index.d.ts.map +1 -0
  309. package/dist/integrations/gemini/index.js +2 -0
  310. package/dist/integrations/gemini/index.js.map +1 -0
  311. package/dist/integrations/gemini/types.d.ts +32 -0
  312. package/dist/integrations/gemini/types.d.ts.map +1 -0
  313. package/dist/integrations/gemini/types.js +5 -0
  314. package/dist/integrations/gemini/types.js.map +1 -0
  315. package/dist/integrations/github/client.d.ts +19 -0
  316. package/dist/integrations/github/client.d.ts.map +1 -0
  317. package/dist/integrations/github/client.js +18 -0
  318. package/dist/integrations/github/client.js.map +1 -0
  319. package/dist/integrations/github/index.d.ts +3 -0
  320. package/dist/integrations/github/index.d.ts.map +1 -0
  321. package/dist/integrations/github/index.js +2 -0
  322. package/dist/integrations/github/index.js.map +1 -0
  323. package/dist/integrations/github/types.d.ts +67 -0
  324. package/dist/integrations/github/types.d.ts.map +1 -0
  325. package/dist/integrations/github/types.js +5 -0
  326. package/dist/integrations/github/types.js.map +1 -0
  327. package/dist/integrations/googleanalytics/client.d.ts +19 -0
  328. package/dist/integrations/googleanalytics/client.d.ts.map +1 -0
  329. package/dist/integrations/googleanalytics/client.js +18 -0
  330. package/dist/integrations/googleanalytics/client.js.map +1 -0
  331. package/dist/integrations/googleanalytics/index.d.ts +3 -0
  332. package/dist/integrations/googleanalytics/index.d.ts.map +1 -0
  333. package/dist/integrations/googleanalytics/index.js +2 -0
  334. package/dist/integrations/googleanalytics/index.js.map +1 -0
  335. package/dist/integrations/googleanalytics/types.d.ts +32 -0
  336. package/dist/integrations/googleanalytics/types.d.ts.map +1 -0
  337. package/dist/integrations/googleanalytics/types.js +5 -0
  338. package/dist/integrations/googleanalytics/types.js.map +1 -0
  339. package/dist/integrations/googledrive/client.d.ts +19 -0
  340. package/dist/integrations/googledrive/client.d.ts.map +1 -0
  341. package/dist/integrations/googledrive/client.js +18 -0
  342. package/dist/integrations/googledrive/client.js.map +1 -0
  343. package/dist/integrations/googledrive/index.d.ts +3 -0
  344. package/dist/integrations/googledrive/index.d.ts.map +1 -0
  345. package/dist/integrations/googledrive/index.js +2 -0
  346. package/dist/integrations/googledrive/index.js.map +1 -0
  347. package/dist/integrations/googledrive/types.d.ts +32 -0
  348. package/dist/integrations/googledrive/types.d.ts.map +1 -0
  349. package/dist/integrations/googledrive/types.js +5 -0
  350. package/dist/integrations/googledrive/types.js.map +1 -0
  351. package/dist/integrations/graphql/client.d.ts +19 -0
  352. package/dist/integrations/graphql/client.d.ts.map +1 -0
  353. package/dist/integrations/graphql/client.js +18 -0
  354. package/dist/integrations/graphql/client.js.map +1 -0
  355. package/dist/integrations/graphql/index.d.ts +3 -0
  356. package/dist/integrations/graphql/index.d.ts.map +1 -0
  357. package/dist/integrations/graphql/index.js +2 -0
  358. package/dist/integrations/graphql/index.js.map +1 -0
  359. package/dist/integrations/graphql/types.d.ts +115 -0
  360. package/dist/integrations/graphql/types.d.ts.map +1 -0
  361. package/dist/integrations/graphql/types.js +5 -0
  362. package/dist/integrations/graphql/types.js.map +1 -0
  363. package/dist/integrations/groq/client.d.ts +19 -0
  364. package/dist/integrations/groq/client.d.ts.map +1 -0
  365. package/dist/integrations/groq/client.js +18 -0
  366. package/dist/integrations/groq/client.js.map +1 -0
  367. package/dist/integrations/groq/index.d.ts +3 -0
  368. package/dist/integrations/groq/index.d.ts.map +1 -0
  369. package/dist/integrations/groq/index.js +2 -0
  370. package/dist/integrations/groq/index.js.map +1 -0
  371. package/dist/integrations/groq/types.d.ts +32 -0
  372. package/dist/integrations/groq/types.d.ts.map +1 -0
  373. package/dist/integrations/groq/types.js +5 -0
  374. package/dist/integrations/groq/types.js.map +1 -0
  375. package/dist/integrations/gsheets/client.d.ts +22 -0
  376. package/dist/integrations/gsheets/client.d.ts.map +1 -0
  377. package/dist/integrations/gsheets/client.js +94 -0
  378. package/dist/integrations/gsheets/client.js.map +1 -0
  379. package/dist/integrations/gsheets/index.d.ts +8 -0
  380. package/dist/integrations/gsheets/index.d.ts.map +1 -0
  381. package/dist/integrations/gsheets/index.js +7 -0
  382. package/dist/integrations/gsheets/index.js.map +1 -0
  383. package/dist/integrations/gsheets/types.d.ts +86 -0
  384. package/dist/integrations/gsheets/types.d.ts.map +1 -0
  385. package/dist/integrations/gsheets/types.js +5 -0
  386. package/dist/integrations/gsheets/types.js.map +1 -0
  387. package/dist/integrations/hubspot/client.d.ts +19 -0
  388. package/dist/integrations/hubspot/client.d.ts.map +1 -0
  389. package/dist/integrations/hubspot/client.js +18 -0
  390. package/dist/integrations/hubspot/client.js.map +1 -0
  391. package/dist/integrations/hubspot/index.d.ts +3 -0
  392. package/dist/integrations/hubspot/index.d.ts.map +1 -0
  393. package/dist/integrations/hubspot/index.js +2 -0
  394. package/dist/integrations/hubspot/index.js.map +1 -0
  395. package/dist/integrations/hubspot/types.d.ts +32 -0
  396. package/dist/integrations/hubspot/types.d.ts.map +1 -0
  397. package/dist/integrations/hubspot/types.js +5 -0
  398. package/dist/integrations/hubspot/types.js.map +1 -0
  399. package/dist/integrations/index.d.ts +134 -0
  400. package/dist/integrations/index.d.ts.map +1 -0
  401. package/dist/integrations/index.js +78 -0
  402. package/dist/integrations/index.js.map +1 -0
  403. package/dist/integrations/intercom/client.d.ts +19 -0
  404. package/dist/integrations/intercom/client.d.ts.map +1 -0
  405. package/dist/integrations/intercom/client.js +18 -0
  406. package/dist/integrations/intercom/client.js.map +1 -0
  407. package/dist/integrations/intercom/index.d.ts +3 -0
  408. package/dist/integrations/intercom/index.d.ts.map +1 -0
  409. package/dist/integrations/intercom/index.js +2 -0
  410. package/dist/integrations/intercom/index.js.map +1 -0
  411. package/dist/integrations/intercom/types.d.ts +32 -0
  412. package/dist/integrations/intercom/types.d.ts.map +1 -0
  413. package/dist/integrations/intercom/types.js +5 -0
  414. package/dist/integrations/intercom/types.js.map +1 -0
  415. package/dist/integrations/jira/client.d.ts +19 -0
  416. package/dist/integrations/jira/client.d.ts.map +1 -0
  417. package/dist/integrations/jira/client.js +18 -0
  418. package/dist/integrations/jira/client.js.map +1 -0
  419. package/dist/integrations/jira/index.d.ts +3 -0
  420. package/dist/integrations/jira/index.d.ts.map +1 -0
  421. package/dist/integrations/jira/index.js +2 -0
  422. package/dist/integrations/jira/index.js.map +1 -0
  423. package/dist/integrations/jira/types.d.ts +32 -0
  424. package/dist/integrations/jira/types.d.ts.map +1 -0
  425. package/dist/integrations/jira/types.js +5 -0
  426. package/dist/integrations/jira/types.js.map +1 -0
  427. package/dist/integrations/kafka/client.d.ts +25 -0
  428. package/dist/integrations/kafka/client.d.ts.map +1 -0
  429. package/dist/integrations/kafka/client.js +122 -0
  430. package/dist/integrations/kafka/client.js.map +1 -0
  431. package/dist/integrations/kafka/index.d.ts +8 -0
  432. package/dist/integrations/kafka/index.d.ts.map +1 -0
  433. package/dist/integrations/kafka/index.js +7 -0
  434. package/dist/integrations/kafka/index.js.map +1 -0
  435. package/dist/integrations/kafka/types.d.ts +110 -0
  436. package/dist/integrations/kafka/types.d.ts.map +1 -0
  437. package/dist/integrations/kafka/types.js +5 -0
  438. package/dist/integrations/kafka/types.js.map +1 -0
  439. package/dist/integrations/kinesis/client.d.ts +31 -0
  440. package/dist/integrations/kinesis/client.d.ts.map +1 -0
  441. package/dist/integrations/kinesis/client.js +101 -0
  442. package/dist/integrations/kinesis/client.js.map +1 -0
  443. package/dist/integrations/kinesis/index.d.ts +8 -0
  444. package/dist/integrations/kinesis/index.d.ts.map +1 -0
  445. package/dist/integrations/kinesis/index.js +7 -0
  446. package/dist/integrations/kinesis/index.js.map +1 -0
  447. package/dist/integrations/kinesis/types.d.ts +94 -0
  448. package/dist/integrations/kinesis/types.d.ts.map +1 -0
  449. package/dist/integrations/kinesis/types.js +7 -0
  450. package/dist/integrations/kinesis/types.js.map +1 -0
  451. package/dist/integrations/lakebase/client.d.ts +36 -0
  452. package/dist/integrations/lakebase/client.d.ts.map +1 -0
  453. package/dist/integrations/lakebase/client.js +90 -0
  454. package/dist/integrations/lakebase/client.js.map +1 -0
  455. package/dist/integrations/lakebase/index.d.ts +8 -0
  456. package/dist/integrations/lakebase/index.d.ts.map +1 -0
  457. package/dist/integrations/lakebase/index.js +7 -0
  458. package/dist/integrations/lakebase/index.js.map +1 -0
  459. package/dist/integrations/lakebase/types.d.ts +51 -0
  460. package/dist/integrations/lakebase/types.d.ts.map +1 -0
  461. package/dist/integrations/lakebase/types.js +8 -0
  462. package/dist/integrations/lakebase/types.js.map +1 -0
  463. package/dist/integrations/launchdarkly/client.d.ts +19 -0
  464. package/dist/integrations/launchdarkly/client.d.ts.map +1 -0
  465. package/dist/integrations/launchdarkly/client.js +18 -0
  466. package/dist/integrations/launchdarkly/client.js.map +1 -0
  467. package/dist/integrations/launchdarkly/index.d.ts +3 -0
  468. package/dist/integrations/launchdarkly/index.d.ts.map +1 -0
  469. package/dist/integrations/launchdarkly/index.js +2 -0
  470. package/dist/integrations/launchdarkly/index.js.map +1 -0
  471. package/dist/integrations/launchdarkly/types.d.ts +32 -0
  472. package/dist/integrations/launchdarkly/types.d.ts.map +1 -0
  473. package/dist/integrations/launchdarkly/types.js +5 -0
  474. package/dist/integrations/launchdarkly/types.js.map +1 -0
  475. package/dist/integrations/mariadb/client.d.ts +37 -0
  476. package/dist/integrations/mariadb/client.d.ts.map +1 -0
  477. package/dist/integrations/mariadb/client.js +93 -0
  478. package/dist/integrations/mariadb/client.js.map +1 -0
  479. package/dist/integrations/mariadb/index.d.ts +8 -0
  480. package/dist/integrations/mariadb/index.d.ts.map +1 -0
  481. package/dist/integrations/mariadb/index.js +7 -0
  482. package/dist/integrations/mariadb/index.js.map +1 -0
  483. package/dist/integrations/mariadb/types.d.ts +53 -0
  484. package/dist/integrations/mariadb/types.d.ts.map +1 -0
  485. package/dist/integrations/mariadb/types.js +7 -0
  486. package/dist/integrations/mariadb/types.js.map +1 -0
  487. package/dist/integrations/mistral/client.d.ts +19 -0
  488. package/dist/integrations/mistral/client.d.ts.map +1 -0
  489. package/dist/integrations/mistral/client.js +18 -0
  490. package/dist/integrations/mistral/client.js.map +1 -0
  491. package/dist/integrations/mistral/index.d.ts +3 -0
  492. package/dist/integrations/mistral/index.d.ts.map +1 -0
  493. package/dist/integrations/mistral/index.js +2 -0
  494. package/dist/integrations/mistral/index.js.map +1 -0
  495. package/dist/integrations/mistral/types.d.ts +32 -0
  496. package/dist/integrations/mistral/types.d.ts.map +1 -0
  497. package/dist/integrations/mistral/types.js +5 -0
  498. package/dist/integrations/mistral/types.js.map +1 -0
  499. package/dist/integrations/mongodb/client.d.ts +22 -0
  500. package/dist/integrations/mongodb/client.d.ts.map +1 -0
  501. package/dist/integrations/mongodb/client.js +95 -0
  502. package/dist/integrations/mongodb/client.js.map +1 -0
  503. package/dist/integrations/mongodb/index.d.ts +8 -0
  504. package/dist/integrations/mongodb/index.d.ts.map +1 -0
  505. package/dist/integrations/mongodb/index.js +7 -0
  506. package/dist/integrations/mongodb/index.js.map +1 -0
  507. package/dist/integrations/mongodb/types.d.ts +81 -0
  508. package/dist/integrations/mongodb/types.d.ts.map +1 -0
  509. package/dist/integrations/mongodb/types.js +5 -0
  510. package/dist/integrations/mongodb/types.js.map +1 -0
  511. package/dist/integrations/mssql/client.d.ts +37 -0
  512. package/dist/integrations/mssql/client.d.ts.map +1 -0
  513. package/dist/integrations/mssql/client.js +93 -0
  514. package/dist/integrations/mssql/client.js.map +1 -0
  515. package/dist/integrations/mssql/index.d.ts +8 -0
  516. package/dist/integrations/mssql/index.d.ts.map +1 -0
  517. package/dist/integrations/mssql/index.js +7 -0
  518. package/dist/integrations/mssql/index.js.map +1 -0
  519. package/dist/integrations/mssql/types.d.ts +53 -0
  520. package/dist/integrations/mssql/types.d.ts.map +1 -0
  521. package/dist/integrations/mssql/types.js +7 -0
  522. package/dist/integrations/mssql/types.js.map +1 -0
  523. package/dist/integrations/mysql/client.d.ts +37 -0
  524. package/dist/integrations/mysql/client.d.ts.map +1 -0
  525. package/dist/integrations/mysql/client.js +93 -0
  526. package/dist/integrations/mysql/client.js.map +1 -0
  527. package/dist/integrations/mysql/index.d.ts +8 -0
  528. package/dist/integrations/mysql/index.d.ts.map +1 -0
  529. package/dist/integrations/mysql/index.js +7 -0
  530. package/dist/integrations/mysql/index.js.map +1 -0
  531. package/dist/integrations/mysql/types.d.ts +77 -0
  532. package/dist/integrations/mysql/types.d.ts.map +1 -0
  533. package/dist/integrations/mysql/types.js +7 -0
  534. package/dist/integrations/mysql/types.js.map +1 -0
  535. package/dist/integrations/notion/client.d.ts +19 -0
  536. package/dist/integrations/notion/client.d.ts.map +1 -0
  537. package/dist/integrations/notion/client.js +18 -0
  538. package/dist/integrations/notion/client.js.map +1 -0
  539. package/dist/integrations/notion/index.d.ts +3 -0
  540. package/dist/integrations/notion/index.d.ts.map +1 -0
  541. package/dist/integrations/notion/index.js +2 -0
  542. package/dist/integrations/notion/index.js.map +1 -0
  543. package/dist/integrations/notion/types.d.ts +69 -0
  544. package/dist/integrations/notion/types.d.ts.map +1 -0
  545. package/dist/integrations/notion/types.js +5 -0
  546. package/dist/integrations/notion/types.js.map +1 -0
  547. package/dist/integrations/openai_v2/client.d.ts +19 -0
  548. package/dist/integrations/openai_v2/client.d.ts.map +1 -0
  549. package/dist/integrations/openai_v2/client.js +18 -0
  550. package/dist/integrations/openai_v2/client.js.map +1 -0
  551. package/dist/integrations/openai_v2/index.d.ts +3 -0
  552. package/dist/integrations/openai_v2/index.d.ts.map +1 -0
  553. package/dist/integrations/openai_v2/index.js +2 -0
  554. package/dist/integrations/openai_v2/index.js.map +1 -0
  555. package/dist/integrations/openai_v2/types.d.ts +75 -0
  556. package/dist/integrations/openai_v2/types.d.ts.map +1 -0
  557. package/dist/integrations/openai_v2/types.js +5 -0
  558. package/dist/integrations/openai_v2/types.js.map +1 -0
  559. package/dist/integrations/oracledb/client.d.ts +37 -0
  560. package/dist/integrations/oracledb/client.d.ts.map +1 -0
  561. package/dist/integrations/oracledb/client.js +95 -0
  562. package/dist/integrations/oracledb/client.js.map +1 -0
  563. package/dist/integrations/oracledb/index.d.ts +8 -0
  564. package/dist/integrations/oracledb/index.d.ts.map +1 -0
  565. package/dist/integrations/oracledb/index.js +7 -0
  566. package/dist/integrations/oracledb/index.js.map +1 -0
  567. package/dist/integrations/oracledb/types.d.ts +53 -0
  568. package/dist/integrations/oracledb/types.d.ts.map +1 -0
  569. package/dist/integrations/oracledb/types.js +7 -0
  570. package/dist/integrations/oracledb/types.js.map +1 -0
  571. package/dist/integrations/pagerduty/client.d.ts +19 -0
  572. package/dist/integrations/pagerduty/client.d.ts.map +1 -0
  573. package/dist/integrations/pagerduty/client.js +18 -0
  574. package/dist/integrations/pagerduty/client.js.map +1 -0
  575. package/dist/integrations/pagerduty/index.d.ts +3 -0
  576. package/dist/integrations/pagerduty/index.d.ts.map +1 -0
  577. package/dist/integrations/pagerduty/index.js +2 -0
  578. package/dist/integrations/pagerduty/index.js.map +1 -0
  579. package/dist/integrations/pagerduty/types.d.ts +32 -0
  580. package/dist/integrations/pagerduty/types.d.ts.map +1 -0
  581. package/dist/integrations/pagerduty/types.js +5 -0
  582. package/dist/integrations/pagerduty/types.js.map +1 -0
  583. package/dist/integrations/perplexity/client.d.ts +19 -0
  584. package/dist/integrations/perplexity/client.d.ts.map +1 -0
  585. package/dist/integrations/perplexity/client.js +18 -0
  586. package/dist/integrations/perplexity/client.js.map +1 -0
  587. package/dist/integrations/perplexity/index.d.ts +3 -0
  588. package/dist/integrations/perplexity/index.d.ts.map +1 -0
  589. package/dist/integrations/perplexity/index.js +2 -0
  590. package/dist/integrations/perplexity/index.js.map +1 -0
  591. package/dist/integrations/perplexity/types.d.ts +32 -0
  592. package/dist/integrations/perplexity/types.d.ts.map +1 -0
  593. package/dist/integrations/perplexity/types.js +5 -0
  594. package/dist/integrations/perplexity/types.js.map +1 -0
  595. package/dist/integrations/postgres/client.d.ts +49 -0
  596. package/dist/integrations/postgres/client.d.ts.map +1 -0
  597. package/dist/integrations/postgres/client.js +96 -0
  598. package/dist/integrations/postgres/client.js.map +1 -0
  599. package/dist/integrations/postgres/index.d.ts +6 -0
  600. package/dist/integrations/postgres/index.d.ts.map +1 -0
  601. package/dist/integrations/postgres/index.js +5 -0
  602. package/dist/integrations/postgres/index.js.map +1 -0
  603. package/dist/integrations/postgres/types.d.ts +95 -0
  604. package/dist/integrations/postgres/types.d.ts.map +1 -0
  605. package/dist/integrations/postgres/types.js +5 -0
  606. package/dist/integrations/postgres/types.js.map +1 -0
  607. package/dist/integrations/python/client.d.ts +42 -0
  608. package/dist/integrations/python/client.d.ts.map +1 -0
  609. package/dist/integrations/python/client.js +89 -0
  610. package/dist/integrations/python/client.js.map +1 -0
  611. package/dist/integrations/python/client.test.d.ts +5 -0
  612. package/dist/integrations/python/client.test.d.ts.map +1 -0
  613. package/dist/integrations/python/client.test.js +197 -0
  614. package/dist/integrations/python/client.test.js.map +1 -0
  615. package/dist/integrations/python/index.d.ts +6 -0
  616. package/dist/integrations/python/index.d.ts.map +1 -0
  617. package/dist/integrations/python/index.js +5 -0
  618. package/dist/integrations/python/index.js.map +1 -0
  619. package/dist/integrations/python/types.d.ts +68 -0
  620. package/dist/integrations/python/types.d.ts.map +1 -0
  621. package/dist/integrations/python/types.js +5 -0
  622. package/dist/integrations/python/types.js.map +1 -0
  623. package/dist/integrations/redis/client.d.ts +43 -0
  624. package/dist/integrations/redis/client.d.ts.map +1 -0
  625. package/dist/integrations/redis/client.js +135 -0
  626. package/dist/integrations/redis/client.js.map +1 -0
  627. package/dist/integrations/redis/index.d.ts +8 -0
  628. package/dist/integrations/redis/index.d.ts.map +1 -0
  629. package/dist/integrations/redis/index.js +7 -0
  630. package/dist/integrations/redis/index.js.map +1 -0
  631. package/dist/integrations/redis/types.d.ts +125 -0
  632. package/dist/integrations/redis/types.d.ts.map +1 -0
  633. package/dist/integrations/redis/types.js +5 -0
  634. package/dist/integrations/redis/types.js.map +1 -0
  635. package/dist/integrations/redshift/client.d.ts +37 -0
  636. package/dist/integrations/redshift/client.d.ts.map +1 -0
  637. package/dist/integrations/redshift/client.js +93 -0
  638. package/dist/integrations/redshift/client.js.map +1 -0
  639. package/dist/integrations/redshift/index.d.ts +8 -0
  640. package/dist/integrations/redshift/index.d.ts.map +1 -0
  641. package/dist/integrations/redshift/index.js +7 -0
  642. package/dist/integrations/redshift/index.js.map +1 -0
  643. package/dist/integrations/redshift/types.d.ts +53 -0
  644. package/dist/integrations/redshift/types.d.ts.map +1 -0
  645. package/dist/integrations/redshift/types.js +7 -0
  646. package/dist/integrations/redshift/types.js.map +1 -0
  647. package/dist/integrations/registry.d.ts +147 -0
  648. package/dist/integrations/registry.d.ts.map +1 -0
  649. package/dist/integrations/registry.js +317 -0
  650. package/dist/integrations/registry.js.map +1 -0
  651. package/dist/integrations/s3/client.d.ts +39 -0
  652. package/dist/integrations/s3/client.d.ts.map +1 -0
  653. package/dist/integrations/s3/client.js +131 -0
  654. package/dist/integrations/s3/client.js.map +1 -0
  655. package/dist/integrations/s3/index.d.ts +8 -0
  656. package/dist/integrations/s3/index.d.ts.map +1 -0
  657. package/dist/integrations/s3/index.js +7 -0
  658. package/dist/integrations/s3/index.js.map +1 -0
  659. package/dist/integrations/s3/types.d.ts +116 -0
  660. package/dist/integrations/s3/types.d.ts.map +1 -0
  661. package/dist/integrations/s3/types.js +5 -0
  662. package/dist/integrations/s3/types.js.map +1 -0
  663. package/dist/integrations/salesforce/client.d.ts +42 -0
  664. package/dist/integrations/salesforce/client.d.ts.map +1 -0
  665. package/dist/integrations/salesforce/client.js +173 -0
  666. package/dist/integrations/salesforce/client.js.map +1 -0
  667. package/dist/integrations/salesforce/index.d.ts +8 -0
  668. package/dist/integrations/salesforce/index.d.ts.map +1 -0
  669. package/dist/integrations/salesforce/index.js +7 -0
  670. package/dist/integrations/salesforce/index.js.map +1 -0
  671. package/dist/integrations/salesforce/types.d.ts +125 -0
  672. package/dist/integrations/salesforce/types.d.ts.map +1 -0
  673. package/dist/integrations/salesforce/types.js +5 -0
  674. package/dist/integrations/salesforce/types.js.map +1 -0
  675. package/dist/integrations/segment/client.d.ts +19 -0
  676. package/dist/integrations/segment/client.d.ts.map +1 -0
  677. package/dist/integrations/segment/client.js +18 -0
  678. package/dist/integrations/segment/client.js.map +1 -0
  679. package/dist/integrations/segment/index.d.ts +3 -0
  680. package/dist/integrations/segment/index.d.ts.map +1 -0
  681. package/dist/integrations/segment/index.js +2 -0
  682. package/dist/integrations/segment/index.js.map +1 -0
  683. package/dist/integrations/segment/types.d.ts +32 -0
  684. package/dist/integrations/segment/types.d.ts.map +1 -0
  685. package/dist/integrations/segment/types.js +5 -0
  686. package/dist/integrations/segment/types.js.map +1 -0
  687. package/dist/integrations/sendgrid/client.d.ts +19 -0
  688. package/dist/integrations/sendgrid/client.d.ts.map +1 -0
  689. package/dist/integrations/sendgrid/client.js +18 -0
  690. package/dist/integrations/sendgrid/client.js.map +1 -0
  691. package/dist/integrations/sendgrid/index.d.ts +3 -0
  692. package/dist/integrations/sendgrid/index.d.ts.map +1 -0
  693. package/dist/integrations/sendgrid/index.js +2 -0
  694. package/dist/integrations/sendgrid/index.js.map +1 -0
  695. package/dist/integrations/sendgrid/types.d.ts +32 -0
  696. package/dist/integrations/sendgrid/types.d.ts.map +1 -0
  697. package/dist/integrations/sendgrid/types.js +5 -0
  698. package/dist/integrations/sendgrid/types.js.map +1 -0
  699. package/dist/integrations/slack/client.d.ts +19 -0
  700. package/dist/integrations/slack/client.d.ts.map +1 -0
  701. package/dist/integrations/slack/client.js +18 -0
  702. package/dist/integrations/slack/client.js.map +1 -0
  703. package/dist/integrations/slack/index.d.ts +6 -0
  704. package/dist/integrations/slack/index.d.ts.map +1 -0
  705. package/dist/integrations/slack/index.js +5 -0
  706. package/dist/integrations/slack/index.js.map +1 -0
  707. package/dist/integrations/slack/types.d.ts +54 -0
  708. package/dist/integrations/slack/types.d.ts.map +1 -0
  709. package/dist/integrations/slack/types.js +5 -0
  710. package/dist/integrations/slack/types.js.map +1 -0
  711. package/dist/integrations/smtp/client.d.ts +24 -0
  712. package/dist/integrations/smtp/client.d.ts.map +1 -0
  713. package/dist/integrations/smtp/client.js +49 -0
  714. package/dist/integrations/smtp/client.js.map +1 -0
  715. package/dist/integrations/smtp/index.d.ts +8 -0
  716. package/dist/integrations/smtp/index.d.ts.map +1 -0
  717. package/dist/integrations/smtp/index.js +7 -0
  718. package/dist/integrations/smtp/index.js.map +1 -0
  719. package/dist/integrations/smtp/types.d.ts +55 -0
  720. package/dist/integrations/smtp/types.d.ts.map +1 -0
  721. package/dist/integrations/smtp/types.js +7 -0
  722. package/dist/integrations/smtp/types.js.map +1 -0
  723. package/dist/integrations/snowflake/client.d.ts +37 -0
  724. package/dist/integrations/snowflake/client.d.ts.map +1 -0
  725. package/dist/integrations/snowflake/client.js +97 -0
  726. package/dist/integrations/snowflake/client.js.map +1 -0
  727. package/dist/integrations/snowflake/index.d.ts +8 -0
  728. package/dist/integrations/snowflake/index.d.ts.map +1 -0
  729. package/dist/integrations/snowflake/index.js +7 -0
  730. package/dist/integrations/snowflake/index.js.map +1 -0
  731. package/dist/integrations/snowflake/types.d.ts +77 -0
  732. package/dist/integrations/snowflake/types.d.ts.map +1 -0
  733. package/dist/integrations/snowflake/types.js +7 -0
  734. package/dist/integrations/snowflake/types.js.map +1 -0
  735. package/dist/integrations/stabilityai/client.d.ts +19 -0
  736. package/dist/integrations/stabilityai/client.d.ts.map +1 -0
  737. package/dist/integrations/stabilityai/client.js +18 -0
  738. package/dist/integrations/stabilityai/client.js.map +1 -0
  739. package/dist/integrations/stabilityai/index.d.ts +3 -0
  740. package/dist/integrations/stabilityai/index.d.ts.map +1 -0
  741. package/dist/integrations/stabilityai/index.js +2 -0
  742. package/dist/integrations/stabilityai/index.js.map +1 -0
  743. package/dist/integrations/stabilityai/types.d.ts +32 -0
  744. package/dist/integrations/stabilityai/types.d.ts.map +1 -0
  745. package/dist/integrations/stabilityai/types.js +5 -0
  746. package/dist/integrations/stabilityai/types.js.map +1 -0
  747. package/dist/integrations/stripe/client.d.ts +19 -0
  748. package/dist/integrations/stripe/client.d.ts.map +1 -0
  749. package/dist/integrations/stripe/client.js +18 -0
  750. package/dist/integrations/stripe/client.js.map +1 -0
  751. package/dist/integrations/stripe/index.d.ts +3 -0
  752. package/dist/integrations/stripe/index.d.ts.map +1 -0
  753. package/dist/integrations/stripe/index.js +2 -0
  754. package/dist/integrations/stripe/index.js.map +1 -0
  755. package/dist/integrations/stripe/types.d.ts +59 -0
  756. package/dist/integrations/stripe/types.d.ts.map +1 -0
  757. package/dist/integrations/stripe/types.js +5 -0
  758. package/dist/integrations/stripe/types.js.map +1 -0
  759. package/dist/integrations/superblocks-ocr/client.d.ts +16 -0
  760. package/dist/integrations/superblocks-ocr/client.d.ts.map +1 -0
  761. package/dist/integrations/superblocks-ocr/client.js +15 -0
  762. package/dist/integrations/superblocks-ocr/client.js.map +1 -0
  763. package/dist/integrations/superblocks-ocr/index.d.ts +8 -0
  764. package/dist/integrations/superblocks-ocr/index.d.ts.map +1 -0
  765. package/dist/integrations/superblocks-ocr/index.js +7 -0
  766. package/dist/integrations/superblocks-ocr/index.js.map +1 -0
  767. package/dist/integrations/superblocks-ocr/types.d.ts +36 -0
  768. package/dist/integrations/superblocks-ocr/types.d.ts.map +1 -0
  769. package/dist/integrations/superblocks-ocr/types.js +5 -0
  770. package/dist/integrations/superblocks-ocr/types.js.map +1 -0
  771. package/dist/integrations/twilio/client.d.ts +19 -0
  772. package/dist/integrations/twilio/client.d.ts.map +1 -0
  773. package/dist/integrations/twilio/client.js +18 -0
  774. package/dist/integrations/twilio/client.js.map +1 -0
  775. package/dist/integrations/twilio/index.d.ts +3 -0
  776. package/dist/integrations/twilio/index.d.ts.map +1 -0
  777. package/dist/integrations/twilio/index.js +2 -0
  778. package/dist/integrations/twilio/index.js.map +1 -0
  779. package/dist/integrations/twilio/types.d.ts +32 -0
  780. package/dist/integrations/twilio/types.d.ts.map +1 -0
  781. package/dist/integrations/twilio/types.js +5 -0
  782. package/dist/integrations/twilio/types.js.map +1 -0
  783. package/dist/integrations/types.d.ts +31 -0
  784. package/dist/integrations/types.d.ts.map +1 -0
  785. package/dist/integrations/types.js +5 -0
  786. package/dist/integrations/types.js.map +1 -0
  787. package/dist/integrations/utils.d.ts +12 -0
  788. package/dist/integrations/utils.d.ts.map +1 -0
  789. package/dist/integrations/utils.js +27 -0
  790. package/dist/integrations/utils.js.map +1 -0
  791. package/dist/integrations/zendesk/client.d.ts +19 -0
  792. package/dist/integrations/zendesk/client.d.ts.map +1 -0
  793. package/dist/integrations/zendesk/client.js +18 -0
  794. package/dist/integrations/zendesk/client.js.map +1 -0
  795. package/dist/integrations/zendesk/index.d.ts +3 -0
  796. package/dist/integrations/zendesk/index.d.ts.map +1 -0
  797. package/dist/integrations/zendesk/index.js +2 -0
  798. package/dist/integrations/zendesk/index.js.map +1 -0
  799. package/dist/integrations/zendesk/types.d.ts +32 -0
  800. package/dist/integrations/zendesk/types.d.ts.map +1 -0
  801. package/dist/integrations/zendesk/types.js +5 -0
  802. package/dist/integrations/zendesk/types.js.map +1 -0
  803. package/dist/integrations/zoom/client.d.ts +19 -0
  804. package/dist/integrations/zoom/client.d.ts.map +1 -0
  805. package/dist/integrations/zoom/client.js +18 -0
  806. package/dist/integrations/zoom/client.js.map +1 -0
  807. package/dist/integrations/zoom/index.d.ts +3 -0
  808. package/dist/integrations/zoom/index.d.ts.map +1 -0
  809. package/dist/integrations/zoom/index.js +2 -0
  810. package/dist/integrations/zoom/index.js.map +1 -0
  811. package/dist/integrations/zoom/types.d.ts +32 -0
  812. package/dist/integrations/zoom/types.d.ts.map +1 -0
  813. package/dist/integrations/zoom/types.js +5 -0
  814. package/dist/integrations/zoom/types.js.map +1 -0
  815. package/dist/runtime/context.d.ts +68 -0
  816. package/dist/runtime/context.d.ts.map +1 -0
  817. package/dist/runtime/context.js +93 -0
  818. package/dist/runtime/context.js.map +1 -0
  819. package/dist/runtime/errors.d.ts +74 -0
  820. package/dist/runtime/errors.d.ts.map +1 -0
  821. package/dist/runtime/errors.js +105 -0
  822. package/dist/runtime/errors.js.map +1 -0
  823. package/dist/runtime/execute.d.ts +126 -0
  824. package/dist/runtime/execute.d.ts.map +1 -0
  825. package/dist/runtime/execute.js +84 -0
  826. package/dist/runtime/execute.js.map +1 -0
  827. package/dist/runtime/executor.d.ts +112 -0
  828. package/dist/runtime/executor.d.ts.map +1 -0
  829. package/dist/runtime/executor.js +121 -0
  830. package/dist/runtime/executor.js.map +1 -0
  831. package/dist/runtime/index.d.ts +13 -0
  832. package/dist/runtime/index.d.ts.map +1 -0
  833. package/dist/runtime/index.js +18 -0
  834. package/dist/runtime/index.js.map +1 -0
  835. package/dist/runtime/logger.d.ts +15 -0
  836. package/dist/runtime/logger.d.ts.map +1 -0
  837. package/dist/runtime/logger.js +34 -0
  838. package/dist/runtime/logger.js.map +1 -0
  839. package/dist/runtime/streaming-context.d.ts +48 -0
  840. package/dist/runtime/streaming-context.d.ts.map +1 -0
  841. package/dist/runtime/streaming-context.js +71 -0
  842. package/dist/runtime/streaming-context.js.map +1 -0
  843. package/dist/runtime/streaming-executor.d.ts +157 -0
  844. package/dist/runtime/streaming-executor.d.ts.map +1 -0
  845. package/dist/runtime/streaming-executor.js +229 -0
  846. package/dist/runtime/streaming-executor.js.map +1 -0
  847. package/dist/types.d.ts +161 -0
  848. package/dist/types.d.ts.map +1 -0
  849. package/dist/types.js +7 -0
  850. package/dist/types.js.map +1 -0
  851. package/package.json +54 -0
  852. package/src/api/definition.test.ts +315 -0
  853. package/src/api/definition.ts +178 -0
  854. package/src/api/index.ts +10 -0
  855. package/src/api/streaming.test.ts +354 -0
  856. package/src/api/streaming.ts +274 -0
  857. package/src/errors.ts +130 -0
  858. package/src/index.ts +327 -0
  859. package/src/integrations/airtable/README.md +410 -0
  860. package/src/integrations/airtable/client.ts +21 -0
  861. package/src/integrations/airtable/index.ts +2 -0
  862. package/src/integrations/airtable/types.ts +34 -0
  863. package/src/integrations/anthropic/README.md +495 -0
  864. package/src/integrations/anthropic/client.ts +22 -0
  865. package/src/integrations/anthropic/index.ts +2 -0
  866. package/src/integrations/anthropic/types.ts +81 -0
  867. package/src/integrations/asana/README.md +417 -0
  868. package/src/integrations/asana/client.ts +21 -0
  869. package/src/integrations/asana/index.ts +2 -0
  870. package/src/integrations/asana/types.ts +34 -0
  871. package/src/integrations/athena/README.md +158 -0
  872. package/src/integrations/athena/client.ts +135 -0
  873. package/src/integrations/athena/index.ts +8 -0
  874. package/src/integrations/athena/types.ts +53 -0
  875. package/src/integrations/base/graphql-integration-client.ts +110 -0
  876. package/src/integrations/base/index.ts +14 -0
  877. package/src/integrations/base/rest-api-integration-client.ts +292 -0
  878. package/src/integrations/base/types.ts +172 -0
  879. package/src/integrations/bigquery/README.md +185 -0
  880. package/src/integrations/bigquery/client.ts +133 -0
  881. package/src/integrations/bigquery/index.ts +8 -0
  882. package/src/integrations/bigquery/types.ts +53 -0
  883. package/src/integrations/bitbucket/README.md +408 -0
  884. package/src/integrations/bitbucket/client.ts +21 -0
  885. package/src/integrations/bitbucket/index.ts +2 -0
  886. package/src/integrations/bitbucket/types.ts +34 -0
  887. package/src/integrations/box/README.md +565 -0
  888. package/src/integrations/box/client.ts +21 -0
  889. package/src/integrations/box/index.ts +2 -0
  890. package/src/integrations/box/types.ts +34 -0
  891. package/src/integrations/circleci/README.md +444 -0
  892. package/src/integrations/circleci/client.ts +21 -0
  893. package/src/integrations/circleci/index.ts +2 -0
  894. package/src/integrations/circleci/types.ts +34 -0
  895. package/src/integrations/cockroachdb/README.md +144 -0
  896. package/src/integrations/cockroachdb/client.ts +135 -0
  897. package/src/integrations/cockroachdb/index.ts +8 -0
  898. package/src/integrations/cockroachdb/types.ts +53 -0
  899. package/src/integrations/cohere/README.md +313 -0
  900. package/src/integrations/cohere/client.ts +21 -0
  901. package/src/integrations/cohere/index.ts +2 -0
  902. package/src/integrations/cohere/types.ts +34 -0
  903. package/src/integrations/confluence/README.md +465 -0
  904. package/src/integrations/confluence/client.ts +21 -0
  905. package/src/integrations/confluence/index.ts +2 -0
  906. package/src/integrations/confluence/types.ts +34 -0
  907. package/src/integrations/cosmosdb/README.md +210 -0
  908. package/src/integrations/cosmosdb/client.ts +228 -0
  909. package/src/integrations/cosmosdb/index.ts +8 -0
  910. package/src/integrations/cosmosdb/types.ts +139 -0
  911. package/src/integrations/couchbase/README.md +120 -0
  912. package/src/integrations/couchbase/client.ts +212 -0
  913. package/src/integrations/couchbase/index.ts +8 -0
  914. package/src/integrations/couchbase/types.ts +108 -0
  915. package/src/integrations/databricks/README.md +151 -0
  916. package/src/integrations/databricks/client.ts +137 -0
  917. package/src/integrations/databricks/index.ts +8 -0
  918. package/src/integrations/databricks/types.ts +53 -0
  919. package/src/integrations/datadog/README.md +470 -0
  920. package/src/integrations/datadog/client.ts +21 -0
  921. package/src/integrations/datadog/index.ts +2 -0
  922. package/src/integrations/datadog/types.ts +34 -0
  923. package/src/integrations/declarations.ts +1119 -0
  924. package/src/integrations/dropbox/README.md +502 -0
  925. package/src/integrations/dropbox/client.ts +21 -0
  926. package/src/integrations/dropbox/index.ts +2 -0
  927. package/src/integrations/dropbox/types.ts +34 -0
  928. package/src/integrations/dynamodb/README.md +244 -0
  929. package/src/integrations/dynamodb/client.ts +248 -0
  930. package/src/integrations/dynamodb/index.ts +8 -0
  931. package/src/integrations/dynamodb/types.ts +230 -0
  932. package/src/integrations/elasticsearch/README.md +593 -0
  933. package/src/integrations/elasticsearch/client.ts +21 -0
  934. package/src/integrations/elasticsearch/index.ts +2 -0
  935. package/src/integrations/elasticsearch/types.ts +34 -0
  936. package/src/integrations/fireworks/README.md +364 -0
  937. package/src/integrations/fireworks/client.ts +21 -0
  938. package/src/integrations/fireworks/index.ts +2 -0
  939. package/src/integrations/fireworks/types.ts +34 -0
  940. package/src/integrations/front/README.md +396 -0
  941. package/src/integrations/front/client.ts +21 -0
  942. package/src/integrations/front/index.ts +2 -0
  943. package/src/integrations/front/types.ts +34 -0
  944. package/src/integrations/gcs/README.md +140 -0
  945. package/src/integrations/gcs/client.ts +195 -0
  946. package/src/integrations/gcs/index.ts +13 -0
  947. package/src/integrations/gcs/types.ts +148 -0
  948. package/src/integrations/gemini/README.md +380 -0
  949. package/src/integrations/gemini/client.ts +21 -0
  950. package/src/integrations/gemini/index.ts +2 -0
  951. package/src/integrations/gemini/types.ts +34 -0
  952. package/src/integrations/github/README.md +437 -0
  953. package/src/integrations/github/client.ts +22 -0
  954. package/src/integrations/github/index.ts +2 -0
  955. package/src/integrations/github/types.ts +69 -0
  956. package/src/integrations/googleanalytics/README.md +399 -0
  957. package/src/integrations/googleanalytics/client.ts +21 -0
  958. package/src/integrations/googleanalytics/index.ts +2 -0
  959. package/src/integrations/googleanalytics/types.ts +34 -0
  960. package/src/integrations/googledrive/README.md +470 -0
  961. package/src/integrations/googledrive/client.ts +21 -0
  962. package/src/integrations/googledrive/index.ts +2 -0
  963. package/src/integrations/googledrive/types.ts +34 -0
  964. package/src/integrations/graphql/README.md +385 -0
  965. package/src/integrations/graphql/client.ts +21 -0
  966. package/src/integrations/graphql/index.ts +2 -0
  967. package/src/integrations/graphql/types.ts +121 -0
  968. package/src/integrations/groq/README.md +312 -0
  969. package/src/integrations/groq/client.ts +21 -0
  970. package/src/integrations/groq/index.ts +2 -0
  971. package/src/integrations/groq/types.ts +34 -0
  972. package/src/integrations/gsheets/README.md +174 -0
  973. package/src/integrations/gsheets/client.ts +124 -0
  974. package/src/integrations/gsheets/index.ts +12 -0
  975. package/src/integrations/gsheets/types.ts +99 -0
  976. package/src/integrations/hubspot/README.md +434 -0
  977. package/src/integrations/hubspot/client.ts +21 -0
  978. package/src/integrations/hubspot/index.ts +2 -0
  979. package/src/integrations/hubspot/types.ts +34 -0
  980. package/src/integrations/index.ts +419 -0
  981. package/src/integrations/intercom/README.md +372 -0
  982. package/src/integrations/intercom/client.ts +21 -0
  983. package/src/integrations/intercom/index.ts +2 -0
  984. package/src/integrations/intercom/types.ts +34 -0
  985. package/src/integrations/jira/README.md +478 -0
  986. package/src/integrations/jira/client.ts +21 -0
  987. package/src/integrations/jira/index.ts +2 -0
  988. package/src/integrations/jira/types.ts +34 -0
  989. package/src/integrations/kafka/README.md +134 -0
  990. package/src/integrations/kafka/client.ts +206 -0
  991. package/src/integrations/kafka/index.ts +14 -0
  992. package/src/integrations/kafka/types.ts +116 -0
  993. package/src/integrations/kinesis/README.md +147 -0
  994. package/src/integrations/kinesis/client.ts +133 -0
  995. package/src/integrations/kinesis/index.ts +14 -0
  996. package/src/integrations/kinesis/types.ts +107 -0
  997. package/src/integrations/lakebase/client.ts +128 -0
  998. package/src/integrations/lakebase/index.ts +8 -0
  999. package/src/integrations/lakebase/types.ts +51 -0
  1000. package/src/integrations/launchdarkly/README.md +433 -0
  1001. package/src/integrations/launchdarkly/client.ts +21 -0
  1002. package/src/integrations/launchdarkly/index.ts +2 -0
  1003. package/src/integrations/launchdarkly/types.ts +34 -0
  1004. package/src/integrations/mariadb/README.md +123 -0
  1005. package/src/integrations/mariadb/client.ts +133 -0
  1006. package/src/integrations/mariadb/index.ts +8 -0
  1007. package/src/integrations/mariadb/types.ts +53 -0
  1008. package/src/integrations/mistral/README.md +342 -0
  1009. package/src/integrations/mistral/client.ts +21 -0
  1010. package/src/integrations/mistral/index.ts +2 -0
  1011. package/src/integrations/mistral/types.ts +34 -0
  1012. package/src/integrations/mongodb/README.md +203 -0
  1013. package/src/integrations/mongodb/client.ts +132 -0
  1014. package/src/integrations/mongodb/index.ts +8 -0
  1015. package/src/integrations/mongodb/types.ts +102 -0
  1016. package/src/integrations/mssql/README.md +151 -0
  1017. package/src/integrations/mssql/client.ts +133 -0
  1018. package/src/integrations/mssql/index.ts +8 -0
  1019. package/src/integrations/mssql/types.ts +53 -0
  1020. package/src/integrations/mysql/README.md +160 -0
  1021. package/src/integrations/mysql/client.ts +133 -0
  1022. package/src/integrations/mysql/index.ts +8 -0
  1023. package/src/integrations/mysql/types.ts +77 -0
  1024. package/src/integrations/notion/README.md +431 -0
  1025. package/src/integrations/notion/client.ts +22 -0
  1026. package/src/integrations/notion/index.ts +2 -0
  1027. package/src/integrations/notion/types.ts +71 -0
  1028. package/src/integrations/openai_v2/README.md +485 -0
  1029. package/src/integrations/openai_v2/client.ts +22 -0
  1030. package/src/integrations/openai_v2/index.ts +2 -0
  1031. package/src/integrations/openai_v2/types.ts +79 -0
  1032. package/src/integrations/oracledb/README.md +160 -0
  1033. package/src/integrations/oracledb/client.ts +135 -0
  1034. package/src/integrations/oracledb/index.ts +8 -0
  1035. package/src/integrations/oracledb/types.ts +53 -0
  1036. package/src/integrations/pagerduty/README.md +467 -0
  1037. package/src/integrations/pagerduty/client.ts +21 -0
  1038. package/src/integrations/pagerduty/index.ts +2 -0
  1039. package/src/integrations/pagerduty/types.ts +34 -0
  1040. package/src/integrations/perplexity/README.md +296 -0
  1041. package/src/integrations/perplexity/client.ts +21 -0
  1042. package/src/integrations/perplexity/index.ts +2 -0
  1043. package/src/integrations/perplexity/types.ts +34 -0
  1044. package/src/integrations/postgres/README.md +366 -0
  1045. package/src/integrations/postgres/client.ts +134 -0
  1046. package/src/integrations/postgres/index.ts +6 -0
  1047. package/src/integrations/postgres/types.ts +95 -0
  1048. package/src/integrations/python/README.md +532 -0
  1049. package/src/integrations/python/client.test.ts +320 -0
  1050. package/src/integrations/python/client.ts +127 -0
  1051. package/src/integrations/python/index.ts +6 -0
  1052. package/src/integrations/python/types.ts +73 -0
  1053. package/src/integrations/redis/README.md +183 -0
  1054. package/src/integrations/redis/client.ts +171 -0
  1055. package/src/integrations/redis/index.ts +8 -0
  1056. package/src/integrations/redis/types.ts +136 -0
  1057. package/src/integrations/redshift/README.md +151 -0
  1058. package/src/integrations/redshift/client.ts +133 -0
  1059. package/src/integrations/redshift/index.ts +8 -0
  1060. package/src/integrations/redshift/types.ts +53 -0
  1061. package/src/integrations/registry.ts +437 -0
  1062. package/src/integrations/s3/README.md +127 -0
  1063. package/src/integrations/s3/client.ts +199 -0
  1064. package/src/integrations/s3/index.ts +13 -0
  1065. package/src/integrations/s3/types.ts +151 -0
  1066. package/src/integrations/salesforce/README.md +232 -0
  1067. package/src/integrations/salesforce/client.ts +282 -0
  1068. package/src/integrations/salesforce/index.ts +8 -0
  1069. package/src/integrations/salesforce/types.ts +161 -0
  1070. package/src/integrations/segment/README.md +487 -0
  1071. package/src/integrations/segment/client.ts +21 -0
  1072. package/src/integrations/segment/index.ts +2 -0
  1073. package/src/integrations/segment/types.ts +34 -0
  1074. package/src/integrations/sendgrid/README.md +362 -0
  1075. package/src/integrations/sendgrid/client.ts +21 -0
  1076. package/src/integrations/sendgrid/index.ts +2 -0
  1077. package/src/integrations/sendgrid/types.ts +34 -0
  1078. package/src/integrations/slack/README.md +395 -0
  1079. package/src/integrations/slack/client.ts +21 -0
  1080. package/src/integrations/slack/index.ts +6 -0
  1081. package/src/integrations/slack/types.ts +56 -0
  1082. package/src/integrations/smtp/client.ts +65 -0
  1083. package/src/integrations/smtp/index.ts +8 -0
  1084. package/src/integrations/smtp/types.ts +64 -0
  1085. package/src/integrations/snowflake/README.md +359 -0
  1086. package/src/integrations/snowflake/client.ts +141 -0
  1087. package/src/integrations/snowflake/index.ts +8 -0
  1088. package/src/integrations/snowflake/types.ts +77 -0
  1089. package/src/integrations/stabilityai/README.md +461 -0
  1090. package/src/integrations/stabilityai/client.ts +21 -0
  1091. package/src/integrations/stabilityai/index.ts +2 -0
  1092. package/src/integrations/stabilityai/types.ts +34 -0
  1093. package/src/integrations/stripe/README.md +448 -0
  1094. package/src/integrations/stripe/client.ts +22 -0
  1095. package/src/integrations/stripe/index.ts +2 -0
  1096. package/src/integrations/stripe/types.ts +61 -0
  1097. package/src/integrations/superblocks-ocr/README.md +170 -0
  1098. package/src/integrations/superblocks-ocr/client.ts +21 -0
  1099. package/src/integrations/superblocks-ocr/index.ts +8 -0
  1100. package/src/integrations/superblocks-ocr/types.ts +38 -0
  1101. package/src/integrations/twilio/README.md +348 -0
  1102. package/src/integrations/twilio/client.ts +21 -0
  1103. package/src/integrations/twilio/index.ts +2 -0
  1104. package/src/integrations/twilio/types.ts +34 -0
  1105. package/src/integrations/types.ts +40 -0
  1106. package/src/integrations/utils.ts +25 -0
  1107. package/src/integrations/zendesk/README.md +441 -0
  1108. package/src/integrations/zendesk/client.ts +21 -0
  1109. package/src/integrations/zendesk/index.ts +2 -0
  1110. package/src/integrations/zendesk/types.ts +34 -0
  1111. package/src/integrations/zoom/README.md +456 -0
  1112. package/src/integrations/zoom/client.ts +21 -0
  1113. package/src/integrations/zoom/index.ts +2 -0
  1114. package/src/integrations/zoom/types.ts +34 -0
  1115. package/src/runtime/context.ts +156 -0
  1116. package/src/runtime/errors.ts +128 -0
  1117. package/src/runtime/execute.ts +218 -0
  1118. package/src/runtime/executor.ts +212 -0
  1119. package/src/runtime/index.ts +49 -0
  1120. package/src/runtime/logger.ts +37 -0
  1121. package/src/runtime/streaming-context.ts +146 -0
  1122. package/src/runtime/streaming-executor.ts +357 -0
  1123. package/src/types.ts +193 -0
package/README.md ADDED
@@ -0,0 +1,1447 @@
1
+ # @superblocksteam/sdk-api
2
+
3
+ TypeScript SDK for defining Superblocks APIs as simple, type-safe functions.
4
+
5
+ ## Overview
6
+
7
+ This SDK enables writing Superblocks APIs as TypeScript functions with:
8
+
9
+ - **Zod schemas** for input/output validation
10
+ - **Typed integration clients** for Postgres, Slack, OpenAI, Anthropic, Stripe, GitHub, Notion, and more
11
+ - **Full type inference** for inputs, outputs, and integrations
12
+ - **Upfront integration declarations** for type-safe access and pre-authentication
13
+ - **Runtime schema validation** with detailed error information for debugging
14
+
15
+ ## Architecture & Execution
16
+
17
+ This section explains how the SDK works internally - what an API is, what `api()` produces, and how APIs are executed.
18
+
19
+ ### What is an API?
20
+
21
+ An **API** in this SDK is a self-contained, typed function definition that:
22
+
23
+ 1. **Declares its contract** - Input/output schemas define what data it accepts and returns
24
+ 2. **Declares its dependencies** - Integration references specify which external services it needs
25
+ 3. **Implements logic** - The `run` function contains the business logic
26
+ 4. **Is portable** - Can be executed by any compatible runtime (local, server, orchestrator)
27
+
28
+ An API is **not** just a function - it's a complete definition that includes metadata, schemas, and dependencies, enabling the runtime to:
29
+ - Validate inputs before execution
30
+ - Pre-authenticate integrations
31
+ - Validate outputs after execution
32
+ - Provide detailed error information
33
+
34
+ ### What `api()` Produces
35
+
36
+ The `api()` function compiles your configuration into a `CompiledApi` object:
37
+
38
+ ```typescript
39
+ interface CompiledApi<TInput, TOutput> {
40
+ /** Name for identification in logs and debugging */
41
+ readonly name: string;
42
+
43
+ /** Zod schema for validating inputs */
44
+ readonly inputSchema: z.ZodType<TInput>;
45
+
46
+ /** Zod schema for validating outputs */
47
+ readonly outputSchema: z.ZodType<TOutput>;
48
+
49
+ /** The implementation function */
50
+ readonly run: (ctx: ApiContext, input: TInput) => Promise<TOutput>;
51
+
52
+ /** Integration declarations for upfront authentication */
53
+ readonly integrations: ReadonlyArray<IntegrationDeclaration>;
54
+ }
55
+ ```
56
+
57
+ #### Identifying an API
58
+
59
+ You can inspect a `CompiledApi` to understand what it is:
60
+
61
+ ```typescript
62
+ import { api, z, postgres } from '@superblocksteam/sdk-api';
63
+
64
+ const myApi = api({
65
+ name: 'GetUsers',
66
+ integrations: { db: postgres('prod-postgres-id') },
67
+ input: z.object({ limit: z.number() }),
68
+ output: z.object({ users: z.array(z.object({ id: z.string() })) }),
69
+ async run(ctx, { limit }) { /* ... */ },
70
+ });
71
+
72
+ // Inspect the compiled API
73
+ console.log(myApi.name); // 'GetUsers'
74
+ console.log(myApi.integrations); // [{ key: 'db', pluginId: 'postgres', integrationId: 'prod-postgres-id' }]
75
+
76
+ // Schemas can be used for validation or type extraction
77
+ type Input = z.infer<typeof myApi.inputSchema>; // { limit: number }
78
+ type Output = z.infer<typeof myApi.outputSchema>; // { users: { id: string }[] }
79
+ ```
80
+
81
+ ### How APIs are Executed
82
+
83
+ The `execute()` function runs a compiled API with the required inputs:
84
+
85
+ ```typescript
86
+ import { execute } from '@superblocksteam/sdk-api';
87
+
88
+ const response = await execute(myApi, {
89
+ // Raw input data (will be validated against inputSchema)
90
+ input: { limit: 10 },
91
+
92
+ // Integration configurations (provided by the runtime)
93
+ integrations: [
94
+ { id: 'prod-postgres-id', name: 'Production DB', pluginId: 'postgres', configuration: {...} }
95
+ ],
96
+
97
+ // Unique ID for tracing/debugging
98
+ executionId: 'exec_abc123',
99
+
100
+ // Environment variables accessible via ctx.env
101
+ env: { NODE_ENV: 'production' },
102
+
103
+ // Callback to execute integration operations (see below)
104
+ executeQuery: async (integrationId, request, bindings) => {
105
+ return await orchestrator.execute(integrationId, request, bindings);
106
+ },
107
+ });
108
+
109
+ // Response is a discriminated union
110
+ if (response.success) {
111
+ console.log(response.output); // Typed as { users: { id: string }[] }
112
+ } else {
113
+ console.error(response.error.code, response.error.message);
114
+ }
115
+ ```
116
+
117
+ #### Execution Flow
118
+
119
+ 1. **Input Validation** - Raw input is validated against `api.inputSchema`
120
+ 2. **Context Creation** - `ApiContext` is created with integration clients and logger
121
+ 3. **API Execution** - The `run` function is called with context and validated input
122
+ 4. **Output Validation** - Return value is validated against `api.outputSchema`
123
+ 5. **Response** - Returns `{ success: true, output }` or `{ success: false, error }`
124
+
125
+ ### The Callback Architecture
126
+
127
+ The SDK doesn't directly communicate with databases or external APIs. Instead, it uses **callbacks** that the runtime provides. This enables the SDK to run in any environment.
128
+
129
+ #### `executeQuery` Callback
130
+
131
+ When an integration client (like `ctx.integrations.db`) makes a request, it calls the `executeQuery` callback:
132
+
133
+ ```typescript
134
+ // Inside PostgresClient.query():
135
+ const result = await executeQuery(
136
+ 'prod-postgres-id', // Integration ID
137
+ { // Plugin-specific request (matches protobuf schema)
138
+ body: 'SELECT * FROM users WHERE id = $1',
139
+ },
140
+ { userId: '123' } // Optional bindings for language plugins
141
+ );
142
+ ```
143
+
144
+ The runtime (orchestrator) receives this callback and:
145
+ 1. Looks up the integration configuration
146
+ 2. Authenticates with the external service
147
+ 3. Executes the actual operation (SQL query, API call, etc.)
148
+ 4. Returns the result to the SDK
149
+
150
+ This architecture means:
151
+ - **SDK is environment-agnostic** - Same code runs locally, in tests, or in production
152
+ - **Authentication is centralized** - The runtime handles all credentials
153
+ - **Operations are auditable** - The runtime can log/trace all operations
154
+
155
+ #### `executeStreamingQuery` Callback
156
+
157
+ For streaming APIs (e.g., LLM token streaming), there's an additional callback:
158
+
159
+ ```typescript
160
+ // Inside AnthropicClient.streamApiRequest():
161
+ const stream = executeStreamingQuery(
162
+ 'prod-anthropic-id',
163
+ {
164
+ method: 'POST',
165
+ path: '/v1/messages',
166
+ body: { model: 'claude-3-5-sonnet', stream: true, messages: [...] }
167
+ }
168
+ );
169
+
170
+ // Returns AsyncIterable<unknown> - each chunk is validated against the chunk schema
171
+ for await (const chunk of stream) {
172
+ yield transformChunk(chunk);
173
+ }
174
+ ```
175
+
176
+ ### Execution Request Interface
177
+
178
+ The complete request interface for `execute()`:
179
+
180
+ ```typescript
181
+ interface UnifiedExecuteApiRequest {
182
+ /** Raw input data to be validated */
183
+ input: unknown;
184
+
185
+ /** Available integration configurations */
186
+ integrations: IntegrationConfig[];
187
+
188
+ /** Unique execution ID for tracing */
189
+ executionId: string;
190
+
191
+ /** Environment variables available via ctx.env */
192
+ env: Record<string, string>;
193
+
194
+ /**
195
+ * Callback to execute integration operations.
196
+ * Called by integration clients (postgres, slack, etc.) to perform actual operations.
197
+ */
198
+ executeQuery: (
199
+ integrationId: string,
200
+ request: Record<string, unknown>, // Plugin-specific request matching protobuf schema
201
+ bindings?: Record<string, unknown> // For language plugins (Python/JavaScript)
202
+ ) => Promise<unknown>;
203
+
204
+ /**
205
+ * Callback for streaming operations (optional).
206
+ * Only needed for streaming APIs that use streaming integrations.
207
+ */
208
+ executeStreamingQuery?: (
209
+ integrationId: string,
210
+ request: Record<string, unknown>
211
+ ) => AsyncIterable<unknown>;
212
+ }
213
+ ```
214
+
215
+ ### Execution Response
216
+
217
+ Regular APIs return a discriminated union:
218
+
219
+ ```typescript
220
+ type ExecuteApiResponse<TOutput> =
221
+ | { success: true; output: TOutput }
222
+ | { success: false; error: { code: string; message: string; details?: unknown } };
223
+ ```
224
+
225
+ Streaming APIs return an `AsyncGenerator`:
226
+
227
+ ```typescript
228
+ const stream: AsyncGenerator<TChunk> = execute(streamingApi, request);
229
+
230
+ for await (const chunk of stream) {
231
+ // Each chunk is validated against the chunk schema
232
+ console.log(chunk);
233
+ }
234
+ ```
235
+
236
+ ### Integration Configuration
237
+
238
+ Each integration in the `integrations` array has this structure:
239
+
240
+ ```typescript
241
+ interface IntegrationConfig {
242
+ /** Unique integration ID (referenced in api() config) */
243
+ id: string;
244
+
245
+ /** Display name */
246
+ name: string;
247
+
248
+ /** Plugin type (e.g., 'postgres', 'slack', 'openai_v2') */
249
+ pluginId: string;
250
+
251
+ /** Plugin-specific configuration (credentials, endpoints, etc.) */
252
+ configuration: Record<string, unknown>;
253
+ }
254
+ ```
255
+
256
+ The SDK matches integration declarations in your API (`integrations: { db: postgres('id') }`) with configurations in the request by ID.
257
+
258
+ ## Installation
259
+
260
+ ```bash
261
+ pnpm add @superblocksteam/sdk-api
262
+ ```
263
+
264
+ ## Quick Start
265
+
266
+ ```typescript
267
+ import { api, z, postgres } from "@superblocksteam/sdk-api";
268
+
269
+ // Integration IDs from the integrations panel - store in constants
270
+ const PROD_POSTGRES = "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr";
271
+
272
+ const UserSchema = z.object({
273
+ id: z.string(),
274
+ name: z.string(),
275
+ email: z.string().email(),
276
+ });
277
+
278
+ export default api({
279
+ name: "GetUserById",
280
+
281
+ // Declare integrations upfront for type safety
282
+ integrations: {
283
+ db: postgres(PROD_POSTGRES),
284
+ },
285
+
286
+ input: z.object({
287
+ userId: z.string().uuid(),
288
+ }),
289
+
290
+ output: z.object({
291
+ user: UserSchema,
292
+ }),
293
+
294
+ async run(ctx, { userId }) {
295
+ // ctx.integrations.db is fully typed as PostgresClient
296
+ const users = await ctx.integrations.db.query(
297
+ "SELECT * FROM users WHERE id = $1",
298
+ UserSchema, // Schema is REQUIRED
299
+ [userId],
300
+ );
301
+
302
+ if (users.length === 0) {
303
+ throw new Error("User not found");
304
+ }
305
+
306
+ return { user: users[0] };
307
+ },
308
+ });
309
+ ```
310
+
311
+ ## API Reference
312
+
313
+ ### `api(config)`
314
+
315
+ Defines a TypeScript-based API with input/output validation. Returns a complete result when the `run` function completes.
316
+
317
+ For streaming responses (e.g., LLM token streaming), see [`streamingApi()`](#streamingapiconfig) below.
318
+
319
+ #### Required Fields
320
+
321
+ | Field | Type | Description |
322
+ | -------- | --------------------------------- | -------------------------------------------------- |
323
+ | `name` | `string` | **Required.** Unique identifier for the API |
324
+ | `input` | `z.ZodType` | **Required.** Zod schema for input validation |
325
+ | `output` | `z.ZodType` | **Required.** Zod schema for output validation |
326
+ | `run` | `(ctx, input) => Promise<Output>` | **Required.** The implementation function |
327
+ | `integrations` | `Record<string, IntegrationRef>` | Optional. Integration declarations for the API |
328
+
329
+ ```typescript
330
+ import { api, z } from "@superblocksteam/sdk-api";
331
+
332
+ const myApi = api({
333
+ // REQUIRED: name is used for identification in logs and debugging
334
+ name: "GreetUser",
335
+
336
+ // REQUIRED: Zod schema for input validation
337
+ input: z.object({
338
+ name: z.string(),
339
+ count: z.number().int().positive(),
340
+ }),
341
+
342
+ // REQUIRED: Zod schema for output validation
343
+ output: z.object({
344
+ greeting: z.string(),
345
+ items: z.array(z.string()),
346
+ }),
347
+
348
+ // REQUIRED: API implementation
349
+ async run(ctx, { name, count }) {
350
+ return {
351
+ greeting: `Hello, ${name}!`,
352
+ items: Array(count).fill("item"),
353
+ };
354
+ },
355
+ });
356
+ ```
357
+
358
+ ### `streamingApi(config)`
359
+
360
+ Defines a streaming API that yields chunks as they're generated. Ideal for LLM token streaming, real-time data feeds, and progressive responses.
361
+
362
+ ```typescript
363
+ import { streamingApi, z, anthropic } from "@superblocksteam/sdk-api";
364
+
365
+ // Integration ID from the integrations panel
366
+ const PROD_ANTHROPIC = "e5f6g7h8-1234-56ab-cdef-ghijklmnopqr";
367
+
368
+ // Define the schema for each streamed chunk
369
+ const TextChunkSchema = z.object({
370
+ type: z.literal("text"),
371
+ text: z.string(),
372
+ });
373
+
374
+ export default streamingApi({
375
+ name: "StreamChatResponse",
376
+
377
+ integrations: {
378
+ ai: anthropic(PROD_ANTHROPIC),
379
+ },
380
+
381
+ input: z.object({
382
+ prompt: z.string(),
383
+ }),
384
+
385
+ // Schema for each yielded chunk (not the final output)
386
+ chunk: TextChunkSchema,
387
+
388
+ // Generator function that yields chunks
389
+ async *run(ctx, { prompt }) {
390
+ // Use streamApiRequest for streaming HTTP responses
391
+ const stream = ctx.integrations.ai.streamApiRequest(
392
+ {
393
+ method: "POST",
394
+ path: "/v1/messages",
395
+ body: {
396
+ model: "claude-3-5-sonnet-20241022",
397
+ max_tokens: 1024,
398
+ stream: true, // Enable streaming
399
+ messages: [{ role: "user", content: prompt }],
400
+ },
401
+ },
402
+ { chunk: AnthropicStreamEventSchema }
403
+ );
404
+
405
+ // Process and yield each chunk
406
+ for await (const event of stream) {
407
+ if (event.type === "content_block_delta" && event.delta?.type === "text_delta") {
408
+ yield { type: "text" as const, text: event.delta.text };
409
+ }
410
+ }
411
+ },
412
+ });
413
+ ```
414
+
415
+ #### Streaming API Configuration
416
+
417
+ | Property | Type | Description |
418
+ | -------------- | -------------------------------------- | ---------------------------------------------- |
419
+ | `integrations` | `Record<string, IntegrationRef>` | Integration declarations (same as `api()`) |
420
+ | `input` | `z.ZodType` | Zod schema for input validation |
421
+ | `chunk` | `z.ZodType` | Zod schema for each yielded chunk |
422
+ | `run` | `(ctx, input) => AsyncIterable<ChunkType>` | Generator function that yields validated chunks |
423
+
424
+ #### Key Differences from `api()`
425
+
426
+ - Uses `chunk` schema instead of `output` schema
427
+ - The `run` function is a generator (`async *run`) that uses `yield`
428
+ - Each yielded value is validated against the `chunk` schema
429
+ - No final return value - all data is streamed via `yield`
430
+
431
+ ### Context (`ctx`) and Input
432
+
433
+ The `run` function receives two arguments:
434
+ 1. **`ctx`** - Context object with integrations, logging, and environment
435
+ 2. **`input`** - Typed, validated input data matching your input schema
436
+
437
+ ```typescript
438
+ async run(ctx, { userId, options }) {
439
+ // Input is destructured from the second parameter
440
+ // and is fully typed based on your input schema
441
+ }
442
+ ```
443
+
444
+ #### `ctx.integrations`
445
+
446
+ Access typed integration clients via the `integrations` object. Integrations must be declared upfront in the API config to enable type-safe access and pre-authentication.
447
+
448
+ ```typescript
449
+ import { api, z, postgres, slack, openai, anthropic, stripe, github, notion, python } from "@superblocksteam/sdk-api";
450
+
451
+ // Integration IDs from the integrations panel - store in constants
452
+ const PROD_POSTGRES = "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr";
453
+ const OPS_SLACK = "b2c3d4e5-6789-01ab-cdef-ghijklmnopqr";
454
+ const PROD_OPENAI = "c3d4e5f6-7890-12ab-cdef-ghijklmnopqr";
455
+ const PROD_ANTHROPIC = "d4e5f6g7-8901-23ab-cdef-ghijklmnopqr";
456
+ const PROD_STRIPE = "e5f6g7h8-9012-34ab-cdef-ghijklmnopqr";
457
+ const PROD_GITHUB = "f6g7h8i9-0123-45ab-cdef-ghijklmnopqr";
458
+ const PROD_NOTION = "g7h8i9j0-1234-56ab-cdef-ghijklmnopqr";
459
+ const PYTHON_RUNTIME = "h8i9j0k1-2345-67ab-cdef-ghijklmnopqr";
460
+
461
+ export default api({
462
+ name: "ProcessUserWorkflow",
463
+
464
+ // Declare all integrations you'll use
465
+ integrations: {
466
+ // Database
467
+ db: postgres(PROD_POSTGRES),
468
+
469
+ // Messaging
470
+ notifier: slack(OPS_SLACK),
471
+
472
+ // AI/LLM
473
+ ai: openai(PROD_OPENAI),
474
+ claude: anthropic(PROD_ANTHROPIC),
475
+
476
+ // Payment Processing
477
+ payments: stripe(PROD_STRIPE),
478
+
479
+ // Developer Tools
480
+ repo: github(PROD_GITHUB),
481
+
482
+ // Productivity
483
+ wiki: notion(PROD_NOTION),
484
+
485
+ // Code Execution
486
+ runtime: python(PYTHON_RUNTIME),
487
+ },
488
+
489
+ input: z.object({ userId: z.string() }),
490
+ output: z.object({ success: z.boolean() }),
491
+
492
+ async run(ctx, { userId }) {
493
+ // Each integration is fully typed based on its declaration
494
+ const users = await ctx.integrations.db.query(...);
495
+ await ctx.integrations.notifier.apiRequest(...);
496
+ const completion = await ctx.integrations.ai.apiRequest(...);
497
+
498
+ return { success: true };
499
+ },
500
+ });
501
+ ```
502
+
503
+ #### `ctx.log`
504
+
505
+ Structured logging utilities.
506
+
507
+ ```typescript
508
+ async run(ctx, { userId }) {
509
+ ctx.log.info('Processing request', { userId });
510
+ ctx.log.warn('Rate limit approaching');
511
+ ctx.log.error('Operation failed', { error: 'details' });
512
+ ctx.log.debug('Debug info');
513
+ }
514
+ ```
515
+
516
+ ## Integration Clients
517
+
518
+ ### Integration Client Methods Reference
519
+
520
+ **IMPORTANT:** Before using any integration client, verify available methods below. Do NOT assume methods exist based on the external service's API.
521
+
522
+ #### Method Availability by Client
523
+
524
+ | Client | Available Methods | Notes |
525
+ | ------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------- |
526
+ | **PostgresClient** | `query<T>(sql, schema, params?)`, `execute(sql, params?)` | Schema parameter is REQUIRED for query() |
527
+ | **SnowflakeClient** | `query<T>(sql, schema, params?)`, `execute(sql, params?)` | Schema parameter is REQUIRED for query() |
528
+ | **PythonClient** | `run<T>(code, schema, bindings?)` | Schema parameter is REQUIRED, bindings via {{}} syntax |
529
+ | **AirtableClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
530
+ | **AnthropicClient** | `apiRequest(options, schema)`, `streamApiRequest(options, schema)` | Supports streaming for real-time token output |
531
+ | **AsanaClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
532
+ | **BitbucketClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
533
+ | **BoxClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
534
+ | **CircleCIClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
535
+ | **CohereClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
536
+ | **ConfluenceClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
537
+ | **DatadogClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
538
+ | **DropboxClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
539
+ | **ElasticSearchClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
540
+ | **FireworksClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
541
+ | **FrontClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
542
+ | **GeminiClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
543
+ | **GitHubClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest - no createIssue, etc. |
544
+ | **GoogleAnalyticsClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
545
+ | **GoogleDriveClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
546
+ | **GraphQLClient** | `query(query, variables?, schema?)`, `mutation(mutation, variables?, schema?)` | GraphQL-specific methods |
547
+ | **GroqClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
548
+ | **HubSpotClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
549
+ | **IntercomClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
550
+ | **JiraClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
551
+ | **LaunchDarklyClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
552
+ | **MistralClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
553
+ | **NotionClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest - no queryDatabase, etc. |
554
+ | **OpenAIClient** | `apiRequest(options, schema)`, `streamApiRequest(options, schema)` | Supports streaming for real-time token output |
555
+ | **PagerDutyClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
556
+ | **PerplexityClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
557
+ | **SegmentClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
558
+ | **SendGridClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
559
+ | **SlackClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest - no specialized methods |
560
+ | **StabilityAIClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
561
+ | **StripeClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest - no createCustomer, etc. |
562
+ | **TwilioClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
563
+ | **ZendeskClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
564
+ | **ZoomClient** | `apiRequest(options, schema?)` | ONLY generic apiRequest |
565
+
566
+ #### Common Mistakes to Avoid
567
+
568
+ ---
569
+
570
+ **WRONG - Hallucinated method:**
571
+
572
+ ```typescript
573
+ // These methods DO NOT EXIST
574
+ await openai.createChatCompletion({ ... });
575
+ await anthropic.createMessage({ ... });
576
+ await stripe.createCustomer({ ... });
577
+ await github.createIssue({ ... });
578
+ ```
579
+
580
+ **CORRECT - Use apiRequest:**
581
+
582
+ ```typescript
583
+ // Use the generic apiRequest method
584
+ await openai.apiRequest(
585
+ { method: 'POST', path: '/v1/chat/completions', body: { ... } },
586
+ { response: ResponseSchema }
587
+ );
588
+ ```
589
+
590
+ ---
591
+
592
+ **WRONG - Missing schema parameter:**
593
+
594
+ ```typescript
595
+ // Schema is REQUIRED for query()
596
+ const users = await ctx.integrations.db.query("SELECT * FROM users WHERE id = $1", [
597
+ userId,
598
+ ]);
599
+ ```
600
+
601
+ **CORRECT - Include schema:**
602
+
603
+ ```typescript
604
+ const UserSchema = z.object({ id: z.string(), name: z.string() });
605
+ const users = await ctx.integrations.db.query(
606
+ "SELECT * FROM users WHERE id = $1",
607
+ UserSchema, // Schema is REQUIRED
608
+ [userId],
609
+ );
610
+ ```
611
+
612
+ #### Finding Type Definitions
613
+
614
+ To verify available methods and signatures:
615
+
616
+ - **README**: This document contains complete method signatures for all clients
617
+ - **Type files**: Check `node_modules/@superblocksteam/sdk-api/src/integrations/<client>/types.ts`
618
+ - **API Context**: See `node_modules/@superblocksteam/sdk-api/src/types.ts` for the ApiContext interface
619
+
620
+ ### Integration Documentation
621
+
622
+ Each integration client has detailed documentation with examples and common pitfalls. Click on an integration below for its full README:
623
+
624
+ #### SQL Databases
625
+ - [PostgreSQL](./src/integrations/postgres/README.md) - Query PostgreSQL databases with schema validation
626
+ - [Snowflake](./src/integrations/snowflake/README.md) - Query Snowflake data warehouses
627
+
628
+ #### GraphQL
629
+ - [GraphQL](./src/integrations/graphql/README.md) - Execute queries and mutations against GraphQL endpoints
630
+
631
+ #### AI/LLM
632
+ - [OpenAI](./src/integrations/openai_v2/README.md) - Chat completions, embeddings, DALL-E, and more
633
+ - [Anthropic](./src/integrations/anthropic/README.md) - Claude models for chat and analysis
634
+ - [Cohere](./src/integrations/cohere/README.md) - Text generation, embeddings, classification
635
+ - [Gemini](./src/integrations/gemini/README.md) - Google's multimodal AI models
636
+ - [Groq](./src/integrations/groq/README.md) - Fast inference for LLM completions
637
+ - [Mistral](./src/integrations/mistral/README.md) - Open-weight language models
638
+ - [Perplexity](./src/integrations/perplexity/README.md) - Search-augmented AI responses
639
+ - [Fireworks](./src/integrations/fireworks/README.md) - Fast model inference
640
+
641
+ #### Messaging & Communication
642
+ - [Slack](./src/integrations/slack/README.md) - Send messages, manage channels, Block Kit
643
+ - [Twilio](./src/integrations/twilio/README.md) - SMS, voice calls, phone lookups
644
+ - [SendGrid](./src/integrations/sendgrid/README.md) - Transactional and marketing emails
645
+ - [Intercom](./src/integrations/intercom/README.md) - Customer messaging and support
646
+ - [Front](./src/integrations/front/README.md) - Shared inbox and team communication
647
+
648
+ #### Productivity & Collaboration
649
+ - [Notion](./src/integrations/notion/README.md) - Databases, pages, and blocks
650
+ - [Airtable](./src/integrations/airtable/README.md) - Spreadsheet-database hybrid
651
+ - [Asana](./src/integrations/asana/README.md) - Project and task management
652
+ - [Jira](./src/integrations/jira/README.md) - Issue tracking and project management
653
+ - [Confluence](./src/integrations/confluence/README.md) - Team wikis and documentation
654
+ - [Zoom](./src/integrations/zoom/README.md) - Video meetings and webinars
655
+
656
+ #### Developer Tools
657
+ - [GitHub](./src/integrations/github/README.md) - Repositories, issues, pull requests
658
+ - [Bitbucket](./src/integrations/bitbucket/README.md) - Git repositories and pipelines
659
+ - [CircleCI](./src/integrations/circleci/README.md) - CI/CD pipelines and jobs
660
+
661
+ #### Business & Enterprise
662
+ - [Stripe](./src/integrations/stripe/README.md) - Payments, subscriptions, invoicing
663
+ - [HubSpot](./src/integrations/hubspot/README.md) - CRM, contacts, deals
664
+ - [Zendesk](./src/integrations/zendesk/README.md) - Support tickets and customer service
665
+ - [PagerDuty](./src/integrations/pagerduty/README.md) - Incident management and on-call
666
+ - [LaunchDarkly](./src/integrations/launchdarkly/README.md) - Feature flags and experimentation
667
+
668
+ #### Analytics & Monitoring
669
+ - [Google Analytics](./src/integrations/googleanalytics/README.md) - GA4 reports and real-time data
670
+ - [Datadog](./src/integrations/datadog/README.md) - Metrics, monitors, and logs
671
+ - [Segment](./src/integrations/segment/README.md) - Customer data platform
672
+
673
+ #### Cloud Storage
674
+ - [Google Drive](./src/integrations/googledrive/README.md) - Files, folders, and sharing
675
+ - [Dropbox](./src/integrations/dropbox/README.md) - Cloud file storage
676
+ - [Box](./src/integrations/box/README.md) - Enterprise content management
677
+
678
+ #### Code Execution
679
+ - [Python](./src/integrations/python/README.md) - Execute Python scripts with type-safe inputs and outputs
680
+
681
+ #### Other
682
+ - [Elasticsearch](./src/integrations/elasticsearch/README.md) - Search and analytics engine
683
+ - [Stability AI](./src/integrations/stabilityai/README.md) - Image generation and editing
684
+
685
+ ## Generic API Requests
686
+
687
+ All REST API-based integration clients support the `apiRequest()` method for making custom API calls. **Response schema validation is required** for type safety.
688
+
689
+ ```typescript
690
+ import { api, z, slack } from "@superblocksteam/sdk-api";
691
+
692
+ // Integration ID from the integrations panel
693
+ const OPS_SLACK = "b2c3d4e5-6789-01ab-cdef-ghijklmnopqr";
694
+
695
+ export default api({
696
+ name: "PostSlackMessage",
697
+
698
+ integrations: {
699
+ notifier: slack(OPS_SLACK),
700
+ },
701
+
702
+ input: z.object({}),
703
+ output: z.object({ ts: z.string() }),
704
+
705
+ async run(ctx) {
706
+ // Define request and response schemas
707
+ const PostMessageBodySchema = z.object({
708
+ channel: z.string(),
709
+ text: z.string(),
710
+ blocks: z.array(z.any()).optional(),
711
+ });
712
+
713
+ const PostMessageResponseSchema = z.object({
714
+ ok: z.boolean(),
715
+ ts: z.string(),
716
+ channel: z.string(),
717
+ });
718
+
719
+ // Response schema is REQUIRED
720
+ const result = await ctx.integrations.notifier.apiRequest(
721
+ {
722
+ method: "POST",
723
+ path: "/chat.postMessage",
724
+ body: {
725
+ channel: "#alerts",
726
+ text: "Deployment completed!",
727
+ },
728
+ },
729
+ {
730
+ body: PostMessageBodySchema,
731
+ response: PostMessageResponseSchema, // Required!
732
+ },
733
+ );
734
+
735
+ // result is fully typed as PostMessageResponse
736
+ return { ts: result.ts };
737
+ },
738
+ });
739
+ ```
740
+
741
+ ### ApiRequestOptions
742
+
743
+ | Property | Type | Description |
744
+ | ---------- | ------------------------- | ------------------------------------------ |
745
+ | `method` | `string` | HTTP method (GET, POST, PUT, DELETE, etc.) |
746
+ | `path` | `string` | API endpoint path |
747
+ | `body?` | `TBody` | Request body (for POST, PUT, PATCH) |
748
+ | `params?` | `Record<string, unknown>` | Query parameters |
749
+ | `headers?` | `Record<string, string>` | HTTP headers |
750
+
751
+ ### ApiRequestSchema
752
+
753
+ | Property | Type | Description |
754
+ | ---------- | ------------------------ | ------------------------------------------------------------------------------ |
755
+ | `body?` | `z.ZodSchema<TBody>` | Optional Zod schema for request body validation (required if body is provided) |
756
+ | `response` | `z.ZodSchema<TResponse>` | **Required** Zod schema for response validation |
757
+
758
+ ## Streaming API Requests
759
+
760
+ For real-time streaming responses (e.g., LLM token streaming), use `streamApiRequest()`. This method returns an `AsyncIterable` that yields validated chunks as they arrive.
761
+
762
+ ```typescript
763
+ import { streamingApi, z, anthropic } from "@superblocksteam/sdk-api";
764
+
765
+ // Integration ID from the integrations panel
766
+ const PROD_ANTHROPIC = "d4e5f6g7-8901-23ab-cdef-ghijklmnopqr";
767
+
768
+ // Define schema for Anthropic SSE events
769
+ const AnthropicStreamEventSchema = z.discriminatedUnion("type", [
770
+ z.object({
771
+ type: z.literal("content_block_delta"),
772
+ index: z.number(),
773
+ delta: z.object({
774
+ type: z.literal("text_delta"),
775
+ text: z.string(),
776
+ }),
777
+ }),
778
+ z.object({ type: z.literal("message_start"), message: z.any() }),
779
+ z.object({ type: z.literal("content_block_start"), index: z.number(), content_block: z.any() }),
780
+ z.object({ type: z.literal("content_block_stop"), index: z.number() }),
781
+ z.object({ type: z.literal("message_delta"), delta: z.any(), usage: z.any() }),
782
+ z.object({ type: z.literal("message_stop") }),
783
+ z.object({ type: z.literal("ping") }),
784
+ ]);
785
+
786
+ export default streamingApi({
787
+ name: "StreamAnthropicChat",
788
+
789
+ integrations: {
790
+ ai: anthropic(PROD_ANTHROPIC),
791
+ },
792
+
793
+ input: z.object({ prompt: z.string() }),
794
+ chunk: z.object({ type: z.literal("text"), text: z.string() }),
795
+
796
+ async *run(ctx, { prompt }) {
797
+ const stream = ctx.integrations.ai.streamApiRequest(
798
+ {
799
+ method: "POST",
800
+ path: "/v1/messages",
801
+ body: {
802
+ model: "claude-3-5-sonnet-20241022",
803
+ max_tokens: 1024,
804
+ stream: true,
805
+ messages: [{ role: "user", content: prompt }],
806
+ },
807
+ },
808
+ { chunk: AnthropicStreamEventSchema }
809
+ );
810
+
811
+ for await (const event of stream) {
812
+ if (event.type === "content_block_delta") {
813
+ yield { type: "text" as const, text: event.delta.text };
814
+ }
815
+ }
816
+ },
817
+ });
818
+ ```
819
+
820
+ ### StreamApiRequestOptions
821
+
822
+ Same as `ApiRequestOptions` - see above.
823
+
824
+ ### StreamApiRequestSchema
825
+
826
+ | Property | Type | Description |
827
+ | -------- | ---------------------- | ------------------------------------------------------------------------------ |
828
+ | `body?` | `z.ZodSchema<TBody>` | Optional Zod schema for request body validation (required if body is provided) |
829
+ | `chunk` | `z.ZodSchema<TChunk>` | **Required** Zod schema for validating each streamed chunk |
830
+
831
+ ### Supported Integrations
832
+
833
+ Streaming is supported by REST API-based integrations that connect to services with SSE (Server-Sent Events) endpoints:
834
+
835
+ - **AnthropicClient** - Claude streaming messages
836
+ - **OpenAIClient** - GPT streaming chat completions
837
+ - **CohereClient** - Streaming text generation
838
+ - **GroqClient** - Streaming completions
839
+ - **MistralClient** - Streaming chat
840
+ - **FireworksClient** - Streaming inference
841
+ - **PerplexityClient** - Streaming search responses
842
+
843
+ ## Error Handling
844
+
845
+ The SDK provides structured error types for different failure scenarios:
846
+
847
+ ```typescript
848
+ import {
849
+ InputValidationError,
850
+ OutputValidationError,
851
+ QueryValidationError,
852
+ RestApiValidationError,
853
+ StreamChunkValidationError,
854
+ IntegrationNotFoundError,
855
+ ExecutionError,
856
+ ErrorCode,
857
+ } from "@superblocksteam/sdk-api";
858
+ ```
859
+
860
+ | Error Type | Code | Description |
861
+ | -------------------------- | ----------------------- | -------------------------------------------------- |
862
+ | `InputValidationError` | `INPUT_VALIDATION` | Input failed Zod validation |
863
+ | `OutputValidationError` | `OUTPUT_VALIDATION` | Output failed Zod validation |
864
+ | `QueryValidationError` | N/A | Database query result validation failed (Postgres) |
865
+ | `RestApiValidationError` | N/A | REST API request/response validation failed |
866
+ | `StreamChunkValidationError` | N/A | Streaming chunk failed schema validation |
867
+ | `IntegrationNotFoundError` | `INTEGRATION_NOT_FOUND` | Integration not configured |
868
+ | `IntegrationError` | `INTEGRATION_ERROR` | Integration operation failed |
869
+ | `ExecutionError` | `EXECUTION_ERROR` | User code threw an error |
870
+
871
+ ### QueryValidationError (Postgres)
872
+
873
+ Thrown when database query results fail schema validation. Includes the row index, field-level errors, and the actual row data.
874
+
875
+ ```typescript
876
+ try {
877
+ const users = await ctx.integrations.db.query<User>(
878
+ "SELECT * FROM users",
879
+ UserSchema,
880
+ [],
881
+ );
882
+ } catch (error) {
883
+ if (error instanceof QueryValidationError) {
884
+ console.error("Validation failed for row:", error.details.rowIndex);
885
+ console.error("Field errors:", error.details.errors);
886
+ console.error("Row data:", error.details.row);
887
+ }
888
+ }
889
+ ```
890
+
891
+ ### RestApiValidationError
892
+
893
+ Thrown when REST API request bodies or responses fail schema validation. Includes the complete Zod error object with all validation metadata and the actual data that failed.
894
+
895
+ ```typescript
896
+ try {
897
+ const result = await ctx.integrations.ai.apiRequest(
898
+ { method: 'POST', path: '/v1/chat/completions', body: { ... } },
899
+ { body: RequestSchema, response: ResponseSchema }
900
+ );
901
+ } catch (error) {
902
+ if (error instanceof RestApiValidationError) {
903
+ // Full Zod error with all validation details
904
+ console.error('Zod error:', error.details.zodError);
905
+ console.error('Issues:', error.details.zodError.issues);
906
+
907
+ // The actual data that failed validation
908
+ console.error('Failed data:', error.details.data);
909
+
910
+ // Access Zod utility methods
911
+ const formatted = error.details.zodError.format();
912
+ const flattened = error.details.zodError.flatten();
913
+ }
914
+ }
915
+ ```
916
+
917
+ The `RestApiValidationError` provides complete context for debugging:
918
+
919
+ - **Full Zod error object** (`zodError`) with all validation information
920
+ - **Validation codes** (e.g., `"invalid_type"`, `"too_small"`, `"invalid_email"`)
921
+ - **Expected vs received** values for type mismatches
922
+ - **Constraint information** (e.g., minimum/maximum values)
923
+ - **The actual data** that failed validation
924
+ - **Utility methods** like `format()` and `flatten()` for different error representations
925
+
926
+ ### StreamChunkValidationError
927
+
928
+ Thrown when a streamed chunk fails schema validation. Includes the chunk index, the raw chunk data, and the Zod error.
929
+
930
+ ```typescript
931
+ import { execute, StreamChunkValidationError } from "@superblocksteam/sdk-api";
932
+
933
+ try {
934
+ // execute() returns an AsyncGenerator for streaming APIs
935
+ for await (const chunk of execute(streamingApi, request)) {
936
+ // Process chunk
937
+ }
938
+ } catch (error) {
939
+ if (error instanceof StreamChunkValidationError) {
940
+ console.error("Chunk index:", error.details.chunkIndex);
941
+ console.error("Raw chunk:", error.details.chunk);
942
+ console.error("Validation error:", error.details.zodError);
943
+ }
944
+ }
945
+ ```
946
+
947
+ The `StreamChunkValidationError` provides:
948
+
949
+ - **Chunk index** (`chunkIndex`) - Which chunk in the stream failed
950
+ - **Raw chunk data** (`chunk`) - The actual data that failed validation
951
+ - **Full Zod error** (`zodError`) - Complete validation error details
952
+
953
+ ## Best Practices
954
+
955
+ ### Push Filtering Down to the Data Source
956
+
957
+ Always filter data at the source (database, API) rather than fetching everything and filtering in code. This reduces network transfer, memory usage, and processing time.
958
+
959
+ **Inefficient - Fetching all rows and filtering in code:**
960
+
961
+ ```typescript
962
+ const AllUsersSchema = z.array(
963
+ z.object({ id: z.string(), status: z.string(), region: z.string() }),
964
+ );
965
+
966
+ // Fetches ALL users, then filters - wasteful!
967
+ async run(ctx, { region }) {
968
+ const allUsers = await ctx.integrations.db.query("SELECT * FROM users", AllUsersSchema);
969
+ const activeUsersInRegion = allUsers.filter(
970
+ (u) => u.status === "active" && u.region === region,
971
+ );
972
+ }
973
+ ```
974
+
975
+ **Efficient - Filtering in the database query:**
976
+
977
+ ```typescript
978
+ const UserSchema = z.object({
979
+ id: z.string(),
980
+ status: z.string(),
981
+ region: z.string(),
982
+ });
983
+
984
+ // Database does the filtering - only matching rows are transferred
985
+ async run(ctx, { region }) {
986
+ const activeUsersInRegion = await ctx.integrations.db.query(
987
+ "SELECT * FROM users WHERE status = $1 AND region = $2",
988
+ UserSchema,
989
+ ["active", region],
990
+ );
991
+ }
992
+ ```
993
+
994
+ The same principle applies to REST APIs - use query parameters to filter at the source:
995
+
996
+ **Inefficient:**
997
+
998
+ ```typescript
999
+ // Fetches all issues, then filters client-side
1000
+ const allIssues = await ctx.integrations.repo.apiRequest(
1001
+ { method: "GET", path: "/repos/owner/repo/issues" },
1002
+ { response: IssuesSchema },
1003
+ );
1004
+ const openBugs = allIssues.filter(
1005
+ (i) => i.state === "open" && i.labels.includes("bug"),
1006
+ );
1007
+ ```
1008
+
1009
+ **Efficient:**
1010
+
1011
+ ```typescript
1012
+ // API does the filtering - only matching issues returned
1013
+ const openBugs = await ctx.integrations.repo.apiRequest(
1014
+ {
1015
+ method: "GET",
1016
+ path: "/repos/owner/repo/issues",
1017
+ params: { state: "open", labels: "bug" },
1018
+ },
1019
+ { response: IssuesSchema },
1020
+ );
1021
+ ```
1022
+
1023
+ ### Select Only the Fields You Need
1024
+
1025
+ Avoid `SELECT *` in database queries. Fetch only the columns you actually use to reduce data transfer and improve query performance.
1026
+
1027
+ **Inefficient:**
1028
+
1029
+ ```typescript
1030
+ // Fetches all columns even though we only need id and email
1031
+ const users = await ctx.integrations.db.query(
1032
+ "SELECT * FROM users WHERE status = $1",
1033
+ UserSchema,
1034
+ ["active"],
1035
+ );
1036
+ const emails = users.map((u) => u.email);
1037
+ ```
1038
+
1039
+ **Efficient:**
1040
+
1041
+ ```typescript
1042
+ const UserEmailSchema = z.object({ id: z.string(), email: z.string() });
1043
+
1044
+ // Fetches only the columns we need
1045
+ const users = await ctx.integrations.db.query(
1046
+ "SELECT id, email FROM users WHERE status = $1",
1047
+ UserEmailSchema,
1048
+ ["active"],
1049
+ );
1050
+ ```
1051
+
1052
+ ### Use Pagination and Limits
1053
+
1054
+ When working with large datasets, use pagination to process data in chunks rather than loading everything into memory.
1055
+
1056
+ ```typescript
1057
+ const PageSchema = z.object({
1058
+ id: z.string(),
1059
+ name: z.string(),
1060
+ createdAt: z.string(),
1061
+ });
1062
+
1063
+ // Process in batches of 100
1064
+ const PAGE_SIZE = 100;
1065
+ let offset = 0;
1066
+ let hasMore = true;
1067
+
1068
+ while (hasMore) {
1069
+ const batch = await ctx.integrations.db.query(
1070
+ "SELECT id, name, created_at FROM orders ORDER BY created_at LIMIT $1 OFFSET $2",
1071
+ PageSchema,
1072
+ [PAGE_SIZE, offset],
1073
+ );
1074
+
1075
+ // Process this batch
1076
+ for (const order of batch) {
1077
+ await processOrder(order);
1078
+ }
1079
+
1080
+ hasMore = batch.length === PAGE_SIZE;
1081
+ offset += PAGE_SIZE;
1082
+ }
1083
+ ```
1084
+
1085
+ ### Avoid N+1 Query Patterns
1086
+
1087
+ Don't fetch related data one item at a time in a loop. Use JOINs or batch queries instead.
1088
+
1089
+ **N+1 Problem - One query per order:**
1090
+
1091
+ ```typescript
1092
+ const orders = await ctx.integrations.db.query("SELECT * FROM orders", OrderSchema);
1093
+
1094
+ // BAD: This makes N additional queries!
1095
+ for (const order of orders) {
1096
+ const items = await ctx.integrations.db.query(
1097
+ "SELECT * FROM order_items WHERE order_id = $1",
1098
+ ItemSchema,
1099
+ [order.id],
1100
+ );
1101
+ order.items = items;
1102
+ }
1103
+ ```
1104
+
1105
+ **Efficient - Single query with JOIN:**
1106
+
1107
+ ```typescript
1108
+ const OrderWithItemsSchema = z.object({
1109
+ orderId: z.string(),
1110
+ orderTotal: z.number(),
1111
+ itemId: z.string(),
1112
+ itemName: z.string(),
1113
+ quantity: z.number(),
1114
+ });
1115
+
1116
+ // Single query fetches everything
1117
+ const rows = await ctx.integrations.db.query(
1118
+ `SELECT o.id as order_id, o.total as order_total,
1119
+ i.id as item_id, i.name as item_name, i.quantity
1120
+ FROM orders o
1121
+ JOIN order_items i ON i.order_id = o.id`,
1122
+ OrderWithItemsSchema,
1123
+ );
1124
+ ```
1125
+
1126
+ **Alternative - Batch fetch with IN clause:**
1127
+
1128
+ ```typescript
1129
+ const orders = await ctx.integrations.db.query("SELECT * FROM orders", OrderSchema);
1130
+ const orderIds = orders.map((o) => o.id);
1131
+
1132
+ // Single query for all items
1133
+ const items = await ctx.integrations.db.query(
1134
+ "SELECT * FROM order_items WHERE order_id = ANY($1)",
1135
+ ItemSchema,
1136
+ [orderIds],
1137
+ );
1138
+ ```
1139
+
1140
+ ### Batch API Requests When Possible
1141
+
1142
+ Some APIs support batch operations. Use them instead of making individual requests.
1143
+
1144
+ **Inefficient - Individual requests:**
1145
+
1146
+ ```typescript
1147
+ // Makes 100 separate API calls!
1148
+ for (const userId of userIds) {
1149
+ await ctx.integrations.notifier.apiRequest(
1150
+ {
1151
+ method: "POST",
1152
+ path: "/chat.postMessage",
1153
+ body: { channel: userId, text: "Hello!" },
1154
+ },
1155
+ { response: MessageSchema },
1156
+ );
1157
+ }
1158
+ ```
1159
+
1160
+ **Efficient - Use batch endpoints when available:**
1161
+
1162
+ ```typescript
1163
+ // Check if the API supports batch operations
1164
+ // For Slack, consider using chat.postMessage with multiple channel webhooks
1165
+ // or processing in controlled parallel batches
1166
+ const BATCH_SIZE = 10;
1167
+ for (let i = 0; i < userIds.length; i += BATCH_SIZE) {
1168
+ const batch = userIds.slice(i, i + BATCH_SIZE);
1169
+ await Promise.all(
1170
+ batch.map((userId) =>
1171
+ ctx.integrations.notifier.apiRequest(
1172
+ {
1173
+ method: "POST",
1174
+ path: "/chat.postMessage",
1175
+ body: { channel: userId, text: "Hello!" },
1176
+ },
1177
+ { response: MessageSchema },
1178
+ ),
1179
+ ),
1180
+ );
1181
+ }
1182
+ ```
1183
+
1184
+ ### Use Precise Schemas
1185
+
1186
+ Define schemas that match exactly what you expect. This improves type safety and catches data issues early.
1187
+
1188
+ ```typescript
1189
+ // Be specific about field types and constraints
1190
+ const UserSchema = z.object({
1191
+ id: z.string().uuid(),
1192
+ email: z.string().email(),
1193
+ age: z.number().int().min(0).max(150),
1194
+ status: z.enum(["active", "inactive", "pending"]),
1195
+ createdAt: z.string().datetime(),
1196
+ });
1197
+
1198
+ // Use .pick() or .omit() to create variants
1199
+ const UserSummarySchema = UserSchema.pick({ id: true, email: true });
1200
+ const UserUpdateSchema = UserSchema.omit({ id: true, createdAt: true });
1201
+ ```
1202
+
1203
+ ## Using APIs in the Frontend
1204
+
1205
+ The app template provides automatic type inference for API calls using a tRPC-style pattern.
1206
+
1207
+ ### Adding a New API (2 Steps)
1208
+
1209
+ **Step 1**: Create your API file (e.g., `server/apis/GetUsers/api.ts`)
1210
+
1211
+ **Step 2**: Add it to the registry at `server/apis/index.ts`:
1212
+
1213
+ ```typescript
1214
+ import GetUsers from './GetUsers/api.js';
1215
+ import CreateOrder from './CreateOrder/api.js';
1216
+
1217
+ const apis = {
1218
+ GetUsers,
1219
+ CreateOrder,
1220
+ // Add new APIs here
1221
+ } as const;
1222
+
1223
+ export default apis;
1224
+ export type ApiRegistry = typeof apis;
1225
+ ```
1226
+
1227
+ That's it! Types automatically flow to the frontend.
1228
+
1229
+ > **Note**: Always use `.js` extension in imports (required for ESM module resolution).
1230
+
1231
+ ### Calling APIs from React Components
1232
+
1233
+ Import `useApi` from the template's pre-configured hook:
1234
+
1235
+ ```typescript
1236
+ import { useApi } from '@/hooks/useApi.js';
1237
+
1238
+ function MyComponent() {
1239
+ // ✅ Full type inference - input and output types are automatic
1240
+ const { run } = useApi("GetUsers");
1241
+
1242
+ const handleClick = async () => {
1243
+ // TypeScript knows the exact input type required
1244
+ const result = await run({ email: "test@example.com", name: null });
1245
+
1246
+ if (result) {
1247
+ // TypeScript knows result.users exists with correct shape
1248
+ console.log(result.users);
1249
+ }
1250
+ };
1251
+
1252
+ return <button onClick={handleClick}>Fetch Users</button>;
1253
+ }
1254
+ ```
1255
+
1256
+ ### How It Works
1257
+
1258
+ The template includes two files that work together:
1259
+
1260
+ 1. **`server/apis/index.ts`** - Registry you update when adding APIs
1261
+ 2. **`client/hooks/useApi.ts`** - Pre-configured typed hook (don't modify)
1262
+
1263
+ The hook uses `import type` to pull in only the type information from the registry, keeping server code out of the client bundle.
1264
+
1265
+ **Key benefits**:
1266
+ - **Single source of truth**: Just update `server/apis/index.ts`
1267
+ - **No server code in client bundle**: Type-only imports are erased at compile time
1268
+ - **Full type safety**: Autocomplete for API names, type errors for invalid inputs/outputs
1269
+
1270
+ ### Alternative: Explicit Type Parameter
1271
+
1272
+ For testing or when the registry isn't available:
1273
+
1274
+ ```typescript
1275
+ import { useApi } from '@superblocksteam/library';
1276
+ import type GetUsersApi from '../../server/apis/GetUsers/api.js';
1277
+
1278
+ const { run } = useApi<typeof GetUsersApi>("GetUsers");
1279
+ ```
1280
+
1281
+ ## Complete Example
1282
+
1283
+ ```typescript
1284
+ import { api, z, postgres, slack, openai } from "@superblocksteam/sdk-api";
1285
+
1286
+ // Integration IDs from the integrations panel
1287
+ const PROD_POSTGRES = "a1b2c3d4-5678-90ab-cdef-ghijklmnopqr";
1288
+ const OPS_SLACK = "b2c3d4e5-6789-01ab-cdef-ghijklmnopqr";
1289
+ const PROD_OPENAI = "c3d4e5f6-7890-12ab-cdef-ghijklmnopqr";
1290
+
1291
+ // Define reusable schemas
1292
+ const OrderItemSchema = z.object({
1293
+ productId: z.string(),
1294
+ quantity: z.number().int().positive(),
1295
+ });
1296
+
1297
+ const CompletionRequestSchema = z.object({
1298
+ model: z.string(),
1299
+ messages: z.array(
1300
+ z.object({
1301
+ role: z.string(),
1302
+ content: z.string(),
1303
+ }),
1304
+ ),
1305
+ });
1306
+
1307
+ const CompletionResponseSchema = z.object({
1308
+ choices: z.array(
1309
+ z.object({
1310
+ message: z.object({
1311
+ content: z.string(),
1312
+ }),
1313
+ }),
1314
+ ),
1315
+ });
1316
+
1317
+ const CustomerSchema = z.object({
1318
+ id: z.string(),
1319
+ email: z.string().email(),
1320
+ });
1321
+
1322
+ const SlackPostMessageResponseSchema = z.object({
1323
+ ok: z.boolean(),
1324
+ ts: z.string().optional(),
1325
+ });
1326
+
1327
+ export default api({
1328
+ name: "CreateOrder",
1329
+
1330
+ // Declare all integrations upfront
1331
+ integrations: {
1332
+ db: postgres(PROD_POSTGRES),
1333
+ notifier: slack(OPS_SLACK),
1334
+ ai: openai(PROD_OPENAI),
1335
+ },
1336
+
1337
+ input: z.object({
1338
+ customerId: z.string().uuid(),
1339
+ items: z.array(OrderItemSchema).min(1),
1340
+ sendAiSummary: z.boolean().default(false),
1341
+ }),
1342
+
1343
+ output: z.object({
1344
+ orderId: z.string(),
1345
+ total: z.number(),
1346
+ itemCount: z.number(),
1347
+ aiSummary: z.string().optional(),
1348
+ }),
1349
+
1350
+ async run(ctx, { customerId, items, sendAiSummary }) {
1351
+
1352
+ ctx.log.info("Creating order", { customerId, itemCount: items.length });
1353
+
1354
+ // Get customer from database
1355
+ const customers = await ctx.integrations.db.query(
1356
+ "SELECT id, email FROM customers WHERE id = $1",
1357
+ CustomerSchema,
1358
+ [customerId],
1359
+ );
1360
+ const customer = customers[0];
1361
+
1362
+ if (!customer) {
1363
+ throw new Error(`Customer not found: ${customerId}`);
1364
+ }
1365
+
1366
+ // Calculate total
1367
+ const total = items.reduce((sum, item) => {
1368
+ // In real code, you'd look up prices
1369
+ return sum + item.quantity * 10;
1370
+ }, 0);
1371
+
1372
+ // Insert order
1373
+ await ctx.integrations.db.execute(
1374
+ "INSERT INTO orders (customer_id, total, item_count) VALUES ($1, $2, $3)",
1375
+ [customerId, total, items.length],
1376
+ );
1377
+
1378
+ const orderId = `ord_${Date.now()}`;
1379
+
1380
+ // Notify via Slack
1381
+ await ctx.integrations.notifier.apiRequest(
1382
+ {
1383
+ method: "POST",
1384
+ path: "/chat.postMessage",
1385
+ body: {
1386
+ channel: "#orders",
1387
+ text: `New order ${orderId} from ${customer.email}: $${total.toFixed(2)}`,
1388
+ },
1389
+ },
1390
+ { response: SlackPostMessageResponseSchema },
1391
+ );
1392
+
1393
+ // Generate AI summary if requested
1394
+ let aiSummary: string | undefined;
1395
+ if (sendAiSummary) {
1396
+ const completion = await ctx.integrations.ai.apiRequest(
1397
+ {
1398
+ method: "POST",
1399
+ path: "/v1/chat/completions",
1400
+ body: {
1401
+ model: "gpt-4",
1402
+ messages: [
1403
+ {
1404
+ role: "user",
1405
+ content: `Summarize this order: ${items.length} items, total $${total}`,
1406
+ },
1407
+ ],
1408
+ },
1409
+ },
1410
+ {
1411
+ body: CompletionRequestSchema,
1412
+ response: CompletionResponseSchema,
1413
+ },
1414
+ );
1415
+
1416
+ aiSummary = completion.choices[0]?.message.content;
1417
+ }
1418
+
1419
+ return {
1420
+ orderId,
1421
+ total,
1422
+ itemCount: items.length,
1423
+ aiSummary,
1424
+ };
1425
+ },
1426
+ });
1427
+ ```
1428
+
1429
+ ## Development
1430
+
1431
+ ```bash
1432
+ # Install dependencies
1433
+ pnpm install
1434
+
1435
+ # Type check
1436
+ pnpm typecheck
1437
+
1438
+ # Run tests
1439
+ pnpm test
1440
+
1441
+ # Build
1442
+ pnpm build
1443
+ ```
1444
+
1445
+ ## License
1446
+
1447
+ Superblocks Community Software License