@superblocksteam/sdk-api 0.0.5 → 0.0.7

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 (487) hide show
  1. package/README.md +351 -427
  2. package/dist/api/definition.d.ts +12 -7
  3. package/dist/api/definition.d.ts.map +1 -1
  4. package/dist/api/definition.js +19 -12
  5. package/dist/api/definition.js.map +1 -1
  6. package/dist/api/definition.test.js +39 -15
  7. package/dist/api/definition.test.js.map +1 -1
  8. package/dist/api/index.d.ts +0 -2
  9. package/dist/api/index.d.ts.map +1 -1
  10. package/dist/api/index.js +0 -2
  11. package/dist/api/index.js.map +1 -1
  12. package/dist/errors.d.ts +1 -45
  13. package/dist/errors.d.ts.map +1 -1
  14. package/dist/errors.js +1 -33
  15. package/dist/errors.js.map +1 -1
  16. package/dist/index.d.ts +16 -17
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +18 -15
  19. package/dist/index.js.map +1 -1
  20. package/dist/integrations/anthropic/types.d.ts +3 -22
  21. package/dist/integrations/anthropic/types.d.ts.map +1 -1
  22. package/dist/integrations/athena/client.d.ts +1 -1
  23. package/dist/integrations/athena/client.d.ts.map +1 -1
  24. package/dist/integrations/athena/client.js.map +1 -1
  25. package/dist/integrations/athena/types.d.ts +2 -2
  26. package/dist/integrations/athena/types.d.ts.map +1 -1
  27. package/dist/integrations/base/graphql-integration-client.d.ts +8 -4
  28. package/dist/integrations/base/graphql-integration-client.d.ts.map +1 -1
  29. package/dist/integrations/base/graphql-integration-client.js +18 -5
  30. package/dist/integrations/base/graphql-integration-client.js.map +1 -1
  31. package/dist/integrations/base/index.d.ts +3 -2
  32. package/dist/integrations/base/index.d.ts.map +1 -1
  33. package/dist/integrations/base/index.js +1 -0
  34. package/dist/integrations/base/index.js.map +1 -1
  35. package/dist/integrations/base/rest-api-client-base.d.ts +48 -0
  36. package/dist/integrations/base/rest-api-client-base.d.ts.map +1 -0
  37. package/dist/integrations/base/rest-api-client-base.js +98 -0
  38. package/dist/integrations/base/rest-api-client-base.js.map +1 -0
  39. package/dist/integrations/base/rest-api-integration-client.d.ts +11 -65
  40. package/dist/integrations/base/rest-api-integration-client.d.ts.map +1 -1
  41. package/dist/integrations/base/rest-api-integration-client.js +11 -174
  42. package/dist/integrations/base/rest-api-integration-client.js.map +1 -1
  43. package/dist/integrations/base/types.d.ts +1 -67
  44. package/dist/integrations/base/types.d.ts.map +1 -1
  45. package/dist/integrations/bigquery/client.d.ts +1 -1
  46. package/dist/integrations/bigquery/client.d.ts.map +1 -1
  47. package/dist/integrations/bigquery/client.js.map +1 -1
  48. package/dist/integrations/bigquery/types.d.ts +3 -3
  49. package/dist/integrations/bigquery/types.d.ts.map +1 -1
  50. package/dist/integrations/box/types.d.ts +1 -1
  51. package/dist/integrations/cockroachdb/client.d.ts +1 -1
  52. package/dist/integrations/cockroachdb/client.d.ts.map +1 -1
  53. package/dist/integrations/cockroachdb/client.js.map +1 -1
  54. package/dist/integrations/cockroachdb/types.d.ts.map +1 -1
  55. package/dist/integrations/cosmosdb/client.d.ts +1 -1
  56. package/dist/integrations/cosmosdb/client.d.ts.map +1 -1
  57. package/dist/integrations/cosmosdb/client.js.map +1 -1
  58. package/dist/integrations/cosmosdb/client.test.js.map +1 -1
  59. package/dist/integrations/cosmosdb/types.d.ts.map +1 -1
  60. package/dist/integrations/databricks/client.d.ts +1 -1
  61. package/dist/integrations/databricks/client.d.ts.map +1 -1
  62. package/dist/integrations/databricks/client.js.map +1 -1
  63. package/dist/integrations/databricks/types.d.ts +3 -3
  64. package/dist/integrations/databricks/types.d.ts.map +1 -1
  65. package/dist/integrations/declarations.d.ts +36 -104
  66. package/dist/integrations/declarations.d.ts.map +1 -1
  67. package/dist/integrations/declarations.js +5 -68
  68. package/dist/integrations/declarations.js.map +1 -1
  69. package/dist/integrations/declarations.test.js.map +1 -1
  70. package/dist/integrations/documentation-resolver.test.d.ts +2 -0
  71. package/dist/integrations/documentation-resolver.test.d.ts.map +1 -0
  72. package/dist/integrations/documentation-resolver.test.js +608 -0
  73. package/dist/integrations/documentation-resolver.test.js.map +1 -0
  74. package/dist/integrations/documentation.d.ts +8 -0
  75. package/dist/integrations/documentation.d.ts.map +1 -0
  76. package/dist/integrations/documentation.js +277 -0
  77. package/dist/integrations/documentation.js.map +1 -0
  78. package/dist/integrations/documentation.test.d.ts +2 -0
  79. package/dist/integrations/documentation.test.d.ts.map +1 -0
  80. package/dist/integrations/documentation.test.js +81 -0
  81. package/dist/integrations/documentation.test.js.map +1 -0
  82. package/dist/integrations/dynamodb/client.d.ts +1 -1
  83. package/dist/integrations/dynamodb/client.d.ts.map +1 -1
  84. package/dist/integrations/dynamodb/client.js.map +1 -1
  85. package/dist/integrations/dynamodb/types.d.ts.map +1 -1
  86. package/dist/integrations/gcs/client.d.ts +1 -1
  87. package/dist/integrations/gcs/client.d.ts.map +1 -1
  88. package/dist/integrations/gcs/client.js.map +1 -1
  89. package/dist/integrations/gcs/types.d.ts.map +1 -1
  90. package/dist/integrations/googledrive/types.d.ts +1 -1
  91. package/dist/integrations/graphql/client.test.d.ts +15 -0
  92. package/dist/integrations/graphql/client.test.d.ts.map +1 -0
  93. package/dist/integrations/graphql/client.test.js +148 -0
  94. package/dist/integrations/graphql/client.test.js.map +1 -0
  95. package/dist/integrations/graphql/types.d.ts +22 -3
  96. package/dist/integrations/graphql/types.d.ts.map +1 -1
  97. package/dist/integrations/gsheets/client.d.ts +1 -1
  98. package/dist/integrations/gsheets/client.d.ts.map +1 -1
  99. package/dist/integrations/gsheets/client.js.map +1 -1
  100. package/dist/integrations/gsheets/types.d.ts.map +1 -1
  101. package/dist/integrations/index.d.ts +2 -12
  102. package/dist/integrations/index.d.ts.map +1 -1
  103. package/dist/integrations/index.js +2 -8
  104. package/dist/integrations/index.js.map +1 -1
  105. package/dist/integrations/lakebase/client.d.ts +1 -1
  106. package/dist/integrations/lakebase/client.d.ts.map +1 -1
  107. package/dist/integrations/lakebase/client.js.map +1 -1
  108. package/dist/integrations/lakebase/types.d.ts +4 -4
  109. package/dist/integrations/lakebase/types.d.ts.map +1 -1
  110. package/dist/integrations/mariadb/client.d.ts +1 -1
  111. package/dist/integrations/mariadb/client.d.ts.map +1 -1
  112. package/dist/integrations/mariadb/client.js.map +1 -1
  113. package/dist/integrations/mariadb/types.d.ts +2 -2
  114. package/dist/integrations/mariadb/types.d.ts.map +1 -1
  115. package/dist/integrations/mongodb/client.d.ts +1 -1
  116. package/dist/integrations/mongodb/client.d.ts.map +1 -1
  117. package/dist/integrations/mongodb/client.js.map +1 -1
  118. package/dist/integrations/mongodb/types.d.ts.map +1 -1
  119. package/dist/integrations/mssql/client.d.ts +1 -1
  120. package/dist/integrations/mssql/client.d.ts.map +1 -1
  121. package/dist/integrations/mssql/client.js.map +1 -1
  122. package/dist/integrations/mssql/types.d.ts +2 -2
  123. package/dist/integrations/mssql/types.d.ts.map +1 -1
  124. package/dist/integrations/mysql/client.d.ts +1 -1
  125. package/dist/integrations/mysql/client.d.ts.map +1 -1
  126. package/dist/integrations/mysql/client.js.map +1 -1
  127. package/dist/integrations/mysql/types.d.ts +4 -4
  128. package/dist/integrations/mysql/types.d.ts.map +1 -1
  129. package/dist/integrations/openai_v2/types.d.ts +4 -22
  130. package/dist/integrations/openai_v2/types.d.ts.map +1 -1
  131. package/dist/integrations/oracledb/client.d.ts +1 -1
  132. package/dist/integrations/oracledb/client.d.ts.map +1 -1
  133. package/dist/integrations/oracledb/client.js.map +1 -1
  134. package/dist/integrations/oracledb/types.d.ts +2 -2
  135. package/dist/integrations/oracledb/types.d.ts.map +1 -1
  136. package/dist/integrations/postgres/client.d.ts +2 -2
  137. package/dist/integrations/postgres/client.d.ts.map +1 -1
  138. package/dist/integrations/postgres/client.js.map +1 -1
  139. package/dist/integrations/postgres/types.d.ts.map +1 -1
  140. package/dist/integrations/redshift/client.d.ts +1 -1
  141. package/dist/integrations/redshift/client.d.ts.map +1 -1
  142. package/dist/integrations/redshift/client.js.map +1 -1
  143. package/dist/integrations/redshift/types.d.ts.map +1 -1
  144. package/dist/integrations/registry.d.ts +6 -27
  145. package/dist/integrations/registry.d.ts.map +1 -1
  146. package/dist/integrations/registry.js +64 -88
  147. package/dist/integrations/registry.js.map +1 -1
  148. package/dist/integrations/registry.test.js +1 -3
  149. package/dist/integrations/registry.test.js.map +1 -1
  150. package/dist/integrations/restapiintegration/types.d.ts +2 -2
  151. package/dist/integrations/restapiintegration/types.d.ts.map +1 -1
  152. package/dist/integrations/s3/client.d.ts +1 -1
  153. package/dist/integrations/s3/client.d.ts.map +1 -1
  154. package/dist/integrations/s3/client.js.map +1 -1
  155. package/dist/integrations/s3/types.d.ts +3 -1
  156. package/dist/integrations/s3/types.d.ts.map +1 -1
  157. package/dist/integrations/salesforce/client.d.ts +1 -1
  158. package/dist/integrations/salesforce/client.d.ts.map +1 -1
  159. package/dist/integrations/salesforce/client.js.map +1 -1
  160. package/dist/integrations/salesforce/types.d.ts.map +1 -1
  161. package/dist/integrations/slack/client.d.ts +13 -9
  162. package/dist/integrations/slack/client.d.ts.map +1 -1
  163. package/dist/integrations/slack/client.js +60 -8
  164. package/dist/integrations/slack/client.js.map +1 -1
  165. package/dist/integrations/slack/client.test.d.ts +11 -0
  166. package/dist/integrations/slack/client.test.d.ts.map +1 -0
  167. package/dist/integrations/slack/client.test.js +368 -0
  168. package/dist/integrations/slack/client.test.js.map +1 -0
  169. package/dist/integrations/slack/index.d.ts +2 -1
  170. package/dist/integrations/slack/index.d.ts.map +1 -1
  171. package/dist/integrations/slack/index.js +1 -0
  172. package/dist/integrations/slack/index.js.map +1 -1
  173. package/dist/integrations/slack/types.d.ts +127 -28
  174. package/dist/integrations/slack/types.d.ts.map +1 -1
  175. package/dist/integrations/slack/types.js +27 -1
  176. package/dist/integrations/slack/types.js.map +1 -1
  177. package/dist/integrations/smtp/client.d.ts +1 -1
  178. package/dist/integrations/smtp/client.d.ts.map +1 -1
  179. package/dist/integrations/smtp/client.js.map +1 -1
  180. package/dist/integrations/snowflake/client.d.ts +3 -3
  181. package/dist/integrations/snowflake/client.d.ts.map +1 -1
  182. package/dist/integrations/snowflake/client.js +2 -2
  183. package/dist/integrations/snowflake/client.js.map +1 -1
  184. package/dist/integrations/snowflake/types.d.ts.map +1 -1
  185. package/dist/integrations/snowflakecortex/client.d.ts +1 -2
  186. package/dist/integrations/snowflakecortex/client.d.ts.map +1 -1
  187. package/dist/integrations/snowflakecortex/client.js +1 -2
  188. package/dist/integrations/snowflakecortex/client.js.map +1 -1
  189. package/dist/integrations/snowflakecortex/types.d.ts +3 -4
  190. package/dist/integrations/snowflakecortex/types.d.ts.map +1 -1
  191. package/dist/integrations/snowflakepostgres/client.d.ts +1 -1
  192. package/dist/integrations/snowflakepostgres/client.d.ts.map +1 -1
  193. package/dist/integrations/snowflakepostgres/client.js.map +1 -1
  194. package/dist/integrations/snowflakepostgres/types.d.ts.map +1 -1
  195. package/dist/runtime/context.d.ts +3 -3
  196. package/dist/runtime/context.d.ts.map +1 -1
  197. package/dist/runtime/context.js.map +1 -1
  198. package/dist/runtime/executor.d.ts +2 -2
  199. package/dist/runtime/index.d.ts +0 -3
  200. package/dist/runtime/index.d.ts.map +1 -1
  201. package/dist/runtime/index.js +1 -6
  202. package/dist/runtime/index.js.map +1 -1
  203. package/dist/types.d.ts +15 -6
  204. package/dist/types.d.ts.map +1 -1
  205. package/package.json +2 -2
  206. package/src/api/definition.test.ts +41 -15
  207. package/src/api/definition.ts +20 -13
  208. package/src/api/index.ts +0 -4
  209. package/src/errors.ts +1 -49
  210. package/src/index.ts +20 -61
  211. package/src/integrations/airtable/docs.manifest.json +5 -0
  212. package/src/integrations/anthropic/README.md +5 -101
  213. package/src/integrations/anthropic/docs.manifest.json +5 -0
  214. package/src/integrations/anthropic/types.ts +3 -29
  215. package/src/integrations/asana/README.md +12 -12
  216. package/src/integrations/asana/docs.manifest.json +5 -0
  217. package/src/integrations/athena/README.md +4 -4
  218. package/src/integrations/athena/client.ts +5 -3
  219. package/src/integrations/athena/docs.manifest.json +5 -0
  220. package/src/integrations/athena/types.ts +3 -2
  221. package/src/integrations/base/graphql-integration-client.ts +27 -5
  222. package/src/integrations/base/index.ts +2 -3
  223. package/src/integrations/base/rest-api-client-base.ts +134 -0
  224. package/src/integrations/base/rest-api-integration-client.ts +15 -239
  225. package/src/integrations/base/types.ts +4 -74
  226. package/src/integrations/bigquery/README.md +28 -3
  227. package/src/integrations/bigquery/client.ts +5 -3
  228. package/src/integrations/bigquery/docs.manifest.json +5 -0
  229. package/src/integrations/bigquery/types.ts +4 -3
  230. package/src/integrations/bitbucket/README.md +19 -19
  231. package/src/integrations/bitbucket/docs.manifest.json +5 -0
  232. package/src/integrations/box/README.md +24 -24
  233. package/src/integrations/box/docs.manifest.json +5 -0
  234. package/src/integrations/box/types.ts +1 -1
  235. package/src/integrations/circleci/README.md +18 -18
  236. package/src/integrations/circleci/docs.manifest.json +5 -0
  237. package/src/integrations/cockroachdb/client.ts +5 -3
  238. package/src/integrations/cockroachdb/docs.manifest.json +5 -0
  239. package/src/integrations/cockroachdb/types.ts +1 -0
  240. package/src/integrations/cohere/README.md +11 -11
  241. package/src/integrations/cohere/docs.manifest.json +5 -0
  242. package/src/integrations/confluence/docs.manifest.json +5 -0
  243. package/src/integrations/cosmosdb/client.test.ts +2 -1
  244. package/src/integrations/cosmosdb/client.ts +5 -3
  245. package/src/integrations/cosmosdb/docs.manifest.json +5 -0
  246. package/src/integrations/cosmosdb/types.ts +1 -0
  247. package/src/integrations/databricks/README.md +29 -4
  248. package/src/integrations/databricks/client.ts +5 -3
  249. package/src/integrations/databricks/docs.manifest.json +5 -0
  250. package/src/integrations/databricks/types.ts +4 -3
  251. package/src/integrations/datadog/docs.manifest.json +5 -0
  252. package/src/integrations/declarations.test.ts +1 -0
  253. package/src/integrations/declarations.ts +36 -136
  254. package/src/integrations/documentation-resolver.test.ts +704 -0
  255. package/src/integrations/documentation.test.ts +120 -0
  256. package/src/integrations/documentation.ts +421 -0
  257. package/src/integrations/dropbox/docs.manifest.json +5 -0
  258. package/src/integrations/dynamodb/client.ts +3 -2
  259. package/src/integrations/dynamodb/docs.manifest.json +5 -0
  260. package/src/integrations/dynamodb/types.ts +1 -0
  261. package/src/integrations/elasticsearch/docs.manifest.json +5 -0
  262. package/src/integrations/fireworks/README.md +43 -17
  263. package/src/integrations/fireworks/docs.manifest.json +5 -0
  264. package/src/integrations/front/docs.manifest.json +5 -0
  265. package/src/integrations/gcs/client.ts +5 -3
  266. package/src/integrations/gcs/docs.manifest.json +5 -0
  267. package/src/integrations/gcs/types.ts +1 -0
  268. package/src/integrations/gemini/docs.manifest.json +5 -0
  269. package/src/integrations/github/docs.manifest.json +5 -0
  270. package/src/integrations/googleanalytics/README.md +2 -2
  271. package/src/integrations/googleanalytics/docs.manifest.json +5 -0
  272. package/src/integrations/googledrive/README.md +27 -24
  273. package/src/integrations/googledrive/docs.manifest.json +5 -0
  274. package/src/integrations/googledrive/types.ts +1 -1
  275. package/src/integrations/graphql/README.md +2 -2
  276. package/src/integrations/graphql/client.test.ts +220 -0
  277. package/src/integrations/graphql/docs.manifest.json +5 -0
  278. package/src/integrations/graphql/types.ts +23 -1
  279. package/src/integrations/groq/README.md +49 -42
  280. package/src/integrations/groq/docs.manifest.json +5 -0
  281. package/src/integrations/gsheets/README.md +2 -2
  282. package/src/integrations/gsheets/client.ts +5 -3
  283. package/src/integrations/gsheets/docs.manifest.json +5 -0
  284. package/src/integrations/gsheets/types.ts +1 -0
  285. package/src/integrations/hubspot/docs.manifest.json +5 -0
  286. package/src/integrations/index.ts +1 -52
  287. package/src/integrations/intercom/docs.manifest.json +5 -0
  288. package/src/integrations/jira/docs.manifest.json +5 -0
  289. package/src/integrations/lakebase/README.md +242 -0
  290. package/src/integrations/lakebase/client.ts +6 -4
  291. package/src/integrations/lakebase/docs.manifest.json +5 -0
  292. package/src/integrations/lakebase/types.ts +5 -4
  293. package/src/integrations/launchdarkly/README.md +2 -2
  294. package/src/integrations/launchdarkly/docs.manifest.json +5 -0
  295. package/src/integrations/mariadb/README.md +3 -3
  296. package/src/integrations/mariadb/client.ts +5 -3
  297. package/src/integrations/mariadb/docs.manifest.json +5 -0
  298. package/src/integrations/mariadb/types.ts +3 -2
  299. package/src/integrations/mistral/README.md +39 -13
  300. package/src/integrations/mistral/docs.manifest.json +5 -0
  301. package/src/integrations/mongodb/README.md +65 -12
  302. package/src/integrations/mongodb/client.ts +5 -3
  303. package/src/integrations/mongodb/docs.manifest.json +5 -0
  304. package/src/integrations/mongodb/types.ts +1 -0
  305. package/src/integrations/mssql/README.md +3 -3
  306. package/src/integrations/mssql/client.ts +5 -3
  307. package/src/integrations/mssql/docs.manifest.json +5 -0
  308. package/src/integrations/mssql/types.ts +3 -2
  309. package/src/integrations/mysql/README.md +4 -4
  310. package/src/integrations/mysql/client.ts +5 -3
  311. package/src/integrations/mysql/docs.manifest.json +5 -0
  312. package/src/integrations/mysql/types.ts +5 -4
  313. package/src/integrations/notion/docs.manifest.json +5 -0
  314. package/src/integrations/openai_v2/README.md +44 -116
  315. package/src/integrations/openai_v2/docs.manifest.json +5 -0
  316. package/src/integrations/openai_v2/types.ts +4 -29
  317. package/src/integrations/oracledb/README.md +3 -3
  318. package/src/integrations/oracledb/client.ts +5 -3
  319. package/src/integrations/oracledb/docs.manifest.json +5 -0
  320. package/src/integrations/oracledb/types.ts +3 -2
  321. package/src/integrations/pagerduty/README.md +2 -2
  322. package/src/integrations/pagerduty/docs.manifest.json +5 -0
  323. package/src/integrations/perplexity/README.md +39 -47
  324. package/src/integrations/perplexity/docs.manifest.json +5 -0
  325. package/src/integrations/postgres/client.ts +6 -4
  326. package/src/integrations/postgres/docs.manifest.json +5 -0
  327. package/src/integrations/postgres/types.ts +1 -0
  328. package/src/integrations/redshift/client.ts +5 -3
  329. package/src/integrations/redshift/docs.manifest.json +5 -0
  330. package/src/integrations/redshift/types.ts +1 -0
  331. package/src/integrations/registry.test.ts +2 -3
  332. package/src/integrations/registry.ts +69 -188
  333. package/src/integrations/restapiintegration/README.md +320 -0
  334. package/src/integrations/restapiintegration/docs.manifest.json +5 -0
  335. package/src/integrations/restapiintegration/types.ts +2 -8
  336. package/src/integrations/s3/client.ts +5 -3
  337. package/src/integrations/s3/docs.manifest.json +5 -0
  338. package/src/integrations/s3/types.ts +4 -1
  339. package/src/integrations/salesforce/README.md +11 -9
  340. package/src/integrations/salesforce/client.ts +3 -2
  341. package/src/integrations/salesforce/docs.manifest.json +5 -0
  342. package/src/integrations/salesforce/types.ts +1 -0
  343. package/src/integrations/segment/docs.manifest.json +5 -0
  344. package/src/integrations/sendgrid/README.md +2 -2
  345. package/src/integrations/sendgrid/docs.manifest.json +5 -0
  346. package/src/integrations/slack/README.md +62 -19
  347. package/src/integrations/slack/client.test.ts +553 -0
  348. package/src/integrations/slack/client.ts +92 -12
  349. package/src/integrations/slack/docs.manifest.json +5 -0
  350. package/src/integrations/slack/index.ts +6 -1
  351. package/src/integrations/slack/types.ts +142 -29
  352. package/src/integrations/smtp/README.md +220 -0
  353. package/src/integrations/smtp/client.ts +4 -2
  354. package/src/integrations/smtp/docs.manifest.json +5 -0
  355. package/src/integrations/snowflake/client.ts +7 -5
  356. package/src/integrations/snowflake/docs.manifest.json +5 -0
  357. package/src/integrations/snowflake/types.ts +1 -0
  358. package/src/integrations/snowflakecortex/README.md +167 -0
  359. package/src/integrations/snowflakecortex/client.ts +2 -3
  360. package/src/integrations/snowflakecortex/docs.manifest.json +5 -0
  361. package/src/integrations/snowflakecortex/types.ts +3 -11
  362. package/src/integrations/snowflakepostgres/README.md +233 -0
  363. package/src/integrations/snowflakepostgres/client.ts +1 -1
  364. package/src/integrations/snowflakepostgres/docs.manifest.json +5 -0
  365. package/src/integrations/snowflakepostgres/types.ts +1 -0
  366. package/src/integrations/stabilityai/README.md +2 -2
  367. package/src/integrations/stabilityai/docs.manifest.json +5 -0
  368. package/src/integrations/stripe/docs.manifest.json +5 -0
  369. package/src/integrations/superblocks-ocr/docs.manifest.json +5 -0
  370. package/src/integrations/twilio/docs.manifest.json +5 -0
  371. package/src/integrations/zendesk/docs.manifest.json +5 -0
  372. package/src/integrations/zoom/README.md +15 -15
  373. package/src/integrations/zoom/docs.manifest.json +5 -0
  374. package/src/runtime/context.ts +11 -11
  375. package/src/runtime/executor.ts +2 -2
  376. package/src/runtime/index.ts +1 -23
  377. package/src/types.ts +16 -6
  378. package/dist/api/streaming.d.ts +0 -229
  379. package/dist/api/streaming.d.ts.map +0 -1
  380. package/dist/api/streaming.js +0 -107
  381. package/dist/api/streaming.js.map +0 -1
  382. package/dist/api/streaming.test.d.ts +0 -5
  383. package/dist/api/streaming.test.d.ts.map +0 -1
  384. package/dist/api/streaming.test.js +0 -364
  385. package/dist/api/streaming.test.js.map +0 -1
  386. package/dist/integrations/couchbase/client.d.ts +0 -30
  387. package/dist/integrations/couchbase/client.d.ts.map +0 -1
  388. package/dist/integrations/couchbase/client.js +0 -154
  389. package/dist/integrations/couchbase/client.js.map +0 -1
  390. package/dist/integrations/couchbase/index.d.ts +0 -8
  391. package/dist/integrations/couchbase/index.d.ts.map +0 -1
  392. package/dist/integrations/couchbase/index.js +0 -7
  393. package/dist/integrations/couchbase/index.js.map +0 -1
  394. package/dist/integrations/couchbase/types.d.ts +0 -100
  395. package/dist/integrations/couchbase/types.d.ts.map +0 -1
  396. package/dist/integrations/couchbase/types.js +0 -5
  397. package/dist/integrations/couchbase/types.js.map +0 -1
  398. package/dist/integrations/kafka/client.d.ts +0 -25
  399. package/dist/integrations/kafka/client.d.ts.map +0 -1
  400. package/dist/integrations/kafka/client.js +0 -124
  401. package/dist/integrations/kafka/client.js.map +0 -1
  402. package/dist/integrations/kafka/index.d.ts +0 -8
  403. package/dist/integrations/kafka/index.d.ts.map +0 -1
  404. package/dist/integrations/kafka/index.js +0 -7
  405. package/dist/integrations/kafka/index.js.map +0 -1
  406. package/dist/integrations/kafka/types.d.ts +0 -113
  407. package/dist/integrations/kafka/types.d.ts.map +0 -1
  408. package/dist/integrations/kafka/types.js +0 -5
  409. package/dist/integrations/kafka/types.js.map +0 -1
  410. package/dist/integrations/kinesis/client.d.ts +0 -31
  411. package/dist/integrations/kinesis/client.d.ts.map +0 -1
  412. package/dist/integrations/kinesis/client.js +0 -101
  413. package/dist/integrations/kinesis/client.js.map +0 -1
  414. package/dist/integrations/kinesis/index.d.ts +0 -8
  415. package/dist/integrations/kinesis/index.d.ts.map +0 -1
  416. package/dist/integrations/kinesis/index.js +0 -7
  417. package/dist/integrations/kinesis/index.js.map +0 -1
  418. package/dist/integrations/kinesis/types.d.ts +0 -97
  419. package/dist/integrations/kinesis/types.d.ts.map +0 -1
  420. package/dist/integrations/kinesis/types.js +0 -7
  421. package/dist/integrations/kinesis/types.js.map +0 -1
  422. package/dist/integrations/python/client.d.ts +0 -42
  423. package/dist/integrations/python/client.d.ts.map +0 -1
  424. package/dist/integrations/python/client.js +0 -89
  425. package/dist/integrations/python/client.js.map +0 -1
  426. package/dist/integrations/python/client.test.d.ts +0 -5
  427. package/dist/integrations/python/client.test.d.ts.map +0 -1
  428. package/dist/integrations/python/client.test.js +0 -214
  429. package/dist/integrations/python/client.test.js.map +0 -1
  430. package/dist/integrations/python/index.d.ts +0 -6
  431. package/dist/integrations/python/index.d.ts.map +0 -1
  432. package/dist/integrations/python/index.js +0 -5
  433. package/dist/integrations/python/index.js.map +0 -1
  434. package/dist/integrations/python/types.d.ts +0 -85
  435. package/dist/integrations/python/types.d.ts.map +0 -1
  436. package/dist/integrations/python/types.js +0 -5
  437. package/dist/integrations/python/types.js.map +0 -1
  438. package/dist/integrations/redis/client.d.ts +0 -43
  439. package/dist/integrations/redis/client.d.ts.map +0 -1
  440. package/dist/integrations/redis/client.js +0 -142
  441. package/dist/integrations/redis/client.js.map +0 -1
  442. package/dist/integrations/redis/index.d.ts +0 -8
  443. package/dist/integrations/redis/index.d.ts.map +0 -1
  444. package/dist/integrations/redis/index.js +0 -7
  445. package/dist/integrations/redis/index.js.map +0 -1
  446. package/dist/integrations/redis/types.d.ts +0 -137
  447. package/dist/integrations/redis/types.d.ts.map +0 -1
  448. package/dist/integrations/redis/types.js +0 -5
  449. package/dist/integrations/redis/types.js.map +0 -1
  450. package/dist/runtime/execute.d.ts +0 -128
  451. package/dist/runtime/execute.d.ts.map +0 -1
  452. package/dist/runtime/execute.js +0 -84
  453. package/dist/runtime/execute.js.map +0 -1
  454. package/dist/runtime/streaming-context.d.ts +0 -49
  455. package/dist/runtime/streaming-context.d.ts.map +0 -1
  456. package/dist/runtime/streaming-context.js +0 -71
  457. package/dist/runtime/streaming-context.js.map +0 -1
  458. package/dist/runtime/streaming-executor.d.ts +0 -159
  459. package/dist/runtime/streaming-executor.d.ts.map +0 -1
  460. package/dist/runtime/streaming-executor.js +0 -229
  461. package/dist/runtime/streaming-executor.js.map +0 -1
  462. package/src/api/streaming.test.ts +0 -432
  463. package/src/api/streaming.ts +0 -302
  464. package/src/integrations/couchbase/README.md +0 -138
  465. package/src/integrations/couchbase/client.ts +0 -237
  466. package/src/integrations/couchbase/index.ts +0 -8
  467. package/src/integrations/couchbase/types.ts +0 -125
  468. package/src/integrations/kafka/README.md +0 -144
  469. package/src/integrations/kafka/client.ts +0 -215
  470. package/src/integrations/kafka/index.ts +0 -14
  471. package/src/integrations/kafka/types.ts +0 -127
  472. package/src/integrations/kinesis/README.md +0 -153
  473. package/src/integrations/kinesis/client.ts +0 -146
  474. package/src/integrations/kinesis/index.ts +0 -14
  475. package/src/integrations/kinesis/types.ts +0 -114
  476. package/src/integrations/python/README.md +0 -566
  477. package/src/integrations/python/client.test.ts +0 -340
  478. package/src/integrations/python/client.ts +0 -134
  479. package/src/integrations/python/index.ts +0 -6
  480. package/src/integrations/python/types.ts +0 -91
  481. package/src/integrations/redis/README.md +0 -200
  482. package/src/integrations/redis/client.ts +0 -207
  483. package/src/integrations/redis/index.ts +0 -8
  484. package/src/integrations/redis/types.ts +0 -166
  485. package/src/runtime/execute.ts +0 -221
  486. package/src/runtime/streaming-context.ts +0 -164
  487. package/src/runtime/streaming-executor.ts +0 -367
@@ -49,7 +49,7 @@ export default api({
49
49
  const result = await ctx.integrations.asana.apiRequest(
50
50
  {
51
51
  method: "POST",
52
- path: "/api/1.0/tasks",
52
+ path: "/tasks",
53
53
  body: {
54
54
  data: {
55
55
  name: name,
@@ -88,7 +88,7 @@ const ListTasksResponseSchema = z.object({
88
88
  const result = await ctx.integrations.asana.apiRequest(
89
89
  {
90
90
  method: "GET",
91
- path: `/api/1.0/projects/${projectId}/tasks`,
91
+ path: `/projects/${projectId}/tasks`,
92
92
  params: {
93
93
  opt_fields: "name,completed,due_on,assignee.name",
94
94
  completed_since: "now", // Only incomplete tasks
@@ -108,7 +108,7 @@ result.data.forEach((task) => {
108
108
  const result = await ctx.integrations.asana.apiRequest(
109
109
  {
110
110
  method: "PUT",
111
- path: `/api/1.0/tasks/${taskId}`,
111
+ path: `/tasks/${taskId}`,
112
112
  body: {
113
113
  data: {
114
114
  completed: true,
@@ -126,7 +126,7 @@ const result = await ctx.integrations.asana.apiRequest(
126
126
  const result = await ctx.integrations.asana.apiRequest(
127
127
  {
128
128
  method: "PUT",
129
- path: `/api/1.0/tasks/${taskId}`,
129
+ path: `/tasks/${taskId}`,
130
130
  body: {
131
131
  data: {
132
132
  assignee: userId, // User GID
@@ -154,7 +154,7 @@ const ListProjectsResponseSchema = z.object({
154
154
  const result = await ctx.integrations.asana.apiRequest(
155
155
  {
156
156
  method: "GET",
157
- path: "/api/1.0/projects",
157
+ path: "/projects",
158
158
  params: {
159
159
  workspace: workspaceId,
160
160
  opt_fields: "name,archived,owner.name",
@@ -178,7 +178,7 @@ const CreateProjectResponseSchema = z.object({
178
178
  const result = await ctx.integrations.asana.apiRequest(
179
179
  {
180
180
  method: "POST",
181
- path: "/api/1.0/projects",
181
+ path: "/projects",
182
182
  body: {
183
183
  data: {
184
184
  name: "Q1 Marketing Campaign",
@@ -207,7 +207,7 @@ const StoryResponseSchema = z.object({
207
207
  const result = await ctx.integrations.asana.apiRequest(
208
208
  {
209
209
  method: "POST",
210
- path: `/api/1.0/tasks/${taskId}/stories`,
210
+ path: `/tasks/${taskId}/stories`,
211
211
  body: {
212
212
  data: {
213
213
  text: "Great progress on this task!",
@@ -233,7 +233,7 @@ const SearchResponseSchema = z.object({
233
233
  const result = await ctx.integrations.asana.apiRequest(
234
234
  {
235
235
  method: "GET",
236
- path: "/api/1.0/workspaces/{workspace_gid}/tasks/search",
236
+ path: "/workspaces/{workspace_gid}/tasks/search",
237
237
  params: {
238
238
  "text.value": "urgent",
239
239
  completed: false,
@@ -252,7 +252,7 @@ const result = await ctx.integrations.asana.apiRequest(
252
252
  const result = await ctx.integrations.asana.apiRequest(
253
253
  {
254
254
  method: "GET",
255
- path: `/api/1.0/tasks/${taskId}/subtasks`,
255
+ path: `/tasks/${taskId}/subtasks`,
256
256
  params: {
257
257
  opt_fields: "name,completed,assignee.name",
258
258
  },
@@ -276,7 +276,7 @@ await asana.getTasks({ ... });
276
276
 
277
277
  // CORRECT - Use apiRequest
278
278
  await ctx.integrations.asana.apiRequest(
279
- { method: "POST", path: "/api/1.0/tasks", body: { data: { ... } } },
279
+ { method: "POST", path: "/tasks", body: { data: { ... } } },
280
280
  { response: CreateTaskResponseSchema }
281
281
  );
282
282
  ```
@@ -381,7 +381,7 @@ async function getAllTasks(asana: AsanaClient, projectId: string) {
381
381
  const result = await ctx.integrations.asana.apiRequest(
382
382
  {
383
383
  method: "GET",
384
- path: `/api/1.0/projects/${projectId}/tasks`,
384
+ path: `/projects/${projectId}/tasks`,
385
385
  params: {
386
386
  limit: 100,
387
387
  ...(offset && { offset }),
@@ -405,7 +405,7 @@ import { RestApiValidationError } from "@superblocksteam/sdk-api";
405
405
 
406
406
  try {
407
407
  const result = await ctx.integrations.asana.apiRequest(
408
- { method: "POST", path: "/api/1.0/tasks", body: { data: { ... } } },
408
+ { method: "POST", path: "/tasks", body: { data: { ... } } },
409
409
  { response: CreateTaskResponseSchema }
410
410
  );
411
411
  } catch (error) {
@@ -0,0 +1,5 @@
1
+ {
2
+ "pluginId": "asana",
3
+ "base": "README.md",
4
+ "overlays": []
5
+ }
@@ -41,7 +41,7 @@ export default api({
41
41
  const logs = await ctx.integrations.athena.query(
42
42
  `SELECT timestamp, level, message, request_id
43
43
  FROM logs
44
- WHERE level = $1
44
+ WHERE level = ?
45
45
  LIMIT 100`,
46
46
  LogSchema,
47
47
  [level],
@@ -65,8 +65,8 @@ const EventSchema = z.object({
65
65
  const events = await ctx.integrations.athena.query(
66
66
  `SELECT event_id, event_type, user_id, created_at
67
67
  FROM events
68
- WHERE date_partition = $1
69
- AND event_type = $2`,
68
+ WHERE date_partition = ?
69
+ AND event_type = ?`,
70
70
  EventSchema,
71
71
  ["2024-01-15", "purchase"],
72
72
  );
@@ -138,7 +138,7 @@ Always use partition filters when possible to reduce data scanned:
138
138
  ```typescript
139
139
  // GOOD - Uses partition filter
140
140
  const logs = await ctx.integrations.athena.query(
141
- "SELECT * FROM logs WHERE date_partition = $1",
141
+ "SELECT * FROM logs WHERE date_partition = ?",
142
142
  LogSchema,
143
143
  ["2024-01-15"],
144
144
  );
@@ -5,13 +5,15 @@
5
5
  * runtime validation using Zod schemas.
6
6
  */
7
7
 
8
- import type { z } from "zod";
9
8
  import type { PartialMessage } from "@bufbuild/protobuf";
9
+ import type { z } from "zod";
10
+
10
11
  import type { Plugin as AthenaPlugin } from "@superblocksteam/types/dist/src/plugins/athena/v1/plugin_pb";
11
- import type { IntegrationConfig, IntegrationClientImpl } from "../types.js";
12
- import type { QueryExecutor, TraceMetadata } from "../registry.js";
12
+
13
13
  import { QueryValidationError } from "../../errors.js";
14
14
  import { IntegrationError } from "../../runtime/errors.js";
15
+ import type { QueryExecutor, TraceMetadata } from "../registry.js";
16
+ import type { IntegrationConfig, IntegrationClientImpl } from "../types.js";
15
17
  import { describeType } from "../utils.js";
16
18
  import type { AthenaClient } from "./types.js";
17
19
 
@@ -0,0 +1,5 @@
1
+ {
2
+ "pluginId": "athena",
3
+ "base": "README.md",
4
+ "overlays": []
5
+ }
@@ -5,6 +5,7 @@
5
5
  */
6
6
 
7
7
  import type { z } from "zod";
8
+
8
9
  import type { BaseIntegrationClient } from "../../types.js";
9
10
  import type { TraceMetadata } from "../registry.js";
10
11
 
@@ -24,7 +25,7 @@ import type { TraceMetadata } from "../registry.js";
24
25
  * });
25
26
  *
26
27
  * const logs = await athena.query(
27
- * 'SELECT * FROM logs WHERE level = $1',
28
+ * 'SELECT * FROM logs WHERE level = ?',
28
29
  * LogSchema,
29
30
  * ['ERROR']
30
31
  * );
@@ -34,7 +35,7 @@ export interface AthenaClient extends BaseIntegrationClient {
34
35
  /**
35
36
  * Execute a SQL query and validate results against a Zod schema.
36
37
  *
37
- * @param sql - SQL query string (use $1, $2, etc. for parameters)
38
+ * @param sql - SQL query string (use ? placeholders for parameters)
38
39
  * @param schema - Zod schema to validate the query results
39
40
  * @param params - Optional query parameters
40
41
  * @returns Promise resolving to validated query results
@@ -5,10 +5,14 @@
5
5
  * Handles proto message construction and response validation.
6
6
  */
7
7
 
8
- import type { IntegrationConfig, IntegrationClientImpl } from "../types.js";
9
- import type { QueryExecutor, TraceMetadata } from "../registry.js";
8
+ import type { PartialMessage } from "@bufbuild/protobuf";
10
9
  import { z } from "zod";
10
+
11
+ import type { Property } from "@superblocksteam/types/dist/src/common/v1/plugin_pb";
12
+
11
13
  import { RestApiValidationError } from "../../errors.js";
14
+ import type { QueryExecutor, TraceMetadata } from "../registry.js";
15
+ import type { IntegrationConfig, IntegrationClientImpl } from "../types.js";
12
16
 
13
17
  /**
14
18
  * Base class for GraphQL integration clients.
@@ -18,6 +22,8 @@ import { RestApiValidationError } from "../../errors.js";
18
22
  * - Executing queries and mutations through the orchestrator
19
23
  * - Required Zod schema validation on full GraphQL response
20
24
  * - Variables serialization for parameterized queries
25
+ * - Optional per-request HTTP headers (in addition to any headers configured
26
+ * on the integration)
21
27
  */
22
28
  export abstract class GraphQLIntegrationClient implements IntegrationClientImpl {
23
29
  readonly name: string;
@@ -39,6 +45,7 @@ export abstract class GraphQLIntegrationClient implements IntegrationClientImpl
39
45
  * @param schema - Zod schema for full response validation (REQUIRED)
40
46
  * @param variables - Optional variables for the query
41
47
  * @param metadata - Optional trace metadata for observability
48
+ * @param headers - Optional HTTP headers to send with the request
42
49
  * @returns Validated query result
43
50
  */
44
51
  async query<TResponse>(
@@ -46,8 +53,9 @@ export abstract class GraphQLIntegrationClient implements IntegrationClientImpl
46
53
  schema: { response: z.ZodSchema<TResponse> },
47
54
  variables?: Record<string, unknown>,
48
55
  metadata?: TraceMetadata,
56
+ headers?: Record<string, string>,
49
57
  ): Promise<TResponse> {
50
- return this.executeGraphQL(query, schema, variables, metadata);
58
+ return this.executeGraphQL(query, schema, variables, metadata, headers);
51
59
  }
52
60
 
53
61
  /**
@@ -57,6 +65,7 @@ export abstract class GraphQLIntegrationClient implements IntegrationClientImpl
57
65
  * @param schema - Zod schema for full response validation (REQUIRED)
58
66
  * @param variables - Optional variables for the mutation
59
67
  * @param metadata - Optional trace metadata for observability
68
+ * @param headers - Optional HTTP headers to send with the request
60
69
  * @returns Validated mutation result
61
70
  */
62
71
  async mutation<TResponse>(
@@ -64,8 +73,9 @@ export abstract class GraphQLIntegrationClient implements IntegrationClientImpl
64
73
  schema: { response: z.ZodSchema<TResponse> },
65
74
  variables?: Record<string, unknown>,
66
75
  metadata?: TraceMetadata,
76
+ headers?: Record<string, string>,
67
77
  ): Promise<TResponse> {
68
- return this.executeGraphQL(mutation, schema, variables, metadata);
78
+ return this.executeGraphQL(mutation, schema, variables, metadata, headers);
69
79
  }
70
80
 
71
81
  /**
@@ -79,9 +89,17 @@ export abstract class GraphQLIntegrationClient implements IntegrationClientImpl
79
89
  schema: { response: z.ZodSchema<TResponse> },
80
90
  variables?: Record<string, unknown>,
81
91
  metadata?: TraceMetadata,
92
+ headers?: Record<string, string>,
82
93
  ): Promise<TResponse> {
94
+ const headerProps: PartialMessage<Property>[] = [];
95
+ if (headers) {
96
+ for (const [key, value] of Object.entries(headers)) {
97
+ headerProps.push({ key, value });
98
+ }
99
+ }
100
+
83
101
  // Build graphql.v1.Plugin proto message
84
- const request = {
102
+ const request: Record<string, unknown> = {
85
103
  body: queryString,
86
104
  custom: variables
87
105
  ? {
@@ -95,6 +113,10 @@ export abstract class GraphQLIntegrationClient implements IntegrationClientImpl
95
113
  failOnGraphqlErrors: true,
96
114
  };
97
115
 
116
+ if (headerProps.length > 0) {
117
+ request.headers = headerProps;
118
+ }
119
+
98
120
  // Execute query through orchestrator
99
121
  const response = await this.executeQuery(request, undefined, metadata);
100
122
 
@@ -2,13 +2,12 @@
2
2
  * Base clients for integrations.
3
3
  */
4
4
 
5
+ export { RestApiClientBase } from "./rest-api-client-base.js";
5
6
  export { RestApiIntegrationClient } from "./rest-api-integration-client.js";
6
- export type { RestApiRequest } from "./rest-api-integration-client.js";
7
+ export type { RestApiRequest } from "./rest-api-client-base.js";
7
8
  export { GraphQLIntegrationClient } from "./graphql-integration-client.js";
8
9
  export type {
9
10
  ApiRequestOptions,
10
11
  ApiRequestSchema,
11
12
  SupportsApiRequest,
12
- StreamApiRequestSchema,
13
- SupportsStreamingApiRequest,
14
13
  } from "./types.js";
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Abstract base for REST API Integration clients.
3
+ *
4
+ * Owns the shared infrastructure that every REST-API-backed integration
5
+ * needs: config storage, parameter helpers, body validation, request
6
+ * construction, and query execution. Subclasses add their own
7
+ * `apiRequest` with whatever response-handling strategy they need
8
+ * (e.g. direct Zod validation, discriminated-union wrapping).
9
+ */
10
+
11
+ import type { PartialMessage } from "@bufbuild/protobuf";
12
+ import { z } from "zod";
13
+
14
+ import type { Property } from "@superblocksteam/types/dist/src/common/v1/plugin_pb";
15
+ import type { Plugin as RestApiIntegrationPlugin } from "@superblocksteam/types/dist/src/plugins/restapiintegration/v1/plugin_pb";
16
+
17
+ import { RestApiValidationError } from "../../errors.js";
18
+ import type { QueryExecutor, TraceMetadata } from "../registry.js";
19
+ import type { IntegrationConfig, IntegrationClientImpl } from "../types.js";
20
+ import type { ApiRequestOptions } from "./types.js";
21
+
22
+ export type RestApiRequest = PartialMessage<RestApiIntegrationPlugin>;
23
+
24
+ /**
25
+ * Shared base for all REST API Integration clients.
26
+ *
27
+ * Provides config fields, parameter helpers, body validation, request
28
+ * building, and query execution. Does NOT define `apiRequest` — each
29
+ * concrete subclass supplies its own return-type contract.
30
+ */
31
+ export abstract class RestApiClientBase implements IntegrationClientImpl {
32
+ readonly name: string;
33
+ readonly pluginId: string;
34
+ readonly config: IntegrationConfig;
35
+
36
+ protected readonly executeQuery: QueryExecutor;
37
+
38
+ constructor(config: IntegrationConfig, executeQuery: QueryExecutor) {
39
+ this.name = config.name;
40
+ this.pluginId = config.pluginId;
41
+ this.config = config;
42
+ this.executeQuery = executeQuery;
43
+ }
44
+
45
+ /**
46
+ * Create a Property object for query params / headers.
47
+ */
48
+ protected createParam(key: string, value: unknown): PartialMessage<Property> {
49
+ return {
50
+ key,
51
+ value: typeof value === "string" ? value : JSON.stringify(value),
52
+ };
53
+ }
54
+
55
+ /**
56
+ * Validate the request body, build the proto request, and execute it.
57
+ *
58
+ * Returns the raw (unvalidated) response from the orchestrator.
59
+ * Subclasses call this, then apply their own response handling.
60
+ *
61
+ * @param options - HTTP method, path, body, params, headers
62
+ * @param bodySchema - Optional Zod schema for body validation
63
+ * @param metadata - Optional trace metadata for observability
64
+ * @returns Raw response from the orchestrator
65
+ */
66
+ protected async executeApiRequest<TBody>(
67
+ options: ApiRequestOptions<TBody>,
68
+ bodySchema?: z.ZodSchema<TBody>,
69
+ metadata?: TraceMetadata,
70
+ ): Promise<unknown> {
71
+ // Validate request body if both body and schema are present.
72
+ if (options.body !== undefined && bodySchema) {
73
+ const bodyParseResult = bodySchema.safeParse(options.body);
74
+ if (!bodyParseResult.success) {
75
+ throw new RestApiValidationError(
76
+ `Request body validation failed: ${bodyParseResult.error.message}`,
77
+ {
78
+ zodError: bodyParseResult.error,
79
+ data: options.body,
80
+ },
81
+ );
82
+ }
83
+ }
84
+
85
+ const headers: PartialMessage<Property>[] = [];
86
+ if (options.headers) {
87
+ for (const [key, value] of Object.entries(options.headers)) {
88
+ headers.push(this.createParam(key, value));
89
+ }
90
+ }
91
+
92
+ const params: PartialMessage<Property>[] = [];
93
+ if (options.params) {
94
+ for (const [key, value] of Object.entries(options.params)) {
95
+ params.push(this.createParam(key, value));
96
+ }
97
+ }
98
+
99
+ const request: RestApiRequest = {
100
+ openApiAction: "genericHttpRequest",
101
+ httpMethod: options.method.toUpperCase(),
102
+ urlPath: options.path,
103
+ headers,
104
+ params,
105
+ responseType: "json",
106
+ };
107
+
108
+ if (options.body !== undefined) {
109
+ request.body = JSON.stringify(options.body);
110
+ request.bodyType = "jsonBody";
111
+ }
112
+
113
+ const result = await this.executeQuery(
114
+ request as Record<string, unknown>,
115
+ undefined,
116
+ metadata,
117
+ );
118
+
119
+ if (result === null || result === undefined) {
120
+ const nonNullResult = z.object({}).safeParse(result);
121
+ if (!nonNullResult.success) {
122
+ throw new RestApiValidationError(
123
+ `Integration query returned ${String(result)} — expected a JSON response object`,
124
+ {
125
+ zodError: nonNullResult.error,
126
+ data: result,
127
+ },
128
+ );
129
+ }
130
+ }
131
+
132
+ return result;
133
+ }
134
+ }